From b5d7c801adca3fc51c016cfe0ecc53102a70c28b Mon Sep 17 00:00:00 2001 From: panshuling321 Date: Fri, 20 May 2022 17:46:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B7=A5=E5=8D=95=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E5=92=8C=E4=BA=BA=E5=91=98=E7=9A=84=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WorkDeptController.java | 113 +++++++++ .../controller/WorkUserController.java | 123 ++++++++++ .../activity/domain/SysUserRoleDomain.java | 13 ++ .../activity/domain/XhpcWorkUserDomain.java | 19 ++ .../xhpc/activity/mapper/SysUserMapper.java | 99 ++++++++ .../activity/mapper/SysUserRoleMapper.java | 57 +++++ .../activity/mapper/XhpcWorkDeptMapper.java | 8 +- .../activity/mapper/XhpcWorkUserMapper.java | 14 +- .../activity/service/WorkDeptService.java | 25 ++ .../activity/service/WorkUserService.java | 18 ++ .../service/impl/WorkDeptServiceImpl.java | 80 +++++++ .../service/impl/WorkUserServiceImpl.java | 176 ++++++++++++++ .../activity/vo/SysUserResetPasswordVo.java | 11 + .../main/resources/mapper/SysUserMapper.xml | 221 ++++++++++++++++++ .../resources/mapper/SysUserRoleMapper.xml | 53 +++++ .../mapper/XhpcClearingCheckoutMapper.xml | 2 +- .../resources/mapper/XhpcWorkDeptMapper.xml | 130 ++++------- .../resources/mapper/XhpcWorkUserMapper.xml | 181 ++++++-------- 18 files changed, 1128 insertions(+), 215 deletions(-) create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkDeptController.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkUserController.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/SysUserRoleDomain.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserMapper.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserRoleMapper.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkDeptService.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkDeptServiceImpl.java create mode 100644 xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/vo/SysUserResetPasswordVo.java create mode 100644 xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserMapper.xml create mode 100644 xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserRoleMapper.xml diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkDeptController.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkDeptController.java new file mode 100644 index 00000000..1a9cc79d --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkDeptController.java @@ -0,0 +1,113 @@ +package com.xhpc.activity.controller; + + +import com.xhpc.activity.domain.XhpcWorkDeptDomain; +import com.xhpc.activity.service.WorkDeptService; +import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.web.controller.BaseController; +import com.xhpc.common.core.web.page.TableDataInfo; +import com.xhpc.common.log.annotation.Log; +import com.xhpc.common.log.enums.BusinessType; +import com.xhpc.common.util.LogUserUtils; +import com.xhpc.system.api.model.LoginUser; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +@RestController +@RequestMapping("/work/dept") +public class WorkDeptController extends BaseController { + + @Resource + WorkDeptService workDeptService; + + @Resource + LogUserUtils logUserUtils; + + + @GetMapping("/getPage") + public TableDataInfo getPage(HttpServletRequest request, + String status) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + startPage(); + Map params = new HashMap<>(); + params.put("tenantId", loginUser.getTenantId()); + params.put("status", status); + return getDataTable(workDeptService.getPage(params)); + } + + + @GetMapping("/getList") + public R getList(HttpServletRequest request) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + + Map params = new HashMap<>(); + params.put("tenantId", loginUser.getTenantId()); + return R.ok(workDeptService.getList(params)); + } + + + @GetMapping("/getTree") + public R getTree(HttpServletRequest request) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + + Map params = new HashMap<>(); + params.put("tenantId", loginUser.getTenantId()); + return R.ok(workDeptService.getTree(params)); + } + + + @GetMapping("/detail") + public R getDetail(@RequestParam("deptId") Long deptId) { + + return R.ok(workDeptService.getDomainByPk(deptId)); + } + + + @Log(title = "工单管理-新增运维部门", businessType = BusinessType.INSERT) + @PostMapping("/") + public R insertDomain(HttpServletRequest request, @RequestBody XhpcWorkDeptDomain domain) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + domain.setCreateBy(loginUser.getUserid().toString()); + domain.setUpdateBy(loginUser.getUserid().toString()); + domain.setTenantId(loginUser.getTenantId()); + return R.ok(workDeptService.insertDomain(domain)); + } + + + @Log(title = "工单管理-更新运维部门", businessType = BusinessType.UPDATE) + @PutMapping("/detail") + public R updateDomain(HttpServletRequest request, @RequestBody XhpcWorkDeptDomain domain) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + domain.setUpdateBy(loginUser.getUserid().toString()); + return R.ok(workDeptService.updateDomain(domain)); + } + + + @Log(title = "工单管理-更新运维部门状态", businessType = BusinessType.UPDATE) + @PutMapping("/status") + public R updateDomainStatus(HttpServletRequest request, @RequestBody XhpcWorkDeptDomain domain) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + domain.setUpdateBy(loginUser.getUserid().toString()); + return R.ok(workDeptService.updateDomainStatus(domain)); + } + + + @Log(title = "工单管理-删除运维部门", businessType = BusinessType.DELETE) + @DeleteMapping("/{deptId}") + public R deleteDomainByPk(@PathVariable("deptId") Long deptId) { + + return R.ok(workDeptService.deleteDomain(deptId)); + } + + +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkUserController.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkUserController.java new file mode 100644 index 00000000..0557f825 --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/controller/WorkUserController.java @@ -0,0 +1,123 @@ +package com.xhpc.activity.controller; + + +import com.xhpc.activity.domain.XhpcWorkUserDomain; +import com.xhpc.activity.service.WorkUserService; +import com.xhpc.activity.vo.SysUserResetPasswordVo; +import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.web.controller.BaseController; +import com.xhpc.common.core.web.page.TableDataInfo; +import com.xhpc.common.log.annotation.Log; +import com.xhpc.common.log.enums.BusinessType; +import com.xhpc.common.util.LogUserUtils; +import com.xhpc.system.api.model.LoginUser; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +@RestController +@RequestMapping("/work/user") +public class WorkUserController extends BaseController { + + @Resource + WorkUserService workUserService; + + @Resource + LogUserUtils logUserUtils; + + @GetMapping("/getPage") + public TableDataInfo getPage(HttpServletRequest request, + String status) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + startPage(); + Map params = new HashMap<>(); + params.put("tenantId", loginUser.getTenantId()); + params.put("status", status); + return getDataTable(workUserService.getPage(params)); + } + + + @GetMapping("/getList") + public R getList(HttpServletRequest request) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + + Map params = new HashMap<>(); + params.put("tenantId", loginUser.getTenantId()); + return R.ok(workUserService.getList(params)); + } + + + @GetMapping("/getTree") + public R getTree(HttpServletRequest request) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + + Map params = new HashMap<>(); + params.put("tenantId", loginUser.getTenantId()); + return R.ok(workUserService.getTree(params)); + } + + + @GetMapping("/detail") + public R getDetail(@RequestParam("userId") Long userId) { + + return R.ok(workUserService.findByPk(userId)); + } + + + @Log(title = "工单管理-新增运维人员", businessType = BusinessType.INSERT) + @PostMapping("/") + public R insertDomain(HttpServletRequest request, @RequestBody XhpcWorkUserDomain domain) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + + domain.setTenantId(loginUser.getTenantId()); + domain.setCreateBy(loginUser.getUserid().toString()); + domain.setUpdateBy(loginUser.getUserid().toString()); + return R.ok(workUserService.insertDomain(domain)); + } + + + @Log(title = "工单管理-更新运维人员", businessType = BusinessType.UPDATE) + @PutMapping("/detail") + public R updateDomain(HttpServletRequest request, @RequestBody XhpcWorkUserDomain domain) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + domain.setUpdateBy(loginUser.getUserid().toString()); + return R.ok(workUserService.updateDomain(domain)); + } + + + @Log(title = "工单管理-更新运维人员密码", businessType = BusinessType.UPDATE) + @PutMapping("/resetPwd") + public R resetDomainPwd(HttpServletRequest request, @RequestBody SysUserResetPasswordVo vo) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + vo.setTenantId(loginUser.getTenantId()); + return R.ok(workUserService.resetPassword(vo)); + } + + + @Log(title = "工单管理-更新运维人员状态", businessType = BusinessType.UPDATE) + @PutMapping("/status") + public R updateDomainStatus(HttpServletRequest request, @RequestBody XhpcWorkUserDomain domain) { + + LoginUser loginUser = logUserUtils.getLogUser(request); + domain.setUpdateBy(loginUser.getUserid().toString()); + return R.ok(workUserService.updateDomainStatus(domain)); + } + + + @Log(title = "工单管理-删除运维人员", businessType = BusinessType.DELETE) + @DeleteMapping("/{userId}") + public R deleteDomainByPk(@PathVariable("userId") Long userId) { + + return R.ok(workUserService.deleteDomain(userId)); + } + +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/SysUserRoleDomain.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/SysUserRoleDomain.java new file mode 100644 index 00000000..bcdaa2e0 --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/SysUserRoleDomain.java @@ -0,0 +1,13 @@ +package com.xhpc.activity.domain; + + +import lombok.Data; + +@Data +public class SysUserRoleDomain { + /** 用户ID */ + private Long userId; + + /** 角色ID */ + private Long roleId; +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcWorkUserDomain.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcWorkUserDomain.java index 2aad82c2..67d20375 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcWorkUserDomain.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/domain/XhpcWorkUserDomain.java @@ -81,5 +81,24 @@ public class XhpcWorkUserDomain implements Serializable { */ private String updateBy; + // =========== 页面数据呈现 + private String deptName; + private String tenantId; + + + // ================ 登陆系统使用 + /** + * 帐号 + */ + private String loginName; + /** + * 登陆密码 + */ + private String loginPassword; + /** + * 角色 + */ + private Long[] roleIds; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserMapper.java new file mode 100644 index 00000000..4bba2798 --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserMapper.java @@ -0,0 +1,99 @@ +package com.xhpc.activity.mapper; + +import com.xhpc.system.api.domain.SysUser; +import org.apache.ibatis.annotations.Param; + +public interface SysUserMapper { + + /** + * 通过用户名查询用户 + * + * @param userName 用户名 + * @return 用户对象信息 + */ + public SysUser selectUserByUserName(@Param("userName")String userName, @Param("tenantId")String tenantId); + + /** + * 通过用户ID查询用户 + * + * @param userId 用户ID + * @return 用户对象信息 + */ + public SysUser selectUserById(Long userId); + + /** + * 新增用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int insertUser(SysUser user); + + /** + * 修改用户信息 + * + * @param user 用户信息 + * @return 结果 + */ + public int updateUser(SysUser user); + + /** + * 修改用户头像 + * + * @param userName 用户名 + * @param avatar 头像地址 + * @return 结果 + */ + public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar); + + + public int updateUserStatus(SysUser user); + + /** + * 重置用户密码 + * + * @param userName 用户名 + * @param password 密码 + * @return 结果 + */ + public int resetUserPwd(@Param("userName") String userName, @Param("password") String password); + + /** + * 通过用户ID删除用户 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserById(Long userId); + + /** + * 批量删除用户信息 + * + * @param userIds 需要删除的用户ID + * @return 结果 + */ + public int deleteUserByIds(Long[] userIds); + + /** + * 校验用户名称是否唯一 + * + * @param userName 用户名称 + * @return 结果 + */ + public int checkUserNameUnique(@Param("userName") String userName,@Param("tenantId")String tenantId); + /** + * 校验手机号码是否唯一 + * + * @param phonenumber 手机号码 + * @return 结果 + */ + public SysUser checkPhoneUnique(@Param("phonenumber")String phonenumber,@Param("tenantId")String tenantId); + + /** + * 校验email是否唯一 + * + * @param email 用户邮箱 + * @return 结果 + */ + public SysUser checkEmailUnique(String email); +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserRoleMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserRoleMapper.java new file mode 100644 index 00000000..7fbe6949 --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/SysUserRoleMapper.java @@ -0,0 +1,57 @@ +package com.xhpc.activity.mapper; + +import com.xhpc.activity.domain.SysUserRoleDomain; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SysUserRoleMapper { + /** + * 通过用户ID删除用户和角色关联 + * + * @param userId 用户ID + * @return 结果 + */ + public int deleteUserRoleByUserId(Long userId); + + /** + * 批量删除用户和角色关联 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteUserRole(Long[] ids); + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + public int countUserRoleByRoleId(Long roleId); + + /** + * 批量新增用户角色信息 + * + * @param userRoleList 用户角色列表 + * @return 结果 + */ + public int batchUserRole(List userRoleList); + + /** + * 删除用户和角色关联信息 + * + * @param userRole 用户和角色关联信息 + * @return 结果 + */ + public int deleteUserRoleInfo(SysUserRoleDomain userRole); + + /** + * 批量取消授权用户角色 + * + * @param roleId 角色ID + * @param userIds 需要删除的用户数据ID + * @return 结果 + */ + public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkDeptMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkDeptMapper.java index eea8d766..76db4778 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkDeptMapper.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkDeptMapper.java @@ -12,15 +12,15 @@ public interface XhpcWorkDeptMapper { List> selectMapListByParams(@Param("params") Map params); - int deleteByPrimaryKey(Long workDeptId); + int deleteLogicByPrimaryKey(Long workDeptId); int insert(XhpcWorkDeptDomain record); - int insertSelective(XhpcWorkDeptDomain record); + XhpcWorkDeptDomain selectDomainByNameAndTenant(@Param("deptName")String deptName, @Param("parentDeptId")Long parentDeptId, @Param("tenantId")String tenantId); XhpcWorkDeptDomain selectByPrimaryKey(Long workDeptId); - int updateByPrimaryKeySelective(XhpcWorkDeptDomain record); - int updateByPrimaryKey(XhpcWorkDeptDomain record); + + int updateStatusByPrimaryKey(XhpcWorkDeptDomain record); } \ No newline at end of file diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java index 6d5723f4..c34f43a6 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcWorkUserMapper.java @@ -15,15 +15,19 @@ public interface XhpcWorkUserMapper { List selectByOrderId(Long orderId); - int deleteByPrimaryKey(Long workUserId); + int deleteLogicByPrimaryKey(Long workUserId); int insert(XhpcWorkUserDomain record); - int insertSelective(XhpcWorkUserDomain record); - XhpcWorkUserDomain selectByPrimaryKey(Long workUserId); - int updateByPrimaryKeySelective(XhpcWorkUserDomain record); - int updateByPrimaryKey(XhpcWorkUserDomain record); + + int updateDomainStatusByPrimaryKey(XhpcWorkUserDomain record); + + List selectPage(@Param("params") Map params); + + List> selectMapList(@Param("params") Map params); + + } \ No newline at end of file diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkDeptService.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkDeptService.java new file mode 100644 index 00000000..be6633fd --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkDeptService.java @@ -0,0 +1,25 @@ +package com.xhpc.activity.service; + +import com.xhpc.activity.domain.XhpcWorkDeptDomain; + +import java.util.List; +import java.util.Map; + +public interface WorkDeptService { + + List getPage(Map params); + + List> getList(Map params); + + List> getTree(Map params); + + XhpcWorkDeptDomain getDomainByPk(Long typeId); + + Boolean insertDomain(XhpcWorkDeptDomain domain); + + Boolean updateDomain(XhpcWorkDeptDomain domain); + + Boolean deleteDomain(Long typeId); + + Object updateDomainStatus(XhpcWorkDeptDomain domain); +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java index 7f55d801..22d1c249 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/WorkUserService.java @@ -1,6 +1,8 @@ package com.xhpc.activity.service; +import com.xhpc.activity.domain.XhpcWorkDeptDomain; import com.xhpc.activity.domain.XhpcWorkUserDomain; +import com.xhpc.activity.vo.SysUserResetPasswordVo; import java.util.List; import java.util.Map; @@ -16,4 +18,20 @@ public interface WorkUserService { XhpcWorkUserDomain findByPk(Long pk); List findByOrderId(Long orderId); + + List getPage(Map params); + + List> getList(Map params); + + List> getTree(Map params); + + Boolean insertDomain(XhpcWorkUserDomain domain); + + Boolean updateDomain(XhpcWorkUserDomain domain); + + Boolean deleteDomain(Long userId); + + Boolean resetPassword(SysUserResetPasswordVo vo); + + Object updateDomainStatus(XhpcWorkUserDomain domain); } diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkDeptServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkDeptServiceImpl.java new file mode 100644 index 00000000..73dc8f2c --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkDeptServiceImpl.java @@ -0,0 +1,80 @@ +package com.xhpc.activity.service.impl; + +import com.xhpc.activity.domain.XhpcWorkDeptDomain; +import com.xhpc.activity.mapper.XhpcWorkDeptMapper; +import com.xhpc.activity.service.WorkDeptService; +import com.xhpc.common.core.exception.CustomException; +import com.xhpc.common.core.utils.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + + +@Service +@Transactional +public class WorkDeptServiceImpl implements WorkDeptService { + + @Resource + XhpcWorkDeptMapper deptMapper; + + @Override + public List getPage(Map params){ + return deptMapper.selectListByParams(params); + } + + @Override + public List> getList(Map params){ + List> deptList = deptMapper.selectMapListByParams(params); + for (Map dept: deptList){ + params.put("parentDeptId", dept.get("id")); + List> childDeptList = deptMapper.selectMapListByParams(params); + dept.put("children", childDeptList); + } + return deptList; + } + + @Override + public List> getTree(Map params){ + List> deptList = deptMapper.selectMapListByParams(params); + for (Map dept: deptList){ + params.put("parentDeptId", dept.get("id")); + List> childDeptList = deptMapper.selectMapListByParams(params); + dept.put("children", childDeptList); + } + return deptList; + } + + @Override + public XhpcWorkDeptDomain getDomainByPk(Long deptId){ + return deptMapper.selectByPrimaryKey(deptId); + } + + @Override + public Boolean insertDomain(XhpcWorkDeptDomain domain){ + + XhpcWorkDeptDomain deptDomain = deptMapper.selectDomainByNameAndTenant(domain.getDeptName(), domain.getParentDeptId(), domain.getTenantId()); + if(StringUtils.isNotNull(deptDomain)){ + throw new CustomException("部门已存在"); + } + + return deptMapper.insert(domain) > 0; + } + + @Override + public Boolean updateDomain(XhpcWorkDeptDomain domain){ + return deptMapper.updateByPrimaryKey(domain) > 0; + } + + @Override + public Boolean updateDomainStatus(XhpcWorkDeptDomain domain){ + return deptMapper.updateStatusByPrimaryKey(domain) > 0; + } + + @Override + public Boolean deleteDomain(Long deptId){ + return deptMapper.deleteLogicByPrimaryKey(deptId) > 0; + } +} diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java index 8b3074f2..9ced7bf4 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/WorkUserServiceImpl.java @@ -1,13 +1,25 @@ package com.xhpc.activity.service.impl; +import com.xhpc.activity.domain.SysUserRoleDomain; import com.xhpc.activity.domain.XhpcWorkUserDomain; +import com.xhpc.activity.mapper.SysUserMapper; +import com.xhpc.activity.mapper.SysUserRoleMapper; import com.xhpc.activity.mapper.XhpcWorkDeptMapper; import com.xhpc.activity.mapper.XhpcWorkUserMapper; import com.xhpc.activity.service.WorkUserService; +import com.xhpc.activity.vo.SysUserResetPasswordVo; +import com.xhpc.common.core.constant.UserConstants; +import com.xhpc.common.core.exception.CustomException; +import com.xhpc.common.core.utils.SecurityUtils; +import com.xhpc.common.core.utils.StringUtils; +import com.xhpc.common.core.web.domain.AjaxResult; +import com.xhpc.system.api.domain.SysUser; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -22,6 +34,11 @@ public class WorkUserServiceImpl implements WorkUserService { @Resource XhpcWorkDeptMapper deptMapper; + @Resource + SysUserMapper userMapper; + @Resource + SysUserRoleMapper roleMapper; + @Override public Boolean insertUser(String userName, String phone){ @@ -61,4 +78,163 @@ public class WorkUserServiceImpl implements WorkUserService { public List findByOrderId(Long orderId){ return workUserMapper.selectByOrderId(orderId); } + + + @Override + public List getPage(Map params){ + return workUserMapper.selectPage(params); + } + + + @Override + public List> getList(Map params){ + return workUserMapper.selectMapList(params); + } + + @Override + public List> getTree(Map params){ + return workUserMapper.selectMapList(params); + } + + @Override + public Boolean insertDomain(XhpcWorkUserDomain domain){ + + // todo 需要再sys_user中增加相关信息 + if(domain.getRoleIds().length==0){ + throw new CustomException("请选择角色"); + } + int count = userMapper.checkUserNameUnique(domain.getLoginName(), domain.getTenantId()); + if(count > 0){ + throw new CustomException("新增用户'" + domain.getLoginName() + "'失败,登录账号已存在"); + } + + SysUser sysUser = userMapper.checkPhoneUnique(domain.getPhone(), domain.getTenantId()); + if(StringUtils.isNotNull(sysUser)){ + throw new CustomException("新增用户'" + domain.getUserName() + "'失败,手机号码已存在"); + } + workUserMapper.insert(domain); + + SysUser user = new SysUser(); + getUserConvert(user, domain); + userMapper.insertUser(user); + + Long[] roles = domain.getRoleIds(); + if (StringUtils.isNotNull(roles)) + { + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long roleId : roles) + { + SysUserRoleDomain ur = new SysUserRoleDomain(); + ur.setUserId(user.getUserId()); + ur.setRoleId(roleId); + list.add(ur); + } + if (list.size() > 0) + { + roleMapper.batchUserRole(list); + } + } + return true; + } + + @Override + public Boolean updateDomain(XhpcWorkUserDomain domain){ + + SysUser user = userMapper.selectUserByUserName(domain.getLoginName(), domain.getTenantId()); + SysUser sysUser = userMapper.checkPhoneUnique(domain.getPhone(), domain.getTenantId()); + if(StringUtils.isNotNull(sysUser)){ + throw new CustomException("更新用户'" + domain.getUserName() + "'失败,手机号码已存在"); + } + + user.setPhonenumber(domain.getPhone()); + user.setEmail(domain.getEmail()); + + workUserMapper.updateByPrimaryKey(domain); + userMapper.updateUser(user); + // 删除用户与角色关联 + roleMapper.deleteUserRoleByUserId(user.getUserId()); + + Long[] roles = domain.getRoleIds(); + if (StringUtils.isNotNull(roles)) + { + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long roleId : roles) + { + SysUserRoleDomain ur = new SysUserRoleDomain(); + ur.setUserId(user.getUserId()); + ur.setRoleId(roleId); + list.add(ur); + } + if (list.size() > 0) + { + roleMapper.batchUserRole(list); + } + } + return true; + } + + + @Override + public Boolean updateDomainStatus(XhpcWorkUserDomain domain){ + SysUser user = userMapper.selectUserByUserName(domain.getLoginName(), domain.getTenantId()); + switch (domain.getStatus()){ + case 0: + user.setStatus("1"); break; + case 1: + user.setStatus("0"); break; + default:break; + } + userMapper.updateUserStatus(user); + return workUserMapper.updateDomainStatusByPrimaryKey(domain) > 0; + } + + @Override + public Boolean resetPassword(SysUserResetPasswordVo vo){ + SysUser user = userMapper.selectUserByUserName(vo.getLoginName(), vo.getTenantId()); + if(StringUtils.isNull(user)){ + throw new CustomException("用户不存在"); + } + + userMapper.resetUserPwd(vo.getLoginName(), SecurityUtils.encryptPassword(vo.getPassword())); + return true; + } + + + + @Override + public Boolean deleteDomain(Long userId){ + XhpcWorkUserDomain workUserDomain = workUserMapper.selectByPrimaryKey(userId); + if(StringUtils.isNull(workUserDomain)){ + throw new CustomException("用户不存在"); + } + SysUser user = userMapper.selectUserByUserName(workUserDomain.getLoginName(), workUserDomain.getTenantId()); + if(StringUtils.isNotNull(user)){ + userMapper.deleteUserById(user.getUserId()); + } + + return workUserMapper.deleteLogicByPrimaryKey(userId) > 0; + } + + + private void getUserConvert(SysUser user, XhpcWorkUserDomain domain){ + user.setUserName(domain.getLoginName()); + user.setNickName(domain.getUserName()); + user.setUserType("00"); + user.setEmail(domain.getEmail()); + user.setPhonenumber(domain.getPhone()); + user.setDataPowerType(0); + user.setStatus(domain.getStatus().toString()); + + user.setAvatar("https://xhpc-bucket1.oss-cn-hangzhou.aliyuncs.com/avatar/logo.png"); + user.setCreateBy(SecurityUtils.getUsername()); + user.setPassword(SecurityUtils.encryptPassword(domain.getLoginPassword())); + user.setTenantId(domain.getTenantId()); + user.setCreateBy(domain.getCreateBy()); + user.setCreateTime(new Date()); + user.setUpdateBy(domain.getUpdateBy()); + user.setUpdateTime(new Date()); + } + } diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/vo/SysUserResetPasswordVo.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/vo/SysUserResetPasswordVo.java new file mode 100644 index 00000000..8dd66eef --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/vo/SysUserResetPasswordVo.java @@ -0,0 +1,11 @@ +package com.xhpc.activity.vo; + + +import lombok.Data; + +@Data +public class SysUserResetPasswordVo { + private String loginName; + private String password; + private String tenantId; +} diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserMapper.xml new file mode 100644 index 00000000..6533ccd0 --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserMapper.xml @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select u.user_id, + u.dept_id, + u.user_name, + u.nick_name, + u.email, + u.avatar, + u.phonenumber, + u.password, + u.sex, + u.status, + u.del_flag, + u.login_ip, + u.login_date, + u.create_by, + u.create_time, + u.remark, + d.dept_id, + d.parent_id, + d.dept_name, + d.order_num, + d.leader, + d.status as dept_status, + u.data_power_type, + r.role_id, + r.role_name, + r.role_key, + r.role_sort, + r.data_scope, + r.status as role_status, + u.user_type, + u.tenant_id, + u.operator_id, + xop.corp_no corpNo + from sys_user u + left join sys_dept d on u.dept_id = d.dept_id + left join sys_user_role ur on u.user_id = ur.user_id + left join sys_role r on r.role_id = ur.role_id + left join xhpc_operator xop on xop.operator_id = u.operator_id and u.user_type!='00' and u.user_type!='02' and xop.tenant_id=#{tenantId} and xop.del_flag =0 + + + + + + + + + + + + + + + + insert into sys_user( + user_id, + dept_id, + user_name, + nick_name, + email, + avatar, + phonenumber, + operator_id, + internet_user_id, + data_power_type, + sex, + password, + status, + tenant_id, + create_by, + remark, + create_time + )values( + #{userId}, + #{deptId}, + #{userName}, + #{nickName}, + #{email}, + #{avatar}, + #{phonenumber}, + #{operatorId}, + #{internetUserId}, + #{dataPowerType}, + #{sex}, + #{password}, + #{status}, + #{tenantId}, + #{createBy}, + #{remark}, + sysdate() + ) + + + + update sys_user + + dept_id = #{deptId}, + user_name = #{userName}, + nick_name = #{nickName}, + email = #{email}, + phonenumber = #{phonenumber}, + operator_id = #{operatorId}, + internet_user_id = #{internetUserId}, + data_power_type = #{dataPowerType}, + sex = #{sex}, + avatar = #{avatar}, + password = #{password}, + status = #{status}, + login_ip = #{loginIp}, + login_date = #{loginDate}, + update_by = #{updateBy}, + remark = #{remark}, + tenant_id = #{tenantId}, + update_time = sysdate() + + where user_id = #{userId} + + + + update sys_user set status = #{status} where user_id = #{userId} + + + + update sys_user set avatar = #{avatar} where user_name = #{userName} + + + + update sys_user set password = #{password} where user_name = #{userName} + + + + update sys_user + set del_flag = '2' + where user_id = #{userId} + + + + update sys_user set del_flag = '2' where user_id in + + #{userId} + + + + + diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserRoleMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserRoleMapper.xml new file mode 100644 index 00000000..ad62904f --- /dev/null +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/SysUserRoleMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + delete + from sys_user_role + where user_id = #{userId} + + + + + + delete from sys_user_role where user_id in + + #{userId} + + + + + insert into sys_user_role(user_id, role_id) values + + (#{item.userId},#{item.roleId}) + + + + + delete + from sys_user_role + where user_id = #{userId} + and role_id = #{roleId} + + + + delete from sys_user_role where role_id=#{roleId} and user_id in + + #{userId} + + + + + diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingCheckoutMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingCheckoutMapper.xml index 47c844b0..d7812417 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingCheckoutMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcClearingCheckoutMapper.xml @@ -112,7 +112,7 @@ diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkDeptMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkDeptMapper.xml index e1d2cea7..5a7a86d3 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkDeptMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkDeptMapper.xml @@ -20,6 +20,7 @@ create_time, create_by, update_time, update_by + + + - + + + + + + update xhpc_work_dept set del_flag=2 where work_dept_id = #{workDeptId,jdbcType=BIGINT} + + insert into xhpc_work_dept (dept_name, code, sort, parent_dept_id, `status`, del_flag, @@ -61,95 +87,8 @@ #{tenantId,jdbcType=VARCHAR}, SYSDATE(), #{createBy,jdbcType=VARCHAR}, SYSDATE(), #{updateBy,jdbcType=VARCHAR}) - - insert into xhpc_work_dept - - - dept_name, - - - code, - - - sort, - - - parent_dept_id, - - - `status`, - - del_flag, - - tenant_id, - - create_time, - - create_by, - - update_time, - - update_by, - - - - - #{deptName,jdbcType=VARCHAR}, - - - #{code,jdbcType=VARCHAR}, - - - #{sort,jdbcType=SMALLINT}, - - - #{parentDeptId,jdbcType=BIGINT}, - - - #{status,jdbcType=SMALLINT}, - - 0, - - #{tenantId,jdbcType=VARCHAR}, - - SYSDATE(), - - #{createBy,jdbcType=VARCHAR}, - - SYSDATE(), - - #{updateBy,jdbcType=VARCHAR}, - - - - - update xhpc_work_dept - - - dept_name = #{deptName,jdbcType=VARCHAR}, - - - code = #{code,jdbcType=VARCHAR}, - - - sort = #{sort,jdbcType=SMALLINT}, - - - parent_dept_id = #{parentDeptId,jdbcType=BIGINT}, - - - `status` = #{status,jdbcType=SMALLINT}, - - - tenant_id = #{tenantId,jdbcType=VARCHAR}, - - update_time = SYSDATE(), - - update_by = #{updateBy,jdbcType=VARCHAR}, - - - where work_dept_id = #{workDeptId,jdbcType=BIGINT} - + + update xhpc_work_dept set dept_name = #{deptName,jdbcType=VARCHAR}, @@ -157,9 +96,18 @@ sort = #{sort,jdbcType=SMALLINT}, parent_dept_id = #{parentDeptId,jdbcType=BIGINT}, `status` = #{status,jdbcType=SMALLINT}, - tenant_id = #{tenantId,jdbcType=VARCHAR}, update_time = SYSDATE(), update_by = #{updateBy,jdbcType=VARCHAR} where work_dept_id = #{workDeptId,jdbcType=BIGINT} + + + + update xhpc_work_dept + set `status` = #{status,jdbcType=SMALLINT}, + update_time = SYSDATE(), + update_by = #{updateBy,jdbcType=VARCHAR} + where work_dept_id = #{workDeptId,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml index c9e04c36..e2fcc31e 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcWorkUserMapper.xml @@ -18,17 +18,19 @@ - work_user_id, user_name, dept_id, post_name, phone, email, wechat_openid, is_leader, - `status`, del_flag, create_time, create_by, update_time, update_by + u.work_user_id, u.user_name, u.dept_id, u.post_name, u.phone, u.email, u.wechat_openid, u.is_leader, + u.`status`, u.del_flag, u.create_time, u.create_by, u.update_time, u.update_by + + + - + + + update xhpc_work_user set del_flag=2 where work_user_id = #{workUserId,jdbcType=BIGINT} + + insert into xhpc_work_user (user_name, dept_id, post_name, phone, email, wechat_openid, @@ -70,113 +77,8 @@ sysdate(), #{createBy,jdbcType=VARCHAR}, sysdate(), #{updateBy,jdbcType=VARCHAR}) - - insert into xhpc_work_user - - - user_name, - - - dept_id, - - - post_name, - - - phone, - - - email, - - - wechat_openid, - - - is_leader, - - - `status`, - - del_flag, - create_time, - - create_by, - - update_time, - - update_by, - - - - - #{userName,jdbcType=VARCHAR}, - - - #{deptId,jdbcType=BIGINT}, - - - #{postName,jdbcType=VARCHAR}, - - - #{phone,jdbcType=VARCHAR}, - - - #{email,jdbcType=VARCHAR}, - - - #{wechatOpenid,jdbcType=VARCHAR}, - - - #{isLeader,jdbcType=SMALLINT}, - - - #{status,jdbcType=SMALLINT}, - - 0, - sysdate(), - - #{createBy,jdbcType=VARCHAR}, - - sysdate(), - - #{updateBy,jdbcType=VARCHAR}, - - - - - update xhpc_work_user - - - user_name = #{userName,jdbcType=VARCHAR}, - - - dept_id = #{deptId,jdbcType=BIGINT}, - - - post_name = #{postName,jdbcType=VARCHAR}, - - - phone = #{phone,jdbcType=VARCHAR}, - - - email = #{email,jdbcType=VARCHAR}, - - - wechat_openid = #{wechatOpenid,jdbcType=VARCHAR}, - - - is_leader = #{isLeader,jdbcType=SMALLINT}, - - - `status` = #{status,jdbcType=SMALLINT}, - - update_time =sysdate(), - - update_by = #{updateBy,jdbcType=VARCHAR}, - - - where work_user_id = #{workUserId,jdbcType=BIGINT} - + + update xhpc_work_user set user_name = #{userName,jdbcType=VARCHAR}, @@ -191,4 +93,55 @@ update_by = #{updateBy,jdbcType=VARCHAR} where work_user_id = #{workUserId,jdbcType=BIGINT} + + + + update xhpc_work_user + set `status` = #{status,jdbcType=SMALLINT}, + update_time = sysdate(), + update_by = #{updateBy,jdbcType=VARCHAR} + where work_user_id = #{workUserId,jdbcType=BIGINT} + + + + + + + \ No newline at end of file