60 lines
1.8 KiB
Go
60 lines
1.8 KiB
Go
package qixing
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
"voucher/internal/biz/vo"
|
|
)
|
|
|
|
type CouponState string
|
|
|
|
const (
|
|
CouponStateUnknown CouponState = "COUPON_STATE_UNKNOW" // 未知状态
|
|
CouponStateSend CouponState = "COUPON_STATE_SEND" // 可用
|
|
CouponStateUsed CouponState = "COUPON_STATE_USED" // 已实扣
|
|
CouponStateExpired CouponState = "COUPON_STATE_EXPIRED" // 已过期
|
|
)
|
|
|
|
var CpnStatusMap = map[CouponState]vo.OrderStatus{
|
|
CouponStateSend: vo.OrderStatusSuccess,
|
|
CouponStateUsed: vo.OrderStatusUse,
|
|
CouponStateExpired: vo.OrderStatusExpired,
|
|
}
|
|
|
|
func (o CouponState) GetStatus() (vo.OrderStatus, error) {
|
|
if resultStatus, ok := CpnStatusMap[o]; ok {
|
|
return resultStatus, nil
|
|
}
|
|
return 0, fmt.Errorf("CpnStatus[%s]未定义", o)
|
|
}
|
|
|
|
type QxQueryReq struct {
|
|
OrderNo string `json:"order_no"`
|
|
CouponId string `json:"coupon_id"`
|
|
OpenId string `json:"open_id"`
|
|
Sign string `json:"sign"`
|
|
}
|
|
|
|
type QxQueryResp struct {
|
|
Code any `json:"code"`
|
|
Msg string `json:"msg"`
|
|
Data *struct {
|
|
StockCreatorMchID string `json:"stock_creator_mchid"`
|
|
StockID string `json:"stock_id"`
|
|
CouponID string `json:"coupon_id"`
|
|
CouponName string `json:"coupon_name"`
|
|
CouponState CouponState `json:"coupon_state"`
|
|
ReceiveTime time.Time `json:"receive_time"`
|
|
AvailableBeginTime time.Time `json:"available_begin_time"`
|
|
AvailableEndTime time.Time `json:"available_end_time"`
|
|
ActivityID string `json:"activity_id"`
|
|
MaxUseNumber int `json:"max_use_number"`
|
|
AvailableNumber int `json:"available_number"`
|
|
UsedNumber int `json:"used_number"`
|
|
UseAmountList struct {
|
|
UsedAmounts []string `json:"used_amounts"`
|
|
} `json:"use_amount_list"`
|
|
OpenID string `json:"openid"`
|
|
} `json:"data"`
|
|
}
|