Просмотр исходного кода

修改用户完善,停用用户,恢复用户功能实现

wuxw лет назад: 7
Родитель
Сommit
14498c57ff

+ 92 - 0
Api/src/main/java/com/java110/api/listener/users/DisableStaffServiceListener.java

@@ -0,0 +1,92 @@
+package com.java110.api.listener.users;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.common.cache.MappingCache;
+import com.java110.common.constant.CommonConstant;
+import com.java110.common.constant.MappingConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+import com.java110.common.constant.UserLevelConstant;
+import com.java110.common.util.Assert;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+
+/**
+ * 员工停用接口
+ * @author wuxw
+ * @create 2018-12-08 下午2:46
+ * @desc 停用员工信息,如离职等情况 员工账号信息停用处理
+ **/
+@Java110Listener("disableStaffServiceListener")
+public class DisableStaffServiceListener  extends AbstractServiceApiDataFlowListener {
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_USER_STAFF_DISABLE;
+    }
+
+    /**
+     * 接口请求方法
+     * @return
+     */
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.PUT;
+    }
+
+    /**
+     * 业务逻辑处理
+     * 参数要求必须有员工ID
+     * @param event
+     */
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+        //获取数据上下文对象
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        AppService service = event.getAppService();
+        String paramIn = dataFlowContext.getReqData();
+
+        Assert.jsonObjectHaveKey(paramIn,"userId","当前请求报文中未包含userId节点");
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_SERVICE_CODE,ServiceCodeConstant.SERVICE_CODE_SAVE_USER_INFO);
+        business.put(CommonConstant.HTTP_BUSINESS_SERVICE_NAME,"用户注册");
+
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessUser",refreshParamIn(paramIn));
+        HttpHeaders header = new HttpHeaders();
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_USER_ID,"-1");
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD,"D");
+        String paramInObj = super.restToCenterProtocol(business,dataFlowContext.getRequestCurrentHeaders()).toJSONString();
+
+        HttpEntity<String> httpEntity = new HttpEntity<String>(paramInObj, header);
+        //http://user-service/test/sayHello
+        super.doRequest(dataFlowContext, service, httpEntity);
+
+        super.doResponse(dataFlowContext);
+    }
+
+    /**
+     * 对请求报文处理
+     * @param paramIn
+     * @return
+     */
+    private JSONObject refreshParamIn(String paramIn){
+        JSONObject paramObj = JSONObject.parseObject(paramIn);
+        paramObj.put("userId","-1");
+        paramObj.put("levelCd", UserLevelConstant.USER_LEVEL_STAFF);
+        //设置默认密码
+        String staffDefaultPassword = MappingCache.getValue(MappingConstant.KEY_STAFF_DEFAULT_PASSWORD);
+        Assert.isNull(staffDefaultPassword,"映射表中未设置员工默认密码,请检查"+MappingConstant.KEY_STAFF_DEFAULT_PASSWORD);
+
+        paramObj.put("password",staffDefaultPassword);
+        return paramObj;
+    }
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+}

+ 81 - 81
UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java

@@ -45,17 +45,17 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
     @Override
     public int saveDataToBoCust(BoCust boCust) throws RuntimeException{
 
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCust】保存数据入参 : " + boCust);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToBoCust】保存数据入参 : " + boCust);
         int saveFlag = 0;
         try {
 
-            saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToBoCust",boCust);
+            saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveDataToBoCust",boCust);
 
         }catch(RuntimeException e){
-            LoggerEngine.error("----【UserServiceDAOImpl.saveDataToBoCust】保存数据异常 : " ,e);
+            LoggerEngine.error("----【userServiceDaoImpl.saveDataToBoCust】保存数据异常 : " ,e);
             return saveFlag;
         }finally {
-            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCust】保存数据出参 : saveFlag:" + saveFlag);
+            LoggerEngine.debug("----【userServiceDaoImpl.saveDataToBoCust】保存数据出参 : saveFlag:" + saveFlag);
             return saveFlag;
         }
 
@@ -71,16 +71,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
     @Override
     public int saveDataToBoCustAttr(BoCustAttr boCustAttr) throws RuntimeException {
 
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据入参 : " + boCustAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToBoCustAttr】保存数据入参 : " + boCustAttr);
         //为了保险起见,再测检测reqList 是否有值
         if(boCustAttr == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据出错 : " + boCustAttr);
+            LoggerEngine.debug("----【userServiceDaoImpl.saveDataToBoCustAttr】保存数据出错 : " + boCustAttr);
             return 0;
         }
         int saveFlag = 0;
 
-        saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToBoCustAttr",boCustAttr);
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAttr】保存数据出参 :saveFlag " + saveFlag);
+        saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveDataToBoCustAttr",boCustAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToBoCustAttr】保存数据出参 :saveFlag " + saveFlag);
 
         return saveFlag;
 
@@ -94,16 +94,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     @Override
     public int saveDataToCust(Cust cust) throws RuntimeException {
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据入参 : " + cust);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToCust】保存数据入参 : " + cust);
         //为了保险起见,再测检测reqList 是否有值
         if(cust == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出错 : " + cust);
+            LoggerEngine.debug("----【userServiceDaoImpl.saveDataToCust】保存数据出错 : " + cust);
             throw new IllegalArgumentException("请求参数错误,cust : " + cust);
         }
         int saveFlag = 0;
 
-        saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToCust",cust);
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出参 :saveFlag " + saveFlag);
+        saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveDataToCust",cust);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToCust】保存数据出参 :saveFlag " + saveFlag);
 
         return saveFlag;
     }
@@ -116,16 +116,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     @Override
     public int saveDataToCustAttr(CustAttr custAttr) throws RuntimeException {
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据入参 : " + custAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToCust】保存数据入参 : " + custAttr);
         //为了保险起见,再测检测reqList 是否有值
         if(custAttr == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出错 : " + custAttr);
+            LoggerEngine.debug("----【userServiceDaoImpl.saveDataToCust】保存数据出错 : " + custAttr);
             throw new IllegalArgumentException("请求参数错误,custAttr : " + custAttr);
         }
         int saveFlag = 0;
 
-        saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveDataToCustAttr",custAttr);
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToCust】保存数据出参 :saveFlag " + saveFlag);
+        saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveDataToCustAttr",custAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToCust】保存数据出参 :saveFlag " + saveFlag);
 
         return saveFlag;
     }
@@ -137,16 +137,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws RuntimeException
      */
     public int deleteDataToCust(Cust cust) throws RuntimeException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCust】保存数据入参 : " + cust);
+        LoggerEngine.debug("----【userServiceDaoImpl.deleteDataToCust】保存数据入参 : " + cust);
         //为了保险起见,再测检测reqList 是否有值
         if(cust == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCust】保存数据出错 : " + cust);
+            LoggerEngine.debug("----【userServiceDaoImpl.deleteDataToCust】保存数据出错 : " + cust);
             throw new IllegalArgumentException("请求参数错误,cust : " + cust);
         }
         int saveFlag = 0;
 
-        saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.deleteDataToCust",cust);
-        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCust】保存数据出参 :saveFlag " + saveFlag);
+        saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.deleteDataToCust",cust);
+        LoggerEngine.debug("----【userServiceDaoImpl.deleteDataToCust】保存数据出参 :saveFlag " + saveFlag);
 
         return saveFlag;
     }
@@ -158,16 +158,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws RuntimeException
      */
     public int deleteDataToCustAttr(CustAttr custAttr) throws RuntimeException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCustAttr】保存数据入参 : " + custAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.deleteDataToCustAttr】保存数据入参 : " + custAttr);
         //为了保险起见,再测检测reqList 是否有值
         if(custAttr == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCustAttr】保存数据出错 : " + custAttr);
+            LoggerEngine.debug("----【userServiceDaoImpl.deleteDataToCustAttr】保存数据出错 : " + custAttr);
             throw new IllegalArgumentException("请求参数错误,custAttr : " + custAttr);
         }
         int saveFlag = 0;
 
-        saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.deleteDataToCustAttr",custAttr);
-        LoggerEngine.debug("----【UserServiceDAOImpl.deleteDataToCustAttr】保存数据出参 :saveFlag " + saveFlag);
+        saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.deleteDataToCustAttr",custAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.deleteDataToCustAttr】保存数据出参 :saveFlag " + saveFlag);
 
         return saveFlag;
     }
@@ -183,7 +183,7 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
     @Override
     public String saveDataToBoCustAndBoCustAttr(String boCustInfo) throws RuntimeException {
 
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveDataToBoCustAndBoCustAttr】保存数据入参"+boCustInfo);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveDataToBoCustAndBoCustAttr】保存数据入参"+boCustInfo);
 
         return null;
     }
@@ -216,16 +216,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     @Override
     public Cust queryDataToCust(Cust cust) throws RuntimeException {
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据入参 : " + cust);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryDataToCust】保存数据入参 : " + cust);
         //为了保险起见,再测检测reqList 是否有值
         if(cust == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据出错 : " + cust);
+            LoggerEngine.debug("----【userServiceDaoImpl.queryDataToCust】保存数据出错 : " + cust);
             throw new IllegalArgumentException("请求参数错误,cust : " + cust);
         }
 
-        Cust newCust  = sqlSessionTemplate.selectOne("userServiceDAOImpl.queryDataToCust",cust);
+        Cust newCust  = sqlSessionTemplate.selectOne("userServiceDaoImpl.queryDataToCust",cust);
 
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据出参 :newCust " + newCust);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryDataToCust】保存数据出参 :newCust " + newCust);
 
         return newCust;
     }
@@ -239,16 +239,16 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     @Override
     public List<CustAttr> queryDataToCustAttr(CustAttr custAttr) throws RuntimeException {
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCustAttr】保存数据入参 : " + custAttr);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryDataToCustAttr】保存数据入参 : " + custAttr);
         //为了保险起见,再测检测reqList 是否有值
         if(custAttr == null){
-            LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据出错 : " + custAttr);
+            LoggerEngine.debug("----【userServiceDaoImpl.queryDataToCust】保存数据出错 : " + custAttr);
             throw new IllegalArgumentException("请求参数错误,CustAttr : " + custAttr);
         }
 
-        List<CustAttr> custAttrs  = sqlSessionTemplate.selectList("userServiceDAOImpl.queryDataToCustAttr",custAttr);
+        List<CustAttr> custAttrs  = sqlSessionTemplate.selectList("userServiceDaoImpl.queryDataToCustAttr",custAttr);
 
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryDataToCust】保存数据出参 :custAttrs " + custAttrs);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryDataToCust】保存数据出参 :custAttrs " + custAttrs);
 
         return custAttrs;
     }
@@ -267,11 +267,11 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws Exception
      */
     public List<BoCust> queryBoCust(BoCust boCust) throws Exception{
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryBoCustAttr】:"+boCust);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryBoCustAttr】:"+boCust);
 
         Assert.isNull(boCust,"查询bo_cust 入参为空");
 
-        return sqlSessionTemplate.selectList("userServiceDAOImpl.queryBoCust",boCust);
+        return sqlSessionTemplate.selectList("userServiceDaoImpl.queryBoCust",boCust);
     }
 
     /**
@@ -284,11 +284,11 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     public List<BoCustAttr> queryBoCustAttr(BoCustAttr boCustAttr) throws Exception{
 
-        LoggerEngine.debug("【userServiceDAOImpl.queryBoCustAttr】:"+boCustAttr);
+        LoggerEngine.debug("【userServiceDaoImpl.queryBoCustAttr】:"+boCustAttr);
 
         Assert.isNull(boCustAttr,"查询bo_cust_attr 入参为空");
 
-        return sqlSessionTemplate.selectList("userServiceDAOImpl.queryBoCustAttr",boCustAttr);
+        return sqlSessionTemplate.selectList("userServiceDaoImpl.queryBoCustAttr",boCustAttr);
 
     }
 
@@ -299,11 +299,11 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     @Override
     public void saveBusinessUserInfo(Map userInfo) throws DAOException {
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveBusinessUserInfo】保存数据入参 : " + JSONObject.toJSONString(userInfo));
+        LoggerEngine.debug("----【userServiceDaoImpl.saveBusinessUserInfo】保存数据入参 : " + JSONObject.toJSONString(userInfo));
 
         // 查询business_user 数据是否已经存在
 
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveBusinessUserInfo",userInfo);
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveBusinessUserInfo",userInfo);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户数据失败:"+JSONObject.toJSONString(userInfo));
@@ -316,9 +316,9 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     @Override
     public void saveBusinessUserAttr(Map userAttr) throws DAOException {
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveBusinessUserAttr】保存数据入参 : " + JSONObject.toJSONString(userAttr));
+        LoggerEngine.debug("----【userServiceDaoImpl.saveBusinessUserAttr】保存数据入参 : " + JSONObject.toJSONString(userAttr));
 
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveBusinessUserAttr",userAttr);
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveBusinessUserAttr",userAttr);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户属性数据失败:"+JSONObject.toJSONString(userAttr));
@@ -327,8 +327,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
 
     @Override
     public void saveUserInfoInstance(Map businessUser) {
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveUserInfoInstance】保存数据入参 : " + JSONObject.toJSONString(businessUser));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveUserInfoInstance",businessUser);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveUserInfoInstance】保存数据入参 : " + JSONObject.toJSONString(businessUser));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveUserInfoInstance",businessUser);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户Instance数据失败:"+JSONObject.toJSONString(businessUser));
@@ -337,8 +337,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
 
     @Override
     public void saveUserAttrInstance(Map attrInstance) {
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(attrInstance));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveUserAttrInstance",attrInstance);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(attrInstance));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveUserAttrInstance",attrInstance);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户Instance数据失败:"+JSONObject.toJSONString(attrInstance));
@@ -347,8 +347,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
 
     @Override
     public void updateUserInfoInstance(Map businessUser) {
-        LoggerEngine.debug("----【UserServiceDAOImpl.updateUserInfoInstance】保存数据入参 : " + JSONObject.toJSONString(businessUser));
-        int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserInfoInstance",businessUser);
+        LoggerEngine.debug("----【userServiceDaoImpl.updateUserInfoInstance】保存数据入参 : " + JSONObject.toJSONString(businessUser));
+        int saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.updateUserInfoInstance",businessUser);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(businessUser));
@@ -357,8 +357,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
 
     @Override
     public void updateUserAttrInstance(Map attrInstance) {
-        LoggerEngine.debug("----【UserServiceDAOImpl.updateUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(attrInstance));
-        int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserAttrInstance",attrInstance);
+        LoggerEngine.debug("----【userServiceDaoImpl.updateUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(attrInstance));
+        int saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.updateUserAttrInstance",attrInstance);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(attrInstance));
@@ -375,8 +375,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     public Map queryBusinessUserInfo(Map info) throws DAOException{
         Assert.notNull(info,"queryBusinessUserInfo 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryBusinessUserInfo】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> users = sqlSessionTemplate.selectList("userServiceDAOImpl.queryBusinessUserInfo",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryBusinessUserInfo】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> users = sqlSessionTemplate.selectList("userServiceDaoImpl.queryBusinessUserInfo",info);
         if(users == null || users.size() == 0){
             return null;
         }
@@ -391,8 +391,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     public List<Map> queryBusinessUserInfoAttrs(Map info) throws DAOException{
         Assert.notNull(info,"queryBusinessUserInfoAttrs 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryBusinessUserInfoAttrs】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> userAttrs = sqlSessionTemplate.selectList("userServiceDAOImpl.queryBusinessUserInfoAttrs",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryBusinessUserInfoAttrs】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> userAttrs = sqlSessionTemplate.selectList("userServiceDaoImpl.queryBusinessUserInfoAttrs",info);
         return userAttrs;
     }
 
@@ -405,8 +405,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
     @Override
     public Map queryUserInfo(Map info) throws DAOException{
         Assert.notNull(info,"queryUserInfo 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryUserInfo】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> users = sqlSessionTemplate.selectList("userServiceDAOImpl.queryUserInfo",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryUserInfo】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> users = sqlSessionTemplate.selectList("userServiceDaoImpl.queryUserInfo",info);
         if(users == null || users.size() == 0){
             return null;
         }
@@ -422,8 +422,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
     @Override
     public List<Map> queryUserInfoAttrs(Map info) throws DAOException{
         Assert.notNull(info,"queryUserInfo 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.updateUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> userAttrs = sqlSessionTemplate.selectList("userServiceDAOImpl.queryUserInfoAttrs",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.updateUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> userAttrs = sqlSessionTemplate.selectList("userServiceDaoImpl.queryUserInfoAttrs",info);
         return userAttrs;
     }
 
@@ -434,8 +434,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException
      */
     public void saveBusinessUserAddress(Map userAddress) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveBusinessUserAddress】保存数据入参 : " + JSONObject.toJSONString(userAddress));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveBusinessUserAddress",userAddress);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveBusinessUserAddress】保存数据入参 : " + JSONObject.toJSONString(userAddress));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveBusinessUserAddress",userAddress);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户地址数据失败:"+JSONObject.toJSONString(userAddress));
@@ -451,8 +451,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     public Map queryBusinessUserAddress(Map info) throws DAOException{
         Assert.notNull(info,"queryBusinessUserAddress 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryBusinessUserAddress】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> users = sqlSessionTemplate.selectList("userServiceDAOImpl.queryBusinessUserAddress",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryBusinessUserAddress】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> users = sqlSessionTemplate.selectList("userServiceDaoImpl.queryBusinessUserAddress",info);
         if(users == null || users.size() == 0){
             return null;
         }
@@ -465,8 +465,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException 数据处理异常
      */
     public void saveUserAddressInstance(Map businessUserAddress) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveUserAddressInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserAddress));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveUserAddressInstance",businessUserAddress);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveUserAddressInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserAddress));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveUserAddressInstance",businessUserAddress);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户地址Instance数据失败:"+JSONObject.toJSONString(businessUserAddress));
@@ -479,8 +479,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException 数据处理异常
      */
     public void updateUserAddressInstance(Map businessUserAddress) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.updateUserAddressInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserAddress));
-        int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserAddressInstance",businessUserAddress);
+        LoggerEngine.debug("----【userServiceDaoImpl.updateUserAddressInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserAddress));
+        int saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.updateUserAddressInstance",businessUserAddress);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(businessUserAddress));
@@ -495,8 +495,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException
      */
     public void saveBusinessUserTag(Map userTag) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveBusinessUserTag】保存数据入参 : " + JSONObject.toJSONString(userTag));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveBusinessUserTag",userTag);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveBusinessUserTag】保存数据入参 : " + JSONObject.toJSONString(userTag));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveBusinessUserTag",userTag);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户打标数据失败:"+JSONObject.toJSONString(userTag));
@@ -513,8 +513,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     public Map queryBusinessUserTag(Map info) throws DAOException{
         Assert.notNull(info,"queryBusinessUserTag 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryBusinessUserTag】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> users = sqlSessionTemplate.selectList("userServiceDAOImpl.queryBusinessUserTag",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryBusinessUserTag】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> users = sqlSessionTemplate.selectList("userServiceDaoImpl.queryBusinessUserTag",info);
         if(users == null || users.size() == 0){
             return null;
         }
@@ -527,8 +527,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException 数据处理异常
      */
     public void saveUserTagInstance(Map businessUserTag) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveUserTagInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserTag));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveUserTagInstance",businessUserTag);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveUserTagInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserTag));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveUserTagInstance",businessUserTag);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户打标Instance数据失败:"+JSONObject.toJSONString(businessUserTag));
@@ -542,8 +542,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException 数据处理异常
      */
     public void updateUserTagInstance(Map businessUserTag) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.updateUserTagInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserTag));
-        int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserTagInstance",businessUserTag);
+        LoggerEngine.debug("----【userServiceDaoImpl.updateUserTagInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserTag));
+        int saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.updateUserTagInstance",businessUserTag);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(businessUserTag));
@@ -558,8 +558,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException
      */
     public void saveBusinessUserCredentials(Map userCredentials) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveBusinessUserCredentials】保存数据入参 : " + JSONObject.toJSONString(userCredentials));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveBusinessUserCredentials",userCredentials);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveBusinessUserCredentials】保存数据入参 : " + JSONObject.toJSONString(userCredentials));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveBusinessUserCredentials",userCredentials);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户打标数据失败:"+JSONObject.toJSONString(userCredentials));
@@ -576,8 +576,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      */
     public Map queryBusinessUserCredentials(Map info) throws DAOException{
         Assert.notNull(info,"queryBusinessUserCredentials 的参数不能为空");
-        LoggerEngine.debug("----【UserServiceDAOImpl.queryBusinessUserCredentials】保存数据入参 : " + JSONObject.toJSONString(info));
-        List<Map> users = sqlSessionTemplate.selectList("userServiceDAOImpl.queryBusinessUserCredentials",info);
+        LoggerEngine.debug("----【userServiceDaoImpl.queryBusinessUserCredentials】保存数据入参 : " + JSONObject.toJSONString(info));
+        List<Map> users = sqlSessionTemplate.selectList("userServiceDaoImpl.queryBusinessUserCredentials",info);
         if(users == null || users.size() == 0){
             return null;
         }
@@ -590,8 +590,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException 数据处理异常
      */
     public void saveUserCredentialsInstance(Map businessUserCredentials) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.saveUserCredentialsInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserCredentials));
-        int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveUserCredentialsInstance",businessUserCredentials);
+        LoggerEngine.debug("----【userServiceDaoImpl.saveUserCredentialsInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserCredentials));
+        int saveFlag = sqlSessionTemplate.insert("userServiceDaoImpl.saveUserCredentialsInstance",businessUserCredentials);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户打标Instance数据失败:"+JSONObject.toJSONString(businessUserCredentials));
@@ -605,8 +605,8 @@ public class UserServiceDaoImpl extends BaseServiceDao implements IUserServiceDa
      * @throws DAOException 数据处理异常
      */
     public void updateUserCredentialsInstance(Map businessUserCredentials) throws DAOException{
-        LoggerEngine.debug("----【UserServiceDAOImpl.updateUserCredentialsInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserCredentials));
-        int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserCredentialsInstance",businessUserCredentials);
+        LoggerEngine.debug("----【userServiceDaoImpl.updateUserCredentialsInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserCredentials));
+        int saveFlag = sqlSessionTemplate.update("userServiceDaoImpl.updateUserCredentialsInstance",businessUserCredentials);
 
         if(saveFlag < 1){
             throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(businessUserCredentials));

+ 109 - 0
UserService/src/main/java/com/java110/user/listener/AbstractUserBusinessServiceDataFlowListener.java

@@ -0,0 +1,109 @@
+package com.java110.user.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.StatusConstant;
+import com.java110.common.exception.ListenerExecuteException;
+import com.java110.entity.center.Business;
+import com.java110.event.service.AbstractBusinessServiceDataFlowListener;
+import com.java110.user.dao.IUserServiceDao;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author wux
+ * @create 2018-12-08 下午3:15
+ * @desc 用户服务抽象类
+ **/
+public abstract class AbstractUserBusinessServiceDataFlowListener extends AbstractBusinessServiceDataFlowListener {
+
+    /**
+     * 获取 DAO工具类
+     * @return
+     */
+    public abstract IUserServiceDao getUserServiceDaoImpl();
+    /**
+     * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中
+     * @param businessUser 商户信息
+     */
+    protected void autoSaveDelBusinessUser(Business business, JSONObject businessUser){
+        //自动插入DEL
+        Map info = new HashMap();
+        info.put("userId",businessUser.getString("userId"));
+        info.put("statusCd", StatusConstant.STATUS_CD_VALID);
+        Map currentUserInfo = getUserServiceDaoImpl().queryUserInfo(info);
+        if(currentUserInfo == null || currentUserInfo.isEmpty()){
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info);
+        }
+
+        currentUserInfo.put("bId",business.getbId());
+        currentUserInfo.put("userId",currentUserInfo.get("user_id"));
+        currentUserInfo.put("name",currentUserInfo.get("name"));
+        currentUserInfo.put("email",currentUserInfo.get("email"));
+        currentUserInfo.put("address",currentUserInfo.get("address"));
+        currentUserInfo.put("password",currentUserInfo.get("password"));
+        currentUserInfo.put("locationCd",currentUserInfo.get("location_cd"));
+        currentUserInfo.put("age",currentUserInfo.get("age"));
+        currentUserInfo.put("sex",currentUserInfo.get("sex"));
+        currentUserInfo.put("tel",currentUserInfo.get("tel"));
+        currentUserInfo.put("levelCd",currentUserInfo.get("level_cd"));
+        currentUserInfo.put("operate",StatusConstant.OPERATE_DEL);
+        getUserServiceDaoImpl().saveBusinessUserInfo(currentUserInfo);
+    }
+
+
+    /**
+     * 刷新 businessUserInfo 数据
+     * 主要将 数据库 中字段和 接口传递字段建立关系
+     * @param businessUserInfo
+     */
+    protected void flushBusinessUserInfo(Map businessUserInfo,String statusCd){
+
+        businessUserInfo.put("newBId",businessUserInfo.get("b_id"));
+        businessUserInfo.put("userId",businessUserInfo.get("user_id"));
+        businessUserInfo.put("name",businessUserInfo.get("name"));
+        businessUserInfo.put("email",businessUserInfo.get("email"));
+        businessUserInfo.put("address",businessUserInfo.get("address"));
+        businessUserInfo.put("password",businessUserInfo.get("password"));
+        businessUserInfo.put("locationCd",businessUserInfo.get("location_cd"));
+        businessUserInfo.put("age",businessUserInfo.get("age"));
+        businessUserInfo.put("sex",businessUserInfo.get("sex"));
+        businessUserInfo.put("tel",businessUserInfo.get("tel"));
+        businessUserInfo.put("levelCd",businessUserInfo.get("level_cd"));
+        businessUserInfo.put("statusCd", statusCd);
+
+    }
+
+
+
+    /**
+     * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中
+     * @param businessUser 商户信息
+     */
+    protected void autoSaveAddBusinessUser(Business business, JSONObject businessUser){
+        //自动插入DEL
+        Map info = new HashMap();
+        info.put("userId",businessUser.getString("userId"));
+        info.put("statusCd", StatusConstant.STATUS_CD_INVALID);
+        Map currentUserInfo = getUserServiceDaoImpl().queryUserInfo(info);
+        if(currentUserInfo == null || currentUserInfo.isEmpty()){
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info);
+        }
+
+        currentUserInfo.put("bId",business.getbId());
+        currentUserInfo.put("userId",currentUserInfo.get("user_id"));
+        currentUserInfo.put("name",currentUserInfo.get("name"));
+        currentUserInfo.put("email",currentUserInfo.get("email"));
+        currentUserInfo.put("address",currentUserInfo.get("address"));
+        currentUserInfo.put("password",currentUserInfo.get("password"));
+        currentUserInfo.put("locationCd",currentUserInfo.get("location_cd"));
+        currentUserInfo.put("age",currentUserInfo.get("age"));
+        currentUserInfo.put("sex",currentUserInfo.get("sex"));
+        currentUserInfo.put("tel",currentUserInfo.get("tel"));
+        currentUserInfo.put("levelCd",currentUserInfo.get("level_cd"));
+        currentUserInfo.put("operate",StatusConstant.OPERATE_ADD);
+        getUserServiceDaoImpl().saveBusinessUserInfo(currentUserInfo);
+    }
+
+}

+ 143 - 0
UserService/src/main/java/com/java110/user/listener/ModifyUserInfoListener.java

@@ -0,0 +1,143 @@
+package com.java110.user.listener;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+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.user.dao.IUserServiceDao;
+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 2018/5/18.
+ */
+@Java110Listener("modifyUserInfoListener")
+@Transactional
+public class ModifyUserInfoListener extends AbstractUserBusinessServiceDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(ModifyUserInfoListener.class);
+
+    @Autowired
+    IUserServiceDao userServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    /**
+     * 修改用户信息
+     * @return
+     */
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_MODIFY_USER_INFO;
+    }
+
+
+    /**
+     * 修改用户信息至 business表中
+     * @param dataFlowContext 数据对象
+     * @param business 当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
+
+        Assert.jsonObjectHaveKey(data,"businessUser","datas 节点下没有包含 businessUser 节点");
+
+        JSONObject businessUser = data.getJSONObject("businessUser");
+
+        Assert.jsonObjectHaveKey(businessUser,"userId","businessUser 节点下没有包含 userId 节点");
+
+        if(businessUser.getString("userId").startsWith("-")){
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"userId 错误,不能自动生成(必须已经存在的userId)"+businessUser);
+        }
+        //自动保存DEL
+        autoSaveDelBusinessUser(business,businessUser);
+
+        businessUser.put("bId",business.getbId());
+        businessUser.put("operate", StatusConstant.OPERATE_ADD);
+        //保存商户信息
+        userServiceDaoImpl.saveBusinessUserInfo(businessUser);
+    }
+
+    /**
+     * 将 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);
+
+        //商户信息
+        Map businessUserInfo = userServiceDaoImpl.queryBusinessUserInfo(info);
+        if( businessUserInfo != null && !businessUserInfo.isEmpty()) {
+            flushBusinessUserInfo(businessUserInfo,StatusConstant.STATUS_CD_VALID);
+            userServiceDaoImpl.updateUserInfoInstance(businessUserInfo);
+            dataFlowContext.addParamOut("userId",businessUserInfo.get("user_id"));
+        }
+
+    }
+
+    /**
+     * 将instance 作废
+     * @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 delInfo = new HashMap();
+        delInfo.put("bId",business.getbId());
+        delInfo.put("operate",StatusConstant.OPERATE_DEL);
+        //用户信息
+        Map userInfo = userServiceDaoImpl.queryUserInfo(info);
+        if(userInfo != null && !userInfo.isEmpty()){
+
+            //商户信息
+            Map businessUserInfo = userServiceDaoImpl.queryBusinessUserInfo(delInfo);
+            //除非程序出错了,这里不会为空
+            if(businessUserInfo == null || businessUserInfo.isEmpty()){
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR,"撤单失败(user),程序内部异常,请检查! "+delInfo);
+            }
+
+            flushBusinessUserInfo(businessUserInfo,StatusConstant.STATUS_CD_VALID);
+            userServiceDaoImpl.updateUserInfoInstance(businessUserInfo);
+            dataFlowContext.addParamOut("userId",userInfo.get("user_id"));
+        }
+    }
+
+    public IUserServiceDao getUserServiceDaoImpl() {
+        return userServiceDaoImpl;
+    }
+
+    public void setUserServiceDaoImpl(IUserServiceDao userServiceDaoImpl) {
+        this.userServiceDaoImpl = userServiceDaoImpl;
+    }
+}

+ 136 - 0
UserService/src/main/java/com/java110/user/listener/RecoverUserInfoListener.java

@@ -0,0 +1,136 @@
+package com.java110.user.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+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.entity.center.Business;
+import com.java110.user.dao.IUserServiceDao;
+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.Map;
+
+/**
+ * 恢复 用户信息 侦听
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("recoverUserInfoListener")
+@Transactional
+public class RecoverUserInfoListener extends AbstractUserBusinessServiceDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(RecoverUserInfoListener.class);
+
+    @Autowired
+    IUserServiceDao userServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    /**
+     * 恢复用户信息
+     * @return
+     */
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_RECOVER_USER_INFO;
+    }
+
+
+    /**
+     * 修改用户信息至 business表中
+     * @param dataFlowContext 数据对象
+     * @param business 当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
+
+        Assert.jsonObjectHaveKey(data,"businessUser","datas 节点下没有包含 businessUser 节点");
+
+        JSONObject businessUser = data.getJSONObject("businessUser");
+
+        Assert.jsonObjectHaveKey(businessUser,"userId","businessUser 节点下没有包含 userId 节点");
+
+        if(businessUser.getString("userId").startsWith("-")){
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"userId 错误,不能自动生成(必须已经存在的userId)"+businessUser);
+        }
+
+        //自动插入ADD
+        autoSaveAddBusinessUser(business,businessUser);
+    }
+
+    /**
+     * 将 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);
+
+        //商户信息
+        Map businessUserInfo = userServiceDaoImpl.queryBusinessUserInfo(info);
+        if( businessUserInfo != null && !businessUserInfo.isEmpty()) {
+            flushBusinessUserInfo(businessUserInfo,StatusConstant.STATUS_CD_VALID);
+            userServiceDaoImpl.updateUserInfoInstance(businessUserInfo);
+            dataFlowContext.addParamOut("userId",businessUserInfo.get("user_id"));
+        }
+    }
+
+    /**
+     * 将instance 作废
+     * @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 addInfo = new HashMap();
+        addInfo.put("bId",business.getbId());
+        addInfo.put("operate",StatusConstant.OPERATE_ADD);
+        //商户信息
+        Map userInfo = userServiceDaoImpl.queryUserInfo(info);
+        if(userInfo != null && !userInfo.isEmpty()){
+
+            //商户信息
+            Map businessUserInfo = userServiceDaoImpl.queryBusinessUserInfo(addInfo);
+            //除非程序出错了,这里不会为空
+            if(businessUserInfo == null || businessUserInfo.isEmpty()){
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR,"撤单失败(user),程序内部异常,请检查! "+addInfo);
+            }
+
+            flushBusinessUserInfo(businessUserInfo,StatusConstant.STATUS_CD_INVALID);
+            userServiceDaoImpl.updateUserInfoInstance(businessUserInfo);
+            dataFlowContext.addParamOut("userId",userInfo.get("user_id"));
+        }
+    }
+
+    public IUserServiceDao getUserServiceDaoImpl() {
+        return userServiceDaoImpl;
+    }
+
+    public void setUserServiceDaoImpl(IUserServiceDao userServiceDaoImpl) {
+        this.userServiceDaoImpl = userServiceDaoImpl;
+    }
+}

+ 136 - 0
UserService/src/main/java/com/java110/user/listener/RemoveUserInfoListener.java

@@ -0,0 +1,136 @@
+package com.java110.user.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.constant.ServiceCodeConstant;
+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.entity.center.Business;
+import com.java110.user.dao.IUserServiceDao;
+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.Map;
+
+/**
+ * 停用 用户信息 侦听
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("removeUserInfoListener")
+@Transactional
+public class RemoveUserInfoListener extends AbstractUserBusinessServiceDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(RemoveUserInfoListener.class);
+
+    @Autowired
+    IUserServiceDao userServiceDaoImpl;
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+    /**
+     * 停用用户信息
+     * @return
+     */
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_REMOVE_USER_INFO;
+    }
+
+
+    /**
+     * 修改用户信息至 business表中
+     * @param dataFlowContext 数据对象
+     * @param business 当前业务对象
+     */
+    @Override
+    protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
+        JSONObject data = business.getDatas();
+
+        Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
+
+        Assert.jsonObjectHaveKey(data,"businessUser","datas 节点下没有包含 businessUser 节点");
+
+        JSONObject businessUser = data.getJSONObject("businessUser");
+
+        Assert.jsonObjectHaveKey(businessUser,"userId","businessUser 节点下没有包含 userId 节点");
+
+        if(businessUser.getString("userId").startsWith("-")){
+            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"userId 错误,不能自动生成(必须已经存在的userId)"+businessUser);
+        }
+
+        //自动插入DEL
+        autoSaveDelBusinessUser(business,businessUser);
+    }
+
+    /**
+     * 将 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_DEL);
+
+        //商户信息
+        Map businessUserInfo = userServiceDaoImpl.queryBusinessUserInfo(info);
+        if( businessUserInfo != null && !businessUserInfo.isEmpty()) {
+            flushBusinessUserInfo(businessUserInfo,StatusConstant.STATUS_CD_INVALID);
+            userServiceDaoImpl.updateUserInfoInstance(businessUserInfo);
+            dataFlowContext.addParamOut("userId",businessUserInfo.get("user_id"));
+        }
+    }
+
+    /**
+     * 将instance 作废
+     * @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_INVALID);
+
+        Map delInfo = new HashMap();
+        delInfo.put("bId",business.getbId());
+        delInfo.put("operate",StatusConstant.OPERATE_DEL);
+        //商户信息
+        Map userInfo = userServiceDaoImpl.queryUserInfo(info);
+        if(userInfo != null && !userInfo.isEmpty()){
+
+            //商户信息
+            Map businessUserInfo = userServiceDaoImpl.queryBusinessUserInfo(delInfo);
+            //除非程序出错了,这里不会为空
+            if(businessUserInfo == null || businessUserInfo.isEmpty()){
+                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_INNER_ERROR,"撤单失败(user),程序内部异常,请检查! "+delInfo);
+            }
+
+            flushBusinessUserInfo(businessUserInfo,StatusConstant.STATUS_CD_VALID);
+            userServiceDaoImpl.updateUserInfoInstance(businessUserInfo);
+            dataFlowContext.addParamOut("userId",userInfo.get("user_id"));
+        }
+    }
+
+    public IUserServiceDao getUserServiceDaoImpl() {
+        return userServiceDaoImpl;
+    }
+
+    public void setUserServiceDaoImpl(IUserServiceDao userServiceDaoImpl) {
+        this.userServiceDaoImpl = userServiceDaoImpl;
+    }
+}

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

@@ -69,6 +69,21 @@ public class ServiceCodeConstant {
      */
     public static final String SERVICE_CODE_SAVE_USER_INFO = "save.user.info";
 
+    /**
+     * 修改用户信息
+     */
+    public static final String SERVICE_CODE_MODIFY_USER_INFO = "modify.user.info";
+
+    /**
+     * 停用用户信息
+     */
+    public static final String SERVICE_CODE_REMOVE_USER_INFO = "remove.user.info";
+
+    /**
+     * 恢复用户信息
+     */
+    public static final String SERVICE_CODE_RECOVER_USER_INFO = "recover.user.info";
+
     /**
      * 保存用户地址信息
      */
@@ -197,6 +212,16 @@ public class ServiceCodeConstant {
      */
     public static final String SERVICE_CODE_USER_STAFF_ADD = "user.staff.add";
 
+    /**
+     * 停用员工服务
+     */
+    public static final String SERVICE_CODE_USER_STAFF_DISABLE = "user.staff.disable";
+
+    /**
+     * 启用员工服务
+     */
+    public static final String SERVICE_CODE_USER_STAFF_ENABLE = "user.staff.enable";
+
 
 
 

+ 34 - 3
java110-config/src/main/resources/mapper/user/UserServiceDaoImplMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="userServiceDAOImpl">
+<mapper namespace="userServiceDaoImpl">
 
     <resultMap type="com.java110.entity.user.Cust" id="custMap">
         <id column="custId" jdbcType="VARCHAR" property="custId"/>
@@ -171,7 +171,35 @@
     </insert>
 
     <update id="updateUserInfoInstance" parameterType="map">
-        update u_user u set u.status_cd = #{statusCd} where 1 = 1
+        update u_user u set u.status_cd = #{statusCd}
+        <if test="newBId != null and newBId != ''">
+            ,s.b_id = #{newBId}
+        </if>
+        <if test="name !=null and name != ''">
+            ,s.name= #{name}
+        </if>
+        <if test="email !=null and email != ''">
+            ,s.email= #{email}
+        </if>
+        <if test="address !=null and address != ''">
+            ,s.address= #{address}
+        </if>
+        <if test="password !=null and password != ''">
+            ,s.password= #{password}
+        </if>
+        <if test="locationCd !=null and locationCd != ''">
+            ,s.location_cd= #{locationCd}
+        </if>
+        <if test="age !=null and age != ''">
+            ,s.age= #{age}
+        </if>
+        <if test="sex !=null and sex != ''">
+            ,s.sex= #{sex}
+        </if>
+        <if test="tel !=null and tel != ''">
+            ,s.tel= #{tel}
+        </if>
+        where 1 = 1
         <if test="bId != null and bId != ''">
             and u.b_id = #{bId}
         </if>
@@ -233,13 +261,16 @@
     <select id="queryUserInfo" parameterType="map" resultType="map">
         select u.user_id,u.name,u.email,u.address,u.password,u.location_cd,
         u.age,u.sex,u.tel,u.level_cd,u.b_id
-        from u_user u where u.status_cd = '0'
+        from u_user u where 1= 1
         <if test="bId != null and bId !=''">
             and u.b_id = #{bId}
         </if>
         <if test="userId != null and userId != ''">
             and u.user_id = #{userId}
         </if>
+        <if test="statusCd !=null statusCd != ''">
+            and u.status_cd = #{statusCd}
+        </if>
     </select>