From 9a9b74378d34a8fded749aa0a748da4c8cf0df01 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 11 四月 2024 18:09:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java | 55 +++++++++++++++++ ycl-server/src/main/java/com/ycl/system/mapper/SysUserMapper.java | 7 ++ ycl-server/src/main/java/com/ycl/system/mapper/SysUserRoleMapper.java | 7 ++ ycl-server/src/main/java/com/ycl/platform/controller/YwUnitController.java | 14 +--- ycl-server/src/main/java/com/ycl/platform/service/impl/YwPeopleServiceImpl.java | 25 +++++++- ycl-server/src/main/resources/mapper/system/SysUserRoleMapper.xml | 7 ++ ycl-server/src/main/java/com/ycl/platform/controller/YwPeopleController.java | 14 +--- ycl-server/src/main/resources/mapper/system/SysRoleMapper.xml | 8 ++ ycl-server/src/main/resources/mapper/system/SysUserMapper.xml | 9 ++ ycl-server/src/main/java/com/ycl/system/mapper/SysRoleMapper.java | 8 ++ 10 files changed, 128 insertions(+), 26 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/YwPeopleController.java b/ycl-server/src/main/java/com/ycl/platform/controller/YwPeopleController.java index 46900da..8d6617a 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/YwPeopleController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/YwPeopleController.java @@ -5,6 +5,8 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import lombok.RequiredArgsConstructor; + +import java.util.Arrays; import java.util.List; import jakarta.validation.constraints.NotEmpty; import io.swagger.annotations.Api; @@ -42,16 +44,10 @@ return ywPeopleService.update(form); } - @DeleteMapping("/{id}") - @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎") - public Result removeById(@PathVariable("id") String id) { - return ywPeopleService.removeById(id); - } - - @DeleteMapping("/batch") + @DeleteMapping("/{ids}") @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎") - public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) { - return ywPeopleService.remove(ids); + public Result remove(@PathVariable String ids) { + return ywPeopleService.remove(Arrays.asList(ids.split(","))); } // @PreAuthorize("@ss.hasPermi('unit:people:page')") diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/YwUnitController.java b/ycl-server/src/main/java/com/ycl/platform/controller/YwUnitController.java index 7bda29c..0c01b88 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/YwUnitController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/YwUnitController.java @@ -14,6 +14,8 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import lombok.RequiredArgsConstructor; + +import java.util.Arrays; import java.util.List; import jakarta.validation.constraints.NotEmpty; @@ -48,16 +50,10 @@ return ywUnitService.update(form); } - @DeleteMapping("/{id}") - @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎") - public Result removeById(@PathVariable("id") String id) { - return ywUnitService.removeById(id); - } - - @DeleteMapping("/batch") + @DeleteMapping("/{ids}") @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎") - public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) { - return ywUnitService.remove(ids); + public Result remove(@PathVariable String ids) { + return ywUnitService.remove(Arrays.asList(ids.split(","))); } // @PreAuthorize("@ss.hasPermi('unit:list')") diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPeopleServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPeopleServiceImpl.java index 52a2c6b..a362ac8 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPeopleServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwPeopleServiceImpl.java @@ -10,12 +10,19 @@ import com.ycl.platform.domain.form.YwPeopleForm; import com.ycl.platform.domain.vo.YwPeopleVO; import com.ycl.platform.domain.query.YwPeopleQuery; + +import java.util.Collections; import java.util.List; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ycl.system.domain.SysUserRole; +import com.ycl.system.entity.SysRole; import com.ycl.system.entity.SysUser; +import com.ycl.system.mapper.SysRoleMapper; import com.ycl.system.mapper.SysUserMapper; +import com.ycl.system.mapper.SysUserRoleMapper; import com.ycl.system.page.PageUtil; +import com.ycl.utils.SecurityUtils; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; import org.springframework.beans.BeanUtils; @@ -41,8 +48,9 @@ private final YwPeopleMapper ywPeopleMapper; private final YwUnitMapper ywUnitMapper; - private final PasswordEncoder passwordEncoder; private final SysUserMapper sysUserMapper; + private final SysUserRoleMapper sysUserRoleMapper; + private final SysRoleMapper sysRoleMapper; /** * 娣诲姞 @@ -56,6 +64,14 @@ SysUser sysUser = new SysUser(); fullUser(sysUser, form); sysUserMapper.insertUser(sysUser); + // 鑾峰彇杩愮淮浜哄憳瑙掕壊 + SysRole sysRole = sysRoleMapper.selectRoleByKey("yw_user"); + if (Objects.isNull(sysRole)) { return Result.error("杩愮淮瑙掕壊涓嶅瓨鍦�"); } + // 缁戝畾璐﹀彿瑙掕壊鍏崇郴 + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(sysRole.getRoleId()); + sysUserRole.setUserId(sysUser.getUserId()); + sysUserRoleMapper.batchUserRole(Collections.singletonList(sysUserRole)); YwPeople entity = YwPeopleForm.getEntityByForm(form, null); entity.setUserId(sysUser.getUserId()); @@ -73,7 +89,7 @@ */ public void fullUser(SysUser sysUser, YwPeopleForm form) { sysUser.setUserName(form.getYwPersonAccount()); - sysUser.setPassword(passwordEncoder.encode("123456")); + sysUser.setPassword(SecurityUtils.encryptPassword("123456")); sysUser.setStatus("0"); sysUser.setDelFlag("0"); sysUser.setFirstLogin((short) 0); @@ -119,7 +135,10 @@ .list(); List<Long> userIds = list.stream().map(YwPeople::getUserId).collect(Collectors.toList()); baseMapper.deleteBatchIds(ids); - sysUserMapper.deleteUserByIds((Long[]) userIds.toArray()); + if (!userIds.isEmpty()) { + sysUserRoleMapper.deleteUserRoleByUserIds(userIds); + sysUserMapper.deleteUserByIds(userIds.toArray(new Long[0])); + } return Result.ok("鍒犻櫎鎴愬姛"); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java index 8f9d143..c91c0e6 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java @@ -1,7 +1,9 @@ package com.ycl.platform.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -12,12 +14,20 @@ import com.ycl.platform.domain.vo.YwUnitVO; import com.ycl.system.Result; import com.ycl.platform.mapper.YwUnitMapper; +import com.ycl.system.domain.SysUserRole; +import com.ycl.system.entity.SysRole; +import com.ycl.system.entity.SysUser; +import com.ycl.system.mapper.SysRoleMapper; +import com.ycl.system.mapper.SysUserMapper; +import com.ycl.system.mapper.SysUserRoleMapper; import com.ycl.system.page.PageUtil; import com.ycl.platform.service.YwUnitService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.utils.DateUtils; +import com.ycl.utils.SecurityUtils; import org.springframework.stereotype.Service; import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.Objects; @@ -37,6 +47,9 @@ public class YwUnitServiceImpl extends ServiceImpl<YwUnitMapper, YwUnit> implements YwUnitService { private final YwUnitMapper ywUnitMapper; + private final SysUserMapper sysUserMapper; + private final SysUserRoleMapper sysUserRoleMapper; + private final SysRoleMapper sysRoleMapper; /** * 娣诲姞 @@ -44,10 +57,26 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result add(YwUnitForm form) { - // todo 澧炲姞瀵瑰簲璐﹀彿 YwUnit entity = YwUnitForm.getEntityByForm(form, null); if(baseMapper.insert(entity) > 0) { + // 鏂板杩愮淮浜哄憳璐﹀彿 + SysUser sysUser = new SysUser(); + sysUser.setDeptId(null); + sysUser.setUserName(entity.getUnitAdminAccount()); + sysUser.setNickName(entity.getUnitContact()); + sysUser.setPhonenumber(entity.getUnitContactPhone()); + sysUser.setPassword(SecurityUtils.encryptPassword("123456")); + sysUserMapper.insertUser(sysUser); + // 鑾峰彇杩愮淮浜哄憳瑙掕壊 + SysRole sysRole = sysRoleMapper.selectRoleByKey("yw_user"); + if (Objects.isNull(sysRole)) { return Result.error("杩愮淮瑙掕壊涓嶅瓨鍦�"); } + // 缁戝畾璐﹀彿瑙掕壊鍏崇郴 + SysUserRole sysUserRole = new SysUserRole(); + sysUserRole.setRoleId(sysRole.getRoleId()); + sysUserRole.setUserId(sysUser.getUserId()); + sysUserRoleMapper.batchUserRole(Collections.singletonList(sysUserRole)); return Result.ok("娣诲姞鎴愬姛"); } return Result.error("娣诲姞澶辫触"); @@ -59,14 +88,21 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result update(YwUnitForm form) { - // todo 淇敼瀵瑰簲璐﹀彿 YwUnit entity = baseMapper.selectById(form.getId()); // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); BeanUtils.copyProperties(form, entity); if (baseMapper.updateById(entity) > 0) { + // 淇敼杩愮淮鍗曚綅璐﹀彿淇℃伅 + SysUser sysUser = sysUserMapper.selectUserByUserName(entity.getUnitAdminAccount()); + if (Objects.nonNull(sysUser)) { + sysUser.setPhonenumber(entity.getUnitContactPhone()); + sysUser.setNickName(entity.getUnitContact()); + sysUserMapper.updateUser(sysUser); + } return Result.ok("淇敼鎴愬姛"); } return Result.error("淇敼澶辫触"); @@ -78,7 +114,16 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public Result remove(List<String> ids) { + List<Long> userIds = sysUserMapper.selectUserIdByNames( + baseMapper.selectList( + new LambdaQueryWrapper<YwUnit>().in(YwUnit::getId, ids)) + .stream().map(YwUnit::getUnitAdminAccount).toList()); + if (!userIds.isEmpty()) { + sysUserMapper.deleteUserByIds(userIds.toArray(new Long[0])); + sysUserRoleMapper.deleteUserRoleByUserIds(userIds); + } if(baseMapper.deleteBatchIds(ids) > 0) { return Result.ok("鍒犻櫎鎴愬姛"); } @@ -92,6 +137,12 @@ */ @Override public Result removeById(String id) { + // 鍒犻櫎杩愮淮浜哄憳璐﹀彿 + SysUser sysUser = sysUserMapper.selectUserByUserName(baseMapper.selectById(id).getUnitAdminAccount()); + if (Objects.nonNull(sysUser)) { + sysUserRoleMapper.deleteUserRoleByUserId(sysUser.getUserId()); + sysUserMapper.deleteUserById(sysUser.getUserId()); + } if(baseMapper.deleteById(id) > 0) { return Result.ok("鍒犻櫎鎴愬姛"); } diff --git a/ycl-server/src/main/java/com/ycl/system/mapper/SysRoleMapper.java b/ycl-server/src/main/java/com/ycl/system/mapper/SysRoleMapper.java index a13df4b..eb620c0 100644 --- a/ycl-server/src/main/java/com/ycl/system/mapper/SysRoleMapper.java +++ b/ycl-server/src/main/java/com/ycl/system/mapper/SysRoleMapper.java @@ -1,5 +1,6 @@ package com.ycl.system.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ycl.system.entity.SysRole; import org.apache.ibatis.annotations.Mapper; @@ -107,4 +108,11 @@ * @return 缁撴灉 */ public int deleteRoleByIds(Long[] roleIds); + + /** + * 鏍规嵁瑙掕壊缂栫爜鏌ヨ瑙掕壊 + * @param roleKey 瑙掕壊缂栫爜 + * @return 瑙掕壊 + */ + SysRole selectRoleByKey(String roleKey); } diff --git a/ycl-server/src/main/java/com/ycl/system/mapper/SysUserMapper.java b/ycl-server/src/main/java/com/ycl/system/mapper/SysUserMapper.java index f34637a..d101871 100644 --- a/ycl-server/src/main/java/com/ycl/system/mapper/SysUserMapper.java +++ b/ycl-server/src/main/java/com/ycl/system/mapper/SysUserMapper.java @@ -127,4 +127,11 @@ * @return 缁撴灉 */ public SysUser checkEmailUnique(String email); + + /** + * 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴穒d + * @param names 鐢ㄦ埛鍚� + * @return 鐢ㄦ埛id + */ + List<Long> selectUserIdByNames(List<String> names); } diff --git a/ycl-server/src/main/java/com/ycl/system/mapper/SysUserRoleMapper.java b/ycl-server/src/main/java/com/ycl/system/mapper/SysUserRoleMapper.java index 22f6c7c..936b6d2 100644 --- a/ycl-server/src/main/java/com/ycl/system/mapper/SysUserRoleMapper.java +++ b/ycl-server/src/main/java/com/ycl/system/mapper/SysUserRoleMapper.java @@ -64,4 +64,11 @@ public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); void exchange(@Param("roleId")Integer roleId,@Param("userId") Long userId); + + /** + * 鏍规嵁鐢ㄦ埛id鎵归噺鍒犻櫎 + * @param userIds 鐢ㄦ埛缂栧彿 + * @return 鎿嶄綔缁撴灉 + */ + int deleteUserRoleByUserIds(List<Long> userIds); } diff --git a/ycl-server/src/main/resources/mapper/system/SysRoleMapper.xml b/ycl-server/src/main/resources/mapper/system/SysRoleMapper.xml index 86adbf5..d1a41e8 100644 --- a/ycl-server/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ycl-server/src/main/resources/mapper/system/SysRoleMapper.xml @@ -92,8 +92,12 @@ <include refid="selectRoleVo"/> where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 </select> - - <insert id="insertRole" parameterType="com.ycl.system.entity.SysRole" useGeneratedKeys="true" keyProperty="roleId"> + + <select id="selectRoleByKey" resultType="com.ycl.system.entity.SysRole"> + select * from sys_role where role_key = #{roleKey} and del_flag = '0' limit 1 + </select> + + <insert id="insertRole" parameterType="com.ycl.system.entity.SysRole" useGeneratedKeys="true" keyProperty="roleId"> insert into sys_role( <if test="roleId != null and roleId != 0">role_id,</if> <if test="roleName != null and roleName != ''">role_name,</if> diff --git a/ycl-server/src/main/resources/mapper/system/SysUserMapper.xml b/ycl-server/src/main/resources/mapper/system/SysUserMapper.xml index b61b865..194c2b2 100644 --- a/ycl-server/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ycl-server/src/main/resources/mapper/system/SysUserMapper.xml @@ -142,7 +142,14 @@ <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 </select> - + + <select id="selectUserIdByNames" resultType="java.lang.Long"> + select user_id from sys_user where user_name in + <foreach item="item" index="index" collection="names" open="(" separator="," close=")"> + #{item} + </foreach> + </select> + <insert id="insertUser" parameterType="com.ycl.system.entity.SysUser" useGeneratedKeys="true" keyProperty="userId"> insert into sys_user( <if test="userId != null and userId != 0">user_id,</if> diff --git a/ycl-server/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ycl-server/src/main/resources/mapper/system/SysUserRoleMapper.xml index 7a5c65a..8e079e5 100644 --- a/ycl-server/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/ycl-server/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -41,4 +41,11 @@ #{userId} </foreach> </delete> + + <delete id="deleteUserRoleByUserIds"> + delete from sys_user_role where user_id in + <foreach collection="userIds" item="userId" open="(" separator="," close=")"> + #{userId} + </foreach> + </delete> </mapper> \ No newline at end of file -- Gitblit v1.8.0