From 4d645ef15ae2992c6f6a0ec14d9eb348bf23fea4 Mon Sep 17 00:00:00 2001 From: zhangxuanming <2260476558@qq.com> Date: Mon, 30 Dec 2024 11:41:00 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E6=B6=88=E6=81=AF=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=85=A8=E9=83=A8=E5=B7=B2=E8=AF=BB=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E3=80=82=E9=83=A8=E9=97=A8=E6=96=B0=E5=A2=9E=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=94=9F=E6=88=90=E7=BC=96=E7=A0=81=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=AF=BC=E5=85=A5=E6=95=B0=E6=8D=AE=E6=97=B6=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E9=83=A8=E9=97=A8=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysDeptController.java | 7 + .../system/SysMessageController.java | 10 + .../controller/system/SysUserController.java | 6 +- .../common/core/domain/entity/SysDept.java | 12 + .../common/core/domain/vo/SysUserExcelVO.java | 276 ++++++++++++++++++ .../com/ktg/system/mapper/SysDeptMapper.java | 6 + .../ktg/system/mapper/SysMessageMapper.java | 2 + .../ktg/system/service/ISysDeptService.java | 6 + .../system/service/ISysMessageService.java | 8 + .../ktg/system/service/ISysUserService.java | 3 +- .../service/impl/SysDeptServiceImpl.java | 5 + .../service/impl/SysMessageServiceImpl.java | 17 ++ .../service/impl/SysUserServiceImpl.java | 24 +- .../resources/mapper/system/SysDeptMapper.xml | 12 +- .../mapper/system/SysMessageMapper.xml | 6 +- 15 files changed, 391 insertions(+), 9 deletions(-) create mode 100644 ktg-common/src/main/java/com/ktg/common/core/domain/vo/SysUserExcelVO.java diff --git a/ktg-admin/src/main/java/com/ktg/web/controller/system/SysDeptController.java b/ktg-admin/src/main/java/com/ktg/web/controller/system/SysDeptController.java index d7d566c..233f339 100644 --- a/ktg-admin/src/main/java/com/ktg/web/controller/system/SysDeptController.java +++ b/ktg-admin/src/main/java/com/ktg/web/controller/system/SysDeptController.java @@ -2,6 +2,8 @@ package com.ktg.web.controller.system; import java.util.Iterator; import java.util.List; + +import com.ktg.system.strategy.AutoCodeUtil; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -35,6 +37,9 @@ public class SysDeptController extends BaseController @Autowired private ISysDeptService deptService; + @Autowired + private AutoCodeUtil autoCodeUtil; + /** * 获取部门列表 */ @@ -111,6 +116,8 @@ public class SysDeptController extends BaseController { return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); } + String s = autoCodeUtil.genSerialCode("DEPT_CODE", null); + dept.setDeptCode(s); dept.setCreateBy(getUsername()); return toAjax(deptService.insertDept(dept)); } diff --git a/ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageController.java b/ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageController.java index 71219f9..4dd58ce 100644 --- a/ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageController.java +++ b/ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageController.java @@ -118,4 +118,14 @@ public class SysMessageController extends BaseController } return AjaxResult.success(); } + + /** + * 全部已读 + * @return + */ + @PreAuthorize("@ss.hasPermi('system:message:READ')") + @GetMapping("/read") + public AjaxResult allRead() { + return sysMessageService.allRead(); + } } diff --git a/ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java b/ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java index d7f92d3..76905fe 100644 --- a/ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java +++ b/ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java @@ -3,6 +3,8 @@ package com.ktg.web.controller.system; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; + +import com.ktg.common.core.domain.vo.SysUserExcelVO; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -75,8 +77,8 @@ public class SysUserController extends BaseController @PostMapping("/importData") public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { - ExcelUtil util = new ExcelUtil(SysUser.class); - List userList = util.importExcel(file.getInputStream()); + ExcelUtil util = new ExcelUtil(SysUserExcelVO.class); + List userList = util.importExcel(file.getInputStream()); String operName = getUsername(); String message = userService.importUser(userList, updateSupport, operName); return AjaxResult.success(message); diff --git a/ktg-common/src/main/java/com/ktg/common/core/domain/entity/SysDept.java b/ktg-common/src/main/java/com/ktg/common/core/domain/entity/SysDept.java index dbcfcd9..d80de12 100644 --- a/ktg-common/src/main/java/com/ktg/common/core/domain/entity/SysDept.java +++ b/ktg-common/src/main/java/com/ktg/common/core/domain/entity/SysDept.java @@ -27,6 +27,9 @@ public class SysDept extends BaseEntity /** 祖级列表 */ private String ancestors; + /** 部门编码 */ + private String deptCode; + /** 部门名称 */ private String deptName; @@ -180,12 +183,21 @@ public class SysDept extends BaseEntity this.children = children; } + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("deptId", getDeptId()) .append("parentId", getParentId()) .append("ancestors", getAncestors()) + .append("deptCode", getDeptCode()) .append("deptName", getDeptName()) .append("orderNum", getOrderNum()) .append("leader", getLeader()) diff --git a/ktg-common/src/main/java/com/ktg/common/core/domain/vo/SysUserExcelVO.java b/ktg-common/src/main/java/com/ktg/common/core/domain/vo/SysUserExcelVO.java new file mode 100644 index 0000000..14da300 --- /dev/null +++ b/ktg-common/src/main/java/com/ktg/common/core/domain/vo/SysUserExcelVO.java @@ -0,0 +1,276 @@ +package com.ktg.common.core.domain.vo; + +import com.ktg.common.annotation.Excel; +import com.ktg.common.annotation.Excels; +import com.ktg.common.core.domain.BaseEntity; +import com.ktg.common.core.domain.entity.SysDept; +import com.ktg.common.core.domain.entity.SysRole; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +public class SysUserExcelVO extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 用户ID */ +// @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") + private Long userId; + + /** 部门ID */ + + private Long deptId; + + /** 部门Code */ + @Excel(name = "部门编号", type = Excel.Type.IMPORT) + private String deptCode; + + /** 用户账号 */ + @Excel(name = "登录名称") + private String userName; + + /** 用户昵称 */ + @Excel(name = "用户名称") + private String nickName; + + /** 用户邮箱 */ + @Excel(name = "用户邮箱") + private String email; + + /** 手机号码 */ + @Excel(name = "手机号码") + private String phonenumber; + + /** 用户性别 */ + @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") + private String sex; + + /** 用户头像 */ + private String avatar; + + /** 密码 */ + private String password; + + /** 盐加密 */ + private String salt; + + /** 帐号状态(0正常 1停用) */ + @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 最后登录IP */ + @Excel(name = "最后登录IP", type = Excel.Type.EXPORT) + private String loginIp; + + /** 最后登录时间 */ + @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT) + private Date loginDate; + + /** 部门对象 */ + @Excels({ + @Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT), + @Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT) + }) + private SysDept dept; + + /** 角色对象 */ + private List roles; + + /** 角色组 */ + private Long[] roleIds; + + /** 岗位组 */ + private Long[] postIds; + + /** 角色ID */ + private Long roleId; + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + @Override + public String toString() { + return "SysUserExcelVO{" + + "userId=" + userId + + ", deptId=" + deptId + + ", deptCode='" + deptCode + '\'' + + ", userName='" + userName + '\'' + + ", nickName='" + nickName + '\'' + + ", email='" + email + '\'' + + ", phonenumber='" + phonenumber + '\'' + + ", sex='" + sex + '\'' + + ", avatar='" + avatar + '\'' + + ", password='" + password + '\'' + + ", salt='" + salt + '\'' + + ", status='" + status + '\'' + + ", delFlag='" + delFlag + '\'' + + ", loginIp='" + loginIp + '\'' + + ", loginDate=" + loginDate + + ", dept=" + dept + + ", roles=" + roles + + ", roleIds=" + Arrays.toString(roleIds) + + ", postIds=" + Arrays.toString(postIds) + + ", roleId=" + roleId + + '}'; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getPhonenumber() { + return phonenumber; + } + + public void setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + } + + public String getSex() { + return sex; + } + + public void setSex(String sex) { + this.sex = sex; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getSalt() { + return salt; + } + + public void setSalt(String salt) { + this.salt = salt; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getLoginIp() { + return loginIp; + } + + public void setLoginIp(String loginIp) { + this.loginIp = loginIp; + } + + public Date getLoginDate() { + return loginDate; + } + + public void setLoginDate(Date loginDate) { + this.loginDate = loginDate; + } + + public SysDept getDept() { + return dept; + } + + public void setDept(SysDept dept) { + this.dept = dept; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } + + public Long[] getRoleIds() { + return roleIds; + } + + public void setRoleIds(Long[] roleIds) { + this.roleIds = roleIds; + } + + public Long[] getPostIds() { + return postIds; + } + + public void setPostIds(Long[] postIds) { + this.postIds = postIds; + } + + public Long getRoleId() { + return roleId; + } + + public void setRoleId(Long roleId) { + this.roleId = roleId; + } +} diff --git a/ktg-system/src/main/java/com/ktg/system/mapper/SysDeptMapper.java b/ktg-system/src/main/java/com/ktg/system/mapper/SysDeptMapper.java index 01a6d58..06e4818 100644 --- a/ktg-system/src/main/java/com/ktg/system/mapper/SysDeptMapper.java +++ b/ktg-system/src/main/java/com/ktg/system/mapper/SysDeptMapper.java @@ -115,4 +115,10 @@ public interface SysDeptMapper * @return 结果 */ public int deleteDeptById(Long deptId); + + /** + * 查询所有部门数据 + * @return + */ + List selectAllDeptList(); } diff --git a/ktg-system/src/main/java/com/ktg/system/mapper/SysMessageMapper.java b/ktg-system/src/main/java/com/ktg/system/mapper/SysMessageMapper.java index 7608daa..13f69fd 100644 --- a/ktg-system/src/main/java/com/ktg/system/mapper/SysMessageMapper.java +++ b/ktg-system/src/main/java/com/ktg/system/mapper/SysMessageMapper.java @@ -58,4 +58,6 @@ public interface SysMessageMapper * @return 结果 */ public int deleteSysMessageByMessageIds(Long[] messageIds); + + List getUnRead(); } diff --git a/ktg-system/src/main/java/com/ktg/system/service/ISysDeptService.java b/ktg-system/src/main/java/com/ktg/system/service/ISysDeptService.java index c4c7afa..04faa21 100644 --- a/ktg-system/src/main/java/com/ktg/system/service/ISysDeptService.java +++ b/ktg-system/src/main/java/com/ktg/system/service/ISysDeptService.java @@ -113,4 +113,10 @@ public interface ISysDeptService * @return 结果 */ public int deleteDeptById(Long deptId); + + /** + * 查询所有部门数据 + * @return + */ + List selectAllDeptList(); } diff --git a/ktg-system/src/main/java/com/ktg/system/service/ISysMessageService.java b/ktg-system/src/main/java/com/ktg/system/service/ISysMessageService.java index 47981ed..a68d855 100644 --- a/ktg-system/src/main/java/com/ktg/system/service/ISysMessageService.java +++ b/ktg-system/src/main/java/com/ktg/system/service/ISysMessageService.java @@ -1,6 +1,8 @@ package com.ktg.system.service; import java.util.List; + +import com.ktg.common.core.domain.AjaxResult; import com.ktg.system.domain.SysMessage; /** @@ -58,4 +60,10 @@ public interface ISysMessageService * @return 结果 */ public int deleteSysMessageByMessageId(Long messageId); + + /** + * 全部已读 + * @return + */ + AjaxResult allRead(); } diff --git a/ktg-system/src/main/java/com/ktg/system/service/ISysUserService.java b/ktg-system/src/main/java/com/ktg/system/service/ISysUserService.java index 4918d80..d84162f 100644 --- a/ktg-system/src/main/java/com/ktg/system/service/ISysUserService.java +++ b/ktg-system/src/main/java/com/ktg/system/service/ISysUserService.java @@ -2,6 +2,7 @@ package com.ktg.system.service; import java.util.List; import com.ktg.common.core.domain.entity.SysUser; +import com.ktg.common.core.domain.vo.SysUserExcelVO; /** * 用户 业务层 @@ -209,7 +210,7 @@ public interface ISysUserService * @param operName 操作用户 * @return 结果 */ - public String importUser(List userList, Boolean isUpdateSupport, String operName); + public String importUser(List userList, Boolean isUpdateSupport, String operName); /** * 校验昵称是否存在 diff --git a/ktg-system/src/main/java/com/ktg/system/service/impl/SysDeptServiceImpl.java b/ktg-system/src/main/java/com/ktg/system/service/impl/SysDeptServiceImpl.java index 485d8a1..51af2dd 100644 --- a/ktg-system/src/main/java/com/ktg/system/service/impl/SysDeptServiceImpl.java +++ b/ktg-system/src/main/java/com/ktg/system/service/impl/SysDeptServiceImpl.java @@ -284,6 +284,11 @@ public class SysDeptServiceImpl implements ISysDeptService return deptMapper.deleteDeptById(deptId); } + @Override + public List selectAllDeptList() { + return deptMapper.selectAllDeptList(); + } + /** * 递归列表 */ diff --git a/ktg-system/src/main/java/com/ktg/system/service/impl/SysMessageServiceImpl.java b/ktg-system/src/main/java/com/ktg/system/service/impl/SysMessageServiceImpl.java index ecf4af2..4f1addf 100644 --- a/ktg-system/src/main/java/com/ktg/system/service/impl/SysMessageServiceImpl.java +++ b/ktg-system/src/main/java/com/ktg/system/service/impl/SysMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.ktg.system.service.impl; import java.util.List; + +import com.ktg.common.core.domain.AjaxResult; import com.ktg.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -93,4 +95,19 @@ public class SysMessageServiceImpl implements ISysMessageService { return sysMessageMapper.deleteSysMessageByMessageId(messageId); } + + /** + * 全部已读 + * @return + */ + @Override + public AjaxResult allRead() { + // 查询所有未读消息 + List messages = sysMessageMapper.getUnRead(); + messages.forEach(item -> { + item.setStatus("READ"); + sysMessageMapper.updateSysMessage(item); + }); + return AjaxResult.success(); + } } diff --git a/ktg-system/src/main/java/com/ktg/system/service/impl/SysUserServiceImpl.java b/ktg-system/src/main/java/com/ktg/system/service/impl/SysUserServiceImpl.java index 6960095..6b3940d 100644 --- a/ktg-system/src/main/java/com/ktg/system/service/impl/SysUserServiceImpl.java +++ b/ktg-system/src/main/java/com/ktg/system/service/impl/SysUserServiceImpl.java @@ -2,12 +2,18 @@ package com.ktg.system.service.impl; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; import java.util.stream.Collectors; import javax.validation.Validator; import cn.hutool.core.util.ObjectUtil; +import com.ktg.common.core.domain.entity.SysDept; +import com.ktg.common.core.domain.vo.SysUserExcelVO; +import com.ktg.system.service.ISysDeptService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -63,6 +69,9 @@ public class SysUserServiceImpl implements ISysUserService @Autowired protected Validator validator; + @Autowired + private ISysDeptService deptService; + /** * 根据条件分页查询用户列表 * @@ -508,7 +517,7 @@ public class SysUserServiceImpl implements ISysUserService * @return 结果 */ @Override - public String importUser(List userList, Boolean isUpdateSupport, String operName) + public String importUser(List userList, Boolean isUpdateSupport, String operName) { if (StringUtils.isNull(userList) || userList.size() == 0) { @@ -518,9 +527,17 @@ public class SysUserServiceImpl implements ISysUserService int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); + // 查询所有部门数据 + List depts = deptService.selectAllDeptList(); + Map collect = depts.stream().collect(Collectors.toMap( + SysDept::getDeptCode, + Function.identity() + )); String password = configService.selectConfigByKey("sys.user.initPassword"); - for (SysUser user : userList) + for (SysUserExcelVO uservo : userList) { + SysUser user = new SysUser(); + BeanUtils.copyProperties(uservo, user); try { if (ObjectUtil.isEmpty(user.getNickName())) { @@ -533,6 +550,9 @@ public class SysUserServiceImpl implements ISysUserService failureMsg.append("
" + "昵称重复"); continue; } + if (ObjectUtil.isNotEmpty(uservo.getDeptCode())) { + user.setDeptId(collect.get(uservo.getDeptCode()).getDeptId()); + } // 验证是否存在这个用户 SysUser u = userMapper.selectUserByUserName(user.getUserName()); if (StringUtils.isNull(u)) diff --git a/ktg-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ktg-system/src/main/resources/mapper/system/SysDeptMapper.xml index 365b391..2612264 100644 --- a/ktg-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ktg-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -23,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time + select d.dept_id, d.parent_id, d.ancestors, d.dept_code, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time from sys_dept d @@ -84,11 +85,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 + - + insert into sys_dept( dept_id, parent_id, + dept_code, dept_name, ancestors, order_num, @@ -101,7 +106,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" )values( #{deptId}, #{parentId}, - #{deptName}, + #{deptCode}, + #{deptName}, #{ancestors}, #{orderNum}, #{leader}, diff --git a/ktg-system/src/main/resources/mapper/system/SysMessageMapper.xml b/ktg-system/src/main/resources/mapper/system/SysMessageMapper.xml index ad0f19b..f10d679 100644 --- a/ktg-system/src/main/resources/mapper/system/SysMessageMapper.xml +++ b/ktg-system/src/main/resources/mapper/system/SysMessageMapper.xml @@ -60,7 +60,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where message_id = #{messageId} - + + insert into sys_message