hepa-calc-api/api/dao/OrderMember.go
2024-07-18 14:19:02 +08:00

176 lines
4.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dao
import (
"gorm.io/gorm"
"gorm.io/gorm/clause"
"hepa-calc-api/api/model"
"hepa-calc-api/api/requests"
"hepa-calc-api/global"
)
type OrderMemberDao struct {
}
// GetOrderMemberById 获取数据-id
func (r *OrderMemberDao) GetOrderMemberById(OrderMemberId int64) (m *model.OrderMember, err error) {
err = global.Db.First(&m, OrderMemberId).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetOrderMemberPreloadById 获取数据-加载全部关联-id
func (r *OrderMemberDao) GetOrderMemberPreloadById(OrderMemberId int64) (m *model.OrderMember, err error) {
err = global.Db.Preload(clause.Associations).First(&m, OrderMemberId).Error
if err != nil {
return nil, err
}
return m, nil
}
// DeleteOrderMember 删除
func (r *OrderMemberDao) DeleteOrderMember(tx *gorm.DB, maps interface{}) error {
err := tx.Where(maps).Delete(&model.OrderMember{}).Error
if err != nil {
return err
}
return nil
}
// DeleteOrderMemberById 删除-id
func (r *OrderMemberDao) DeleteOrderMemberById(tx *gorm.DB, OrderMemberId int64) error {
if err := tx.Delete(&model.OrderMember{}, OrderMemberId).Error; err != nil {
return err
}
return nil
}
// EditOrderMember 修改
func (r *OrderMemberDao) EditOrderMember(tx *gorm.DB, maps interface{}, data interface{}) error {
err := tx.Model(&model.OrderMember{}).Where(maps).Updates(data).Error
if err != nil {
return err
}
return nil
}
// EditOrderMemberById 修改-id
func (r *OrderMemberDao) EditOrderMemberById(tx *gorm.DB, OrderMemberId int64, data interface{}) error {
err := tx.Model(&model.OrderMember{}).Where("order_id = ?", OrderMemberId).Updates(data).Error
if err != nil {
return err
}
return nil
}
// GetOrderMemberList 获取列表
func (r *OrderMemberDao) GetOrderMemberList(maps interface{}) (m []*model.OrderMember, err error) {
err = global.Db.Where(maps).Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetOrderMemberCount 获取数量
func (r *OrderMemberDao) GetOrderMemberCount(maps interface{}) (total int64, err error) {
err = global.Db.Model(&model.OrderMember{}).Where(maps).Count(&total).Error
if err != nil {
return 0, err
}
return total, nil
}
// GetOrderMemberListRand 获取列表-随机
func (r *OrderMemberDao) GetOrderMemberListRand(maps interface{}, limit int) (m []*model.OrderMember, err error) {
err = global.Db.Where(maps).Order("rand()").Limit(limit).Find(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// AddOrderMember 新增
func (r *OrderMemberDao) AddOrderMember(tx *gorm.DB, model *model.OrderMember) (*model.OrderMember, error) {
if err := tx.Create(model).Error; err != nil {
return nil, err
}
return model, nil
}
// GetOrderMember 获取
func (r *OrderMemberDao) GetOrderMember(maps interface{}) (m *model.OrderMember, err error) {
err = global.Db.Where(maps).First(&m).Error
if err != nil {
return nil, err
}
return m, nil
}
// GetOrderMemberPageSearch 获取列表-分页
func (r *OrderMemberDao) GetOrderMemberPageSearch(req requests.GetOrderMemberPage, page, pageSize int) (m []*model.OrderMember, total int64, err error) {
var totalRecords int64
// 构建查询条件
query := global.Db.Model(&model.OrderMember{})
query = query.Where("user_id = ?", req.UserId)
query = query.Where("is_delete = ?", 0)
query = query.Preload("SystemMember")
// 会员id
if req.SystemMemberId != "" {
query = query.Where("system_member_id = ?", req.SystemMemberId)
}
// 订单状态1:待支付 2:已完成 3:已取消)
if req.OrderStatus != nil {
query = query.Where("order_status = ?", req.OrderStatus)
}
// 支付渠道
if req.PayChannel != nil {
query = query.Where("pay_channel = ?", req.PayChannel)
}
// 支付状态
if req.PayStatus != nil {
query = query.Where("pay_status = ?", req.PayStatus)
}
// 订单退款状态
if req.RefundStatus != nil {
query = query.Where("refund_status = ?", req.RefundStatus)
}
// 系统订单编号
if req.OrderNo != "" {
query = query.Where("order_no = ?", req.OrderNo)
}
// 第三方支付流水号
if req.EscrowTradeNo != "" {
query = query.Where("escrow_trade_no = ?", req.EscrowTradeNo)
}
// 取消状态
if req.CancelStatus != nil {
query = query.Where("cancel_status = ?", req.CancelStatus)
}
// 排序
query = query.Order("created_at desc")
// 查询总数量
if err := query.Count(&totalRecords).Error; err != nil {
return nil, 0, err
}
err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error
if err != nil {
return nil, 0, err
}
return m, totalRecords, nil
}