feat:分类权益
This commit is contained in:
parent
2461bb8a93
commit
4d42019882
@ -64,6 +64,7 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error)
|
||||
if req.Sort <= 0 {
|
||||
return res, errors.New("排序参数需为正整数")
|
||||
}
|
||||
//套餐主表数据
|
||||
bundleProfile := &model.BundleProfile{
|
||||
Name: req.Name,
|
||||
Sort: req.Sort,
|
||||
@ -84,6 +85,7 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error)
|
||||
PriceType: req.PriceType,
|
||||
Language: req.Language,
|
||||
}
|
||||
//必须先创建中文版本
|
||||
if req.Uuid == "" && req.Language != msg.ZH_CN {
|
||||
return res, errors.New("请先创建中文版本套餐")
|
||||
}
|
||||
@ -99,10 +101,13 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//现需要区分类型 分为 1:套餐权益,该类型必须关联一个可用时长类型的权益 2:套餐可选附加权益,非必选可为空
|
||||
selectService := make([]*model.BundleToValueAddService, 0)
|
||||
var selectValueAddServiceCount = make(map[int]struct{}) //增值服务类型数量
|
||||
var pkgBenefitsValueAddServiceCount = make(map[int]struct{}) //套餐权益增值服务类型数量
|
||||
var pkgOptionalValueAddServiceCount = make(map[int]struct{}) //套餐可选附加权益增值服务类型数量
|
||||
if req.Language == msg.ZH_CN && req.SelectValueAddService != nil && len(req.SelectValueAddService) > 0 {
|
||||
for _, v := range req.SelectValueAddService {
|
||||
|
||||
detail, checkErr := dao.ValueAddServiceDetailByUuidAndLanguage(v.ValueAddUuid, req.Language)
|
||||
if checkErr != nil {
|
||||
if checkErr == gorm.ErrRecordNotFound {
|
||||
@ -111,13 +116,22 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error)
|
||||
return res, errors.New("查询增值服务失败")
|
||||
}
|
||||
}
|
||||
if _, exists := selectValueAddServiceCount[int(detail.ServiceType)]; exists {
|
||||
return res, errors.New("每种增值服务类型只可选择一个")
|
||||
switch v.BenefitsType {
|
||||
case 1:
|
||||
if _, exists := pkgBenefitsValueAddServiceCount[int(detail.ServiceType)]; exists {
|
||||
return res, errors.New("每种增值服务类型只可选择一个")
|
||||
}
|
||||
pkgBenefitsValueAddServiceCount[int(detail.ServiceType)] = struct{}{}
|
||||
case 2:
|
||||
if _, exists := pkgOptionalValueAddServiceCount[int(detail.ServiceType)]; exists {
|
||||
return res, errors.New("每种增值服务类型只可选择一个")
|
||||
}
|
||||
pkgOptionalValueAddServiceCount[int(detail.ServiceType)] = struct{}{}
|
||||
}
|
||||
selectValueAddServiceCount[int(detail.ServiceType)] = struct{}{}
|
||||
selectService = append(selectService, &model.BundleToValueAddService{
|
||||
ValueUid: v.ValueAddUuid,
|
||||
IsDisplay: v.IsDisplay,
|
||||
ValueUid: v.ValueAddUuid,
|
||||
IsDisplay: v.IsDisplay,
|
||||
BenefitsType: v.BenefitsType,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -49,6 +49,7 @@ type BundleToValueAddService struct {
|
||||
ValueUid string `json:"valueUid" gorm:"column:value_uid;type:varchar(1024);comment:增值服务UUID"`
|
||||
ValueAddService ValueAddService `gorm:"foreignKey:ValueUid;references:UUID" json:"valueAddService"`
|
||||
IsDisplay bool `json:"isDisplay" gorm:"column:is_display;type:tinyint(1);comment:是否显示"`
|
||||
BenefitsType int32 `json:"benefitsType" gorm:"column:benefits_type;type:int;comment:套餐权益类型 1:套餐权益 2:套餐可选附加权益"`
|
||||
CreatedAt int64 `gorm:"column:created_at;autoCreateTime"`
|
||||
UpdatedAt int64 `gorm:"column:updated_at;autoCreateTime"`
|
||||
DeletedAt soft_delete.DeletedAt
|
||||
|
@ -285,9 +285,10 @@ message SaveResponse {
|
||||
}
|
||||
message SelectValueAddService {
|
||||
string valueAddUuid = 1 [json_name = "valueAddUuid"];
|
||||
string serviceName= 2 [json_name = "serviceName"];
|
||||
bool isDisplay = 3 [json_name = "isDisplay"];
|
||||
int32 serviceType = 4 [json_name = "serviceType"];
|
||||
string serviceName= 2 [json_name = "serviceName"];// 服务名称
|
||||
bool isDisplay = 3 [json_name = "isDisplay"];// 是否显示
|
||||
int32 serviceType = 4 [json_name = "serviceType"];// 服务类型
|
||||
int32 benefitsType = 5 [json_name = "benefitsType"]; //套餐权益类型 1:套餐权益 2:套餐可选附加权益
|
||||
|
||||
}
|
||||
message DelBundleRequest {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-triple v1.0.5
|
||||
// - protoc v4.22.0
|
||||
// - protoc v5.26.0
|
||||
// source: pb/bundle.proto
|
||||
|
||||
package bundle
|
||||
|
Loading…
Reference in New Issue
Block a user