From 7e5de439d51ac44a72807a82ea0caa26e7440d99 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 13 八月 2024 11:14:00 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 247 +++++++++++++++++++++++-------------------------- 1 files changed, 116 insertions(+), 131 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index dac579f..20f1847 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -9,8 +9,13 @@ import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.chargingPile.api.feignClient.SiteClient; +import com.ruoyi.chargingPile.api.model.Site; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.other.api.domain.TUserSite; +import com.ruoyi.other.api.feignClient.RoleSiteClient; +import com.ruoyi.other.api.feignClient.UserSiteClient; import com.ruoyi.system.domain.dto.IndexDto; import com.ruoyi.system.domain.vo.UserRoleVO; import com.ruoyi.system.api.model.*; @@ -18,8 +23,12 @@ import com.ruoyi.system.domain.dto.AddCompanyUserDto; import com.ruoyi.system.domain.vo.CompanyUserVo; import com.ruoyi.system.domain.vo.TCompanyToUserVo; +import com.ruoyi.system.query.GetSysUserList; import com.ruoyi.system.service.*; +import io.seata.spring.annotation.GlobalTransactional; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.BeanUtils; @@ -52,37 +61,51 @@ @RequestMapping("/user") @Api(tags = "用户信息") public class SysUserController extends BaseController { - @Autowired + @Resource private ISysUserService userService; - @Autowired + @Resource private ISysRoleService roleService; - @Autowired + @Resource private ISysDeptService deptService; - @Autowired + @Resource private ISysPostService postService; - @Autowired + @Resource private ISysPermissionService permissionService; - @Autowired + @Resource private ISysConfigService configService; - @Autowired + @Resource private ISysUserRoleService userRoleService; - @Autowired + @Resource private ISysUserRoleService sysUserRoleService; + + @Resource + private UserSiteClient userSiteClient; + + @Resource + private RoleSiteClient roleSiteClient; + + @Resource + private SiteClient siteClient; + + + + + /** * 获取用户列表 */ @GetMapping("/list") - @ApiOperation("管理员列表") - public AjaxResult list(String phonenumber, int pageNumber, int pageSize) { - PageInfo<SysUser> pageInfo = new PageInfo<>(pageNumber, pageSize); - PageInfo<SysUser> page = userService.getList(pageInfo, phonenumber); + @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-系统用户管理", "管理后台-角色管理"}) + public AjaxResult list(GetSysUserList getSysUserList) { + PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize()); + PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList); return AjaxResult.success(page); } @@ -91,8 +114,9 @@ */ @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping("/add") - @ApiOperation("添加管理员") - public AjaxResult add(@Validated @RequestBody SysUser user) { + @ApiOperation(value = "添加系统用户", tags = {"管理后台-系统用户管理"}) + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 + public AjaxResult add(@RequestBody SysUser user) { user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ user.setNickName(user.getPhonenumber()); @@ -100,24 +124,59 @@ if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { return error("手机号已开通账号"); } + if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { + return error("登录账号重复"); + } user.setCreateBy(SecurityUtils.getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setRoleType(1); - int i = userService.insertUser(user); + userService.insertUser(user); SysUserRole sysUserRole = new SysUserRole(); sysUserRole.setRoleId(user.getRoleId()); sysUserRole.setUserId(user.getUserId()); - int i1 = userRoleService.insertSysUserRole(sysUserRole); - return AjaxResult.success(i1); + userRoleService.insertSysUserRole(sysUserRole); + List<Integer> siteIds = user.getSiteIds(); + List<TUserSite> userSites = new ArrayList<>(); + for (Integer siteId : siteIds) { + TUserSite userSite = new TUserSite(); + userSite.setUserId(user.getUserId().intValue()); + userSite.setSiteId(siteId); + userSites.add(userSite); + } + userSiteClient.addUserSite(userSites); + return AjaxResult.success(); } - - + + + @GetMapping("/verifyUserNameRepeat/{username}") + @ApiOperation(value = "校验账号是否重复", tags = {"管理后台-系统用户管理"}) + public AjaxResult verifyUserNameRepeat(@PathVariable String username){ + SysUser user = new SysUser(); + user.setUserName(username); + if (StringUtils.isNotEmpty(username) && !userService.checkUserNameUnique(user)) { + return error("账号不可重复"); + } + return success(); + } + + @GetMapping("/getRoleSiteName/{roleId}") + @ApiOperation(value = "获取角色对应的站点名称", tags = {"管理后台-系统用户管理"}) + public AjaxResult<List<String>> getRoleSiteName(@PathVariable Integer roleId){ + List<Integer> ids = roleSiteClient.getSiteIds(roleId.longValue()).getData(); + List<Site> data = siteClient.getSiteByIds(ids).getData(); + List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList()); + return AjaxResult.success(siteNames); + } + + + + /** * 根据用户编号获取详细信息 */ - @ApiOperation("管理员详情") - @GetMapping(value = {"/", "/{userId}"}) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { + @ApiOperation(value = "获取用户详情", tags = {"管理后台-系统用户管理"}) + @GetMapping("/getInfo/{userId}") + public AjaxResult getInfo(@PathVariable Long userId) { userService.checkUserDataScope(userId); AjaxResult ajax = AjaxResult.success(); List<SysRole> roles = roleService.selectRoleAll(); @@ -125,6 +184,11 @@ ajax.put("posts", postService.selectPostAll()); if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); + List<Integer> siteIds = userSiteClient.getSiteIds(userId).getData(); + sysUser.setSiteIds(siteIds); + List<Site> data = siteClient.getSiteByIds(siteIds).getData(); + List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList()); + sysUser.setSiteNames(siteNames); ajax.put(AjaxResult.DATA_TAG, sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); @@ -138,9 +202,9 @@ */ @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/update") - @ApiOperation("编辑管理员") + @ApiOperation(value = "编辑系统用户", tags = {"管理后台-系统用户管理"}) + @GlobalTransactional(rollbackFor = Exception.class)//分布式事务 public AjaxResult edit(@Validated @RequestBody SysUser user) { - user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ user.setNickName(user.getPhonenumber()); @@ -162,6 +226,13 @@ if (StringUtils.isNotEmpty(user.getPhonenumber()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()) )) { return error("手机号已开通账号"); } + sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) + .eq(SysUser::getUserName, user.getUserName()) + .eq(SysUser::getDelFlag,0) + .last("LIMIT 1")); + if (StringUtils.isNotEmpty(user.getUserName()) && (Objects.nonNull(sysUser) && !user.getUserId().equals(sysUser.getUserId()) )) { + return error("登录账号重复"); + } user.setUpdateBy(SecurityUtils.getUsername()); if (user.getPassword() != null && !"".equals(user.getPassword())) { user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @@ -173,7 +244,20 @@ user.setPassword(null); user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateTime(new Date()); - return toAjax(userService.updateUser(user)); + userService.updateUser(user); + + //删除旧的站点数据后添加新的 + userSiteClient.delUserSite(user.getUserId()); + List<Integer> siteIds = user.getSiteIds(); + List<TUserSite> userSites = new ArrayList<>(); + for (Integer siteId : siteIds) { + TUserSite userSite = new TUserSite(); + userSite.setUserId(user.getUserId().intValue()); + userSite.setSiteId(siteId); + userSites.add(userSite); + } + userSiteClient.addUserSite(userSites); + return success(); } @@ -182,7 +266,7 @@ */ @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - @ApiOperation("删除管理员") + @ApiOperation(value = "删除系统用户", tags = {"管理后台-系统用户管理"}) public AjaxResult remove(@PathVariable Long[] userIds) { if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { return error("当前用户不能删除"); @@ -190,98 +274,25 @@ return toAjax(userService.deleteUserByIds(userIds)); } - - @Log(title = "账号管理", businessType = BusinessType.INSERT) - @PostMapping("/addCompanyUser") - @ApiOperation("账号管理--添加账号") - @Transactional(propagation = Propagation.REQUIRES_NEW) - public AjaxResult addCompanyUser(@Validated @RequestBody AddCompanyUserDto dto) { - SysUser user = dto.getSysUser(); - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { - return error("手机号已存在,请重新输入"); - } - user.setCreateBy(SecurityUtils.getUsername()); - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - user.setRoleType(3); - user.setUserName(user.getPhonenumber()); - if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ - user.setNickName(user.getPhonenumber()); - } - int i = userService.insertUser(user); - if (i > 0) { - // 添加role - SysUserRole sysUserRole = new SysUserRole(); - sysUserRole.setRoleId(dto.getRoleId()); - sysUserRole.setUserId(dto.getSysUser().getUserId()); - userRoleService.insertSysUserRole(sysUserRole); - } - return AjaxResult.success(); - } - - - @Log(title = "账号管理", businessType = BusinessType.INSERT) - @PostMapping("/companyUserInfo") - @ApiOperation("账号管理--账号详情") - @Transactional(propagation = Propagation.REQUIRES_NEW) - public AjaxResult companyUserInfo(@RequestParam Long userId) { - SysUser sysUser = userService.selectUserById(userId); - SysUserRole sysUserRole = userRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId)); - CompanyUserVo companyUserVo = new CompanyUserVo(); - companyUserVo.setRoleId(sysUserRole.getRoleId()); - companyUserVo.setSysUser(sysUser); - return AjaxResult.success(companyUserVo); - } - - @Log(title = "账号管理", businessType = BusinessType.INSERT) - @PostMapping("/updateCompanyUser") - @ApiOperation("账号管理--修改账号") - @Transactional(propagation = Propagation.REQUIRES_NEW) - public AjaxResult updateCompanyUser(@Validated @RequestBody AddCompanyUserDto dto) { - SysUser user = dto.getSysUser(); - - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { - return error("手机号已存在,请重新输入"); - } - user.setUserName(user.getPhonenumber()); - if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ - user.setNickName(user.getPhonenumber()); - } - if (user.getPassword() != null && !"".equals(user.getPassword())) { - user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); - } - user.setRoleType(1); - user.setUpdateBy(SecurityUtils.getUsername()); - user.setUpdateTime(new Date()); - int i = userService.updateUser(user); -// if (i > 0) { - // 原来的role - SysUserRole one = userRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, dto.getSysUser().getUserId())); - one.setRoleId(dto.getRoleId()); - //更新新的role - userRoleService.updateSysUserRole(one); -// } - return AjaxResult.success(); - } + @PostMapping("/shopUserStart") - @ApiOperation("账号管理--停用/启用") - public AjaxResult shopUserStart(Long userId) { + @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-系统用户管理"}) + public AjaxResult shopUserStart(@RequestParam("userId") Long userId, @RequestParam("remark") String remark) { if (userId == null) { return AjaxResult.error("userId不能为空"); } SysUser sysUser = userService.selectUserById(userId); if (sysUser.getStatus().equals("0")) { sysUser.setStatus("1"); + sysUser.setRemark(remark); } else { sysUser.setStatus("0"); + sysUser.setRemark(""); } return toAjax(userService.updateUser(sysUser)); } - - - @Autowired - private ISysUserRoleService iSysUserRoleService; @PostMapping("/getUserList") @@ -454,32 +465,6 @@ } - @Log(title = "用户管理", businessType = BusinessType.EXPORT) - @RequiresPermissions("system:user:export") - @PostMapping("/export") - public void export(HttpServletResponse response, SysUser user) { - List<SysUser> list = userService.selectUserList(user); - ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); - util.exportExcel(response, list, "用户数据"); - } - - @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) throws IOException { - ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); - util.importTemplateExcel(response, "用户数据"); - } - - @Log(title = "用户管理", businessType = BusinessType.IMPORT) - @RequiresPermissions("system:user:import") - @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { - ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); - List<SysUser> userList = util.importExcel(file.getInputStream()); - String operName = SecurityUtils.getUsername(); - String message = userService.importUser(userList, updateSupport, operName); - return success(message); - } - /** * 获取当前用户信息 */ @@ -505,7 +490,6 @@ /** * 注册用户信息 */ - @InnerAuth @PostMapping("/register") public R<Boolean> register(@RequestBody SysUser sysUser) { String username = sysUser.getUserName(); @@ -544,6 +528,7 @@ @RequiresPermissions("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") + @ApiOperation(value = "重置密码", tags = {"管理后台-系统用户管理"}) public AjaxResult resetPwd(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); -- Gitblit v1.7.1