voucher/internal/pkg/supplier/qixing/query.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"`
}