|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.vincent.rsf.framework.common.BaseRes; | 
|---|
|  |  |  | import com.vincent.rsf.framework.common.Cools; | 
|---|
|  |  |  | import com.vincent.rsf.framework.common.R; | 
|---|
|  |  |  | import com.vincent.rsf.framework.exception.CoolException; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.vincent.rsf.server.common.domain.PageParam; | 
|---|
|  |  |  | import com.vincent.rsf.server.common.domain.PageResult; | 
|---|
|  |  |  | import com.vincent.rsf.server.common.utils.ExcelUtil; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.controller.param.ResetPwdParam; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.entity.Tenant; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.entity.User; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.entity.UserRole; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.enums.StatusType; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.service.TenantService; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.service.UserRoleService; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.service.UserService; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private UserService userService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TenantService tenantService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private UserRoleService userRoleService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping("/user/update") | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R update(@RequestBody User user) { | 
|---|
|  |  |  | Tenant tenant = tenantService.getById(getTenantId()); | 
|---|
|  |  |  | if (!user.getId().equals(getLoginUserId()) && tenant.getRoot().equals(user.getId())) { | 
|---|
|  |  |  | return R.parse(BaseRes.LIMIT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (user.getPassword() != null && user.getPassword().equals("")) { | 
|---|
|  |  |  | user.setPassword(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping("/user/remove/{ids}") | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R remove(@PathVariable Long[] ids) { | 
|---|
|  |  |  | Tenant tenant = tenantService.getById(getTenantId()); | 
|---|
|  |  |  | Long loginUserId = getLoginUserId(); | 
|---|
|  |  |  | for (Long userId : ids) { | 
|---|
|  |  |  | if (!userId.equals(loginUserId) && tenant.getRoot().equals(userId)) { | 
|---|
|  |  |  | return R.parse(BaseRes.LIMIT); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!userService.removeById(userId)) { | 
|---|
|  |  |  | throw new CoolException("Internal Server Error"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping("/user/export") | 
|---|
|  |  |  | public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
|---|
|  |  |  | ExcelUtil.build(ExcelUtil.create(userService.list(), User.class), response); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @PreAuthorize("hasAuthority('system:user:update')") | 
|---|
|  |  |  | @OperationLog("Reset Password") | 
|---|
|  |  |  | @PostMapping("/user/reset/pwd") | 
|---|
|  |  |  | public R resetPwd(@RequestBody ResetPwdParam param) { | 
|---|
|  |  |  | User user = userService.getById(param.getId()); | 
|---|
|  |  |  | if (!Cools.isEmpty(param.getOldPwd())) { | 
|---|
|  |  |  | if (!userService.comparePassword(user.getPassword(), param.getOldPwd())) { | 
|---|
|  |  |  | return R.error("The old password is incorrect"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (!Cools.isEmpty(param.getPassword())) { | 
|---|
|  |  |  | user.setPassword(userService.encodePassword(param.getPassword())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | user.setUpdateBy(getLoginUserId()); | 
|---|
|  |  |  | user.setUpdateTime(new Date()); | 
|---|
|  |  |  | if (!userService.updateById(user)) { | 
|---|
|  |  |  | return R.error("Reset Fail"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok("Reset Success"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|