Team Create Complete Fields

This commit is contained in:
JiaJu Zhuang
2023-08-26 14:00:39 +08:00
parent 0198cd6b64
commit 6e53cf7aba
21 changed files with 152 additions and 51 deletions

View File

@ -2,6 +2,7 @@ package ai.chat2db.server.domain.api.model;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant; import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
@ -50,16 +51,24 @@ public class Team implements Serializable {
@NotNull @NotNull
private String status; private String status;
/**
* 角色编码
*/
@NotNull
private String roleCode;
/** /**
* 团队描述 * 团队描述
*/ */
private String description; private String description;
/**
* 修改时间
*/
private Date gmtModified;
/**
* 修改人用户id
*/
private Long modifiedUserId;
/**
* 修改人用户
*/
private User modifiedUser;
} }

View File

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

View File

@ -39,6 +39,17 @@ public abstract class TeamConverter {
*/ */
public abstract List<Team> do2dto(List<TeamDO> list); public abstract List<Team> do2dto(List<TeamDO> list);
/**
* convert
*
* @param data
* @return
*/
@Mappings({
@Mapping(target = "modifiedUser.id", source = "modifiedUserId"),
})
public abstract Team do2dto(TeamDO data);
/** /**
* convert * convert
* *

View File

@ -1,7 +1,6 @@
package ai.chat2db.server.domain.core.impl; package ai.chat2db.server.domain.core.impl;
import java.sql.Connection; import java.sql.Connection;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import ai.chat2db.server.domain.api.enums.DataSourceKindEnum; import ai.chat2db.server.domain.api.enums.DataSourceKindEnum;
@ -41,6 +40,7 @@ import ai.chat2db.spi.sql.Chat2DBContext;
import ai.chat2db.spi.sql.IDriverManager; import ai.chat2db.spi.sql.IDriverManager;
import ai.chat2db.spi.sql.SQLExecutor; import ai.chat2db.spi.sql.SQLExecutor;
import ai.chat2db.spi.util.JdbcUtils; import ai.chat2db.spi.util.JdbcUtils;
import cn.hutool.core.date.DateUtil;
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;
@ -84,8 +84,8 @@ public class DataSourceServiceImpl implements DataSourceService {
throw new PermissionDeniedBusinessException(); throw new PermissionDeniedBusinessException();
} }
DataSourceDO dataSourceDO = dataSourceConverter.param2do(param); DataSourceDO dataSourceDO = dataSourceConverter.param2do(param);
dataSourceDO.setGmtCreate(LocalDateTime.now()); dataSourceDO.setGmtCreate(DateUtil.date());
dataSourceDO.setGmtModified(LocalDateTime.now()); dataSourceDO.setGmtModified(DateUtil.date());
dataSourceDO.setUserId(ContextUtils.getUserId()); dataSourceDO.setUserId(ContextUtils.getUserId());
dataSourceMapper.insert(dataSourceDO); dataSourceMapper.insert(dataSourceDO);
preWarmingData(dataSourceDO.getId()); preWarmingData(dataSourceDO.getId());
@ -120,7 +120,7 @@ public class DataSourceServiceImpl implements DataSourceService {
PermissionUtils.checkOperationPermission(dataSource.getUserId()); PermissionUtils.checkOperationPermission(dataSource.getUserId());
DataSourceDO dataSourceDO = dataSourceConverter.param2do(param); DataSourceDO dataSourceDO = dataSourceConverter.param2do(param);
dataSourceDO.setGmtModified(LocalDateTime.now()); dataSourceDO.setGmtModified(DateUtil.date());
dataSourceMapper.updateById(dataSourceDO); dataSourceMapper.updateById(dataSourceDO);
return ActionResult.isSuccess(); return ActionResult.isSuccess();
} }
@ -159,8 +159,8 @@ public class DataSourceServiceImpl implements DataSourceService {
dataSourceDO.setId(null); dataSourceDO.setId(null);
String alias = dataSourceDO.getAlias() + "Copy"; String alias = dataSourceDO.getAlias() + "Copy";
dataSourceDO.setAlias(alias); dataSourceDO.setAlias(alias);
dataSourceDO.setGmtCreate(LocalDateTime.now()); dataSourceDO.setGmtCreate(DateUtil.date());
dataSourceDO.setGmtModified(LocalDateTime.now()); dataSourceDO.setGmtModified(DateUtil.date());
dataSourceMapper.insert(dataSourceDO); dataSourceMapper.insert(dataSourceDO);
return DataResult.of(dataSourceDO.getId()); return DataResult.of(dataSourceDO.getId());
} }

View File

@ -10,6 +10,7 @@ import ai.chat2db.server.domain.api.param.team.TeamSelector;
import ai.chat2db.server.domain.api.param.team.TeamUpdateParam; import ai.chat2db.server.domain.api.param.team.TeamUpdateParam;
import ai.chat2db.server.domain.api.service.TeamService; import ai.chat2db.server.domain.api.service.TeamService;
import ai.chat2db.server.domain.core.converter.TeamConverter; import ai.chat2db.server.domain.core.converter.TeamConverter;
import ai.chat2db.server.domain.core.converter.UserConverter;
import ai.chat2db.server.domain.repository.entity.TeamDO; import ai.chat2db.server.domain.repository.entity.TeamDO;
import ai.chat2db.server.domain.repository.mapper.TeamMapper; import ai.chat2db.server.domain.repository.mapper.TeamMapper;
import ai.chat2db.server.tools.base.wrapper.result.ActionResult; import ai.chat2db.server.tools.base.wrapper.result.ActionResult;
@ -19,12 +20,14 @@ 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.ContextUtils;
import ai.chat2db.server.tools.common.util.EasyCollectionUtils;
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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
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;
@ -41,6 +44,8 @@ public class TeamServiceImpl implements TeamService {
private TeamMapper teamMapper; private TeamMapper teamMapper;
@Resource @Resource
private TeamConverter teamConverter; private TeamConverter teamConverter;
@Resource
private UserConverter userConverter;
@Override @Override
public ListResult<Team> listQuery(List<Long> idList) { public ListResult<Team> listQuery(List<Long> idList) {
@ -108,5 +113,14 @@ public class TeamServiceImpl implements TeamService {
if (CollectionUtils.isEmpty(list) || selector == null) { if (CollectionUtils.isEmpty(list) || selector == null) {
return; return;
} }
fillUser(list, selector);
} }
private void fillUser(List<Team> list, TeamSelector selector) {
if (BooleanUtils.isNotTrue(selector.getModifiedUser())) {
return;
}
userConverter.fillDetail(EasyCollectionUtils.toList(list, Team::getModifiedUser));
}
} }

View File

@ -4,7 +4,7 @@ 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.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -14,7 +14,7 @@ import lombok.Setter;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
@Getter @Getter
@Setter @Setter
@ -32,12 +32,12 @@ public class DataSourceAccessDO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime gmtCreate; private Date gmtCreate;
/** /**
* 修改时间 * 修改时间
*/ */
private LocalDateTime gmtModified; private Date gmtModified;
/** /**
* 创建人用户id * 创建人用户id

View File

@ -4,7 +4,7 @@ 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.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -14,7 +14,7 @@ import lombok.Setter;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-08-06 * @since 2023-08-26
*/ */
@Getter @Getter
@Setter @Setter
@ -32,12 +32,12 @@ public class DataSourceDO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime gmtCreate; private Date gmtCreate;
/** /**
* 修改时间 * 修改时间
*/ */
private LocalDateTime gmtModified; private Date gmtModified;
/** /**
* 别名 * 别名

View File

@ -4,7 +4,7 @@ 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.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -14,7 +14,7 @@ import lombok.Setter;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
@Getter @Getter
@Setter @Setter
@ -32,12 +32,12 @@ public class DbhubUserDO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime gmtCreate; private Date gmtCreate;
/** /**
* 修改时间 * 修改时间
*/ */
private LocalDateTime gmtModified; private Date gmtModified;
/** /**
* 用户名 * 用户名

View File

@ -4,7 +4,7 @@ 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.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -14,7 +14,7 @@ import lombok.Setter;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
@Getter @Getter
@Setter @Setter
@ -32,12 +32,12 @@ public class EnvironmentDO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime gmtCreate; private Date gmtCreate;
/** /**
* 修改时间 * 修改时间
*/ */
private LocalDateTime gmtModified; private Date gmtModified;
/** /**
* 创建人用户id * 创建人用户id

View File

@ -1,10 +1,11 @@
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.time.LocalDateTime;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -14,7 +15,7 @@ import lombok.Setter;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
@Getter @Getter
@Setter @Setter
@ -32,12 +33,12 @@ public class TeamDO implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime gmtCreate; private Date gmtCreate;
/** /**
* 修改时间 * 修改时间
*/ */
private LocalDateTime gmtModified; private Date gmtModified;
/** /**
* 创建人用户id * 创建人用户id

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
public interface DataSourceAccessMapper extends BaseMapper<DataSourceAccessDO> { public interface DataSourceAccessMapper extends BaseMapper<DataSourceAccessDO> {

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-08-06 * @since 2023-08-26
*/ */
public interface DataSourceMapper extends BaseMapper<DataSourceDO> { public interface DataSourceMapper extends BaseMapper<DataSourceDO> {

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
public interface DbhubUserMapper extends BaseMapper<DbhubUserDO> { public interface DbhubUserMapper extends BaseMapper<DbhubUserDO> {

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
public interface EnvironmentMapper extends BaseMapper<EnvironmentDO> { public interface EnvironmentMapper extends BaseMapper<EnvironmentDO> {

View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* </p> * </p>
* *
* @author chat2db * @author chat2db
* @since 2023-07-30 * @since 2023-08-26
*/ */
public interface TeamMapper extends BaseMapper<TeamDO> { public interface TeamMapper extends BaseMapper<TeamDO> {

View File

@ -34,6 +34,9 @@ spring:
multipart: multipart:
max-file-size: -1 max-file-size: -1
max-request-size: -1 max-request-size: -1
jackson:
serialization:
write-dates-as-timestamps: true
chat2db: chat2db:
version: 1.0.0 version: 1.0.0

View File

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert; import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -63,6 +64,8 @@ public class MybatisGeneratorTest extends BaseTest {
builder.author("chat2db") builder.author("chat2db")
//执行完毕不打开文件夹 //执行完毕不打开文件夹
.disableOpenDir() .disableOpenDir()
// 还是使用date
.dateType(DateType.ONLY_DATE)
// 指定输出目录 // 指定输出目录
.outputDir(outputDir); .outputDir(outputDir);
}) })

View File

@ -6,6 +6,7 @@ import ai.chat2db.server.common.api.controller.request.CommonPageQueryRequest;
import ai.chat2db.server.admin.api.controller.team.request.TeamCreateRequest; import ai.chat2db.server.admin.api.controller.team.request.TeamCreateRequest;
import ai.chat2db.server.admin.api.controller.team.request.TeamUpdateRequest; import ai.chat2db.server.admin.api.controller.team.request.TeamUpdateRequest;
import ai.chat2db.server.admin.api.controller.team.vo.TeamPageQueryVO; import ai.chat2db.server.admin.api.controller.team.vo.TeamPageQueryVO;
import ai.chat2db.server.domain.api.param.team.TeamSelector;
import ai.chat2db.server.domain.api.service.TeamService; import ai.chat2db.server.domain.api.service.TeamService;
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;
@ -28,6 +29,10 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/api/admin/team") @RequestMapping("/api/admin/team")
@RestController @RestController
public class TeamAdminController { public class TeamAdminController {
private static final TeamSelector TEAM_SELECTOR=TeamSelector.builder()
.modifiedUser(Boolean.TRUE)
.build();
@Resource @Resource
private TeamService teamService; private TeamService teamService;
@Resource @Resource
@ -42,7 +47,7 @@ public class TeamAdminController {
*/ */
@GetMapping("/page") @GetMapping("/page")
public WebPageResult<TeamPageQueryVO> page(@Valid CommonPageQueryRequest request) { public WebPageResult<TeamPageQueryVO> page(@Valid CommonPageQueryRequest request) {
return teamService.pageQuery(teamAdminConverter.request2param(request), null) return teamService.pageQuery(teamAdminConverter.request2param(request), TEAM_SELECTOR)
.mapToWeb(teamAdminConverter::dto2vo); .mapToWeb(teamAdminConverter::dto2vo);
} }

View File

@ -31,14 +31,6 @@ public class TeamCreateRequest {
@NotNull @NotNull
private String status; private String status;
/**
* 角色编码
*
* @see ai.chat2db.server.domain.api.enums.RoleCodeEnum
*/
@NotNull
private String roleCode;
/** /**
* 团队描述 * 团队描述
*/ */

View File

@ -1,6 +1,9 @@
package ai.chat2db.server.admin.api.controller.team.vo; package ai.chat2db.server.admin.api.controller.team.vo;
import java.util.Date;
import ai.chat2db.server.common.api.controller.vo.SimpleUserVO;
import lombok.Data; import lombok.Data;
/** /**
@ -25,11 +28,30 @@ public class TeamPageQueryVO {
*/ */
private String name; private String name;
/** /**
* 团队状态 * 团队状态
* *
* @see ai.chat2db.server.domain.api.enums.ValidStatusEnum * @see ai.chat2db.server.domain.api.enums.ValidStatusEnum
*/ */
private String status; private String status;
/**
* 团队描述
*/
private String description;
/**
* 修改时间
*/
private Date gmtModified;
/**
* 修改人用户id
*/
private Long modifiedUserId;
/**
* 修改人用户
*/
private SimpleUserVO modifiedUser;
} }

View File

@ -0,0 +1,41 @@
package ai.chat2db.server.common.api.controller.vo;
import java.io.Serial;
import java.io.Serializable;
import ai.chat2db.server.tools.base.constant.EasyToolsConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* user
*
* @author Jiaju Zhuang
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class
SimpleUserVO implements Serializable {
@Serial
private static final long serialVersionUID = EasyToolsConstant.SERIAL_VERSION_UID;
/**
* 主键
*/
private Long id;
/**
* 用户名
*/
private String userName;
/**
* 昵称
*/
private String nickName;
}