From 26bd09bf1d238a6667089974f1ffa943a26c55d8 Mon Sep 17 00:00:00 2001 From: chenlin Date: Tue, 9 Jul 2024 11:43:59 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AF=B9=E9=9B=B6=E5=94=AE=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=9A=84=E6=95=B0=E6=8D=AE=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=EF=BC=8C=E6=8C=89=E7=85=A7=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E9=99=8D=E5=BA=8F=E6=8E=92=E5=88=97=EF=BC=9B?= =?UTF-8?q?=202.=E7=A7=9F=E8=B5=81=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E6=9D=83=E9=99=90=E4=BF=AE=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=AF=B9=E5=BA=94=E9=97=A8=E5=BA=97=E7=9A=84?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=92=8C=E8=A7=84=E5=88=92=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/pay/wx_pay_test.go | 2 +- app/admin/models/erp_order.go | 5 ++++ app/admin/models/order.go | 49 +++++++++++++++++-------------- 3 files changed, 33 insertions(+), 23 deletions(-) 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