【增加发布保存为草稿,发布时添加发布描述】
This commit is contained in:
parent
e4dd831c5d
commit
39a394be75
@ -1,6 +1,9 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
jwt "github.com/appleboy/gin-jwt/v2"
|
jwt "github.com/appleboy/gin-jwt/v2"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
@ -9,8 +12,6 @@ import (
|
|||||||
"joylink.club/bj-rtsts-server/dto/publishedGi"
|
"joylink.club/bj-rtsts-server/dto/publishedGi"
|
||||||
"joylink.club/bj-rtsts-server/middleware"
|
"joylink.club/bj-rtsts-server/middleware"
|
||||||
"joylink.club/bj-rtsts-server/service"
|
"joylink.club/bj-rtsts-server/service"
|
||||||
"net/http"
|
|
||||||
"strconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func InitPublishedGiRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
func InitPublishedGiRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||||
@ -20,6 +21,7 @@ func InitPublishedGiRouter(api *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddl
|
|||||||
authed.GET("/:id", getPublishedGiById)
|
authed.GET("/:id", getPublishedGiById)
|
||||||
authed.POST("/publish", publishFromDraft)
|
authed.POST("/publish", publishFromDraft)
|
||||||
authed.DELETE("/:id", deletePublishedGiById)
|
authed.DELETE("/:id", deletePublishedGiById)
|
||||||
|
authed.POST("/saveAsDrafting/:id", saveAsDraftingFromPublish)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分页查询发布的图形数据
|
// 分页查询发布的图形数据
|
||||||
@ -160,3 +162,34 @@ func deletePublishedGiById(c *gin.Context) {
|
|||||||
zap.S().Debug("id查询发布的图形数据", id)
|
zap.S().Debug("id查询发布的图形数据", id)
|
||||||
service.DeletePublishedGiById(id)
|
service.DeletePublishedGiById(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// id 从发布数据拉取信息到草稿
|
||||||
|
//
|
||||||
|
// @Summary 从发布数据拉取信息到草稿
|
||||||
|
//
|
||||||
|
// @Security JwtAuth
|
||||||
|
//
|
||||||
|
// @Description 从发布数据拉取信息到草稿
|
||||||
|
// @Tags 发布的图形数据Api
|
||||||
|
// @Accept json
|
||||||
|
// @Produce json
|
||||||
|
// @Param id path int true "id"
|
||||||
|
// @Param PublishReqDto query publishedGi.PublishReqDto true "要保存的名称"
|
||||||
|
// @Success 200 {object} nil
|
||||||
|
// @Failure 401 {object} dto.ErrorDto
|
||||||
|
// @Failure 500 {object} dto.ErrorDto
|
||||||
|
// @Router /api/v1/publishedGi/{id} [post]
|
||||||
|
func saveAsDraftingFromPublish(c *gin.Context) {
|
||||||
|
user, _ := c.Get(middleware.IdentityKey)
|
||||||
|
idStr := c.Param("id")
|
||||||
|
zap.S().Debugf("用户【%v】拉取发布图形数据【%s】", user, idStr)
|
||||||
|
id, err := strconv.Atoi(idStr)
|
||||||
|
if err != nil {
|
||||||
|
panic(dto.ErrorDto{Code: dto.ArgumentParseError, Message: err.Error()})
|
||||||
|
}
|
||||||
|
req := publishedGi.PublishReqDto{}
|
||||||
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
|
panic(dto.ErrorDto{Code: dto.ArgumentParseError, Message: err.Error()})
|
||||||
|
}
|
||||||
|
service.SaveAsDraftingFromPublish(int32(id), user.(*model.User), req.Name)
|
||||||
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit f0da7c7c5c5a9fc8781d0d612a84e3a97f8c0f81
|
Subproject commit 83338e447623fca033c49005a537670e15f40b2a
|
@ -32,6 +32,9 @@ func newPublishedGi(db *gorm.DB, opts ...gen.DOOption) publishedGi {
|
|||||||
_publishedGi.Proto = field.NewBytes(tableName, "proto")
|
_publishedGi.Proto = field.NewBytes(tableName, "proto")
|
||||||
_publishedGi.UserID = field.NewInt32(tableName, "user_id")
|
_publishedGi.UserID = field.NewInt32(tableName, "user_id")
|
||||||
_publishedGi.PublishAt = field.NewTime(tableName, "publish_at")
|
_publishedGi.PublishAt = field.NewTime(tableName, "publish_at")
|
||||||
|
_publishedGi.Category = field.NewInt32(tableName, "category")
|
||||||
|
_publishedGi.Note = field.NewString(tableName, "note")
|
||||||
|
_publishedGi.Status = field.NewInt32(tableName, "status")
|
||||||
|
|
||||||
_publishedGi.fillFieldMap()
|
_publishedGi.fillFieldMap()
|
||||||
|
|
||||||
@ -47,6 +50,9 @@ type publishedGi struct {
|
|||||||
Proto field.Bytes // 图形界面数据
|
Proto field.Bytes // 图形界面数据
|
||||||
UserID field.Int32 // 发布用户id
|
UserID field.Int32 // 发布用户id
|
||||||
PublishAt field.Time // 发布时间
|
PublishAt field.Time // 发布时间
|
||||||
|
Category field.Int32 // 厂家信息
|
||||||
|
Note field.String // 发布描述
|
||||||
|
Status field.Int32 // 显示状态
|
||||||
|
|
||||||
fieldMap map[string]field.Expr
|
fieldMap map[string]field.Expr
|
||||||
}
|
}
|
||||||
@ -68,6 +74,9 @@ func (p *publishedGi) updateTableName(table string) *publishedGi {
|
|||||||
p.Proto = field.NewBytes(table, "proto")
|
p.Proto = field.NewBytes(table, "proto")
|
||||||
p.UserID = field.NewInt32(table, "user_id")
|
p.UserID = field.NewInt32(table, "user_id")
|
||||||
p.PublishAt = field.NewTime(table, "publish_at")
|
p.PublishAt = field.NewTime(table, "publish_at")
|
||||||
|
p.Category = field.NewInt32(table, "category")
|
||||||
|
p.Note = field.NewString(table, "note")
|
||||||
|
p.Status = field.NewInt32(table, "status")
|
||||||
|
|
||||||
p.fillFieldMap()
|
p.fillFieldMap()
|
||||||
|
|
||||||
@ -84,12 +93,15 @@ func (p *publishedGi) GetFieldByName(fieldName string) (field.OrderExpr, bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *publishedGi) fillFieldMap() {
|
func (p *publishedGi) fillFieldMap() {
|
||||||
p.fieldMap = make(map[string]field.Expr, 5)
|
p.fieldMap = make(map[string]field.Expr, 8)
|
||||||
p.fieldMap["id"] = p.ID
|
p.fieldMap["id"] = p.ID
|
||||||
p.fieldMap["name"] = p.Name
|
p.fieldMap["name"] = p.Name
|
||||||
p.fieldMap["proto"] = p.Proto
|
p.fieldMap["proto"] = p.Proto
|
||||||
p.fieldMap["user_id"] = p.UserID
|
p.fieldMap["user_id"] = p.UserID
|
||||||
p.fieldMap["publish_at"] = p.PublishAt
|
p.fieldMap["publish_at"] = p.PublishAt
|
||||||
|
p.fieldMap["category"] = p.Category
|
||||||
|
p.fieldMap["note"] = p.Note
|
||||||
|
p.fieldMap["status"] = p.Status
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p publishedGi) clone(db *gorm.DB) publishedGi {
|
func (p publishedGi) clone(db *gorm.DB) publishedGi {
|
||||||
|
@ -17,6 +17,9 @@ type PublishedGi struct {
|
|||||||
Proto []byte `gorm:"column:proto;not null;comment:图形界面数据" json:"proto"` // 图形界面数据
|
Proto []byte `gorm:"column:proto;not null;comment:图形界面数据" json:"proto"` // 图形界面数据
|
||||||
UserID int32 `gorm:"column:user_id;not null;comment:发布用户id" json:"user_id"` // 发布用户id
|
UserID int32 `gorm:"column:user_id;not null;comment:发布用户id" json:"user_id"` // 发布用户id
|
||||||
PublishAt time.Time `gorm:"column:publish_at;not null;comment:发布时间" json:"publish_at"` // 发布时间
|
PublishAt time.Time `gorm:"column:publish_at;not null;comment:发布时间" json:"publish_at"` // 发布时间
|
||||||
|
Category int32 `gorm:"column:category;comment:厂家信息" json:"category"` // 厂家信息
|
||||||
|
Note string `gorm:"column:note;comment:发布描述" json:"note"` // 发布描述
|
||||||
|
Status int32 `gorm:"column:status;comment:显示状态" json:"status"` // 显示状态
|
||||||
}
|
}
|
||||||
|
|
||||||
// TableName PublishedGi's table name
|
// TableName PublishedGi's table name
|
||||||
|
78
docs/docs.go
78
docs/docs.go
@ -945,6 +945,11 @@ const docTemplate = `{
|
|||||||
"description": "发布后的名称",
|
"description": "发布后的名称",
|
||||||
"name": "name",
|
"name": "name",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"name": "note",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@ -1014,6 +1019,67 @@ const docTemplate = `{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"post": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"JwtAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "从发布数据拉取信息到草稿",
|
||||||
|
"consumes": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"发布的图形数据Api"
|
||||||
|
],
|
||||||
|
"summary": "从发布数据拉取信息到草稿",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "id",
|
||||||
|
"name": "id",
|
||||||
|
"in": "path",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "草稿数据的id",
|
||||||
|
"name": "draftingId",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "发布后的名称",
|
||||||
|
"name": "name",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"name": "note",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK"
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Unauthorized",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/dto.ErrorDto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/dto.ErrorDto"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"delete": {
|
"delete": {
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
@ -1888,6 +1954,10 @@ const docTemplate = `{
|
|||||||
"model.PublishedGi": {
|
"model.PublishedGi": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"category": {
|
||||||
|
"description": "厂家信息",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"description": "id",
|
"description": "id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
@ -1896,6 +1966,10 @@ const docTemplate = `{
|
|||||||
"description": "发布图形界面名称",
|
"description": "发布图形界面名称",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"note": {
|
||||||
|
"description": "发布描述",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"proto": {
|
"proto": {
|
||||||
"description": "图形界面数据",
|
"description": "图形界面数据",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
@ -1907,6 +1981,10 @@ const docTemplate = `{
|
|||||||
"description": "发布时间",
|
"description": "发布时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"status": {
|
||||||
|
"description": "显示状态",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"user_id": {
|
"user_id": {
|
||||||
"description": "发布用户id",
|
"description": "发布用户id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -938,6 +938,11 @@
|
|||||||
"description": "发布后的名称",
|
"description": "发布后的名称",
|
||||||
"name": "name",
|
"name": "name",
|
||||||
"in": "query"
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"name": "note",
|
||||||
|
"in": "query"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
@ -1007,6 +1012,67 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"post": {
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"JwtAuth": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "从发布数据拉取信息到草稿",
|
||||||
|
"consumes": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"发布的图形数据Api"
|
||||||
|
],
|
||||||
|
"summary": "从发布数据拉取信息到草稿",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "id",
|
||||||
|
"name": "id",
|
||||||
|
"in": "path",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "integer",
|
||||||
|
"description": "草稿数据的id",
|
||||||
|
"name": "draftingId",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"description": "发布后的名称",
|
||||||
|
"name": "name",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"name": "note",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "OK"
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "Unauthorized",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/dto.ErrorDto"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Internal Server Error",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/dto.ErrorDto"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"delete": {
|
"delete": {
|
||||||
"security": [
|
"security": [
|
||||||
{
|
{
|
||||||
@ -1881,6 +1947,10 @@
|
|||||||
"model.PublishedGi": {
|
"model.PublishedGi": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"category": {
|
||||||
|
"description": "厂家信息",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"id": {
|
"id": {
|
||||||
"description": "id",
|
"description": "id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
@ -1889,6 +1959,10 @@
|
|||||||
"description": "发布图形界面名称",
|
"description": "发布图形界面名称",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"note": {
|
||||||
|
"description": "发布描述",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"proto": {
|
"proto": {
|
||||||
"description": "图形界面数据",
|
"description": "图形界面数据",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
@ -1900,6 +1974,10 @@
|
|||||||
"description": "发布时间",
|
"description": "发布时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
"status": {
|
||||||
|
"description": "显示状态",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"user_id": {
|
"user_id": {
|
||||||
"description": "发布用户id",
|
"description": "发布用户id",
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
|
@ -191,12 +191,18 @@ definitions:
|
|||||||
type: object
|
type: object
|
||||||
model.PublishedGi:
|
model.PublishedGi:
|
||||||
properties:
|
properties:
|
||||||
|
category:
|
||||||
|
description: 厂家信息
|
||||||
|
type: integer
|
||||||
id:
|
id:
|
||||||
description: id
|
description: id
|
||||||
type: integer
|
type: integer
|
||||||
name:
|
name:
|
||||||
description: 发布图形界面名称
|
description: 发布图形界面名称
|
||||||
type: string
|
type: string
|
||||||
|
note:
|
||||||
|
description: 发布描述
|
||||||
|
type: string
|
||||||
proto:
|
proto:
|
||||||
description: 图形界面数据
|
description: 图形界面数据
|
||||||
items:
|
items:
|
||||||
@ -205,6 +211,9 @@ definitions:
|
|||||||
publish_at:
|
publish_at:
|
||||||
description: 发布时间
|
description: 发布时间
|
||||||
type: string
|
type: string
|
||||||
|
status:
|
||||||
|
description: 显示状态
|
||||||
|
type: integer
|
||||||
user_id:
|
user_id:
|
||||||
description: 发布用户id
|
description: 发布用户id
|
||||||
type: integer
|
type: integer
|
||||||
@ -760,6 +769,45 @@ paths:
|
|||||||
summary: id查询发布的图形数据
|
summary: id查询发布的图形数据
|
||||||
tags:
|
tags:
|
||||||
- 发布的图形数据Api
|
- 发布的图形数据Api
|
||||||
|
post:
|
||||||
|
consumes:
|
||||||
|
- application/json
|
||||||
|
description: 从发布数据拉取信息到草稿
|
||||||
|
parameters:
|
||||||
|
- description: id
|
||||||
|
in: path
|
||||||
|
name: id
|
||||||
|
required: true
|
||||||
|
type: integer
|
||||||
|
- description: 草稿数据的id
|
||||||
|
in: query
|
||||||
|
name: draftingId
|
||||||
|
type: integer
|
||||||
|
- description: 发布后的名称
|
||||||
|
in: query
|
||||||
|
name: name
|
||||||
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: note
|
||||||
|
type: string
|
||||||
|
produces:
|
||||||
|
- application/json
|
||||||
|
responses:
|
||||||
|
"200":
|
||||||
|
description: OK
|
||||||
|
"401":
|
||||||
|
description: Unauthorized
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/dto.ErrorDto'
|
||||||
|
"500":
|
||||||
|
description: Internal Server Error
|
||||||
|
schema:
|
||||||
|
$ref: '#/definitions/dto.ErrorDto'
|
||||||
|
security:
|
||||||
|
- JwtAuth: []
|
||||||
|
summary: 从发布数据拉取信息到草稿
|
||||||
|
tags:
|
||||||
|
- 发布的图形数据Api
|
||||||
/api/v1/publishedGi/list:
|
/api/v1/publishedGi/list:
|
||||||
get:
|
get:
|
||||||
consumes:
|
consumes:
|
||||||
@ -863,6 +911,9 @@ paths:
|
|||||||
in: query
|
in: query
|
||||||
name: name
|
name: name
|
||||||
type: string
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: note
|
||||||
|
type: string
|
||||||
produces:
|
produces:
|
||||||
- application/json
|
- application/json
|
||||||
responses:
|
responses:
|
||||||
|
@ -17,7 +17,7 @@ type PublishReqDto struct {
|
|||||||
Name string `json:"name" form:"name"`
|
Name string `json:"name" form:"name"`
|
||||||
//草稿数据的id
|
//草稿数据的id
|
||||||
DraftId int32 `json:"draftingId" form:"draftingId"`
|
DraftId int32 `json:"draftingId" form:"draftingId"`
|
||||||
|
Note string `json:"note" form:"note"`
|
||||||
//Time dto.JsonTime `json:"time" form:"time"`
|
//Time dto.JsonTime `json:"time" form:"time"`
|
||||||
////是否覆盖同名数据
|
////是否覆盖同名数据
|
||||||
//Overwrite bool `json:"overwrite" form:"overwrite"`
|
//Overwrite bool `json:"overwrite" form:"overwrite"`
|
||||||
|
3
main.go
3
main.go
@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
swaggerFiles "github.com/swaggo/files" // swagger embed files
|
swaggerFiles "github.com/swaggo/files" // swagger embed files
|
||||||
ginSwagger "github.com/swaggo/gin-swagger" // gin-swagger middleware
|
ginSwagger "github.com/swaggo/gin-swagger" // gin-swagger middleware
|
||||||
"joylink.club/bj-rtsts-server/api"
|
"joylink.club/bj-rtsts-server/api"
|
||||||
@ -31,7 +32,7 @@ func main() {
|
|||||||
api.InitDraftingRouter(router, authMiddleware)
|
api.InitDraftingRouter(router, authMiddleware)
|
||||||
api.InitPublishedGiRouter(router, authMiddleware)
|
api.InitPublishedGiRouter(router, authMiddleware)
|
||||||
api.InitSimulationRouter(router, authMiddleware)
|
api.InitSimulationRouter(router, authMiddleware)
|
||||||
|
api.InitCategoryRouter(router, authMiddleware)
|
||||||
docs.SwaggerInfo.Title = "CBTC测试系统API"
|
docs.SwaggerInfo.Title = "CBTC测试系统API"
|
||||||
engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ func CreateCategory(dto *dto.CategoryDto) (*model.Category, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
return dbquery.Category.Where(dbquery.Category.Name.Eq(dto.Name)).Order(dbquery.Drafting.CreatedAt).Debug().First()
|
return dbquery.Category.Where(dbquery.Category.Name.Eq(dto.Name)).Order(dbquery.Category.CreatedAt).Debug().First()
|
||||||
}
|
}
|
||||||
|
|
||||||
func QueryCategory(id int32) *model.Category {
|
func QueryCategory(id int32) *model.Category {
|
||||||
|
@ -12,9 +12,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func PageQueryPublishedGi(req *publishedGi.PublishedGiReqDto) *dto.PageDto {
|
func PageQueryPublishedGi(req *publishedGi.PublishedGiReqDto) *dto.PageDto {
|
||||||
where := dbquery.PublishedGi.Where()
|
where := dbquery.PublishedGi.Where(dbquery.PublishedGi.Status.Eq(1))
|
||||||
if req.Name != "" {
|
if req.Name != "" {
|
||||||
where.Where(dbquery.PublishedGi.Name.Like(fmt.Sprintf("%%%s%%", req.Name)))
|
where = where.Where(dbquery.PublishedGi.Name.Like(fmt.Sprintf("%%%s%%", req.Name)))
|
||||||
}
|
}
|
||||||
result, count, err := where.Debug().FindByPage(req.Offset(), req.Size)
|
result, count, err := where.Debug().FindByPage(req.Offset(), req.Size)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -28,9 +28,9 @@ func PageQueryPublishedGi(req *publishedGi.PublishedGiReqDto) *dto.PageDto {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ListQueryPublishedGi(req *publishedGi.PublishedGiReqDto) []*publishedGi.PublishedGiDto {
|
func ListQueryPublishedGi(req *publishedGi.PublishedGiReqDto) []*publishedGi.PublishedGiDto {
|
||||||
where := dbquery.PublishedGi.Where()
|
where := dbquery.PublishedGi.Where(dbquery.PublishedGi.Status.Eq(1))
|
||||||
if req.Name != "" {
|
if req.Name != "" {
|
||||||
where.Where(dbquery.PublishedGi.Name.Like(fmt.Sprintf("%%%s%%", req.Name)))
|
where = where.Where(dbquery.PublishedGi.Name.Like(fmt.Sprintf("%%%s%%", req.Name)))
|
||||||
}
|
}
|
||||||
find, err := where.Debug().Find()
|
find, err := where.Debug().Find()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -40,7 +40,7 @@ func ListQueryPublishedGi(req *publishedGi.PublishedGiReqDto) []*publishedGi.Pub
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ListAllPublishedGi() ([]*model.PublishedGi, error) {
|
func ListAllPublishedGi() ([]*model.PublishedGi, error) {
|
||||||
return dbquery.PublishedGi.Debug().Find()
|
return dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.Status.Eq(1)).Find()
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetPublishedGiById(id int) (*model.PublishedGi, error) {
|
func GetPublishedGiById(id int) (*model.PublishedGi, error) {
|
||||||
@ -52,26 +52,32 @@ func PublishFormDraft(req *publishedGi.PublishReqDto, user *model.User) {
|
|||||||
if draft.Proto == nil || len(draft.Proto) == 0 {
|
if draft.Proto == nil || len(draft.Proto) == 0 {
|
||||||
panic(fmt.Sprintf("草稿[%v]绘图数据信息为空", req.DraftId))
|
panic(fmt.Sprintf("草稿[%v]绘图数据信息为空", req.DraftId))
|
||||||
}
|
}
|
||||||
|
//需要删除的同名数据
|
||||||
|
oldData, _ := dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.Name.Eq(req.Name)).Find()
|
||||||
|
if oldData != nil && len(oldData) > 0 {
|
||||||
|
// 逻辑删除
|
||||||
|
dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.Name.Eq(req.Name)).UpdateColumn(dbquery.PublishedGi.Status, 0)
|
||||||
|
for _, v := range oldData {
|
||||||
|
memory.DeleteMapVerifyStructure(v.ID) // 移除内存中的发布信息
|
||||||
|
}
|
||||||
|
}
|
||||||
entity := model.PublishedGi{
|
entity := model.PublishedGi{
|
||||||
Name: req.Name,
|
Name: req.Name,
|
||||||
Proto: draft.Proto,
|
Proto: draft.Proto,
|
||||||
UserID: user.ID,
|
UserID: user.ID,
|
||||||
PublishAt: time.Now(),
|
PublishAt: time.Now(),
|
||||||
}
|
Category: draft.Category,
|
||||||
//删除同名数据
|
Note: req.Note,
|
||||||
oldData, _ := dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.Name.Eq(req.Name)).Find()
|
Status: 1,
|
||||||
if oldData != nil && len(oldData) > 0 {
|
|
||||||
dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.Name.Eq(req.Name)).Delete()
|
|
||||||
for _, v := range oldData {
|
|
||||||
memory.DeleteMapVerifyStructure(v.ID) // 移除内存中的发布信息
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//插入新数据
|
//插入新数据
|
||||||
err := dbquery.PublishedGi.Debug().Create(&entity)
|
err := dbquery.PublishedGi.Debug().Create(&entity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(dto.ErrorDto{Code: dto.DataOperationError, Message: fmt.Sprintf("数据创建失败:\n%s", err.Error())})
|
panic(dto.ErrorDto{Code: dto.DataOperationError, Message: fmt.Sprintf("数据创建失败:\n%s", err.Error())})
|
||||||
}
|
}
|
||||||
newData, _ := dbquery.PublishedGi.Where(dbquery.PublishedGi.Name.Eq(req.Name)).First()
|
newData, _ := dbquery.PublishedGi.
|
||||||
|
Where(dbquery.PublishedGi.Name.Eq(req.Name), dbquery.PublishedGi.Status.Eq(1)).
|
||||||
|
Order(dbquery.PublishedGi.PublishAt.Desc()).First()
|
||||||
// 地图信息更新到缓存
|
// 地图信息更新到缓存
|
||||||
if newData != nil {
|
if newData != nil {
|
||||||
memory.PublishMapVerifyStructure(newData)
|
memory.PublishMapVerifyStructure(newData)
|
||||||
@ -79,6 +85,29 @@ func PublishFormDraft(req *publishedGi.PublishReqDto, user *model.User) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DeletePublishedGiById(id int) {
|
func DeletePublishedGiById(id int) {
|
||||||
_, _ = dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.ID.Eq(int32(id))).Delete()
|
dbquery.PublishedGi.Debug().Where(dbquery.PublishedGi.ID.Eq(int32(id))).UpdateColumn(dbquery.PublishedGi.Status, 0)
|
||||||
memory.DeleteMapVerifyStructure(int32(id)) // 移除内存中的发布信息
|
memory.DeleteMapVerifyStructure(int32(id)) // 移除内存中的发布信息
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SaveAsDraftingFromPublish(id int32, user *model.User, name string) {
|
||||||
|
num, _ := dbquery.Drafting.Where(dbquery.Drafting.Name.Eq(name)).Count()
|
||||||
|
if num > 0 { // 处理重名情况
|
||||||
|
panic(dto.ErrorDto{Code: dto.DataOperationError, Message: fmt.Sprintf("草稿【%s】已存在", name)})
|
||||||
|
}
|
||||||
|
publishedGi, err := dbquery.PublishedGi.Where(dbquery.PublishedGi.ID.Eq(id)).Debug().First()
|
||||||
|
if err != nil {
|
||||||
|
panic(dto.ErrorDto{Code: dto.DataOperationError, Message: err.Error()})
|
||||||
|
}
|
||||||
|
drafting := &model.Drafting{
|
||||||
|
Name: name,
|
||||||
|
Category: publishedGi.Category,
|
||||||
|
Proto: publishedGi.Proto,
|
||||||
|
CreatorID: user.ID,
|
||||||
|
CreatedAt: time.Now(),
|
||||||
|
UpdateAt: time.Now(),
|
||||||
|
}
|
||||||
|
err1 := dbquery.Drafting.Save(drafting)
|
||||||
|
if err1 != nil {
|
||||||
|
panic(dto.ErrorDto{Code: dto.DataOperationError, Message: err1.Error()})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user