From c4692470b9df5399e0e2ebe76d687220243a4548 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期三, 02 四月 2025 18:35:34 +0800
Subject: [PATCH] 优化登陆跳转bug
---
service-user/src/main/java/com/java110/user/cmd/login/AdminLoginPropertyCmd.java | 100 ++++++++++++++++++++++++++++---------------------
1 files changed, 57 insertions(+), 43 deletions(-)
diff --git a/service-user/src/main/java/com/java110/user/cmd/login/AdminLoginPropertyCmd.java b/service-user/src/main/java/com/java110/user/cmd/login/AdminLoginPropertyCmd.java
index 597be5d..46e3479 100644
--- a/service-user/src/main/java/com/java110/user/cmd/login/AdminLoginPropertyCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/login/AdminLoginPropertyCmd.java
@@ -1,7 +1,10 @@
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.cache.Java110RedisConfig;
+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;
@@ -15,12 +18,12 @@
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.intf.user.IUserLoginInnerServiceSMO;
import com.java110.po.user.UserLoginPo;
+import com.java110.utils.cache.CommonCache;
import com.java110.utils.constant.CommonConstant;
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.DateUtil;
+import com.java110.utils.util.*;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -53,14 +56,14 @@
@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':'admin','userId':'123','curPassWd':'admin','curUserName':'18909711443'}",
- resBody="{'code':0,'msg':'鎴愬姛','data':{'userId':'123123','token':'123213'}}"
+ reqBody = "{'username':'admin','userId':'123','curPassWd':'admin','curUserName':'18909711443'}",
+ resBody = "{'code':0,'msg':'鎴愬姛','data':{'userId':'123123','token':'123213'}}"
)
@Java110Cmd(serviceCode = "login.adminLoginProperty")
@@ -81,30 +84,22 @@
Assert.hasKeyAndValue(reqJson, "userId", "鏈寘鍚渶瑕佺櫥褰曠殑鐢ㄦ埛ID");
Assert.hasKeyAndValue(reqJson, "curPasswd", "鏈寘鍚綋鍓嶇敤鎴风殑瀵嗙爜");
Assert.hasKeyAndValue(reqJson, "curUserName", "鏈寘鍚綋鍓嶇敤鎴风殑鐢ㄦ埛鍚�");
+ reqJson.put("curPasswd", AuthenticationFactory.passwdMd5(reqJson.getString("curPasswd")));
+ super.validateAdmin(context);
}
@Override
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+ String userId = CmdContextUtils.getUserId(context);
ResponseEntity<String> responseEntity = null;
UserDto userDto = new UserDto();
userDto.setUserName(reqJson.getString("curUserName"));
userDto.setPassword(reqJson.getString("curPasswd"));
List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
- if (userDtos == null || userDtos.size() < 1) {
- context.setResponseEntity(ResultVo.createResponseEntity(ResultVo.CODE_UNAUTHORIZED, "鐢ㄦ埛鎴栧瘑鐮侀敊璇�"));
- return;
- }
+ if (ListUtil.isNull(userDtos)) {
+ throw new CmdException("鐢ㄦ埛鎴栧瘑鐮侀敊璇�");
- //鏍¢獙褰撳墠璐︽埛鍟嗘埛鏄笉鏄� 绠$悊鍛樺晢鎴�
- StoreUserDto storeUserDto = new StoreUserDto();
- storeUserDto.setStoreTypeCd("800900000001");
- storeUserDto.setUserId(userDtos.get(0).getUserId());
- List<StoreUserDto> storeUserDtos = storeInnerServiceSMOImpl.getStoreUserInfo(storeUserDto);
-
- if (storeUserDtos == null || storeUserDtos.size() < 1) {
- context.setResponseEntity(ResultVo.createResponseEntity(ResultVo.CODE_UNAUTHORIZED, "褰撳墠鐢ㄦ埛涓嶆槸杩愯惀鍥㈤槦 涓嶈兘鍏嶇櫥褰�"));
- return;
}
// 鏍¢獙 闇�瑕佺櫥褰曠殑鐗╀笟璐﹀彿鏄惁瀛樺湪
@@ -116,39 +111,58 @@
Assert.listOnlyOne(userDtos, "鐗╀笟璐﹀彿涓嶅瓨鍦�");
//鏍¢獙褰撳墠璐︽埛鍟嗘埛鏄笉鏄� 绠$悊鍛樺晢鎴�
- storeUserDto = new StoreUserDto();
- storeUserDto.setStoreTypeCd("800900000003"); //鐗╀笟璐﹀彿
- storeUserDto.setUserId(userDtos.get(0).getUserId());
- storeUserDtos = storeInnerServiceSMOImpl.getStoreUserInfo(storeUserDto);
-
- if (storeUserDtos == null || storeUserDtos.size() < 1) {
- context.setResponseEntity(ResultVo.createResponseEntity(ResultVo.CODE_UNAUTHORIZED, "闇�瑕佸厤瀵嗙櫥褰曠殑璐﹀彿涓嶆槸鐗╀笟璐﹀彿"));
- return;
- }
userDto = userDtos.get(0);
- JSONObject userInfo = JSONObject.parseObject(JSONObject.toJSONString(userDto));
+ JSONArray data = new JSONArray();
+ JSONObject userInfo = null;
try {
Map userMap = new HashMap();
userMap.put(CommonConstant.LOGIN_USER_ID, userDto.getUserId());
- userMap.put(CommonConstant.LOGIN_USER_NAME, userDto.getUserName());
+ userMap.put(CommonConstant.LOGIN_USER_NAME, userDto.getName());
String token = AuthenticationFactory.createAndSaveToken(userMap);
- userInfo.remove("password");
+ userInfo = BeanConvertUtil.beanCovertJson(userDto);
+ 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(userDto.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);
- context.setResponseEntity(responseEntity);
+ data.add(userInfo);
} catch (Exception e) {
+ e.printStackTrace();
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);
+ context.setResponseEntity(responseEntity);
+ }
+
+
+ /**
+ * 娓呯悊鐢ㄦ埛缂撳瓨
+ *
+ * @param userId
+ */
+ private void clearUserCache(String userId) {
+ //鍛樺伐鍟嗘埛缂撳瓨 getStoreInfo
+ String storeId = "";
+
+ String storeInfo = CommonCache.getValue("getStoreInfo" + Java110RedisConfig.GET_STORE_INFO_EXPIRE_TIME_KEY + "::" + userId);
+ if (!StringUtil.isEmpty(storeInfo)) {
+ CommonCache.removeValue("getStoreInfo" + Java110RedisConfig.GET_STORE_INFO_EXPIRE_TIME_KEY + "::" + userId);
+ JSONObject storeObj = JSONObject.parseObject(storeInfo);
+ storeId = storeObj.getJSONObject("msg").getString("storeId");
+ CommonCache.removeValue("getStoreEnterCommunitys" + Java110RedisConfig.GET_STORE_ENTER_COMMUNITYS_EXPIRE_TIME_KEY + "::" + storeId);
+ }
+ //鍛樺伐鏉冮檺
+ CommonCache.removeValue("getUserPrivileges" + Java110RedisConfig.DEFAULT_EXPIRE_TIME_KEY + "::" + userId);
}
}
--
Gitblit v1.8.0