| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "context" |
| | | "errors" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "gorm.io/gorm" |
| | | "strconv" |
| | | "wms/constvar" |
| | | "wms/extend/code" |
| | | "wms/extend/util" |
| | | "wms/models" |
| | | "wms/pkg/logx" |
| | | "wms/proto/init_client" |
| | | "wms/proto/user" |
| | | "wms/request" |
| | | ) |
| | | |
| | |
| | | return |
| | | } |
| | | |
| | | _, err := models.NewMiniDictSearch().SetType(params.Type).SetName(params.Name).First() |
| | | if !errors.Is(err, gorm.ErrRecordNotFound) { |
| | | util.ResponseFormat(c, code.NameExistedError, "名称已存在") |
| | | return |
| | | } |
| | | |
| | | autoCode, _ := getAutoCode(params.Type) |
| | | record := models.MiniDict{ |
| | | Type: params.Type, |
| | | Code: autoCode, |
| | | Name: params.Name, |
| | | Value: params.Value, |
| | | IsDefault: params.IsDefault, |
| | |
| | | |
| | | record := models.MiniDict{ |
| | | Type: params.Type, |
| | | Code: params.Code, |
| | | Name: params.Name, |
| | | Value: params.Value, |
| | | IsDefault: params.IsDefault, |
| | |
| | | // @Tags 数据字典 |
| | | // @Summary 获取字典信息列表 |
| | | // @Produce application/json |
| | | // @Param object body request.GetMiniDictList true "参数" |
| | | // @Param object body request.GetMiniDictList true "参数" |
| | | // @Success 200 {object} util.ResponseList{data=[]models.MiniDict} "成功" |
| | | // @Router /api-wms/v1/dict/getDictList [post] |
| | | func (slf DictController) GetMiniDictList(c *gin.Context) { |
| | |
| | | return |
| | | } |
| | | |
| | | //if !params.Type.Valid() { |
| | | // util.ResponseFormat(c, code.RequestParamError, "字典类型错误") |
| | | // return |
| | | //} |
| | | dictSearch := models.NewMiniDictSearch() |
| | | if params.Type.Valid() { |
| | | dictSearch.SetType(params.Type) |
| | | } |
| | | |
| | | list, total, err := dictSearch.Find() |
| | | list, total, err := models.NewMiniDictSearch().SetKeyword(params.Keyword).SetType(params.Type).Find() |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.RequestParamError, "查找失败") |
| | | return |
| | |
| | | |
| | | util.ResponseFormatList(c, code.Success, list, int(total)) |
| | | } |
| | | |
| | | // GetUserList |
| | | // @Tags 数据字典 |
| | | // @Summary 获取用户列表 |
| | | // @Produce application/json |
| | | // @Param object query user.GetUserRequest true "参数" |
| | | // @Success 200 {object} util.ResponseList{data=[]user.GetUserRequest} "成功" |
| | | // @Router /api-wms/v1/dict/getUserList [get] |
| | | func (slf DictController) GetUserList(c *gin.Context) { |
| | | if init_client.AdminConn == nil { |
| | | util.ResponseFormat(c, code.InternalError, "请先配置Admin的grpc服务信息") |
| | | } |
| | | query := new(user.GetUserRequest) |
| | | if c.Query("id") != "" { |
| | | query.Id = c.Query("id") |
| | | } |
| | | if c.Query("userName") != "" { |
| | | query.UserName = c.Query("userName") |
| | | } |
| | | if c.Query("nickName") != "" { |
| | | query.NickName = c.Query("nickName") |
| | | } |
| | | if c.Query("parentId") != "" { |
| | | query.ParentId = c.Query("parentId") |
| | | } |
| | | if userType, err := strconv.Atoi(c.Query("userType")); err == nil && userType > 0 { |
| | | query.UserType = int32(userType) |
| | | } |
| | | |
| | | cli := user.NewUserServiceClient(init_client.AdminConn) |
| | | list, err := cli.GetUserList(context.Background(), query) |
| | | if err != nil { |
| | | util.ResponseFormat(c, code.InternalError, "内部错误") |
| | | logx.Error("grpc调用失败, GetPersonnelList err : " + err.Error()) |
| | | return |
| | | } |
| | | util.ResponseFormat(c, code.Success, list.List) |
| | | } |
| | | |
| | | // GetAutoCode 获取字典自动编码 |
| | | func getAutoCode(dictType constvar.MiniDictType) (string, error) { |
| | | |
| | | var prefix string |
| | | switch constvar.MiniDictType(dictType) { |
| | | case constvar.StorageType: |
| | | prefix = "IN0" |
| | | case constvar.StockoutType: |
| | | prefix = "OUT" |
| | | case constvar.TransferType: |
| | | prefix = "TF0" |
| | | case constvar.TakeStockType: |
| | | prefix = "TS0" |
| | | case constvar.DisuseType: |
| | | prefix = "DIS" |
| | | case constvar.ProductSource: |
| | | prefix = "PS0" |
| | | default: |
| | | return "", errors.New("编码规则不存在") |
| | | } |
| | | id, err := models.NewMiniDictSearch().MaxAutoIncr() |
| | | if err != nil { |
| | | return "", errors.New("获取最大值失败") |
| | | } |
| | | |
| | | strMaxAutoIncr := strconv.Itoa(id + 1) |
| | | count := 5 - len(strMaxAutoIncr) |
| | | for i := 0; i < count; i++ { |
| | | strMaxAutoIncr = "0" + strMaxAutoIncr |
| | | } |
| | | |
| | | return fmt.Sprintf("%v%v", prefix, strMaxAutoIncr), nil |
| | | } |