From 41965ca07e31a8c102dc4b704d7536769200f8cb Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 18 十月 2024 18:43:15 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 27 ++++++++
server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java | 2
server/system_service/src/main/java/com/doumee/core/utils/ScientificNotationTUtil.java | 59 +++++++++++++++++++
server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 1
server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java | 16 ++--
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 5 +
server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java | 5 +
server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java | 3
server/visits/dmvisit_admin/src/main/resources/application.yml | 9 +++
server/system_service/src/main/java/com/doumee/api/BaseController.java | 5 -
10 files changed, 115 insertions(+), 17 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/api/BaseController.java b/server/system_service/src/main/java/com/doumee/api/BaseController.java
index 3001582..9e3ab4a 100644
--- a/server/system_service/src/main/java/com/doumee/api/BaseController.java
+++ b/server/system_service/src/main/java/com/doumee/api/BaseController.java
@@ -30,8 +30,6 @@
@Autowired
private RedisTemplate<String,Object> stringRedisTemplate;
- @Resource
- private JwtProperties jwtProperties;
/**
* 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
* @author Eva.Caesar Liu
@@ -51,9 +49,6 @@
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛鐧婚檰宸插け鏁堬紝璇烽噸鏂扮櫥闄嗭紒");
}
return user;
- }
- public void updateLoginUser (String token,LoginUserInfo userInfo) {
- stringRedisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,JSONObject.toJSONString(userInfo),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java
index eee029f..ef10c47 100644
--- a/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemCloudController.java
@@ -38,9 +38,10 @@
public ApiResponse updatePwd (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody UpdatePwdDto dto) {
LoginUserInfo userInfo = this.getLoginUser(token);
dto.setUserId(userInfo.getId());
+ dto.setToken(token);
+ dto.setLoginUserInfo(userInfo);
systemUserBiz.updatePwd(dto);
userInfo.setNeedChangePwd(Constants.ONE);
- updateLoginUser(token,userInfo);//鏇存柊鐧诲綍token涓粦瀹氱殑鐢ㄦ埛淇℃伅涓哄凡鏇存柊瀵嗙爜
return ApiResponse.success(null);
}
diff --git a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index 071fe85..20e8eda 100644
--- a/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -1,9 +1,11 @@
package com.doumee.biz.system.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.system.SystemUserBiz;
+import com.doumee.config.jwt.JwtProperties;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.ResponseStatus;
@@ -16,23 +18,31 @@
import com.doumee.dao.system.dto.UpdatePwdDto;
import com.doumee.dao.system.model.*;
import com.doumee.service.system.*;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
+@Slf4j
public class SystemUserBizImpl implements SystemUserBiz {
-
+ @Autowired
+ private RedisTemplate<String,Object> redisTemplate;
+ @Autowired
+ private JwtProperties jwtProperties;
@Autowired
private SystemUserService systemUserService;
@@ -86,7 +96,7 @@
if(StringUtils.isBlank(dto.getNewPwd())
||dto.getNewPwd().length()>20
||dto.getNewPwd().length()<6
- ||PwdCheckUtil.checkPassword(dto.getNewPwd())){
+ ||!PwdCheckUtil.checkPassword(dto.getNewPwd())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝瀵嗙爜澶嶆潅搴︿笉婊¤冻瑕佹眰锛�6-20涓瓧绗︼紝鑷冲皯鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃2绉�");
}
SystemUser user = systemUserService.findById(dto.getUserId());
@@ -103,6 +113,19 @@
newUser.setPassword(Utils.Secure.encryptPassword(dto.getNewPwd(), user.getSalt()));
newUser.setNeedChangePwd(Constants.ONE);
systemUserService.updateById(newUser);
+
+ log.info("===================鏇存柊淇℃伅");
+ try {
+// log.error("redisTemplate:["+redisTemplate+"]\njwtProperties=:["+jwtProperties+"]\n"+"token:["+dto.getToken()+"]\nuser:"+dto.getLoginUserInfo());
+ if(redisTemplate!=null&&dto.getToken() !=null &&dto.getLoginUserInfo()!=null && jwtProperties!=null){
+ dto.getLoginUserInfo().setNeedChangePwd(Constants.ONE);
+ redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+dto.getToken(),JSONObject.toJSONString(dto.getLoginUserInfo()),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+ }
+ }catch (Exception e){
+// log.error("redisTemplate:["+redisTemplate+"]\njwtProperties=:["+jwtProperties+"]\n"+"token:["+dto.getToken()+"]\nuser:"+dto.getLoginUserInfo());
+ e.printStackTrace();
+ }
+
}
@Override
diff --git a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
index 9198e09..f88920c 100644
--- a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
+++ b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -150,6 +150,7 @@
return token;
}
+
/**
* 浠庝护鐗屼腑鑾峰彇鏁版嵁澹版槑,楠岃瘉JWT绛惧悕
*
diff --git a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
index 8cc71b7..ba4a587 100644
--- a/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
+++ b/server/system_service/src/main/java/com/doumee/core/model/LoginUserInfo.java
@@ -1,5 +1,6 @@
package com.doumee.core.model;
+import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.system.model.SystemPermission;
import com.doumee.dao.system.model.SystemRole;
@@ -66,6 +67,7 @@
rs.add(role.getCode());
}
}
+ loginUserInfo.setNeedChangePwd(Constants.formatIntegerNum(user.getNeedChangePwd()));
loginUserInfo.setSessionId(sessionId);
loginUserInfo.setRoles(rs);
// 璁剧疆鏉冮檺淇℃伅
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java
index 8ecd514..e71f277 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/PwdCheckUtil.java
@@ -65,14 +65,14 @@
}
public static void main(String[] args) {
- checkPassword("fasdagd");
- checkPassword("41234123");
- checkPassword("#$%^&&*(");
- checkPassword("fasd$$");
- checkPassword("41234%%%");
- checkPassword("fasd41^(324");
- checkPassword("fa413%^&*");
- checkPassword("&%fa413%^&*");
+ checkPassword("123456a");
+// checkPassword("41234123");
+// checkPassword("#$%^&&*(");
+// checkPassword("fasd$$");
+// checkPassword("41234%%%");
+// checkPassword("fasd41^(324");
+// checkPassword("fa413%^&*");
+// checkPassword("&%fa413%^&*");
}
}
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/ScientificNotationTUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/ScientificNotationTUtil.java
new file mode 100644
index 0000000..a40cae1
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/core/utils/ScientificNotationTUtil.java
@@ -0,0 +1,59 @@
+package com.doumee.core.utils;
+
+import java.util.regex.Pattern;
+
+/**
+ * Java姝e垯鏍¢獙瀵嗙爜鑷冲皯鍖呭惈锛氬瓧姣嶆暟瀛楃壒娈婄鍙蜂腑鐨�2绉�
+ */
+import java.math.BigDecimal;
+import java.util.regex.Pattern;
+
+ public class ScientificNotationTUtil {
+ private static final Pattern SCIENTIFIC_NOTATION_PATTERN =
+ Pattern.compile("[+-]?\\d*(\\.\\d+)?[eE][+-]?\\d+");
+
+ public static boolean isScientificNotation(String value) {
+ return SCIENTIFIC_NOTATION_PATTERN.matcher(value).matches();
+ }
+
+ public static double convertScientificNotationToDouble(String scientificNotation) {
+ if (isScientificNotation(scientificNotation)) {
+ return (Double.parseDouble(scientificNotation));
+ } else {
+ throw new IllegalArgumentException("The string is not in scientific notation.");
+ }
+ }
+ public static String convertToString(String numberStr) {
+ try {
+ // 灏濊瘯鐩存帴灏嗗瓧绗︿覆杞崲涓築igDecimal
+ return new BigDecimal(numberStr)+"";
+ } catch (NumberFormatException e) {
+ // 濡傛灉杞崲澶辫触锛屽垯灏濊瘯瑙f瀽绉戝璁℃暟娉�
+ String[] parts = numberStr.split("E");
+ if (parts.length == 2) {
+ // 杩欐槸绉戝璁℃暟娉曪紝闇�瑕佽浆鎹�
+ BigDecimal number = new BigDecimal(parts[0]);
+ int exponent = Integer.parseInt(parts[1]);
+ return number.scaleByPowerOfTen(exponent)+"";
+ }
+ }
+ return numberStr;
+ }
+
+ public static BigDecimal convertScientificNotationToBigDecimal(String scientificNotation) {
+ if (isScientificNotation(scientificNotation)) {
+ return new BigDecimal(scientificNotation);
+ } else {
+ throw new IllegalArgumentException("The string is not in scientific notation.");
+ }
+ }
+
+ public static void main(String[] args) {
+// String scientificNotation = "1.23e+3";
+// String scientificNotation = "1.5345690888E10";
+ String scientificNotation = "15345690888";
+ System.out.println("Is scientific notation: " + isScientificNotation(scientificNotation));
+ System.out.println("Converted to String: " + convertToString(scientificNotation));
+// System.out.println("Converted to BigDecimal: " + convertScientificNotationToBigDecimal(scientificNotation));
+ }
+ }
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java
index a3e8001..9335e62 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/UpdatePwdDto.java
@@ -1,5 +1,6 @@
package com.doumee.dao.system.dto;
+import com.doumee.core.model.LoginUserInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,6 +17,10 @@
@ApiModel("淇敼瀵嗙爜鍙傛暟")
public class UpdatePwdDto implements Serializable {
+ @ApiModelProperty(value = "loginUserInfo", hidden = true)
+ private LoginUserInfo loginUserInfo;
+ @ApiModelProperty(value = "token", hidden = true)
+ private String token;
@ApiModelProperty(value = "鐢ㄦ埛ID", hidden = true)
private Integer userId;
diff --git a/server/visits/dmvisit_admin/src/main/resources/application.yml b/server/visits/dmvisit_admin/src/main/resources/application.yml
index b09d0f7..a375639 100644
--- a/server/visits/dmvisit_admin/src/main/resources/application.yml
+++ b/server/visits/dmvisit_admin/src/main/resources/application.yml
@@ -74,5 +74,14 @@
servlet:
session:
timeout: PT3H #琛ㄧず12灏忔椂
+auth:
+ jwt:
+ enabled: true #鏄惁寮�鍚疛WT鐧诲綍璁よ瘉鍔熻兘
+ secret: fjkfaf;afa # JWT绉侀挜锛岀敤浜庢牎楠孞WT浠ょ墝鐨勫悎娉曟��
+ expiration: 36000000 #JWT浠ょ墝鐨勬湁鏁堟湡锛岀敤浜庢牎楠孞WT浠ょ墝鐨勫悎娉曟��
+ header: JWTHeaderName #HTTP璇锋眰鐨凥eader鍚嶇О锛岃Header浣滀负鍙傛暟浼犻�扟WT浠ょ墝
+ userParamName: username #鐢ㄦ埛鐧诲綍璁よ瘉鐢ㄦ埛鍚嶅弬鏁板悕绉�
+ pwdParamName: password #鐢ㄦ埛鐧诲綍璁よ瘉瀵嗙爜鍙傛暟鍚嶇О
+ useDefaultController: true # 鏄惁浣跨敤榛樿鐨凧wtAuthController
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 7316080..2785bef 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -167,6 +167,7 @@
// 鐢熸垚瀵嗙爜
user.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
user.setSalt(salt);
+ user.setNeedChangePwd(Constants.ZERO);
// 鍒涘缓鐢ㄦ埛璁板綍
user.setType(insert.getType());
user.setAvatar(insert.getFaceImg());
@@ -202,7 +203,7 @@
insert.setCode(member.getCode());
insert.setType(Constants.TWO);
insert.setHkDate(new Date());
- insert.setWorkStatus(Constants.ONE);//榛樿鍦ㄨ亴
+ insert.setWorkStatus(Constants.ZERO);//榛樿鍦ㄨ亴
insert.setCanVisit(Constants.ZERO);//榛樿涓嶅彲璁块棶
insert.setAuthStatus(Constants.ZERO);
insert.setName(member.getName());
@@ -1856,6 +1857,8 @@
List<Member> newList = new ArrayList<>();
for(int i=0;i<dataList.size();i++){
MemberImport model = dataList.get(i);
+ model.setPhone(ScientificNotationTUtil.convertToString(model.getPhone()));
+ model.setIdcardNo(ScientificNotationTUtil.convertToString(model.getIdcardNo()));
if(StringUtils.isBlank(model.getName())
&&StringUtils.isBlank(model.getIdcardNo())
&&StringUtils.isBlank(model.getPhone())
--
Gitblit v1.9.3