1.新增零售尊享会员开通接口;
2.修改GameCardInfo接口,查看详情无需用户登录; 3.修改搜索相关接口,搜索无需登录;
This commit is contained in:
parent
d467e3b978
commit
f5db898321
|
@ -552,6 +552,14 @@ func UserData(c *gin.Context) {
|
|||
}
|
||||
m.LatestInviteRecord = inviteRecord
|
||||
|
||||
// 查询尊享会员信息
|
||||
var privilegeMember model.PrivilegeMember
|
||||
err = model.NewPrivilegeMemberQuerySet(model.DB).UidEq(uc.Uid).One(&privilegeMember)
|
||||
if err != nil && err != model.RecordNotFound {
|
||||
logger.Error(err)
|
||||
}
|
||||
m.PrivilegeMemberInfo = privilegeMember
|
||||
|
||||
ret := m
|
||||
RespOK(c, ret)
|
||||
return
|
||||
|
|
|
@ -80,8 +80,20 @@ func GameCardInfo(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
if uc == nil { // 如果没有登录,则只查看详情
|
||||
//RespJson(c, status.Unauthorized, nil)
|
||||
//return
|
||||
info, err := model.GetGameCardInfo(req.GameId, req.StoreId)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
ret := map[string]interface{}{
|
||||
"card_info": info,
|
||||
"is_collection": false,
|
||||
}
|
||||
RespOK(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -127,8 +139,8 @@ func GameCardSearch(c *gin.Context) {
|
|||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
//RespJson(c, status.Unauthorized, nil)
|
||||
//return
|
||||
}
|
||||
|
||||
cardList, totalPage, err := model.GetGameCardSearch(req.Name, req.Page, req.PageSize, req.StoreId)
|
||||
|
@ -137,12 +149,16 @@ func GameCardSearch(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
if uc != nil { // 登录过的用户才记录搜索历史
|
||||
err = model.SearchHistoryAdd(uc.Uid, req.Name)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"card_list": cardList,
|
||||
"cur_page": req.Page,
|
||||
|
@ -154,7 +170,9 @@ func GameCardSearch(c *gin.Context) {
|
|||
func GameCardSearchHistory(c *gin.Context) {
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
//RespJson(c, status.Unauthorized, nil)
|
||||
|
||||
RespOK(c, []model.SearchHistory{})
|
||||
return
|
||||
}
|
||||
historyList, err := model.GetSearchHistoryList(uc.Uid)
|
||||
|
@ -2320,6 +2338,228 @@ func HmPushWXPayNotice(c *gin.Context) {
|
|||
fundRecord.Remark = "购买运费包"
|
||||
}
|
||||
|
||||
if record.Attach == wxpay.WxPayPrivilegeMember {
|
||||
logger.Info("开通尊享会员 支付成功:")
|
||||
logger.Info("用户uid:", outOrderNo)
|
||||
|
||||
fundRecord.Uid = record.Uid
|
||||
fundRecord.FundType = model.FundTypePrivilegeMemberFee
|
||||
fundRecord.Remark = "尊享会员费"
|
||||
|
||||
memberRecord := &model.UserMemberRecord{
|
||||
Uid: record.Uid,
|
||||
AfterMemberLevel: record.MemberLevel,
|
||||
}
|
||||
newTime := time.Now()
|
||||
privilegeMemberNew := &model.PrivilegeMember{}
|
||||
var spendType uint32 // 开通类型: 1-未开通 2-开通会员 3-续费
|
||||
var user model.User
|
||||
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.DBOperateError, nil)
|
||||
return
|
||||
} else {
|
||||
var privilegeMember model.PrivilegeMember
|
||||
err = model.NewPrivilegeMemberQuerySet(model.DB).UidEq(record.Uid).One(&privilegeMember)
|
||||
if err != nil && err != model.RecordNotFound {
|
||||
logger.Error("PrivilegeMember:", err)
|
||||
RespJson(c, status.DBOperateError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
var expireTime time.Time
|
||||
expireTime = newTime.AddDate(1, 0, 0)
|
||||
if err == model.RecordNotFound { // 没有记录,用户新开通尊享会员
|
||||
spendType = 2 // 2-开通会员
|
||||
memberRecord.OpenMemberTime = newTime
|
||||
memberRecord.Type = 9 // 开通会员类型
|
||||
|
||||
privilegeMemberNew.Uid = record.Uid
|
||||
privilegeMemberNew.Tel = user.Tel
|
||||
privilegeMemberNew.MemberLevel = 6
|
||||
privilegeMemberNew.MemberExpire = &expireTime
|
||||
privilegeMemberNew.OpenMemberTime = &newTime
|
||||
privilegeMemberNew.ExtendStatus = 2
|
||||
} else { // 有记录,用户续费尊享会员
|
||||
spendType = 3 // 3-续费
|
||||
memberRecord.OpenMemberTime = *privilegeMember.OpenMemberTime
|
||||
memberRecord.BeforeMemberLevel = privilegeMember.MemberLevel
|
||||
memberRecord.BeforeMemberExpire = *privilegeMember.MemberExpire
|
||||
memberRecord.Serial = uint32(privilegeMember.MemberExpire.Unix())
|
||||
if privilegeMember.MemberExpire.After(newTime) {
|
||||
expireTime = privilegeMember.MemberExpire.AddDate(1, 0, 0)
|
||||
}
|
||||
memberRecord.Type = 10 // 续费会员类型
|
||||
|
||||
userUpdateQs := model.NewPrivilegeMemberQuerySet(model.DB).UidEq(record.Uid).GetUpdater().
|
||||
SetMemberLevel(record.MemberLevel).SetMemberExpire(&expireTime).SetExtendStatus(2)
|
||||
_, err = userUpdateQs.UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
memberRecord.AfterMemberExpire = expireTime
|
||||
memberRecord.OpenMemberLevel = record.MemberLevel
|
||||
|
||||
// 邀请记录
|
||||
var invite model.UserInvite
|
||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByCreatedAt().Limit(1).One(&invite)
|
||||
if err != nil && err != model.RecordNotFound {
|
||||
logger.Error("err:", err)
|
||||
} else {
|
||||
if err == nil {
|
||||
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
|
||||
if err != nil {
|
||||
logger.Error("GetUserEffectiveStore err:", err)
|
||||
effectiveStoreInfo.StoreID = 0
|
||||
}
|
||||
privilegeMemberNew.StoreId = effectiveStoreInfo.StoreID
|
||||
|
||||
if invite.Action == 1 { // 首次开通会员
|
||||
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
|
||||
invite.RenewHide = 1 // 自动
|
||||
|
||||
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
|
||||
_, err = qs.SetMemberType(2).SetMemberStatus(2).
|
||||
SetAction(2).SetSpendType(spendType).SetMemberGenre(record.MemberGenre).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("update user invite action spend type err:", err)
|
||||
}
|
||||
if invite.UserInviteRecordId != 0 {
|
||||
go func() {
|
||||
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
|
||||
SetAction(2).SetSpendType(spendType).SetMemberLevel(record.MemberLevel).
|
||||
SetActionTime(newTime).SetMemberGenre(record.MemberGenre).SetRenewHide(invite.RenewHide).Update()
|
||||
if err != nil {
|
||||
logger.Error("update user invite record err:", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
} else { // 续费会员-用户直接续费
|
||||
inviteRecordNew := &model.UserInviteRecord{
|
||||
ToUid: invite.ToUid,
|
||||
FromUid: invite.FromUid,
|
||||
StoreId: effectiveStoreInfo.StoreID,
|
||||
Action: 2,
|
||||
SpendType: spendType,
|
||||
MemberLevel: record.MemberLevel,
|
||||
First: 0,
|
||||
Scan: 0, // 自动生成
|
||||
ActionTime: newTime,
|
||||
MemberGenre: record.MemberGenre,
|
||||
RenewHide: 1,
|
||||
}
|
||||
err = model.DB.Create(inviteRecordNew).Error
|
||||
if err != nil {
|
||||
logger.Error("create invite record err:", err)
|
||||
}
|
||||
|
||||
userInviteNew := &model.UserInvite{
|
||||
FromUid: invite.FromUid,
|
||||
UserType: invite.UserType,
|
||||
StoreId: effectiveStoreInfo.StoreID,
|
||||
StoreType: invite.StoreType,
|
||||
MemberOpenTime: time.Now(),
|
||||
MemberType: 2,
|
||||
MemberStatus: 2,
|
||||
ToUid: invite.ToUid,
|
||||
Action: 2,
|
||||
SpendType: spendType,
|
||||
MemberLevel: record.MemberLevel,
|
||||
UserInviteRecordId: inviteRecordNew.ID,
|
||||
FirstInvite: 0,
|
||||
Scan: 0,
|
||||
MemberGenre: record.MemberGenre,
|
||||
RenewHide: 1,
|
||||
//MemberOpenTime: invite.MemberOpenTime,
|
||||
}
|
||||
err = model.DB.Create(userInviteNew).Error
|
||||
if err != nil {
|
||||
logger.Error("create invite record err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
if invite.FromUid != 0 {
|
||||
logger.Info("invite.FromUid != 0")
|
||||
fmt.Println("invite.FromUid != 0")
|
||||
inviteUser := model.GetUserByUid(invite.FromUid)
|
||||
if inviteUser != nil && inviteUser.UserType == 2 {
|
||||
// 记录对应的数量
|
||||
switch spendType {
|
||||
case 2: // 开通
|
||||
fmt.Println("用户开通------")
|
||||
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
|
||||
uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel),
|
||||
int(record.MemberGenre))
|
||||
case 3: // 续费
|
||||
fmt.Println("用户续费---")
|
||||
model.AddCooperativeMemberRenewal(inviteUser.CooperativeBusinessId,
|
||||
uint32(invite.StoreId), inviteUser.Uid, int(record.MemberLevel),
|
||||
int(record.MemberGenre), true)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if err == model.RecordNotFound { // 没有邀请记录,完全是用户自己开通会员,自己续费;按产品要求也需要有记录
|
||||
inviteRecordNew := &model.UserInviteRecord{
|
||||
Action: 2,
|
||||
SpendType: spendType,
|
||||
MemberLevel: record.MemberLevel,
|
||||
First: 0,
|
||||
Scan: 0, // 自动生成
|
||||
ActionTime: newTime,
|
||||
MemberGenre: record.MemberGenre,
|
||||
RenewHide: 1,
|
||||
}
|
||||
err = model.DB.Create(inviteRecordNew).Error
|
||||
if err != nil {
|
||||
logger.Error("create invite record err:", err)
|
||||
}
|
||||
|
||||
// 记录对应的数量
|
||||
switch spendType {
|
||||
case 2: // 开通
|
||||
fmt.Println("用户开通------")
|
||||
model.AddCooperativeMemberPromotion(user.CooperativeBusinessId, 0, 0,
|
||||
int(record.MemberLevel), int(record.MemberGenre))
|
||||
case 3: // 续费
|
||||
fmt.Println("用户续费---")
|
||||
model.AddCooperativeMemberRenewal(user.CooperativeBusinessId, 0, 0,
|
||||
int(record.MemberLevel), int(record.MemberGenre), true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if spendType == 2 { // 开通会员,新建尊享会员记录
|
||||
err = model.DB.Create(privilegeMemberNew).Error
|
||||
if err != nil {
|
||||
logger.Error("create invite record err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
// 赠送积分
|
||||
err = model.NewSendUserVm(user.Uid, uint32(payAmountFloat), spendType)
|
||||
if err != nil {
|
||||
logger.Error("send user vm err:", err)
|
||||
}
|
||||
|
||||
go func() {
|
||||
err = model.DB.Create(memberRecord).Error
|
||||
if err != nil {
|
||||
logger.Error("create member record err:", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
_, err = model.NewUserOpenMemberRecordQuerySet(model.DB).IDEq(record.ID).
|
||||
GetUpdater().SetState(2).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("update user open member record state:err", err)
|
||||
}
|
||||
fmt.Println("notify.TotalFee:", fundRecord.Amount)
|
||||
fmt.Println("notify.OutTradeNo:", outOrderNo)
|
||||
}
|
||||
|
||||
fundRecord.TransactionId = bankOrderNo
|
||||
fundRecord.OutTradeNo = outOrderNo
|
||||
fundRecord.Status = 2
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"fmt"
|
||||
"github.com/codinl/go-logger"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/jinzhu/gorm"
|
||||
"golang.org/x/sync/errgroup"
|
||||
"io/ioutil"
|
||||
"mh-server/kuaidi"
|
||||
|
@ -241,7 +242,13 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
cardCount += v.Count
|
||||
}
|
||||
|
||||
rentCard := model.GetUserRentCard(uc.Uid)
|
||||
var rentCard *model.UserRentCard
|
||||
var tx *gorm.DB
|
||||
if req.Price == 0 {
|
||||
fmt.Println("*********** req.Price == 0 ***********")
|
||||
tx = model.TransactionBegin()
|
||||
rentCard = model.GetUserRentCard(tx, uc.Uid)
|
||||
fmt.Println("*********** rentCard is:", rentCard)
|
||||
if rentCard == nil {
|
||||
//logger.Error(errors.New("GetUserByUid err"))
|
||||
//RespJson(c, status.InternalServerError, nil)
|
||||
|
@ -249,11 +256,26 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
rentCard = &model.UserRentCard{LevelRentCount: memberConfig.CardMax, CanRentCount: memberConfig.CardMax}
|
||||
}
|
||||
|
||||
} else {
|
||||
fmt.Println("*********** req.Price != 0 ***********")
|
||||
rentCard = model.GetUserRentCard(nil, uc.Uid)
|
||||
fmt.Println("*********** rentCard is:", rentCard)
|
||||
if rentCard == nil {
|
||||
//logger.Error(errors.New("GetUserByUid err"))
|
||||
//RespJson(c, status.InternalServerError, nil)
|
||||
//return
|
||||
rentCard = &model.UserRentCard{LevelRentCount: memberConfig.CardMax, CanRentCount: memberConfig.CardMax}
|
||||
}
|
||||
}
|
||||
|
||||
//if uc.Uid == 45935373 {
|
||||
// rentCard.CanRentCount -= 1
|
||||
//}
|
||||
if cardCount > rentCard.CanRentCount {
|
||||
logger.Error("GetMemberConfig err:", err)
|
||||
if req.Price == 0 {
|
||||
tx.Rollback()
|
||||
}
|
||||
logger.Error("err:", "会员超过可借卡数")
|
||||
RespJson(c, status.OrderOutRentCount, nil)
|
||||
return
|
||||
}
|
||||
|
@ -376,7 +398,7 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
|
||||
//fmt.Println("PayPrice:", order.PayPrice)
|
||||
if req.Price == 0 {
|
||||
tx := model.TransactionBegin()
|
||||
//tx := model.TransactionBegin()
|
||||
order.PayStatus = model.PayStatusPaid
|
||||
fmt.Println("orderId:", order.PayStatus)
|
||||
err = order.OrderCreate(tx)
|
||||
|
@ -419,6 +441,15 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
}
|
||||
|
||||
err = model.OrderCardUserRentCard(uc.Uid, cardCount, memberConfig, tx)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
logger.Error("update user_rent_card err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
err = tx.Commit().Error
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
|
@ -426,7 +457,6 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
go model.OrderCardUserRentCard(uc.Uid, cardCount, memberConfig, nil)
|
||||
ret := map[string]interface{}{
|
||||
"web_pay": "",
|
||||
"order_id": order.ID,
|
||||
|
|
|
@ -1262,15 +1262,70 @@ func InviteMemberReportList(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
// 升级 1-黄金会员 2-白金会员 3-黑金会员
|
||||
// 开通会员
|
||||
// 升级会员
|
||||
// 订单
|
||||
// 购物车
|
||||
// 押金
|
||||
type OpenPrivilegeMemberReq struct {
|
||||
UserCouponId uint32 `json:"user_coupon_id"` // 优惠券id
|
||||
}
|
||||
|
||||
// 会员列表 开通会员 下订单 借卡 还卡
|
||||
// 会员升级
|
||||
// 299会员 升级
|
||||
// 订单 会员导数据
|
||||
// 退押金记录
|
||||
// OpenPrivilegeMember 开通尊享会员
|
||||
// @Summary 开通尊享会员
|
||||
// @Tags 尊享会员, V1.4.2
|
||||
// @Produce json
|
||||
// @Accept json
|
||||
// @Param request body OpenPrivilegeMemberReq true "开通尊享会员模型"
|
||||
// @Success 200 {object} RespRet
|
||||
// @Router /api/v1/user/open_privilege_member [post]
|
||||
func OpenPrivilegeMember(c *gin.Context) {
|
||||
req := new(OpenPrivilegeMemberReq)
|
||||
if c.ShouldBindJSON(&req) != nil {
|
||||
logger.Error("parameter err")
|
||||
RespJson(c, status.BadRequest, nil)
|
||||
return
|
||||
}
|
||||
uc := auth.GetCurrentUser(c)
|
||||
if uc == nil {
|
||||
RespJson(c, status.Unauthorized, nil)
|
||||
return
|
||||
}
|
||||
fmt.Println("req:", req)
|
||||
user := model.GetUserByUid(uc.Uid)
|
||||
|
||||
// 读取配置文件中尊享会员的价格
|
||||
totalFee, err := model.GetPrivilegeMemberFee()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
if totalFee == 0 {
|
||||
logger.Error(errors.New("totalFee is 0"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
orderSn := model.GetOrderSn()
|
||||
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: 6,
|
||||
UserCouponId: req.UserCouponId, Attach: wxpay.WxPayPrivilegeMember}.Insert()
|
||||
if err != nil {
|
||||
logger.Error(errors.New("WebPay err"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
configInfo, err := model.PayConfigInfo()
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// 支付走河马付,通过用户所属门店id选择不同的商户
|
||||
webPay, err := wxpay.HmJsPayUnifiedOrder(orderSn, totalFee, user.WxOpenID, configInfo.NotifyUrl)
|
||||
if err != nil {
|
||||
logger.Error(errors.New("WebPay err"))
|
||||
RespJson(c, status.InternalServerError, nil)
|
||||
return
|
||||
}
|
||||
RespOK(c, webPay)
|
||||
|
||||
return
|
||||
}
|
||||
|
|
59
go.mod
59
go.mod
|
@ -1,30 +1,75 @@
|
|||
module mh-server
|
||||
|
||||
go 1.16
|
||||
go 1.20
|
||||
|
||||
require (
|
||||
github.com/aliyun/aliyun-sts-go-sdk v0.0.0-20171106034748-98d3903a2309
|
||||
github.com/codinl/go-logger v1.0.0
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||
github.com/flosch/pongo2 v0.0.0-20200913210552-0d938eb266f3 // indirect
|
||||
github.com/fsnotify/fsnotify v1.4.9
|
||||
github.com/gin-gonic/gin v1.7.1
|
||||
github.com/holdno/snowFlakeByGo v0.0.0-20180510033652-d23f8a8cadd7
|
||||
github.com/jinzhu/gorm v1.9.16
|
||||
github.com/jinzhu/now v1.1.4 // indirect
|
||||
github.com/medivhzhan/weapp v1.5.1
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/qiniu/api.v7 v7.2.5+incompatible
|
||||
github.com/qiniu/x v7.0.8+incompatible // indirect
|
||||
github.com/rs/zerolog v1.23.0
|
||||
github.com/satori/go.uuid v1.2.0 // indirect
|
||||
github.com/spf13/cobra v1.1.3
|
||||
github.com/spf13/viper v1.7.1
|
||||
github.com/swaggo/swag v1.16.3
|
||||
github.com/wechatpay-apiv3/wechatpay-go v0.2.6
|
||||
github.com/xuri/excelize/v2 v2.6.0
|
||||
golang.org/x/sync v0.6.0
|
||||
golang.org/x/tools v0.19.0 // indirect
|
||||
golang.org/x/sync v0.8.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/KyleBanks/depth v1.2.1 // indirect
|
||||
github.com/PuerkitoBio/purell v1.1.1 // indirect
|
||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect
|
||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
||||
github.com/go-openapi/jsonreference v0.19.6 // indirect
|
||||
github.com/go-openapi/spec v0.20.4 // indirect
|
||||
github.com/go-openapi/swag v0.19.15 // indirect
|
||||
github.com/go-playground/locales v0.13.0 // indirect
|
||||
github.com/go-playground/universal-translator v0.17.0 // indirect
|
||||
github.com/go-playground/validator/v10 v10.4.1 // indirect
|
||||
github.com/go-sql-driver/mysql v1.5.0 // indirect
|
||||
github.com/golang/protobuf v1.3.3 // indirect
|
||||
github.com/hashicorp/hcl v1.0.0 // indirect
|
||||
github.com/inconshreveable/mousetrap v1.0.0 // indirect
|
||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||
github.com/jinzhu/now v1.1.4 // indirect
|
||||
github.com/josharian/intern v1.0.0 // indirect
|
||||
github.com/json-iterator/go v1.1.9 // indirect
|
||||
github.com/leodido/go-urn v1.2.0 // indirect
|
||||
github.com/magiconair/properties v1.8.1 // indirect
|
||||
github.com/mailru/easyjson v0.7.6 // indirect
|
||||
github.com/mattn/go-isatty v0.0.12 // indirect
|
||||
github.com/mitchellh/mapstructure v1.1.2 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.1 // indirect
|
||||
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
|
||||
github.com/pelletier/go-toml v1.2.0 // indirect
|
||||
github.com/qiniu/x v7.0.8+incompatible // indirect
|
||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||
github.com/richardlehane/msoleps v1.0.1 // indirect
|
||||
github.com/satori/go.uuid v1.2.0 // indirect
|
||||
github.com/spf13/afero v1.1.2 // indirect
|
||||
github.com/spf13/cast v1.3.0 // indirect
|
||||
github.com/spf13/jwalterweatherman v1.0.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/subosito/gotenv v1.2.0 // indirect
|
||||
github.com/ugorji/go/codec v1.1.7 // indirect
|
||||
github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8 // indirect
|
||||
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
|
||||
golang.org/x/crypto v0.26.0 // indirect
|
||||
golang.org/x/net v0.28.0 // indirect
|
||||
golang.org/x/sys v0.23.0 // indirect
|
||||
golang.org/x/text v0.17.0 // indirect
|
||||
golang.org/x/tools v0.24.0 // indirect
|
||||
gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect
|
||||
gopkg.in/ini.v1 v1.51.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
qiniupkg.com/x v7.0.8+incompatible // indirect
|
||||
)
|
||||
|
|
80
go.sum
80
go.sum
|
@ -46,7 +46,6 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
|
|||
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
|
||||
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -60,8 +59,6 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8
|
|||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y=
|
||||
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
|
||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||
github.com/flosch/pongo2 v0.0.0-20200913210552-0d938eb266f3 h1:fmFk0Wt3bBxxwZnu48jqMdaOR/IZ4vdtJFuaFV8MpIE=
|
||||
github.com/flosch/pongo2 v0.0.0-20200913210552-0d938eb266f3/go.mod h1:bJWSKrZyQvfTnb2OudyUjurSG4/edverV7n82+K3JiM=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||
|
@ -291,11 +288,9 @@ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69
|
|||
github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg=
|
||||
github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk=
|
||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||
github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo=
|
||||
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
|
||||
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
|
||||
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
|
||||
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
|
||||
github.com/wechatpay-apiv3/wechatpay-go v0.2.6 h1:iWXgJ7nt8vTMU/MYYdZa6yklC8r4qdAJu+CKnRe0Bo0=
|
||||
github.com/wechatpay-apiv3/wechatpay-go v0.2.6/go.mod h1:W8ucVAOCKOii933cWROLaDLmRQ2cg/vHHVF4vGAVq9Q=
|
||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||
|
@ -306,7 +301,6 @@ github.com/xuri/excelize/v2 v2.6.0/go.mod h1:Q1YetlHesXEKwGFfeJn7PfEZz2IvHb6wdOe
|
|||
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 h1:OAmKAfT06//esDdpi/DZ8Qsdt4+M5+ltca05dA5bG2M=
|
||||
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
|
@ -322,13 +316,9 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
|
|||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
|
||||
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
|
||||
golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
|
@ -350,13 +340,7 @@ golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCc
|
|||
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
|
||||
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic=
|
||||
golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
|
||||
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
|
@ -375,19 +359,11 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
|
||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
|
||||
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
|
||||
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
|
@ -397,11 +373,8 @@ golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJ
|
|||
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
|
@ -425,38 +398,18 @@ golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
|
||||
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
|
||||
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
|
||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
||||
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
|
||||
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
|
||||
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
||||
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
|
||||
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
|
@ -478,12 +431,8 @@ golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtn
|
|||
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
|
||||
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
|
||||
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
|
||||
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
|
||||
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
|
||||
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
@ -521,7 +470,6 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
|
|||
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
|
@ -529,7 +477,6 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
|||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA=
|
||||
gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
|
@ -537,4 +484,3 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
|
|||
qiniupkg.com/x v7.0.8+incompatible h1:Ek0ZVi5IyaWUAFkJbPRiqlh34xDM4uoKw7KqdpankvU=
|
||||
qiniupkg.com/x v7.0.8+incompatible/go.mod h1:6sLxR5IZ03vMaRAQAY/5MvzofeoBIjO4XE0Njv6V1ms=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
|
||||
|
|
|
@ -50,6 +50,7 @@ const (
|
|||
WxPayMemberExpireDelay = "member_expire_delay" // 会员过期滞纳金
|
||||
WxPayShareCardRetrieve = "share_card_retrieve" // 收回卡
|
||||
WxPayPostagePackage = "postage_package" // 运费包
|
||||
WxPayPrivilegeMember = "privilege_member_pay" // 尊享会员
|
||||
|
||||
//WxPayExchangeGoods = "exchange_goods" // 兑换商品
|
||||
//NotifyUrl = "https://switch.deovo.com:8001/api/v1/wxpay/notice" // 数据库配置 生产
|
||||
|
|
|
@ -73,7 +73,7 @@ type UserMemberRecord struct {
|
|||
DeductionFee uint32 `json:"deduction_fee"` // 抵扣金额
|
||||
CouponId uint32 `json:"coupon_id"` // 优惠券id
|
||||
Serial uint32 `json:"serial" gorm:"index"` // 日志
|
||||
Type uint32 `json:"type" gorm:"index"` // 1-开通黄金 2-开通白金 3-开通黑金 4-续费黄金 5-续费白金 6-续费黑金 7-升级白金 8-升级黑金
|
||||
Type uint32 `json:"type" gorm:"index"` // 1-开通黄金 2-开通白金 3-开通黑金 4-续费黄金 5-续费白金 6-续费黑金 7-升级白金 8-升级黑金 9-开通尊享会员 10-续费尊享会员
|
||||
OpenMemberLevel uint32 `json:"open_member_level"`
|
||||
OpenMemberTime time.Time `json:"open_member_time"`
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ const (
|
|||
ConfigRecycleCard = "recycle_card_config" // 回收卡配置
|
||||
ConfigPostagePackageFee = "postage_package_fee_config" // 运费包费
|
||||
ConfigPaymentGenre = "payment_genre_config" // 支付方式
|
||||
ConfigNamePrivilegeMember = "privilege_member_config" // 尊享会员配置
|
||||
)
|
||||
|
||||
func PayConfigInfo() (*PayConfig, error) {
|
||||
|
@ -120,6 +121,26 @@ func GetMemberConfig(level uint32, genre uint32) (*MemberConfig, error) {
|
|||
return nil, errors.New("level err")
|
||||
}
|
||||
|
||||
func GetPrivilegeMemberFee() (uint32, error) {
|
||||
var memberConfig struct {
|
||||
MemberFee uint32 `json:"member_fee"` // 会员费
|
||||
}
|
||||
var configAllocation Config
|
||||
err := NewConfigQuerySet(DB).NameEq(ConfigNamePrivilegeMember).One(&configAllocation)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return 0, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal([]byte(configAllocation.Value), &memberConfig)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return memberConfig.MemberFee, nil
|
||||
}
|
||||
|
||||
// ShortMemberConfigMap_Dev 会员费配置
|
||||
// 开发环境配置
|
||||
var ShortMemberConfigMap_Dev = map[uint32]*MemberConfig{
|
||||
|
|
|
@ -79,12 +79,14 @@ type CooperativeMemberPromotion struct {
|
|||
GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
|
||||
PrivilegeCount uint32 `json:"privilege_count" gorm:"default:0"` // 尊享会员数量
|
||||
Date string `json:"date" gorm:"index"` //
|
||||
State string `json:"state"` // 待发起结算 待财务打款 已结算
|
||||
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
|
||||
RenewalPrivilegeCount uint32 `json:"renewal_privilege_count" gorm:"default:0"` // 续费尊享会员数量
|
||||
UpgradeGoldToPlatinumCount uint32 `json:"upgrade_gold_to_platinum_count" gorm:"default:0"` // 升级:黄金->白金数量
|
||||
UpgradeGoldToBlackCount uint32 `json:"upgrade_gold_to_black_count" gorm:"default:0"` // 升级:黄金->黑金数量
|
||||
UpgradePlatinumToBlackCount uint32 `json:"upgrade_platinum_to_black_count" gorm:"default:0"` // 升级:白金->黑金数量
|
||||
|
@ -102,10 +104,12 @@ type CooperativeMemberPromotionStore struct {
|
|||
GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
|
||||
PrivilegeCount uint32 `json:"privilege_count" gorm:"default:0"` // 尊享会员数量
|
||||
Date string `json:"date" gorm:"index"` //
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
|
||||
RenewalPrivilegeCount uint32 `json:"renewal_privilege_count" gorm:"default:0"` // 续费尊享会员数量
|
||||
UpgradeGoldToPlatinumCount uint32 `json:"upgrade_gold_to_platinum_count" gorm:"default:0"` // 升级:黄金->白金数量
|
||||
UpgradeGoldToBlackCount uint32 `json:"upgrade_gold_to_black_count" gorm:"default:0"` // 升级:黄金->黑金数量
|
||||
UpgradePlatinumToBlackCount uint32 `json:"upgrade_platinum_to_black_count" gorm:"default:0"` // 升级:白金->黑金数量
|
||||
|
@ -121,10 +125,12 @@ type CooperativeMemberPromotionDay struct {
|
|||
GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
|
||||
PrivilegeCount uint32 `json:"privilege_count" gorm:"default:0"` // 尊享会员数量
|
||||
DayTime string `json:"day_time" gorm:"index"` //
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
|
||||
RenewalPrivilegeCount uint32 `json:"renewal_privilege_count" gorm:"default:0"` // 续费尊享会员数量
|
||||
UpgradeGoldToPlatinumCount uint32 `json:"upgrade_gold_to_platinum_count" gorm:"default:0"` // 升级:黄金->白金数量
|
||||
UpgradeGoldToBlackCount uint32 `json:"upgrade_gold_to_black_count" gorm:"default:0"` // 升级:黄金->黑金数量
|
||||
UpgradePlatinumToBlackCount uint32 `json:"upgrade_platinum_to_black_count" gorm:"default:0"` // 升级:白金->黑金数量
|
||||
|
@ -141,10 +147,12 @@ type CooperativeMemberPromotionStoreDay struct {
|
|||
GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
|
||||
PrivilegeCount uint32 `json:"privilege_count" gorm:"default:0"` // 尊享会员数量
|
||||
DayTime string `json:"day_time" gorm:"index"` //
|
||||
RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
|
||||
RenewalPrivilegeCount uint32 `json:"renewal_privilege_count" gorm:"default:0"` // 续费尊享会员数量
|
||||
UpgradeGoldToPlatinumCount uint32 `json:"upgrade_gold_to_platinum_count" gorm:"default:0"` // 升级:黄金->白金数量
|
||||
UpgradeGoldToBlackCount uint32 `json:"upgrade_gold_to_black_count" gorm:"default:0"` // 升级:黄金->黑金数量
|
||||
UpgradePlatinumToBlackCount uint32 `json:"upgrade_platinum_to_black_count" gorm:"default:0"` // 升级:白金->黑金数量
|
||||
|
@ -163,6 +171,7 @@ type CooperativeDeductSettle struct {
|
|||
GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
|
||||
PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
|
||||
PrivilegeCount uint32 `json:"privilege_count" gorm:"default:0"` // 尊享会员数量
|
||||
|
||||
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置
|
||||
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成配置
|
||||
|
@ -171,6 +180,7 @@ type CooperativeDeductSettle struct {
|
|||
RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
|
||||
RenewalPrivilegeCount uint32 `json:"renewal_privilege_count" gorm:"default:0"` // 续费尊享会员数量
|
||||
|
||||
RenewalGoldDeduct uint32 `json:"renewal_gold_deduct"` // 续费黄金会员提成
|
||||
RenewalPlatinumDeduct uint32 `json:"renewal_platinum_deduct"` // 续费白金会员提成
|
||||
|
@ -271,6 +281,10 @@ func (m *CooperativeMemberPromotion) AddPromotion(gdb *gorm.DB, memberLevel int)
|
|||
sql = "UPDATE cooperative_member_promotion SET black_gold_count=black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.BlackGoldCount = 1
|
||||
case 6: //尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion SET privilege_count=privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.PrivilegeCount = 1
|
||||
}
|
||||
fmt.Println("邀请会员sql:", sql)
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
|
@ -324,6 +338,11 @@ func (m *CooperativeMemberPromotionStore) AddPromotion(gdb *gorm.DB, memberLevel
|
|||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.BlackGoldCount = 1
|
||||
case 6: //尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion_store SET privilege_count=privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.PrivilegeCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion_store WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d",
|
||||
|
@ -368,6 +387,10 @@ func (m *CooperativeMemberPromotionDay) AddPromotion(gdb *gorm.DB, memberLevel i
|
|||
sql = "UPDATE cooperative_member_promotion_day SET black_gold_count=black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.BlackGoldCount = 1
|
||||
case 6: //尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion_day SET privilege_count=privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.PrivilegeCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion_day WHERE cooperative_business_id=%d AND day_time='%s'",
|
||||
|
@ -416,6 +439,11 @@ func (m *CooperativeMemberPromotionStoreDay) AddPromotion(gdb *gorm.DB, memberLe
|
|||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.BlackGoldCount = 1
|
||||
case 6: //尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion_store_day SET privilege_count=privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.PrivilegeCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist("SELECT * FROM cooperative_member_promotion_store_day " +
|
||||
fmt.Sprintf("WHERE cooperative_business_id=%d AND day_time='%s' AND store_id=%d",
|
||||
|
@ -485,6 +513,11 @@ func (m *InviteMemberReport) AddPromotion(gdb *gorm.DB, memberLevel, memberGenre
|
|||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||
dateString, m.CooperativeBusinessId, m.Uid)
|
||||
m.BlackGoldCount = 1
|
||||
case 6: // 尊享会员
|
||||
sql = "UPDATE invite_member_report SET privilege_count=privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||
dateString, m.CooperativeBusinessId, m.Uid)
|
||||
m.PrivilegeCount = 1
|
||||
}
|
||||
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
|
@ -622,6 +655,10 @@ func (m *CooperativeMemberPromotion) AddRenewal(gdb *gorm.DB, memberLevel int) e
|
|||
sql = "UPDATE cooperative_member_promotion SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
case 6: // 尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion SET renewal_privilege_count=renewal_privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d", dateString, m.CooperativeBusinessId)
|
||||
m.RenewalPrivilegeCount = 1
|
||||
}
|
||||
fmt.Println("邀请会员sql:", sql)
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
|
@ -641,7 +678,6 @@ func (m *CooperativeMemberPromotion) AddRenewal(gdb *gorm.DB, memberLevel int) e
|
|||
return err
|
||||
}
|
||||
} else {
|
||||
|
||||
m.State = PromotionStateUnSettlement
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
|
@ -676,6 +712,11 @@ func (m *CooperativeMemberPromotionStore) AddRenewal(gdb *gorm.DB, memberLevel i
|
|||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
case 6: // 尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion_store SET renewal_privilege_count=renewal_privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalPrivilegeCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion_store WHERE cooperative_business_id=%d AND date='%s' AND store_id=%d",
|
||||
|
@ -691,7 +732,6 @@ func (m *CooperativeMemberPromotionStore) AddRenewal(gdb *gorm.DB, memberLevel i
|
|||
return err
|
||||
}
|
||||
} else {
|
||||
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
logger.Error("create cooperative member promotion err:", err)
|
||||
|
@ -721,6 +761,10 @@ func (m *CooperativeMemberPromotionDay) AddRenewal(gdb *gorm.DB, memberLevel int
|
|||
sql = "UPDATE cooperative_member_promotion_day SET renewal_black_gold_count=renewal_black_gold_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
case 6: // 尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion_day SET renewal_privilege_count=renewal_privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d", dayString, m.CooperativeBusinessId)
|
||||
m.RenewalPrivilegeCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
"SELECT * FROM cooperative_member_promotion_day WHERE cooperative_business_id=%d AND day_time='%s'",
|
||||
|
@ -770,6 +814,11 @@ func (m *CooperativeMemberPromotionStoreDay) AddRenewal(gdb *gorm.DB, memberLeve
|
|||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
case 6: // 尊享会员
|
||||
sql = "UPDATE cooperative_member_promotion_store_day SET renewal_privilege_count=renewal_privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE day_time='%s' AND cooperative_business_id=%d AND store_id=%d",
|
||||
dateString, m.CooperativeBusinessId, storeId)
|
||||
m.RenewalPrivilegeCount = 1
|
||||
}
|
||||
exist, err := QueryRecordExist("SELECT * FROM cooperative_member_promotion_store_day " +
|
||||
fmt.Sprintf("WHERE cooperative_business_id=%d AND day_time='%s' AND store_id=%d",
|
||||
|
@ -785,7 +834,6 @@ func (m *CooperativeMemberPromotionStoreDay) AddRenewal(gdb *gorm.DB, memberLeve
|
|||
return err
|
||||
}
|
||||
} else {
|
||||
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
logger.Error("create cooperative member promotion store day err:", err)
|
||||
|
@ -832,7 +880,6 @@ func (m *InviteMemberReport) AddRenewalAuto(gdb *gorm.DB, memberLevel, memberGen
|
|||
dateString, m.CooperativeBusinessId, m.Uid)
|
||||
m.RenewalGoldCountHalf = 1
|
||||
}
|
||||
|
||||
case 4: // 白金
|
||||
sql = "UPDATE invite_member_report SET renewal_platinum_count=renewal_platinum_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||
|
@ -843,6 +890,11 @@ func (m *InviteMemberReport) AddRenewalAuto(gdb *gorm.DB, memberLevel, memberGen
|
|||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||
dateString, m.CooperativeBusinessId, m.Uid)
|
||||
m.RenewalBlackGoldCount = 1
|
||||
case 6: // 尊享会员
|
||||
sql = "UPDATE invite_member_report SET renewal_privilege_count=renewal_privilege_count+1 " +
|
||||
fmt.Sprintf("WHERE date='%s' AND cooperative_business_id=%d AND uid=%d",
|
||||
dateString, m.CooperativeBusinessId, m.Uid)
|
||||
m.RenewalPrivilegeCount = 1
|
||||
}
|
||||
|
||||
exist, err := QueryRecordExist(fmt.Sprintf(
|
||||
|
@ -859,7 +911,6 @@ func (m *InviteMemberReport) AddRenewalAuto(gdb *gorm.DB, memberLevel, memberGen
|
|||
return err
|
||||
}
|
||||
} else {
|
||||
|
||||
//m.State = PromotionStateUnSettlement
|
||||
err = gdb.Create(m).Error
|
||||
if err != nil {
|
||||
|
|
21
model/privilege_member.go
Normal file
21
model/privilege_member.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// gen:qs
|
||||
//
|
||||
//go:generate goqueryset -in privilege_member.go
|
||||
type PrivilegeMember struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"` // 用户id
|
||||
Tel string `json:"tel"` // 电话
|
||||
StoreId uint64 `json:"store_id"` // 门店id
|
||||
MemberLevel uint32 `json:"member_level"` // 当前会员等级:1-普通用户,6-尊享会员
|
||||
MemberExpire *time.Time `json:"member_expire"` // 会员到期时间
|
||||
OpenMemberTime *time.Time `json:"open_member_time"` // 开通会员时间
|
||||
ExtendStatus uint32 `json:"extend_status"` // 延保状态:0-非会员, 1-已过期,2-待激活、3-已激活
|
||||
HostCode string `json:"host_code"` // 主机编码
|
||||
Images string `json:"images"` // 图片凭证
|
||||
AuditorId uint32 `json:"auditor_id" gorm:"index"` // 审核人id
|
||||
AuditTime *time.Time `json:"audit_time"` // 审核时间
|
||||
}
|
|
@ -61,6 +61,7 @@ type User struct {
|
|||
RoleKey string `json:"role_key" gorm:"-"` // 角色代码
|
||||
RoleName string `json:"role_name" gorm:"-"` // 角色名称
|
||||
LatestInviteRecord UserInviteRecord `json:"latest_invite_record" gorm:"-"` // 最近的邀请记录
|
||||
PrivilegeMemberInfo PrivilegeMember `json:"privilege_member_info" gorm:"-"` // 尊享会员信息
|
||||
//RenewalTime time.Time `json:"renewal_time"`
|
||||
//RenewalMemberLevel uint32 `json:"renewal_member_level"`
|
||||
//MemberLevelString string `json:"member_level_string" gorm:"-"` // 会员类型
|
||||
|
@ -185,6 +186,7 @@ const (
|
|||
FundTypeRecycleCard = "recycle_card" // 回收卡带
|
||||
FundTypePostagePackageFee = "postage_package_fee" // 购买运费包
|
||||
FundTypeDowngradeRenewal = "downgrade_renewal" // 降级续费
|
||||
FundTypePrivilegeMemberFee = "privilege_member_fee" // 尊享会员费
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
|
@ -362,12 +364,21 @@ func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) {
|
|||
return &validStores[0], nil
|
||||
}
|
||||
|
||||
func GetUserRentCard(uid uint32) *UserRentCard {
|
||||
func GetUserRentCard(db *gorm.DB, uid uint32) *UserRentCard {
|
||||
userRent := new(UserRentCard)
|
||||
if db == nil {
|
||||
if err := NewUserRentCardQuerySet(DB).UidEq(uid).One(userRent); err != nil {
|
||||
logger.Error(err, uid)
|
||||
return nil
|
||||
}
|
||||
} else {
|
||||
// 手动加锁查询
|
||||
if err := db.Raw(`SELECT * FROM user_rent_card WHERE uid = ? FOR UPDATE`, uid).Scan(userRent).Error; err != nil {
|
||||
logger.Error(err, uid)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
return userRent
|
||||
}
|
||||
|
||||
|
@ -543,6 +554,7 @@ type InviteMemberReport struct {
|
|||
GoldCountQuarter uint32 `json:"gold_count_quarter"` // 季度黄金数量
|
||||
PlatinumCount uint32 `json:"platinum_count"` // 白金数量
|
||||
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金数量
|
||||
PrivilegeCount uint32 `json:"privilege_count"` // 尊享会员数量
|
||||
//ReportTime string `json:"report_time" gorm:"index"` // 业绩时间
|
||||
Date string `json:"date" gorm:"index"` // 业绩时间
|
||||
DeductAmount uint32 `json:"deduct_amount"` // 店员提成
|
||||
|
@ -556,6 +568,7 @@ type InviteMemberReport struct {
|
|||
RenewalGoldCountQuarter uint32 `json:"renewal_gold_count_quarter"` // 续费季度黄金会员数量(自动)
|
||||
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量(自动)
|
||||
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量(自动)
|
||||
RenewalPrivilegeCount uint32 `json:"renewal_privilege_count"` // 续费尊享会员数量
|
||||
UpgradeGoldToPlatinumCount uint32 `json:"upgrade_gold_to_platinum_count" gorm:"default:0"` // 升级:黄金->白金数量(自动)
|
||||
UpgradeGoldToBlackCount uint32 `json:"upgrade_gold_to_black_count" gorm:"default:0"` // 升级:黄金->黑金数量(自动)
|
||||
UpgradePlatinumToBlackCount uint32 `json:"upgrade_platinum_to_black_count" gorm:"default:0"` // 升级:白金->黑金数量(自动)
|
||||
|
|
|
@ -58,7 +58,7 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
gameCard.POST("game_type", controller.GameCardTypes) // 游戏标签
|
||||
gameCard.POST("type/list", controller.GameCardTypeList) // 游戏类型列表
|
||||
|
||||
gameCard.Use(auth.UserAccessAuth)
|
||||
//gameCard.Use(auth.UserAccessAuth)
|
||||
gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情
|
||||
gameCard.POST("list", controller.GameCardList) // 游戏卡列表
|
||||
gameCard.POST("banner", controller.HomeCarouselList) // 轮播图
|
||||
|
@ -69,7 +69,7 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
search.POST("list", controller.GameCardSearch) // 游戏卡搜索列表
|
||||
search.POST("hot", controller.GameCardHotSearch) // 游戏卡搜索列表
|
||||
|
||||
search.Use(auth.UserAccessAuth)
|
||||
//search.Use(auth.UserAccessAuth)
|
||||
search.POST("history", controller.GameCardSearchHistory) // 游戏卡搜索历史
|
||||
}
|
||||
|
||||
|
@ -99,6 +99,8 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
user.POST("invite_list", controller.UserInviteList) // 小程序推广记录
|
||||
user.POST("new_invite_list", controller.NewUserInviteRecordList) // 小程序推广记录
|
||||
user.POST("use_code_to_coupon", controller.UserCodeToCoupon) // 兑换码兑换优惠券
|
||||
|
||||
user.POST("open_privilege_member", controller.OpenPrivilegeMember) // 开通尊享会员
|
||||
}
|
||||
|
||||
store := api.Group("store")
|
||||
|
|
Loading…
Reference in New Issue
Block a user