Complete team user code

This commit is contained in:
JiaJu Zhuang
2023-08-13 15:37:34 +08:00
parent af6fcc2baf
commit 19e0653f5f
17 changed files with 159 additions and 23 deletions

View File

@ -45,7 +45,11 @@ public abstract class TeamConverter {
* @param param
* @return
*/
public abstract TeamDO param2do(TeamCreateParam param);
@Mappings({
@Mapping(target = "createUserId", source = "userId"),
@Mapping(target = "modifiedUserId", source = "userId"),
})
public abstract TeamDO param2do(TeamCreateParam param, Long userId);
/**
* convert
@ -53,7 +57,10 @@ public abstract class TeamConverter {
* @param param
* @return
*/
public abstract TeamDO param2do(TeamUpdateParam param);
@Mappings({
@Mapping(target = "modifiedUserId", source = "userId"),
})
public abstract TeamDO param2do(TeamUpdateParam param, Long userId);
/**
* Fill in detailed information

View File

@ -2,6 +2,7 @@ package ai.chat2db.server.domain.core.impl;
import java.util.List;
import ai.chat2db.server.domain.api.enums.RoleCodeEnum;
import ai.chat2db.server.domain.api.model.Team;
import ai.chat2db.server.domain.api.param.team.TeamCreateParam;
import ai.chat2db.server.domain.api.param.team.TeamPageQueryParam;
@ -15,6 +16,9 @@ import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
import ai.chat2db.server.tools.common.util.ContextUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -70,14 +74,26 @@ public class TeamServiceImpl implements TeamService {
@Override
public DataResult<Long> create(TeamCreateParam param) {
TeamDO data = teamConverter.param2do(param);
LambdaQueryWrapper<TeamDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TeamDO::getCode, param.getCode());
Page<TeamDO> page = new Page<>(1, 1);
page.setSearchCount(false);
IPage<TeamDO> iPage = teamMapper.selectPage(page, queryWrapper);
if (CollectionUtils.isNotEmpty(iPage.getRecords())) {
throw new DataAlreadyExistsBusinessException("code", param.getCode());
}
if (RoleCodeEnum.DESKTOP.getCode().equals(param.getRoleCode())) {
throw new ParamBusinessException("roleCode");
}
TeamDO data = teamConverter.param2do(param, ContextUtils.getUserId());
teamMapper.insert(data);
return DataResult.of(data.getId());
}
@Override
public DataResult<Long> update(TeamUpdateParam param) {
TeamDO data = teamConverter.param2do(param);
TeamDO data = teamConverter.param2do(param, ContextUtils.getUserId());
teamMapper.updateById(data);
return DataResult.of(data.getId());
}

View File

@ -18,6 +18,8 @@ import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
import ai.chat2db.server.tools.base.wrapper.result.ListResult;
import ai.chat2db.server.tools.base.wrapper.result.PageResult;
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
import cn.hutool.crypto.digest.DigestUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -86,17 +88,21 @@ public class UserServiceImpl implements UserService {
}
@Override
public DataResult<Long> update(UserUpdateParam user) {
if (RoleCodeEnum.DESKTOP.getDefaultUserId().equals(user.getId())) {
public DataResult<Long> update(UserUpdateParam param) {
if (RoleCodeEnum.DESKTOP.getDefaultUserId().equals(param.getId())) {
throw new BusinessException("user.canNotOperateSystemAccount");
}
DbhubUserDO data = userConverter.param2do(user);
if (RoleCodeEnum.DESKTOP.getCode().equals(param.getRoleCode())) {
throw new ParamBusinessException("roleCode");
}
DbhubUserDO data = userConverter.param2do(param);
if (Objects.nonNull(data.getPassword())) {
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
data.setPassword(bcryptPassword);
}
if (RoleCodeEnum.ADMIN.getDefaultUserId().equals(user.getId())) {
if (RoleCodeEnum.ADMIN.getDefaultUserId().equals(param.getId())) {
data.setStatus(null);
data.setEmail(null);
data.setUserName(null);
@ -116,8 +122,23 @@ public class UserServiceImpl implements UserService {
}
@Override
public DataResult<Long> create(UserCreateParam user) {
DbhubUserDO data = userConverter.param2do(user);
public DataResult<Long> create(UserCreateParam param) {
LambdaQueryWrapper<DbhubUserDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.and(wrapper -> wrapper.eq(DbhubUserDO::getUserName, param.getUserName())
.or()
.eq(DbhubUserDO::getEmail, param.getEmail()));
Page<DbhubUserDO> page = new Page<>(1, 1);
page.setSearchCount(false);
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, queryWrapper);
if (CollectionUtils.isNotEmpty(iPage.getRecords())) {
throw new DataAlreadyExistsBusinessException("userName or email",
param.getUserName() + " or " + param.getEmail());
}
if (RoleCodeEnum.DESKTOP.getCode().equals(param.getRoleCode())) {
throw new ParamBusinessException("roleCode");
}
DbhubUserDO data = userConverter.param2do(param);
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
data.setPassword(bcryptPassword);
dbhubUserMapper.insert(data);