Add auto publish to tool management api

This commit is contained in:
2024-02-04 01:58:55 +08:00
parent 9692550198
commit c751b0984c
5 changed files with 46 additions and 15 deletions

View File

@@ -1,16 +1,13 @@
package top.fatweb.oxygen.api.controller.tool
import io.swagger.v3.oas.annotations.Operation
import org.springframework.web.bind.annotation.DeleteMapping
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PatchMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.PutMapping
import jakarta.validation.Valid
import org.springframework.web.bind.annotation.*
import top.fatweb.oxygen.api.annotation.BaseController
import top.fatweb.oxygen.api.entity.common.ResponseCode
import top.fatweb.oxygen.api.entity.common.ResponseResult
import top.fatweb.oxygen.api.param.tool.ToolManagementGetParam
import top.fatweb.oxygen.api.param.tool.ToolManagementPassParam
import top.fatweb.oxygen.api.service.tool.IManagementService
import top.fatweb.oxygen.api.vo.PageVo
import top.fatweb.oxygen.api.vo.tool.ToolVo
@@ -49,8 +46,14 @@ class ManagementController(
*/
@Operation(summary = "通过审核")
@PostMapping("/{id}")
fun pass(@PathVariable id: Long): ResponseResult<ToolVo> =
ResponseResult.databaseSuccess(ResponseCode.DATABASE_UPDATE_SUCCESS, data = managementService.pass(id))
fun pass(
@PathVariable id: Long,
@RequestBody @Valid toolManagementPassParam: ToolManagementPassParam
): ResponseResult<ToolVo> =
ResponseResult.databaseSuccess(
ResponseCode.DATABASE_UPDATE_SUCCESS,
data = managementService.pass(id, toolManagementPassParam)
)
/**
* Reject tool review

View File

@@ -0,0 +1,22 @@
package top.fatweb.oxygen.api.param.tool
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
/**
* Pass tool in management parameters
*
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
*/
data class ToolManagementPassParam(
/**
* Dist
*
* @author FatttSnake, fatttsnake@gmail.com
* @since 1.0.0
*/
@Schema(description = "产物")
@field:NotBlank(message = "Dist can not be blank")
val dist: String?
)

View File

@@ -3,6 +3,7 @@ package top.fatweb.oxygen.api.service.tool
import com.baomidou.mybatisplus.extension.service.IService
import top.fatweb.oxygen.api.entity.tool.Tool
import top.fatweb.oxygen.api.param.tool.ToolManagementGetParam
import top.fatweb.oxygen.api.param.tool.ToolManagementPassParam
import top.fatweb.oxygen.api.vo.PageVo
import top.fatweb.oxygen.api.vo.tool.ToolVo
@@ -19,7 +20,7 @@ interface IManagementService : IService<Tool> {
fun getPage(toolManagementGetParam: ToolManagementGetParam?): PageVo<ToolVo>
fun pass(id: Long): ToolVo
fun pass(id: Long, toolManagementPassParam: ToolManagementPassParam): ToolVo
fun reject(id: Long): ToolVo

View File

@@ -10,17 +10,17 @@ import org.springframework.transaction.annotation.Transactional
import top.fatweb.oxygen.api.converter.tool.ToolConverter
import top.fatweb.oxygen.api.entity.tool.RToolCategory
import top.fatweb.oxygen.api.entity.tool.Tool
import top.fatweb.oxygen.api.entity.tool.ToolData
import top.fatweb.oxygen.api.exception.NoRecordFoundException
import top.fatweb.oxygen.api.exception.ToolHasNotBeenPublishedException
import top.fatweb.oxygen.api.exception.ToolNotUnderReviewException
import top.fatweb.oxygen.api.mapper.tool.ManagementMapper
import top.fatweb.oxygen.api.param.tool.ToolManagementGetParam
import top.fatweb.oxygen.api.service.tool.IEditService
import top.fatweb.oxygen.api.param.tool.ToolManagementPassParam
import top.fatweb.oxygen.api.service.tool.IManagementService
import top.fatweb.oxygen.api.service.tool.IRToolCategoryService
import top.fatweb.oxygen.api.service.tool.IToolDataService
import top.fatweb.oxygen.api.util.PageUtil
import top.fatweb.oxygen.api.util.WebUtil
import top.fatweb.oxygen.api.vo.PageVo
import top.fatweb.oxygen.api.vo.tool.ToolVo
import java.time.LocalDateTime
@@ -44,6 +44,7 @@ class ManagementServiceImpl(
override fun getOne(id: Long): ToolVo =
baseMapper.selectOne(id)
?.let(ToolConverter::toolToToolVo) ?: throw NoRecordFoundException()
override fun getPage(toolManagementGetParam: ToolManagementGetParam?): PageVo<ToolVo> {
val toolIdsPage = Page<Long>(toolManagementGetParam?.currentPage ?: 1, toolManagementGetParam?.pageSize ?: 20)
@@ -65,12 +66,16 @@ class ManagementServiceImpl(
return ToolConverter.toolPageToToolPageVo(toolPage)
}
override fun pass(id: Long): ToolVo {
override fun pass(id: Long, toolManagementPassParam: ToolManagementPassParam): ToolVo {
val tool = this.getById(id) ?: throw NoRecordFoundException()
if (tool.review !== Tool.ReviewType.PROCESSING) {
throw ToolNotUnderReviewException()
}
toolDataService.update(
KtUpdateWrapper(ToolData()).eq(ToolData::id, tool.distId).set(ToolData::data, toolManagementPassParam.dist)
)
this.update(
KtUpdateWrapper(Tool())
.eq(Tool::id, id)

View File

@@ -44,7 +44,7 @@ class ToolCategoryServiceImpl : ServiceImpl<ToolCategoryMapper, ToolCategory>(),
override fun update(toolCategoryUpdateParam: ToolCategoryUpdateParam): ToolCategoryVo {
val toolCategory = ToolCategoryConverter.toolCategoryUpdateParamToToolCategory(toolCategoryUpdateParam)
if (this.updateById(toolCategory)) {
if (!this.updateById(toolCategory)) {
throw DatabaseUpdateException()
}