提交 45f35dcc authored 作者: 黄承天's avatar 黄承天

fix(user): 修正ct与ut缺失的问题;修正id不匹配的问题;修正Project数据有多余的问题

上级 78ac1ef5
......@@ -23,7 +23,7 @@ import java.net.Socket;
*/
@Slf4j
@SpringBootApplication
@MapperScan("org.matrix.database.mapper")
@MapperScan(basePackages = {"org.matrix.database.mapper", "org.matrix.zentao.mapper"})
public class BaseBootApplication implements CommandLineRunner {
@Value("${spring.datasource.dynamic.datasource.master.url}")
......@@ -53,6 +53,6 @@ public class BaseBootApplication implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
log.info("[初始化] 初始化数据源" + driverClassName);
dataSourceService.add(new DataSourceDTO("初始数据源",driverClassName,url,username,password));
dataSourceService.add(new DataSourceDTO("初始数据源", driverClassName, url, username, password));
}
}
......@@ -30,5 +30,4 @@ public class HttpResponseDetail extends BaseTestCaseResponseDetail {
@ApiModelProperty("响应时间,单位为 ms ")
private Long responseTime = 0L;
}
......@@ -11,6 +11,11 @@ spring:
url: jdbc:mysql://192.168.100.248:3306/key_stone?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
zentao:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.100.247:3306/zentao?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&&zeroDateTimeBehavior=convertToNull
username: root
password: 123456
mybatis-plus:
type-enums-package: org.matrix.enums
......
......@@ -22,13 +22,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
......
package org.matrix.local.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
/**
* MetaFieldHandler.
* 元数据处理器,用于处理自动填充的字段
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/11/22 at 7:52 下午
*/
@Component
public class MetaFieldHandler implements MetaObjectHandler {
/**
* 创建时设置创建时间
* @param metaObject 数据库原始对象
*/
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
/**
* 更新时设置更新时间
* @param metaObject 数据库原始对象
*/
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
}
package org.matrix.local.config;
public class SecurityConfig {
}
package org.matrix.local.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* BaseEntity.
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/11/22 at 4:02 下午
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "基础对象")
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
@ApiModelProperty("主键id,从0开始自增")
private Long id;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty("数据创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty("数据更新时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime updateTime;
}
package org.matrix.local.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.matrix.local.entity.BaseEntity;
import java.time.LocalDateTime;
/**
* <p>
......@@ -22,10 +23,31 @@ import org.matrix.local.entity.BaseEntity;
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Project对象", description = "项目")
@TableName(value = "kt_project")
public class Project extends BaseEntity {
public class Project {
/**
* 主键id
*/
@ApiModelProperty("主键id")
private Long id;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty("数据创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty("数据更新时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime updateTime;
@ApiModelProperty("名称")
private String name;
......
package org.matrix.local.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.matrix.local.entity.BaseEntity;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* <p>
......@@ -17,13 +19,35 @@ import org.matrix.local.entity.BaseEntity;
* @author matrix
* @since 2022-01-15
*/
@Accessors(chain = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "User对象", description = "用户")
@TableName(value = "kt_user")
public class User extends BaseEntity{
public class User {
/**
* 主键id
*/
@ApiModelProperty("主键id")
private Long id;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty("数据创建时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty("数据更新时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime updateTime;
@ApiModelProperty("名称")
private String name;
......
package org.matrix.local.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.matrix.local.entity.BaseEntity;
/**
* <p>
......@@ -21,10 +21,16 @@ import org.matrix.local.entity.BaseEntity;
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "UserProject对象", description = "用户项目关系")
@TableName(value = "kt_user_project")
public class UserProject extends BaseEntity {
public class UserProject {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
@ApiModelProperty("主键id,从0开始自增")
private Long id;
private Long userId;
......
......@@ -20,8 +20,11 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import static java.util.Objects.nonNull;
@Service
public class DataCollectorImpl implements IDataCollector {
......@@ -69,7 +72,9 @@ public class DataCollectorImpl implements IDataCollector {
*/
private void collectProject() {
ztProjects.clear();
ztProjects = ztProjectMapper.selectList(Wrappers.lambdaQuery());
ztProjects = ztProjectMapper.selectList(Wrappers.<ZtProject>lambdaQuery()
.eq(ZtProject::getDeleted, "0")
.eq(ZtProject::getProject, 0));
}
/**
......@@ -113,21 +118,33 @@ public class DataCollectorImpl implements IDataCollector {
//------------------------private------------------------------------//
private User user(ZtUser ztUser) {
return new User(ztUser.getRealname(), ztUser.getAccount(), ztUser.getPassword());
return new User(Long.valueOf(ztUser.getId()), null, null, ztUser.getRealname(), ztUser.getAccount(), ztUser.getPassword());
}
private Project project(ZtProject ztProject) {
return new Project(ztProject.getName());
return new Project(Long.valueOf(ztProject.getId()), null, null, ztProject.getName());
}
private List<UserProject> userProjects(ZtUserView ztUserView) {
Long userId = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, ztUserView.getAccount())).getId();
return toList(ztUserView.getProjects()).stream()
.map(Long::parseLong)
.map(projectId -> new UserProject(userId, projectId))
.map(Integer::parseInt)
.map(id -> ztProjectMapper.selectById(id))
.filter(ztProject -> Objects.equals("0", ztProject.getDeleted()))
.map(this::findProjectId)
.map(projectId -> new UserProject(null, userId, projectId))
.collect(Collectors.toList());
}
private Long findProjectId(ZtProject ztProject) {
if (nonNull(ztProject.getProject()) && ztProject.getProject() > 0) {
return Long.valueOf(ztProject.getProject());
} else {
return Long.valueOf(ztProject.getId());
}
}
private List<String> toList(String content) {
List<String> result = Arrays.stream(content.split(",")).collect(Collectors.toList());
result.remove(0);
......
......@@ -15,7 +15,7 @@ public class DataCollectorTask {
@Autowired
IDataCollector dataCollector;
private IDataCollector dataCollector;
/**
* 同步禅道取的用户和项目数据
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论