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 }