Optimize ToolBase and ToolTemplate api

This commit is contained in:
2024-01-22 18:18:47 +08:00
parent 3da5260ddd
commit 98e2f637d2
13 changed files with 29 additions and 135 deletions

View File

@@ -25,11 +25,6 @@ class BaseController(
fun get(): ResponseResult<List<ToolBaseVo>> = fun get(): ResponseResult<List<ToolBaseVo>> =
ResponseResult.databaseSuccess(data = toolBaseService.get()) ResponseResult.databaseSuccess(data = toolBaseService.get())
@Operation(summary = "获取基板列表")
@GetMapping("/list")
fun getList(): ResponseResult<List<ToolBaseVo>> =
ResponseResult.databaseSuccess(data = toolBaseService.getList())
@Operation(summary = "新增基板") @Operation(summary = "新增基板")
@PostMapping @PostMapping
fun add(@RequestBody @Valid toolBaseAddParam: ToolBaseAddParam): ResponseResult<ToolBaseVo> = fun add(@RequestBody @Valid toolBaseAddParam: ToolBaseAddParam): ResponseResult<ToolBaseVo> =

View File

@@ -7,10 +7,8 @@ object ToolTemplateConverter {
fun toolTemplateToToolTemplateVo(toolTemplate: ToolTemplate) = ToolTemplateVo( fun toolTemplateToToolTemplateVo(toolTemplate: ToolTemplate) = ToolTemplateVo(
id = toolTemplate.id, id = toolTemplate.id,
name = toolTemplate.name, name = toolTemplate.name,
ver = toolTemplate.ver, base = toolTemplate.base?.let(ToolBaseConverter::toolBaseToToolBaseVo),
baseId = toolTemplate.baseId,
source = toolTemplate.source?.let(ToolDataConverter::toolDataToToolDataVo), source = toolTemplate.source?.let(ToolDataConverter::toolDataToToolDataVo),
dist = toolTemplate.dist?.let(ToolDataConverter::toolDataToToolDataVo),
createTime = toolTemplate.createTime, createTime = toolTemplate.createTime,
updateTime = toolTemplate.updateTime, updateTime = toolTemplate.updateTime,
enable = toolTemplate.enable == 1 enable = toolTemplate.enable == 1

View File

@@ -29,15 +29,6 @@ class ToolTemplate {
@TableField("name") @TableField("name")
var name: String? = null var name: String? = null
/**
* ver
*
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
*/
@TableField("ver")
var ver: String? = null
/** /**
* Base ID * Base ID
* *
@@ -56,15 +47,6 @@ class ToolTemplate {
@TableField("source_id") @TableField("source_id")
var sourceId: Long? = null var sourceId: Long? = null
/**
* Dist ID
*
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
*/
@TableField("dist_id")
var distId: Long? = null
/** /**
* Enable * Enable
* *
@@ -124,15 +106,15 @@ class ToolTemplate {
var source: ToolData? = null var source: ToolData? = null
/** /**
* Dist * Base
* *
* @author FatttSnake, fatttsnake@gmail.com * @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0 * @since 1.0.0
*/ */
@TableField(exist = false) @TableField(exist = false)
var dist: ToolData? = null var base: ToolBase? = null
override fun toString(): String { override fun toString(): String {
return "ToolTemplate(id=$id, name=$name, ver=$ver, baseId=$baseId, sourceId=$sourceId, distId=$distId, createTime=$createTime, updateTime=$updateTime, deleted=$deleted, version=$version)" return "ToolTemplate(id=$id, name=$name, baseId=$baseId, sourceId=$sourceId, enable=$enable, createTime=$createTime, updateTime=$updateTime, deleted=$deleted, version=$version, source=$source, base=$base)"
} }
} }

View File

@@ -16,6 +16,4 @@ import top.fatweb.oxygen.api.entity.tool.ToolBase
@Mapper @Mapper
interface ToolBaseMapper : BaseMapper<ToolBase> { interface ToolBaseMapper : BaseMapper<ToolBase> {
fun selectOne(@Param("id") id: Long): ToolBase? fun selectOne(@Param("id") id: Long): ToolBase?
fun selectList(): List<ToolBase>
} }

View File

@@ -2,24 +2,15 @@ package top.fatweb.oxygen.api.param.tool
import jakarta.validation.constraints.NotBlank import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Pattern
data class ToolTemplateAddParam( data class ToolTemplateAddParam(
@field: NotBlank(message = "Name can not be blank") @field: NotBlank(message = "Name can not be blank")
val name: String?, val name: String?,
@field: NotBlank(message = "Ver can not be blank")
@field: Pattern(regexp = "^\\d+\\.\\d+\\.\\d+\$", message = "Ver can only match '<number>.<number>.<number>'")
val ver: String?,
@field: NotNull(message = "BaseId can not be null") @field: NotNull(message = "BaseId can not be null")
val baseId: Long? = null, val baseId: Long? = null,
@field: NotNull(message = "Source can not be null") val source: String = "",
val source: String?,
@field:NotNull(message = "Dist can not be null")
val dist: String?,
val enable: Boolean = true val enable: Boolean = true
) )

View File

@@ -1,7 +1,6 @@
package top.fatweb.oxygen.api.param.tool package top.fatweb.oxygen.api.param.tool
import jakarta.validation.constraints.NotNull import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Pattern
data class ToolTemplateUpdateParam( data class ToolTemplateUpdateParam(
@field: NotNull(message = "ID can not be null") @field: NotNull(message = "ID can not be null")
@@ -9,14 +8,9 @@ data class ToolTemplateUpdateParam(
val name: String?, val name: String?,
@field: Pattern(regexp = "^\\d+\\.\\d+\\.\\d+\$", message = "Ver can only match '<number>.<number>.<number>'")
val ver: String?,
val baseId: Long?, val baseId: Long?,
val source: String?, val source: String?,
val dist: String?,
val enable: Boolean? val enable: Boolean?
) )

View File

@@ -19,8 +19,6 @@ interface IToolBaseService : IService<ToolBase> {
fun get(): List<ToolBaseVo> fun get(): List<ToolBaseVo>
fun getList(): List<ToolBaseVo>
fun add(toolBaseAddParam: ToolBaseAddParam): ToolBaseVo fun add(toolBaseAddParam: ToolBaseAddParam): ToolBaseVo
fun update(toolBaseUpdateParam: ToolBaseUpdateParam): ToolBaseVo fun update(toolBaseUpdateParam: ToolBaseUpdateParam): ToolBaseVo

View File

@@ -31,8 +31,7 @@ class ToolBaseServiceImpl(
override fun getOne(id: Long): ToolBaseVo = override fun getOne(id: Long): ToolBaseVo =
baseMapper.selectOne(id)?.let(ToolBaseConverter::toolBaseToToolBaseVo) ?: throw NoRecordFoundException() baseMapper.selectOne(id)?.let(ToolBaseConverter::toolBaseToToolBaseVo) ?: throw NoRecordFoundException()
override fun get(): List<ToolBaseVo> = baseMapper.selectList().map(ToolBaseConverter::toolBaseToToolBaseVo) override fun get(): List<ToolBaseVo> = this.list().map(ToolBaseConverter::toolBaseToToolBaseVoByGetList)
override fun getList(): List<ToolBaseVo> = this.list().map(ToolBaseConverter::toolBaseToToolBaseVoByGetList)
@Transactional @Transactional
override fun add(toolBaseAddParam: ToolBaseAddParam): ToolBaseVo { override fun add(toolBaseAddParam: ToolBaseAddParam): ToolBaseVo {

View File

@@ -42,19 +42,14 @@ class ToolTemplateServiceImpl(
toolBaseService.getOne(toolTemplateAddParam.baseId!!) toolBaseService.getOne(toolTemplateAddParam.baseId!!)
val newSource = ToolData().apply { data = toolTemplateAddParam.source } val newSource = ToolData().apply { data = toolTemplateAddParam.source }
val newDist = ToolData().apply { data = toolTemplateAddParam.dist }
toolDataService.save(newSource) toolDataService.save(newSource)
toolDataService.save(newDist)
val toolTemplate = ToolTemplate().apply { val toolTemplate = ToolTemplate().apply {
name = toolTemplateAddParam.name name = toolTemplateAddParam.name
ver = toolTemplateAddParam.ver
baseId = toolTemplateAddParam.baseId baseId = toolTemplateAddParam.baseId
sourceId = newSource.id sourceId = newSource.id
distId = newDist.id
source = newSource source = newSource
dist = newDist
enable = if (toolTemplateAddParam.enable) 1 else 0 enable = if (toolTemplateAddParam.enable) 1 else 0
} }
@@ -73,15 +68,9 @@ class ToolTemplateServiceImpl(
data = toolTemplateUpdateParam.source data = toolTemplateUpdateParam.source
}) })
toolDataService.updateById(ToolData().apply {
id = toolTemplate.distId
data = toolTemplateUpdateParam.dist
})
this.updateById(ToolTemplate().apply { this.updateById(ToolTemplate().apply {
id = toolTemplateUpdateParam.id id = toolTemplateUpdateParam.id
name = toolTemplateUpdateParam.name name = toolTemplateUpdateParam.name
ver = toolTemplateUpdateParam.ver
baseId = toolTemplateUpdateParam.baseId baseId = toolTemplateUpdateParam.baseId
enable = toolTemplateUpdateParam.enable?.let { if (it) 1 else 0 } enable = toolTemplateUpdateParam.enable?.let { if (it) 1 else 0 }
}) })
@@ -93,7 +82,7 @@ class ToolTemplateServiceImpl(
override fun delete(id: Long): Boolean { override fun delete(id: Long): Boolean {
val toolTemplate = this.getById(id) val toolTemplate = this.getById(id)
return toolDataService.removeBatchByIds(listOf(toolTemplate.sourceId, toolTemplate.distId)) return toolDataService.removeById(toolTemplate.sourceId)
&& this.removeById(id) && this.removeById(id)
} }
} }

View File

@@ -10,15 +10,10 @@ data class ToolTemplateVo(
val name: String?, val name: String?,
val ver: String?, val base: ToolBaseVo?,
@JsonSerialize(using = ToStringSerializer::class)
val baseId: Long?,
val source: ToolDataVo?, val source: ToolDataVo?,
val dist: ToolDataVo?,
val enable: Boolean?, val enable: Boolean?,
val createTime: LocalDateTime?, val createTime: LocalDateTime?,

View File

@@ -4,10 +4,8 @@ create table if not exists t_b_tool_template
( (
id bigint not null primary key, id bigint not null primary key,
name varchar(40) not null comment '模板名', name varchar(40) not null comment '模板名',
ver varchar(20) not null comment '版本',
base_id bigint not null comment '基板 ID', base_id bigint not null comment '基板 ID',
source_id bigint not null comment '源码 ID', source_id bigint not null comment '源码 ID',
dist_id bigint not null comment '产物 ID',
enable int not null default 1 comment '启用', enable int not null default 1 comment '启用',
create_time datetime not null default (utc_timestamp()) comment '创建时间', create_time datetime not null default (utc_timestamp()) comment '创建时间',
update_time datetime not null default (utc_timestamp()) comment '修改时间', update_time datetime not null default (utc_timestamp()) comment '修改时间',

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="top.fatweb.oxygen.api.mapper.tool.ToolBaseMapper"> <mapper namespace="top.fatweb.oxygen.api.mapper.tool.ToolBaseMapper">
<select id="selectOne" resultMap="toolBaseMap"> <select id="selectOne" resultMap="toolBaseWithDataMap">
select t_b_tool_base.id as tool_base_id, select t_b_tool_base.id as tool_base_id,
t_b_tool_base.name as tool_base_name, t_b_tool_base.name as tool_base_name,
t_b_tool_base.source_id as tool_base_source_id, t_b_tool_base.source_id as tool_base_source_id,
@@ -29,33 +29,6 @@
and t_b_tool_base.id = #{id} and t_b_tool_base.id = #{id}
</select> </select>
<select id="selectList" resultMap="toolBaseMap">
select t_b_tool_base.id as tool_base_id,
t_b_tool_base.name as tool_base_name,
t_b_tool_base.source_id as tool_base_source_id,
t_b_tool_base.dist_id as tool_base_dist_id,
t_b_tool_base.enable as tool_base_enable,
t_b_tool_base.create_time as tool_base_create_time,
t_b_tool_base.update_time as tool_base_update_time,
t_b_tool_base.deleted as tool_base_deleted,
t_b_tool_base.version as tool_base_version,
tbtds.data as tool_base_source_data,
tbtds.create_time as tool_base_source_create_time,
tbtds.update_time as tool_base_source_update_time,
tbtds.deleted as tool_base_source_delete,
tbtds.version as tool_base_source_version,
tbtdd.data as tool_base_dist_data,
tbtdd.create_time as tool_base_dist_create_time,
tbtdd.update_time as tool_base_dist_update_time,
tbtdd.deleted as tool_base_dist_delete,
tbtdd.version as tool_base_dist_version
from t_b_tool_base
left join (select * from t_b_tool_data where deleted = 0) as tbtds
on tbtds.id = t_b_tool_base.source_id
left join (select * from t_b_tool_data where deleted = 0) as tbtdd on tbtdd.id = t_b_tool_base.dist_id
where t_b_tool_base.deleted = 0
</select>
<resultMap id="toolBaseMap" type="toolBase"> <resultMap id="toolBaseMap" type="toolBase">
<id property="id" column="tool_base_id"/> <id property="id" column="tool_base_id"/>
<result property="name" column="tool_base_name"/> <result property="name" column="tool_base_name"/>
@@ -66,6 +39,9 @@
<result property="updateTime" column="tool_base_update_time"/> <result property="updateTime" column="tool_base_update_time"/>
<result property="deleted" column="tool_base_deleted"/> <result property="deleted" column="tool_base_deleted"/>
<result property="version" column="tool_base_version"/> <result property="version" column="tool_base_version"/>
</resultMap>
<resultMap id="toolBaseWithDataMap" extends="toolBaseMap" type="toolBase">
<association property="source"> <association property="source">
<id property="id" column="tool_base_source_id"/> <id property="id" column="tool_base_source_id"/>
<result property="data" column="tool_base_source_data"/> <result property="data" column="tool_base_source_data"/>

View File

@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="top.fatweb.oxygen.api.mapper.tool.ToolTemplateMapper"> <mapper namespace="top.fatweb.oxygen.api.mapper.tool.ToolTemplateMapper">
<select id="selectOne" resultMap="toolTemplateMap"> <select id="selectOne" resultMap="toolTemplateWithDataMap">
select t_b_tool_template.id as tool_template_id, select t_b_tool_template.id as tool_template_id,
t_b_tool_template.name as tool_template_name, t_b_tool_template.name as tool_template_name,
t_b_tool_template.ver as tool_template_ver,
t_b_tool_template.base_id as tool_template_base_id, t_b_tool_template.base_id as tool_template_base_id,
t_b_tool_template.source_id as tool_template_source_id, t_b_tool_template.source_id as tool_template_source_id,
t_b_tool_template.dist_id as tool_template_dist_id,
t_b_tool_template.enable as tool_template_enable, t_b_tool_template.enable as tool_template_enable,
t_b_tool_template.create_time as tool_template_create_time, t_b_tool_template.create_time as tool_template_create_time,
t_b_tool_template.update_time as tool_template_update_time, t_b_tool_template.update_time as tool_template_update_time,
@@ -18,16 +16,13 @@
tbtds.update_time as tool_template_source_update_time, tbtds.update_time as tool_template_source_update_time,
tbtds.deleted as tool_template_source_delete, tbtds.deleted as tool_template_source_delete,
tbtds.version as tool_template_source_version, tbtds.version as tool_template_source_version,
tbtdd.data as tool_template_dist_data, tbtb.name as tool_template_base_name,
tbtdd.create_time as tool_template_dist_create_time, tbtb.enable as tool_template_base_enable
tbtdd.update_time as tool_template_dist_update_time,
tbtdd.deleted as tool_template_dist_delete,
tbtdd.version as tool_template_dist_version
from t_b_tool_template from t_b_tool_template
left join (select * from t_b_tool_data where deleted = 0) as tbtds left join (select * from t_b_tool_data where deleted = 0) as tbtds
on tbtds.id = t_b_tool_template.source_id on tbtds.id = t_b_tool_template.source_id
left join (select * from t_b_tool_data where deleted = 0) as tbtdd left join (select * from t_b_tool_base where deleted = 0) as tbtb
on tbtdd.id = t_b_tool_template.dist_id on tbtb.id = t_b_tool_template.base_id
where t_b_tool_template.deleted = 0 where t_b_tool_template.deleted = 0
and t_b_tool_template.id = #{id} and t_b_tool_template.id = #{id}
</select> </select>
@@ -35,45 +30,39 @@
<select id="selectList" resultMap="toolTemplateMap"> <select id="selectList" resultMap="toolTemplateMap">
select t_b_tool_template.id as tool_template_id, select t_b_tool_template.id as tool_template_id,
t_b_tool_template.name as tool_template_name, t_b_tool_template.name as tool_template_name,
t_b_tool_template.ver as tool_template_ver,
t_b_tool_template.base_id as tool_template_base_id, t_b_tool_template.base_id as tool_template_base_id,
t_b_tool_template.source_id as tool_template_source_id, t_b_tool_template.source_id as tool_template_source_id,
t_b_tool_template.dist_id as tool_template_dist_id,
t_b_tool_template.enable as tool_template_enable, t_b_tool_template.enable as tool_template_enable,
t_b_tool_template.create_time as tool_template_create_time, t_b_tool_template.create_time as tool_template_create_time,
t_b_tool_template.update_time as tool_template_update_time, t_b_tool_template.update_time as tool_template_update_time,
t_b_tool_template.deleted as tool_template_deleted, t_b_tool_template.deleted as tool_template_deleted,
t_b_tool_template.version as tool_template_version, t_b_tool_template.version as tool_template_version,
tbtds.data as tool_template_source_data, tbtb.name as tool_template_base_name,
tbtds.create_time as tool_template_source_create_time, tbtb.enable as tool_template_base_enable
tbtds.update_time as tool_template_source_update_time,
tbtds.deleted as tool_template_source_delete,
tbtds.version as tool_template_source_version,
tbtdd.data as tool_template_dist_data,
tbtdd.create_time as tool_template_dist_create_time,
tbtdd.update_time as tool_template_dist_update_time,
tbtdd.deleted as tool_template_dist_delete,
tbtdd.version as tool_template_dist_version
from t_b_tool_template from t_b_tool_template
left join (select * from t_b_tool_data where deleted = 0) as tbtds left join (select * from t_b_tool_base where deleted = 0) as tbtb
on tbtds.id = t_b_tool_template.source_id on tbtb.id = t_b_tool_template.base_id
left join (select * from t_b_tool_data where deleted = 0) as tbtdd
on tbtdd.id = t_b_tool_template.dist_id
where t_b_tool_template.deleted = 0 where t_b_tool_template.deleted = 0
</select> </select>
<resultMap id="toolTemplateMap" type="toolTemplate"> <resultMap id="toolTemplateMap" type="toolTemplate">
<id property="id" column="tool_template_id"/> <id property="id" column="tool_template_id"/>
<result property="name" column="tool_template_name"/> <result property="name" column="tool_template_name"/>
<result property="ver" column="tool_template_ver"/>
<result property="baseId" column="tool_template_base_id"/> <result property="baseId" column="tool_template_base_id"/>
<result property="sourceId" column="tool_template_source_id"/> <result property="sourceId" column="tool_template_source_id"/>
<result property="distId" column="tool_template_dist_id"/>
<result property="enable" column="tool_template_enable"/> <result property="enable" column="tool_template_enable"/>
<result property="createTime" column="tool_template_create_time"/> <result property="createTime" column="tool_template_create_time"/>
<result property="updateTime" column="tool_template_update_time"/> <result property="updateTime" column="tool_template_update_time"/>
<result property="deleted" column="tool_template_deleted"/> <result property="deleted" column="tool_template_deleted"/>
<result property="version" column="tool_template_version"/> <result property="version" column="tool_template_version"/>
<association property="base">
<id property="id" column="tool_template_base_id"/>
<result property="name" column="tool_template_base_name"/>
<result property="enable" column="tool_template_base_enable"/>
</association>
</resultMap>
<resultMap id="toolTemplateWithDataMap" type="toolTemplate" extends="toolTemplateMap">
<association property="source"> <association property="source">
<id property="id" column="tool_template_source_id"/> <id property="id" column="tool_template_source_id"/>
<result property="data" column="tool_template_source_data"/> <result property="data" column="tool_template_source_data"/>
@@ -82,13 +71,5 @@
<result property="deleted" column="tool_template_source_deleted"/> <result property="deleted" column="tool_template_source_deleted"/>
<result property="version" column="tool_template_source_version"/> <result property="version" column="tool_template_source_version"/>
</association> </association>
<association property="dist">
<id property="id" column="tool_template_dist_id"/>
<result property="data" column="tool_template_dist_data"/>
<result property="createTime" column="tool_template_dist_create_time"/>
<result property="updateTime" column="tool_template_dist_update_time"/>
<result property="deleted" column="tool_template_dist_deleted"/>
<result property="version" column="tool_template_dist_version"/>
</association>
</resultMap> </resultMap>
</mapper> </mapper>