1、租赁订单归还增加"超期处理"的逻辑,超期处理的订单状态为7,用户信息中保证金清零,且mark=1;
2、优化租赁订单查询列表接口,解决查询慢的问题;已完成状态改为(4,7);
This commit is contained in:
parent
f670065965
commit
9c4e75d749
|
@ -122,6 +122,34 @@ func RevertGoods(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(order.PhoneExt) != 4 {
|
||||||
|
app.Error(c, http.StatusBadRequest, errors.New("手机尾号填写有误(4位数字)"),
|
||||||
|
"手机尾号填写有误(4位数字)")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if order.OverdueFlag == 1 { // 检查用户会员是否过期
|
||||||
|
var orderInfo models.Order
|
||||||
|
err := orm.Eloquent.Table("order").Where("id", order.ID).Find(&orderInfo).Error
|
||||||
|
if err != nil {
|
||||||
|
app.Error(c, http.StatusBadRequest, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
userInfo, err := models.GetUserInfoByUid(uint32(orderInfo.Uid))
|
||||||
|
if err != nil {
|
||||||
|
app.Error(c, http.StatusBadRequest, err, err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if userInfo.MemberLevel == 2 || userInfo.MemberLevel == 3 || userInfo.MemberLevel == 4 ||
|
||||||
|
userInfo.MemberLevel == 5 {
|
||||||
|
app.Error(c, http.StatusBadRequest, errors.New("该用户会员还未过期,不能选择超期处理"),
|
||||||
|
"该用户会员还未过期,不能选择超期处理")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if order.RevertShopperCode != "" && !models.CheckCode(order.RevertShopperCode) {
|
if order.RevertShopperCode != "" && !models.CheckCode(order.RevertShopperCode) {
|
||||||
app.Error(c, http.StatusBadRequest, errors.New("order revert shopper code err"), "店员码错误")
|
app.Error(c, http.StatusBadRequest, errors.New("order revert shopper code err"), "店员码错误")
|
||||||
return
|
return
|
||||||
|
|
|
@ -23,12 +23,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
OrderCardStatusUnPick = 1 // 待取货中
|
OrderCardStatusUnPick = 1 // 待取货中
|
||||||
OrderCardStatusPlaying = 2 // 游玩中
|
OrderCardStatusPlaying = 2 // 游玩中
|
||||||
OrderCardStatusReturning = 3 // 归还中
|
OrderCardStatusReturning = 3 // 归还中
|
||||||
OrderCardStatusCompleted = 4 // 已完成
|
OrderCardStatusCompleted = 4 // 已完成
|
||||||
OrderCardStatusCancel = 5 // 已取消
|
OrderCardStatusCancel = 5 // 已取消
|
||||||
OrderCardStatusRefund = 6 // 已退款
|
OrderCardStatusRefund = 6 // 已退款
|
||||||
|
OrderCardStatusSystemReturn = 7 // 系统处理(超期卡)
|
||||||
|
|
||||||
DeliveryTypeStorePick = 1 // 门店取货
|
DeliveryTypeStorePick = 1 // 门店取货
|
||||||
DeliveryTypeExpress = 2 // 快递取货
|
DeliveryTypeExpress = 2 // 快递取货
|
||||||
|
@ -79,9 +80,10 @@ type Order struct {
|
||||||
|
|
||||||
GameCardSerialNumbers []string `json:"game_card_serial_numbers" gorm:"-"`
|
GameCardSerialNumbers []string `json:"game_card_serial_numbers" gorm:"-"`
|
||||||
OrderCards []OrderCard `json:"order_cards" gorm:"-"`
|
OrderCards []OrderCard `json:"order_cards" gorm:"-"`
|
||||||
DeliverShopperCode string `json:"deliver_shopper_code" gorm:"-"` //发货店员码
|
DeliverShopperCode string `json:"deliver_shopper_code" gorm:"-"` // 发货店员码
|
||||||
RevertShopperCode string `json:"revert_shopper_code" gorm:"-"`
|
RevertShopperCode string `json:"revert_shopper_code" gorm:"-"` // 店员识别码
|
||||||
PhoneExt string `json:"phone_ext" gorm:"-"`
|
PhoneExt string `json:"phone_ext" gorm:"-"` // 用户手机号后四位
|
||||||
|
OverdueFlag uint32 `json:"overdue_flag" gorm:"-"` // 超期处理标志:1
|
||||||
User *UserInfo `json:"user" gorm:"foreignKey:uid;references:uid"`
|
User *UserInfo `json:"user" gorm:"foreignKey:uid;references:uid"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,20 +231,159 @@ func (m *OrderListReq) List(exportFlag int, c *gin.Context) ([]Order, int64, str
|
||||||
return orders, count, filePath, nil
|
return orders, count, filePath, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//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)
|
||||||
|
//
|
||||||
|
// // 非管理员才判断所属门店
|
||||||
|
// if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
||||||
|
// sysUser, err := GetSysUserByCtx(c)
|
||||||
|
// if err != nil {
|
||||||
|
// return nil, 0, err
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 返回sysUser未过期的门店id列表
|
||||||
|
// storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||||
|
// if m.StoreId != 0 {
|
||||||
|
// if !Contains(storeList, uint32(m.StoreId)) {
|
||||||
|
// return nil, 0, errors.New("您没有该门店权限")
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// if len(storeList) > 0 {
|
||||||
|
// if len(storeList) == 1 {
|
||||||
|
// qs = qs.Where("store_id = ? OR revert_store_id = ?", storeList[0], storeList[0])
|
||||||
|
// } else {
|
||||||
|
// qs = qs.Where("store_id IN (?) OR revert_store_id IN (?)", storeList, storeList)
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// return nil, 0, errors.New("用户未绑定门店")
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if m.SerialNumber != "" {
|
||||||
|
// qs = qs.Where("serial_number=?", m.SerialNumber)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if m.DeliveryType != 0 { // 共有
|
||||||
|
// qs = qs.Where("delivery_type", m.DeliveryType)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if m.Uid != 0 { // 用户id,共有
|
||||||
|
// qs = qs.Where("uid", m.Uid)
|
||||||
|
// }
|
||||||
|
// if m.GameCardId != 0 { // 游戏卡id,共有
|
||||||
|
// qs = qs.Where("game_card_id", m.GameCardId)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if m.StoreId != 0 { // 门店id,共有
|
||||||
|
// qs = qs.Where("store_id = ? OR revert_store_id = ?", m.StoreId, m.StoreId)
|
||||||
|
// }
|
||||||
|
// if !m.StartTime.IsZero() { // 共有
|
||||||
|
// fmt.Println("起始时间:", m.StartTime.Unix())
|
||||||
|
// qs = qs.Where("created_at > ?", m.StartTime)
|
||||||
|
// }
|
||||||
|
// if !m.EndTime.IsZero() { // 共有
|
||||||
|
// fmt.Println("时间:", m.StartTime.Unix())
|
||||||
|
// qs = qs.Where("created_at < ?", m.EndTime)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// err := qs.Find(&orderCards).Error
|
||||||
|
// if err != nil {
|
||||||
|
// logger.Error("err:", logger.Field("err", err))
|
||||||
|
// return nil, 0, err
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// orderIds := make([]uint32, 0)
|
||||||
|
// for i, _ := range orderCards {
|
||||||
|
// orderIds = append(orderIds, orderCards[i].OrderId)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// orderQs := orm.Eloquent.Table("order").Where("pay_status", 2).Where("id in (?)", orderIds)
|
||||||
|
// var count int64
|
||||||
|
// err = orderQs.Count(&count).Error
|
||||||
|
// if err != nil {
|
||||||
|
// logger.Errorf("err:", logger.Field("err", err))
|
||||||
|
// return nil, 0, err
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// page := m.Page
|
||||||
|
// pageSize := m.PageSize
|
||||||
|
// page -= 1
|
||||||
|
// if page < 0 {
|
||||||
|
// page = 0
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if exportFlag == 1 { //一次性导出excel
|
||||||
|
// orderQs = orderQs.Preload("User").Order("created_at DESC")
|
||||||
|
// } else {
|
||||||
|
// orderQs = orderQs.Preload("User").Order("created_at DESC").Offset(page * pageSize).Limit(pageSize)
|
||||||
|
// }
|
||||||
|
// err = orderQs.Find(&orders).Error
|
||||||
|
// if err != nil {
|
||||||
|
// logger.Errorf("err:", logger.Field("err", err))
|
||||||
|
// return nil, 0, err
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// ids := make([]uint32, 0, len(orders))
|
||||||
|
// for i, _ := range orders {
|
||||||
|
// ids = append(ids, uint32(orders[i].ID))
|
||||||
|
// }
|
||||||
|
// if len(ids) == 0 {
|
||||||
|
// logger.Error("gameIds is nil")
|
||||||
|
// return nil, 0, err
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// err = orm.Eloquent.Table("order_card").Where("order_id in (?)", ids).Find(&orderCards).Error
|
||||||
|
// if err != nil {
|
||||||
|
// logger.Error("err:", logger.Field("err", err))
|
||||||
|
// return nil, 0, err
|
||||||
|
// }
|
||||||
|
// orderCards = OrderCardListSetGameInfo(orderCards)
|
||||||
|
// orderCardsMap := make(map[uint32][]OrderCard, 0)
|
||||||
|
// for i, _ := range orderCards {
|
||||||
|
// if orderCards[i].CardStatus == OrderCardStatusSystemReturn {
|
||||||
|
// orderCards[i].CardStatus = OrderCardStatusCompleted
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if orderCards[i].CardStatus == m.CardStatus { //卡片状态相同的租卡订单才返回,方便财务导出数据
|
||||||
|
// orderCardsMap[orderCards[i].OrderId] = append(orderCardsMap[orderCards[i].OrderId], orderCards[i])
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// for i, _ := range orders {
|
||||||
|
// //2023-12-12 跟产品讨论后确认状态按原来的5种进行展示
|
||||||
|
// //if orders[i].CardStatus == 2 || orders[i].CardStatus == 3 {
|
||||||
|
// // orders[i].CardStatus = 4
|
||||||
|
// //}
|
||||||
|
// v, ok := orderCardsMap[orders[i].ID]
|
||||||
|
// if ok {
|
||||||
|
// orders[i].OrderCards = v
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return orders, count, nil
|
||||||
|
//}
|
||||||
|
|
||||||
func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([]Order, int64, error) {
|
func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([]Order, int64, error) {
|
||||||
var orderCards []OrderCard
|
|
||||||
orders := make([]Order, 0)
|
orders := make([]Order, 0)
|
||||||
|
var orderIds []uint32
|
||||||
|
|
||||||
qs := orm.Eloquent.Table("order_card").Where("card_status=?", m.CardStatus)
|
// 初始 card 表查询
|
||||||
|
cardQs := orm.Eloquent.Table("order_card").Select("DISTINCT order_id")
|
||||||
|
if m.CardStatus == OrderCardStatusCompleted {
|
||||||
|
cardQs = cardQs.Where("pay_status = 2 and card_status in (?)", []int{OrderCardStatusCompleted, OrderCardStatusSystemReturn})
|
||||||
|
} else {
|
||||||
|
cardQs = cardQs.Where("pay_status = 2 and card_status = ?", m.CardStatus)
|
||||||
|
}
|
||||||
|
|
||||||
// 非管理员才判断所属门店
|
// 权限控制
|
||||||
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") {
|
||||||
sysUser, err := GetSysUserByCtx(c)
|
sysUser, err := GetSysUserByCtx(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 返回sysUser未过期的门店id列表
|
|
||||||
storeList := GetValidStoreIDs(sysUser.StoreData)
|
storeList := GetValidStoreIDs(sysUser.StoreData)
|
||||||
if m.StoreId != 0 {
|
if m.StoreId != 0 {
|
||||||
if !Contains(storeList, uint32(m.StoreId)) {
|
if !Contains(storeList, uint32(m.StoreId)) {
|
||||||
|
@ -251,9 +392,9 @@ func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([
|
||||||
} else {
|
} else {
|
||||||
if len(storeList) > 0 {
|
if len(storeList) > 0 {
|
||||||
if len(storeList) == 1 {
|
if len(storeList) == 1 {
|
||||||
qs = qs.Where("store_id = ? OR revert_store_id = ?", storeList[0], storeList[0])
|
cardQs = cardQs.Where("store_id = ? OR revert_store_id = ?", storeList[0], storeList[0])
|
||||||
} else {
|
} else {
|
||||||
qs = qs.Where("store_id IN (?) OR revert_store_id IN (?)", storeList, storeList)
|
cardQs = cardQs.Where("store_id IN (?) OR revert_store_id IN (?)", storeList, storeList)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return nil, 0, errors.New("用户未绑定门店")
|
return nil, 0, errors.New("用户未绑定门店")
|
||||||
|
@ -261,98 +402,106 @@ func (m *OrderListReq) queryListFormOrderCard(exportFlag int, c *gin.Context) ([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 其他筛选条件
|
||||||
if m.SerialNumber != "" {
|
if m.SerialNumber != "" {
|
||||||
qs = qs.Where("serial_number=?", m.SerialNumber)
|
cardQs = cardQs.Where("serial_number = ?", m.SerialNumber)
|
||||||
|
}
|
||||||
|
if m.DeliveryType != 0 {
|
||||||
|
cardQs = cardQs.Where("delivery_type = ?", m.DeliveryType)
|
||||||
|
}
|
||||||
|
if m.Uid != 0 {
|
||||||
|
cardQs = cardQs.Where("uid = ?", m.Uid)
|
||||||
|
}
|
||||||
|
if m.GameCardId != 0 {
|
||||||
|
cardQs = cardQs.Where("game_card_id = ?", m.GameCardId)
|
||||||
|
}
|
||||||
|
if m.StoreId != 0 {
|
||||||
|
cardQs = cardQs.Where("store_id = ? OR revert_store_id = ?", m.StoreId, m.StoreId)
|
||||||
|
}
|
||||||
|
if !m.StartTime.IsZero() {
|
||||||
|
cardQs = cardQs.Where("created_at > ?", m.StartTime)
|
||||||
|
}
|
||||||
|
if !m.EndTime.IsZero() {
|
||||||
|
cardQs = cardQs.Where("created_at < ?", m.EndTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.DeliveryType != 0 { // 共有
|
// 统计总数(订单数)
|
||||||
qs = qs.Where("delivery_type", m.DeliveryType)
|
|
||||||
}
|
|
||||||
|
|
||||||
if m.Uid != 0 { // 用户id,共有
|
|
||||||
qs = qs.Where("uid", m.Uid)
|
|
||||||
}
|
|
||||||
if m.GameCardId != 0 { // 游戏卡id,共有
|
|
||||||
qs = qs.Where("game_card_id", m.GameCardId)
|
|
||||||
}
|
|
||||||
|
|
||||||
if m.StoreId != 0 { // 门店id,共有
|
|
||||||
qs = qs.Where("store_id = ? OR revert_store_id = ?", m.StoreId, m.StoreId)
|
|
||||||
}
|
|
||||||
if !m.StartTime.IsZero() { // 共有
|
|
||||||
fmt.Println("起始时间:", m.StartTime.Unix())
|
|
||||||
qs = qs.Where("created_at > ?", m.StartTime)
|
|
||||||
}
|
|
||||||
if !m.EndTime.IsZero() { // 共有
|
|
||||||
fmt.Println("时间:", m.StartTime.Unix())
|
|
||||||
qs = qs.Where("created_at < ?", m.EndTime)
|
|
||||||
}
|
|
||||||
|
|
||||||
err := qs.Find(&orderCards).Error
|
|
||||||
if err != nil {
|
|
||||||
logger.Error("err:", logger.Field("err", err))
|
|
||||||
return nil, 0, err
|
|
||||||
}
|
|
||||||
|
|
||||||
orderIds := make([]uint32, 0)
|
|
||||||
for i, _ := range orderCards {
|
|
||||||
orderIds = append(orderIds, orderCards[i].OrderId)
|
|
||||||
}
|
|
||||||
|
|
||||||
orderQs := orm.Eloquent.Table("order").Where("pay_status", 2).Where("id in (?)", orderIds)
|
|
||||||
var count int64
|
var count int64
|
||||||
err = orderQs.Count(&count).Error
|
err := cardQs.Count(&count).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("err:", logger.Field("err", err))
|
logger.Error("统计订单数量失败:", logger.Field("err", err))
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
if count == 0 {
|
||||||
|
return []Order{}, 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分页参数
|
||||||
page := m.Page
|
page := m.Page
|
||||||
pageSize := m.PageSize
|
pageSize := m.PageSize
|
||||||
page -= 1
|
if page < 1 {
|
||||||
if page < 0 {
|
page = 1
|
||||||
page = 0
|
}
|
||||||
|
offset := (page - 1) * pageSize
|
||||||
|
|
||||||
|
// 查询分页的 order_id(distinct 结果)
|
||||||
|
cardQs = cardQs.Order("order_id DESC")
|
||||||
|
if exportFlag == 0 {
|
||||||
|
cardQs = cardQs.Offset(offset).Limit(pageSize)
|
||||||
|
}
|
||||||
|
err = cardQs.Pluck("order_id", &orderIds).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("分页查询 order_card 失败:", logger.Field("err", err))
|
||||||
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if exportFlag == 1 { //一次性导出excel
|
if len(orderIds) == 0 {
|
||||||
orderQs = orderQs.Preload("User").Order("created_at DESC")
|
return []Order{}, count, nil
|
||||||
} else {
|
|
||||||
orderQs = orderQs.Preload("User").Order("created_at DESC").Offset(page * pageSize).Limit(pageSize)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询订单
|
||||||
|
orderQs := orm.Eloquent.Table("order").
|
||||||
|
Where("pay_status = ?", 2).
|
||||||
|
Where("id IN (?)", orderIds).
|
||||||
|
Preload("User").
|
||||||
|
Order("created_at DESC")
|
||||||
|
|
||||||
err = orderQs.Find(&orders).Error
|
err = orderQs.Find(&orders).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("err:", logger.Field("err", err))
|
logger.Error("查询 order 失败:", logger.Field("err", err))
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
ids := make([]uint32, 0, len(orders))
|
// 反查关联的卡片
|
||||||
for i, _ := range orders {
|
var orderCards []OrderCard
|
||||||
ids = append(ids, uint32(orders[i].ID))
|
if m.CardStatus == OrderCardStatusCompleted {
|
||||||
}
|
err = orm.Eloquent.Table("order_card").
|
||||||
if len(ids) == 0 {
|
Where("order_id IN (?) AND card_status IN (?)", orderIds, []int{OrderCardStatusCompleted, OrderCardStatusSystemReturn}).
|
||||||
logger.Error("gameIds is nil")
|
Find(&orderCards).Error
|
||||||
return nil, 0, err
|
} else {
|
||||||
|
err = orm.Eloquent.Table("order_card").
|
||||||
|
Where("order_id IN (?) AND card_status = ?", orderIds, m.CardStatus).
|
||||||
|
Find(&orderCards).Error
|
||||||
}
|
}
|
||||||
|
|
||||||
err = orm.Eloquent.Table("order_card").Where("order_id in (?)", ids).Find(&orderCards).Error
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", logger.Field("err", err))
|
logger.Error("查询 order_card 失败:", logger.Field("err", err))
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
orderCards = OrderCardListSetGameInfo(orderCards)
|
orderCards = OrderCardListSetGameInfo(orderCards)
|
||||||
orderCardsMap := make(map[uint32][]OrderCard, 0)
|
|
||||||
for i, _ := range orderCards {
|
// 绑定卡片到订单
|
||||||
if orderCards[i].CardStatus == m.CardStatus { //卡片状态相同的租卡订单才返回,方便财务导出数据
|
orderCardsMap := make(map[uint32][]OrderCard)
|
||||||
orderCardsMap[orderCards[i].OrderId] = append(orderCardsMap[orderCards[i].OrderId], orderCards[i])
|
for _, oc := range orderCards {
|
||||||
|
if oc.CardStatus == OrderCardStatusSystemReturn {
|
||||||
|
oc.CardStatus = OrderCardStatusCompleted
|
||||||
}
|
}
|
||||||
|
orderCardsMap[oc.OrderId] = append(orderCardsMap[oc.OrderId], oc)
|
||||||
}
|
}
|
||||||
for i, _ := range orders {
|
|
||||||
//2023-12-12 跟产品讨论后确认状态按原来的5种进行展示
|
for i := range orders {
|
||||||
//if orders[i].CardStatus == 2 || orders[i].CardStatus == 3 {
|
if v, ok := orderCardsMap[orders[i].ID]; ok {
|
||||||
// orders[i].CardStatus = 4
|
|
||||||
//}
|
|
||||||
v, ok := orderCardsMap[orders[i].ID]
|
|
||||||
if ok {
|
|
||||||
orders[i].OrderCards = v
|
orders[i].OrderCards = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -495,6 +644,9 @@ func (m *OrderListReq) queryListFormOrder(exportFlag int, c *gin.Context) ([]Ord
|
||||||
orderCards = OrderCardListSetGameInfo(orderCards)
|
orderCards = OrderCardListSetGameInfo(orderCards)
|
||||||
orderCardsMap := make(map[uint32][]OrderCard, 0)
|
orderCardsMap := make(map[uint32][]OrderCard, 0)
|
||||||
for i, _ := range orderCards {
|
for i, _ := range orderCards {
|
||||||
|
if orderCards[i].CardStatus == OrderCardStatusSystemReturn {
|
||||||
|
orderCards[i].CardStatus = OrderCardStatusCompleted
|
||||||
|
}
|
||||||
orderCardsMap[orderCards[i].OrderId] = append(orderCardsMap[orderCards[i].OrderId], orderCards[i])
|
orderCardsMap[orderCards[i].OrderId] = append(orderCardsMap[orderCards[i].OrderId], orderCards[i])
|
||||||
}
|
}
|
||||||
for i, _ := range orders {
|
for i, _ := range orders {
|
||||||
|
@ -1094,6 +1246,13 @@ func (m *Order) Revert() error {
|
||||||
logger.Error("order store id not game card goods store id")
|
logger.Error("order store id not game card goods store id")
|
||||||
return errors.New("order store id not game card goods store id")
|
return errors.New("order store id not game card goods store id")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断是否有超期还卡标志
|
||||||
|
cardStatusFlag := OrderCardStatusCompleted
|
||||||
|
if m.OverdueFlag == 1 {
|
||||||
|
cardStatusFlag = OrderCardStatusSystemReturn
|
||||||
|
}
|
||||||
|
|
||||||
begin := orm.Eloquent.Begin()
|
begin := orm.Eloquent.Begin()
|
||||||
var eg errgroup.Group
|
var eg errgroup.Group
|
||||||
//eg.Go(func() error {
|
//eg.Go(func() error {
|
||||||
|
@ -1226,7 +1385,7 @@ func (m *Order) Revert() error {
|
||||||
if m.RevertExpressNo != "" { // 物流单号不为空则记录到数据库;2024/2/1 产品新需求,解决用户物流归还但小程序不提交归还信息,店员要输入手机号的问题
|
if m.RevertExpressNo != "" { // 物流单号不为空则记录到数据库;2024/2/1 产品新需求,解决用户物流归还但小程序不提交归还信息,店员要输入手机号的问题
|
||||||
err = begin.Table("order_card").Where("id=?", orderCard.ID).Updates(&map[string]interface{}{
|
err = begin.Table("order_card").Where("id=?", orderCard.ID).Updates(&map[string]interface{}{
|
||||||
//"store_id": m.StoreId,
|
//"store_id": m.StoreId,
|
||||||
"card_status": OrderCardStatusCompleted,
|
"card_status": cardStatusFlag,
|
||||||
"revert_store_id": m.RevertStoreId,
|
"revert_store_id": m.RevertStoreId,
|
||||||
"revert_time": time.Now(),
|
"revert_time": time.Now(),
|
||||||
"revert_shopper_code": m.RevertShopperCode,
|
"revert_shopper_code": m.RevertShopperCode,
|
||||||
|
@ -1239,7 +1398,7 @@ func (m *Order) Revert() error {
|
||||||
} else {
|
} else {
|
||||||
err = begin.Table("order_card").Where("id=?", orderCard.ID).Updates(&map[string]interface{}{
|
err = begin.Table("order_card").Where("id=?", orderCard.ID).Updates(&map[string]interface{}{
|
||||||
//"store_id": m.StoreId,
|
//"store_id": m.StoreId,
|
||||||
"card_status": OrderCardStatusCompleted,
|
"card_status": cardStatusFlag,
|
||||||
"revert_store_id": m.RevertStoreId,
|
"revert_store_id": m.RevertStoreId,
|
||||||
"revert_time": time.Now(),
|
"revert_time": time.Now(),
|
||||||
"revert_shopper_code": m.RevertShopperCode,
|
"revert_shopper_code": m.RevertShopperCode,
|
||||||
|
@ -1281,7 +1440,21 @@ func (m *Order) Revert() error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
//orderCard.StoreId
|
if m.OverdueFlag == 1 { // 押金清零
|
||||||
|
eg.Go(func() error {
|
||||||
|
sql := fmt.Sprintf(
|
||||||
|
"UPDATE user SET deposit = 0, mark = 1 WHERE uid =%d;",
|
||||||
|
orderCard.Uid)
|
||||||
|
fmt.Println("sql:", sql)
|
||||||
|
err = begin.Exec(sql).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Errorf("err:", logger.Field("err", err))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
err = eg.Wait()
|
err = eg.Wait()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("err:", logger.Field("err", err))
|
logger.Errorf("err:", logger.Field("err", err))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user