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