修改套餐详情
This commit is contained in:
parent
6f1a46fa07
commit
082cee499a
@ -1,6 +1,7 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"micro-bundle/internal/model"
|
||||
"micro-bundle/pb/bundle"
|
||||
"micro-bundle/pkg/app"
|
||||
@ -157,9 +158,9 @@ func GetBundleToValueAddServiceByValueUid(valueUid string) ([]model.BundleToValu
|
||||
Find(&rels).Error
|
||||
return rels, err
|
||||
}
|
||||
func GetValueAddServiceDetailByUuid(uuid string) (*model.ValueAddService, error) {
|
||||
func GetValueAddServiceDetailByUuid(tx *gorm.DB, uuid string) (*model.ValueAddService, error) {
|
||||
result := &model.ValueAddService{}
|
||||
err := app.ModuleClients.BundleDB.Model(&model.ValueAddService{}).
|
||||
err := tx.Model(&model.ValueAddService{}).
|
||||
Preload("ValueAddServiceLang", "deleted_at = 0").
|
||||
Where("uuid =? and deleted_at=0", uuid).
|
||||
First(&result).Error
|
||||
@ -168,3 +169,21 @@ func GetValueAddServiceDetailByUuid(uuid string) (*model.ValueAddService, error)
|
||||
func CreateValueAddServiceHistory(tx *gorm.DB, req *model.ValueAddServiceHistory) 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,15 +459,32 @@ func saveBundleHistory(tx *gorm.DB, bundleUuid string, operator string, operator
|
||||
if err != nil {
|
||||
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 {
|
||||
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{
|
||||
Uuid: bundleUuid,
|
||||
BundleProfile: datatypes.JSON(j),
|
||||
Operator: operator,
|
||||
OperatorId: operatorId,
|
||||
Uuid: bundleUuid,
|
||||
BundleProfile: datatypes.JSON(j),
|
||||
ValueAddService: datatypes.JSON(vJ),
|
||||
Operator: operator,
|
||||
OperatorId: operatorId,
|
||||
}
|
||||
if err := tx.Create(history).Error; err != nil {
|
||||
return errors.New("保存套餐历史记录失败: " + err.Error())
|
||||
|
@ -258,6 +258,9 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon
|
||||
}
|
||||
} else {
|
||||
// 已存在,进行更新
|
||||
if err := saveValueAddServiceHistory(tx, in.Uuid); err != nil {
|
||||
return res, err
|
||||
}
|
||||
//中文状态下,更新主表和语言表
|
||||
if in.Language == msg.ZH_CN {
|
||||
updateService := map[string]interface{}{
|
||||
@ -294,9 +297,6 @@ func SaveValueAddService(in *bundle.ValueAddServiceLang) (res *bundle.SaveRespon
|
||||
if err := dao.UpdateValueAddServiceLang(tx, updateLangService); err != nil {
|
||||
return res, err
|
||||
}
|
||||
if err := saveValueAddServiceHistory(tx, in.Uuid); err != nil {
|
||||
return res, err
|
||||
}
|
||||
res.Uuid = in.Uuid
|
||||
res.Msg = "保存成功"
|
||||
res.CancelNum = cancelNum
|
||||
@ -412,11 +412,11 @@ func ValueAddServiceDetail(req *bundle.ValueAddServiceDetailRequest) (res *bundl
|
||||
|
||||
func saveValueAddServiceHistory(tx *gorm.DB, uuid string) (err error) {
|
||||
// 保存历史记录
|
||||
data, err := dao.GetBundleDetailByUuid(uuid)
|
||||
data, err := dao.GetValueAddServiceDetailByUuid(tx, uuid)
|
||||
if err != nil {
|
||||
return errors.New("查询增值服务详情失败: " + err.Error())
|
||||
}
|
||||
j, err := json.MarshalIndent(data, "", " ")
|
||||
j, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
return errors.New("json转换失败: " + err.Error())
|
||||
}
|
||||
|
@ -52,14 +52,15 @@ type BundleToValueAddService struct {
|
||||
|
||||
// todo套餐修改历史
|
||||
type BundleProfileHistory struct {
|
||||
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"`
|
||||
BundleProfile datatypes.JSON `json:"bundleProfile" gorm:"column:bundle_profile;type:json;comment:套餐信息"`
|
||||
Operator string `json:"operator" gorm:"column:operator;type:varchar(1024);comment:操作人"`
|
||||
OperatorId uint64 `json:"operatorId" gorm:"column:operator_id;type:int;comment:操作人ID"`
|
||||
CreatedAt int64 `gorm:"column:created_at;autoCreateTime"`
|
||||
UpdatedAt int64 `gorm:"column:updated_at;autoCreateTime"`
|
||||
DeletedAt soft_delete.DeletedAt
|
||||
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"`
|
||||
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:操作人"`
|
||||
OperatorId uint64 `json:"operatorId" gorm:"column:operator_id;type:int;comment:操作人ID"`
|
||||
CreatedAt int64 `gorm:"column:created_at;autoCreateTime"`
|
||||
UpdatedAt int64 `gorm:"column:updated_at;autoCreateTime"`
|
||||
DeletedAt soft_delete.DeletedAt
|
||||
}
|
||||
|
||||
func (m *BundleProfile) TableName() string {
|
||||
|
Loading…
Reference in New Issue
Block a user