1
This commit is contained in:
@@ -72,6 +72,15 @@ func (r *BaseClassDao) GetBaseClassList(maps interface{}) (m []*model.BaseClass,
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetBaseClassOrderList 获取列表-排序
|
||||
func (r *BaseClassDao) GetBaseClassOrderList(maps interface{}) (m []*model.BaseClass, err error) {
|
||||
err = global.Db.Where(maps).Order("sort desc").Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetBaseClassCount 获取数量
|
||||
func (r *BaseClassDao) GetBaseClassCount(maps interface{}) (total int64, err error) {
|
||||
err = global.Db.Model(&model.BaseClass{}).Where(maps).Count(&total).Error
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/global"
|
||||
)
|
||||
|
||||
@@ -106,3 +107,69 @@ func (r *OrderMemberDao) GetOrderMember(maps interface{}) (m *model.OrderMember,
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/global"
|
||||
)
|
||||
|
||||
@@ -106,3 +107,91 @@ func (r *OrderSingleDao) GetOrderSingle(maps interface{}) (m *model.OrderSingle,
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetOrderSingleOrderList 获取列表-排序
|
||||
func (r *OrderSingleDao) GetOrderSingleOrderList(maps interface{}, orderField string, limit int) (m []*model.OrderSingle, err error) {
|
||||
err = global.Db.Where(maps).Preload(clause.Associations).Order(orderField).Limit(limit).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetOrderSinglePageSearch 获取列表-分页
|
||||
func (r *OrderSingleDao) GetOrderSinglePageSearch(req requests.GetOrderSinglePage, page, pageSize int) (m []*model.OrderSingle, total int64, err error) {
|
||||
var totalRecords int64
|
||||
|
||||
// 构建查询条件
|
||||
query := global.Db.Model(&model.OrderSingle{})
|
||||
query = query.Where("user_id = ?", req.UserId)
|
||||
query = query.Where("is_delete = ?", 0)
|
||||
|
||||
query = query.Preload("Question")
|
||||
|
||||
// 问题id
|
||||
if req.QuestionId != "" {
|
||||
query = query.Where("question_id = ?", req.QuestionId)
|
||||
}
|
||||
|
||||
// 订单状态(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
|
||||
}
|
||||
|
||||
// GetUserFirstTimeBuyOrderSingle 获取用户首次购买的订单
|
||||
func (r *OrderSingleDao) GetUserFirstTimeBuyOrderSingle(userId, questionId int64) (m *model.OrderSingle, err error) {
|
||||
err = global.Db.
|
||||
Where("user_id = ?", userId).
|
||||
Where("question_id = ?", questionId).
|
||||
Where("order_status != ?", 3).
|
||||
First(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/global"
|
||||
)
|
||||
|
||||
@@ -106,3 +108,146 @@ func (r *QuestionDao) GetQuestion(maps interface{}) (m *model.Question, err erro
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetQuestionOrderLimitList 获取列表-排序、限制数量
|
||||
func (r *QuestionDao) GetQuestionOrderLimitList(maps interface{}, orderField string, limit int) (m []*model.Question, err error) {
|
||||
err = global.Db.Where(maps).Order(orderField).Limit(limit).Find(&m).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetQuestionPageSearch 获取题目列表-分页
|
||||
func (r *QuestionDao) GetQuestionPageSearch(req requests.GetQuestionPage, page, pageSize int) (m []*model.Question, total int64, err error) {
|
||||
var totalRecords int64
|
||||
|
||||
// 构建查询条件
|
||||
query := global.Db.Model(&model.Question{})
|
||||
|
||||
// 是否隐藏
|
||||
query = query.Where("is_hide = ?", 0)
|
||||
|
||||
// 主键id
|
||||
if req.QuestionId != "" {
|
||||
query = query.Where("question_id = ?", req.QuestionId)
|
||||
}
|
||||
|
||||
// 标题
|
||||
if req.QuestionTitle != "" {
|
||||
query = query.Where("question_title LIKE ?", "%"+req.QuestionTitle+"%")
|
||||
}
|
||||
|
||||
// 副标题
|
||||
if req.QuestionSubtitle != "" {
|
||||
query = query.Where("question_subtitle LIKE ?", "%"+req.QuestionSubtitle+"%")
|
||||
}
|
||||
|
||||
// 唯一标识
|
||||
if req.QuestionIden != "" {
|
||||
query = query.Where("question_iden = ?", req.QuestionIden)
|
||||
}
|
||||
|
||||
// 问题状态
|
||||
if req.QuestionStatus != nil {
|
||||
query = query.Where("question_status = ?", req.QuestionStatus)
|
||||
}
|
||||
|
||||
// 是否推荐
|
||||
if req.IsRecommend != nil {
|
||||
query = query.Where("is_recommend = ?", req.IsRecommend)
|
||||
}
|
||||
|
||||
// 问题介绍
|
||||
if req.QuestionBrief != "" {
|
||||
query = query.Where("question_brief LIKE ?", "%"+req.QuestionBrief+"%")
|
||||
}
|
||||
|
||||
// 问题解释/科普
|
||||
if req.QuestionExplain != "" {
|
||||
query = query.Where("question_explain LIKE ?", "%"+req.QuestionExplain+"%")
|
||||
}
|
||||
|
||||
// 分类标识
|
||||
if req.ClassId != "" {
|
||||
baseClassQuery := global.Db.Model(&model.BaseClass{}).
|
||||
Select("class_id").
|
||||
Where("class_id = ?", req.ClassId)
|
||||
|
||||
questionClassQuery := global.Db.Model(&model.QuestionClass{}).
|
||||
Select("question_id").
|
||||
Where("class_id IN (?)", baseClassQuery)
|
||||
|
||||
query = query.Where("question_id IN (?)", questionClassQuery)
|
||||
}
|
||||
|
||||
// 排序
|
||||
if req.Order != nil {
|
||||
// 点击次数(点击进入详情页的人次)
|
||||
if req.Order.ClickCount != "" {
|
||||
if req.Order.ClickCount != "desc" && req.Order.ClickCount != "asc" {
|
||||
return nil, 0, errors.New("排序字段错误")
|
||||
}
|
||||
|
||||
query = query.Order("click_count " + req.Order.ClickCount)
|
||||
}
|
||||
|
||||
// 提交次数(提交个人信息进行了算算的人次)
|
||||
if req.Order.SubmitCount != "" {
|
||||
if req.Order.SubmitCount != "desc" && req.Order.SubmitCount != "asc" {
|
||||
return nil, 0, errors.New("排序字段错误")
|
||||
}
|
||||
|
||||
query = query.Order("submit_count " + req.Order.SubmitCount)
|
||||
}
|
||||
|
||||
// 支付次数(查看报告的人次)
|
||||
if req.Order.PayCount != "" {
|
||||
if req.Order.PayCount != "desc" && req.Order.PayCount != "asc" {
|
||||
return nil, 0, errors.New("排序字段错误")
|
||||
}
|
||||
|
||||
query = query.Order("pay_count " + req.Order.PayCount)
|
||||
}
|
||||
|
||||
// 价格(原价)
|
||||
if req.Order.Price != "" {
|
||||
if req.Order.Price != "desc" && req.Order.Price != "asc" {
|
||||
return nil, 0, errors.New("排序字段错误")
|
||||
}
|
||||
|
||||
query = query.Order("price " + req.Order.Price)
|
||||
}
|
||||
|
||||
// 优惠价格
|
||||
if req.Order.DiscountPrice != "" {
|
||||
if req.Order.DiscountPrice != "desc" && req.Order.DiscountPrice != "asc" {
|
||||
return nil, 0, errors.New("排序字段错误")
|
||||
}
|
||||
|
||||
query = query.Order("discount_price " + req.Order.DiscountPrice)
|
||||
}
|
||||
|
||||
if req.Order.UpdatedAt != "" {
|
||||
if req.Order.UpdatedAt != "desc" && req.Order.UpdatedAt != "asc" {
|
||||
return nil, 0, errors.New("排序字段错误")
|
||||
}
|
||||
|
||||
query = query.Order("updated_at " + req.Order.UpdatedAt)
|
||||
}
|
||||
}
|
||||
|
||||
// 排序
|
||||
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
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/global"
|
||||
)
|
||||
|
||||
@@ -106,3 +107,28 @@ func (r *UserCollectionDao) GetUserCollection(maps interface{}) (m *model.UserCo
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetUserCollectionPageSearch 获取列表-分页
|
||||
func (r *UserCollectionDao) GetUserCollectionPageSearch(req requests.GetUserCollectionPage, page, pageSize int) (m []*model.UserCollection, total int64, err error) {
|
||||
var totalRecords int64
|
||||
|
||||
// 构建查询条件
|
||||
query := global.Db.Model(&model.UserCollection{})
|
||||
query = query.Where("user_id = ?", req.UserId)
|
||||
|
||||
query = query.Preload("Question")
|
||||
|
||||
// 排序
|
||||
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
|
||||
}
|
||||
|
||||
@@ -4,7 +4,10 @@ import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hepa-calc-api/api/model"
|
||||
"hepa-calc-api/api/requests"
|
||||
"hepa-calc-api/global"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type UserCouponDao struct {
|
||||
@@ -106,3 +109,85 @@ func (r *UserCouponDao) GetUserCoupon(maps interface{}) (m *model.UserCoupon, er
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// GetUserCouponPageSearch 获取列表-分页
|
||||
func (r *UserCouponDao) GetUserCouponPageSearch(req requests.GetUserCouponPage, page, pageSize int) (m []*model.UserCoupon, total int64, err error) {
|
||||
var totalRecords int64
|
||||
|
||||
// 构建查询条件
|
||||
query := global.Db.Model(&model.UserCoupon{})
|
||||
query = query.Where("user_id = ?", req.UserId)
|
||||
|
||||
// 优惠卷
|
||||
query = query.Preload("Coupon", func(db *gorm.DB) *gorm.DB {
|
||||
return db.Select("coupon_id", "coupon_name", "coupon_type", "coupon_status", "application_scope", "coupon_price", "valid_start_time", "valid_end_time", "coupon_desc")
|
||||
})
|
||||
|
||||
// 优惠券id
|
||||
if req.CouponId != "" {
|
||||
query = query.Where("coupon_id = ?", req.CouponId)
|
||||
}
|
||||
|
||||
// 状态(0:未使用 1:已使用 3:已过期)
|
||||
if req.UserCouponStatus != nil {
|
||||
query = query.Where("user_coupon_status = ?", req.UserCouponStatus)
|
||||
}
|
||||
|
||||
// 是否已弹窗
|
||||
if req.IsWindows != nil {
|
||||
query = query.Where("is_windows = ?", req.IsWindows)
|
||||
}
|
||||
|
||||
// 使用时间
|
||||
if req.CouponUseDate != "" {
|
||||
couponUseDate := strings.Split(req.CouponUseDate, "&")
|
||||
if len(couponUseDate) == 2 {
|
||||
startTime, _ := time.Parse("2006-01-02", couponUseDate[0])
|
||||
endTime, _ := time.Parse("2006-01-02", couponUseDate[1])
|
||||
|
||||
endTime = endTime.Add(23*time.Hour + 59*time.Minute + 59*time.Second)
|
||||
|
||||
query = query.Where("coupon_use_date BETWEEN ? AND ?", startTime, endTime)
|
||||
}
|
||||
}
|
||||
|
||||
// 有效开始时间
|
||||
if req.ValidStartTime != "" {
|
||||
validStartTime := strings.Split(req.ValidStartTime, "&")
|
||||
if len(validStartTime) == 2 {
|
||||
startTime, _ := time.Parse("2006-01-02", validStartTime[0])
|
||||
endTime, _ := time.Parse("2006-01-02", validStartTime[1])
|
||||
|
||||
endTime = endTime.Add(23*time.Hour + 59*time.Minute + 59*time.Second)
|
||||
|
||||
query = query.Where("valid_start_time BETWEEN ? AND ?", startTime, endTime)
|
||||
}
|
||||
}
|
||||
|
||||
// 有效结束时间
|
||||
if req.ValidEndTime != "" {
|
||||
validEndTime := strings.Split(req.ValidEndTime, "&")
|
||||
if len(validEndTime) == 2 {
|
||||
startTime, _ := time.Parse("2006-01-02", validEndTime[0])
|
||||
endTime, _ := time.Parse("2006-01-02", validEndTime[1])
|
||||
|
||||
endTime = endTime.Add(23*time.Hour + 59*time.Minute + 59*time.Second)
|
||||
|
||||
query = query.Where("valid_end_time BETWEEN ? AND ?", startTime, endTime)
|
||||
}
|
||||
}
|
||||
|
||||
// 排序
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user