1、新增尊享会员使用优惠券的逻辑;

This commit is contained in:
chenlin 2025-05-23 11:02:20 +08:00
parent e5772d515a
commit 22a299898f
9 changed files with 92 additions and 14 deletions

View File

@ -95,7 +95,7 @@ func CooperativeRentCardOrderDeliver(c *gin.Context) {
return
}
req.OperationUid = uc.Uid
req.StoreId = uint32(assistant.StoreId)
//req.StoreId = uint32(assistant.StoreId)
err, _ := req.Deliver()
if err != nil {
logger.Error("rent card order err:", err)

View File

@ -35,7 +35,7 @@ const (
// HomeCategoryList 首页分类列表
// @Summary 首页分类列表
// @Tags 首页分类, V1.4.5
// @Tags 首页
// @Produce json
// @Accept json
// @Success 200 {object} model.HomeCategoryListResp
@ -51,13 +51,21 @@ func HomeCategoryList(c *gin.Context) {
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) {
req := struct {
Page int `json:"cur_page"`
PageSize int `json:"page_size"`
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"`
StoreId uint32 `json:"store_id"` // 门店ID
}{
Page: 1,
PageSize: 10,
@ -1583,6 +1591,14 @@ func PushWXPayNotice(c *gin.Context) {
memberRecord.AfterMemberExpire = expireTime
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
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.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
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)

View File

@ -8,6 +8,14 @@ import (
"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) {
req := struct {
//GameCardId uint64 `json:"game_card_id"`

View File

@ -1321,6 +1321,28 @@ func OpenPrivilegeMember(c *gin.Context) {
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()
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: model.MemberLevelPrivilege,
UserCouponId: req.UserCouponId, Attach: wxpay.WxPayPrivilegeMember}.Insert()

View File

@ -3,13 +3,14 @@ package model
import "time"
const (
CouponTypeDeduction = "deduction" // 抵扣
RenewalMemberActivityId = 1 // 会员续费优惠券
OpenMemberActivityId = 4 // 开通会员优惠券
CommonSaleActivityId = 5 // 零售销售(普通会员)
PrivilegeMemberActivityId = 6 // 零售销售(尊享会员
VmActivityId = 9 // 积分兑换优惠券
NewMachineActivityId = 10 // 主机预订券
CouponTypeDeduction = "deduction" // 抵扣
RenewalMemberActivityId = 1 // 会员续费优惠券
OpenMemberActivityId = 4 // 开通会员优惠券
CommonSaleActivityId = 5 // 零售销售(普通会员)
PrivilegeMemberActivityId = 6 // 零售销售(尊享会员
VmActivityId = 9 // 积分兑换优惠券
NewMachineActivityId = 10 // 主机预订券
OpenPrivilegeMemberActivityType = 11 // 开通尊享会员优惠券
)
// gen:qs

View File

@ -1940,6 +1940,20 @@ func GetHomeGameCardList() (*HomeCategoryListResp, error) {
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) {
var (
cards = make([]GameCard, 0)

View File

@ -35,6 +35,15 @@ type GameCardStock struct {
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) {
var eg errgroup.Group
stores := make([]Store, 0)

View File

@ -63,4 +63,4 @@
"host": "lottery",
"port": 8885
}
}
}

View File

@ -63,4 +63,4 @@
"host": "lottery",
"port": 8885
}
}
}