|
@@ -1,10 +1,37 @@
|
|
|
package com.xy.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.xy.dto.SysWorkUser.AddDto;
|
|
|
+import com.xy.dto.SysWorkUser.PageDto;
|
|
|
+import com.xy.dto.SysWorkUser.UpdateDto;
|
|
|
+import com.xy.entity.SysUserDept;
|
|
|
+import com.xy.entity.SysUserRole;
|
|
|
import com.xy.entity.SysWorkUser;
|
|
|
import com.xy.mapper.SysWorkUserMapper;
|
|
|
+import com.xy.service.SysUserDeptService;
|
|
|
+import com.xy.service.SysUserRoleService;
|
|
|
import com.xy.service.SysWorkUserService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.xy.utils.Beans;
|
|
|
+import com.xy.utils.PageBean;
|
|
|
+import com.xy.utils.R;
|
|
|
+import com.xy.utils.SaTokenUtils;
|
|
|
+import com.xy.vo.SysWorkUserVo;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import static com.xy.utils.PlusBeans.toIPage;
|
|
|
+import static com.xy.utils.PlusBeans.toPageBean;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -14,7 +41,84 @@ import org.springframework.stereotype.Service;
|
|
|
* @author lijin
|
|
|
* @since 2022-12-09
|
|
|
*/
|
|
|
+@Api(tags = "业务用户管理")
|
|
|
+@RequiredArgsConstructor
|
|
|
@Service
|
|
|
public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWorkUser> implements SysWorkUserService {
|
|
|
|
|
|
+ private final SysUserRoleService sysUserRoleService;
|
|
|
+ private final SysUserDeptService sysUserDeptService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<Boolean> add(AddDto addDto) {
|
|
|
+ SysWorkUser sysWorkUser = Beans.copy(SysWorkUser.class, addDto).create(Long.parseLong(SaTokenUtils.getId().toString()));
|
|
|
+ //新增业务用户
|
|
|
+ save(sysWorkUser);
|
|
|
+ List<Long> roleIds = addDto.getRoleIds();
|
|
|
+ if (CollUtil.isNotEmpty(roleIds)) {
|
|
|
+ List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole()
|
|
|
+ .setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
|
|
|
+ //保存用户角色绑定信息
|
|
|
+ sysUserRoleService.saveBatch(sysUserRoleList);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> deptIds = addDto.getDeptIds();
|
|
|
+ if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
+ //关联部门
|
|
|
+ List<SysUserDept> sysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept()
|
|
|
+ .setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
|
|
|
+ //保存用户部门 绑定信息
|
|
|
+ sysUserDeptService.saveBatch(sysUserDeptList);
|
|
|
+ }
|
|
|
+ return R.ok(Boolean.TRUE);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<Boolean> update(UpdateDto updateDto) {
|
|
|
+ SysWorkUser sysWorkUser = Beans.copy(SysWorkUser.class, updateDto).update(Long.parseLong(SaTokenUtils.getId().toString()));
|
|
|
+ List<Long> roleIds = updateDto.getRoleIds();
|
|
|
+ if (CollUtil.isNotEmpty(roleIds)) {
|
|
|
+ List<SysUserRole> surList = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery()
|
|
|
+ .eq(SysUserRole::getWorkUserId, sysWorkUser.getId())
|
|
|
+ .eq(SysUserRole::getSysId, sysWorkUser.getSysId()));
|
|
|
+
|
|
|
+ if (CollUtil.isNotEmpty(surList)) {
|
|
|
+ removeBatchByIds(surList);
|
|
|
+ List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole()
|
|
|
+ .setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
|
|
|
+ //保存用户角色绑定信息
|
|
|
+ sysUserRoleService.saveBatch(sysUserRoleList);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新用户信息
|
|
|
+ updateById(sysWorkUser);
|
|
|
+ List<Long> deptIds = updateDto.getDeptIds();
|
|
|
+ if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
+ List<SysUserDept> sysUserDeptList = sysUserDeptService.list(Wrappers.<SysUserDept>lambdaQuery()
|
|
|
+ .eq(SysUserDept::getWorkUserId, sysWorkUser.getId())
|
|
|
+ .eq(SysUserDept::getSysId, sysWorkUser.getSysId()));
|
|
|
+ if (CollUtil.isNotEmpty(sysUserDeptList)) {
|
|
|
+ removeBatchByIds(sysUserDeptList);
|
|
|
+ List<SysUserDept> newSysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept()
|
|
|
+ .setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
|
|
|
+ sysUserDeptService.saveBatch(newSysUserDeptList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok(Boolean.TRUE);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<PageBean<SysWorkUserVo>> page(PageDto dto) {
|
|
|
+ IPage<SysWorkUser> page = page(toIPage(dto.getPage()), Wrappers.<SysWorkUser>lambdaQuery()
|
|
|
+ .eq(SysWorkUser::getSysId, dto.getSysId())
|
|
|
+ .eq(StrUtil.isNotBlank(dto.getAccount()), SysWorkUser::getAccount, dto.getAccount())
|
|
|
+ .eq(StrUtil.isNotBlank(dto.getEmail()), SysWorkUser::getEmail, dto.getEmail())
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dto.getStatus()), SysWorkUser::getStatus, dto.getStatus())
|
|
|
+ );
|
|
|
+ return R.ok(toPageBean(SysWorkUserVo.class, page));
|
|
|
+ }
|
|
|
}
|