yinbentan
2024-08-01 edf3066724ad442d6929210c830cb67c17277690
controllers/dict.go
@@ -5,12 +5,14 @@
   "fmt"
   "github.com/gin-gonic/gin"
   "gorm.io/gorm"
   "silkserver/constvar"
   "silkserver/controllers/request"
   "silkserver/extend/code"
   "silkserver/extend/util"
   "silkserver/models"
   "silkserver/pkg/convertx"
   "silkserver/pkg/structx"
   "strconv"
)
type DictController struct{}
@@ -88,16 +90,19 @@
}
func (slf DictController) ParamsCheck(params models.Dict) (err error) {
   dict, err := models.NewDictSearch().SetNumber(params.Number).First()
   if err != gorm.ErrRecordNotFound && dict != nil && dict.ID != params.ID {
      return errors.New("编号重复")
   if params.Name == "" {
      return errors.New("参数缺失")
   }
   dict, err = models.NewDictSearch().SetName(params.Name).First()
   dict, err := models.NewDictSearch().SetName(params.Name).First()
   if err != gorm.ErrRecordNotFound && dict != nil && dict.ID != params.ID {
      return errors.New("名称重复")
   }
   if params.Number != "" {
      dict, err := models.NewDictSearch().SetDictType(params.DictType).SetNumber(params.Number).First()
      if err != gorm.ErrRecordNotFound && dict != nil && dict.ID != params.ID {
         return errors.New("编号重复")
      }
   }
   return nil
}
@@ -115,7 +120,11 @@
      return
   }
   list, err := models.NewDictSearch().SetDictType(params.DictType).FindAll()
   search := models.NewDictSearch()
   if params.DictType > 0 {
      search = search.SetDictType(params.DictType)
   }
   list, err := search.SetKeyword(params.Keyword).FindAll()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "查找失败")
@@ -140,6 +149,10 @@
   }
   id := convertx.StringToUInt(idStr)
   if id == 0 {
      util.ResponseFormat(c, code.RequestParamError, "空的记录id")
      return
   }
   err := models.NewDictSearch().SetID(id).Delete()
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "删除失败")
@@ -147,3 +160,55 @@
   }
   util.ResponseFormat(c, code.UpdateSuccess, "删除成功")
}
// GetAutoCode
//
// @Tags   系统设置/字典
// @Summary   获取自动编码
// @Produce   application/json
// @Param   Authorization   header string true "token"
// @Param   object  query    request.CodeStandard true  "查询参数"
// @Success   200   {object}   util.Response{data=map[string]interface{}}
// @Router   /api-jl/v1/system/getAutoCode [get]
func (slf *DictController) GetAutoCode(c *gin.Context) {
   var params request.CodeStandard
   var (
      id     = 0
      prefix = ""
      err    error
   )
   if params.Type, err = strconv.Atoi(c.Query("type")); err != nil {
      util.ResponseFormat(c, code.RequestParamError, "请输入正确的类型")
      return
   }
   switch constvar.CodeStandardType(params.Type) {
   case constvar.CodeStandardType_Workshop:
      id, err = models.NewWorkshopManageSearch().MaxAutoIncr()
      prefix = "CJ"
   case constvar.CodeStandardType_Fineness:
      id, err = models.NewFinenessRegisterSearch().MaxAutoIncr()
      prefix = "XD"
   case constvar.CodeStandardType_Yield:
      id, err = models.NewYieldRegisterSearch().MaxAutoIncr()
      prefix = "CL"
   default:
      util.ResponseFormat(c, code.RequestParamError, "编码规则不存在")
      return
   }
   if err != nil {
      util.ResponseFormat(c, code.RequestParamError, "获取最大值失败")
      return
   }
   m := make(map[string]interface{})
   strMaxAutoIncr := strconv.Itoa(id + 1)
   count := 8 - len(strMaxAutoIncr)
   for i := 0; i < count; i++ {
      strMaxAutoIncr = "0" + strMaxAutoIncr
   }
   m["id"] = prefix + strMaxAutoIncr
   m["codeStandardID"] = constvar.CodeStandardType_Fineness
   m["maxAutoIncr"] = id + 1
   util.ResponseFormat(c, code.Success, m)
}