From 5700f42a37a2f9ecc27161e2b0559a820d320f6b Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 17 三月 2025 15:11:40 +0800
Subject: [PATCH] 开发完成同一个手机号登录不同物业公司的支持

---
 service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java |   97 +++++++++++++++++++++++++++---------------------
 1 files changed, 54 insertions(+), 43 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java b/service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java
index 93f456b..9ea5879 100644
--- a/service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java
@@ -1,5 +1,6 @@
 package com.java110.user.cmd.login;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.context.ICmdDataFlowContext;
@@ -26,6 +27,7 @@
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.ListUtil;
+import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -55,30 +57,30 @@
 
 @Java110ParamsDoc(
         headers = {
-                @Java110HeaderDoc(name="APP-ID",defaultValue = "閫氳繃dev璐︽埛鍒嗛厤搴旂敤",description = "搴旂敤APP-ID"),
-                @Java110HeaderDoc(name="TRANSACTION-ID",defaultValue = "uuid",description = "浜ゆ槗娴佹按鍙�"),
-                @Java110HeaderDoc(name="REQ-TIME",defaultValue = "20220917120915",description = "璇锋眰鏃堕棿 YYYYMMDDhhmmss"),
-                @Java110HeaderDoc(name="JAVA110-LANG",defaultValue = "zh-cn",description = "璇█涓枃"),
-                @Java110HeaderDoc(name="USER-ID",defaultValue = "-1",description = "璋冪敤鐢ㄦ埛ID 涓�鑸啓-1"),
+                @Java110HeaderDoc(name = "APP-ID", defaultValue = "閫氳繃dev璐︽埛鍒嗛厤搴旂敤", description = "搴旂敤APP-ID"),
+                @Java110HeaderDoc(name = "TRANSACTION-ID", defaultValue = "uuid", description = "浜ゆ槗娴佹按鍙�"),
+                @Java110HeaderDoc(name = "REQ-TIME", defaultValue = "20220917120915", description = "璇锋眰鏃堕棿 YYYYMMDDhhmmss"),
+                @Java110HeaderDoc(name = "JAVA110-LANG", defaultValue = "zh-cn", description = "璇█涓枃"),
+                @Java110HeaderDoc(name = "USER-ID", defaultValue = "-1", description = "璋冪敤鐢ㄦ埛ID 涓�鑸啓-1"),
         },
         params = {
-        @Java110ParamDoc(name = "username", length = 30, remark = "鐢ㄦ埛鍚嶏紝鐗╀笟绯荤粺鍒嗛厤"),
-        @Java110ParamDoc(name = "passwd", length = 30, remark = "瀵嗙爜锛岀墿涓氱郴缁熷垎閰�"),
-})
+                @Java110ParamDoc(name = "username", length = 30, remark = "鐢ㄦ埛鍚嶏紝鐗╀笟绯荤粺鍒嗛厤"),
+                @Java110ParamDoc(name = "passwd", length = 30, remark = "瀵嗙爜锛岀墿涓氱郴缁熷垎閰�"),
+        })
 
 @Java110ResponseDoc(
         params = {
                 @Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "杩斿洖缂栧彿锛�0 鎴愬姛 鍏朵粬澶辫触"),
                 @Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "鎴愬姛", remark = "鎻忚堪"),
                 @Java110ParamDoc(name = "data", type = "Object", remark = "鏈夋晥鏁版嵁"),
-                @Java110ParamDoc(parentNodeName = "data",name = "userId", type = "String", remark = "鐢ㄦ埛ID"),
-                @Java110ParamDoc(parentNodeName = "data",name = "token", type = "String", remark = "涓存椂绁ㄦ嵁"),
+                @Java110ParamDoc(parentNodeName = "data", name = "userId", type = "String", remark = "鐢ㄦ埛ID"),
+                @Java110ParamDoc(parentNodeName = "data", name = "token", type = "String", remark = "涓存椂绁ㄦ嵁"),
         }
 )
 
 @Java110ExampleDoc(
-        reqBody="{'username':'wuxw','passwd':'admin'}",
-        resBody="{'code':0,'msg':'鎴愬姛','data':{'userId':'123123','token':'123213'}}"
+        reqBody = "{'username':'wuxw','passwd':'admin'}",
+        resBody = "{'code':0,'msg':'鎴愬姛','data':{'userId':'123123','token':'123213'}}"
 )
 @Java110Cmd(serviceCode = "login.pcUserLogin")
 public class PcUserLoginCmd extends Cmd {
@@ -94,12 +96,8 @@
 
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
-        String paramIn = cmdDataFlowContext.getReqData();
-        Assert.isJsonObject(paramIn, "鐢ㄦ埛娉ㄥ唽璇锋眰鍙傛暟鏈夎锛屼笉鏄湁鏁堢殑json鏍煎紡 " + paramIn);
-        Assert.jsonObjectHaveKey(paramIn, "username", "鐢ㄦ埛鐧诲綍锛屾湭鍖呭惈username鑺傜偣锛岃妫�鏌�" + paramIn);
-        Assert.jsonObjectHaveKey(paramIn, "passwd", "鐢ㄦ埛鐧诲綍锛屾湭鍖呭惈passwd鑺傜偣锛岃妫�鏌�" + paramIn);
-
-
+        Assert.hasKeyAndValue(reqJson, "username", "鐢ㄦ埛鐧诲綍锛屾湭鍖呭惈username鑺傜偣锛岃妫�鏌�");
+        Assert.hasKeyAndValue(reqJson, "passwd", "鐢ㄦ埛鐧诲綍锛屾湭鍖呭惈passwd鑺傜偣锛岃妫�鏌�");
 
         AuthenticationFactory.checkLoginErrorCount(reqJson.getString("username"));
     }
@@ -140,32 +138,45 @@
                 return;
             }
         }
-
-
-        try {
-            Map userMap = new HashMap();
-            userMap.put(CommonConstant.LOGIN_USER_ID, userDtos.get(0).getUserId());
-            userMap.put(CommonConstant.LOGIN_USER_NAME, userDtos.get(0).getUserName());
-            String token = AuthenticationFactory.createAndSaveToken(userMap);
-            JSONObject userInfo = BeanConvertUtil.beanCovertJson(userDtos.get(0));
-            userInfo.remove("userPwd");
-            userInfo.put("token", token);
-            //璁板綍鐧诲綍鏃ュ織
-            UserLoginPo userLoginPo = new UserLoginPo();
-            userLoginPo.setLoginId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_loginId));
-            userLoginPo.setLoginTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-            userLoginPo.setPassword(userDtos.get(0).getPassword());
-            userLoginPo.setSource(UserLoginDto.SOURCE_WEB);
-            userLoginPo.setToken(token);
-            userLoginPo.setUserId(userInfo.getString("userId"));
-            userLoginPo.setUserName(userInfo.getString("userName"));
-            userLoginInnerServiceSMOImpl.saveUserLogin(userLoginPo);
-            responseEntity = new ResponseEntity<String>(userInfo.toJSONString(), HttpStatus.OK);
-            cmdDataFlowContext.setResponseEntity(responseEntity);
-        } catch (Exception e) {
-            logger.error("鐧诲綍寮傚父锛�", e);
-            throw new SMOException(ResponseConstant.RESULT_CODE_INNER_ERROR, "绯荤粺鍐呴儴閿欒锛岃鑱旂郴绠$悊鍛�");
+        UserDto allUserDto = new UserDto();
+        allUserDto.setTel(userDtos.get(0).getTel());
+        userDtos = userInnerServiceSMOImpl.getStaffs(userDto);
+        if (userDtos.isEmpty()) {
+            throw new CmdException("鐢ㄦ埛涓嶅瓨鍦�");
         }
+        JSONArray data = new JSONArray();
+        JSONObject userInfo = null;
+        for(UserDto aUserDto: userDtos) {
+            try {
+                Map userMap = new HashMap();
+                userMap.put(CommonConstant.LOGIN_USER_ID, aUserDto.getUserId());
+                userMap.put(CommonConstant.LOGIN_USER_NAME, aUserDto.getUserName());
+                String token = AuthenticationFactory.createAndSaveToken(userMap);
+                userInfo= BeanConvertUtil.beanCovertJson(aUserDto);
+                userInfo.remove("userPwd");
+                userInfo.put("token", token);
+                data.add(userInfo);
+            } catch (Exception e) {
+                logger.error("鐧诲綍寮傚父锛�", e);
+                throw new SMOException(ResponseConstant.RESULT_CODE_INNER_ERROR, "绯荤粺鍐呴儴閿欒锛岃鑱旂郴绠$悊鍛�");
+            }
+        }
+
+
+        //璁板綍鐧诲綍鏃ュ織
+        UserLoginPo userLoginPo = new UserLoginPo();
+        userLoginPo.setLoginId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_loginId));
+        userLoginPo.setLoginTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        userLoginPo.setPassword("******");
+        userLoginPo.setSource(UserLoginDto.SOURCE_WEB);
+        userLoginPo.setToken(userInfo.getString("token"));
+        userLoginPo.setUserId(userInfo.getString("userId"));
+        userLoginPo.setUserName(userInfo.getString("userName"));
+        userLoginInnerServiceSMOImpl.saveUserLogin(userLoginPo);
+
+
+        responseEntity = ResultVo.createResponseEntity(data);
+        cmdDataFlowContext.setResponseEntity(responseEntity);
     }
 
 }

--
Gitblit v1.8.0