From b0402b407292f0708a1684cc0ca1d5e2d890b753 Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期一, 24 六月 2024 15:12:39 +0800 Subject: [PATCH] 多机构管理,问题修改 --- project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java | 1 project-report/src/main/java/com/project/report/service/IReportService.java | 2 project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java | 45 +++++ project-system/src/main/resources/mapper/system/SysUserMapper.xml | 6 project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java | 4 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java | 100 ++++++++++++ project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java | 56 +++++++ project-report/src/main/resources/mapper/report/ReportMapper.xml | 14 project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java | 18 ++ project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java | 88 +++++++++- project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java | 12 project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java | 8 project-system/src/main/java/com/project/system/service/ISysUserService.java | 24 +++ project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java | 20 ++ project-system/src/main/java/com/project/system/service/ISysUserDeptService.java | 17 ++ project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java | 19 ++ 16 files changed, 401 insertions(+), 33 deletions(-) diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java index cbf117c..b00888e 100644 --- a/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java +++ b/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -55,7 +56,12 @@ @RepeatSubmit public AjaxResult export(SysCompanyQueryBo bo) { - List<SysCompanyVo> list = iSysCompanyService.queryList(bo); + List<SysCompanyVo> list; + if (bo==null){ + list = new ArrayList<>(); + } else { + list = iSysCompanyService.queryList(bo); + } ExcelUtil<SysCompanyVo> util = new ExcelUtil<>(SysCompanyVo.class); return util.exportExcel(list, "浼佷笟淇℃伅"); } diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java index f1c3f6d..3175f4f 100644 --- a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java +++ b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java @@ -12,10 +12,11 @@ import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; import com.project.common.utils.poi.ExcelUtil; -import com.project.system.service.ISysDeptService; -import com.project.system.service.ISysPostService; -import com.project.system.service.ISysRoleService; -import com.project.system.service.ISysUserService; +import com.project.system.domain.bo.editBo.UserDeptBo; +import com.project.system.domain.vo.SysUserVo; +import com.project.system.service.*; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ArrayUtils; import org.springframework.security.access.prepost.PreAuthorize; @@ -41,6 +42,7 @@ private final ISysRoleService roleService; private final ISysDeptService deptService; private final ISysPostService postService; + private final ISysUserDeptService userDeptService; /** * 鑾峰彇鐢ㄦ埛鍒楄〃 @@ -64,6 +66,8 @@ util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁"); } + + @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT) @PreAuthorize("@ss.hasPermi('system:user:import')") @PostMapping("/importData") @@ -76,12 +80,7 @@ return success(message); } - @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) - { - ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class); - util.importTemplateExcel(response, "鐢ㄦ埛鏁版嵁"); - } + /** * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅 @@ -210,6 +209,37 @@ return toAjax(userService.resetPwd(user)); } + @ApiOperation("鐢ㄦ埛澶氭満鏋勨�斺�斿洖鏄�") + @GetMapping("/batchUserDeptView") + public AjaxResult batchUserDeptView(@RequestParam("userId") Long userId) + { + return AjaxResult.success(userDeptService.batchUserDeptView(userId)); + } + + @ApiOperation("鐢ㄦ埛澶氭満鏋勨�斺�斾繚瀛�") + @Log(title = "鐢ㄦ埛澶氭満鏋勪繚瀛�", businessType = BusinessType.UPDATE) + @PostMapping("/batchUserDeptSave") + public AjaxResult batchUserDeptSave(@RequestBody UserDeptBo bo) + { + return AjaxResult.success(userDeptService.batchUserDeptSave(bo)); + } + + @ApiOperation("浼佷笟鐢ㄦ埛閲嶇疆瀵嗙爜") + @Log(title = "浼佷笟鐢ㄦ埛閲嶇疆瀵嗙爜", businessType = BusinessType.UPDATE) + @PostMapping("/resetCompanyUserPwd") + public AjaxResult resetCompanyUserPwd(@RequestParam("companyId") Long companyId,@RequestParam("newPassword") String newPassword) + { + SysUser user = userService.list(userService.lq().eq(SysUser::getDeptId, companyId)).get(0); + if (user==null) { + return AjaxResult.error("娌℃湁璇ヤ紒涓氬搴旇处鎴�"); + } + if (userService.resetUserPwd(user.getUserName(), SecurityUtils.encryptPassword(newPassword), newPassword) > 0) + { + return success(); + } + return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + /** * 鐘舵�佷慨鏀� */ @@ -261,4 +291,42 @@ { return success(deptService.selectDeptTreeList(dept)); } + + + @ApiOperation("鐢ㄦ埛妯℃澘涓嬭浇") + @GetMapping("/exportTemplate") + public AjaxResult exportTemplate() + { + ExcelUtil<SysUserVo> util = new ExcelUtil<>(SysUserVo.class); + return util.exportExcel(null, "鐢ㄦ埛淇℃伅妯℃澘"); + } + + @ApiOperation(value = "澶勭悊瀵煎叆淇℃伅") + @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅澶勭悊" , businessType = BusinessType.OTHER) + @ApiImplicitParam(value = "鐢ㄦ埛淇℃伅", name = "file", dataType = "file", dataTypeClass = MultipartFile.class) + @PostMapping("/doImport") + public AjaxResult doImport(@RequestPart(value = "file") MultipartFile file, @RequestParam("deptId") Long deptId) throws Exception + { + + ExcelUtil<SysUserVo> util = new ExcelUtil<>(SysUserVo.class); + List<SysUserVo> list = util.importExcel(file.getInputStream()); + return AjaxResult.success(userService.doImport(list, deptId)); + } + +// @ApiOperation(value = "鏍¢獙瀵煎叆淇℃伅") +// @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅鏍¢獙" , businessType = BusinessType.OTHER) +// @PostMapping("/checkImport") +// public AjaxResult checkImport(@RequestBody SysCompanyResultVo resultVo) +// { +// return AjaxResult.success(userService.checkImport(resultVo)); +// } +// +// @ApiOperation(value = "淇濆瓨瀵煎叆淇℃伅") +// @Log(title = "瀵煎叆鐢ㄦ埛淇℃伅淇濆瓨" , businessType = BusinessType.IMPORT) +// @PostMapping("/saveImport") +// public AjaxResult saveImport(@RequestBody SysCompanyResultVo resultVo) +// { +// return toAjax(userService.saveImport(resultVo) ? 1 : 0); +// } + } diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java index cf78f03..880ea1d 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java @@ -80,6 +80,7 @@ order.setCheckStatus(-1); //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇� smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus()); + orderService.updateById(order); } else { List<String> phones = orderService.getCheckPhones(order.getCheckLevel()+1, order.getApplyDeptId()); if (StringUtils.isNotEmpty(phones)){ diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java index ecc19c3..aca4fe8 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java @@ -126,12 +126,12 @@ { SysUser loginUser = SecurityUtils.getLoginUser().getUser(); bo.setCheckIds(loginUser.getPhonenumber()); - List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId()); - if (StringUtils.isNotEmpty(deptIds)){ - bo.setApplyDeptIds(deptIds); - } else { - bo.setApplyDeptIds(null); - } +// List<Long> deptIds = deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId()); +// if (StringUtils.isNotEmpty(deptIds)){ +// bo.setApplyDeptIds(deptIds); +// } else { +// bo.setApplyDeptIds(null); +// } return this.baseMapper.selectCheckList(bo); } diff --git a/project-report/src/main/java/com/project/report/service/IReportService.java b/project-report/src/main/java/com/project/report/service/IReportService.java index 0a89986..85a9234 100644 --- a/project-report/src/main/java/com/project/report/service/IReportService.java +++ b/project-report/src/main/java/com/project/report/service/IReportService.java @@ -59,7 +59,7 @@ List<KeyVal> getComplaintStatusCount(ReportQueryBo bo); /** - * 鎵ф硶绫诲瀷鍗犳瘮 + * 鎶曡瘔绫诲瀷鍗犳瘮 * @param bo 骞存湀 * @return 鎵ф硶绫诲瀷鍗犳瘮 */ diff --git a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java index 2023958..c8fa078 100644 --- a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java +++ b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java @@ -164,10 +164,10 @@ { return dictDataList.stream().map(e -> { KeyVal keyVal; - if (resultMap.get(e.getDictValue()) == null) { + if (resultMap.get(e.getDictCode().toString()) == null) { keyVal = new KeyVal(e.getDictLabel(), 0); } else { - keyVal = new KeyVal(e.getDictLabel(), resultMap.get(e.getDictValue())); + keyVal = new KeyVal(e.getDictLabel(), resultMap.get(e.getDictCode().toString())); } return keyVal; }).collect(Collectors.toList()); diff --git a/project-report/src/main/resources/mapper/report/ReportMapper.xml b/project-report/src/main/resources/mapper/report/ReportMapper.xml index b541a58..c68d466 100644 --- a/project-report/src/main/resources/mapper/report/ReportMapper.xml +++ b/project-report/src/main/resources/mapper/report/ReportMapper.xml @@ -14,7 +14,7 @@ from enforce_order where 1=1 <if test="deptId != null "> - AND apply_dept_id = #{deptId} + AND check_dept_id = #{deptId} </if> <if test="beginTime!=null and beginTime!=''"> AND apply_time >= #{beginTime} @@ -92,15 +92,15 @@ from enforce_complaint_log where 1=1 <if test="beginTime!=null and beginTime!=''"> - AND apply_time >= #{beginTime} + AND complaint_time >= #{beginTime} </if> <if test="endTime!=null and endTime!=''"> - AND apply_time <= #{endTime} + AND complaint_time <= #{endTime} </if> GROUP BY k </select> - <!-- 鎵ф硶绫诲瀷鍒嗗竷--> + <!-- 鎶曡瘔绫诲瀷鍒嗗竷--> <select id="getComplaintTypeCount" parameterType="com.project.report.domain.bo.query.ReportQueryBo" resultType="com.project.common.vo.KeyVal"> @@ -110,12 +110,12 @@ from enforce_complaint_log where 1=1 <if test="beginTime!=null and beginTime!=''"> - AND apply_time >= #{beginTime} + AND complaint_time >= #{beginTime} </if> <if test="endTime!=null and endTime!=''"> - AND apply_time <= #{endTime} + AND complaint_time <= #{endTime} </if> - <if test="doComplaint!=null "> + <if test="doComplaint != null "> <if test="doComplaint == 0 "> AND complaint_status = 0 </if> diff --git a/project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java b/project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java new file mode 100644 index 0000000..223b1ac --- /dev/null +++ b/project-system/src/main/java/com/project/system/domain/bo/editBo/UserDeptBo.java @@ -0,0 +1,19 @@ +package com.project.system.domain.bo.editBo; + +import lombok.Data; + +import java.util.List; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + +@Data +public class UserDeptBo +{ + private Long userId; + private List<Long> deptIds; +} diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java new file mode 100644 index 0000000..838c52a --- /dev/null +++ b/project-system/src/main/java/com/project/system/domain/vo/SysUserResultVo.java @@ -0,0 +1,20 @@ +package com.project.system.domain.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.List; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + +@Data +@ApiModel("鐢ㄦ埛淇℃伅瑙嗗浘瀵硅薄") +public class SysUserResultVo +{ + private List<SysUserVo> voList; +} diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java new file mode 100644 index 0000000..01ef4bf --- /dev/null +++ b/project-system/src/main/java/com/project/system/domain/vo/SysUserVo.java @@ -0,0 +1,56 @@ +package com.project.system.domain.vo; + +import com.project.common.annotation.Excel; +import com.project.common.core.domain.model.ImportError; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + +@Data +public class SysUserVo +{ + + @Excel(name = "濮撳悕") + @ApiModelProperty("濮撳悕") + private String nickName; + + + @Excel(name = "褰掑睘閮ㄩ棬") + @ApiModelProperty("褰掑睘閮ㄩ棬") + private String deptName; + + @Excel(name = "鎵嬫満鍙�") + @ApiModelProperty("鎵嬫満鍙�") + private String phonenumber; + + @Excel(name = "鐢ㄦ埛閭") + @ApiModelProperty("鐢ㄦ埛閭") + private String email; + + @Excel(name = "鎬у埆") + @ApiModelProperty("鎬у埆") + private String sex; + + @Excel(name = "澶囨敞") + @ApiModelProperty("澶囨敞") + private String remark; + + @ApiModelProperty("閮ㄩ棬id") + private Long deptId; + + + @ApiModelProperty("鐢ㄦ埛id") + private Long userId; + + @ApiModelProperty("閿欒淇℃伅鏁版嵁") + private List<ImportError> errorList; + +} diff --git a/project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java b/project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java new file mode 100644 index 0000000..d411f0d --- /dev/null +++ b/project-system/src/main/java/com/project/system/domain/vo/UserDeptVo.java @@ -0,0 +1,18 @@ +package com.project.system.domain.vo; + +import lombok.Data; + +import java.util.List; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + +@Data +public class UserDeptVo { + private Long userId; + private List<Long> deptIds; +} diff --git a/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java b/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java index 3932764..8504b89 100644 --- a/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java +++ b/project-system/src/main/java/com/project/system/service/ISysUserDeptService.java @@ -2,13 +2,28 @@ import com.project.common.mybatis.IBaseService; import com.project.system.domain.SysUserDept; +import com.project.system.domain.bo.editBo.UserDeptBo; +import com.project.system.domain.vo.UserDeptVo; /** * 鐢ㄦ埛涓庨儴闂ㄥ叧鑱擲ervice鎺ュ彛 * * @author manton */ -public interface ISysUserDeptService extends IBaseService<SysUserDept> { +public interface ISysUserDeptService extends IBaseService<SysUserDept> +{ + /** + * 鐢ㄦ埛澶氱粨鏋勫洖鏄� + * @param userId 鐢ㄦ埛id + * @return 鍐呭 + */ + UserDeptVo batchUserDeptView(Long userId); + /** + * 鐢ㄦ埛澶氱粨鏋勪繚瀛� + * @param bo 鍙傛暟 + * @return 缁撴灉 + */ + Boolean batchUserDeptSave(UserDeptBo bo); } diff --git a/project-system/src/main/java/com/project/system/service/ISysUserService.java b/project-system/src/main/java/com/project/system/service/ISysUserService.java index d786b84..51f2c18 100644 --- a/project-system/src/main/java/com/project/system/service/ISysUserService.java +++ b/project-system/src/main/java/com/project/system/service/ISysUserService.java @@ -2,6 +2,8 @@ import com.project.common.core.domain.entity.SysUser; import com.project.common.mybatis.IBaseService; +import com.project.system.domain.vo.SysUserResultVo; +import com.project.system.domain.vo.SysUserVo; import java.util.List; @@ -230,4 +232,26 @@ * @return 缁撴灉 */ public int resetPhone(Long userId, String phone); + + /** + * 澶勭悊瀵煎叆淇℃伅 + * @param list 鏁版嵁 + * @param deptId 瀵煎叆閮ㄩ棬id + * @return 缁撴灉 + */ + SysUserResultVo doImport(List<SysUserVo> list, Long deptId); + + /** + * 鏍¢獙瀵煎叆淇℃伅 + * @param resultVo 鏁版嵁 + * @return 缁撴灉 + */ + SysUserResultVo checkImport(SysUserResultVo resultVo); + + /** + * 淇濆瓨瀵煎叆淇℃伅 + * @param resultVo 鏁版嵁 + * @return 缁撴灉 + */ + Boolean saveImport(SysUserResultVo resultVo); } diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java index 1a871f1..6a75b91 100644 --- a/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java +++ b/project-system/src/main/java/com/project/system/service/impl/SysUserDeptServiceImpl.java @@ -1,12 +1,21 @@ package com.project.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.project.common.exception.base.BaseException; +import com.project.common.utils.StringUtils; import com.project.system.domain.SysUserDept; +import com.project.system.domain.bo.editBo.UserDeptBo; +import com.project.system.domain.vo.UserDeptVo; import com.project.system.mapper.SysUserDeptMapper; import com.project.system.service.ISysUserDeptService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * 鐢ㄦ埛涓庨儴闂ㄥ叧鑱擲ervice涓氬姟灞傚鐞� @@ -18,4 +27,40 @@ public class SysUserDeptServiceImpl extends ServiceImpl<SysUserDeptMapper, SysUserDept> implements ISysUserDeptService { + /** + * 鐢ㄦ埛澶氭満鏋勫洖鏄� + * @param userId 鐢ㄦ埛id + * @return 鍐呭 + */ + @Override + public UserDeptVo batchUserDeptView(Long userId) + { + List<SysUserDept> list = this.list(lq().eq(SysUserDept::getUserId, userId)); + List<Long> deptIds = list.stream().map(SysUserDept::getDeptId).collect(Collectors.toList()); + UserDeptVo vo = new UserDeptVo(); + vo.setUserId(userId); + vo.setDeptIds(deptIds); + return vo; + } + + /** + * 鐢ㄦ埛澶氭満鏋勪繚瀛� + * @param bo 鍙傛暟 + * @return 缁撴灉 + */ + @Override + @Transactional + public Boolean batchUserDeptSave(UserDeptBo bo) + { + Long userId = bo.getUserId(); + if (userId==null || StringUtils.isEmpty(bo.getDeptIds())){ + throw new BaseException("鍙傛暟鏈夎锛�"); + } + this.remove(lq().eq(SysUserDept::getUserId, userId)); + List<SysUserDept> saveList = new ArrayList<>(); + for (Long deptId : bo.getDeptIds()) { + saveList.add(new SysUserDept().setUserId(userId).setDeptId(deptId)); + } + return this.saveBatch(saveList); + } } diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java index b002089..dfc53ff 100644 --- a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java +++ b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java @@ -4,18 +4,23 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.annotation.DataScope; import com.project.common.constant.UserConstants; +import com.project.common.core.domain.entity.SysDept; import com.project.common.core.domain.entity.SysRole; import com.project.common.core.domain.entity.SysUser; +import com.project.common.core.domain.model.ImportError; import com.project.common.exception.ServiceException; +import com.project.common.exception.base.BaseException; import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; import com.project.common.utils.bean.BeanValidators; import com.project.common.utils.spring.SpringUtils; -import com.project.system.domain.SysPost; -import com.project.system.domain.SysUserPost; -import com.project.system.domain.SysUserRole; +import com.project.system.domain.*; +import com.project.system.domain.vo.SysUserResultVo; +import com.project.system.domain.vo.SysUserVo; import com.project.system.mapper.*; import com.project.system.service.ISysConfigService; +import com.project.system.service.ISysDeptService; +import com.project.system.service.ISysUserDeptService; import com.project.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; @@ -47,6 +52,8 @@ private final SysUserRoleMapper userRoleMapper; private final SysUserPostMapper userPostMapper; private final ISysConfigService configService; + private final ISysUserDeptService userDeptService; + private final ISysDeptService deptService; protected final Validator validator; /** @@ -250,6 +257,10 @@ insertUserPost(user); // 鏂板鐢ㄦ埛涓庤鑹茬鐞� insertUserRole(user); + // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞� + if (!"02".equals(user.getUserType())){ + insertUserDept(user); + } return rows; } @@ -285,6 +296,10 @@ // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� insertUserPost(user); + // 鏂板鐢ㄦ埛涓庨儴闂ㄧ鐞� + if (!"02".equals(user.getUserType())){ + insertUserDept(user); + } return userMapper.updateUser(user); } @@ -372,6 +387,21 @@ public void insertUserRole(SysUser user) { this.insertUserRole(user.getUserId(), user.getRoleIds()); + } + + /** + * 鏂板鐢ㄦ埛閮ㄩ棬 + * + * @param user 鐢ㄦ埛瀵硅薄 + */ + public void insertUserDept(SysUser user) + { + userDeptService.remove(userDeptService.lq() + .eq(SysUserDept::getUserId, user.getUserId()) + .eq(SysUserDept::getDeptId, user.getDeptId()) + ); + SysUserDept userDept = new SysUserDept().setUserId(user.getUserId()).setDeptId(user.getDeptId()); + userDeptService.save(userDept); } /** @@ -556,4 +586,68 @@ public int resetPhone(Long userId, String phone) { return userMapper.resetPhone(userId, phone); } + + @Override + public SysUserResultVo doImport(List<SysUserVo> list, Long deptId) + { + if (list==null || list.size()<1){ + throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�"); + } + + SysUserResultVo resultVo = new SysUserResultVo(); + list.forEach(sysUserVo -> { + sysUserVo.setDeptId(deptId); + }); + resultVo.setVoList(list); + return this.checkImport(resultVo); + } + + @Override + public SysUserResultVo checkImport(SysUserResultVo resultVo) + { + if (resultVo==null || StringUtils.isEmpty(resultVo.getVoList())){ + throw new BaseException("鏈幏鍙栧埌瀵煎叆淇℃伅锛�"); + } + for (SysUserVo vo : resultVo.getVoList()) { + List<ImportError> errors = new ArrayList<>(); + validEntityBeforeImport(vo, errors); + vo.setErrorList(errors); + } + return resultVo; + } + + private void validEntityBeforeImport(SysUserVo entity, List<ImportError> errorList) + { + if (StringUtils.isEmpty(entity.getNickName())){ + errorList.add(new ImportError(0, "璇峰~濮撳悕锛�")); + } + if (StringUtils.isEmpty(entity.getDeptName())){ + errorList.add(new ImportError(1, "璇峰~鍐欓儴闂ㄤ俊鎭紒")); + } else { + SysDept sysDept = deptService.selectDeptById(entity.getDeptId()); + if (sysDept==null || !sysDept.getDeptName().equals(entity.getDeptName())){ + errorList.add(new ImportError(1, "閮ㄩ棬淇℃伅涓嶅尮閰嶏紒")); + } + } + if (StringUtils.isEmpty(entity.getPhonenumber())){ + errorList.add(new ImportError(2, "璇峰~鍐欐墜鏈哄彿锛�")); + } else { + SysUser user = this.selectUserByUserName(entity.getPhonenumber()); + if (user!=null){ + entity.setUserId(user.getUserId()); + } else { + SysUser check = new SysUser(); + check.setPhonenumber(entity.getPhonenumber()); + String s = checkPhoneUnique(check); + if (UserConstants.NOT_UNIQUE.equals(s)) { + errorList.add(new ImportError(2, "鎵嬫満鍙峰凡瀛樺湪锛�")); + } + } + } + } + + @Override + public Boolean saveImport(SysUserResultVo resultVo) { + return null; + } } diff --git a/project-system/src/main/resources/mapper/system/SysUserMapper.xml b/project-system/src/main/resources/mapper/system/SysUserMapper.xml index 3c80ddd..478a8c2 100644 --- a/project-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/project-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -249,11 +249,13 @@ select u.phonenumber from sys_user u join sys_user_role ur on u.user_id = ur.user_id - join sys_role r on r.role_id=ur.role_id + join sys_role r on r.role_id = ur.role_id + join sys_user_dept ud on u.user_id = ud.dept_id where u.user_type != '02' + and u.status='0' and r.role_key = #{roleKey} - and u.dept_id = #{deptId} + and ud.dept_id = #{deptId} </select> </mapper> -- Gitblit v1.9.1