112 lines
4.0 KiB
Go
112 lines
4.0 KiB
Go
package dao
|
|
|
|
import (
|
|
"micro-bundle/internal/model"
|
|
"micro-bundle/pb/bundle"
|
|
"micro-bundle/pkg/app"
|
|
commonErr "micro-bundle/pkg/err"
|
|
"micro-bundle/pkg/msg"
|
|
)
|
|
|
|
// 增值套餐创建
|
|
func CreateValueAddBundle(req *model.ValueAddBundleProfile) (res *bundle.CommonResponse, err error) {
|
|
res = new(bundle.CommonResponse)
|
|
err = app.ModuleClients.BundleDB.Model(&model.ValueAddBundleProfile{}).Create(&req).Error
|
|
if err != nil {
|
|
res.Msg = msg.ErrorCreateValueAddBundleInfo
|
|
return res, commonErr.ReturnError(err, msg.ErrorCreateValueAddBundleInfo, "创建增值套餐信息失败: ")
|
|
}
|
|
res.Msg = msg.SuccessCreateValueAddBundleInfo
|
|
return
|
|
}
|
|
|
|
// 增值套餐更新
|
|
func UpdateValueAddBundle(req *model.ValueAddBundleProfile) (res *bundle.CommonResponse, err error) {
|
|
res = new(bundle.CommonResponse)
|
|
err = app.ModuleClients.BundleDB.Model(&model.ValueAddBundleProfile{}).Where("uuid = ?", req.UUID).Updates(req).Error
|
|
if err != nil {
|
|
res.Msg = msg.ErrorUpdateValueAddBundleInfo
|
|
return res, commonErr.ReturnError(err, msg.ErrorUpdateValueAddBundleInfo, "更新套餐信息失败: ")
|
|
}
|
|
res.Msg = msg.SuccessUpdateValueAddBundleInfo
|
|
return
|
|
}
|
|
|
|
// 增值套餐删除
|
|
func DeleteValueAddBundle(req *bundle.DelValueAddBundleRequest) (res *bundle.CommonResponse, err error) {
|
|
res = new(bundle.CommonResponse)
|
|
err = app.ModuleClients.BundleDB.Model(&model.ValueAddBundleProfile{}).Where("uuid = ?", req.Uuid).Delete(&model.ValueAddBundleProfile{}).Error
|
|
if err != nil {
|
|
res.Msg = msg.ErrorDeleteValueAddBundleInfo
|
|
return res, commonErr.ReturnError(err, msg.ErrorDeleteValueAddBundleInfo, "删除增值套餐信息失败: ")
|
|
}
|
|
res.Msg = msg.SuccessDeleteValueAddBundleInfo
|
|
return
|
|
}
|
|
|
|
// 增值套餐列表
|
|
func ValueAddBundleList(req *bundle.ValueAddBundleListRequest) (res *bundle.ValueAddBundleListResponse, err error) {
|
|
res = new(bundle.ValueAddBundleListResponse)
|
|
res.Bundles = make([]*bundle.ValueAddBundleProfile, 0)
|
|
bundles := make([]*model.ValueAddBundleProfile, 0)
|
|
|
|
query := app.ModuleClients.BundleDB.Model(&model.ValueAddBundleProfile{})
|
|
if req.Name != "" {
|
|
query = query.Where("name like ?", "%"+req.Name+"%")
|
|
}
|
|
|
|
if req.Language != "" {
|
|
query = query.Where("language like ?", req.Language)
|
|
}
|
|
|
|
count := *query
|
|
|
|
if req.PageSize != 0 && req.Page != 0 {
|
|
query = query.Limit(int(req.PageSize)).Offset(int(req.Page-1) * int(req.PageSize))
|
|
}
|
|
|
|
if err = query.Find(&bundles).Error; err != nil {
|
|
return res, commonErr.ReturnError(err, msg.ErrorGetBundleList, "获取套餐列表失败: ")
|
|
}
|
|
|
|
for _, valueAddBundleProfile := range bundles {
|
|
res.Bundles = append(res.Bundles, &bundle.ValueAddBundleProfile{
|
|
Uuid: valueAddBundleProfile.UUID,
|
|
Name: valueAddBundleProfile.Name,
|
|
OriginalPrice: valueAddBundleProfile.OriginalPrice,
|
|
DiscountPrice: valueAddBundleProfile.DiscountPrice,
|
|
TotalPrice: valueAddBundleProfile.TotalPrice,
|
|
SavedAmount: valueAddBundleProfile.SavedAmount,
|
|
Language: valueAddBundleProfile.Language,
|
|
CreatedAt: valueAddBundleProfile.CreatedAt.String(),
|
|
UpdatedAt: valueAddBundleProfile.UpdatedAt.String(),
|
|
})
|
|
}
|
|
var total int64
|
|
count.Count(&total)
|
|
res.Total = int32(total)
|
|
return
|
|
}
|
|
|
|
// 增值套餐详情
|
|
func ValueAddBundleDetail(uuid string) (res *bundle.ValueAddBundleProfile, err error) {
|
|
res = new(bundle.ValueAddBundleProfile)
|
|
valueAddBundleProfile := new(model.ValueAddBundleProfile)
|
|
err = app.ModuleClients.BundleDB.Where("uuid = ?", uuid).First(&valueAddBundleProfile).Error
|
|
if err != nil {
|
|
return res, commonErr.ReturnError(err, msg.ErrorGetBundleInfo, "获取套餐信息失败: ")
|
|
}
|
|
res = &bundle.ValueAddBundleProfile{
|
|
Uuid: valueAddBundleProfile.UUID,
|
|
Name: valueAddBundleProfile.Name,
|
|
OriginalPrice: valueAddBundleProfile.OriginalPrice,
|
|
DiscountPrice: valueAddBundleProfile.DiscountPrice,
|
|
TotalPrice: valueAddBundleProfile.TotalPrice,
|
|
SavedAmount: valueAddBundleProfile.SavedAmount,
|
|
Language: valueAddBundleProfile.Language,
|
|
CreatedAt: valueAddBundleProfile.CreatedAt.String(),
|
|
UpdatedAt: valueAddBundleProfile.UpdatedAt.String(),
|
|
}
|
|
return
|
|
}
|