| | |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "gorm.io/gorm" |
| | | "jialian/controllers/request" |
| | | "jialian/extend/code" |
| | | "jialian/extend/util" |
| | | "jialian/models" |
| | | "jialian/pkg/convertx" |
| | | "jialian/pkg/structx" |
| | | "silkserver/constvar" |
| | | "silkserver/controllers/request" |
| | | "silkserver/extend/code" |
| | | "silkserver/extend/util" |
| | | "silkserver/models" |
| | | "silkserver/pkg/convertx" |
| | | "silkserver/pkg/structx" |
| | | "strconv" |
| | | ) |
| | | |
| | | type DictController struct{} |
| | |
| | | } |
| | | |
| | | 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 |
| | | } |
| | | |
| | |
| | | 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, "查找失败") |
| | |
| | | } |
| | | |
| | | 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, "删除失败") |
| | |
| | | } |
| | | 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) |
| | | } |