wuxw 7 lat temu
rodzic
commit
4a5ef041ba

+ 31 - 0
StoreService/doc/addStaff.json

@@ -0,0 +1,31 @@
+{
+  "orders": {
+    "appId": "外系统ID,分配得到",
+    "transactionId": "100000000020180409224736000001",
+    "userId": "用户ID",
+    "orderTypeCd": "订单类型,查询,受理",
+    "requestTime": "20180409224736",
+    "remark": "备注",
+    "sign": "这个服务是否要求MD5签名",
+    "attrs": [{
+      "specCd": "配置的字段ID",
+      "value": "具体值"
+    }]
+  },
+  "business": [{
+    "serviceCode": "save.store.info",
+    "serviceName": "保存商户信息",
+    "remark": "备注",
+    "datas": {
+      "businessStoreUser": {
+        "storeId": "-1",
+        "userId": "用户ID",
+        "relCd": "齐天超时(王府井店)",
+      }
+    },
+    "attrs": [{
+      "specCd": "配置的字段ID",
+      "value": "具体值"
+    }]
+  }]
+}

+ 42 - 0
StoreService/src/main/java/com/java110/store/dao/IStoreServiceDao.java

@@ -222,4 +222,46 @@ public interface IStoreServiceDao {
      */
     public void updateMemberStoreInstance(Map info) throws DAOException;
 
+
+    /**
+     * 保存商户用户信息
+     * @param info
+     * @throws DAOException
+     */
+    public void saveBusinessStoreUser(Map info) throws DAOException;
+
+
+    /**
+     * 查询物业用户信息
+     * @param info bId 信息
+     * @return 物业照片
+     * @throws DAOException
+     */
+    public List<Map> getBusinessStoreUser(Map info) throws DAOException;
+
+
+    /**
+     * 保存 物业用户信息 Business数据到 Instance中
+     * @param info
+     * @throws DAOException
+     */
+    public void saveStoreUserInstance(Map info) throws DAOException;
+
+
+    /**
+     * 查询物业用户信息(instance 过程)
+     * @param info bId 信息
+     * @return 物业照片
+     * @throws DAOException
+     */
+    public List<Map> getStoreUser(Map info) throws DAOException;
+
+
+    /**
+     * 修改物业用户信息
+     * @param info 修改信息
+     * @throws DAOException
+     */
+    public void updateStoreUserInstance(Map info) throws DAOException;
+
 }

+ 142 - 0
StoreService/src/main/java/com/java110/store/listener/SaveStoreUserListener.java

@@ -0,0 +1,142 @@
+package com.java110.store.listener;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.BusinessTypeConstant;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.StatusConstant;
+import com.java110.common.exception.ListenerExecuteException;
+import com.java110.common.util.Assert;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.entity.center.Business;
+import com.java110.store.dao.IStoreServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by wuxw on 2019/3/27.
+ */
+
+@Java110Listener("saveStoreUserListener")
+@Transactional
+public class SaveStoreUserListener extends AbstractStoreBusinessServiceDataFlowListener{
+    private final static Logger logger = LoggerFactory.getLogger(SaveStoreUserListener.class);
+
+    @Autowired
+    IStoreServiceDao storeServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    @Override
+    public String getBusinessTypeCd() {
+        return BusinessTypeConstant.BUSINESS_TYPE_SAVE_STORE_USER;
+    }
+
+    /**
+     * 保存物业信息 business 表中
+     * @param dataFlowContext 数据对象
+     * @param business 当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+        Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
+
+        //处理 businessStore 节点
+        if(!data.containsKey("businessStoreUser")){
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"没有businessStoreUser节点");
+        }
+
+
+        JSONArray businessStoreUsers = data.getJSONArray("businessStoreUser");
+        doBusinessStoreUser(business,businessStoreUsers);
+    }
+
+    /**
+     * business 数据转移到 instance
+     * @param dataFlowContext 数据对象
+     * @param business 当前业务对象
+     */
+    @Override
+    protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Map info = new HashMap();
+        info.put("bId",business.getbId());
+        info.put("operate", StatusConstant.OPERATE_ADD);
+
+        //物业用户
+        List<Map> businessStoreUsers = storeServiceDaoImpl.getBusinessStoreUser(info);
+        if(businessStoreUsers != null && businessStoreUsers.size() >0){
+            storeServiceDaoImpl.saveStoreUserInstance(info);
+        }
+    }
+
+    /**
+     * 撤单
+     * @param dataFlowContext 数据对象
+     * @param business 当前业务对象
+     */
+    @Override
+    protected void doRecover(DataFlowContext dataFlowContext, Business business) {
+        String bId = business.getbId();
+        //Assert.hasLength(bId,"请求报文中没有包含 bId");
+        Map info = new HashMap();
+        info.put("bId",bId);
+        info.put("statusCd",StatusConstant.STATUS_CD_VALID);
+        Map paramIn = new HashMap();
+        paramIn.put("bId",bId);
+        paramIn.put("statusCd",StatusConstant.STATUS_CD_INVALID);
+        //物业照片
+        List<Map> storeUsers = storeServiceDaoImpl.getStoreUser(info);
+        if(storeUsers != null && storeUsers.size()>0){
+            storeServiceDaoImpl.updateStoreUserInstance(paramIn);
+        }
+    }
+
+
+    /**
+     * 处理 businessStore 节点
+     * @param business 总的数据节点
+     * @param businessStoreUsers 物业用户节点
+     */
+    private void doBusinessStoreUser(Business business,JSONArray businessStoreUsers){
+
+
+        for(int businessStoreUserIndex = 0 ;businessStoreUserIndex < businessStoreUsers.size();businessStoreUserIndex++) {
+            JSONObject businessStoreUser = businessStoreUsers.getJSONObject(businessStoreUserIndex);
+            Assert.jsonObjectHaveKey(businessStoreUser,"storeId","businessStoreUser 节点下没有包含 storeId 节点");
+            Assert.jsonObjectHaveKey(businessStoreUser,"userId","businessStoreUser 节点下没有包含 userId 节点");
+
+            if(businessStoreUser.getString("storeUserId").startsWith("-")){
+                String storeUserId = GenerateCodeFactory.getStoreUserId();
+                businessStoreUser.put("storeUserId", storeUserId);
+            }
+            businessStoreUser.put("bId",business.getbId());
+            businessStoreUser.put("operate", StatusConstant.OPERATE_ADD);
+            //保存物业信息
+            storeServiceDaoImpl.saveBusinessStoreUser(businessStoreUser);
+        }
+
+    }
+
+
+    public IStoreServiceDao getStoreServiceDaoImpl() {
+        return storeServiceDaoImpl;
+    }
+
+    public void setStoreServiceDaoImpl(IStoreServiceDao storeServiceDaoImpl) {
+        this.storeServiceDaoImpl = storeServiceDaoImpl;
+    }
+}

+ 13 - 0
java110-common/src/main/java/com/java110/common/constant/BusinessTypeConstant.java

@@ -87,6 +87,19 @@ public class BusinessTypeConstant {
     public static final String BUSINESS_TYPE_DELETE_STORE_INFO = "200100050001";
 
 
+    /**
+     * 保存商户员工
+     */
+    public static final String BUSINESS_TYPE_SAVE_STORE_USER = "200100060001";
+
+
+
+    /**
+     * 删除商户员工
+     */
+    public static final String BUSINESS_TYPE_DELETE_STORE_USER = "200100070001";
+
+
     /**
      * 保存商品信息
      */

+ 11 - 0
java110-common/src/main/java/com/java110/common/constant/ServiceCodeConstant.java

@@ -115,6 +115,17 @@ public class ServiceCodeConstant {
      */
     public static final String SERVICE_CODE_DELETE_STORE_INFO = "delete.store.info";
 
+    /**
+     * 添加商户员工
+     */
+    public static final String SERVICE_CODE_SAVE_STORE_USER = "save.store.user";
+
+
+    /**
+     * 删除商户员工
+     */
+    public static final String SERVICE_CODE_DELETE_STORE_USER = "delete.store.user";
+
 
     /**
      * 商户成员加入信息

+ 15 - 0
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java

@@ -52,6 +52,7 @@ public class GenerateCodeFactory {
         prefixMap.put("storePhotoId","41");
         prefixMap.put("storeCerdentialsId","42");
         prefixMap.put("memberStoreId","43");
+        prefixMap.put("propertyStoreId","44");
         prefixMap.put("shopId","50");
         prefixMap.put("shopAttrId","51");
         prefixMap.put("shopPhotoId","52");
@@ -251,6 +252,20 @@ public class GenerateCodeFactory {
     }
 
 
+    /**
+     *
+     * @return
+     * @throws GenerateCodeException
+     */
+    public static String getStoreUserId()  throws GenerateCodeException{
+        if(!MappingConstant.VALUE_ON.equals(MappingCache.getValue(MappingConstant.KEY_NEED_INVOKE_GENERATE_ID))){
+            return prefixMap.get("storeUserId") +DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_H)+ nextId("%04d");
+        }
+        //调用服务
+        return getCode(prefixMap.get("storeUserId"));
+    }
+
+
     /**
      * 获取小区ID
      * @return