| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "errors" |
| | | "github.com/gin-gonic/gin" |
| | | "gorm.io/gorm" |
| | | "strconv" |
| | | "wms/constvar" |
| | | "wms/extend/code" |
| | | "wms/extend/util" |
| | | "wms/models" |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择位置") |
| | | return |
| | | } |
| | | if params.ProductId == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品") |
| | | |
| | | if params.RuleType != constvar.RuleType_Product && params.RuleType != constvar.RuleType_ProductCategory { |
| | | util.ResponseFormat(c, code.RequestParamError, "ruleType异常") |
| | | return |
| | | } |
| | | //if params.ProductCategoryID == 0 { |
| | | // util.ResponseFormat(c, code.RequestParamError, "请选择产品类别") |
| | | // return |
| | | //} |
| | | |
| | | if params.RuleType == constvar.RuleType_Product { |
| | | if params.ProductId == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品") |
| | | return |
| | | } |
| | | if _, err := models.NewLocationProductSearch().SetProductId(params.ProductId).SetLocationId(params.LocationId).SetAreaId(params.AreaId).First(); err != nil { |
| | | if !errors.Is(err, gorm.ErrRecordNotFound) { |
| | | util.ResponseFormat(c, code.RequestParamError, err.Error()) |
| | | return |
| | | } |
| | | } else { |
| | | util.ResponseFormat(c, code.RequestParamError, "已存在该上家规则,请勿重复添加") |
| | | return |
| | | } |
| | | } |
| | | |
| | | if params.RuleType == constvar.RuleType_ProductCategory { |
| | | if params.ProductCategoryID == 0 { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品类别") |
| | | return |
| | | } |
| | | if _, err := models.NewLocationProductSearch().SetProductCategoryId(params.ProductCategoryID).SetLocationId(params.LocationId).SetAreaId(params.AreaId).First(); err != nil { |
| | | if !errors.Is(err, gorm.ErrRecordNotFound) { |
| | | util.ResponseFormat(c, code.RequestParamError, err.Error()) |
| | | return |
| | | } |
| | | } else { |
| | | util.ResponseFormat(c, code.RequestParamError, "已存在该上家规则,请勿重复添加") |
| | | return |
| | | } |
| | | } |
| | | |
| | | if err := models.NewLocationProductSearch().Create(¶ms); err != nil { |
| | | logx.Errorf("Operation create err: %v", err) |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择位置") |
| | | return |
| | | } |
| | | if params.ProductId == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品") |
| | | |
| | | if params.RuleType != constvar.RuleType_Product && params.RuleType != constvar.RuleType_ProductCategory { |
| | | util.ResponseFormat(c, code.RequestParamError, "ruleType异常") |
| | | return |
| | | } |
| | | if params.ProductCategoryID == 0 { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品类别") |
| | | return |
| | | |
| | | if params.RuleType == constvar.RuleType_Product { |
| | | if params.ProductId == "" { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品") |
| | | return |
| | | } |
| | | if rule, err := models.NewLocationProductSearch().SetProductId(params.ProductId).SetLocationId(params.LocationId).SetAreaId(params.AreaId).First(); err != nil { |
| | | if !errors.Is(err, gorm.ErrRecordNotFound) { |
| | | util.ResponseFormat(c, code.RequestParamError, err.Error()) |
| | | return |
| | | } |
| | | } else if params.Id != rule.Id { |
| | | util.ResponseFormat(c, code.RequestParamError, "已存在该上家规则,请勿重复添加") |
| | | return |
| | | } |
| | | } |
| | | |
| | | if params.RuleType == constvar.RuleType_ProductCategory { |
| | | if params.ProductCategoryID == 0 { |
| | | util.ResponseFormat(c, code.RequestParamError, "请选择产品类别") |
| | | return |
| | | } |
| | | if rule, err := models.NewLocationProductSearch().SetProductCategoryId(params.ProductCategoryID).SetLocationId(params.LocationId).SetAreaId(params.AreaId).First(); err != nil { |
| | | if !errors.Is(err, gorm.ErrRecordNotFound) { |
| | | util.ResponseFormat(c, code.RequestParamError, err.Error()) |
| | | return |
| | | } |
| | | } else if params.Id != rule.Id { |
| | | util.ResponseFormat(c, code.RequestParamError, "已存在该上家规则,请勿重复添加") |
| | | return |
| | | } |
| | | } |
| | | |
| | | if err := models.NewLocationProductSearch().SetID(params.Id).Update(¶ms); err != nil { |
| | | logx.Errorf("LocationProduct update err: %v", err) |
| | | util.ResponseFormat(c, code.SaveFail, "修改失败:"+err.Error()) |