mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-31 11:42:41 +08:00
Team Create Complete Fields
This commit is contained in:
@ -1,5 +1,7 @@
|
|||||||
package ai.chat2db.server.domain.api.model;
|
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.RoleCodeEnum;
|
||||||
import ai.chat2db.server.domain.api.enums.ValidStatusEnum;
|
import ai.chat2db.server.domain.api.enums.ValidStatusEnum;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@ -62,4 +64,19 @@ public class User {
|
|||||||
*/
|
*/
|
||||||
@NotNull
|
@NotNull
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改时间
|
||||||
|
*/
|
||||||
|
private Date gmtModified;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人用户id
|
||||||
|
*/
|
||||||
|
private Long modifiedUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人用户
|
||||||
|
*/
|
||||||
|
private User modifiedUser;
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,8 @@ import lombok.experimental.SuperBuilder;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class UserSelector {
|
public class UserSelector {
|
||||||
/**
|
/**
|
||||||
* empty
|
* 修改人用户
|
||||||
*/
|
*/
|
||||||
private Boolean empty;
|
private Boolean modifiedUser;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,9 @@ public abstract class UserConverter {
|
|||||||
* @param data
|
* @param data
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@Mappings({
|
||||||
|
@Mapping(target = "modifiedUser.id", source = "modifiedUserId"),
|
||||||
|
})
|
||||||
public abstract User do2dto(DbhubUserDO data);
|
public abstract User do2dto(DbhubUserDO data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,14 +60,21 @@ public abstract class UserConverter {
|
|||||||
* @param user
|
* @param user
|
||||||
* @return
|
* @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
|
* @param user
|
||||||
* @return
|
* @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
|
* 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.base.wrapper.result.PageResult;
|
||||||
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
|
import ai.chat2db.server.tools.common.exception.DataAlreadyExistsBusinessException;
|
||||||
import ai.chat2db.server.tools.common.exception.ParamBusinessException;
|
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 cn.hutool.crypto.digest.DigestUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -84,7 +87,10 @@ public class UserServiceImpl implements UserService {
|
|||||||
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
Page<DbhubUserDO> page = new Page<>(param.getPageNo(), param.getPageSize());
|
||||||
page.setSearchCount(param.getEnableReturnCount());
|
page.setSearchCount(param.getEnableReturnCount());
|
||||||
IPage<DbhubUserDO> iPage = dbhubUserMapper.selectPage(page, queryWrapper);
|
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
|
@Override
|
||||||
@ -96,7 +102,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
throw new ParamBusinessException("roleCode");
|
throw new ParamBusinessException("roleCode");
|
||||||
}
|
}
|
||||||
|
|
||||||
DbhubUserDO data = userConverter.param2do(param);
|
DbhubUserDO data = userConverter.param2do(param, ContextUtils.getUserId());
|
||||||
if (Objects.nonNull(data.getPassword())) {
|
if (Objects.nonNull(data.getPassword())) {
|
||||||
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
||||||
data.setPassword(bcryptPassword);
|
data.setPassword(bcryptPassword);
|
||||||
@ -138,10 +144,25 @@ public class UserServiceImpl implements UserService {
|
|||||||
throw new ParamBusinessException("roleCode");
|
throw new ParamBusinessException("roleCode");
|
||||||
}
|
}
|
||||||
|
|
||||||
DbhubUserDO data = userConverter.param2do(param);
|
DbhubUserDO data = userConverter.param2do(param, ContextUtils.getUserId());
|
||||||
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
String bcryptPassword = DigestUtil.bcrypt(data.getPassword());
|
||||||
data.setPassword(bcryptPassword);
|
data.setPassword(bcryptPassword);
|
||||||
dbhubUserMapper.insert(data);
|
dbhubUserMapper.insert(data);
|
||||||
return DataResult.of(data.getId());
|
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;
|
private String status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人用户id
|
||||||
|
*/
|
||||||
|
private Long createUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改人用户id
|
||||||
|
*/
|
||||||
|
private Long modifiedUserId;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
package ai.chat2db.server.domain.repository.entity;
|
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.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
@ -65,11 +64,6 @@ public class TeamDO implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
/**
|
|
||||||
* 角色编码
|
|
||||||
*/
|
|
||||||
private String roleCode;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 团队描述
|
* 团队描述
|
||||||
*/
|
*/
|
||||||
|
@ -38,7 +38,11 @@ ALTER TABLE `dbhub_user`
|
|||||||
ALTER TABLE `dbhub_user`
|
ALTER TABLE `dbhub_user`
|
||||||
ADD `status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '用户状态';
|
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
|
update dbhub_user
|
||||||
set role_code= 'DESKTOP',user_name='_desktop_default_user_name',password='_desktop_default_user_name',nick_name='桌面端用户'
|
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 '团队编码',
|
`code` varchar(128) DEFAULT NOT NULL COMMENT '团队编码',
|
||||||
`name` varchar(512) DEFAULT NULL COMMENT '团队名称',
|
`name` varchar(512) DEFAULT NULL COMMENT '团队名称',
|
||||||
`status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '团队状态',
|
`status` varchar(32) NOT NULL DEFAULT 'VALID' COMMENT '团队状态',
|
||||||
`role_code` varchar(32) DEFAULT NULL COMMENT '角色编码',
|
|
||||||
`description` text DEFAULT NULL COMMENT '团队描述',
|
`description` text DEFAULT NULL COMMENT '团队描述',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE = InnoDB
|
) ENGINE = InnoDB
|
||||||
|
@ -35,7 +35,7 @@ public class MybatisGeneratorTest extends BaseTest {
|
|||||||
//doGenerator(Lists.newArrayList("operation_saved"));
|
//doGenerator(Lists.newArrayList("operation_saved"));
|
||||||
//doGenerator(Lists.newArrayList("environment","data_source","team","team_dbhub_user","data_source_access",
|
//doGenerator(Lists.newArrayList("environment","data_source","team","team_dbhub_user","data_source_access",
|
||||||
// "dbhub_user"));
|
// "dbhub_user"));
|
||||||
doGenerator(Lists.newArrayList("data_source"));
|
doGenerator(Lists.newArrayList("dbhub_user","team"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void doGenerator(List<String> tableList) {
|
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.request.UserUpdateRequest;
|
||||||
import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO;
|
import ai.chat2db.server.admin.api.controller.user.vo.UserPageQueryVO;
|
||||||
import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
|
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.domain.api.service.UserService;
|
||||||
import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
|
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.DataResult;
|
||||||
@ -29,6 +30,10 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RestController
|
@RestController
|
||||||
public class UserAdminController {
|
public class UserAdminController {
|
||||||
|
|
||||||
|
private static final UserSelector USER_SELECTOR= UserSelector.builder()
|
||||||
|
.modifiedUser(Boolean.TRUE)
|
||||||
|
.build();
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
@Resource
|
@Resource
|
||||||
@ -43,7 +48,7 @@ public class UserAdminController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public WebPageResult<UserPageQueryVO> page(@Valid CommonPageQueryRequest request) {
|
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);
|
.mapToWeb(userAdminConverter::dto2vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
|
|
||||||
package ai.chat2db.server.admin.api.controller.user.vo;
|
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 ai.chat2db.server.domain.api.enums.ValidStatusEnum;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -36,4 +40,34 @@ public class UserPageQueryVO {
|
|||||||
* @see ValidStatusEnum
|
* @see ValidStatusEnum
|
||||||
*/
|
*/
|
||||||
private String status;
|
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