liujiandao
2024-04-09 84ba1d3f701f6f128ffc1b23b333453ea153b5f5
controllers/fineness.go
@@ -1,9 +1,11 @@
package controllers
import (
   "errors"
   "github.com/gin-gonic/gin"
   "gorm.io/gorm"
   "silkserver/controllers/request"
   "silkserver/controllers/response"
   "silkserver/extend/code"
   "silkserver/extend/util"
   "silkserver/models"
@@ -15,21 +17,24 @@
type FinenessController struct{}
// Add
// RegisterAdd
// @Tags      纤度登记
// @Summary   纤度登记添加
// @Produce   application/json
// @Param     object  body  request.AddFinenessRegister true  "字典信息"
// @Param     Authorization   header string true "token"
// @Success   200 {object} util.Response "成功"
// @Router    /api-jl/v1/fineness/register [post]
func (slf FinenessController) Add(c *gin.Context) {
func (slf FinenessController) RegisterAdd(c *gin.Context) {
   var reqParams request.AddFinenessRegister
   var params models.FinenessRegister
   if err := c.BindJSON(&reqParams); err != nil {
      logx.Errorf("RegisterAdd 参数解析失败:%v", err.Error())
      util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
      return
   }
   if err := structx.AssignTo(reqParams, &params); err != nil {
      logx.Errorf("RegisterAdd 数据转换错误:%v", err.Error())
      util.ResponseFormat(c, code.RequestParamError, "数据转换错误")
      return
   }
@@ -58,30 +63,45 @@
   if err != nil {
      logx.Errorf("service.FinenessCheck err:%v, finenessRegister:%+v", err, params)
      util.ResponseFormat(c, code.RequestParamError, "生成检验表失败")
      return
   }
   util.ResponseFormat(c, code.Success, "保存成功")
}
func (slf FinenessController) ParamsCheck(params models.FinenessRegister) (err error) {
   if params.ID == 0 {
      _, err = models.NewFinenessRegisterSearch().SetNumber(params.Number).First()
      if err != gorm.ErrRecordNotFound {
         return errors.New("编码重复")
      }
   } else {
      old, err := models.NewFinenessRegisterSearch().SetID(params.ID).First()
      if err != nil {
         return errors.New("记录不存在")
      }
      if old.Number != params.Number {
         return errors.New("编码不能修改")
      }
   }
   return nil
}
// List
// RegisterList
// @Tags      纤度登记
// @Summary   纤度登记列表
// @Produce   application/json
// @Param     object  query    request.GetFinenessRegisterList true  "查询参数"
// @Success   200   {object}  util.ResponseList{data=[]models.FinenessRegister}  "成功"
// @Router    /api-jl/v1/fineness/register [get]
func (slf FinenessController) List(c *gin.Context) {
func (slf FinenessController) RegisterList(c *gin.Context) {
   var params request.GetFinenessRegisterList
   if err := c.ShouldBindQuery(&params); err != nil {
      util.ResponseFormat(c, code.RequestParamError, err.Error())
      return
   }
   list, total, err := models.NewFinenessRegisterSearch().Find()
   list, total, err := models.NewFinenessRegisterSearch().SetKeyword(params.Keyword).SetPage(params.Page, params.PageSize).Find()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查找失败")
      return
@@ -90,14 +110,14 @@
   util.ResponseFormatList(c, code.Success, list, total)
}
// Info
// RegisterInfo
// @Tags      纤度登记
// @Summary   纤度登记详情
// @Produce   application/json
// @Param     id  path string true  "字典信息"
// @Success   200 {object} util.ResponseList{data=models.FinenessRegister} "成功"
// @Router    /api-jl/v1/fineness/register/{id} [get]
func (slf FinenessController) Info(c *gin.Context) {
func (slf FinenessController) RegisterInfo(c *gin.Context) {
   idStr := c.Param("id")
   if idStr == "0" || idStr == "" {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
@@ -118,14 +138,14 @@
   util.ResponseFormat(c, code.Success, info)
}
// Delete
// RegisterDelete
// @Tags      纤度登记
// @Summary   纤度登记删除
// @Produce   application/json
// @Param     id  path string true  "字典信息"
// @Success   200 {object} util.Response "成功"
// @Router    /api-jl/v1/fineness/register/{id} [delete]
func (slf FinenessController) Delete(c *gin.Context) {
func (slf FinenessController) RegisterDelete(c *gin.Context) {
   idStr := c.Param("id")
   if idStr == "0" || idStr == "" {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
@@ -145,3 +165,138 @@
   }
   util.ResponseFormat(c, code.UpdateSuccess, "删除成功")
}
// CheckList
// @Tags      纤度检验
// @Summary   纤度检验列表
// @Produce   application/json
// @Param     object  query    request.GetFinenessRegisterList true  "查询参数"
// @Success   200   {object}  util.ResponseList{data=[]models.FinenessCheck}  "成功"
// @Router    /api-jl/v1/fineness/check [get]
func (slf FinenessController) CheckList(c *gin.Context) {
   var params request.GetFinenessRegisterList
   if err := c.ShouldBindQuery(&params); err != nil {
      util.ResponseFormat(c, code.RequestParamError, err.Error())
      return
   }
   list, total, err := models.NewFinenessCheckSearch().SetPage(params.Page, params.PageSize).Find()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查找失败")
      return
   }
   util.ResponseFormatList(c, code.Success, list, total)
}
// CheckInfo
// @Tags      纤度检验
// @Summary   纤度检验详情
// @Produce   application/json
// @Param     id  path string true  "字典信息"
// @Success   200 {object} util.ResponseList{data=response.FinenessCheckInfo} "成功"
// @Router    /api-jl/v1/fineness/check/{id} [get]
func (slf FinenessController) CheckInfo(c *gin.Context) {
   idStr := c.Param("id")
   if idStr == "0" || idStr == "" {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
      return
   }
   id := convertx.StringToUInt(idStr)
   if id == 0 {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
      return
   }
   info, err := models.NewFinenessCheckSearch().SetID(id).SetPreload().First()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查找失败")
      return
   }
   resp := new(response.FinenessCheckInfo)
   resp.Info = info
   resp.Items, err = models.NewFinenessCheckItemSearch().SetFinenessRegisterID(info.FinenessRegisterID).FindAll()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查找失败")
      return
   }
   util.ResponseFormat(c, code.Success, resp)
}
// CheckDelete
// @Tags      纤度检验
// @Summary   纤度检验删除
// @Produce   application/json
// @Param     id  path string true  "字典信息"
// @Success   200 {object} util.Response "成功"
// @Router    /api-jl/v1/fineness/check/{id} [delete]
func (slf FinenessController) CheckDelete(c *gin.Context) {
   idStr := c.Param("id")
   if idStr == "0" || idStr == "" {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
      return
   }
   id := convertx.StringToUInt(idStr)
   if id == 0 {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
      return
   }
   check, err := models.NewFinenessCheckSearch().SetID(id).First()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "检验记录不存在")
      return
   }
   err = models.WithTransaction(func(db *gorm.DB) error {
      err := models.NewFinenessCheckSearch().SetOrm(db).SetID(id).Delete()
      if err != nil {
         return err
      }
      return models.NewFinenessCheckItemSearch().SetOrm(db).SetFinenessRegisterID(check.FinenessRegisterID).Delete()
   })
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "删除失败")
      return
   }
   util.ResponseFormat(c, code.UpdateSuccess, "删除成功")
}
// CheckEdit
// @Tags      纤度检验
// @Summary   纤度检验修改
// @Produce   application/json
// @Param     object  body   models.FinenessCheck true  "字典信息"
// @Success   200 {object} util.Response "成功"
// @Router    /api-jl/v1/fineness/check [post]
func (slf FinenessController) CheckEdit(c *gin.Context) {
   var params models.FinenessCheck
   if err := c.BindJSON(&params); err != nil {
      util.ResponseFormat(c, code.RequestParamError, "参数解析失败,数据类型错误")
      return
   }
   _, err := models.NewFinenessCheckSearch().SetID(params.ID).First()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "检验记录不存在")
      return
   }
   err = service.FinenessReCheck(&params)
   if err != nil {
      logx.Errorf("service.FinenessReCheck err:%v, finenessCheck:%+v", err, params)
      util.ResponseFormat(c, code.RequestParamError, "检验失败")
      return
   }
   err = models.NewFinenessCheckSearch().Save(&params)
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "保存失败")
      return
   }
   util.ResponseFormat(c, code.Success, "保存成功")
}