diff --git a/cjy-mini-project/src/main/java/com/cjy/app/controller/AddressBookController.java b/cjy-mini-project/src/main/java/com/cjy/app/controller/AddressBookController.java new file mode 100644 index 00000000..fb1c29c6 --- /dev/null +++ b/cjy-mini-project/src/main/java/com/cjy/app/controller/AddressBookController.java @@ -0,0 +1,65 @@ +package com.cjy.app.controller; + +import com.cjy.common.groups.DefaultGroup; +import com.cjy.patrol.dto.PatrolTaskByDateDTO; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.vo.SysDeptVO; +import com.ruoyi.system.vo.UserVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author liangjiawei + * @createDate 2023/4/14 + */ +@RestController +@RequestMapping("/addressBook") +public class AddressBookController extends BaseController { + @Autowired + private ISysDeptService deptService; + + /** + * 通过用户的企业标识码 获取到部门信息 + * @param dept + * @return + */ + @GetMapping("/selectListCompanyDepartment") + public AjaxResult selectListCompanyDepartment(SysDept dept) { + dept.setOrganCode(getUserOrganCode()); + List depts = deptService.selectListCompanyDepartment(dept); + return success(depts); + } + + /** + * 通过名称搜索用户信息 + * @param username + * @return + */ + @GetMapping("/selectListCompanyDepartmentByUserName") + public AjaxResult selectListCompanyDepartmentByUserName(@RequestParam("username") String username) { + List userInfoList = deptService.selectListCompanyDepartmentByUserName(username, getUserOrganCode()); + return success(userInfoList); + } + + + /** + * 通过用户id获取用户详情信息 + * @param userId + * @return + */ + @GetMapping("/getUserDetailsByid") + public AjaxResult getUserDetailsByid(@RequestParam("userId") String userId) { + UserVO userVO = deptService.getUserDetailsByid(userId); + return success(userVO); + } + +} diff --git a/cjy-mini-project/src/main/java/com/cjy/app/controller/MineController.java b/cjy-mini-project/src/main/java/com/cjy/app/controller/MineController.java new file mode 100644 index 00000000..3ef65f65 --- /dev/null +++ b/cjy-mini-project/src/main/java/com/cjy/app/controller/MineController.java @@ -0,0 +1,92 @@ +package com.cjy.app.controller; + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.file.FileUploadUtils; +import com.ruoyi.common.utils.file.MimeTypeUtils; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.vo.UserVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +/** + * @author liangjiawei + * @createDate 2023/4/14 + */ +@RestController +@RequestMapping("/mine") +public class MineController extends BaseController { + @Autowired + private ISysDeptService deptService; + @Autowired + private ISysUserService iSysUserService; + @Autowired + private TokenService tokenService; + + + /** + * 获取登录人的个人信息 + * + * @return + */ + @GetMapping("/getLoginUserInfo") + public AjaxResult getLoginUserInfo() { + UserVO userVO = deptService.getUserDetailsByid(getUserId().toString()); + return success(userVO); + } + + /** + * 修改头像接口 + * + * @param file + * @return + * @throws Exception + */ + @PostMapping("/updateAvatar") + @Log(title = "App修改头像", businessType = BusinessType.UPDATE) + public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws Exception { + if (!file.isEmpty()) { + LoginUser loginUser = getLoginUser(); + String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION); + if (iSysUserService.updateUserAvatarByUserId(getUserId(), avatar)) { + AjaxResult ajax = AjaxResult.success(); + ajax.put("imgUrl", avatar); + // 更新缓存用户头像 + loginUser.getUser().setAvatar(avatar); + tokenService.setLoginUser(loginUser); + return ajax; + } + } + return error("上传图片异常,请联系管理员"); + } + + + @PutMapping("/appUpdatePwd") + @Log(title = "App修改密码", businessType = BusinessType.UPDATE) + public AjaxResult appUpdatePwd(String oldPassword, String newPassword) { + LoginUser loginUser = getLoginUser(); + String userName = loginUser.getUsername(); + String password = loginUser.getPassword(); + if (!SecurityUtils.matchesPassword(oldPassword, password)) { + return error("修改密码失败,旧密码错误"); + } + if (SecurityUtils.matchesPassword(newPassword, password)) { + return error("新密码不能与旧密码相同"); + } + if (iSysUserService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { + // 更新缓存用户密码 + loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); + tokenService.setLoginUser(loginUser); + return success(); + } + return error("修改密码异常,请联系管理员"); + } +} diff --git a/cjy-mini-project/src/main/java/com/cjy/app/controller/WatchmanController.java b/cjy-mini-project/src/main/java/com/cjy/app/controller/WatchmanController.java new file mode 100644 index 00000000..98490376 --- /dev/null +++ b/cjy-mini-project/src/main/java/com/cjy/app/controller/WatchmanController.java @@ -0,0 +1,51 @@ +package com.cjy.app.controller; + +import com.cjy.emergencycommand.domain.GroupingConfig; +import com.cjy.emergencycommand.domain.dto.GroupUserDTO; +import com.cjy.emergencycommand.domain.vo.GroupingUserInfoVO; +import com.cjy.emergencycommand.service.GroupingConfigService; +import com.cjy.emergencycommand.service.GroupingUserInfoService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.system.vo.UserVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author liangjiawei + * @createDate 2023/4/14 + */ +@RestController +@RequestMapping("/watchman") +public class WatchmanController extends BaseController { + @Autowired + private GroupingConfigService GroupingConfigService; + @Autowired + private com.cjy.emergencycommand.service.GroupingUserInfoService GroupingUserInfoService; + + /** + * 获取值守分组 + */ + @GetMapping("/listWatchmanGroup") + public AjaxResult listWatchmanGroup() { + GroupingConfig emergencyCommandGroupingConfig = new GroupingConfig(); + emergencyCommandGroupingConfig.setOrganCode(getUserOrganCode()); + return AjaxResult.success(GroupingConfigService.selectGroupingConfigList(emergencyCommandGroupingConfig)); + } + + /** + * 查询应急管理值守人员列表 + */ + @GetMapping("/listWatchmanByGroupId") + public TableDataInfo listWatchmanByGroupId(GroupUserDTO groupUserDTO) { + startPage(); + List list = GroupingUserInfoService.listWatchmanByGroupId(groupUserDTO); + return getDataTable(list); + } +} diff --git a/cjy-project/src/main/java/com/cjy/emergencycommand/mapper/GroupingUserInfoMapper.java b/cjy-project/src/main/java/com/cjy/emergencycommand/mapper/GroupingUserInfoMapper.java index 1426de55..255e2323 100644 --- a/cjy-project/src/main/java/com/cjy/emergencycommand/mapper/GroupingUserInfoMapper.java +++ b/cjy-project/src/main/java/com/cjy/emergencycommand/mapper/GroupingUserInfoMapper.java @@ -3,6 +3,7 @@ package com.cjy.emergencycommand.mapper; import com.cjy.emergencycommand.domain.GroupingUserInfo; import com.cjy.emergencycommand.domain.dto.GroupUserDTO; import com.cjy.emergencycommand.domain.vo.GroupingUserInfoVO; +import com.ruoyi.system.vo.UserVO; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Component; @@ -73,6 +74,13 @@ public interface GroupingUserInfoMapper { */ public List selectGroupingUserInfoListByUserInfo(GroupUserDTO groupUserDTO); + /** + * 小程序获取值守人员信息 + * @param groupUserDTO + * @return + */ + public List listWatchmanByGroupId(GroupUserDTO groupUserDTO); + /** * 根据部门 姓名查询应急管理值守人员列表 * diff --git a/cjy-project/src/main/java/com/cjy/emergencycommand/service/GroupingUserInfoService.java b/cjy-project/src/main/java/com/cjy/emergencycommand/service/GroupingUserInfoService.java index aec85982..edc862e2 100644 --- a/cjy-project/src/main/java/com/cjy/emergencycommand/service/GroupingUserInfoService.java +++ b/cjy-project/src/main/java/com/cjy/emergencycommand/service/GroupingUserInfoService.java @@ -3,6 +3,7 @@ package com.cjy.emergencycommand.service; import com.cjy.emergencycommand.domain.GroupingUserInfo; import com.cjy.emergencycommand.domain.dto.GroupUserDTO; import com.cjy.emergencycommand.domain.vo.GroupingUserInfoVO; +import com.ruoyi.system.vo.UserVO; import java.util.List; @@ -69,6 +70,13 @@ public interface GroupingUserInfoService { */ public List selectGroupingUserInfoListByUserInfo(GroupUserDTO groupUserDTO); + /** + * 小程序获取值守人员信息 + * @param groupUserDTO + * @return + */ + public List listWatchmanByGroupId(GroupUserDTO groupUserDTO); + /** * 根据姓名 手机号查询应急管理值守人员列表 * diff --git a/cjy-project/src/main/java/com/cjy/emergencycommand/service/impl/GroupingUserInfoServiceImpl.java b/cjy-project/src/main/java/com/cjy/emergencycommand/service/impl/GroupingUserInfoServiceImpl.java index 9298dc92..f8745bd0 100644 --- a/cjy-project/src/main/java/com/cjy/emergencycommand/service/impl/GroupingUserInfoServiceImpl.java +++ b/cjy-project/src/main/java/com/cjy/emergencycommand/service/impl/GroupingUserInfoServiceImpl.java @@ -8,6 +8,7 @@ import com.cjy.emergencycommand.mapper.GroupingUserInfoMapper; import com.cjy.emergencycommand.service.GroupingUserInfoService; import com.cjy.emergencycommand.service.IAlarmUserSchedulingInfoService; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.system.vo.UserVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -103,6 +104,16 @@ public class GroupingUserInfoServiceImpl implements GroupingUserInfoService { return groupingUserInfoMapper.selectGroupingUserInfoListByUserInfo(groupUserDTO); } + /** + * 小程序获取值守人员信息 + * @param groupUserDTO + * @return + */ + @Override + public List listWatchmanByGroupId(GroupUserDTO groupUserDTO) { + return groupingUserInfoMapper.listWatchmanByGroupId(groupUserDTO); + } + @Override public List getUndistributedGroupingUsers(GroupUserDTO groupUserDTO) { Long groupId = groupUserDTO.getGroupingId(); diff --git a/cjy-project/src/main/resources/mapper/emergencycommand/GroupingUserInfoMapper.xml b/cjy-project/src/main/resources/mapper/emergencycommand/GroupingUserInfoMapper.xml index dd380d97..d4b14c13 100644 --- a/cjy-project/src/main/resources/mapper/emergencycommand/GroupingUserInfoMapper.xml +++ b/cjy-project/src/main/resources/mapper/emergencycommand/GroupingUserInfoMapper.xml @@ -152,6 +152,35 @@ LEFT JOIN sys_dept t4 ON t3.dept_id = t4.dept_id WHERE t1.organ_code = #{organCode} and t1.del_flag !=2 + insert into ec_grouping_user_info diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 6aa3215e..e90c0391 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -6,6 +6,8 @@ import javax.validation.constraints.Email; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; + +import com.fasterxml.jackson.annotation.JsonInclude; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.domain.BaseEntity; @@ -15,6 +17,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * * @author ruoyi */ +@JsonInclude(JsonInclude.Include.NON_EMPTY) public class SysDept extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index e4d5a22d..275b63f2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -1,6 +1,9 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.ruoyi.system.vo.SysDeptVO; +import com.ruoyi.system.vo.UserVO; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysDept; import org.springframework.security.access.method.P; @@ -144,4 +147,21 @@ public interface SysDeptMapper * @return */ public List selectDeptListByOrganCodeOrDeptId(@Param("organCode") Long organCode,@Param("deptId") Long deptId); + + + /** + * 获取第1级的 部门信息 + * @param dept + * @return + */ + List selectListCompanyDepartment(SysDept dept); + + /** + * 获取部门下的子部门 + * @param deptId + * @return + */ + List selectDeptByparentId(Long deptId); + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 208e5663..dcdc45c0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.mapper; import java.util.List; + +import com.ruoyi.system.vo.UserVO; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysUser; @@ -83,6 +85,14 @@ public interface SysUserMapper */ public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar); + /** + * 通过用户id修改 用户头像 + * @param userId + * @param avatar + * @return + */ + public int updateUserAvatarByUserId(@Param("userId") Long userId, @Param("avatar") String avatar); + /** * 重置用户密码 * @@ -152,4 +162,33 @@ public interface SysUserMapper * @return */ public List selectUserListByDeptId(Long deptId); + + /** + * 获取子部门下的用户数控 + * @param deptIds + * @return + */ + Integer selectUserCount(@Param("deptIds") List deptIds); + + /** + * 获取部门下的用户信息 + * @param deptId + * @return + */ + ListgetUserInfoByDept(Long deptId); + + /** + * 通过姓名获取用户信息 + * @param username + * @param organCode + * @return + */ + List getUserInfoByName(@Param("username") String username ,@Param("organCode")Long organCode); + + /** + * 通过用户id获取用户详情 + * @param userId + * @return + */ + UserVO getUserDetailsByid(String userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 166ba168..547ce743 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -3,6 +3,8 @@ package com.ruoyi.system.service; import java.util.List; import com.ruoyi.common.core.domain.TreeSelect; import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.system.vo.SysDeptVO; +import com.ruoyi.system.vo.UserVO; /** * 部门管理 服务层 @@ -19,6 +21,7 @@ public interface ISysDeptService */ public List selectDeptList(SysDept dept); + /** * 查询部门树结构信息 * @@ -121,4 +124,26 @@ public interface ISysDeptService * @return 结果 */ public int deleteDeptById(Long deptId); + + /** + * 通过用户的企业标识码 获取到部门信息 + * @param dept + * @return + */ + public List selectListCompanyDepartment(SysDept dept); + + /** + * 通过名称搜索用户信息 + * @param username + * @param organCode + * @return + */ + public List selectListCompanyDepartmentByUserName(String username , Long organCode); + + /** + * 通过用户id获取用户详情信息 + * @param userId + * @return + */ + UserVO getUserDetailsByid(String userId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index a5db6aa4..a2c08550 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -1,6 +1,7 @@ package com.ruoyi.system.service; import com.ruoyi.common.core.domain.entity.SysUser; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -169,6 +170,13 @@ public interface ISysUserService */ public boolean updateUserAvatar(String userName, String avatar); + /** + * 根据用户id需改用户头像 + * @param userId + * @param avatar + * @return + */ + public boolean updateUserAvatarByUserId(@Param("userId") Long userId, @Param("avatar") String avatar); /** * 重置用户密码 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index bdd0df73..0eda1611 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -4,6 +4,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; + +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.vo.SysDeptVO; +import com.ruoyi.system.vo.UserVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.annotation.DataScope; @@ -23,316 +27,328 @@ import com.ruoyi.system.service.ISysDeptService; /** * 部门管理 服务实现 - * + * * @author ruoyi */ @Service -public class SysDeptServiceImpl implements ISysDeptService -{ - @Autowired - private SysDeptMapper deptMapper; +public class SysDeptServiceImpl implements ISysDeptService { + @Autowired + private SysDeptMapper deptMapper; - @Autowired - private SysRoleMapper roleMapper; + @Autowired + private SysRoleMapper roleMapper; - /** - * 查询部门管理数据 - * - * @param dept 部门信息 - * @return 部门信息集合 - */ - @Override - @DataScope(deptAlias = "d") - public List selectDeptList(SysDept dept) - { - return deptMapper.selectDeptList(dept); - } + @Autowired + private SysUserMapper sysUserMapper; - /** - * 查询部门树结构信息 - * - * @param dept 部门信息 - * @return 部门树信息集合 - */ - @Override - public List selectDeptTreeList(SysDept dept) - { - List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); - return buildDeptTreeSelect(depts); - } + /** + * 查询部门管理数据 + * + * @param dept 部门信息 + * @return 部门信息集合 + */ + @Override + @DataScope(deptAlias = "d") + public List selectDeptList(SysDept dept) { + return deptMapper.selectDeptList(dept); + } - /** - * 构建前端所需要树结构 - * - * @param depts 部门列表 - * @return 树结构列表 - */ - @Override - public List buildDeptTree(List depts) - { - List returnList = new ArrayList(); - List tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList()); - for (SysDept dept : depts) - { - // 如果是顶级节点, 遍历该父节点的所有子节点 - if (!tempList.contains(dept.getParentId())) - { - recursionFn(depts, dept); - returnList.add(dept); - } - } - if (returnList.isEmpty()) - { - returnList = depts; - } - return returnList; - } + /** + * 查询部门树结构信息 + * + * @param dept 部门信息 + * @return 部门树信息集合 + */ + @Override + public List selectDeptTreeList(SysDept dept) { + List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + return buildDeptTreeSelect(depts); + } - /** - * 构建前端所需要下拉树结构 - * - * @param depts 部门列表 - * @return 下拉树结构列表 - */ - @Override - public List buildDeptTreeSelect(List depts) - { - List deptTrees = buildDeptTree(depts); - return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); - } + /** + * 构建前端所需要树结构 + * + * @param depts 部门列表 + * @return 树结构列表 + */ + @Override + public List buildDeptTree(List depts) { + List returnList = new ArrayList(); + List tempList = depts.stream().map(SysDept::getDeptId).collect(Collectors.toList()); + for (SysDept dept : depts) { + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(dept.getParentId())) { + recursionFn(depts, dept); + returnList.add(dept); + } + } + if (returnList.isEmpty()) { + returnList = depts; + } + return returnList; + } - /** - * 根据角色ID查询部门树信息 - * - * @param roleId 角色ID - * @return 选中部门列表 - */ - @Override - public List selectDeptListByRoleId(Long roleId) - { - SysRole role = roleMapper.selectRoleById(roleId); - return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly()); - } + /** + * 构建前端所需要下拉树结构 + * + * @param depts 部门列表 + * @return 下拉树结构列表 + */ + @Override + public List buildDeptTreeSelect(List depts) { + List deptTrees = buildDeptTree(depts); + return deptTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } - /** - * 根据部门ID查询信息 - * - * @param deptId 部门ID - * @return 部门信息 - */ - @Override - public SysDept selectDeptById(Long deptId) - { - return deptMapper.selectDeptById(deptId); - } + /** + * 根据角色ID查询部门树信息 + * + * @param roleId 角色ID + * @return 选中部门列表 + */ + @Override + public List selectDeptListByRoleId(Long roleId) { + SysRole role = roleMapper.selectRoleById(roleId); + return deptMapper.selectDeptListByRoleId(roleId, role.isDeptCheckStrictly()); + } - /** - * 根据ID查询所有子部门(正常状态) - * - * @param deptId 部门ID - * @return 子部门数 - */ - @Override - public int selectNormalChildrenDeptById(Long deptId) - { - return deptMapper.selectNormalChildrenDeptById(deptId); - } + /** + * 根据部门ID查询信息 + * + * @param deptId 部门ID + * @return 部门信息 + */ + @Override + public SysDept selectDeptById(Long deptId) { + return deptMapper.selectDeptById(deptId); + } - /** - * 是否存在子节点 - * - * @param deptId 部门ID - * @return 结果 - */ - @Override - public boolean hasChildByDeptId(Long deptId) - { - int result = deptMapper.hasChildByDeptId(deptId); - return result > 0; - } + /** + * 根据ID查询所有子部门(正常状态) + * + * @param deptId 部门ID + * @return 子部门数 + */ + @Override + public int selectNormalChildrenDeptById(Long deptId) { + return deptMapper.selectNormalChildrenDeptById(deptId); + } - /** - * 查询部门是否存在用户 - * - * @param deptId 部门ID - * @return 结果 true 存在 false 不存在 - */ - @Override - public boolean checkDeptExistUser(Long deptId) - { - int result = deptMapper.checkDeptExistUser(deptId); - return result > 0; - } + /** + * 是否存在子节点 + * + * @param deptId 部门ID + * @return 结果 + */ + @Override + public boolean hasChildByDeptId(Long deptId) { + int result = deptMapper.hasChildByDeptId(deptId); + return result > 0; + } - /** - * 校验部门名称是否唯一 - * - * @param dept 部门信息 - * @return 结果 - */ - @Override - public String checkDeptNameUnique(SysDept dept) - { - Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); - SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); - if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) - { - return UserConstants.NOT_UNIQUE; - } - return UserConstants.UNIQUE; - } + /** + * 查询部门是否存在用户 + * + * @param deptId 部门ID + * @return 结果 true 存在 false 不存在 + */ + @Override + public boolean checkDeptExistUser(Long deptId) { + int result = deptMapper.checkDeptExistUser(deptId); + return result > 0; + } - /** - * 校验部门是否有数据权限 - * - * @param deptId 部门id - */ - @Override - public void checkDeptDataScope(Long deptId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { - SysDept dept = new SysDept(); - dept.setDeptId(deptId); - List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); - if (StringUtils.isEmpty(depts)) - { - throw new ServiceException("没有权限访问部门数据!"); - } - } - } + /** + * 校验部门名称是否唯一 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public String checkDeptNameUnique(SysDept dept) { + Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); + SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); + if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } - /** - * 新增保存部门信息 - * - * @param dept 部门信息 - * @return 结果 - */ - @Override - public int insertDept(SysDept dept) - { - SysDept info = deptMapper.selectDeptById(dept.getParentId()); - // 如果父节点不为正常状态,则不允许新增子节点 - if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) - { - throw new ServiceException("部门停用,不允许新增"); - } - dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); - return deptMapper.insertDept(dept); - } + /** + * 校验部门是否有数据权限 + * + * @param deptId 部门id + */ + @Override + public void checkDeptDataScope(Long deptId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { + SysDept dept = new SysDept(); + dept.setDeptId(deptId); + List depts = SpringUtils.getAopProxy(this).selectDeptList(dept); + if (StringUtils.isEmpty(depts)) { + throw new ServiceException("没有权限访问部门数据!"); + } + } + } - /** - * 修改保存部门信息 - * - * @param dept 部门信息 - * @return 结果 - */ - @Override - public int updateDept(SysDept dept) - { - SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); - SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); - if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) - { - String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); - String oldAncestors = oldDept.getAncestors(); - dept.setAncestors(newAncestors); - updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); - } - int result = deptMapper.updateDept(dept); - if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) - && !StringUtils.equals("0", dept.getAncestors())) - { - // 如果该部门是启用状态,则启用该部门的所有上级部门 - updateParentDeptStatusNormal(dept); - } - return result; - } + /** + * 新增保存部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public int insertDept(SysDept dept) { + SysDept info = deptMapper.selectDeptById(dept.getParentId()); + // 如果父节点不为正常状态,则不允许新增子节点 + if (!UserConstants.DEPT_NORMAL.equals(info.getStatus())) { + throw new ServiceException("部门停用,不允许新增"); + } + dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); + return deptMapper.insertDept(dept); + } - /** - * 修改该部门的父级部门状态 - * - * @param dept 当前部门 - */ - private void updateParentDeptStatusNormal(SysDept dept) - { - String ancestors = dept.getAncestors(); - Long[] deptIds = Convert.toLongArray(ancestors); - deptMapper.updateDeptStatusNormal(deptIds); - } + /** + * 修改保存部门信息 + * + * @param dept 部门信息 + * @return 结果 + */ + @Override + public int updateDept(SysDept dept) { + SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId()); + SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId()); + if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) { + String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId(); + String oldAncestors = oldDept.getAncestors(); + dept.setAncestors(newAncestors); + updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); + } + int result = deptMapper.updateDept(dept); + if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) + && !StringUtils.equals("0", dept.getAncestors())) { + // 如果该部门是启用状态,则启用该部门的所有上级部门 + updateParentDeptStatusNormal(dept); + } + return result; + } - /** - * 修改子元素关系 - * - * @param deptId 被修改的部门ID - * @param newAncestors 新的父ID集合 - * @param oldAncestors 旧的父ID集合 - */ - public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) - { - List children = deptMapper.selectChildrenDeptById(deptId); - for (SysDept child : children) - { - child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); - } - if (children.size() > 0) - { - deptMapper.updateDeptChildren(children); - } - } + /** + * 修改该部门的父级部门状态 + * + * @param dept 当前部门 + */ + private void updateParentDeptStatusNormal(SysDept dept) { + String ancestors = dept.getAncestors(); + Long[] deptIds = Convert.toLongArray(ancestors); + deptMapper.updateDeptStatusNormal(deptIds); + } - /** - * 删除部门管理信息 - * - * @param deptId 部门ID - * @return 结果 - */ - @Override - public int deleteDeptById(Long deptId) - { - return deptMapper.deleteDeptById(deptId); - } + /** + * 修改子元素关系 + * + * @param deptId 被修改的部门ID + * @param newAncestors 新的父ID集合 + * @param oldAncestors 旧的父ID集合 + */ + public void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) { + List children = deptMapper.selectChildrenDeptById(deptId); + for (SysDept child : children) { + child.setAncestors(child.getAncestors().replaceFirst(oldAncestors, newAncestors)); + } + if (children.size() > 0) { + deptMapper.updateDeptChildren(children); + } + } - /** - * 递归列表 - */ - private void recursionFn(List list, SysDept t) - { - // 得到子节点列表 - List childList = getChildList(list, t); - t.setChildren(childList); - for (SysDept tChild : childList) - { - if (hasChild(list, tChild)) - { - recursionFn(list, tChild); - } - } - } + /** + * 删除部门管理信息 + * + * @param deptId 部门ID + * @return 结果 + */ + @Override + public int deleteDeptById(Long deptId) { + return deptMapper.deleteDeptById(deptId); + } + + /** + * 递归列表 + */ + private void recursionFn(List list, SysDept t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysDept tChild : childList) { + if (hasChild(list, tChild)) { + recursionFn(list, tChild); + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, SysDept t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + SysDept n = (SysDept) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, SysDept t) { + return getChildList(list, t).size() > 0; + } + + @Override + public List selectListCompanyDepartment(SysDept dept) { + //获取第1级的 部门信息 + List list = deptMapper.selectListCompanyDepartment(dept); + list.stream().forEach(item -> { + //获取部门下的子部门 + List deptIdList = deptMapper.selectDeptByparentId(item.getDeptId()); + //获取用户数量 + int userCount = 0; + if (!deptIdList.isEmpty()) { + //获取子部门下的用户数控 + userCount = sysUserMapper.selectUserCount(deptIdList); + } + + item.setUserCount(userCount); + //获取部门下的用户信息 + item.setList(sysUserMapper.getUserInfoByDept(item.getDeptId())); + }); + return list; + } /** - * 得到子节点列表 + * 通过名称搜索用户信息 + * @param username + * @param organCode + * @return */ - private List getChildList(List list, SysDept t) - { - List tlist = new ArrayList(); - Iterator it = list.iterator(); - while (it.hasNext()) - { - SysDept n = (SysDept) it.next(); - if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getDeptId().longValue()) - { - tlist.add(n); - } - } - return tlist; - } + @Override + public List selectListCompanyDepartmentByUserName(String username, Long organCode) { + //第一步通过名称获取到用户信息 + List userInfoList = sysUserMapper.getUserInfoByName(username, organCode); + return userInfoList; + } /** - * 判断是否有子节点 + * 通过用户id获取用户详情信息 + * @param userId + * @return */ - private boolean hasChild(List list, SysDept t) - { - return getChildList(list, t).size() > 0; + @Override + public UserVO getUserDetailsByid(String userId) { + return sysUserMapper.getUserDetailsByid(userId); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index fe0cd890..e5aff997 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -549,4 +549,9 @@ public class SysUserServiceImpl implements ISysUserService } return successMsg.toString(); } + + @Override + public boolean updateUserAvatarByUserId(Long userId, String avatar) { + return userMapper.updateUserAvatarByUserId(userId,avatar)>0; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysDeptVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysDeptVO.java new file mode 100644 index 00000000..2366ef84 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SysDeptVO.java @@ -0,0 +1,30 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.common.core.domain.entity.SysDept; + +import java.util.List; + +/** + * @author liangjiawei + * @createDate 2023/4/14 + */ +public class SysDeptVO extends SysDept { + private List list; + private int UserCount; + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public int getUserCount() { + return UserCount; + } + + public void setUserCount(int userCount) { + UserCount = userCount; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserVO.java new file mode 100644 index 00000000..d80c7864 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/UserVO.java @@ -0,0 +1,83 @@ +package com.ruoyi.system.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; + +/** + * @author liangjiawei + * @createDate 2023/4/14 + */ +@JsonInclude(JsonInclude.Include.NON_NULL) +public class UserVO { + private Long userId; + private String name; + private String phone; + private String imageUrl; + private String deptId; + private String sex; + private String company; + private String deptName; + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index cd081975..2f856b64 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -102,6 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + insert into sys_dept( dept_id, @@ -209,4 +210,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_dept set del_flag = '2' where dept_id = #{deptId} + + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index f34d5090..034058e0 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -161,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_user u where u.dept_id =#{deptId} and u.del_flag !='2' + insert into sys_user( user_id, @@ -225,7 +226,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_user set avatar = #{avatar} where user_name = #{userName} - + + + update sys_user set avatar = #{avatar} where user_id = #{userId} + + update sys_user set password = #{password} where user_name = #{userName} @@ -243,5 +248,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{userId} - + + + + + + + \ No newline at end of file