From 3deb86757ad3369a769f1540cdfd495dcd49214a Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期五, 18 八月 2023 08:33:54 +0800
Subject: [PATCH] 优化平团bug
---
service-api/src/main/java/com/java110/api/controller/app/AppController.java | 168 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 149 insertions(+), 19 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/controller/app/AppController.java b/service-api/src/main/java/com/java110/api/controller/app/AppController.java
index 9713c5d..88c4544 100644
--- a/service-api/src/main/java/com/java110/api/controller/app/AppController.java
+++ b/service-api/src/main/java/com/java110/api/controller/app/AppController.java
@@ -21,11 +21,16 @@
import com.java110.api.smo.privilege.IPrivilegeSMO;
import com.java110.core.base.controller.BaseController;
import com.java110.core.context.IPageData;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.language.Java110Lang;
+import com.java110.core.log.LoggerFactory;
import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.util.DateUtil;
+import com.java110.vo.ResultVo;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -50,8 +55,9 @@
public class AppController extends BaseController {
private final static Logger logger = LoggerFactory.getLogger(AppController.class);
+
@Autowired
- private IApiServiceSMO apiServiceSMOImpl;
+ private IApiSMO apiSMOImpl;
@Autowired
private RestTemplate restTemplate;
@@ -75,6 +81,7 @@
@RequestMapping(path = "/{service:.+}", method = RequestMethod.POST)
@ApiOperation(value = "璧勬簮post璇锋眰", notes = "test: 杩斿洖 2XX 琛ㄧず鏈嶅姟姝e父")
@ApiImplicitParam(paramType = "query", name = "service", value = "鐢ㄦ埛缂栧彿", required = true, dataType = "String")
+ @Java110Lang
public ResponseEntity<String> servicePost(@PathVariable String service,
@RequestBody String postInfo,
HttpServletRequest request) {
@@ -87,14 +94,51 @@
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", service, postInfo, headers);
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + service);
- responseEntity = apiServiceSMOImpl.service(postInfo, headers);
+ responseEntity = apiSMOImpl.doApi(postInfo, headers, request);
+ //todo 鍐欏叆 token
+ wirteToken(request, pd, service, responseEntity);
} catch (Throwable e) {
logger.error("璇锋眰post 鏂规硶[" + service + "]澶辫触锛�" + postInfo, e);
- responseEntity = new ResponseEntity<String>("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
return responseEntity;
+ }
+
+ /**
+ * 鍐欏叆 token
+ *
+ * @param request
+ * @param pd
+ * @param service
+ * @param responseEntity
+ */
+ private void wirteToken(HttpServletRequest request, IPageData pd, String service, ResponseEntity<String> responseEntity) {
+ String[] services = new String[]{
+ "login.accessTokenLogin"
+ };
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ return;
+ }
+ boolean flag = false;
+ for (String tmpService : services) {
+ if (tmpService.equals(service)) {
+ flag = true;
+ }
+ }
+
+ if (!flag) {
+ return;
+ }
+
+ JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody());
+ if (!"0".equals(paramOut.getString("code"))) {
+ return;
+ }
+ String token = paramOut.getJSONObject("data").getString("token");
+ pd.setToken(token);
}
/**
@@ -108,6 +152,7 @@
@RequestMapping(path = "/{service:.+}", method = RequestMethod.GET)
@ApiOperation(value = "璧勬簮get璇锋眰", notes = "test: 杩斿洖 2XX 琛ㄧず鏈嶅姟姝e父")
@ApiImplicitParam(paramType = "query", name = "service", value = "鐢ㄦ埛缂栧彿", required = true, dataType = "String")
+ @Java110Lang
public ResponseEntity<String> serviceGet(@PathVariable String service,
HttpServletRequest request) {
ResponseEntity<String> responseEntity = null;
@@ -119,12 +164,11 @@
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", "", headers);
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + service);
- //responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
- responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
+ responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
} catch (Throwable e) {
logger.error("璇锋眰get 鏂规硶[" + service + "]澶辫触锛�", e);
- responseEntity = new ResponseEntity<String>("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
@@ -141,6 +185,7 @@
@RequestMapping(path = "/{resource}/{action}", method = RequestMethod.GET)
@ApiOperation(value = "璧勬簮get璇锋眰", notes = "test: 杩斿洖 2XX 琛ㄧず鏈嶅姟姝e父")
@ApiImplicitParam(paramType = "query", name = "subServiceGet", value = "鐢ㄦ埛缂栧彿", required = true, dataType = "String")
+ @Java110Lang
public ResponseEntity<String> subServiceGet(
@PathVariable String resource,
@PathVariable String action,
@@ -156,11 +201,11 @@
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", "", headers);
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + resource + "/" + action);
- //responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
- responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
+ responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
+ //responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
} catch (Throwable e) {
logger.error("璇锋眰get 鏂规硶[" + action + "]澶辫触锛�", e);
- responseEntity = new ResponseEntity<String>("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", action, responseEntity);
@@ -178,6 +223,7 @@
@RequestMapping(path = "/{resource}/{action}", method = RequestMethod.POST)
@ApiOperation(value = "璧勬簮post璇锋眰", notes = "test: 杩斿洖 2XX 琛ㄧず鏈嶅姟姝e父")
@ApiImplicitParam(paramType = "query", name = "subServicePost", value = "鐢ㄦ埛缂栧彿", required = true, dataType = "String")
+ @Java110Lang
public ResponseEntity<String> subServicePost(
@PathVariable String resource,
@PathVariable String action,
@@ -194,16 +240,95 @@
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", action, postInfo, headers);
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + resource + "/" + action);
- //responseEntity = apiSMOImpl.doApi(postInfo, headers, request);
- responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
+ responseEntity = apiSMOImpl.doApi(postInfo, headers, request);
+
} catch (Throwable e) {
logger.error("璇锋眰post 鏂规硶[" + action + "]澶辫触锛�" + postInfo, e);
- responseEntity = new ResponseEntity<String>("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", action, responseEntity);
return responseEntity;
}
+
+
+ /**
+ * 澶栭儴绯荤粺浣跨敤 get
+ * 瀵规帴涓�浜涘ぇ绯荤粺鏃� 浠栦滑涓嶄細鎸夌収HC鐨勮姹�
+ * 鎵�浠ュ皢HC瑕佹眰鐨刟ppId 鏀惧埌璺姴鍦板潃
+ * @param request 璇锋眰瀵硅薄 鏌ヨ澶翠俊鎭� url绛変俊鎭�
+ * @return http status 200 鎴愬姛 鍏朵粬澶辫触
+ */
+
+ @RequestMapping(path = "/ext/{serviceCode}/{appId}", method = RequestMethod.GET)
+ @Java110Lang
+ public ResponseEntity<String> extGet(
+ @PathVariable String serviceCode,
+ @PathVariable String appId,
+ HttpServletRequest request) {
+ ResponseEntity<String> responseEntity = null;
+ Map<String, String> headers = new HashMap<String, String>();
+ try {
+ this.getRequestInfo(request, headers);
+ //todo 琛ュ厖appId淇℃伅
+ headers.put("app-id",appId);
+ headers.put("user-id","-1");
+ headers.put("transaction-id", GenerateCodeFactory.getUUID());
+ headers.put("req-time", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_DEFAULT));
+ headers.put(CommonConstant.HTTP_SERVICE, serviceCode);
+ headers.put(CommonConstant.HTTP_METHOD, CommonConstant.HTTP_METHOD_GET);
+ logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", "", headers);
+ IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+ privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + serviceCode);
+ responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
+ } catch (Throwable e) {
+ logger.error("璇锋眰get 鏂规硶[" + serviceCode + "]澶辫触锛�", e);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", serviceCode, responseEntity);
+
+ return responseEntity;
+ }
+
+ /**
+ * 澶栭儴绯荤粺浣跨敤 post
+ * 瀵规帴涓�浜涘ぇ绯荤粺鏃� 浠栦滑涓嶄細鎸夌収HC鐨勮姹�
+ * 鎵�浠ュ皢HC瑕佹眰鐨刟ppId 鏀惧埌璺姴鍦板潃
+ * @param request 璇锋眰瀵硅薄 鏌ヨ澶翠俊鎭� url绛変俊鎭�
+ * @return http status 200 鎴愬姛 鍏朵粬澶辫触
+ */
+
+ @RequestMapping(path = "/ext/{appId}/{serviceCode}", method = RequestMethod.POST)
+ @Java110Lang
+ public ResponseEntity<String> extPost(
+ @PathVariable String serviceCode,
+ @PathVariable String appId,
+
+ HttpServletRequest request) {
+ ResponseEntity<String> responseEntity = null;
+ Map<String, String> headers = new HashMap<String, String>();
+ try {
+ this.getRequestInfo(request, headers);
+ //todo 琛ュ厖appId淇℃伅
+ headers.put("app-id",appId);
+ headers.put("user-id","-1");
+ headers.put("transaction-id", GenerateCodeFactory.getUUID());
+ headers.put("req-time", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_DEFAULT));
+ headers.put(CommonConstant.HTTP_SERVICE, serviceCode);
+ headers.put(CommonConstant.HTTP_METHOD, CommonConstant.HTTP_METHOD_POST);
+ logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", "", headers);
+ IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+ privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + serviceCode);
+ responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
+ } catch (Throwable e) {
+ logger.error("璇锋眰get 鏂规硶[" + serviceCode + "]澶辫触锛�", e);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", serviceCode, responseEntity);
+
+ return responseEntity;
+ }
+
/**
* 璧勬簮璇锋眰 put鏂瑰紡
@@ -217,6 +342,7 @@
@RequestMapping(path = "/{service:.+}", method = RequestMethod.PUT)
@ApiOperation(value = "璧勬簮put璇锋眰", notes = "test: 杩斿洖 2XX 琛ㄧず鏈嶅姟姝e父")
@ApiImplicitParam(paramType = "query", name = "service", value = "鐢ㄦ埛缂栧彿", required = true, dataType = "String")
+ @Java110Lang
public ResponseEntity<String> servicePut(@PathVariable String service,
@RequestBody String postInfo,
HttpServletRequest request) {
@@ -229,11 +355,11 @@
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", service, postInfo, headers);
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + service);
- //responseEntity = apiSMOImpl.doApi(postInfo, headers, request);
- responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
+ responseEntity = apiSMOImpl.doApi(postInfo, headers, request);
+ //responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
} catch (Throwable e) {
logger.error("璇锋眰put 鏂规硶[" + service + "]澶辫触锛�", e);
- responseEntity = new ResponseEntity<String>("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
return responseEntity;
@@ -250,6 +376,7 @@
@RequestMapping(path = "/{service:.+}", method = RequestMethod.DELETE)
@ApiOperation(value = "璧勬簮delete璇锋眰", notes = "test: 杩斿洖 2XX 琛ㄧず鏈嶅姟姝e父")
@ApiImplicitParam(paramType = "query", name = "service", value = "鐢ㄦ埛缂栧彿", required = true, dataType = "String")
+ @Java110Lang
public ResponseEntity<String> serviceDelete(@PathVariable String service,
HttpServletRequest request) {
ResponseEntity<String> responseEntity = null;
@@ -261,11 +388,11 @@
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", service, "", headers);
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + service);
- //responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
- responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
+ responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
+ //responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
} catch (Throwable e) {
logger.error("璇锋眰delete 鏂规硶[" + service + "]澶辫触锛�", e);
- responseEntity = new ResponseEntity<String>("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
@@ -305,6 +432,9 @@
if ("userId".equals(key)) {
headers.put("user_id", claims.get(key));
}
+ if ("userName".equals(key)) {
+ headers.put("userName", "-");
+ }
headers.put(key, claims.get(key));
}
}
--
Gitblit v1.8.0