Team Create Complete Fields

This commit is contained in:
JiaJu Zhuang
2023-08-26 14:15:26 +08:00
parent de03310c18
commit b00d6856b0
10 changed files with 112 additions and 18 deletions

View File

@ -1,5 +1,7 @@
package ai.chat2db.server.domain.api.model;
import java.util.Date;
import ai.chat2db.server.domain.api.enums.RoleCodeEnum;
import ai.chat2db.server.domain.api.enums.ValidStatusEnum;
import jakarta.validation.constraints.NotNull;
@ -62,4 +64,19 @@ public class User {
*/
@NotNull
private String status;
/**
* 修改时间
*/
private Date gmtModified;
/**
* 修改人用户id
*/
private Long modifiedUserId;
/**
* 修改人用户
*/
private User modifiedUser;
}

View File

@ -16,8 +16,8 @@ import lombok.experimental.SuperBuilder;
@AllArgsConstructor
public class UserSelector {
/**
* empty
* 修改人用户
*/
private Boolean empty;
private Boolean modifiedUser;
}

View File

@ -35,6 +35,9 @@ public abstract class UserConverter {
* @param data
* @return
*/
@Mappings({
@Mapping(target = "modifiedUser.id", source = "modifiedUserId"),
})
public abstract User do2dto(DbhubUserDO data);
/**
@ -57,14 +60,21 @@ public abstract class UserConverter {
* @param user
* @return
*/
public abstract DbhubUserDO param2do(UserCreateParam user);
@Mappings({
@Mapping(target = "createUserId", source = "userId"),
@Mapping(target = "modifiedUserId", source = "userId"),
})
public abstract DbhubUserDO param2do(UserCreateParam user, Long userId);
/**
*
* @param user
* @return
*/
public abstract DbhubUserDO param2do(UserUpdateParam user);
@Mappings({
@Mapping(target = "modifiedUserId", source = "userId"),
})
public abstract DbhubUserDO param2do(UserUpdateParam user, Long userId);
/**
* Fill in detailed information

View File

@ -20,12 +20,15 @@ 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 ai.chat2db.server.tools.common.util.EasyCollectionUtils;
import cn.hutool.crypto.digest.DigestUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -84,7 +87,10 @@ public class UserServiceImpl implements UserService {
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
page.setSearchCount(param.getEnableReturnCount());
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, queryWrapper);
return PageResult.of(userConverter.do2dto(iPage.getRecords()), iPage.getTotal(), param);
List<User> list = userConverter.do2dto(iPage.getRecords());
fillData(list, selector);
return PageResult.of(list, iPage.getTotal(), param);
}
@Override
@ -96,7 +102,7 @@ public class UserServiceImpl implements UserService {
throw new ParamBusinessException("roleCode");
}
DbhubUserDO data = userConverter.param2do(param);
DbhubUserDO data = userConverter.param2do(param, ContextUtils.getUserId());
if (Objects.nonNull(data.getPassword())) {
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
data.setPassword(bcryptPassword);
@ -138,10 +144,25 @@ public class UserServiceImpl implements UserService {
throw new ParamBusinessException("roleCode");
}
DbhubUserDO data = userConverter.param2do(param);
DbhubUserDO data = userConverter.param2do(param, ContextUtils.getUserId());
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
data.setPassword(bcryptPassword);
dbhubUserMapper.insert(data);
return DataResult.of(data.getId());
}
private void fillData(List<User> list, UserSelector selector) {
if (CollectionUtils.isEmpty(list) || selector == null) {
return;
}
fillUser(list, selector);
}
private void fillUser(List<User> list, UserSelector selector) {
if (BooleanUtils.isNotTrue(selector.getModifiedUser())) {
return;
}
userConverter.fillDetail(EasyCollectionUtils.toList(list, User::getModifiedUser));
}
}

View File

@ -68,4 +68,14 @@ public class DbhubUserDO implements Serializable {
* 用户状态
*/
private String status;
/**
* 创建人用户id
*/
private Long createUserId;
/**
* 修改人用户id
*/
private Long modifiedUserId;
}

View File

@ -1,11 +1,10 @@
package ai.chat2db.server.domain.repository.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;
@ -65,11 +64,6 @@ public class TeamDO implements Serializable {
*/
private String status;
/**
* 角色编码
*/
private String roleCode;
/**
* 团队描述
*/

View File

@ -38,7 +38,11 @@ ALTER TABLE `dbhub_user`
ALTER TABLE `dbhub_user`
ADD `status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '用户状态';
ALTER TABLE `dbhub_user`
ADD `create_user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '创建人用户id';
ALTER TABLE `dbhub_user`
ADD `modified_user_id` bigint(20) unsigned NOT NULL DEFAULT 1 COMMENT '修改人用户id';
update dbhub_user
set role_code= 'DESKTOP',user_name='_desktop_default_user_name',password='_desktop_default_user_name',nick_name='桌面端用户'
@ -58,7 +62,6 @@ CREATE TABLE IF NOT EXISTS `team`
`code` varchar(128) DEFAULT NOT NULL COMMENT '团队编码',
`name` varchar(512) DEFAULT NULL COMMENT '团队名称',
`status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '团队状态',
`role_code` varchar(32) DEFAULT NULL COMMENT '角色编码',
`description` text DEFAULT NULL COMMENT '团队描述',
PRIMARY KEY (`id`)
) ENGINE = InnoDB

View File

@ -35,7 +35,7 @@ public class MybatisGeneratorTest extends BaseTest {
//doGenerator(Lists.newArrayList("operation_saved"));
//doGenerator(Lists.newArrayList("environment","data_source","team","team_dbhub_user","data_source_access",
// "dbhub_user"));
doGenerator(Lists.newArrayList("data_source"));
doGenerator(Lists.newArrayList("dbhub_user","team"));
}
private void doGenerator(List<String> tableList) {

View File

@ -6,6 +6,7 @@ import ai.chat2db.server.admin.api.controller.user.request.UserCreateRequest;
import ai.chat2db.server.admin.api.controller.user.request.UserUpdateRequest;
import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO;
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
import ai.chat2db.server.domain.api.param.user.UserSelector;
import ai.chat2db.server.domain.api.service.UserService;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
import ai.chat2db.server.tools.base.wrapper.result.DataResult;
@ -29,6 +30,10 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserAdminController {
private static final UserSelector USER_SELECTOR= UserSelector.builder()
.modifiedUser(Boolean.TRUE)
.build();
@Resource
private UserService userService;
@Resource
@ -43,7 +48,7 @@ public class UserAdminController {
*/
@GetMapping("/page")
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
return userService.pageQuery(userAdminConverter.request2param(request), null)
return userService.pageQuery(userAdminConverter.request2param(request), USER_SELECTOR)
.mapToWeb(userAdminConverter::dto2vo);
}

View File

@ -1,6 +1,10 @@
package ai.chat2db.server.admin.api.controller.user.vo;
import java.util.Date;
import ai.chat2db.server.common.api.controller.vo.SimpleUserVO;
import ai.chat2db.server.domain.api.enums.RoleCodeEnum;
import ai.chat2db.server.domain.api.enums.ValidStatusEnum;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@ -36,4 +40,34 @@ public class UserPageQueryVO {
* @see ValidStatusEnum
*/
private String status;
/**
* 邮箱
*/
@NotNull
private String email;
/**
* 角色编码
*
* @see RoleCodeEnum
*/
private String roleCode;
/**
* 修改时间
*/
private Date gmtModified;
/**
* 修改人用户id
*/
private Long modifiedUserId;
/**
* 修改人用户
*/
private SimpleUserVO modifiedUser;
}