提交 cd0f6937 authored 作者: hzh's avatar hzh

员工云上功能实现

上级 b811d8e9
package org.dromara.server.api.domain;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
......@@ -11,6 +12,7 @@ import java.io.Serializable;
* @desc 新增用户
**/
@Data
@Accessors(chain = true)
public class RemoteUser implements Serializable {
@Serial
......
......@@ -2,6 +2,7 @@ package org.dromara.server.dubbo;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.ys.config.Config;
......@@ -29,6 +30,7 @@ public class RemoteServerServiceImpl implements RemoteServerService {
private final BizUserMapper userMapper;
private final IOrgService orgService;
@GlobalTransactional(timeoutMills = 60000)
@Override
public boolean saveOrUpdateUser(RemoteUser user) {
String userNo = user.getTenantId() + "-" + user.getPhoneNumber();
......@@ -42,7 +44,7 @@ public class RemoteServerServiceImpl implements RemoteServerService {
entity.setUserName(user.getUserName());
entity.setIdCard(user.getIdCard());
entity.setPhonenumber(user.getPhoneNumber());
userMapper.insert(bz);
userMapper.insert(entity);
//新增用户
orgService.saveOrUpdateEmployee(Config.USE_ID,
new EditEmployeeModel()
......@@ -52,6 +54,7 @@ public class RemoteServerServiceImpl implements RemoteServerService {
.setLoginVip(Status.TRUE.getCode()));
} else {
//跟新
bz.setUserNo(userNo);
bz.setUserName(user.getUserName());
bz.setIdCard(user.getIdCard());
userMapper.updateById(bz);
......
......@@ -104,6 +104,11 @@
<artifactId>ruoyi-api-resource</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-api-server</artifactId>
</dependency>
</dependencies>
<build>
......
......@@ -2,6 +2,7 @@ package org.dromara.system.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysUserExportVo;
import org.dromara.system.domain.vo.SysUserVo;
......@@ -268,4 +269,11 @@ public interface ISysUserService {
*/
List<Long> selectUserIdsByRoleIds(List<Long> roleIds);
/**
* 保存或更新用户信息
*
* @param sysUser 用户信息
*/
void saveOrUpdateYsUser(SysUser sysUser);
}
......@@ -28,6 +28,7 @@ import org.dromara.system.domain.bo.SysTenantBo;
import org.dromara.system.domain.vo.SysTenantVo;
import org.dromara.system.mapper.*;
import org.dromara.system.service.ISysTenantService;
import org.dromara.system.service.ISysUserService;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
......@@ -55,6 +56,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
private final SysDictTypeMapper dictTypeMapper;
private final SysDictDataMapper dictDataMapper;
private final SysConfigMapper configMapper;
private final ISysUserService userService;
/**
* 查询租户
......@@ -156,6 +158,9 @@ public class SysTenantServiceImpl implements ISysTenantService {
user.setPassword(BCrypt.hashpw(bo.getPassword()));
user.setDeptId(deptId);
userMapper.insert(user);
userService.saveOrUpdateYsUser(user);
//新增系统用户后,默认当前用户为部门的负责人
SysDept sd = new SysDept();
sd.setLeader(user.getUserId());
......
......@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.constant.UserConstants;
import org.dromara.common.core.exception.ServiceException;
......@@ -23,6 +24,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.helper.DataBaseHelper;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.server.api.RemoteServerService;
import org.dromara.server.api.domain.RemoteUser;
import org.dromara.system.domain.*;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysPostVo;
......@@ -56,6 +59,8 @@ public class SysUserServiceImpl implements ISysUserService {
private final SysPostMapper postMapper;
private final SysUserRoleMapper userRoleMapper;
private final SysUserPostMapper userPostMapper;
@DubboReference
private RemoteServerService remoteServerService;
@Override
public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
......@@ -300,6 +305,7 @@ public class SysUserServiceImpl implements ISysUserService {
@Transactional(rollbackFor = Exception.class)
public int insertUser(SysUserBo user) {
SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
sysUser.setTenantId(LoginHelper.getTenantId());
// 新增用户信息
int rows = baseMapper.insert(sysUser);
user.setUserId(sysUser.getUserId());
......@@ -307,6 +313,8 @@ public class SysUserServiceImpl implements ISysUserService {
insertUserPost(user, false);
// 新增用户与角色管理
insertUserRole(user, false);
//保存用户信息
saveOrUpdateYsUser(sysUser);
return rows;
}
......@@ -322,7 +330,27 @@ public class SysUserServiceImpl implements ISysUserService {
user.setUpdateBy(0L);
SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
sysUser.setTenantId(tenantId);
return baseMapper.insert(sysUser) > 0;
boolean result = baseMapper.insert(sysUser) > 0;
if (result) {
saveOrUpdateYsUser(sysUser);
}
return result;
}
/**
* 保存或更新用户信息
*
* @param sysUser 用户信息
*/
@Override
public void saveOrUpdateYsUser(SysUser sysUser) {
remoteServerService.saveOrUpdateUser(
new RemoteUser()
.setSystemUserId(sysUser.getUserId())
.setUserName(sysUser.getUserName())
.setPhoneNumber(sysUser.getPhonenumber())
.setTenantId(sysUser.getTenantId())
);
}
/**
......@@ -345,6 +373,7 @@ public class SysUserServiceImpl implements ISysUserService {
if (flag < 1) {
throw new ServiceException("修改用户" + user.getUserName() + "信息失败");
}
saveOrUpdateYsUser(sysUser);
return flag;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论