From 22a299898f33312a70127b80b0592e08df43c013 Mon Sep 17 00:00:00 2001 From: chenlin Date: Fri, 23 May 2025 11:02:20 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E5=B0=8A=E4=BA=AB?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E4=BD=BF=E7=94=A8=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/cb_rent_order.go | 2 +- controller/game_card.go | 32 ++++++++++++++++++++++++++++---- controller/store.go | 8 ++++++++ controller/user.go | 22 ++++++++++++++++++++++ model/coupon.go | 15 ++++++++------- model/game_card.go | 14 ++++++++++++++ model/store.go | 9 +++++++++ pack/configs/pro/cron.json | 2 +- pack/configs/pro/server.json | 2 +- 9 files changed, 92 insertions(+), 14 deletions(-) diff --git a/controller/cb_rent_order.go b/controller/cb_rent_order.go index 93d4410..db96992 100644 --- a/controller/cb_rent_order.go +++ b/controller/cb_rent_order.go @@ -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) diff --git a/controller/game_card.go b/controller/game_card.go index 9a43e19..55808d9 100644 --- a/controller/game_card.go +++ b/controller/game_card.go @@ -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) diff --git a/controller/store.go b/controller/store.go index 3650001..ec7191a 100644 --- a/controller/store.go +++ b/controller/store.go @@ -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"` diff --git a/controller/user.go b/controller/user.go index 84895ec..02d9831 100644 --- a/controller/user.go +++ b/controller/user.go @@ -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() diff --git a/model/coupon.go b/model/coupon.go index df9a045..eee7e5a 100644 --- a/model/coupon.go +++ b/model/coupon.go @@ -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 diff --git a/model/game_card.go b/model/game_card.go index 5ba6ff9..9c75a7f 100644 --- a/model/game_card.go +++ b/model/game_card.go @@ -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) diff --git a/model/store.go b/model/store.go index 1065d9e..24c2971 100644 --- a/model/store.go +++ b/model/store.go @@ -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) diff --git a/pack/configs/pro/cron.json b/pack/configs/pro/cron.json index e227fa3..21aefa9 100644 --- a/pack/configs/pro/cron.json +++ b/pack/configs/pro/cron.json @@ -63,4 +63,4 @@ "host": "lottery", "port": 8885 } -} \ No newline at end of file +} diff --git a/pack/configs/pro/server.json b/pack/configs/pro/server.json index db2aaec..acdcc1c 100644 --- a/pack/configs/pro/server.json +++ b/pack/configs/pro/server.json @@ -63,4 +63,4 @@ "host": "lottery", "port": 8885 } -} \ No newline at end of file +}