From 1ac555ce49a45e2c7fc015dbb16b104840788c21 Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期一, 18 八月 2025 11:51:42 +0800
Subject: [PATCH] 费用导入修复2025/08/15

---
 service-user/src/main/java/com/java110/user/cmd/login/PcUserLoginCmd.java |  154 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 112 insertions(+), 42 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 f623f61..3a7a48e 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,28 +1,36 @@
 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.CmdContextUtils;
 import com.java110.core.context.ICmdDataFlowContext;
-import com.java110.core.event.cmd.AbstractServiceCmdListener;
+import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
+import com.java110.doc.annotation.*;
+import com.java110.dto.app.AppDto;
 import com.java110.dto.store.StoreUserDto;
 import com.java110.dto.user.UserDto;
-import com.java110.dto.userLogin.UserLoginDto;
+import com.java110.dto.user.UserLoginDto;
 import com.java110.intf.store.IStoreInnerServiceSMO;
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.intf.user.IUserLoginInnerServiceSMO;
-import com.java110.po.userLogin.UserLoginPo;
+import com.java110.po.user.UserLoginPo;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.MappingConstant;
 import com.java110.utils.constant.ResponseConstant;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.exception.SMOException;
 import com.java110.utils.util.Assert;
 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.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -32,10 +40,52 @@
 import java.util.Map;
 
 /**
- * 淇濆瓨缂栫爜鏄犲皠澶勭悊绫�
+ * 鐢ㄦ埛鐧诲綍 鍔熻兘
+ * 璇锋眰鍦板潃涓�/app/login.pcUserLogin
  */
+
+@Java110CmdDoc(title = "鍛樺伐鐧诲綍",
+        description = "鐧诲綍鍔熻兘 涓昏鐢ㄤ簬 鍛樺伐 鎴栬�呯鐞嗗憳鐧诲綍浣跨敤,<br/>" +
+                "璇锋眰鍏朵粬鎺ュ彛鏃� 澶翠俊鎭腑闇�瑕佸姞 Authorization: Bearer token 锛�<br/>" +
+                "token 鏄繖涓帴鍙h繑鍥炵殑鍐呭<br/> " +
+                "浼氳瘽淇濇寔涓�2灏忔椂锛岃蹇鍒�2灏忔椂鏃讹紝鍐嶆鐧诲綍锛屼繚鎸佷細璇�</br>",
+        httpMethod = "post",
+        url = "http://{ip}:{port}/app/login.pcUserLogin",
+        resource = "userDoc",
+        author = "鍚村鏂�",
+        serviceCode = "login.pcUserLogin",
+        seq = 1
+)
+
+@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"),
+        },
+        params = {
+                @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 = "涓存椂绁ㄦ嵁"),
+        }
+)
+
+@Java110ExampleDoc(
+        reqBody = "{'username':'wuxw','passwd':'admin'}",
+        resBody = "{'code':0,'msg':'鎴愬姛','data':{'userId':'123123','token':'123213'}}"
+)
 @Java110Cmd(serviceCode = "login.pcUserLogin")
-public class PcUserLoginCmd extends AbstractServiceCmdListener {
+public class PcUserLoginCmd extends Cmd {
     private final static Logger logger = LoggerFactory.getLogger(PcUserLoginCmd.class);
     @Autowired
     private IUserLoginInnerServiceSMO userLoginInnerServiceSMOImpl;
@@ -48,30 +98,36 @@
 
     @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"));
+
+        String appId = CmdContextUtils.getAppId(cmdDataFlowContext);
+        if(AppDto.PROPERTY_APP.equals(appId)){
+            reqJson.put("passwd", AuthenticationFactory.passwdMd5(reqJson.getString("passwd")));
+        }
+
     }
 
     @Override
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
         ResponseEntity responseEntity = null;
-        JSONObject paramInJson = JSONObject.parseObject(cmdDataFlowContext.getReqData());
         //鏍规嵁AppId 鏌ヨ 鏄惁鏈夌櫥褰曠殑鏈嶅姟锛屾煡璇㈢櫥褰曞湴鍧�璋冪敤
         UserDto userDto = new UserDto();
-        userDto.setName(paramInJson.getString("username"));
-        userDto.setPassword(paramInJson.getString("passwd"));
+        userDto.setName(reqJson.getString("username"));
+        userDto.setPassword(reqJson.getString("passwd"));
         userDto.setLevelCds(new String[]{UserDto.LEVEL_CD_ADMIN, UserDto.LEVEL_CD_STAFF});
         List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
-        if (userDtos == null || userDtos.size() < 1) {
+        if (ListUtil.isNull(userDtos)) {
             userDto.setName("");
-            userDto.setTel(paramInJson.getString("username"));
+            userDto.setTel(reqJson.getString("username"));
             userDtos = userInnerServiceSMOImpl.getUsers(userDto);
         }
-        if (userDtos == null || userDtos.size() < 1) {
+        if (ListUtil.isNull(userDtos)) {
             responseEntity = new ResponseEntity<String>("鐢ㄦ埛鎴栧瘑鐮侀敊璇�", HttpStatus.UNAUTHORIZED);
+            AuthenticationFactory.userLoginError(reqJson.getString("username"));
             cmdDataFlowContext.setResponseEntity(responseEntity);
             return;
         }
@@ -81,7 +137,7 @@
         storeUserDto.setUserId(userDtos.get(0).getUserId());
         List<StoreUserDto> storeUserDtos = storeInnerServiceSMOImpl.getStoreUserInfo(storeUserDto);
 
-        if (storeUserDtos != null && storeUserDtos.size() > 0) {
+        if (!ListUtil.isNull(storeUserDtos)) {
             String state = storeUserDtos.get(0).getState();
             if ("48002".equals(state)) {
                 responseEntity = new ResponseEntity<String>("褰撳墠鍟嗘埛闄愬埗鐧诲綍锛岃鑱旂郴绠$悊鍛�", HttpStatus.UNAUTHORIZED);
@@ -89,31 +145,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