订单发货

This commit is contained in:
范俊成 2023-09-26 15:51:48 +08:00
parent 957fcc4df0
commit 1397d7098a
3 changed files with 100 additions and 41 deletions

View File

@ -78,6 +78,12 @@ func DeliverGoods(c *gin.Context) {
app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误") app.Error(c, http.StatusBadRequest, errors.New("para err"), "参数错误")
return return
} }
if m.DeliverShopperCode != "" && !models.CheckCode(m.DeliverShopperCode) {
app.Error(c, http.StatusBadRequest, errors.New("deliver_shopper_code err"), "店员码错误")
return
}
// 更新卡的状态 // 更新卡的状态
if len(m.GameCardSerialNumbers) == 0 { if len(m.GameCardSerialNumbers) == 0 {
logger.Errorf("err:") logger.Errorf("err:")

View File

@ -70,8 +70,12 @@ type Order struct {
RevertExpressDuration uint64 `json:"revert_express_duration"` // 归还物流时长 RevertExpressDuration uint64 `json:"revert_express_duration"` // 归还物流时长
CooperativeBusinessId uint32 `json:"cooperative_business_id"` // 合作商id CooperativeBusinessId uint32 `json:"cooperative_business_id"` // 合作商id
CooperativeName string `json:"cooperative_name"` // 合作商名称 CooperativeName string `json:"cooperative_name"` // 合作商名称
//收货店员码
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:"-"` //发货店员码
RevertShopperCode string `json:"revert_shopper_code" gorm:"-"`
} }
func (*Order) TableName() string { func (*Order) TableName() string {
@ -112,6 +116,11 @@ type OrderCard struct {
GameCoverImg string `json:"cover_img" gorm:"-"` // 封面 GameCoverImg string `json:"cover_img" gorm:"-"` // 封面
Order *Order `json:"order" gorm:"-"` // 订单 Order *Order `json:"order" gorm:"-"` // 订单
RevertStore *Store `json:"revert_store" gorm:"-"` // 归还门店 RevertStore *Store `json:"revert_store" gorm:"-"` // 归还门店
DeliverShopperCode string `json:"deliver_shopper_code"` //发货店员码
RevertShopperCode string `json:"revert_shopper_code"` //收货识别码
DeliverShopper *ShopperPromotionCode `json:"deliver_shopper" gorm:"foreignKey:deliver_shopper_code;references:code"` //发货店员
RevertShopper *ShopperPromotionCode `json:"revert_shopper" gorm:"foreignKey:revert_shopper_code;references:code"` //收货店员
} }
func (*OrderCard) TableName() string { func (*OrderCard) TableName() string {
@ -350,7 +359,14 @@ func (m *Order) Info() (map[string]interface{}, error) {
} }
var orderCards []OrderCard var orderCards []OrderCard
err = orm.Eloquent.Table("order_card").Where("order_id=?", m.ID).Find(&orderCards).Error err = orm.Eloquent.Table("order_card").
Preload("DeliverShopper").
Preload("DeliverShopper.User").
Preload("RevertShopper").
Preload("RevertShopper.User").
Where("order_id=?", m.ID).
Find(&orderCards).
Error
if err != nil { if err != nil {
logger.Error("err:", err) logger.Error("err:", err)
return ret, err return ret, err
@ -677,6 +693,7 @@ func (m *Order) Deliver() (error, string) {
"serial_number": gameCardGoods.SerialNumber, "serial_number": gameCardGoods.SerialNumber,
"card_status": 2, "card_status": 2,
"receipt_time": receiptTime, "receipt_time": receiptTime,
"deliver_shopper_code": m.DeliverShopperCode,
}).Error }).Error
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
@ -939,6 +956,7 @@ func (m *Order) Revert() error {
"card_status": OrderCardStatusCompleted, "card_status": OrderCardStatusCompleted,
"revert_store_id": m.RevertStoreId, "revert_store_id": m.RevertStoreId,
"revert_time": time.Now(), "revert_time": time.Now(),
"revert_shopper_code": m.RevertShopperCode,
}).Error }).Error
if err != nil { if err != nil {
logger.Errorf("err:", err) logger.Errorf("err:", err)

View File

@ -0,0 +1,35 @@
package models
import (
orm "go-admin/common/global"
"go-admin/logger"
)
type ShopperPromotionCode struct {
Model
Uid uint32 `json:"uid"`
State int8 `json:"state"`
Code string `json:"code"`
StoreId uint32 `json:"store_id"`
User *UserInfo `json:"user" gorm:"foreignKey:uid;references:uid"`
}
func (s ShopperPromotionCode) TableName() string {
return "shopper_promotion_code"
}
func CheckCode(code string) bool {
var c int64
err := orm.Eloquent.
Table("shopper_promotion_code").
Where("code = ?", code).
Count(&c).
Error
if err != nil {
logger.Error("check code err", err)
return false
}
return c > 0
}