Bladeren bron

feat: "second commit"

Ritchie 1 jaar geleden
bovenliggende
commit
5e1ff4a709

+ 14 - 0
src/main/java/com/szwl/constant/ConfigConsts.java

@@ -0,0 +1,14 @@
+package com.szwl.constant;
+
+/**
+ * 系统配置相关常量
+ */
+public class ConfigConsts {
+    public static final String TEST = "TEST";
+    /**
+     * token
+     * 请求头:Authorization
+     */
+    public static final String AUTHORIZATION = "Authorization";
+    public static final String INNER_FEIGN = "innerFeign";
+}

+ 9 - 0
src/main/java/com/szwl/feign/bean/EsFeign.java

@@ -0,0 +1,9 @@
+package com.szwl.feign.bean;
+
+
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(name = "es-server")
+public interface EsFeign {
+
+}

+ 13 - 0
src/main/java/com/szwl/feign/bean/OrderFeign.java

@@ -0,0 +1,13 @@
+package com.szwl.feign.bean;
+
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+
+@FeignClient(name = "order-server")
+public interface OrderFeign {
+
+}

+ 23 - 0
src/main/java/com/szwl/feign/bean/SzwlFeign.java

@@ -0,0 +1,23 @@
+package com.szwl.feign.bean;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+
+
+//@FeignClient(name = "szwl-server")
+@FeignClient(name = "szwl-server", url = "http://127.0.0.1:49011/")
+public interface SzwlFeign {
+
+    @GetMapping("/test/testGetAdmin")
+    ResponseModel<?> testGetAdmin(@RequestParam String id);
+
+}

+ 18 - 0
src/main/java/com/szwl/feign/config/FeignConfig.java

@@ -0,0 +1,18 @@
+package com.szwl.feign.config;
+
+import com.szwl.feign.interceptor.FeignClientRequestHeaderInterceptor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+@Configuration
+@Slf4j
+public class FeignConfig {
+    @Bean
+    public FeignClientRequestHeaderInterceptor feignClientRequestHeaderInterceptor() {
+        log.info("--feign client request header interceptor reg");
+        return new FeignClientRequestHeaderInterceptor();
+    }
+
+}

+ 42 - 0
src/main/java/com/szwl/feign/interceptor/FeignClientRequestHeaderInterceptor.java

@@ -0,0 +1,42 @@
+package com.szwl.feign.interceptor;
+
+import com.szwl.constant.ConfigConsts;
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
+
+
+
+@Slf4j
+public class FeignClientRequestHeaderInterceptor implements RequestInterceptor {
+    @Value("${spring.application.name:}")
+    private String applicationName;
+
+    @Override
+    public void apply(RequestTemplate requestTemplate) {
+        //获取请求对象
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if (null != attributes) {
+            HttpServletRequest request = attributes.getRequest();
+            //找出当前请求头
+            Enumeration<String> headers = request.getHeaderNames();
+            //把所有请求头加入
+            while (headers.hasMoreElements()) {
+                String name = headers.nextElement();
+                if ("content-length".equalsIgnoreCase(name)) {
+                    continue;
+                }
+                String value = request.getHeader(name);
+                requestTemplate.header(name, value);
+            }
+        }
+        //添加内部跳过鉴权请求头
+        requestTemplate.header(ConfigConsts.INNER_FEIGN, "1");
+    }
+}

+ 56 - 0
src/main/java/com/szwl/model/bo/R.java

@@ -0,0 +1,56 @@
+package com.szwl.model.bo;
+
+
+import com.szwl.constant.ResponseCodesEnum;
+import com.szwl.exception.MyException;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+//@Data
+//@Accessors(chain = true)
+public class R<T> {
+
+    public static <T> ResponseModel<T> ok(T data) {
+        return ResponseModel.ok(data);
+    }
+
+    public static <T> ResponseModel<T> ok(T data, String message) {
+        return ResponseModel.ok(data, message);
+    }
+
+    public static <T> ResponseModel<T> ok() {
+        return ResponseModel.ok();
+    }
+    public static <T> ResponseModel<T> okByMsg(String message) {
+        return ResponseModel.okByMsg(message);
+    }
+    public static <T> ResponseModel<T> fail(ResponseCodesEnum code, String message) {
+        return ResponseModel.fail(code,message);
+    }
+
+    public static <T> ResponseModel<T> fail(ResponseCodesEnum code) {
+        return ResponseModel.fail(code);
+    }
+
+    public static <T> ResponseModel<T> fail(String formatter, Object... obj) {
+        return ResponseModel.fail(String.format(formatter, obj));
+    }
+
+    public static <T> ResponseModel<T> fail(ResponseCodesEnum code, String formatter, Object... obj) {
+        return ResponseModel.fail(code, String.format(formatter, obj));
+    }
+
+    /**
+     * 获取feign结果,如果成功获取data,失败抛出异常
+     *
+     * @param resp
+     * @param <T>
+     * @return
+     */
+    public static <T> T getDataIfSuccess(ResponseModel<T> resp) {
+        if (!resp.isSuccess()) {
+            throw new MyException(resp.getMessage());
+        }
+        return resp.getData();
+    }
+}

+ 78 - 0
src/main/java/com/szwl/model/bo/ResponseModel.java

@@ -0,0 +1,78 @@
+package com.szwl.model.bo;
+
+import com.szwl.constant.ResponseCodesEnum;
+import com.fasterxml.jackson.annotation.JsonView;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Accessors(chain = true)
+public class ResponseModel<T> extends R<T> {
+
+	public interface NormalView {}
+	public interface FullView extends NormalView {}
+
+	@ApiModelProperty(value = "返回码")
+	@JsonView({NormalView.class})
+	private String code;
+
+	@ApiModelProperty(value = "返回信息")
+	@JsonView({NormalView.class})
+	private String message = "";
+
+	@ApiModelProperty(value = "返回数据")
+	@JsonView({NormalView.class})
+	private T data;
+
+	public static <T> ResponseModel<T> ok(T data) {
+		return new ResponseModel<T>()
+				.setCode(ResponseCodesEnum.ALL_OK.code())
+				.setData(data);
+	}
+	
+	public static <T> ResponseModel<T> ok(T data, String message) {
+		return new ResponseModel<T>()
+				.setCode(ResponseCodesEnum.ALL_OK.code())
+				.setMessage(message)
+				.setData(data);
+	}
+	
+	public static <T> ResponseModel<T> ok() {
+		return new ResponseModel<T>()
+				.setCode(ResponseCodesEnum.ALL_OK.code());
+	}
+	public static <T> ResponseModel<T> okByMsg(String message) {
+		return new ResponseModel<T>()
+				.setCode(ResponseCodesEnum.ALL_OK.code())
+				.setMessage(message);
+	}
+	public static <T> ResponseModel<T> fail(ResponseCodesEnum code,String message) {
+		return new ResponseModel<T>()
+				.setCode(code.code())
+				.setMessage(message);
+	}
+
+	public static <T> ResponseModel<T> fail(ResponseCodesEnum code) {
+		return new ResponseModel<T>()
+				.setCode(code.code())
+				.setMessage(code.message());
+	}
+
+	public static <T> ResponseModel<T> fail(String message) {
+		return new ResponseModel<T>()
+				.setCode(ResponseCodesEnum.B0001.code())
+				.setMessage(message);
+	}
+
+	/**
+	 * 校验是否成功
+	 *
+	 * @return
+	 */
+	public boolean isSuccess() {
+		return ResponseCodesEnum.ALL_OK.code().equalsIgnoreCase(this.getCode());
+	}
+}