160 lines
4.7 KiB
Go
160 lines
4.7 KiB
Go
package dao
|
|
|
|
import (
|
|
"micro-bundle/internal/model"
|
|
"micro-bundle/pb/bundle"
|
|
"micro-bundle/pkg/app"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// 增值套餐创建
|
|
func CreateValueAddBundle(req *model.ValueAddBundleProfile) (err error) {
|
|
err = app.ModuleClients.BundleDB.Model(&model.ValueAddBundleProfile{}).Create(&req).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// 增值套餐列表
|
|
func ValueAddBundleList(priceType int32) (valueAddBundleProfile []*model.ValueAddBundleProfile, err error) {
|
|
err = app.ModuleClients.BundleDB.Where("price_type = ?", priceType).Order("num ASC").Find(&valueAddBundleProfile).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
// 增值套餐详情
|
|
func ValueAddBundleDetail(uuid string) (valueAddBundleProfile *model.ValueAddBundleProfile, err error) {
|
|
|
|
err = app.ModuleClients.BundleDB.Where("uuid = ?", uuid).First(&valueAddBundleProfile).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func BundleProfileDetail(uuid string) (bundleProfile *model.BundleProfile, err error) {
|
|
err = app.ModuleClients.BundleDB.Where("uuid = ?", uuid).First(&bundleProfile).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func BundleOrderRecordsDetailByAddUid(uuid string) (bundleOrderRecords *model.BundleOrderRecords, err error) {
|
|
|
|
err = app.ModuleClients.BundleDB.Where("value_add_bundle_uuid = ?", uuid).First(&bundleOrderRecords).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetBundleOrderRecordsByUserIdAndBundleUuid(userId int32, uuid string) (bundleOrderRecords *model.BundleOrderRecords, err error) {
|
|
|
|
err = app.ModuleClients.BundleDB.Where("customer_id = ? AND bundle_uuid = ?", userId, uuid).First(&bundleOrderRecords).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func GetBundleOrderRecordsByCommonUidAndUserId(commonUid string, userId int32) (bundleOrderRecords *model.BundleOrderRecords, err error) {
|
|
|
|
err = app.ModuleClients.BundleDB.Where("bundle_common_uid = ? AND customer_id = ?", commonUid, userId).First(&bundleOrderRecords).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
// ***************************************新增值服务*****************************
|
|
// 增值套餐主表创建
|
|
func CreateValueAddService(tx *gorm.DB, req *model.ValueAddService) (err error) {
|
|
if err := tx.Model(&model.ValueAddService{}).Create(req).Error; err != nil {
|
|
return err
|
|
}
|
|
return
|
|
}
|
|
|
|
// 增值套餐语言表创建
|
|
func CreateValueAddServiceLang(tx *gorm.DB, req *model.ValueAddServiceLang) (err error) {
|
|
if err := tx.Model(&model.ValueAddServiceLang{}).Create(req).Error; err != nil {
|
|
return err
|
|
}
|
|
return
|
|
}
|
|
|
|
// 增值套餐主表更新
|
|
func UpdateValueAddService(tx *gorm.DB, columns map[string]interface{}) (err error) {
|
|
err = tx.Model(&model.ValueAddService{}).Where("uuid = ?", columns["uuid"]).Updates(columns).Error
|
|
if err != nil {
|
|
return
|
|
}
|
|
return
|
|
}
|
|
func UpdateValueAddServiceLang(tx *gorm.DB, columns map[string]interface{}) (err error) {
|
|
err = tx.Model(&model.ValueAddServiceLang{}).Where("uuid =?", columns["uuid"]).
|
|
Where("language", columns["language"]).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{}).Preload("ValueAddServiceLang")
|
|
// Preload("ValueAddServiceLang", func(db *gorm.DB) *gorm.DB {
|
|
// return db.Select("uuid,service_name,service_type,price_mode,original_price,unit,language,price_type.options,created_at,updated_at")
|
|
// })
|
|
|
|
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(&res).Error; err != nil {
|
|
return
|
|
}
|
|
// 统计不同uuid的数量
|
|
err = count.Select("uuid").Group("uuid").Count(&total).Error
|
|
return
|
|
}
|
|
|
|
// 增值套餐详情
|
|
func ValueAddServiceDetail(uuid string, language string) (valueAddServiceDetail *model.ValueAddService, err error) {
|
|
var data model.ValueAddService
|
|
err = app.ModuleClients.BundleDB.Where("uuid = ?", uuid).Preload("ValueAddServiceLang").First(&data).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &data, nil
|
|
}
|
|
|
|
// 通过uuid和language查询增值套餐
|
|
func ValueAddServiceDetailByUuidAndLanguage(uuid string, language string) (valueAddServiceLang *model.ValueAddServiceLang, err error) {
|
|
err = app.ModuleClients.BundleDB.Where("uuid = ? AND language = ?", uuid, language).First(&valueAddServiceLang).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
|
|
// 通过增值服务UUID查询所有关联套餐
|
|
func GetBundleToValueAddServiceByValueUid(valueUid string) ([]model.BundleToValueAddService, error) {
|
|
var rels []model.BundleToValueAddService
|
|
err := app.ModuleClients.BundleDB.Model(&model.BundleToValueAddService{}).
|
|
Where("value_uid = ?", valueUid).
|
|
Find(&rels).Error
|
|
return rels, err
|
|
}
|