mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-30 19:22:58 +08:00
Team Create Complete Fields
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
@ -16,8 +16,8 @@ import lombok.experimental.SuperBuilder;
|
||||
@AllArgsConstructor
|
||||
public class UserSelector {
|
||||
/**
|
||||
* empty
|
||||
* 修改人用户
|
||||
*/
|
||||
private Boolean empty;
|
||||
private Boolean modifiedUser;
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -68,4 +68,14 @@ public class DbhubUserDO implements Serializable {
|
||||
* 用户状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建人用户id
|
||||
*/
|
||||
private Long createUserId;
|
||||
|
||||
/**
|
||||
* 修改人用户id
|
||||
*/
|
||||
private Long modifiedUserId;
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 团队描述
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user