From f284c5ef6a1aa6e9ba5d4e94e4b2abe83b6ea18c Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 31 七月 2024 14:54:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 113 insertions(+), 4 deletions(-) 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 89b1ced..4ffd0d0 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,20 +1,34 @@ 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; +import com.ycl.platform.base.BaseSelect; import com.ycl.platform.domain.entity.YwUnit; import com.ycl.platform.domain.form.YwUnitForm; import com.ycl.platform.domain.query.YwUnitQuery; 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.model.LoginUser; 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; @@ -34,6 +48,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; /** * 娣诲姞 @@ -41,10 +58,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("娣诲姞澶辫触"); @@ -56,14 +89,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("淇敼澶辫触"); @@ -75,7 +115,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("鍒犻櫎鎴愬姛"); } @@ -89,6 +138,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("鍒犻櫎鎴愬姛"); } @@ -142,11 +197,65 @@ @Override public Result all() { List<YwUnit> entities = baseMapper.selectList(null); - List<YwUnitVO> vos = entities.stream() + + List<BaseSelect> vos = entities.stream() + .map( + entity -> { + BaseSelect baseSelect = new BaseSelect(); + baseSelect.setId(entity.getId()); + baseSelect.setValue(entity.getUnitName()); + return baseSelect; + } + ) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } + + @Override + public Result workList() { + List<YwUnitVO> entities = baseMapper.workList(); + return Result.ok().data(entities); + } + + @Override + public void setUnitInfo(LoginUser loginUser) { + // 鍗曚綅绠$悊鍛樻煡璇� + YwUnit unit = new LambdaQueryChainWrapper<>(baseMapper) + .eq(YwUnit::getUnitAdminAccount, loginUser.getUsername()) + .one(); + if (Objects.nonNull(unit)) { + loginUser.setUnitAdmin(Boolean.TRUE); + loginUser.setUnitId(unit.getId()); + } else { + unit = baseMapper.getByUserId(loginUser.getUserId()); + if (Objects.nonNull(unit)) { + loginUser.setUnitAdmin(Boolean.FALSE); + loginUser.setUnitId(unit.getId()); + } + else { + loginUser.setUnitAdmin(Boolean.FALSE); + } + } + } + + @Override + public List<YwUnitVO> export(YwUnitQuery query) { + // 鍒嗛〉鏉′欢鏌ヨ浣� + IPage<YwUnit> page = new LambdaQueryChainWrapper<>(baseMapper) + .eq(StringUtils.hasText(query.getUnitCode()), YwUnit::getUnitCode, query.getUnitCode()) + .like(StringUtils.hasText(query.getUnitName()), YwUnit::getUnitName, query.getUnitName()) + .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()), + YwUnit::getCreateTime, + DateUtils.getDayStart(query.getStart()), + DateUtils.getDayEnd(query.getEnd())) + .orderByDesc(YwUnit::getCreateTime) + .page(PageUtil.getPage(query, YwUnit.class)); + + List<YwUnitVO> vos = page.getRecords().stream() .map( entity -> YwUnitVO.getVoByEntity(entity, null) ) .collect(Collectors.toList()); - return Result.ok().data(vos); + return vos; } } -- Gitblit v1.8.0