diff --git a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysUser.java b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysUser.java index 073d68ee..4ef7a0ea 100644 --- a/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysUser.java +++ b/yanzhu-api/yanzhu-api-system/src/main/java/com/yanzhu/system/api/domain/SysUser.java @@ -113,6 +113,29 @@ public class SysUser extends BaseEntity /** 角色ID */ private Long roleId; + /** + * 用于修改 + */ + private Long oldComId; + + public Long getOldComId() { + return oldComId; + } + + public void setOldComId(Long oldComId) { + this.oldComId = oldComId; + } + + private Long isActive; + + public Long getIsActive() { + return isActive; + } + + public void setIsActive(Long isActive) { + this.isActive = isActive; + } + public SysUser() { diff --git a/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java b/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java index c77389a3..d7d38faf 100644 --- a/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java +++ b/yanzhu-auth/src/main/java/com/yanzhu/auth/service/SysLoginService.java @@ -85,7 +85,11 @@ public class SysLoginService if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) { - recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在"); + String msg=userResult.getMsg(); + if(StringUtils.isBlank(msg)){ + msg="登录用户不存在"; + } + recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, msg); throw new ServiceException("登录用户:" + username + " 不存在"); } diff --git a/yanzhu-auth/src/main/resources/bootstrap.yml b/yanzhu-auth/src/main/resources/bootstrap.yml index d54c82d2..dd3900fe 100644 --- a/yanzhu-auth/src/main/resources/bootstrap.yml +++ b/yanzhu-auth/src/main/resources/bootstrap.yml @@ -20,6 +20,8 @@ spring: config: # 配置中心地址 server-addr: @discovery.server-addr@ + # 工作空间配置 + # namespace: a113aa27-4d61-46e0-81d6-9cede0457f0d # 配置文件格式 file-extension: yml # 共享配置 diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java index bf135ce8..af053cb1 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProDept.java @@ -9,6 +9,9 @@ public class ProDept extends BaseEntity /** 部门ID */ private Long deptId; + + + private Long comId; /** 父部门ID */ private Long parentId; @@ -38,7 +41,13 @@ public class ProDept extends BaseEntity /** 联系电话 */ private String phone; + public Long getComId() { + return comId; + } + public void setComId(Long comId) { + this.comId = comId; + } public Long getDeptId() { return deptId; } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserCom.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserCom.java new file mode 100644 index 00000000..f62cab58 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserCom.java @@ -0,0 +1,71 @@ +package com.yanzhu.system.domain; + +import com.yanzhu.common.core.annotation.Excel; +import com.yanzhu.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 系统用户扩展对象 sys_user_ext + * + * @author yanzhu + * @date 2025-01-09 + */ +public class SysUserCom extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 用户ID */ + private Long userId; + + /** 项目ID */ + private Long comId; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + private Long isActive; + + private String comName; + + public String getComName() { + return comName; + } + + public void setComName(String comName) { + this.comName = comName; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getComId() { + return comId; + } + + public void setComId(Long comId) { + this.comId = comId; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getIsActive() { + return isActive; + } + + public void setIsActive(Long isActive) { + this.isActive = isActive; + } +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserExt.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserExt.java new file mode 100644 index 00000000..44d4aa3b --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserExt.java @@ -0,0 +1,98 @@ +package com.yanzhu.system.domain; + +import com.yanzhu.common.core.annotation.Excel; +import com.yanzhu.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 系统用户扩展对象 sys_user_ext + * + * @author yanzhu + * @date 2025-01-09 + */ +public class SysUserExt extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 用户ID */ + private Long userId; + + /** 项目ID */ + private Long projectId; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 用户类型(00系统用户) */ + @Excel(name = "用户类型", readConverterExp = "0=0系统用户") + private String userType; + + private Long comId; + + public Long getComId() { + return comId; + } + + public void setComId(Long comId) { + this.comId = comId; + } + + public Long getIsActive() { + return isActive; + } + + public void setIsActive(Long isActive) { + this.isActive = isActive; + } + + private Long isActive; + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setProjectId(Long projectId) + { + this.projectId = projectId; + } + + public Long getProjectId() + { + return projectId; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setUserType(String userType) + { + this.userType = userType; + } + + public String getUserType() + { + return userType; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("projectId", getProjectId()) + .append("status", getStatus()) + .append("userType", getUserType()) + .toString(); + } +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserPost.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserPost.java index a18cd852..7e222b26 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserPost.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/domain/SysUserPost.java @@ -16,6 +16,16 @@ public class SysUserPost /** 岗位ID */ private Long postId; + private Long projectId; + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + public Long getUserId() { return userId; diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserComMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserComMapper.java new file mode 100644 index 00000000..508a99b0 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserComMapper.java @@ -0,0 +1,41 @@ +package com.yanzhu.system.mapper; + +import com.yanzhu.system.domain.SysUserCom; +import com.yanzhu.system.domain.SysUserExt; + +import java.util.List; + +/** + * 系统用户扩展Mapper接口 + * + * @author yanzhu + * @date 2025-01-09 + */ +public interface SysUserComMapper +{ + /** + * 查询用户的租户 + * @param sysUserCom + * @return + */ + public List selectUserComs(SysUserCom sysUserCom); + + /** + * 激活租户 + * @param sysUserCom + * @return + */ + public int updateActive (SysUserCom sysUserCom); + + public int insertUserCom(SysUserCom sysUserCom); + /** + * 更新状态 + * @param sysUserCom + * @return + */ + public int updateStatus (SysUserCom sysUserCom); + + public int updateActiveTo0(SysUserCom sysUserCom); + + public List selectAdminComs(); +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserExtMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserExtMapper.java new file mode 100644 index 00000000..4cc43346 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserExtMapper.java @@ -0,0 +1,55 @@ +package com.yanzhu.system.mapper; + +import java.util.List; +import com.yanzhu.system.domain.SysUserExt; + +/** + * 系统用户扩展Mapper接口 + * + * @author yanzhu + * @date 2025-01-09 + */ +public interface SysUserExtMapper +{ + /** + * 查询系统用户扩展 + * + * @param userId 系统用户扩展主键 + * @return 系统用户扩展 + */ + public SysUserExt selectSysUserExtById(SysUserExt userExt); + + /** + * 查询系统用户扩展列表 + * + * @param sysUserExt 系统用户扩展 + * @return 系统用户扩展集合 + */ + public List selectSysUserExtList(SysUserExt sysUserExt); + + /** + * 新增系统用户扩展 + * + * @param sysUserExt 系统用户扩展 + * @return 结果 + */ + public int insertSysUserExt(SysUserExt sysUserExt); + + /** + * 修改系统用户扩展 + * + * @param sysUserExt 系统用户扩展 + * @return 结果 + */ + public int updateSysUserExt(SysUserExt sysUserExt); + + /** + * 删除系统用户扩展 + */ + public int deleteSysUserExtById(SysUserExt sysUserExt); + + + public int clearAllActive(SysUserExt userExt); + + public int setActive(SysUserExt userExt); +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java index 2607d076..efcc5916 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserMapper.java @@ -45,6 +45,7 @@ public interface SysUserMapper */ public SysUser selectUserByUserName(String userName); + public SysUser selectByPhone(String phone); /** * 通过用户名查询用户 * @@ -79,6 +80,8 @@ public interface SysUserMapper */ public SysUser selectUserByUserId(Long userId); + public SysUser selectUserCom(SysUser user); + public List selectUserComs(Long userId); /** * 新增用户信息 * @@ -87,6 +90,8 @@ public interface SysUserMapper */ public int insertUser(SysUser user); + public int insertUserCom(SysUser user); + /** * 修改用户信息 * @@ -95,6 +100,7 @@ public interface SysUserMapper */ public int updateUser(SysUser user); + public int updateUserCom(SysUser user); /** * 修改用户头像 * @@ -121,6 +127,7 @@ public interface SysUserMapper */ public int deleteUserById(Long userId); + public int deleteUserCom(Long userId); /** * 批量删除用户信息 * diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserPostMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserPostMapper.java index d8fefab5..be58b0df 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserPostMapper.java +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/system/mapper/SysUserPostMapper.java @@ -1,6 +1,8 @@ package com.yanzhu.system.mapper; import java.util.List; + +import com.yanzhu.system.api.domain.SysUser; import com.yanzhu.system.domain.SysUserPost; /** @@ -41,4 +43,6 @@ public interface SysUserPostMapper * @return 结果 */ public int batchUserPost(List userPostList); + + void deleteUserPostByUser(SysUserPost user); } diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml index 0ad3a2dc..9f665d9b 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoMapper.xml @@ -111,7 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and pi.is_del !=2 order by pi.project_sort, pi.id desc - order by pu.sort_by, pi.id desc + order by psu.sort_by, pi.id desc - select pi.id, pi.com_id, pi.dis_dept_id, pi.project_name, + select pi.id, pi.com_id, pi.dis_dept_id, pi.project_name,sd.dept_name com_name, pi.project_code, pi.simple_name, pi.project_type, sdd1.dict_label as project_type_name, pi.project_level, pi.project_regional, pi.project_package, pi.project_address, pi.project_nature, pi.tech_leader,pi.tech_leader_phone,pi.province,pi.city,pi.district, pi.licence_number, pi.project_person, pi.project_person_phone, pi.longitude, pi.latitude, pi.project_time_limit, pi.total_investment, @@ -357,6 +360,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ps.id ps_id,ps.org_name ps_org_name,ps.org_logo ps_org_logo,ps.org_image ps_org_image,ps.org_video ps_org_video,ps.org_plane ps_org_plane from pro_project_info pi left join pro_project_info_setting ps on pi.id=ps.project_id + left join sys_dept sd on pi.com_id=sd.dept_id left join sys_dict_data sdd1 on sdd1.dict_value = pi.project_type and sdd1.dict_type='pro_project_type' left join pro_project_info_subdepts_users psu on psu.project_id = pi.id @@ -381,7 +385,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and pi.is_del!= 2 order by pi.project_sort, pi.id desc - order by pu.sort_by, pi.id desc + order by psu.sort_by, pi.id desc \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsUsersMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsUsersMapper.xml index eacaa683..45f85569 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsUsersMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProProjectInfoSubdeptsUsersMapper.xml @@ -340,7 +340,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - update pro_project_info_subdepts_group set sort_by = project_id where user_id = #{userId} + update pro_project_info_subdepts_users set sort_by = project_id where user_id = #{userId} \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysMenuMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysMenuMapper.xml index 03f33c01..7ffb8917 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysMenuMapper.xml @@ -118,7 +118,8 @@ left join sys_user_role ur on rm.role_id = ur.role_id left join sys_role r on r.role_id = ur.role_id left join sys_role_dept rd on rd.role_id = r.role_id - where m.status = '0' and r.status = '0' and ur.user_id = #{userId} and rd.dept_id = #{deptId} + where m.status = '0' and r.status = '0' and ur.user_id = #{userId} + and rd.dept_id = #{deptId} + select uc.*,sd.dept_name com_name + from sys_user_com uc left join sys_dept sd on uc.com_id=sd.dept_id + + and uc.user_id = #{userId} + and uc.com_id = #{comId} + + + + + + update sys_user_com set is_active=0 where user_id=#{userId} + + + update sys_user_com set is_active=#{isActive} where user_id=#{userId} and com_id=#{comId} + + + update sys_user_com set status=#{status} where user_id=#{userId} and com_id=#{comId} + + \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserExtMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserExtMapper.xml new file mode 100644 index 00000000..3ba65353 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserExtMapper.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + select user_id, project_id, status, user_type,com_id,is_active from sys_user_ext + + + + + + + + insert into sys_user_ext + + user_id, + project_id, + status, + user_type, + com_id, + is_active, + + + #{userId}, + #{projectId}, + #{status}, + #{userType}, + #{comId}, + #{isActive}, + + + + + update sys_user_ext + + project_id = #{projectId}, + status = #{status}, + user_type = #{userType}, + com_id = #{comId}, + is_active = #{isActive}, + + where user_id = #{userId} + + + + delete from sys_user_ext where user_id = #{userId} and project_id=#{projectId} + + + update sys_user_ext set is_active=0 where user_id=#{userId} and com_id=#{comId} + + + update sys_user_ext set is_active=1 where user_id=#{userId} and com_id=#{comId} and project_id=#{projectId} + + \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserMapper.xml index f61401d6..c125f8b5 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserMapper.xml @@ -14,6 +14,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -60,7 +61,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select u.user_id, u.com_id, com.dept_name as com_name, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_code, 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, + select u.user_id, u.com_id, com.dept_name as com_name, u.dept_id, u.user_name, u.nick_name, u.user_type, u.card_code, 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.ancestors, d.dept_name, d.dept_short_name, d.dept_code, d.dept_type, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,com.dept_name com_dept_name from sys_user u @@ -71,7 +73,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_role_dept rd on rd.role_id = r.role_id - where u.user_id = #{userId} and rd.dept_id = ${deptId} + where u.user_id = #{userId} + + and rd.dept_id = ${deptId} + select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1 + + + insert into sys_user_com( + user_id, + com_id, + status, + is_active + + )values( + #{userId}, + #{comId}, + #{status}, + #{isActive} + ) + + + delete from sys_user_com where user_id=#{userId} and com_id=#{comId} + + + + + update sys_user_com set com_id=#{comId} where user_id=#{userId} + + \ No newline at end of file diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserPostMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserPostMapper.xml index e8ca65bb..337759ba 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserPostMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/system/SysUserPostMapper.xml @@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -23,11 +24,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{userId} + + + delete from sys_user_post where user_id=#{userId} and project_id=#{projectId} + - insert into sys_user_post(user_id, post_id) values + insert into sys_user_post(user_id, post_id,project_id) values - (#{item.userId},#{item.postId}) + (#{item.userId},#{item.postId},#{item.projectId}) diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java index 24143ae1..9d2a330e 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProProjectInfoController.java @@ -17,6 +17,7 @@ import com.yanzhu.common.security.annotation.RequiresPermissions; import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.manage.domain.ProProjectInfo; import com.yanzhu.manage.service.IProProjectInfoService; +import com.yanzhu.system.api.model.LoginUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -144,20 +145,16 @@ public class ProProjectInfoController extends BaseController public TableDataInfo findMyProjectList(ProProjectInfo proProjectInfo) { startPage(); - String key="proProjectInfo_findMyProjectList-"+ PageUtils.getLocalPage().getPageNum()+"-"+PageUtils.getLocalPage().getPageSize()+"-"+SecurityUtils.getUserId()+"-"+proProjectInfo.getProjectName(); - List list = redisService.getCacheObject(key); - if(StringUtils.isNotEmpty(list)){ - return getDataTable(list); - } - if(!SecurityUtils.isAdmin(SecurityUtils.getUserId())){ + LoginUser loginUser = SecurityUtils.getLoginUser(); + proProjectInfo.setComId(loginUser.getSysUser().getComId()); + if(!SecurityUtils.isAdmin(loginUser.getUserid())){ if(SecurityUtils.isGSAdmin()){ proProjectInfo.setActiveComId(SecurityUtils.getLoginUser().getProjectDeptId()); }else{ proProjectInfo.setCurrentUserId(SecurityUtils.getUserId()); } } - list = proProjectInfoService.selectMyProjectList(proProjectInfo); - redisService.setCacheObject(key, list, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); + List list = proProjectInfoService.selectMyProjectList(proProjectInfo); return getDataTable(list); } diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java index 951224b7..4d021b51 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoServiceImpl.java @@ -143,6 +143,7 @@ public class ProProjectInfoServiceImpl implements IProProjectInfoService proDept.setDeptName(proProjectInfo.getProjectName()); proDept.setDeptShortName(proProjectInfo.getSimpleName()); proDept.setDeptType("4"); + proDept.setComId(sysDept.getComId()); proDept.setOrderNum(100); proDept.setLeader(proProjectInfo.getProjectPerson()); proDept.setPhone(proProjectInfo.getProjectPersonPhone()); diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java index 201ae54a..03d845ba 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProProjectInfoSubdeptsUsersServiceImpl.java @@ -22,6 +22,10 @@ import com.yanzhu.security.utils.DictUtils; import com.yanzhu.system.api.RemoteFlowService; import com.yanzhu.system.api.RemoteUserService; import com.yanzhu.system.api.domain.SysUser; +import com.yanzhu.system.api.model.LoginUser; +import com.yanzhu.system.domain.SysUserExt; +import com.yanzhu.system.mapper.SysUserExtMapper; +import com.yanzhu.system.mapper.SysUserMapper; import org.apache.commons.io.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,6 +73,11 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu @Autowired private ProProjectInfoSubdeptsUsersMapper proProjectInfoSubdeptsUsersMapper; + @Autowired + private SysUserExtMapper sysUserExtMapper; + @Autowired + private SysUserMapper sysUserMapper; + private static final Logger log = LoggerFactory.getLogger(ProProjectInfoSubdeptsUsersServiceImpl.class); /** @@ -844,11 +853,40 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu public int editDefaultProjectById(Long id){ int res = proProjectInfoSubdeptsUsersMapper.editDefaultProjectById(SecurityUtils.getUserId()); if(res>0){ - ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id); + ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersByParamId(id,SecurityUtils.getUserId()); proProjectInfoSubdeptsUsers.setSortBy(0L); res = proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers); } - return res; + boolean isAdmin= (SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()); + LoginUser loginUser = SecurityUtils.getLoginUser(); + if(isAdmin){ + SysUserExt userExt = new SysUserExt(); + userExt.setUserId(loginUser.getUserid()); + userExt.setComId(loginUser.getSysUser().getComId()); + List userExts=sysUserExtMapper.selectSysUserExtList(userExt); + if(userExts.size()>0){ + SysUserExt oldExt = userExts.get(0); + oldExt.setProjectId(id); + oldExt.setIsActive(1l); + sysUserExtMapper.updateSysUserExt(oldExt); + }else{ + userExt.setProjectId(id); + userExt.setStatus("0"); + userExt.setIsActive(1l); + sysUserExtMapper.insertSysUserExt(userExt); + } + }else { + SysUserExt userExt = new SysUserExt(); + userExt.setUserId(loginUser.getUserid()); + userExt.setComId(loginUser.getSysUser().getComId()); + userExt.setProjectId(id); + sysUserExtMapper.clearAllActive(userExt);//清除所有激活状态 + sysUserExtMapper.setActive(userExt);//设置激活状态 + } + SysUser oldUser=sysUserMapper.selectUserByUserId(loginUser.getUserid()); + oldUser.setDeptId(id); + sysUserMapper.updateUser(oldUser); + return res+1; } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysProfileController.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysProfileController.java index 437ba9c8..1f903f3a 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysProfileController.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysProfileController.java @@ -1,14 +1,10 @@ package com.yanzhu.system.controller; import java.util.Arrays; + +import com.yanzhu.system.domain.SysUserCom; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.utils.StringUtils; @@ -155,4 +151,16 @@ public class SysProfileController extends BaseController } return error("上传图片异常,请联系管理员"); } + + @GetMapping("/getUserComps/{userId}") + public AjaxResult getUserComs(@PathVariable Long userId){ + if(userId==null||userId.longValue()==0){ + userId=SecurityUtils.getLoginUser().getUserid(); + } + boolean isAdmin= (SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()); + if(isAdmin){ + return AjaxResult.success(userService.getAdminComs()); + } + return AjaxResult.success(userService.getUserComs(userId)); + } } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java index 749df380..6b085baf 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/controller/SysUserController.java @@ -3,6 +3,7 @@ package com.yanzhu.system.controller; import com.yanzhu.common.core.constant.Constants; import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.enums.UserTypeEnums; +import com.yanzhu.common.core.exception.ServiceException; import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.core.utils.StringUtils; import com.yanzhu.common.core.utils.poi.ExcelUtil; @@ -14,11 +15,13 @@ import com.yanzhu.common.log.enums.BusinessType; import com.yanzhu.common.redis.service.RedisService; import com.yanzhu.common.security.annotation.InnerAuth; import com.yanzhu.common.security.annotation.RequiresPermissions; +import com.yanzhu.common.security.service.TokenService; import com.yanzhu.common.security.utils.SecurityUtils; import com.yanzhu.system.api.domain.SysDept; import com.yanzhu.system.api.domain.SysRole; import com.yanzhu.system.api.domain.SysUser; import com.yanzhu.system.api.model.LoginUser; +import com.yanzhu.system.domain.SysUserCom; import com.yanzhu.system.domain.vo.TreeSelect; import com.yanzhu.system.service.*; import com.yanzhu.system.vo.AlertUserPassVo; @@ -29,6 +32,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; @@ -65,6 +69,8 @@ public class SysUserController extends BaseController { @Autowired private ISysConfigService configService; + @Autowired + private TokenService tokenService; /** * 获取用户列表 @@ -109,12 +115,22 @@ public class SysUserController extends BaseController { @InnerAuth @GetMapping("/info/{username}") public R info(@PathVariable("username") String username) { + try { + LoginUser sysUserVo = getLoginInfo(username); + + return R.ok(sysUserVo); + }catch (ServiceException ex){ + return R.fail(ex.getMessage()); + } + } + + private LoginUser getLoginInfo(String username){ SysUser sysUser = userService.selectUserByUserName(username); if (StringUtils.isNull(sysUser)) { - return R.fail("用户名或密码错误"); + throw new ServiceException("用户名或密码错误"); } if (StringUtils.isEmpty(sysUser.getRoles())) { - return R.fail("用户未查询到分配角色,请联系管理员!!!"); + throw new ServiceException("用户未查询到分配角色,请联系管理员!!!"); } // 重写登录方法 if (!sysUser.isAdmin() && sysUser.getRoles().size() > 1) { @@ -125,6 +141,7 @@ public class SysUserController extends BaseController { sysUser.setActiveComId(sysUser.getComId()); sysUser.setActiveComName(sysUser.getComName()); } else { + /* // 查询用户绑定项目列表 List> list = userService.selectProjectsByUserId(sysUser.getUserId()); if (StringUtils.isEmpty(list)) { @@ -136,6 +153,25 @@ public class SysUserController extends BaseController { sysUser.setActiveComName(Convert.toStr(list.get(0).get("com_name"))); sysUser.setActiveProjectId(Convert.toLong(list.get(0).get("project_id"))); sysUser.setActiveProjectName(Convert.toStr(list.get(0).get("project_name"))); + + */ + sysUser.setActiveComId(sysUser.getComId()); + sysUser.setActiveComName(sysUser.getComName()); + sysUser.setActiveProjectId(sysUser.getDeptId()); + if(sysUser.getDept()!=null){ + sysUser.setActiveProjectName(sysUser.getDept().getDeptName()); + }else{ + sysUser.setActiveProjectName(""); + } + } + }else{ + sysUser.setActiveComId(sysUser.getComId()); + sysUser.setActiveComName(sysUser.getComName()); + sysUser.setActiveProjectId(sysUser.getDeptId()); + if(sysUser.getDept()!=null){ + sysUser.setActiveProjectName(sysUser.getDept().getDeptName()); + }else{ + sysUser.setActiveProjectName(""); } } @@ -155,10 +191,20 @@ public class SysUserController extends BaseController { roles.add("visitors"); sysUserVo.setRoles(roles); } - - return R.ok(sysUserVo); + return sysUserVo; } + /** + * 按电话号码查询用户信息 + * @param phone + * @return + */ + @RequiresPermissions("system:user:list") + @GetMapping("/selectByPhone/{phone}") + public R selectByPhone(@PathVariable("phone") String phone) { + SysUser sysUser = userService.selectByPhone(phone); + return R.ok(sysUser); + } /** * 获取当前用户信息 */ @@ -227,7 +273,7 @@ public class SysUserController extends BaseController { * * @return 用户信息 */ - @GetMapping("getInfo") + @GetMapping("/getInfo") public AjaxResult getInfo() { SysUser user = SecurityUtils.getLoginUser().getSysUser(); AjaxResult ajax = AjaxResult.success(); @@ -265,7 +311,7 @@ public class SysUserController extends BaseController { sysUser = userService.selectUserById(userId); } else { user = userService.selectUserByUserId(userId); - sysUser = userService.selectUserByIdAndDept(userId, user.getDeptId()); + sysUser = user.getDeptId()!=null?userService.selectUserByIdAndDept(userId, user.getDeptId()):null; } if(sysUser!=null) { ajax.put(AjaxResult.DATA_TAG, sysUser); @@ -286,18 +332,24 @@ public class SysUserController extends BaseController { @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysUser user) { + /* if (StringUtils.isNotEmpty(user.getUserName()) && !userService.checkUserNameUnique(user)) { return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); - } + }*/ user.setCreateBy(SecurityUtils.getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); return toAjax(userService.insertUser(user)); } + @GetMapping("/getUserByName/{userName}") + @RequiresPermissions("system:user:query") + public AjaxResult getUserByName(@PathVariable(value = "userName", required = true)String userName) { + return AjaxResult.success(userService.getUserByName(userName)); + } /** * 修改用户 */ @@ -314,6 +366,17 @@ public class SysUserController extends BaseController { } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } + SysUser where=new SysUser(); + where.setUserName(user.getUserName()); + List list=userService.selectUserList(where); + if(list.size()>1){ + return error("此用户名己存在,修改失败!"); + } + if(list.size()==1){ + if(user.getUserId().intValue()!=list.get(0).getUserId().intValue()){ + return error("此用户名己存在,修改失败!"); + } + } user.setUpdateBy(SecurityUtils.getUsername()); return toAjax(userService.updateUser(user)); } @@ -416,4 +479,36 @@ public class SysUserController extends BaseController { return AjaxResult.success(list); } + @PostMapping("/activeUserCom") + public AjaxResult activeUserCom(@RequestBody SysUserCom userCom, HttpServletRequest request){ + boolean isAdmin= (SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()); + SysUser user= isAdmin?userService.activeAdminCom(userCom): userService.activeUserCom(userCom); + + LoginUser sysUserVo = getLoginInfo(user.getUserName()); + LoginUser loginUser = tokenService.getLoginUser(request); + loginUser.setSysUser(sysUserVo.getSysUser()); + loginUser.setProjectId(sysUserVo.getProjectId()); + loginUser.setProjectName(sysUserVo.getProjectName()); + loginUser.setProjectDeptId(sysUserVo.getProjectDeptId()); + loginUser.setProjectDeptName(sysUserVo.getProjectDeptName()); + loginUser.setRoles(sysUserVo.getRoles()); + loginUser.setPermissions(sysUserVo.getPermissions()); + tokenService.refreshToken(loginUser); + return AjaxResult.success(); + } + @GetMapping("/reload") + public AjaxResult reload(HttpServletRequest request){ + LoginUser loginUser = tokenService.getLoginUser(request); + LoginUser sysUserVo = getLoginInfo(loginUser.getUsername()); + loginUser.setSysUser(sysUserVo.getSysUser()); + loginUser.setProjectId(sysUserVo.getProjectId()); + loginUser.setProjectName(sysUserVo.getProjectName()); + loginUser.setProjectDeptId(sysUserVo.getProjectDeptId()); + loginUser.setProjectDeptName(sysUserVo.getProjectDeptName()); + loginUser.setRoles(sysUserVo.getRoles()); + loginUser.setPermissions(sysUserVo.getPermissions()); + tokenService.refreshToken(loginUser); + return AjaxResult.success(); + } + } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserExtService.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserExtService.java new file mode 100644 index 00000000..70ece4f7 --- /dev/null +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserExtService.java @@ -0,0 +1,52 @@ +package com.yanzhu.system.service; + +import java.util.List; + +import com.yanzhu.system.api.domain.SysUser; +import com.yanzhu.system.domain.SysUserExt; + +/** + * 系统用户扩展Service接口 + * + * @author yanzhu + * @date 2025-01-09 + */ +public interface ISysUserExtService +{ + /** + * 查询系统用户扩展 + */ + public SysUserExt selectSysUserExtById(SysUserExt sysUserExt); + + /** + * 查询系统用户扩展列表 + * + * @param sysUserExt 系统用户扩展 + * @return 系统用户扩展集合 + */ + public List selectSysUserExtList(SysUserExt sysUserExt); + + /** + * 新增系统用户扩展 + * + * @param sysUserExt 系统用户扩展 + * @return 结果 + */ + public int insertSysUserExt(SysUserExt sysUserExt); + + /** + * 修改系统用户扩展 + * + * @param sysUserExt 系统用户扩展 + * @return 结果 + */ + public int updateSysUserExt(SysUserExt sysUserExt); + + + /** + * 删除系统用户扩展信息 + */ + public int deleteSysUserExtById(SysUserExt sysUserExt); + + public void updateBySysUser(SysUser sysUser); +} diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java index c21cf706..d2d97dfc 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/ISysUserService.java @@ -1,6 +1,7 @@ package com.yanzhu.system.service; import com.yanzhu.system.api.domain.SysUser; +import com.yanzhu.system.domain.SysUserCom; import com.yanzhu.system.vo.AlertUserPassVo; import java.util.List; @@ -45,6 +46,12 @@ public interface ISysUserService */ public SysUser selectUserByUserName(String userName); + /** + * 通过电话号码查询用户信息 + * @param phone + * @return + */ + public SysUser selectByPhone(String phone); /** * 通过用户名查询用户 * @@ -103,6 +110,7 @@ public interface ISysUserService */ public boolean checkUserNameUnique(SysUser user); + public SysUser getUserByName(String userName); /** * 校验手机号码是否唯一 * @@ -254,4 +262,31 @@ public interface ISysUserService * @return */ public int updataUserPassWord(AlertUserPassVo alertUserPassVo); + + /** + * 获取普通用户的租户信息 + * @param userId + * @return + */ + public List getUserComs(Long userId); + + /** + * 激活普通用户的租户信息 + * @param userCom + * @return + */ + public SysUser activeUserCom(SysUserCom userCom); + + /** + * 获取管理员的租户信息 + * @return + */ + public List getAdminComs(); + + /** + * 激活管理员的租户信息 + * @param userCom + * @return + */ + public SysUser activeAdminCom(SysUserCom userCom); } diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserExtServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserExtServiceImpl.java new file mode 100644 index 00000000..f65e4750 --- /dev/null +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserExtServiceImpl.java @@ -0,0 +1,99 @@ +package com.yanzhu.system.service.impl; + +import java.util.List; +import java.util.Objects; + +import com.yanzhu.system.api.domain.SysUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.yanzhu.system.mapper.SysUserExtMapper; +import com.yanzhu.system.domain.SysUserExt; +import com.yanzhu.system.service.ISysUserExtService; + +/** + * 系统用户扩展Service业务层处理 + * + * @author yanzhu + * @date 2025-01-09 + */ +@Service +public class SysUserExtServiceImpl implements ISysUserExtService +{ + @Autowired + private SysUserExtMapper sysUserExtMapper; + + /** + * 查询系统用户扩展 + */ + @Override + public SysUserExt selectSysUserExtById(SysUserExt userExt) + { + return sysUserExtMapper.selectSysUserExtById(userExt ); + } + + /** + * 查询系统用户扩展列表 + * + * @param sysUserExt 系统用户扩展 + * @return 系统用户扩展 + */ + @Override + public List selectSysUserExtList(SysUserExt sysUserExt) + { + return sysUserExtMapper.selectSysUserExtList(sysUserExt); + } + + /** + * 新增系统用户扩展 + * + * @param sysUserExt 系统用户扩展 + * @return 结果 + */ + @Override + public int insertSysUserExt(SysUserExt sysUserExt) + { + return sysUserExtMapper.insertSysUserExt(sysUserExt); + } + + /** + * 修改系统用户扩展 + * + * @param sysUserExt 系统用户扩展 + * @return 结果 + */ + @Override + public int updateSysUserExt(SysUserExt sysUserExt) + { + return sysUserExtMapper.updateSysUserExt(sysUserExt); + } + + + /** + * 删除系统用户扩展信息 + */ + @Override + public int deleteSysUserExtById(SysUserExt sysUserExt) + { + return sysUserExtMapper.deleteSysUserExtById(sysUserExt); + } + + @Override + public void updateBySysUser(SysUser sysUser) { + SysUserExt where=new SysUserExt(); + where.setUserId(sysUser.getUserId()); + where.setComId(sysUser.getComId()); + List userExts=sysUserExtMapper.selectSysUserExtList(where); + where.setProjectId(sysUser.getDeptId()); + where.setIsActive(userExts.size()==0?1l:0l); + SysUserExt old=selectSysUserExtById(where); + if(Objects.nonNull(old)){ + old.setUserType(sysUser.getUserType()); + old.setStatus(sysUser.getStatus()); + updateSysUserExt(old); + }else{ + where.setUserType(sysUser.getUserType()); + where.setStatus(sysUser.getStatus()); + insertSysUserExt(where); + } + } +} diff --git a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java index 10ec95e6..ccfbbf4a 100644 --- a/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java +++ b/yanzhu-modules/yanzhu-system/src/main/java/com/yanzhu/system/service/impl/SysUserServiceImpl.java @@ -5,17 +5,23 @@ import java.util.stream.Collectors; import javax.validation.Validator; import com.yanzhu.common.core.constant.SecurityConstants; +import com.yanzhu.common.core.domain.R; import com.yanzhu.common.core.enums.ShiFouEnums; import com.yanzhu.common.core.enums.UserTypeEnums; import com.yanzhu.common.core.utils.DateUtils; +import com.yanzhu.common.core.web.domain.AjaxResult; +import com.yanzhu.common.security.service.TokenService; +import com.yanzhu.manage.domain.ProProjectInfo; +import com.yanzhu.manage.mapper.ProProjectInfoMapper; +import com.yanzhu.manage.mapper.ProProjectInfoSubdeptsUsersMapper; import com.yanzhu.system.api.RemoteProService; import com.yanzhu.system.api.RemoteUserService; import com.yanzhu.system.api.domain.SysDept; import com.yanzhu.system.api.domain.SysRoleDept; -import com.yanzhu.system.domain.SysPost; -import com.yanzhu.system.domain.SysUserPost; -import com.yanzhu.system.domain.SysUserRole; +import com.yanzhu.system.api.model.LoginUser; +import com.yanzhu.system.domain.*; import com.yanzhu.system.mapper.*; +import com.yanzhu.system.service.ISysUserExtService; import com.yanzhu.system.vo.AlertUserPassVo; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; @@ -78,6 +84,16 @@ public class SysUserServiceImpl implements ISysUserService @Autowired protected Validator validator; + @Autowired + private ISysUserExtService userExtService; + @Autowired + private SysUserComMapper userComMapper; + + @Autowired + private TokenService tokenService; + + @Autowired + private ProProjectInfoMapper proProjectInfoMapper; /** * 根据条件分页查询用户列表 * @@ -129,6 +145,11 @@ public class SysUserServiceImpl implements ISysUserService return userMapper.selectUserByUserName(userName); } + @Override + public SysUser selectByPhone(String phone) { + return userMapper.selectByPhone(phone); + } + /** * 通过用户名查询用户 * @@ -228,6 +249,9 @@ public class SysUserServiceImpl implements ISysUserService return UserConstants.UNIQUE; } + public SysUser getUserByName(String userName){ + return userMapper.checkUserNameUnique(userName); + } /** * 校验手机号码是否唯一 * @@ -308,28 +332,76 @@ public class SysUserServiceImpl implements ISysUserService @Transactional(rollbackFor = Exception.class) public int insertUser(SysUser user) { + boolean isPrjUser = false;//项目单位人员 + SysDept sysDept=null; + try { + if(Objects.equals(user.getUserType(),"99")){ + // 根据单位递归查询项目信息 + sysDept = deptMapper.selectDeptById(user.getDeptId()); + // 是项目单位时,将人员信息加入到花名册 + if(StringUtils.isNotEmpty(sysDept.getDeptType()) && Objects.equals(sysDept.getDeptType(),"4")){ + isPrjUser = true; + } + } + }catch (Exception e){ + e.printStackTrace(); + } // 新增用户信息 - user.setUserName(userNameAndCout(user.getNickName())); + //user.setUserName(userNameAndCout(user.getNickName())); SysDept dept = deptMapper.selectDeptById(user.getDeptId()); if(Objects.isNull(dept)){ throw new ServiceException("所属单位选择异常,必须选择子公司及下属单位"); } user.setComId(dept.getComId()); - int rows = userMapper.insertUser(user); + int rows=0; + SysUser sysUser = userMapper.selectByPhone(user.getPhonenumber()); + if(Objects.nonNull(sysUser)){//此电话号码已注册 + SysUserExt where=new SysUserExt(); + where.setUserId(sysUser.getUserId()); + where.setProjectId(user.getDeptId()); + List userExts=userExtService.selectSysUserExtList(where); + if(userExts.size()>0){ + throw new ServiceException("此用户己在此项目中!"); + } + user.setUserId(sysUser.getUserId()); + user.setIsActive(0l); + user.setStatus("0"); + SysUserCom comWhere=new SysUserCom(); + comWhere.setUserId(sysUser.getUserId()); + comWhere.setComId(dept.getComId()); + List userComs= userComMapper.selectUserComs(comWhere); + if(userComs.size()==0){ + userMapper.insertUserCom(user); + } + sysUser.setUserName(user.getUserName()); + sysUser.setComId(user.getComId()); + sysUser.setDeptId(user.getDeptId()); + sysUser.setPhonenumber(user.getPhonenumber()); + sysUser.setNickName(user.getNickName()); + sysUser.setUpdateBy(user.getUpdateBy()); + sysUser.setUpdateTime(user.getUpdateTime()); + sysUser.setPassword(user.getPassword()); + rows=userMapper.updateUser(sysUser); + userExtService.updateBySysUser(sysUser); + }else{//此电话号码未注册 + user.setCreateBy(user.getUpdateBy()); + user.setCreateTime(user.getUpdateTime()); + user.setUserType("99"); + rows=userMapper.insertUser(user); + user.setIsActive(1l); + userMapper.insertUserCom(user); + userExtService.updateBySysUser(user); + } + //int rows = userMapper.insertUser(user); // 新增用户岗位关联 insertUserPost(user); // 新增用户与角色管理 insertUserRole(user); try { - if(Objects.equals(user.getUserType(),"99")){ - // 根据单位递归查询项目信息 - SysDept sysDept = deptMapper.selectDeptById(user.getDeptId()); - // 是项目单位时,将人员信息加入到花名册 - if(StringUtils.isNotEmpty(sysDept.getDeptType()) && Objects.equals(sysDept.getDeptType(),"4")){ - Map data = packageSubDeptUsers(user,sysDept); - remoteProService.syspushSubDeptsUser(data, SecurityConstants.INNER); - } - } + if(isPrjUser) { + Map data = packageSubDeptUsers(user, sysDept); + R res = remoteProService.syspushSubDeptsUser(data, SecurityConstants.INNER); + } }catch (Exception e){ e.printStackTrace(); } @@ -365,10 +437,20 @@ public class SysUserServiceImpl implements ISysUserService * @return 结果 */ @Override - public Long registerUser(SysUser user) + public Long registerUser(SysUser user) throws ServiceException { - SysUser sysUser = userMapper.checkUserNameUnique(user.getUserName()); + SysUser sysUser = userMapper.selectByPhone(user.getPhonenumber()); if(Objects.nonNull(sysUser)){ + if(user.getComId().equals(sysUser.getOldComId())){ + SysUser where=new SysUser(); + where.setUserId(sysUser.getUserId()); + where.setComId(sysUser.getOldComId()); + SysUser oldUserCom=userMapper.selectUserCom(where); + if(Objects.nonNull(oldUserCom)){ + throw new ServiceException("此用户己在此项目中!"); + } + userMapper.updateUserCom(sysUser); + } user.setUserId(sysUser.getUserId()); sysUser.setUserName(user.getUserName()); sysUser.setPhonenumber(user.getUserName()); @@ -382,6 +464,13 @@ public class SysUserServiceImpl implements ISysUserService user.setCreateTime(user.getUpdateTime()); user.setUserType("99"); userMapper.insertUser(user); + List userComs=userMapper.selectUserComs(user.getUserId()); + if(userComs.size()==0){ + user.setIsActive(1l); + }else{ + user.setIsActive(0l); + } + userMapper.insertUserCom(user); } Long userId = user.getUserId(); if(Objects.nonNull(user.getUserType()) && Objects.nonNull(user.getActiveProjectId())){ @@ -517,6 +606,16 @@ public class SysUserServiceImpl implements ISysUserService throw new ServiceException("所属单位选择异常,必须选择子公司及下属单位"); } user.setComId(dept.getComId()); + if(user.getComId().equals(user.getOldComId())){ + SysUser where=new SysUser(); + where.setUserId(user.getUserId()); + where.setComId(user.getOldComId()); + SysUser oldUserCom=userMapper.selectUserCom(where); + if(Objects.nonNull(oldUserCom)){ + throw new ServiceException("此用户己在此项目中!"); + } + userMapper.updateUserCom(user); + } try { if(Objects.equals(user.getUserType(),"99")){ // 根据单位递归查询项目信息 @@ -671,8 +770,13 @@ public class SysUserServiceImpl implements ISysUserService SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); + up.setProjectId(user.getDeptId()); list.add(up); } + SysUserPost delUp=new SysUserPost(); + delUp.setUserId(user.getUserId()); + delUp.setProjectId(user.getDeptId()); + userPostMapper.deleteUserPostByUser(delUp); userPostMapper.batchUserPost(list); } } @@ -833,4 +937,82 @@ public class SysUserServiceImpl implements ISysUserService return userMapper.updateUser(sysUser); } + @Override + public List getUserComs(Long userId) { + SysUserCom where=new SysUserCom(); + where.setUserId(userId); + return userComMapper.selectUserComs(where); + } + + @Override + public SysUser activeUserCom(SysUserCom userCom) { + userCom.setIsActive(1l); + int cnt= userComMapper.updateActiveTo0(userCom); + cnt+= userComMapper.updateActive(userCom); + SysUserExt userExtWhere=new SysUserExt(); + userExtWhere.setUserId(userCom.getUserId()); + userExtWhere.setComId(userCom.getComId()); + List userExts=userExtService.selectSysUserExtList(userExtWhere); + if(userExts.size()==0){ + throw new ServiceException("此租户下面没有项目"); + } + SysUserExt sysUserExt=findActiveUserExt(userExts); + SysUser user=selectUserById(userCom.getUserId()); + user.setComId(userCom.getComId()); + user.setDeptId(sysUserExt.getProjectId()); + cnt+= userMapper.updateUser(user); + return user; + } + + @Override + public SysUser activeAdminCom(SysUserCom userCom) { + SysUser old=userMapper.selectUserByUserId(SecurityUtils.getUserId()); + old.setComId(userCom.getComId()); + SysUserExt userExtWhere=new SysUserExt(); + userExtWhere.setUserId(userCom.getUserId()); + userExtWhere.setComId(userCom.getComId()); + List userExts=userExtService.selectSysUserExtList(userExtWhere); + if(userExts.size()==0){ + ProProjectInfo proWhere=new ProProjectInfo(); + proWhere.setComId(userCom.getComId()); + List list = proProjectInfoMapper.selectMyProjectList(proWhere); + if(list.size()>0){ + old.setDeptId(list.get(0).getId()); + } + }else{ + old.setDeptId(userExts.get(0).getProjectId()); + } + userMapper.updateUser(old); + return old; + } + + @Override + public List getAdminComs() { + List userComs= userComMapper.selectAdminComs(); + LoginUser loginUser=SecurityUtils.getLoginUser(); + for (SysUserCom sysUserCom : userComs){ + if(sysUserCom.getComId().equals(loginUser.getSysUser().getComId())){ + sysUserCom.setIsActive(1l); + } + } + return userComs; + } + + + + private SysUserExt findActiveUserExt(List userExts) { + SysUserExt find=null; + for(SysUserExt userExt:userExts){ + if(userExt.getIsActive()==1){ + find=userExt; + } + } + if(find==null){ + find=userExts.get(0); + find.setIsActive(1l); + userExtService.updateSysUserExt(find); + } + return find; + } + } diff --git a/yanzhu-ui-vue3/src/api/system/user.js b/yanzhu-ui-vue3/src/api/system/user.js index d0d83d00..4f059a54 100644 --- a/yanzhu-ui-vue3/src/api/system/user.js +++ b/yanzhu-ui-vue3/src/api/system/user.js @@ -18,6 +18,15 @@ export function getUser(userId) { }) } +// 按手机号码查询用户 +export function selectByPhone(phone) { + return request({ + url: '/system/user/selectByPhone/' + phone, + method: 'get' + }) +} + + // 新增用户 export function addUser(data) { return request({ @@ -40,6 +49,8 @@ export function updateUser(data) { status:data.status, postIds:data.postIds, roles:data.roles, + comId:data.comId, + deptId:data.deptId, roleIds:data.roleIds } }) @@ -152,4 +163,33 @@ export function deptFirTreeSelect() { url: '/system/user/deptTree', method: 'get' }) +} + +export function getUserComs(userId){ + return request({ + url: '/system/user/profile/getUserComps/'+userId, + method: 'get' + }) +} + +export function activeUserCom(userCom){ + return request({ + url:'/system/user/activeUserCom', + method:'post', + data:userCom + }) +} + +export function reload(){ + return request({ + url: '/system/user/reload', + method: 'get' + }) +} + +export function getUserByName(userName){ + return request({ + url: '/system/user/getUserByName/'+userName, + method: 'get' + }) } \ No newline at end of file diff --git a/yanzhu-ui-vue3/src/components/CurrentProject/index.vue b/yanzhu-ui-vue3/src/components/CurrentProject/index.vue index d2523e37..f9311e4c 100644 --- a/yanzhu-ui-vue3/src/components/CurrentProject/index.vue +++ b/yanzhu-ui-vue3/src/components/CurrentProject/index.vue @@ -63,7 +63,7 @@ import { OfficeBuilding } from '@element-plus/icons-vue' import { findMyProjectList } from "@/api/publics"; import { switchProject, cancelProject } from '@/api/login' import { changeDefaultProject } from "@/api/manage/proProjectInfoSubdeptsUsers"; - +import { reload } from "@/api/system/user"; const { proxy } = getCurrentInstance(); import useUserStore from '@/store/modules/user' @@ -117,6 +117,15 @@ function resetQuery() { /** 改变默认项目 */ function changeDefault(proId) { + changeDefaultProject(proId).then(response =>{ + reload().then(d=>{ + proxy.$modal.loading("正在切换项目信息,请稍后..."); + setTimeout("window.location.reload()", 500); + }); + }); +} + +function changeDefaultOld(proId) { if(isAdmin.value){ switchProject(proId).then(res =>{ if(res.code==200){ diff --git a/yanzhu-ui-vue3/src/layout/components/Navbar.vue b/yanzhu-ui-vue3/src/layout/components/Navbar.vue index 5701c069..e923a25c 100644 --- a/yanzhu-ui-vue3/src/layout/components/Navbar.vue +++ b/yanzhu-ui-vue3/src/layout/components/Navbar.vue @@ -6,6 +6,7 @@