Compare commits

...

29 Commits

Author SHA1 Message Date
lzh
15e9ac2086 Merge branch 'dev' into dev-lzh-0905 2025-10-17 15:52:27 +08:00
lzh
3dc530db91 Merge branch 'dev-lzh-0905' into dev 2025-10-17 13:29:58 +08:00
lzh
2dde055ead Merge branch 'dev-lzh-0905' into dev 2025-10-17 10:26:22 +08:00
lzh
205564cb00 Merge branch 'dev-lzh-0905' into dev 2025-10-16 16:37:44 +08:00
lzh
6e55cfcf89 Merge branch 'dev-lzh-0905' into dev 2025-10-16 09:41:58 +08:00
lzh
8018d286aa Merge branch 'dev-lzh-0905' into dev 2025-10-16 09:37:58 +08:00
lzh
d58f0e574a Merge branch 'dev-lzh-0905' into dev 2025-10-16 09:32:53 +08:00
lzh
34f2225568 1 2025-10-15 15:53:59 +08:00
lzh
51db761716 Merge branch 'dev-lzh-0905' into dev 2025-10-15 15:52:57 +08:00
lzh
b01909e7f8 Merge branch 'dev-lzh-0905' into dev 2025-10-15 15:48:06 +08:00
jiaji.H
d1647bb9cf Merge branch 'feat-hjj-packageManage#A116' into dev 2025-10-13 09:57:36 +08:00
jiaji.H
f1b0c0d388 Updata:更新错误返回信息 2025-10-13 09:57:23 +08:00
jiaji.H
7fe3cfe17b Merge branch 'feat-hjj-packageManage#A116' into dev 2025-10-11 16:52:33 +08:00
jiaji.H
d915175416 Updata:修正分页返回数据错误 2025-10-11 16:52:23 +08:00
jiaji.H
06bf3e2bc8 Merge branch 'feat-hjj-packageManage#A116' into dev 2025-10-11 13:29:23 +08:00
jiaji.H
2fd0f940a0 Updata:添加初始额度类型限制逻辑 2025-10-11 13:29:12 +08:00
jiaji.H
9a2822298c Merge branch 'feat-hjj-packageManage#A116' into dev 2025-10-11 11:32:38 +08:00
jiaji.H
62755cc884 Updata:补充套餐更新逻辑 2025-10-11 11:32:23 +08:00
lzh
c9663f2bfe Merge branch 'dev-lzh-1009' into dev 2025-10-10 14:15:55 +08:00
lzh
2756006a7f Merge branch 'dev-lzh-1009' into dev 2025-10-10 10:31:42 +08:00
lzh
7ea566bd9b Merge branch 'dev-lzh-1009' into dev 2025-10-09 17:59:39 +08:00
lzh
b80ce9ec70 Merge branch 'dev-lzh-0905' into dev 2025-09-24 11:40:57 +08:00
lzh
01fa323c4d Merge branch 'dev-lzh-0905' into dev 2025-09-24 11:35:04 +08:00
lzh
5b9bfc11b1 Merge branch 'dev-lzh-0905' into dev 2025-09-24 11:23:07 +08:00
lzh
640eb0d58c 1 2025-09-23 14:23:56 +08:00
lzh
8590d6cd9c Merge branch 'dev-lzh-0905' into dev 2025-09-23 14:23:37 +08:00
lzh
5d46b21645 Merge branch 'dev-lzh-0905' into dev 2025-09-23 14:19:20 +08:00
jiaji.H
76e4b7c998 Merge branch 'feat-hjj-packageManage#A116' into dev 2025-09-19 10:57:12 +08:00
jiaji.H
91fa9afa58 Updata:添加套餐数量符号检验 2025-09-19 10:54:03 +08:00
5 changed files with 67 additions and 13 deletions

View File

@ -135,23 +135,27 @@ func BundleListV2(req *bundle.BundleListRequest) (res *bundle.BundleListResponse
res.Bundles = make([]*bundle.BundleProfile, 0)
bundles := make([]*model.BundleProfile, 0)
query := app.ModuleClients.BundleDB.Model(&model.BundleProfile{}).Preload("BundleProfileLang")
baseQuery := app.ModuleClients.BundleDB.Model(&model.BundleProfile{})
if req.Name != "" {
query = query.Where("name like ?", "%"+req.Name+"%")
baseQuery = baseQuery.Where("name like ?", "%"+req.Name+"%")
}
if req.Content != "" {
query = query.Where("content like ?", "%"+req.Content+"%")
baseQuery = baseQuery.Where("content like ?", "%"+req.Content+"%")
}
if req.Language != "" {
query = query.Where("language like ?", req.Language)
baseQuery = baseQuery.Where("language like ?", req.Language)
}
count := *query
var total int64
if err = baseQuery.Count(&total).Error; err != nil {
return res, commonErr.ReturnError(err, msg.ErrorGetBundleList, "获取套餐总数失败: ")
}
// 排序sort 升序,相同 sort 按 created_at 倒序
query := baseQuery.Preload("BundleProfileLang")
query = query.Order("sort ASC").Order("created_at DESC")
if req.PageSize != 0 && req.Page != 0 {
query = query.Limit(int(req.PageSize)).Offset(int(req.Page-1) * int(req.PageSize))
@ -223,10 +227,6 @@ func BundleListV2(req *bundle.BundleListRequest) (res *bundle.BundleListResponse
}
}
var total int64
count.Count(&total)
res.Total = int32(total)
return

View File

@ -103,6 +103,8 @@ func UpdateValueAddService(tx *gorm.DB, columns map[string]interface{}) (err err
}
return
}
// 更新单个语言表
func UpdateValueAddServiceLang(tx *gorm.DB, columns map[string]interface{}) (err error) {
err = tx.Model(&model.ValueAddServiceLang{}).Where("uuid =? and deleted_at = 0", columns["uuid"]).
Where("language = ?", columns["language"]).Updates(columns).Error
@ -112,6 +114,16 @@ func UpdateValueAddServiceLang(tx *gorm.DB, columns map[string]interface{}) (err
return
}
// 更新所有语言版本的服务类型
func UpdateAllValueAddServiceLangServiceType(tx *gorm.DB, columns map[string]interface{}) (err error) {
err = tx.Model(&model.ValueAddServiceLang{}).Where("uuid = ? and deleted_at = 0", columns["uuid"]).
Updates(columns).Error
if err != nil {
return
}
return
}
// 增值套餐列表
func ValueAddServiceList(req *bundle.ValueAddServiceListRequest) (res []*model.ValueAddService, total int64, err error) {
query := app.ModuleClients.BundleDB.Model(&model.ValueAddService{}).

View File

@ -190,8 +190,21 @@ func SaveBundle(req *bundle.BundleProfile) (res *bundle.SaveResponse, err error)
}
if !dao.ValidateQuotaCompatibility(benefitsQuota, optionalQuota) {
return res, fmt.Errorf("服务类型%d的额度不兼容套餐权益额度为%d附加权益额度为%d",
detail.ServiceType, benefitsQuota.QuotaValue, optionalQuota.QuotaValue)
var serviceName string
switch detail.ServiceType {
case msg.VideoService:
serviceName = "视频"
case msg.TextService:
serviceName = "图文"
case msg.DataReportService:
serviceName = "数据报表"
case msg.AccountService:
serviceName = "账号数"
case msg.AvailableTimeService:
serviceName = "可用时长"
}
return res, fmt.Errorf("服务类型%s的额度不兼容套餐权益额度为%d附加权益额度为%d",
serviceName, benefitsQuota.QuotaValue, optionalQuota.QuotaValue)
}
}

View File

@ -197,6 +197,9 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon
hasDefault := false
for _, option := range options {
if option.IsDefault {
if option.Symbol != "=" {
return res, errors.New("默认套餐数量只能选择数量符合为等于的选项")
}
hasDefault = true
break
}
@ -314,6 +317,14 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon
if err = dao.UpdateValueAddService(tx, updateService); err != nil {
return res, errors.New("更新增值服务失败")
}
updataAllLangServiceType := map[string]interface{}{
"uuid": in.Uuid,
"service_type": in.ServiceType,
"unit": in.Unit,
}
if err = dao.UpdateAllValueAddServiceLangServiceType(tx, updataAllLangServiceType); err != nil {
return res, errors.New("更新增值服务失败")
}
}
//更新语言表
updateLangService := map[string]interface{}{
@ -369,8 +380,8 @@ func ValueAddServiceList(req *bundle.ValueAddServiceListRequest) (res *bundle.Va
ServiceType: valueAddService.ServiceType,
}
for _, serviceLang := range valueAddService.ValueAddServiceLang {
if serviceLang.QuotaType == 0 && serviceInfo.ServiceType != 5 && serviceInfo.ServiceType != 4 {
serviceLang.QuotaType = 1
if serviceLang.QuotaType == 0 && serviceInfo.ServiceType != msg.AccountService && serviceInfo.ServiceType != msg.AvailableTimeService {
serviceLang.QuotaType = msg.UnlimitedQuota
}
serviceLangInfo := &bundle.ValueAddServiceLang{
Uuid: valueAddService.UUID,
@ -461,6 +472,9 @@ func ValueAddServiceDetail(req *bundle.ValueAddServiceDetailRequest) (res *bundl
valueAddService.ServiceName = detail.ServiceName
valueAddService.ServiceType = detail.ServiceType
for _, serviceLang := range detail.ValueAddServiceLang {
if serviceLang.QuotaType == 0 && valueAddService.ServiceType != msg.AccountService && valueAddService.ServiceType != msg.AvailableTimeService {
serviceLang.QuotaType = msg.UnlimitedQuota
}
langOptions := []*bundle.ValueAddPriceOptions{}
if len(serviceLang.Options) > 0 {
for _, opt := range serviceLang.Options {

View File

@ -105,3 +105,18 @@ const (
ErrorValueServicePriceModeEmpty = "增值服务价格模式不能为空"
ErrorValueServiceOptionsEmpty = "增值服务选项不能为空"
)
// 服务额度信息
const (
UnlimitedQuota = 1 //不限额度
LimitedQuota = 2 //限制额度
)
// 服务类型
const (
VideoService = 1 //视频
TextService = 2 //图文
DataReportService = 3 //数据报表
AccountService = 4 //账号数
AvailableTimeService = 5 //可用时长
)