diff --git a/app/admin/apis/pay/wx_pay_test.go b/app/admin/apis/pay/wx_pay_test.go index 8ede688..2af27d9 100644 --- a/app/admin/apis/pay/wx_pay_test.go +++ b/app/admin/apis/pay/wx_pay_test.go @@ -41,7 +41,7 @@ func TestHmJsPayBToCOrder(t *testing.T) { // 查询 func TestHmQueryOrder(t *testing.T) { - orderId := "sale2024070651813719" + orderId := "sale2024070569804727" order, err := HmQueryOrder(orderId) if err != nil { diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index 663a73b..bf9f3fb 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -3757,6 +3757,11 @@ func packData(result []RetailDetailByJoin) []ErpOrder { orders = append(orders, item) } + // 根据AuditTime进行降序排序 + sort.SliceStable(orders, func(i, j int) bool { + return orders[i].AuditTime.After(*orders[j].AuditTime) + }) + return orders } diff --git a/app/admin/models/order.go b/app/admin/models/order.go index 2dc8bae..0cfc637 100644 --- a/app/admin/models/order.go +++ b/app/admin/models/order.go @@ -18,7 +18,6 @@ import ( "go-admin/tools" "go-admin/tools/config" "golang.org/x/sync/errgroup" - "gorm.io/gorm" "time" ) @@ -232,6 +231,7 @@ func (m *OrderListReq) List(exportFlag int, c *gin.Context) ([]Order, int64, str func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([]Order, int64, error) { var orderCards []OrderCard orders := make([]Order, 0) + qs := orm.Eloquent.Table("order_card").Where("card_status=?", m.CardStatus) // 非管理员才判断所属门店 @@ -250,9 +250,9 @@ func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([ } else { if len(storeList) > 0 { if len(storeList) == 1 { - qs = qs.Where("store_id = ?", storeList[0]) + qs = qs.Where("store_id = ? OR revert_store_id = ?", storeList[0], storeList[0]) } else { - qs = qs.Where("store_id IN (?)", storeList) + qs = qs.Where("store_id IN (?) OR revert_store_id IN (?)", storeList, storeList) } } else { return nil, 0, errors.New("用户未绑定门店") @@ -276,7 +276,7 @@ func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([ } if m.StoreId != 0 { // 门店id,共有 - qs = qs.Where("store_id", m.StoreId) + qs = qs.Where("store_id = ? OR revert_store_id = ?", m.StoreId, m.StoreId) } if !m.StartTime.IsZero() { // 共有 fmt.Println("起始时间:", m.StartTime.Unix()) @@ -365,8 +365,13 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord if m.PageSize == 0 { m.PageSize = 10 } - var qs *gorm.DB - qs = orm.Eloquent.Table("order").Where("pay_status", 2) + + qs := orm.Eloquent.Table("order").Select("DISTINCT `order`.*").Joins("JOIN order_card ON order.id = order_card.order_id"). + Where("order.pay_status = ?", 2) + + orderQs := orm.Eloquent.Table("(?) as unique_orders", qs).Order("unique_orders.created_at DESC") + + //qs = orm.Eloquent.Table("order").Where("pay_status", 2) // 非管理员才判断所属门店 if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") { @@ -384,9 +389,9 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord } else { if len(storeList) > 0 { if len(storeList) == 1 { - qs = qs.Where("store_id = ?", storeList[0]) + qs = qs.Where("order.store_id = ? OR order_card.revert_store_id = ?", storeList[0], storeList[0]) } else { - qs = qs.Where("store_id IN (?)", storeList) + qs = qs.Where("order.store_id IN (?) OR order_card.revert_store_id IN (?)", storeList, storeList) } } else { return nil, 0, errors.New("用户未绑定门店") @@ -410,46 +415,46 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord orderIds = append(orderIds, orderCards[i].OrderId) } - qs = qs.Where("id in (?)", orderIds) + qs = qs.Where("order.id in (?)", orderIds) } if m.PickupCode != "" { isDeliver = false - qs = qs.Where("pickup_code", m.PickupCode) + qs = qs.Where("order.pickup_code", m.PickupCode) } if m.PayStatus != 0 { - qs = qs.Where("pay_status", m.PayStatus) + qs = qs.Where("order.pay_status", m.PayStatus) } if m.DeliveryType != 0 { - qs = qs.Where("delivery_type", m.DeliveryType) + qs = qs.Where("order.delivery_type", m.DeliveryType) } if m.OrderId != 0 { isDeliver = false - qs = qs.Where("id", m.OrderId) + qs = qs.Where("order.id", m.OrderId) } if isDeliver { if m.Uid != 0 { - qs = qs.Where("uid", m.Uid) + qs = qs.Where("order.uid", m.Uid) } if m.GameCardId != 0 { - qs = qs.Where("game_card_id", m.GameCardId) + qs = qs.Where("order.game_card_id", m.GameCardId) } if m.StoreId != 0 { - qs = qs.Where("store_id", m.StoreId) + qs = qs.Where("order.store_id = ? OR order_card.revert_store_id = ?", m.StoreId, m.StoreId) } if !m.StartTime.IsZero() { fmt.Println("起始时间:", m.StartTime.Unix()) - qs = qs.Where("created_at > ?", m.StartTime) + qs = qs.Where("order.created_at > ?", m.StartTime) } if !m.EndTime.IsZero() { fmt.Println("时间:", m.StartTime.Unix()) - qs = qs.Where("created_at < ?", m.EndTime) + qs = qs.Where("order.created_at < ?", m.EndTime) } } var count int64 - err := qs.Count(&count).Error + err := orderQs.Count(&count).Error if err != nil { logger.Errorf("err:", logger.Field("err", err)) return nil, 0, err @@ -462,11 +467,11 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord } if exportFlag == 1 { //一次性导出excel - qs = qs.Preload("User").Order("created_at DESC") + orderQs = orderQs.Preload("User") } else { - qs = qs.Preload("User").Order("created_at DESC").Offset(page * pageSize).Limit(pageSize) + orderQs = orderQs.Preload("User").Offset(page * pageSize).Limit(pageSize) } - err = qs.Find(&orders).Error + err = orderQs.Find(&orders).Error if err != nil { logger.Errorf("err:", logger.Field("err", err)) return nil, 0, err