1、新增尊享会员使用优惠券的逻辑;
This commit is contained in:
parent
e5772d515a
commit
22a299898f
|
@ -95,7 +95,7 @@ func CooperativeRentCardOrderDeliver(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
req.OperationUid = uc.Uid
|
req.OperationUid = uc.Uid
|
||||||
req.StoreId = uint32(assistant.StoreId)
|
//req.StoreId = uint32(assistant.StoreId)
|
||||||
err, _ := req.Deliver()
|
err, _ := req.Deliver()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("rent card order err:", err)
|
logger.Error("rent card order err:", err)
|
||||||
|
|
|
@ -35,7 +35,7 @@ const (
|
||||||
|
|
||||||
// HomeCategoryList 首页分类列表
|
// HomeCategoryList 首页分类列表
|
||||||
// @Summary 首页分类列表
|
// @Summary 首页分类列表
|
||||||
// @Tags 首页分类, V1.4.5
|
// @Tags 首页
|
||||||
// @Produce json
|
// @Produce json
|
||||||
// @Accept json
|
// @Accept json
|
||||||
// @Success 200 {object} model.HomeCategoryListResp
|
// @Success 200 {object} model.HomeCategoryListResp
|
||||||
|
@ -51,13 +51,21 @@ func HomeCategoryList(c *gin.Context) {
|
||||||
RespOK(c, categoryList)
|
RespOK(c, categoryList)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewGameCardList 游戏卡列表
|
||||||
|
// @Summary 游戏卡列表
|
||||||
|
// @Tags 首页
|
||||||
|
// @Produce json
|
||||||
|
// @Accept json
|
||||||
|
// @Param request body model.NewGetGameCardListReq true "游戏卡列表模型"
|
||||||
|
// @Success 200 {object} model.NewGetGameCardListResp
|
||||||
|
// @Router /api/v1/game_card/list [post]
|
||||||
func NewGameCardList(c *gin.Context) {
|
func NewGameCardList(c *gin.Context) {
|
||||||
req := struct {
|
req := struct {
|
||||||
Page int `json:"cur_page"`
|
Page int `json:"cur_page"` // 页码
|
||||||
PageSize int `json:"page_size"`
|
PageSize int `json:"page_size"` // 每页条数
|
||||||
SortType int `json:"sort_type"` // 首页排序类型(对应首页分类ID)
|
SortType int `json:"sort_type"` // 首页排序类型(对应首页分类ID)
|
||||||
GameTypeIds []uint64 `json:"game_type_id"` // 游戏类型id
|
GameTypeIds []uint64 `json:"game_type_id"` // 游戏类型id
|
||||||
StoreId uint32 `json:"store_id"`
|
StoreId uint32 `json:"store_id"` // 门店ID
|
||||||
}{
|
}{
|
||||||
Page: 1,
|
Page: 1,
|
||||||
PageSize: 10,
|
PageSize: 10,
|
||||||
|
@ -1583,6 +1591,14 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
memberRecord.AfterMemberExpire = expireTime
|
memberRecord.AfterMemberExpire = expireTime
|
||||||
memberRecord.OpenMemberLevel = record.MemberLevel
|
memberRecord.OpenMemberLevel = record.MemberLevel
|
||||||
|
|
||||||
|
if record.UserCouponId > 0 { // 如果使用了会员优惠券,更新优惠券状态为2-已使用
|
||||||
|
err = model.NewUserCouponQuerySet(model.DB).IDEq(record.UserCouponId).GetUpdater().
|
||||||
|
SetState(2).SetUseTime(utils.Now()).Update()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("update user coupon state err:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 邀请记录
|
// 邀请记录
|
||||||
var invite model.UserInvite
|
var invite model.UserInvite
|
||||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
||||||
|
@ -3090,6 +3106,14 @@ func HmPushWXPayNotice(c *gin.Context) {
|
||||||
memberRecord.AfterMemberExpire = expireTime
|
memberRecord.AfterMemberExpire = expireTime
|
||||||
memberRecord.OpenMemberLevel = record.MemberLevel
|
memberRecord.OpenMemberLevel = record.MemberLevel
|
||||||
|
|
||||||
|
if record.UserCouponId > 0 { // 如果使用了会员优惠券,更新优惠券状态为2-已使用
|
||||||
|
err = model.NewUserCouponQuerySet(model.DB).IDEq(record.UserCouponId).GetUpdater().
|
||||||
|
SetState(2).SetUseTime(utils.Now()).Update()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("update user coupon state err:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 邀请记录
|
// 邀请记录
|
||||||
var invite model.UserInvite
|
var invite model.UserInvite
|
||||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
||||||
|
|
|
@ -8,6 +8,14 @@ import (
|
||||||
"mh-server/model"
|
"mh-server/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// StoreList 门店列表
|
||||||
|
// @Summary 门店列表
|
||||||
|
// @Tags 首页
|
||||||
|
// @Produce json
|
||||||
|
// @Accept json
|
||||||
|
// @Param request body model.StoreListReq true "门店列表模型"
|
||||||
|
// @Success 200 {object} model.StoreListResp
|
||||||
|
// @Router /api/v1/store/list [post]
|
||||||
func StoreList(c *gin.Context) {
|
func StoreList(c *gin.Context) {
|
||||||
req := struct {
|
req := struct {
|
||||||
//GameCardId uint64 `json:"game_card_id"`
|
//GameCardId uint64 `json:"game_card_id"`
|
||||||
|
|
|
@ -1321,6 +1321,28 @@ func OpenPrivilegeMember(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询尊享会员信息
|
||||||
|
var privilegeMember model.PrivilegeMember
|
||||||
|
err = model.NewPrivilegeMemberQuerySet(model.DB).UidEq(uc.Uid).One(&privilegeMember)
|
||||||
|
if err != nil && err != model.RecordNotFound {
|
||||||
|
logger.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.UserCouponId != 0 && privilegeMember.ID == 0 {
|
||||||
|
var coupon model.UserCoupon
|
||||||
|
err = model.NewUserCouponQuerySet(model.DB).IDEq(req.UserCouponId).One(&coupon)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("coupon err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if coupon.ActivityType == model.OpenPrivilegeMemberActivityType && coupon.State == 1 {
|
||||||
|
logger.Infof("使用开通优惠券,coupon_id is:", coupon.CouponId)
|
||||||
|
totalFee -= coupon.Value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
orderSn := model.GetOrderSn()
|
orderSn := model.GetOrderSn()
|
||||||
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: model.MemberLevelPrivilege,
|
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: model.MemberLevelPrivilege,
|
||||||
UserCouponId: req.UserCouponId, Attach: wxpay.WxPayPrivilegeMember}.Insert()
|
UserCouponId: req.UserCouponId, Attach: wxpay.WxPayPrivilegeMember}.Insert()
|
||||||
|
|
|
@ -3,13 +3,14 @@ package model
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CouponTypeDeduction = "deduction" // 抵扣
|
CouponTypeDeduction = "deduction" // 抵扣
|
||||||
RenewalMemberActivityId = 1 // 会员续费优惠券
|
RenewalMemberActivityId = 1 // 会员续费优惠券
|
||||||
OpenMemberActivityId = 4 // 开通会员优惠券
|
OpenMemberActivityId = 4 // 开通会员优惠券
|
||||||
CommonSaleActivityId = 5 // 零售销售(普通会员)
|
CommonSaleActivityId = 5 // 零售销售(普通会员)
|
||||||
PrivilegeMemberActivityId = 6 // 零售销售(尊享会员
|
PrivilegeMemberActivityId = 6 // 零售销售(尊享会员
|
||||||
VmActivityId = 9 // 积分兑换优惠券
|
VmActivityId = 9 // 积分兑换优惠券
|
||||||
NewMachineActivityId = 10 // 主机预订券
|
NewMachineActivityId = 10 // 主机预订券
|
||||||
|
OpenPrivilegeMemberActivityType = 11 // 开通尊享会员优惠券
|
||||||
)
|
)
|
||||||
|
|
||||||
// gen:qs
|
// gen:qs
|
||||||
|
|
|
@ -1940,6 +1940,20 @@ func GetHomeGameCardList() (*HomeCategoryListResp, error) {
|
||||||
return resp, nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NewGetGameCardListReq struct {
|
||||||
|
Page int `json:"cur_page"` // 页码
|
||||||
|
PageSize int `json:"page_size"` // 每页条数
|
||||||
|
SortType int `json:"sort_type"` // 首页排序类型(对应首页分类ID)
|
||||||
|
GameTypeIds []uint64 `json:"game_type_id"` // 游戏类型id
|
||||||
|
StoreId uint32 `json:"store_id"` // 门店ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type NewGetGameCardListResp struct {
|
||||||
|
CardList []GameCard `json:"card_list"` // 游戏列表
|
||||||
|
Page int `json:"cur_page"` // 当前页页码
|
||||||
|
TotalPage int `json:"total_page"` // 总页数
|
||||||
|
}
|
||||||
|
|
||||||
func NewGetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId, uid uint32) ([]GameCard, uint32, error) {
|
func NewGetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId, uid uint32) ([]GameCard, uint32, error) {
|
||||||
var (
|
var (
|
||||||
cards = make([]GameCard, 0)
|
cards = make([]GameCard, 0)
|
||||||
|
|
|
@ -35,6 +35,15 @@ type GameCardStock struct {
|
||||||
Stock uint32 `json:"stock"`
|
Stock uint32 `json:"stock"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type StoreListReq struct {
|
||||||
|
UseType uint32 `json:"use_type"`
|
||||||
|
GameCardList []CardInfo `json:"game_card_list"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type StoreListResp struct {
|
||||||
|
CardList []GameCardStock `json:"card_list"`
|
||||||
|
}
|
||||||
|
|
||||||
func GetStoreList(cardInfos []CardInfo) ([]GameCardStock, error) {
|
func GetStoreList(cardInfos []CardInfo) ([]GameCardStock, error) {
|
||||||
var eg errgroup.Group
|
var eg errgroup.Group
|
||||||
stores := make([]Store, 0)
|
stores := make([]Store, 0)
|
||||||
|
|
|
@ -63,4 +63,4 @@
|
||||||
"host": "lottery",
|
"host": "lottery",
|
||||||
"port": 8885
|
"port": 8885
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,4 +63,4 @@
|
||||||
"host": "lottery",
|
"host": "lottery",
|
||||||
"port": 8885
|
"port": 8885
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user