Explorar el Código

优化 boot版代码

java110 hace 3 años
padre
commit
67f6c21e22

+ 2 - 1
java110-service/src/main/java/com/java110/service/init/ServiceStartInit.java

@@ -24,7 +24,8 @@ public class ServiceStartInit {
             ApplicationContextFactory.setApplicationContext(context);
             env = context.getEnvironment();
 
-            String logSwitch = env.getProperty(EnvironmentConstant.LOG_SWITCH);
+            //String logSwitch = env.getProperty(EnvironmentConstant.LOG_SWITCH);
+            String logSwitch = "ON";
             if (!StringUtil.isEmpty(logSwitch)) {
                 //设置日志级别
                 SystemLogDto.setLogSwatch(logSwitch);

+ 1 - 1
service-api/src/main/java/com/java110/api/listener/resourceStore/SaveStorehouseListener.java

@@ -39,7 +39,7 @@ public class SaveStorehouseListener extends AbstractServiceApiPlusListener {
         storehouseDto.setStoreId(reqJson.getString("storeId"));
         int flag  =  storehouseInnerServiceSMOImpl.queryStorehousesCount(storehouseDto);
 
-        if(flag < 1){
+        if(flag > 0){
             throw new IllegalArgumentException("已存在仓库");
         }
     }

+ 3 - 2
service-store/src/main/java/com/java110/store/cmd/store/UserHasStoreCmd.java

@@ -9,6 +9,7 @@ import com.java110.service.context.DataQuery;
 import com.java110.service.smo.IQueryServiceSMO;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
+import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -17,7 +18,7 @@ import org.springframework.http.ResponseEntity;
  * 查询用户是否存在 商户信息
  */
 @Java110Cmd(serviceCode = "query.store.byuser")
-public class UserHasStoreCmd extends Cmd {
+public class QueryStoreByUserCmd extends Cmd {
     @Autowired
     private IQueryServiceSMO queryServiceSMOImpl;
 
@@ -44,7 +45,7 @@ public class UserHasStoreCmd extends Cmd {
 
         String storeInfo = responseEntity.getBody();
         if (Assert.isJsonObject(storeInfo) && JSONObject.parseObject(storeInfo).containsKey("storeId")) {
-            context.setResponseEntity(new ResponseEntity<>("有商户信息", HttpStatus.OK));
+            context.setResponseEntity(responseEntity);
             return;
         }
         context.setResponseEntity(new ResponseEntity<>("初始化商户", HttpStatus.FORBIDDEN));

+ 82 - 0
service-user/src/main/java/com/java110/user/cmd/user/GetUserInfoCmd.java

@@ -0,0 +1,82 @@
+package com.java110.user.cmd.user;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.store.StoreDto;
+import com.java110.intf.store.IStoreV1InnerServiceSMO;
+import com.java110.service.context.DataQuery;
+import com.java110.service.smo.IQueryServiceSMO;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+@Java110Cmd(serviceCode = "user.getUserInfo")
+public class GetUserInfoCmd extends Cmd {
+
+    @Autowired
+    private IQueryServiceSMO queryServiceSMOImpl;
+
+    @Autowired
+    private IStoreV1InnerServiceSMO storeV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        String userId = context.getReqHeaders().get("user-id");
+        String storeId = context.getReqHeaders().get("store-id");
+        DataQuery dataQuery = new DataQuery();
+        dataQuery.setServiceCode("query.user.userInfo");
+        JSONObject param = new JSONObject();
+        param.put("userId", userId);
+        dataQuery.setRequestParams(param);
+        queryServiceSMOImpl.commonQueryService(dataQuery);
+        ResponseEntity<String> responseEntity = dataQuery.getResponseEntity();
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            context.setResponseEntity(responseEntity);
+            return;
+        }
+        JSONObject tmpUserInfo = JSONObject.parseObject(responseEntity.getBody().toString());
+        JSONObject resultUserInfo = new JSONObject();
+
+
+        if (!StringUtil.isEmpty(storeId)) {
+            StoreDto storeDto = new StoreDto();
+            storeDto.setStoreId(storeId);
+            storeDto.setPage(1);
+            storeDto.setRow(1);
+            List<StoreDto> storeDtos = storeV1InnerServiceSMOImpl.queryStores(storeDto);
+            if (storeDtos != null && storeDtos.size() > 0) {
+                resultUserInfo.put("storeTypeCd", storeDtos.get(0).getStoreTypeCd());
+            }
+        }
+
+        resultUserInfo.put("name", tmpUserInfo.getString("name"));
+        resultUserInfo.put("address", tmpUserInfo.getString("address"));
+        resultUserInfo.put("sex", tmpUserInfo.getString("sex"));
+        resultUserInfo.put("localtionCd", tmpUserInfo.getString("localtionCd"));
+        resultUserInfo.put("levelCd", tmpUserInfo.getString("levelCd"));
+        //resultUserInfo.put("tel", CommonUtil.mobileEncrypt(tmpUserInfo.getString("tel")));
+        resultUserInfo.put("tel", tmpUserInfo.getString("tel")); // 这里不加密了 因为前台很多地方直接 关联出 用户的手机号 所以 加密了 没法处理 modify by wuxw 2022-07-04
+        resultUserInfo.put("email", tmpUserInfo.getString("email"));
+        resultUserInfo.put("userId", tmpUserInfo.getString("userId"));
+        String watermark = MappingCache.getValue("watermark");
+        resultUserInfo.put("watermark", watermark);
+
+        responseEntity = new ResponseEntity<String>(resultUserInfo.toJSONString(), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 1 - 1
service-user/src/main/java/com/java110/user/cmd/user/QueryUserPrivilege.java

@@ -34,7 +34,7 @@ public class QueryUserPrivilege extends Cmd {
         String storeId = context.getReqHeaders().get("store-id");
 
         Assert.hasLength(userId, "未包含用户");
-        Assert.hasLength(storeId, "未包含户");
+        Assert.hasLength(storeId, "未包含户");
     }
 
     @Override

+ 5 - 2
springboot/src/main/java/com/java110/boot/smo/DefaultAbstractComponentSMO.java

@@ -51,6 +51,9 @@ public class DefaultAbstractComponentSMO extends AbstractComponentSMO {
     @Autowired
     private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
+    @Autowired
+    private IGetCommunityStoreInfoSMO getCommunityStoreInfoSMOImpl;
+
     //微信支付
     public static final String DOMAIN_WECHAT_PAY = "WECHAT_PAY";
     // 微信服务商支付开关
@@ -379,8 +382,8 @@ public class DefaultAbstractComponentSMO extends AbstractComponentSMO {
     protected ResponseEntity<String> getStoreInfo(IPageData pd, RestTemplate restTemplate) {
         Assert.hasLength(pd.getUserId(), "用户未登录请先登录");
 
-        ResultVo resultVo = null;
-
+        ResultVo resultVo = getCommunityStoreInfoSMOImpl.getStoreInfo(pd, restTemplate, pd.getUserId());
+        logger.debug("查询商户信息 getStoreInfo :{}",resultVo.toString());
         return new ResponseEntity<String>(resultVo.getMsg(), resultVo.getCode() == ResultVo.CODE_OK ? HttpStatus.OK : HttpStatus.BAD_REQUEST);
     }
 

+ 91 - 0
springboot/src/main/java/com/java110/boot/smo/GetCommunityStoreInfoSMOImpl.java

@@ -0,0 +1,91 @@
+package com.java110.boot.smo;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.cache.Java110RedisConfig;
+import com.java110.core.context.IPageData;
+import com.java110.core.context.SecureInvocation;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.util.Assert;
+import com.java110.vo.ResultVo;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+@Service
+public class GetCommunityStoreInfoSMOImpl extends DefaultAbstractComponentSMO implements IGetCommunityStoreInfoSMO {
+
+    private static final String BASE_PRIVILEGE = "JAVA110_BASE_PRIVILEGE";
+
+    @Override
+    @Cacheable(value = "getStoreInfo" + Java110RedisConfig.GET_STORE_INFO_EXPIRE_TIME_KEY, key = "#userId")
+    public ResultVo getStoreInfo(IPageData pd, RestTemplate restTemplate, String userId) {
+
+
+        Assert.hasLength(pd.getUserId(), "用户未登录请先登录");
+        ResponseEntity<String> responseEntity = null;
+        responseEntity = super.callCenterService(restTemplate, pd, "", "query.store.byuser?userId=" + userId, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            throw new IllegalArgumentException(responseEntity.getBody());
+        }
+        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
+    }
+
+    @Override
+    @Cacheable(value = "getStoreEnterCommunitys" + Java110RedisConfig.GET_STORE_ENTER_COMMUNITYS_EXPIRE_TIME_KEY, key = "#storeId")
+    public ResultVo getStoreEnterCommunitys(IPageData pd, String storeId, String storeTypeCd, RestTemplate restTemplate) {
+        ResponseEntity<String> responseEntity = null;
+//        responseEntity = CallApiServiceFactory.callCenterService(restTemplate, pd, "",
+//                "query.myCommunity.byMember?memberId=" + storeId + "&memberTypeCd="
+//                        + MappingCache.getValue(MappingConstant.DOMAIN_STORE_TYPE_2_COMMUNITY_MEMBER_TYPE, storeTypeCd), HttpMethod.GET);
+
+        responseEntity = super.callCenterService(restTemplate, pd, "",
+                "/communitys/queryStoreCommunitys?memberId=" + storeId + "&memberTypeCd="
+                        + MappingCache.getValue(MappingConstant.DOMAIN_STORE_TYPE_2_COMMUNITY_MEMBER_TYPE, storeTypeCd), HttpMethod.GET);
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            throw new IllegalArgumentException(responseEntity.getBody());
+        }
+        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
+    }
+
+    @Override
+    @Cacheable(value = "getUserPrivileges" + Java110RedisConfig.DEFAULT_EXPIRE_TIME_KEY, key = "#staffId")
+    public ResultVo getUserPrivileges(IPageData pd, String staffId, String storeTypeCd, RestTemplate restTemplate) {
+
+        ResponseEntity<String> privilegeGroup = super.callCenterService(restTemplate, pd, "",
+                "query.user.privilege?userId=" + staffId + "&domain=" + storeTypeCd, HttpMethod.GET);
+        if (privilegeGroup.getStatusCode() != HttpStatus.OK) {
+            throw new IllegalArgumentException(privilegeGroup.getBody());
+        }
+        return new ResultVo(privilegeGroup.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, privilegeGroup.getBody());
+
+    }
+
+    @Cacheable(value = "checkUserHasResourceListener" + Java110RedisConfig.DEFAULT_EXPIRE_TIME_KEY, key = "#cacheKey")
+    public ResultVo checkUserHasResourceListener(RestTemplate restTemplate, IPageData pd, JSONObject paramIn, String cacheKey) {
+        ResponseEntity<String> responseEntity = null;
+        responseEntity = super.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                "basePrivilege.CheckUserHasResourceListener",
+                HttpMethod.POST);
+
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            throw new IllegalArgumentException(responseEntity.getBody());
+        }
+
+        JSONObject data = JSONObject.parseObject(responseEntity.getBody());
+
+        JSONArray privileges = data.getJSONArray("privileges");
+
+        if(!SecureInvocation.secure(this.getClass())){
+            return new ResultVo(ResultVo.CODE_OK,privileges.toJSONString(),ResultVo.EMPTY_ARRAY);
+        }
+
+        return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, privileges.toJSONString());
+
+    }
+}

+ 26 - 0
springboot/src/main/java/com/java110/boot/smo/IGetCommunityStoreInfoSMO.java

@@ -0,0 +1,26 @@
+package com.java110.boot.smo;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.IPageData;
+import com.java110.vo.ResultVo;
+import org.springframework.web.client.RestTemplate;
+
+public interface IGetCommunityStoreInfoSMO {
+
+    ResultVo getStoreInfo(IPageData pd, RestTemplate restTemplate, String userId);
+
+    ResultVo getStoreEnterCommunitys(IPageData pd, String storeId, String storeTypeCd, RestTemplate restTemplate);
+
+    /**
+     * 查询用户权限
+     * @param pd
+     * @param storeId
+     * @param storeTypeCd
+     * @param restTemplate
+     * @return
+     */
+    ResultVo getUserPrivileges(IPageData pd, String storeId, String storeTypeCd, RestTemplate restTemplate);
+
+
+    ResultVo checkUserHasResourceListener(RestTemplate restTemplate, IPageData pd, JSONObject paramIn, String cacheKey);
+}

+ 4 - 0
springboot/src/main/java/com/java110/boot/smo/api/impl/ApiSMOImpl.java

@@ -8,6 +8,7 @@ import com.java110.core.context.IPageData;
 import com.java110.core.log.LoggerFactory;
 import com.java110.dto.store.StoreDto;
 import com.java110.entity.component.ComponentValidateResult;
+import com.java110.intf.store.IStoreV1InnerServiceSMO;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
@@ -29,6 +30,9 @@ public class ApiSMOImpl extends DefaultAbstractComponentSMO implements IApiSMO {
     @Autowired
     private IApiServiceSMO apiServiceSMOImpl;
 
+    @Autowired
+    private IStoreV1InnerServiceSMO storeV1InnerServiceSMOImpl;
+
     private final static Logger logger = LoggerFactory.getLogger(ApiSMOImpl.class);
 
     @Autowired