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 }