wuxw 1 рік тому
батько
коміт
3d571a3e5e

+ 20 - 0
java110-core/src/main/java/com/java110/core/context/CmdContextUtils.java

@@ -138,6 +138,26 @@ public class CmdContextUtils {
         return "";
     }
 
+    /**
+     * 查询商户storeTypeCd
+     *
+     * @param context
+     * @return
+     */
+    public static final String getStoreTypeCd(ICmdDataFlowContext context) {
+        if (context == null) {
+            return "";
+        }
+
+        Map<String, String> headers = context.getReqHeaders();
+
+        if (headers.containsKey(CommonConstant.STORE_TYPE_CD)) {
+            return headers.get(CommonConstant.STORE_TYPE_CD);
+        }
+        return "";
+    }
+
+
     public static final String getLang(ICmdDataFlowContext context) {
         if (context == null) {
             return "";

+ 15 - 0
java110-core/src/main/java/com/java110/core/event/cmd/Cmd.java

@@ -1,6 +1,10 @@
 package com.java110.core.event.cmd;
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.core.context.CmdContextUtils;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.dto.store.StoreDto;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import org.slf4j.Logger;
 import com.java110.core.log.LoggerFactory;
@@ -23,6 +27,17 @@ public abstract class Cmd implements ServiceCmdListener {
         Assert.jsonObjectHaveKey(reqJson, "page", "请求中未包含page信息");
         Assert.jsonObjectHaveKey(reqJson, "row", "请求中未包含row信息");
     }
+    /**
+     * 分页信息校验
+     *
+     * @param context
+     */
+    protected void validateAdmin(ICmdDataFlowContext context) {
+        String storeTypeCd = CmdContextUtils.getStoreTypeCd(context);
+        if(!StoreDto.STORE_TYPE_ADMIN.equals(storeTypeCd)){
+            throw new CmdException("该接口只能运营团队调用");
+        }
+    }
 //
 //    @Override
 //

+ 2 - 0
java110-utils/src/main/java/com/java110/utils/constant/CommonConstant.java

@@ -226,6 +226,8 @@ public class CommonConstant {
     //SPAN-ID
     public static final String PARENT_SPAN_ID = "parent-span-id";
 
+    public static final String STORE_TYPE_CD = "store-type-cd";
+
 
     public static String getHttpMethodStr(HttpMethod httpMethod) {
         if (HttpMethod.GET == httpMethod) {

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

@@ -104,6 +104,10 @@ public class ApiSMOImpl extends DefaultAbstractComponentSMO implements IApiSMO {
             headers.remove("store-id");
             headers.put("store-id", result.getStoreId());
         }
+        if (!StringUtil.isEmpty(result.getStoreTypeCd())) {
+            headers.remove(CommonConstant.STORE_TYPE_CD);
+            headers.put(CommonConstant.STORE_TYPE_CD, result.getStoreTypeCd());
+        }
 
         if (!headers.containsKey("user_id")) {
             headers.put("user_id", "-1");

+ 1 - 0
service-common/src/main/java/com/java110/common/cmd/corders/ListCordersCmd.java

@@ -28,6 +28,7 @@ public class ListCordersCmd extends Cmd {
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         super.validatePageInfo(reqJson);
+        super.validateAdmin(context);
     }
 
     @Override

+ 7 - 7
service-user/src/main/java/com/java110/user/cmd/buildingOwner/SaveBuildingOwnerCmd.java

@@ -55,12 +55,12 @@ public class SaveBuildingOwnerCmd extends Cmd {
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "memberId", "请求报文中未包含memberId");
-Assert.hasKeyAndValue(reqJson, "ownerId", "请求报文中未包含ownerId");
-Assert.hasKeyAndValue(reqJson, "name", "请求报文中未包含name");
-Assert.hasKeyAndValue(reqJson, "sex", "请求报文中未包含sex");
-Assert.hasKeyAndValue(reqJson, "age", "请求报文中未包含age");
-Assert.hasKeyAndValue(reqJson, "link", "请求报文中未包含link");
-Assert.hasKeyAndValue(reqJson, "userId", "请求报文中未包含userId");
+        Assert.hasKeyAndValue(reqJson, "ownerId", "请求报文中未包含ownerId");
+        Assert.hasKeyAndValue(reqJson, "name", "请求报文中未包含name");
+        Assert.hasKeyAndValue(reqJson, "sex", "请求报文中未包含sex");
+        Assert.hasKeyAndValue(reqJson, "age", "请求报文中未包含age");
+        Assert.hasKeyAndValue(reqJson, "link", "请求报文中未包含link");
+        Assert.hasKeyAndValue(reqJson, "userId", "请求报文中未包含userId");
 
     }
 
@@ -68,7 +68,7 @@ Assert.hasKeyAndValue(reqJson, "userId", "请求报文中未包含userId");
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       OwnerPo OwnerPo = BeanConvertUtil.covertBean(reqJson, OwnerPo.class);
+        OwnerPo OwnerPo = BeanConvertUtil.covertBean(reqJson, OwnerPo.class);
         OwnerPo.setMemberId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
         int flag = buildingOwnerV1InnerServiceSMOImpl.saveBuildingOwner(OwnerPo);
 

+ 13 - 3
service-user/src/main/java/com/java110/user/cmd/user/UserStaffModifyCmd.java

@@ -3,6 +3,7 @@ package com.java110.user.cmd.user;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.CmdContextUtils;
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
@@ -105,6 +106,14 @@ public class UserStaffModifyCmd extends Cmd {
         //校验json 格式中是否包含 name,email,levelCd,tel
         Assert.jsonObjectHaveKey(reqJson, "name", "请求参数中未包含name 节点,请确认");
         Assert.jsonObjectHaveKey(reqJson, "tel", "请求参数中未包含tel 节点,请确认");
+        StoreUserDto storeUserDto = new StoreUserDto();
+        storeUserDto.setUserId(reqJson.getString("staffId"));
+        storeUserDto.setStoreId(CmdContextUtils.getStoreId(context));
+        List<StoreUserDto> storeUserDtos = storeUserV1InnerServiceSMOImpl.queryStoreUsers(storeUserDto);
+
+        if (ListUtil.isNull(storeUserDtos)) {
+            throw new CmdException("修改员工不是贵公司员工");
+        }
     }
 
     @Override
@@ -128,7 +137,7 @@ public class UserStaffModifyCmd extends Cmd {
             fileRelDto.setRelTypeCd("12000");
             fileRelDto.setObjId(reqJson.getString("userId"));
             List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
-            if (fileRelDtos == null || fileRelDtos.size() == 0) {
+            if (ListUtil.isNull(fileRelDtos)) {
                 JSONObject businessUnit = new JSONObject();
                 businessUnit.put("fileRelId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
                 businessUnit.put("relTypeCd", "12000");
@@ -182,7 +191,7 @@ public class UserStaffModifyCmd extends Cmd {
         }
 
         //todo 修改身份证
-        updateStaffIdCard(users.get(0),paramObj);
+        updateStaffIdCard(users.get(0), paramObj);
 
         StoreUserDto storeUserDto = new StoreUserDto();
         storeUserDto.setUserId(userPo.getUserId());
@@ -225,6 +234,7 @@ public class UserStaffModifyCmd extends Cmd {
 
     /**
      * 修改员工身份证号
+     *
      * @param userDto
      * @param paramObj
      */
@@ -239,7 +249,7 @@ public class UserStaffModifyCmd extends Cmd {
         userAttrDto.setSpecCd(UserAttrDto.SPEC_ID_CARD);
         List<UserAttrDto> userAttrDtos = userAttrV1InnerServiceSMOImpl.queryUserAttrs(userAttrDto);
 
-        if(!ListUtil.isNull(userAttrDtos)){
+        if (!ListUtil.isNull(userAttrDtos)) {
             UserAttrPo userAttrPo = new UserAttrPo();
             userAttrPo.setAttrId(userAttrDtos.get(0).getAttrId());
             userAttrV1InnerServiceSMOImpl.deleteUserAttr(userAttrPo);