package v1
|
|
import (
|
"apsClient/model"
|
"apsClient/model/request"
|
"apsClient/pkg/contextx"
|
"apsClient/pkg/ecode"
|
"apsClient/service"
|
"github.com/gin-gonic/gin"
|
)
|
|
type ProcessModelApi struct{}
|
|
// List
|
// @Tags 工艺模型
|
// @Summary 获取工艺模型列表
|
// @Produce application/json
|
// @Param object query request.ProcessModelList true "查询参数"
|
// @Success 200 {object} contextx.Response{data=[]model.ProcessModel} "成功"
|
// @Router /v1/processModel/list [get]
|
func (slf *ProcessModelApi) List(c *gin.Context) {
|
var params request.ProcessModelList
|
ctx, ok := contextx.NewContext(c, ¶ms)
|
if !ok {
|
return
|
}
|
oldProcessModel, _ := service.GetProcessModelByNumber(params.Number)
|
offset, limit, push := GetOffsetAndLimit(oldProcessModel, params.Page, params.PageSize)
|
list, total, err := service.GetProcessModelList(offset, limit, params.Number)
|
if err != nil {
|
ctx.Fail(ecode.DBErr)
|
return
|
}
|
|
if push { //粘在前面
|
list = append([]*model.ProcessModel{oldProcessModel}, list...)
|
}
|
for _, processModel := range list {
|
if processModel.Procedure == oldProcessModel.Procedure && processModel.Product == oldProcessModel.Product {
|
processModel.IsUpdate = processModel.Number != params.Number
|
}
|
if processModel.IsUpdate {
|
processModel.NewNumber, processModel.NewParamsMap = processModel.Number, processModel.ParamsMap
|
processModel.Number, processModel.ParamsMap = oldProcessModel.Number, oldProcessModel.ParamsMap
|
}
|
}
|
ctx.ResultList(list, total)
|
}
|
|
func GetOffsetAndLimit(current *model.ProcessModel, page, pageSize int) (offset, limit int, push bool) {
|
offset = (page - 1) * pageSize
|
if current.IsNew {
|
offset--
|
}
|
push = current.IsNew && page == 1
|
limit = pageSize
|
if push {
|
limit--
|
}
|
return offset, limit, push
|
}
|