From 9d56a567a838d5793bd8a20f3ec6277c28559a1c Mon Sep 17 00:00:00 2001 From: cjw Date: Thu, 6 Jun 2024 15:28:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E5=AD=A6=E7=94=9F=E5=92=8C=E6=95=99?= =?UTF-8?q?=E5=B8=88=E7=9A=84=E7=AE=A1=E7=90=86=E5=88=86=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/CacheNames.java | 5 + .../common/excel/core/ExcelDownHandler.java | 4 + .../dromara/scale/domain/vo/SysScaleVo.java | 13 -- .../service/impl/SysScaleServiceImpl.java | 2 +- .../mapper/scale/SysInterveneRecordMapper.xml | 1 - .../controller/system/SysUserController.java | 91 ++++++++++---- ...rImportVo.java => SysStudentImportVo.java} | 12 +- .../system/domain/vo/SysTeacherImportVo.java | 58 +++++++++ .../listener/SysStudentImportListener.java | 113 ++++++++++++++++++ ...ner.java => SysTeacherImportListener.java} | 38 ++---- .../system/service/ISysDeptService.java | 2 +- .../service/impl/SysDeptServiceImpl.java | 4 +- .../service/impl/SysUserServiceImpl.java | 1 - 13 files changed, 268 insertions(+), 76 deletions(-) rename ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/{SysUserImportVo.java => SysStudentImportVo.java} (83%) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTeacherImportVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysStudentImportListener.java rename ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/{SysUserImportListener.java => SysTeacherImportListener.java} (69%) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java index 6436516..28f3994 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java @@ -45,6 +45,11 @@ public interface CacheNames { */ String SYS_DEPT = "sys_dept#30d"; + /** + * 部门 + */ + String SYS_DEPT_NAME = "sys_dept_name#1d"; + /** * OSS内容 */ diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java index 3b791ea..0aca5d5 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/core/ExcelDownHandler.java @@ -17,6 +17,7 @@ import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.poi.ss.util.WorkbookUtil; import org.apache.poi.xssf.usermodel.XSSFDataValidation; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.service.DeptService; import org.dromara.common.core.service.DictService; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StreamUtils; @@ -63,12 +64,15 @@ public class ExcelDownHandler implements SheetWriteHandler { */ private int currentLinkedOptionsSheetIndex; private final DictService dictService; + private final DeptService deptService; + public ExcelDownHandler(List options) { this.dropDownOptions = options; this.currentOptionsColumnIndex = 0; this.currentLinkedOptionsSheetIndex = 0; this.dictService = SpringUtils.getBean(DictService.class); + this.deptService = SpringUtils.getBean(DeptService.class); } /** diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java index 4979d73..d99a65b 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java @@ -1,10 +1,6 @@ package org.dromara.scale.domain.vo; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import java.io.Serial; import java.io.Serializable; @@ -18,7 +14,6 @@ import java.util.List; * @date 2024-03-29 */ @Data -@ExcelIgnoreUnannotated public class SysScaleVo implements Serializable { @Serial @@ -27,7 +22,6 @@ public class SysScaleVo implements Serializable { /** * 测评id */ - @ExcelProperty(value = "测评id") private Long scaleId; /** @@ -43,7 +37,6 @@ public class SysScaleVo implements Serializable { /** * 测评标题 */ - @ExcelProperty(value = "测评标题") private String scaleTitle; /** @@ -54,14 +47,11 @@ public class SysScaleVo implements Serializable { /** * 测评详情 */ - @ExcelProperty(value = "测评详情") private String scaleDetails; /** * 状态(0停用 1正常) */ - @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "0=停用,1=正常") private Integer status; /** @@ -97,7 +87,6 @@ public class SysScaleVo implements Serializable { /** * 量表类型:对应字典项scale_type */ - @ExcelProperty(value = "类型") private List scaleType; /** @@ -123,10 +112,8 @@ public class SysScaleVo implements Serializable { /** * 测评时间 */ - @ExcelProperty(value = "测评时间") private String scaleTime; - private boolean used; private Long recordId; diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java index c2ea8f3..30c5b30 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleServiceImpl.java @@ -83,7 +83,7 @@ public class SysScaleServiceImpl implements ISysScaleService { if(CollUtil.isNotEmpty(bo.getScaleType())){ lqw.like(CollUtil.isNotEmpty(bo.getScaleType()), SysScale::getScaleType, bo.getScaleType().get(0)); } - lqw.orderByDesc(SysScale::getCreateTime); + lqw.orderByDesc(SysScale::getUpdateTime); return lqw; } diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml index f68b5bd..05ec56d 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysInterveneRecordMapper.xml @@ -11,7 +11,6 @@ ir.annex from sys_intervene_record ir left join sys_user u on u.user_id = ir.counselor_id - where ir.user_id = #{userId} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java index 601a788..7b5ac8c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -1,6 +1,7 @@ package org.dromara.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import cn.dev33.satoken.secure.BCrypt; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ArrayUtil; @@ -28,7 +29,8 @@ import org.dromara.system.domain.bo.SysPostBo; import org.dromara.system.domain.bo.SysRoleBo; import org.dromara.system.domain.bo.SysUserBo; import org.dromara.system.domain.vo.*; -import org.dromara.system.listener.SysUserImportListener; +import org.dromara.system.listener.SysStudentImportListener; +import org.dromara.system.listener.SysTeacherImportListener; import org.dromara.system.service.ISysDeptService; import org.dromara.system.service.ISysPostService; import org.dromara.system.service.ISysRoleService; @@ -61,7 +63,10 @@ public class SysUserController extends BaseController { /** * 获取用户列表 */ - @SaCheckPermission("system:user:list") + @SaCheckPermission(value = { + "system:teacher:list", + "system:student:list"}, + mode = SaMode.OR) @GetMapping("/list") public TableDataInfo list(SysUserBo user, PageQuery pageQuery) { return userService.selectPageUserList(user, pageQuery); @@ -82,23 +87,43 @@ public class SysUserController extends BaseController { /** * 导入数据 * - * @param file 导入文件 - * @param updateSupport 是否更新已存在数据 + * @param file 导入文件 */ @Log(title = "用户管理", businessType = BusinessType.IMPORT) - @SaCheckPermission("system:user:import") - @PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R importData(@RequestPart("file") MultipartFile file, boolean updateSupport) throws Exception { - ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysUserImportVo.class, new SysUserImportListener(updateSupport)); + @SaCheckPermission("system:teacher:import") + @PostMapping(value = "/teacher/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importTeacherData(@RequestPart("file") MultipartFile file) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysTeacherImportVo.class, new SysTeacherImportListener()); return R.ok(result.getAnalysis()); } /** * 获取导入模板 */ - @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) { - ExcelUtil.exportExcel(new ArrayList<>(), "用户数据", SysUserImportVo.class, response); + @PostMapping("/teacher/importTemplate") + public void importTeacherTemplate(HttpServletResponse response) { + ExcelUtil.exportExcel(new ArrayList<>(), "教师数据", SysTeacherImportVo.class, response); + } + + /** + * 导入数据 + * + * @param file 导入文件 + */ + @Log(title = "用户管理", businessType = BusinessType.IMPORT) + @SaCheckPermission("system:student:import") + @PostMapping(value = "/student/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R importStudentData(@RequestPart("file") MultipartFile file) throws Exception { + ExcelResult result = ExcelUtil.importExcel(file.getInputStream(), SysStudentImportVo.class, new SysStudentImportListener()); + return R.ok(result.getAnalysis()); + } + + /** + * 获取导入模板 + */ + @PostMapping("/student/importTemplate") + public void importStudentTemplate(HttpServletResponse response) { + ExcelUtil.exportExcel(new ArrayList<>(), "学生数据", SysStudentImportVo.class, response); } /** @@ -125,7 +150,10 @@ public class SysUserController extends BaseController { * * @param userId 用户ID */ - @SaCheckPermission("system:user:query") + @SaCheckPermission(value = { + "system:teacher:query", + "system:student:query"}, + mode = SaMode.OR) @GetMapping(value = {"/", "/{userId}"}) public R getInfo(@PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); @@ -149,7 +177,11 @@ public class SysUserController extends BaseController { /** * 新增用户 */ - @SaCheckPermission("system:user:add") + + @SaCheckPermission(value = { + "system:teacher:add", + "system:student:add"}, + mode = SaMode.OR) @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping public R add(@Validated @RequestBody SysUserBo user) { @@ -168,7 +200,10 @@ public class SysUserController extends BaseController { /** * 修改用户 */ - @SaCheckPermission("system:user:edit") + @SaCheckPermission(value = { + "system:teacher:edit", + "system:student:edit"}, + mode = SaMode.OR) @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody SysUserBo user) { @@ -190,7 +225,10 @@ public class SysUserController extends BaseController { * * @param userIds 角色ID串 */ - @SaCheckPermission("system:user:remove") + @SaCheckPermission(value = { + "system:teacher:remove", + "system:student:remove"}, + mode = SaMode.OR) @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") public R remove(@PathVariable Long[] userIds) { @@ -204,7 +242,10 @@ public class SysUserController extends BaseController { * 重置密码 */ @ApiEncrypt - @SaCheckPermission("system:user:resetPwd") + @SaCheckPermission(value = { + "system:teacher:resetPwd", + "system:student:resetPwd"}, + mode = SaMode.OR) @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") public R resetPwd(@RequestBody SysUserBo user) { @@ -217,7 +258,10 @@ public class SysUserController extends BaseController { /** * 状态修改 */ - @SaCheckPermission("system:user:edit") + @SaCheckPermission(value = { + "system:teacher:edit", + "system:student:edit"}, + mode = SaMode.OR) @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") public R changeStatus(@RequestBody SysUserBo user) { @@ -231,7 +275,10 @@ public class SysUserController extends BaseController { * * @param userId 用户ID */ - @SaCheckPermission("system:user:query") + @SaCheckPermission(value = { + "system:teacher:query", + "system:student:query"}, + mode = SaMode.OR) @GetMapping("/authRole/{userId}") public R authRole(@PathVariable Long userId) { SysUserVo user = userService.selectUserById(userId); @@ -248,7 +295,11 @@ public class SysUserController extends BaseController { * @param userId 用户Id * @param roleIds 角色ID串 */ - @SaCheckPermission("system:user:edit") + + @SaCheckPermission(value = { + "system:teacher:edit", + "system:student:edit"}, + mode = SaMode.OR) @Log(title = "用户管理", businessType = BusinessType.GRANT) @PutMapping("/authRole") public R insertAuthRole(Long userId, Long[] roleIds) { @@ -280,7 +331,7 @@ public class SysUserController extends BaseController { * 导出用户列表 */ @Log(title = "用户管理", businessType = BusinessType.EXPORT) - @SaCheckPermission("system:user:export") + @SaCheckPermission("system:student:export") @PostMapping("/export/password") public void exportPassword(@NotNull Long deptId, HttpServletResponse response) { List listVo = userService.selectUserpassWordListByDept(deptId); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStudentImportVo.java similarity index 83% rename from ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStudentImportVo.java index 090756d..0673bd1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserImportVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysStudentImportVo.java @@ -1,10 +1,10 @@ package org.dromara.system.domain.vo; import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import lombok.Data; import lombok.NoArgsConstructor; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; import java.io.Serial; import java.io.Serializable; @@ -18,7 +18,7 @@ import java.io.Serializable; @Data @NoArgsConstructor // @Accessors(chain = true) // 导入不允许使用 会找不到set方法 -public class SysUserImportVo implements Serializable { +public class SysStudentImportVo implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -60,11 +60,5 @@ public class SysUserImportVo implements Serializable { @ExcelDictFormat(dictType = "sys_user_sex") private String sex; - /** - * 用户类型 - */ - @ExcelProperty(value = "用户类型", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_user_type") - private String userType; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTeacherImportVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTeacherImportVo.java new file mode 100644 index 0000000..587a03e --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysTeacherImportVo.java @@ -0,0 +1,58 @@ +package org.dromara.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 用户对象导入VO + * + * @author Lion Li + */ + +@Data +@NoArgsConstructor +// @Accessors(chain = true) // 导入不允许使用 会找不到set方法 +public class SysTeacherImportVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户账号 + */ + @ExcelProperty(value = "登录名称") + private String userName; + + /** + * 用户昵称 + */ + @ExcelProperty(value = "用户名称") + private String nickName; + + /** + * 用户邮箱 + */ + @ExcelProperty(value = "用户邮箱") + private String email; + + /** + * 手机号码 + */ + @ExcelProperty(value = "手机号码") + private String phonenumber; + + /** + * 用户性别 + */ + @ExcelProperty(value = "用户性别", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_user_sex") + private String sex; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysStudentImportListener.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysStudentImportListener.java new file mode 100644 index 0000000..24ba3b7 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysStudentImportListener.java @@ -0,0 +1,113 @@ +package org.dromara.system.listener; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.crypto.digest.BCrypt; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.ValidatorUtils; +import org.dromara.common.excel.core.ExcelListener; +import org.dromara.common.excel.core.ExcelResult; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.SysStudentImportVo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.service.ISysConfigService; +import org.dromara.system.service.ISysDeptService; +import org.dromara.system.service.ISysUserService; + +import java.util.List; + +/** + * 系统用户自定义导入 + * + * @author Lion Li + */ +@Slf4j +public class SysStudentImportListener extends AnalysisEventListener implements ExcelListener { + + private final ISysUserService userService; + + private final ISysDeptService deptService; + + private final String password; + + private final Long operUserId; + + private int successNum = 0; + private int failureNum = 0; + private final StringBuilder successMsg = new StringBuilder(); + private final StringBuilder failureMsg = new StringBuilder(); + + public SysStudentImportListener() { + String initPassword = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("sys.user.initPassword"); + this.userService = SpringUtils.getBean(ISysUserService.class); + this.deptService = SpringUtils.getBean(ISysDeptService.class); + this.password = BCrypt.hashpw(initPassword); + this.operUserId = LoginHelper.getUserId(); + } + + @Override + public void invoke(SysStudentImportVo userVo, AnalysisContext context) { + SysUserVo sysUser = this.userService.selectUserByUserName(userVo.getUserName()); + try { + Long deptId = this.deptService.selectIdByName(userVo.getDeptName()); + if (ObjectUtil.isNotNull(deptId)) { + // 验证是否存在这个用户 + if (ObjectUtil.isNull(sysUser)) { + SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); + ValidatorUtils.validate(user); + user.setPassword(password); + user.setDeptId(deptId); + user.setCreateBy(operUserId); + userService.insertUser(user); + successNum++; + successMsg.append("
").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); + } else { + failureNum++; + failureMsg.append("
").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在"); + } + } else { + failureNum++; + failureMsg.append("
").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 查询不到部门"); + } + } catch (Exception e) { + failureNum++; + String msg = "
" + failureNum + "、账号 " + userVo.getUserName() + " 导入失败:"; + failureMsg.append(msg).append(e.getMessage()); + log.error(msg, e); + } + } + + @Override + public void doAfterAllAnalysed(AnalysisContext context) { + + } + + @Override + public ExcelResult getExcelResult() { + return new ExcelResult<>() { + @Override + public String getAnalysis() { + if (failureNum > 0) { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } + @Override + public List getList() { + return null; + } + @Override + public List getErrorList() { + return null; + } + }; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysTeacherImportListener.java similarity index 69% rename from ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java rename to ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysTeacherImportListener.java index ffa9067..9c4f26e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysUserImportListener.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/listener/SysTeacherImportListener.java @@ -13,10 +13,9 @@ import org.dromara.common.excel.core.ExcelListener; import org.dromara.common.excel.core.ExcelResult; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.domain.bo.SysUserBo; -import org.dromara.system.domain.vo.SysUserImportVo; +import org.dromara.system.domain.vo.SysTeacherImportVo; import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.ISysConfigService; -import org.dromara.system.service.ISysDeptService; import org.dromara.system.service.ISysUserService; import java.util.List; @@ -27,16 +26,12 @@ import java.util.List; * @author Lion Li */ @Slf4j -public class SysUserImportListener extends AnalysisEventListener implements ExcelListener { +public class SysTeacherImportListener extends AnalysisEventListener implements ExcelListener { private final ISysUserService userService; - private final ISysDeptService deptService; - private final String password; - private final Boolean isUpdateSupport; - private final Long operUserId; private int successNum = 0; @@ -44,47 +39,33 @@ public class SysUserImportListener extends AnalysisEventListener").append(successNum).append("、账号 ").append(user.getUserName()).append(" 导入成功"); } else { - //todo 是否需要更新,暂不知需求 -// } else if (isUpdateSupport) { -// Long userId = sysUser.getUserId(); -// SysUserBo user = BeanUtil.toBean(userVo, SysUserBo.class); -// user.setUserId(userId); -// ValidatorUtils.validate(user); -// userService.checkUserAllowed(user.getUserId()); -// userService.checkUserDataScope(user.getUserId()); -// user.setUpdateBy(operUserId); -// userService.updateUser(user); -// successNum++; -// successMsg.append("
").append(successNum).append("、账号 ").append(user.getUserName()).append(" 更新成功"); -// } else { failureNum++; failureMsg.append("
").append(failureNum).append("、账号 ").append(sysUser.getUserName()).append(" 已存在"); } + } catch (Exception e) { failureNum++; String msg = "
" + failureNum + "、账号 " + userVo.getUserName() + " 导入失败:"; @@ -99,9 +80,8 @@ public class SysUserImportListener extends AnalysisEventListener getExcelResult() { + public ExcelResult getExcelResult() { return new ExcelResult<>() { - @Override public String getAnalysis() { if (failureNum > 0) { @@ -114,7 +94,7 @@ public class SysUserImportListener extends AnalysisEventListener getList() { + public List getList() { return null; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java index 8f95860..82adb90 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java @@ -115,6 +115,6 @@ public interface ISysDeptService { */ int deleteDeptById(Long deptId); - Long selectIdBuName(String deptName); + Long selectIdByName(String deptName); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index cf0c23b..73b4a01 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -156,6 +156,7 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService { return String.join(StringUtils.SEPARATOR, list); } + /** * 根据ID查询所有子部门数(正常状态) * @@ -325,8 +326,9 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService { return baseMapper.deleteById(deptId); } + @Cacheable(cacheNames = CacheNames.SYS_DEPT_NAME, key = "#deptName") @Override - public Long selectIdBuName(String deptName) { + public Long selectIdByName(String deptName) { SysDept sysDept = baseMapper.selectOne(new LambdaQueryWrapper().select(SysDept::getDeptId).eq(SysDept::getDeptName, deptName)); return sysDept.getDeptId(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index d9b4573..08d85e6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -62,7 +62,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService { @Override public TableDataInfo selectPageUserList(SysUserBo user, PageQuery pageQuery) { - //user.setUserType(UserType.STUDENT.getUserType()); Page page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user)); return TableDataInfo.build(page); }