From b6184e2ddf3db37a94f7efb3b619bbc64642a292 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期二, 27 一月 2026 18:12:48 +0800
Subject: [PATCH] Z四
---
service-api/src/main/java/com/java110/api/controller/app/AppController.java | 233 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 144 insertions(+), 89 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 44086e8..73c3eeb 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
@@ -16,11 +16,11 @@
package com.java110.api.controller.app;
import com.alibaba.fastjson.JSONObject;
-import com.java110.api.smo.IApiServiceSMO;
import com.java110.api.smo.api.IApiSMO;
import com.java110.api.smo.privilege.IPrivilegeSMO;
import com.java110.core.base.controller.BaseController;
import com.java110.core.context.IPageData;
+import com.java110.core.context.PageData;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.language.Java110Lang;
import com.java110.core.log.LoggerFactory;
@@ -30,7 +30,6 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -56,6 +55,7 @@
private final static Logger logger = LoggerFactory.getLogger(AppController.class);
+
@Autowired
private IApiSMO apiSMOImpl;
@@ -66,11 +66,12 @@
private IPrivilegeSMO privilegeSMOImpl;
/**
- * 璧勬簮璇锋眰 post鏂瑰紡
+ * 璧勬簮璇锋眰 post鏂瑰紡 缁熶竴鍏ュ彛绫�
* <p>
* /app/user.listUser
* <p>
* /api/user.listUser
+ *
*
* @param service 璇锋眰鎺ュ彛鏂瑰紡
* @param postInfo post鍐呭
@@ -88,18 +89,24 @@
ResponseEntity<String> responseEntity = null;
try {
Map<String, String> headers = new HashMap<String, String>();
+ //todo 灏佽璇锋眰涓殑 澶翠俊鎭�
this.getRequestInfo(request, headers);
+ //todo 灏嗘帴鍙g紪鐮侊紙鏈嶅姟缂栫爜锛� 鏀惧叆澶翠俊鎭� 閫氳繃澶翠俊鎭殑鏂瑰紡 浼犻�掑埌鍚庣
headers.put(CommonConstant.HTTP_SERVICE, service);
+ // todo 璇锋眰鏂瑰紡 鏀惧叆鍒板ご淇℃伅
headers.put(CommonConstant.HTTP_METHOD, CommonConstant.HTTP_METHOD_POST);
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", service, postInfo, headers);
+ //todo 鑾峰彇鐢� PageProcessAspect aop 鎷︽埅灏佽鐨� pd 椤甸潰鏁版嵁瀵硅薄
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+ //todo 鏍规嵁鐧诲綍鐢ㄦ埛 鐨勬潈闄� 鏍¢獙 鐢ㄦ埛鏄惁鏈夋潈闄愯闂鎺ュ彛,姝ゆ椂鐨�"/app/" + service 涓� 寮�鍙戣繖璐︽埛 鑿滃崟鏉冮檺涓嬬殑璧勬簮鍦板潃
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + service);
- responseEntity = apiSMOImpl.doApi(postInfo, headers, request);
+ //todo 杩涘叆 鎺ュ彛鐩稿叧 涓氬姟澶勭悊
+ responseEntity = apiSMOImpl.doApi(postInfo, headers,request);
//todo 鍐欏叆 token
- wirteToken(request, pd, service, responseEntity);
+ wirteToken(request,pd,service,responseEntity);
} catch (Throwable e) {
logger.error("璇锋眰post 鏂规硶[" + service + "]澶辫触锛�" + postInfo, e);
- responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
@@ -107,42 +114,7 @@
}
/**
- * 鍐欏叆 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);
- }
-
- /**
- * 璧勬簮璇锋眰 get鏂瑰紡
+ * 璧勬簮璇锋眰 get鏂瑰紡 缁熶竴鍏ュ彛绫�
*
* @param service 璇锋眰鎺ュ彛鏂瑰紡
* @param request 璇锋眰瀵硅薄 鏌ヨ澶翠俊鎭� url绛変俊鎭�
@@ -158,17 +130,23 @@
ResponseEntity<String> responseEntity = null;
try {
Map<String, String> headers = new HashMap<String, String>();
+ //todo 灏佽璇锋眰涓殑 澶翠俊鎭�
this.getRequestInfo(request, headers);
+ //todo 灏嗘帴鍙g紪鐮侊紙鏈嶅姟缂栫爜锛� 鏀惧叆澶翠俊鎭� 閫氳繃澶翠俊鎭殑鏂瑰紡 浼犻�掑埌鍚庣
headers.put(CommonConstant.HTTP_SERVICE, service);
+ // todo 璇锋眰鏂瑰紡 鏀惧叆鍒板ご淇℃伅
headers.put(CommonConstant.HTTP_METHOD, CommonConstant.HTTP_METHOD_GET);
logger.debug("api锛歿} 璇锋眰鎶ユ枃涓猴細{},header淇℃伅涓猴細{}", "", headers);
+ //todo 鑾峰彇鐢� PageProcessAspect aop 鎷︽埅灏佽鐨� pd 椤甸潰鏁版嵁瀵硅薄
IPageData pd = (IPageData) request.getAttribute(CommonConstant.CONTEXT_PAGE_DATA);
+ //todo 鏍规嵁鐧诲綍鐢ㄦ埛 鐨勬潈闄� 鏍¢獙 鐢ㄦ埛鏄惁鏈夋潈闄愯闂鎺ュ彛,姝ゆ椂鐨�"/app/" + service 涓� 寮�鍙戣繖璐︽埛 鑿滃崟鏉冮檺涓嬬殑璧勬簮鍦板潃
privilegeSMOImpl.hasPrivilege(restTemplate, pd, "/app/" + service);
+ //todo 杩涘叆 鎺ュ彛鐩稿叧 涓氬姟澶勭悊
responseEntity = apiSMOImpl.doApi(JSONObject.toJSONString(getParameterStringMap(request)), headers, request);
} catch (Throwable e) {
logger.error("璇锋眰get 鏂规硶[" + service + "]澶辫触锛�", e);
- responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
@@ -205,7 +183,7 @@
//responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
} catch (Throwable e) {
logger.error("璇锋眰get 鏂规硶[" + action + "]澶辫触锛�", e);
- responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", action, responseEntity);
@@ -241,55 +219,15 @@
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);
} catch (Throwable e) {
logger.error("璇锋眰post 鏂规硶[" + action + "]澶辫触锛�" + postInfo, e);
- responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", action, responseEntity);
return responseEntity;
}
-
-
- /**
- * 澶栭儴绯荤粺浣跨敤
- * 瀵规帴涓�浜涘ぇ绯荤粺鏃� 浠栦滑涓嶄細鎸夌収HC鐨勮姹�
- *
- * @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;
- }
-
/**
* 璧勬簮璇锋眰 put鏂瑰紡
@@ -320,7 +258,7 @@
//responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
} catch (Throwable e) {
logger.error("璇锋眰put 鏂规硶[" + service + "]澶辫触锛�", e);
- responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, responseEntity);
return responseEntity;
@@ -353,10 +291,93 @@
//responseEntity = apiServiceSMOImpl.service(JSONObject.toJSONString(getParameterStringMap(request)), headers);
} catch (Throwable e) {
logger.error("璇锋眰delete 鏂规硶[" + service + "]澶辫触锛�", e);
- responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+ responseEntity = ResultVo.error("璇锋眰鍙戠敓寮傚父锛�" + e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
}
logger.debug("api锛歿} 杩斿洖淇℃伅涓猴細{}", service, 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);
+ IPageData newPd = PageData.newInstance().builder(pd.getUserId(), pd.getUserName(), pd.getToken(), pd.getReqData(),
+ "", "", "", pd.getSessionId(), appId, pd.getPayerObjId(), pd.getPayerObjType(), pd.getEndTime());
+ request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA,newPd);
+ privilegeSMOImpl.hasPrivilege(restTemplate, newPd, "/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,
+ @RequestBody String postInfo,
+ 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);
+ IPageData newPd = PageData.newInstance().builder(pd.getUserId(), pd.getUserName(), pd.getToken(), postInfo,
+ "", "", "", pd.getSessionId(), appId, pd.getPayerObjId(), pd.getPayerObjType(), pd.getEndTime());
+ request.setAttribute(CommonConstant.CONTEXT_PAGE_DATA,newPd);
+ privilegeSMOImpl.hasPrivilege(restTemplate, newPd, "/app/" + serviceCode);
+ responseEntity = apiSMOImpl.doApi(postInfo, 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;
}
@@ -393,10 +414,44 @@
if ("userId".equals(key)) {
headers.put("user_id", claims.get(key));
}
- if ("userName".equals(key)) {
+ if("userName".equals(key)){
headers.put("userName", "-");
}
headers.put(key, claims.get(key));
}
}
+
+ /**
+ * 鍐欏叆 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);
+ }
}
--
Gitblit v1.8.0