|
|
@@ -1,25 +1,26 @@
|
|
|
package com.chuanghai.ihotel.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.chuanghai.ihotel.aop.LoginCheckAspect;
|
|
|
import com.chuanghai.ihotel.common.exception.BizCodeEnume;
|
|
|
import com.chuanghai.ihotel.common.exception.RRException;
|
|
|
+import com.chuanghai.ihotel.common.utils.MyQuery;
|
|
|
+import com.chuanghai.ihotel.common.utils.PageParam;
|
|
|
+import com.chuanghai.ihotel.common.utils.PageUtils;
|
|
|
import com.chuanghai.ihotel.controller.request.AdminLoginRequest;
|
|
|
+import com.chuanghai.ihotel.controller.request.AdminPasswordUpdateRequest;
|
|
|
+import com.chuanghai.ihotel.dao.HotelAdminDao;
|
|
|
import com.chuanghai.ihotel.dto.LoginUserDTO;
|
|
|
+import com.chuanghai.ihotel.entity.HotelAdminEntity;
|
|
|
+import com.chuanghai.ihotel.service.HotelAdminService;
|
|
|
import com.chuanghai.ihotel.util.JWTUtil;
|
|
|
import com.chuanghai.ihotel.util.RSAUtils;
|
|
|
import com.chuanghai.ihotel.vo.LoginUserVO;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.chuanghai.ihotel.common.utils.PageUtils;
|
|
|
-import com.chuanghai.ihotel.common.utils.MyQuery;
|
|
|
-import com.chuanghai.ihotel.common.utils.PageParam;
|
|
|
-
|
|
|
-import com.chuanghai.ihotel.dao.HotelAdminDao;
|
|
|
-import com.chuanghai.ihotel.entity.HotelAdminEntity;
|
|
|
-import com.chuanghai.ihotel.service.HotelAdminService;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
@@ -91,4 +92,44 @@ public class HotelAdminServiceImpl extends ServiceImpl<HotelAdminDao, HotelAdmin
|
|
|
this.save(staffEntity);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void updatePassword(AdminPasswordUpdateRequest request) {
|
|
|
+ String password;
|
|
|
+ try {
|
|
|
+ // 密码解密
|
|
|
+ password = RSAUtils.decrypt(request.getPassword(), RSAUtils.getPrivateKey(privateKey));
|
|
|
+
|
|
|
+ // 密码加密存储
|
|
|
+ BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
|
|
|
+ password = passwordEncoder.encode(password);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "修改用户密码失败-密码解密错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ LoginUserDTO loginUser = LoginCheckAspect.threadLocal.get();
|
|
|
+
|
|
|
+ HotelAdminEntity adminEntity = this.getById(loginUser.getAdminId());
|
|
|
+ if (adminEntity == null) {
|
|
|
+ throw new RRException(BizCodeEnume.PERMISSION_DENIED, "无效的用户");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (request.getAdminId() != null) { // 修改他人密码
|
|
|
+ if (!"1".equals(adminEntity.getAdminType())) {
|
|
|
+ throw new RRException(BizCodeEnume.PERMISSION_DENIED, "非超级管理员不能修改他人密码");
|
|
|
+ }
|
|
|
+
|
|
|
+ HotelAdminEntity admin = this.getById(request.getAdminId());
|
|
|
+ if (admin == null) {
|
|
|
+ throw new RRException(BizCodeEnume.PARAMETER_ERROR, "用户不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ admin.setPassword(password);
|
|
|
+
|
|
|
+ this.updateById(admin);
|
|
|
+ } else { // 修改本人密码
|
|
|
+ adminEntity.setPassword(password);
|
|
|
+ this.updateById(adminEntity);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|