修改套餐详情
This commit is contained in:
parent
6f1a46fa07
commit
082cee499a
@ -1,6 +1,7 @@
|
|||||||
package dao
|
package dao
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"micro-bundle/internal/model"
|
"micro-bundle/internal/model"
|
||||||
"micro-bundle/pb/bundle"
|
"micro-bundle/pb/bundle"
|
||||||
"micro-bundle/pkg/app"
|
"micro-bundle/pkg/app"
|
||||||
@ -157,9 +158,9 @@ func GetBundleToValueAddServiceByValueUid(valueUid string) ([]model.BundleToValu
|
|||||||
Find(&rels).Error
|
Find(&rels).Error
|
||||||
return rels, err
|
return rels, err
|
||||||
}
|
}
|
||||||
func GetValueAddServiceDetailByUuid(uuid string) (*model.ValueAddService, error) {
|
func GetValueAddServiceDetailByUuid(tx *gorm.DB, uuid string) (*model.ValueAddService, error) {
|
||||||
result := &model.ValueAddService{}
|
result := &model.ValueAddService{}
|
||||||
err := app.ModuleClients.BundleDB.Model(&model.ValueAddService{}).
|
err := tx.Model(&model.ValueAddService{}).
|
||||||
Preload("ValueAddServiceLang", "deleted_at = 0").
|
Preload("ValueAddServiceLang", "deleted_at = 0").
|
||||||
Where("uuid =? and deleted_at=0", uuid).
|
Where("uuid =? and deleted_at=0", uuid).
|
||||||
First(&result).Error
|
First(&result).Error
|
||||||
@ -168,3 +169,21 @@ func GetValueAddServiceDetailByUuid(uuid string) (*model.ValueAddService, error)
|
|||||||
func CreateValueAddServiceHistory(tx *gorm.DB, req *model.ValueAddServiceHistory) error {
|
func CreateValueAddServiceHistory(tx *gorm.DB, req *model.ValueAddServiceHistory) error {
|
||||||
return tx.Model(&model.ValueAddServiceHistory{}).Create(req).Error
|
return tx.Model(&model.ValueAddServiceHistory{}).Create(req).Error
|
||||||
}
|
}
|
||||||
|
func BatchValueAddServiceDetailTx(tx *gorm.DB, uids []string) (map[string]*model.ValueAddService, error) {
|
||||||
|
if len(uids) == 0 {
|
||||||
|
return map[string]*model.ValueAddService{}, nil // 返回空 map,避免 nil panic
|
||||||
|
}
|
||||||
|
var results []*model.ValueAddService
|
||||||
|
err := tx.Model(&model.ValueAddService{}).
|
||||||
|
Where("value_uid IN ? AND deleted_at = 0", uids).
|
||||||
|
Preload("ValueAddServiceLang", "deleted_at = 0").
|
||||||
|
Find(&results).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("批量查询增值服务失败: %w", err)
|
||||||
|
}
|
||||||
|
resultMap := make(map[string]*model.ValueAddService, len(results))
|
||||||
|
for _, detail := range results {
|
||||||
|
resultMap[detail.UUID] = detail
|
||||||
|
}
|
||||||
|
return resultMap, nil
|
||||||
|
}
|
||||||
|
@ -459,13 +459,30 @@ func saveBundleHistory(tx *gorm.DB, bundleUuid string, operator string, operator
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("查询套餐详情失败: " + err.Error())
|
return errors.New("查询套餐详情失败: " + err.Error())
|
||||||
}
|
}
|
||||||
j, err := json.MarshalIndent(data, "", " ")
|
bundleToValueAddService := data.BundleToValueAddService
|
||||||
|
data.BundleToValueAddService = nil
|
||||||
|
var valueUuid []string
|
||||||
|
if bundleToValueAddService != nil && len(bundleToValueAddService) > 0 {
|
||||||
|
for _, v := range bundleToValueAddService {
|
||||||
|
valueUuid = append(valueUuid, v.ValueUid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
valueData, err := dao.BatchValueAddServiceDetailTx(tx, valueUuid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("json转换失败: " + err.Error())
|
return errors.New("查询增值服务详情失败: " + err.Error())
|
||||||
|
}
|
||||||
|
j, err := json.Marshal(data)
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("套餐json转换失败: " + err.Error())
|
||||||
|
}
|
||||||
|
vJ, err := json.Marshal(valueData)
|
||||||
|
if err != nil {
|
||||||
|
return errors.New("增值服务json转换失败: " + err.Error())
|
||||||
}
|
}
|
||||||
history := &model.BundleProfileHistory{
|
history := &model.BundleProfileHistory{
|
||||||
Uuid: bundleUuid,
|
Uuid: bundleUuid,
|
||||||
BundleProfile: datatypes.JSON(j),
|
BundleProfile: datatypes.JSON(j),
|
||||||
|
ValueAddService: datatypes.JSON(vJ),
|
||||||
Operator: operator,
|
Operator: operator,
|
||||||
OperatorId: operatorId,
|
OperatorId: operatorId,
|
||||||
}
|
}
|
||||||
|
@ -258,6 +258,9 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 已存在,进行更新
|
// 已存在,进行更新
|
||||||
|
if err := saveValueAddServiceHistory(tx, in.Uuid); err != nil {
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
//中文状态下,更新主表和语言表
|
//中文状态下,更新主表和语言表
|
||||||
if in.Language == msg.ZH_CN {
|
if in.Language == msg.ZH_CN {
|
||||||
updateService := map[string]interface{}{
|
updateService := map[string]interface{}{
|
||||||
@ -294,9 +297,6 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon
|
|||||||
if err := dao.UpdateValueAddServiceLang(tx, updateLangService); err != nil {
|
if err := dao.UpdateValueAddServiceLang(tx, updateLangService); err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
if err := saveValueAddServiceHistory(tx, in.Uuid); err != nil {
|
|
||||||
return res, err
|
|
||||||
}
|
|
||||||
res.Uuid = in.Uuid
|
res.Uuid = in.Uuid
|
||||||
res.Msg = "保存成功"
|
res.Msg = "保存成功"
|
||||||
res.CancelNum = cancelNum
|
res.CancelNum = cancelNum
|
||||||
@ -412,11 +412,11 @@ func ValueAddServiceDetail(req *bundle.ValueAddServiceDetailRequest) (res *bundl
|
|||||||
|
|
||||||
func saveValueAddServiceHistory(tx *gorm.DB, uuid string) (err error) {
|
func saveValueAddServiceHistory(tx *gorm.DB, uuid string) (err error) {
|
||||||
// 保存历史记录
|
// 保存历史记录
|
||||||
data, err := dao.GetBundleDetailByUuid(uuid)
|
data, err := dao.GetValueAddServiceDetailByUuid(tx, uuid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("查询增值服务详情失败: " + err.Error())
|
return errors.New("查询增值服务详情失败: " + err.Error())
|
||||||
}
|
}
|
||||||
j, err := json.MarshalIndent(data, "", " ")
|
j, err := json.Marshal(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New("json转换失败: " + err.Error())
|
return errors.New("json转换失败: " + err.Error())
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,7 @@ type BundleProfileHistory struct {
|
|||||||
Id int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"`
|
Id int32 `gorm:"column:id;type:int(11);primary_key;AUTO_INCREMENT" json:"id"`
|
||||||
Uuid string `json:"uuid" gorm:"column:uuid;type:varchar(1024);comment:UUID"`
|
Uuid string `json:"uuid" gorm:"column:uuid;type:varchar(1024);comment:UUID"`
|
||||||
BundleProfile datatypes.JSON `json:"bundleProfile" gorm:"column:bundle_profile;type:json;comment:套餐信息"`
|
BundleProfile datatypes.JSON `json:"bundleProfile" gorm:"column:bundle_profile;type:json;comment:套餐信息"`
|
||||||
|
ValueAddService datatypes.JSON `json:"valueAddService" gorm:"column:value_add_service;type:json;comment:增值服务信息"`
|
||||||
Operator string `json:"operator" gorm:"column:operator;type:varchar(1024);comment:操作人"`
|
Operator string `json:"operator" gorm:"column:operator;type:varchar(1024);comment:操作人"`
|
||||||
OperatorId uint64 `json:"operatorId" gorm:"column:operator_id;type:int;comment:操作人ID"`
|
OperatorId uint64 `json:"operatorId" gorm:"column:operator_id;type:int;comment:操作人ID"`
|
||||||
CreatedAt int64 `gorm:"column:created_at;autoCreateTime"`
|
CreatedAt int64 `gorm:"column:created_at;autoCreateTime"`
|
||||||
|
Loading…
Reference in New Issue
Block a user