diff --git a/src/main/java/com/dc/dc_project/controller/sys/UserController.java b/src/main/java/com/dc/dc_project/controller/sys/UserController.java index c1cba39..f3c6c29 100644 --- a/src/main/java/com/dc/dc_project/controller/sys/UserController.java +++ b/src/main/java/com/dc/dc_project/controller/sys/UserController.java @@ -5,10 +5,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.stp.StpUtil; import com.dc.dc_project.common.ResponseResult; import com.dc.dc_project.common.aop.DcCheckPermission; -import com.dc.dc_project.model.dto.user.UpdateUserPasswordDto; -import com.dc.dc_project.model.dto.user.UserAddDto; -import com.dc.dc_project.model.dto.user.UserInfoUpdateDto; -import com.dc.dc_project.model.dto.user.UserReqDto; +import com.dc.dc_project.model.dto.user.*; import com.dc.dc_project.model.pojo.RecordResult; import com.dc.dc_project.model.pojo.User; import com.dc.dc_project.service.UserService; @@ -48,11 +45,34 @@ public class UserController { @PostMapping("/updateInfo") ResponseResult updateInfo(@RequestBody UserInfoUpdateDto userInfoUpdateDto) { - return ResponseResult.success(); + Long userId = StpUtil.getLoginIdAsLong(); + userInfoUpdateDto.setId(userId); + return userService.updateInfo(userInfoUpdateDto); + } + + @PostMapping("/updateUserInfo") + @DcCheckPermission("system:user:updateInfo") + ResponseResult updateUserInfo(@RequestBody UserInfoUpdateDto userInfoUpdateDto) { + return userService.updateInfo(userInfoUpdateDto); } @PostMapping("/updatePassword") ResponseResult updatePassword(@RequestBody UpdateUserPasswordDto updateUserPasswordDto) { - return ResponseResult.success(); + Long userId = StpUtil.getLoginIdAsLong(); + updateUserPasswordDto.setId(userId); + return userService.updatePassword(updateUserPasswordDto); + } + + @PostMapping("/resetPassword") + @DcCheckPermission("system:user:resetPassword") + ResponseResult resetPassword(@RequestBody UpdateUserPasswordDto updateUserPasswordDto) { + return userService.resetPassword(updateUserPasswordDto); + } + + @PostMapping("/delete") + @DcCheckPermission("system:user:delete") + ResponseResult delete(@RequestBody DaleteUserDto daleteUserDto) { + Long userId = StpUtil.getLoginIdAsLong(); + return userService.delete(daleteUserDto, userId); } } diff --git a/src/main/java/com/dc/dc_project/model/dto/user/DaleteUserDto.java b/src/main/java/com/dc/dc_project/model/dto/user/DaleteUserDto.java new file mode 100644 index 0000000..272b4c8 --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/dto/user/DaleteUserDto.java @@ -0,0 +1,12 @@ +package com.dc.dc_project.model.dto.user; + + +//删除 + +import lombok.Data; + +@Data +public class DaleteUserDto { + + private Long[] id; +} diff --git a/src/main/java/com/dc/dc_project/model/dto/user/UpdateUserPasswordDto.java b/src/main/java/com/dc/dc_project/model/dto/user/UpdateUserPasswordDto.java index 97992ab..fed7b51 100644 --- a/src/main/java/com/dc/dc_project/model/dto/user/UpdateUserPasswordDto.java +++ b/src/main/java/com/dc/dc_project/model/dto/user/UpdateUserPasswordDto.java @@ -1,4 +1,13 @@ package com.dc.dc_project.model.dto.user; + +import lombok.Data; + +@Data public class UpdateUserPasswordDto { + + private Long id; + private String oldPassword; + + private String newPassword; } diff --git a/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java b/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java index f2ccece..fc51905 100644 --- a/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java +++ b/src/main/java/com/dc/dc_project/model/dto/user/UserAddDto.java @@ -6,7 +6,7 @@ import lombok.Data; @Data public class UserAddDto { - private Long personnel_id; + private Long personnelId; private String username; diff --git a/src/main/java/com/dc/dc_project/model/dto/user/UserInfoUpdateDto.java b/src/main/java/com/dc/dc_project/model/dto/user/UserInfoUpdateDto.java index 372f621..6aed4e2 100644 --- a/src/main/java/com/dc/dc_project/model/dto/user/UserInfoUpdateDto.java +++ b/src/main/java/com/dc/dc_project/model/dto/user/UserInfoUpdateDto.java @@ -1,4 +1,18 @@ package com.dc.dc_project.model.dto.user; + +import lombok.Data; + +@Data public class UserInfoUpdateDto { + + private Long id; + private String username; + private String phone; + + private Integer status; + + private String remark; + + } diff --git a/src/main/java/com/dc/dc_project/service/UserService.java b/src/main/java/com/dc/dc_project/service/UserService.java index 0850fd1..0cf6a1f 100644 --- a/src/main/java/com/dc/dc_project/service/UserService.java +++ b/src/main/java/com/dc/dc_project/service/UserService.java @@ -1,9 +1,7 @@ package com.dc.dc_project.service; import com.dc.dc_project.common.ResponseResult; -import com.dc.dc_project.model.dto.user.LoginDto; -import com.dc.dc_project.model.dto.user.UserAddDto; -import com.dc.dc_project.model.dto.user.UserReqDto; +import com.dc.dc_project.model.dto.user.*; import com.dc.dc_project.model.pojo.RecordResult; import com.dc.dc_project.model.pojo.User; import com.baomidou.mybatisplus.extension.service.IService; @@ -44,4 +42,33 @@ public interface UserService extends IService { * @param user */ ResponseResult save(UserAddDto user); + + /** + * 更新用户信息 + * @param userInfoUpdateDto + * @return + */ + ResponseResult updateInfo(UserInfoUpdateDto userInfoUpdateDto); + + /** + * 更新用户密码 + * @param updateUserPasswordDto + * @return + */ + ResponseResult updatePassword(UpdateUserPasswordDto updateUserPasswordDto); + + /** + * 重置用户密码 + * @param updateUserPasswordDto + * @return + */ + ResponseResult resetPassword(UpdateUserPasswordDto updateUserPasswordDto); + + /** + * 删除用户 + * @param daleteUserDto + * @param userId + * @return + */ + ResponseResult delete(DaleteUserDto daleteUserDto, Long userId); } diff --git a/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java index 26075a9..855692d 100644 --- a/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/UserServiceImpl.java @@ -9,9 +9,7 @@ import com.dc.dc_project.common.ResultCode; import com.dc.dc_project.enums.DataScopeType; import com.dc.dc_project.enums.IsDeleted; import com.dc.dc_project.mapper.*; -import com.dc.dc_project.model.dto.user.LoginDto; -import com.dc.dc_project.model.dto.user.UserAddDto; -import com.dc.dc_project.model.dto.user.UserReqDto; +import com.dc.dc_project.model.dto.user.*; import com.dc.dc_project.model.pojo.*; import com.dc.dc_project.model.vo.PersonnelVo; import com.dc.dc_project.model.vo.PositionVo; @@ -26,9 +24,11 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -43,6 +43,7 @@ import static com.dc.dc_project.model.vo.PersonnelVo.toVo; @Service @Slf4j @RequiredArgsConstructor(onConstructor_ = @Autowired) +@Transactional public class UserServiceImpl extends ServiceImpl implements UserService{ @@ -152,6 +153,13 @@ public class UserServiceImpl extends ServiceImpl @Override public ResponseResult save(UserAddDto userDto) { + Personnel personnel = personnelService.getById(userDto.getPersonnelId()); + if(personnel.getUserId() != null){ + return ResponseResult.error("已存在用户账号"); + } + if(userDto.getPassword() == null){ + userDto.setPassword(userDto.getPhone()); + } User user = new User(); user.setUsername(userDto.getUsername()); user.setPassword(userDto.getPassword()); @@ -159,7 +167,61 @@ public class UserServiceImpl extends ServiceImpl user.setStatus(1); user.setCreatedAt(LocalDateTime.now()); user.setUpdatedAt(LocalDateTime.now()); - return this.save(user) ? ResponseResult.success() : ResponseResult.error(); + if (this.save(user)){ + personnel.setUserId(user.getId()); + return personnelService.updateById(personnel) ? ResponseResult.success() : ResponseResult.error(); + } + return ResponseResult.error(); + } + + @Override + public ResponseResult updateInfo(UserInfoUpdateDto userInfoUpdateDto) { + User oleUser = this.getById(userInfoUpdateDto.getId()); + if(oleUser == null){ + return ResponseResult.error(ResultCode.ERROR_USER_NOT_EXIST); + } + oleUser.setUsername(userInfoUpdateDto.getUsername() == null ? oleUser.getUsername() : userInfoUpdateDto.getUsername()); + oleUser.setPhone(userInfoUpdateDto.getPhone() == null ? oleUser.getPhone() : userInfoUpdateDto.getPhone()); + oleUser.setRemark(userInfoUpdateDto.getRemark() == null ? oleUser.getRemark() : userInfoUpdateDto.getRemark()); + oleUser.setStatus(userInfoUpdateDto.getStatus() == null ? oleUser.getStatus() : userInfoUpdateDto.getStatus()); + return this.updateById(oleUser) ? ResponseResult.success() : ResponseResult.error(); + } + + @Override + public ResponseResult updatePassword(UpdateUserPasswordDto updateUserPasswordDto) { + User user = this.getById(updateUserPasswordDto.getId()); + if(user == null){ + return ResponseResult.error(ResultCode.ERROR_USER_NOT_EXIST); + } + user.setPassword(updateUserPasswordDto.getNewPassword()); + return this.updateById(user) ? ResponseResult.success() : ResponseResult.error(); + } + + @Override + public ResponseResult resetPassword(UpdateUserPasswordDto updateUserPasswordDto) { + User user = this.getById(updateUserPasswordDto.getId()); + if(user == null){ + return ResponseResult.error(ResultCode.ERROR_USER_NOT_EXIST); + } + user.setPassword(user.getPhone()); + return this.updateById(user) ? ResponseResult.success() : ResponseResult.error(); + } + + @Override + public ResponseResult delete(DaleteUserDto daleteUserDto, Long userId) { + //权限范围检验 + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .in(User::getId, (Object) daleteUserDto.getId()) + .eq(User::getIsDeleted, 0); + + List users = this.list(queryWrapper); + for (User user : users){ + user.setIsDeleted(1); + } + + return this.updateBatchById(users) ? ResponseResult.success() : ResponseResult.error(); + } }