From 311a9724cf15249bc372a3d070791a389f056d4a Mon Sep 17 00:00:00 2001 From: lihongbiao <964708803@qq.com> Date: Thu, 24 Jul 2025 18:05:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/service/UserCacheManager.java | 15 ++++++++++++ .../controller/CnCustomerController.java | 23 +++++++++++++++++++ .../controller/EmEmployeesController.java | 8 +++---- .../system/mapper/CnCustomerMapper.java | 4 ++++ .../system/mapper/EmEmployeesMapper.java | 6 +++++ .../system/service/CnCustomerService.java | 7 ++++++ .../system/service/EmEmployeesService.java | 14 +++++++++++ .../service/impl/CnCustomerServiceImpl.java | 11 +++++++++ .../service/impl/EmEmployeesServiceImpl.java | 17 ++++++++++++++ 9 files changed, 101 insertions(+), 4 deletions(-) diff --git a/aircraft-system/src/main/java/com/aircraft/modules/security/service/UserCacheManager.java b/aircraft-system/src/main/java/com/aircraft/modules/security/service/UserCacheManager.java index d95b6db..fc1f6b8 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/security/service/UserCacheManager.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/security/service/UserCacheManager.java @@ -98,6 +98,21 @@ public class UserCacheManager { } } + /** + * 清理用户缓存信息 + * 用户信息变更时 + * @param userName 用户名 + */ + @Async + public void cleanEmployeesCache(String userName) { + // 转小写 + userName = StringUtils.lowerCase(userName); + if (StringUtils.isNotEmpty(userName)) { + // 清除数据 + redisUtils.del(LoginProperties.aCacheKey + userName); + } + } + public void addCustomerCache(String username, JwtUserDto customerDto) { // 转小写 username = StringUtils.lowerCase(username); diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/controller/CnCustomerController.java b/aircraft-system/src/main/java/com/aircraft/modules/system/controller/CnCustomerController.java index 28c0c06..2308704 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/controller/CnCustomerController.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/controller/CnCustomerController.java @@ -2,9 +2,15 @@ package com.aircraft.modules.system.controller; import com.aircraft.annotation.Log; +import com.aircraft.config.properties.RsaProperties; +import com.aircraft.exception.BadRequestException; import com.aircraft.modules.system.domain.CnCustomer; +import com.aircraft.modules.system.domain.EmEmployees; +import com.aircraft.modules.system.domain.dto.UserPassVo; import com.aircraft.modules.system.service.CnCustomerService; import com.aircraft.utils.PageResult; +import com.aircraft.utils.RsaUtils; +import com.aircraft.utils.SecurityUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -112,5 +118,22 @@ public class CnCustomerController { return new ResponseEntity<>(Collections.emptyList(),HttpStatus.OK); } + @ApiOperation("修改密码") + @PostMapping(value = "/updatePass") + public ResponseEntity updateUserPass(@RequestBody UserPassVo passVo) throws Exception { + CnCustomer customer = entityService.findByUserName(SecurityUtils.getCurrentUsername()); + String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getOldPass()); + String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getNewPass()); + + if(!passwordEncoder.matches(oldPass, customer.getPassword())){ + throw new BadRequestException("修改失败,旧密码错误"); + } + if(passwordEncoder.matches(newPass, customer.getPassword())){ + throw new BadRequestException("新密码不能与旧密码相同"); + } + entityService.updatePass(customer.getUsername(),passwordEncoder.encode(newPass)); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/controller/EmEmployeesController.java b/aircraft-system/src/main/java/com/aircraft/modules/system/controller/EmEmployeesController.java index e9366d2..ce8bbda 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/controller/EmEmployeesController.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/controller/EmEmployeesController.java @@ -126,17 +126,17 @@ public class EmEmployeesController { @ApiOperation("修改密码") @PostMapping(value = "/updatePass") public ResponseEntity updateUserPass(@RequestBody UserPassVo passVo) throws Exception { - User user = userService.findByName(SecurityUtils.getCurrentUsername()); + EmEmployees emEmployees = emEmployeesService.findByUserName(SecurityUtils.getCurrentUsername()); String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getOldPass()); String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getNewPass()); - if(!passwordEncoder.matches(oldPass, user.getPassword())){ + if(!passwordEncoder.matches(oldPass, emEmployees.getPassword())){ throw new BadRequestException("修改失败,旧密码错误"); } - if(passwordEncoder.matches(newPass, user.getPassword())){ + if(passwordEncoder.matches(newPass, emEmployees.getPassword())){ throw new BadRequestException("新密码不能与旧密码相同"); } - userService.updatePass(user.getUsername(),passwordEncoder.encode(newPass)); + emEmployeesService.updatePass(emEmployees.getUsername(),passwordEncoder.encode(newPass)); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/CnCustomerMapper.java b/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/CnCustomerMapper.java index 6a48238..7a7ad6f 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/CnCustomerMapper.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/CnCustomerMapper.java @@ -3,6 +3,8 @@ package com.aircraft.modules.system.mapper; import com.aircraft.modules.system.domain.CnCustomer; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -15,4 +17,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface CnCustomerMapper extends BaseMapper { + @Select("update cn_customer set password = #{password} where username = #{username}") + void updatePass(@Param("username") String username, @Param("password") String password); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmEmployeesMapper.java b/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmEmployeesMapper.java index f06160a..b08ec12 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmEmployeesMapper.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/mapper/EmEmployeesMapper.java @@ -17,6 +17,8 @@ package com.aircraft.modules.system.mapper; import com.aircraft.modules.system.domain.EmEmployees; import com.aircraft.modules.system.domain.dto.EmEmployeesQueryCriteria; + +import java.util.Date; import java.util.List; import java.util.Set; @@ -28,6 +30,7 @@ import org.apache.ibatis.annotations.Mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Select; /** * @author lhb @@ -43,4 +46,7 @@ public interface EmEmployeesMapper extends BaseMapper { List findByExample(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, Page page); void deleteBatchIds(@Param("ids") List ids); + + @Select("update em_employees set password = #{password} where username = #{username}") + void updatePass(@Param("username") String username, @Param("password") String password); } \ No newline at end of file diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/CnCustomerService.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/CnCustomerService.java index e3732d3..50e290e 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/service/CnCustomerService.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/CnCustomerService.java @@ -40,4 +40,11 @@ public interface CnCustomerService extends IService { CnCustomer findByPhone(String phone); CnCustomer findByUserName(String username); + + /** + * 修改密码 + * @param username 用户名 + * @param encryptPassword 密码 + */ + void updatePass(String username, String encryptPassword); } diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/EmEmployeesService.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/EmEmployeesService.java index a2f5e65..ec753a0 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/service/EmEmployeesService.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/EmEmployeesService.java @@ -108,4 +108,18 @@ public interface EmEmployeesService extends IService { * @return List */ List obtainEmployeesByIds(List orderInitiatorIds); + + /** + * 用户名查询飞行员 + * @param currentUsername + * @return + */ + EmEmployees findByUserName(String currentUsername); + + /** + * 修改密码 + * @param username 用户名 + * @param encryptPassword 密码 + */ + void updatePass(String username, String encryptPassword); } \ No newline at end of file diff --git a/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/CnCustomerServiceImpl.java b/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/CnCustomerServiceImpl.java index 25a93a8..51a0d93 100644 --- a/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/CnCustomerServiceImpl.java +++ b/aircraft-system/src/main/java/com/aircraft/modules/system/service/impl/CnCustomerServiceImpl.java @@ -1,6 +1,7 @@ package com.aircraft.modules.system.service.impl; import com.aircraft.base.BaseEntity; +import com.aircraft.modules.security.service.UserCacheManager; import com.aircraft.modules.system.domain.CnCustomer; import com.aircraft.modules.system.mapper.CnCustomerMapper; import com.aircraft.modules.system.service.CnCustomerService; @@ -10,6 +11,7 @@ import com.aircraft.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; @@ -22,9 +24,12 @@ import java.util.List; * @author cli * @since 2025-07-09 */ +@RequiredArgsConstructor @Service public class CnCustomerServiceImpl extends ServiceImpl implements CnCustomerService { + private final UserCacheManager userCacheManager; + @Override public List list(CnCustomer example) { return this.list(buildWrapper(example)); @@ -53,6 +58,12 @@ public class CnCustomerServiceImpl extends ServiceImpl queryAll(EmEmployeesQueryCriteria criteria, Page page){ @@ -92,6 +94,21 @@ public class EmEmployeesServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda() + .eq(EmEmployees::getUsername,currentUsername) + .eq(EmEmployees::getDelFlag,0); + return this.emEmployeesMapper.selectOne(queryWrapper); + } + + @Override + public void updatePass(String username, String encryptPassword) { + emEmployeesMapper.updatePass(username, encryptPassword); + userCacheManager.cleanEmployeesCache(username); + } + @Override @Transactional(rollbackFor = Exception.class) public void update(EmEmployees resources) {