This commit is contained in:
li 2022-01-16 16:56:20 +08:00
parent b7f3bcac3d
commit a0a31709e5
13 changed files with 1015 additions and 145 deletions

View File

@ -288,13 +288,18 @@ func PushWXPayNotice(c *gin.Context) {
expireTime = user.MemberExpire.AddDate(1, 0, 0)
}
configInfo, err := model.PayConfigInfo()
//configInfo, err := model.PayConfigInfo()
//if err != nil {
// logger.Error("err:", err)
// return
//}
memberConfig, err := model.GetMemberConfig(record.MemberLevel)
if err != nil {
logger.Error("err:", err)
logger.Error("GetMemberConfig err:", err)
return
}
err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: 2, MemberExpire: expireTime, Deposit: configInfo.DepositFee})
err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
if err != nil {
logger.Error("err:", err)
}
@ -313,6 +318,7 @@ func PushWXPayNotice(c *gin.Context) {
MemberType: 2,
ToUid: record.Uid,
MemberStatus: 2,
MemberLevel: record.MemberLevel,
}
err := userInvite.Create(model.DB)
if err != nil {
@ -321,7 +327,7 @@ func PushWXPayNotice(c *gin.Context) {
} else {
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
if user.MemberLevel != 2 {
qs = qs.SetMemberOpenTime(time.Now())
qs = qs.SetMemberOpenTime(time.Now()).SetMemberLevel(record.MemberLevel)
}
num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum()
if err != nil {
@ -333,8 +339,8 @@ func PushWXPayNotice(c *gin.Context) {
if invite.FromUid != 0 {
inviteUser := model.GetUserByUid(invite.FromUid)
if inviteUser.UserType != 2 && user.MemberLevel != 2 {
err := model.CodeSendToUser(invite.FromUid, model.CodeTypeMemberCard30,model.RedeemCodeActivityTypeUserInvite)
if inviteUser.UserType != 2 && user.MemberLevel != 2 { // 邀请 新用户推送一次
err := model.CodeSendToUser(invite.FromUid, model.CodeTypeMemberCard30, model.RedeemCodeActivityTypeUserInvite)
if err != nil {
logger.Error("err:", err)
}
@ -344,7 +350,7 @@ func PushWXPayNotice(c *gin.Context) {
}
if user.MemberLevel != 2 {
err = model.CodeSendToUser(user.Uid, model.CodeTypeMemberCard30,model.RedeemCodeActivityTypeStore)
err = model.CodeSendToUser(user.Uid, model.CodeTypeMemberCard30, model.RedeemCodeActivityTypeStore)
if err != nil {
logger.Error("err:", err)
}

View File

@ -161,12 +161,12 @@ func OrderCreate(c *gin.Context) {
//}
req := struct {
GameCardId uint64 `json:"game_card_id"`
StoreId uint64 `json:"store_id"`
UserAddressId uint64 `json:"user_address_id"`
Price uint32 `json:"price"`
DeliveryType uint8 `json:"delivery_type"` // 取货方式
ExpressFee uint32 `json:"express_fee"`
GameCardList []model.CardInfo `json:"game_card_list"`
StoreId uint64 `json:"store_id"`
UserAddressId uint64 `json:"user_address_id"`
Price uint32 `json:"price"`
DeliveryType uint8 `json:"delivery_type"` // 取货方式
ExpressFee uint32 `json:"express_fee"`
}{}
bodyString, err := ioutil.ReadAll(c.Request.Body)
@ -222,7 +222,21 @@ func OrderCreate(c *gin.Context) {
RespJson(c, status.OrderUnpaidDeposit, nil)
return
}
memberConfig, err := model.GetMemberConfig(user.MemberLevel)
if err != nil {
logger.Error("GetMemberConfig err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
cardCount := uint32(0)
for _, v := range req.GameCardList {
cardCount += v.Count
}
if memberConfig.MemberLever < cardCount {
logger.Error("GetMemberConfig err:", err)
RespJson(c, status.OrderMemberLevelLow, nil)
return
}
model.UnPayOrderSetCancel(user.Uid)
orderCreateLocker.Lock()
@ -240,7 +254,7 @@ func OrderCreate(c *gin.Context) {
return
}
online, err := model.IsGameCardOnline(uint32(req.GameCardId))
online, err := model.IsGameCardListOnline(req.GameCardList)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
@ -262,7 +276,7 @@ func OrderCreate(c *gin.Context) {
order := model.Order{
Uid: uint64(uc.Uid),
GameCardId: req.GameCardId,
GameCardId: 0,
StoreId: req.StoreId,
UserAddressId: req.UserAddressId,
DeliveryType: req.DeliveryType,
@ -278,80 +292,80 @@ func OrderCreate(c *gin.Context) {
//tx := model.TransactionBegin()
////TODO 以支付成功作为订单下单成功的依据,不是订单创建 已修改
var gameCardGoodsStock model.GameCardGoodsStock
err = model.NewGameCardGoodsStockQuerySet(model.DB).StoreIdEq(req.StoreId).GameCardIdEq(req.GameCardId).One(&gameCardGoodsStock)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
if gameCardGoodsStock.RentStock <= 0 {
logger.Error("order stock out ")
RespJson(c, status.OrderStockOut, nil)
return
}
fmt.Println("PayPrice:", order.PayPrice)
if req.Price == 0 {
order.PayStatus = model.PayStatusPaid
fmt.Println("orderId:", order.PayStatus)
err = order.OrderCreate()
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
// 减库存
sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId)
fmt.Println("sql:", sql)
err = model.DB.Exec(sql).Error
if err != nil {
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
ret := map[string]interface{}{
"web_pay": "",
"order_id": order.ID,
}
RespOK(c, ret)
return
}
begin := model.DB.Begin()
//err = order.OrderCreate()
//var gameCardGoodsStock model.GameCardGoodsStock
//err = model.NewGameCardGoodsStockQuerySet(model.DB).StoreIdEq(req.StoreId).GameCardIdEq(req.GameCardId).One(&gameCardGoodsStock)
//if err != nil {
// logger.Error("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
err = order.Create(begin)
if err != nil {
begin.Rollback()
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
// 减库存
sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId)
fmt.Println("sql:", sql)
err = begin.Exec(sql).Error
if err != nil {
begin.Rollback()
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
err = begin.Commit().Error
if err != nil {
begin.Rollback()
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
//if gameCardGoodsStock.RentStock <= 0 {
// logger.Error("order stock out ")
// RespJson(c, status.OrderStockOut, nil)
// return
//}
//
//fmt.Println("PayPrice:", order.PayPrice)
//if req.Price == 0 {
// order.PayStatus = model.PayStatusPaid
// fmt.Println("orderId:", order.PayStatus)
// err = order.OrderCreate()
// if err != nil {
// logger.Error("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
// }
//
// // 减库存
// sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId)
// fmt.Println("sql:", sql)
// err = model.DB.Exec(sql).Error
// if err != nil {
// logger.Errorf("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
// }
//
// ret := map[string]interface{}{
// "web_pay": "",
// "order_id": order.ID,
// }
// RespOK(c, ret)
// return
//}
//
//begin := model.DB.Begin()
////err = order.OrderCreate()
////if err != nil {
//// logger.Error("err:", err)
//// RespJson(c, status.InternalServerError, nil)
//// return
////}
//err = order.Create(begin)
//if err != nil {
// begin.Rollback()
// logger.Error("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
//
//// 减库存
//sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId)
//fmt.Println("sql:", sql)
//err = begin.Exec(sql).Error
//if err != nil {
// begin.Rollback()
// logger.Errorf("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
//err = begin.Commit().Error
//if err != nil {
// begin.Rollback()
// logger.Errorf("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
orderId := fmt.Sprintf("%d", order.ID)
//orderId = "100000"

View File

@ -57,6 +57,9 @@ func ShoppingCartAdd(c *gin.Context) {
RespJson(c, status.BadRequest, nil)
return
}
//fmt.Println("GameCardId:",req.GameCardId)
//fmt.Println("AddType:",req.AddType)
if req.GameCardId == 0 {
logger.Error("GameCardId is 0")
RespJson(c, status.BadRequest, nil)
@ -96,7 +99,9 @@ func ShoppingCartAdd(c *gin.Context) {
} else if req.AddType == 2 {
shoppingCart.Count -= 1
}
if shoppingCart.Count < 0 {
shoppingCart.Count = 0
}
_, err = model.NewShoppingCartQuerySet(model.DB).IDEq(shoppingCart.ID).GetUpdater().SetCount(shoppingCart.Count).UpdateNum()
if err != nil {
logger.Error("err:", err)

View File

@ -205,6 +205,14 @@ func UserInfoUpdate(c *gin.Context) {
}
func OpenMember(c *gin.Context) {
req := struct {
MemberLevel uint32 `json:"member_level"` // 昵称
}{}
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)
@ -213,12 +221,19 @@ func OpenMember(c *gin.Context) {
user := model.GetUserByUid(uc.Uid)
configInfo, err := model.PayConfigInfo()
//configInfo, err := model.PayConfigInfo()
//if err != nil {
// logger.Error("err:", err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
memberConfig, err := model.GetMemberConfig(req.MemberLevel)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
//totalFee := uint32(MemberFee + DepositFee)
////totalFee = uint32(3) // TODO 测试
//if user.Deposit == 300 {
@ -226,10 +241,11 @@ func OpenMember(c *gin.Context) {
// // //totalFee = uint32(1) // TODO 测试
//}
fmt.Println("configInfo.MemberFee : configInfo.DepositFee", configInfo.MemberFee, configInfo.DepositFee)
totalFee := configInfo.MemberFee + configInfo.DepositFee
if user.Deposit == configInfo.DepositFee {
totalFee = configInfo.MemberFee
fmt.Println("configInfo.MemberFee : configInfo.DepositFee", memberConfig.MemberFee, memberConfig.MemberDeposit)
totalFee := memberConfig.MemberFee + memberConfig.MemberDeposit
if user.Deposit == memberConfig.MemberDeposit {
totalFee = memberConfig.MemberFee
}
if totalFee == 0 {
logger.Error(errors.New("totalFee is 0"))
@ -244,7 +260,7 @@ func OpenMember(c *gin.Context) {
//}
//orderSn := utils.GetSerialNo32HEXString()
orderSn := model.GetOrderSn()
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn}.Insert()
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn,MemberLevel: req.MemberLevel}.Insert()
if err != nil {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
@ -276,14 +292,23 @@ func PayDeposit(c *gin.Context) {
RespJson(c, status.InternalServerError, nil)
return
}
configInfo, err := model.PayConfigInfo()
level := user.MemberLevel
if level == model.MemberLevelPeriod {
level = model.MemberLevelGold
}
//configInfo, err := model.PayConfigInfo()
//if err != nil {
// logger.Error("err:", err)
// return
//}
memberConfig, err := model.GetMemberConfig(level)
if err != nil {
logger.Error("err:", err)
logger.Error("GetMemberConfig err:",err)
RespJson(c, status.InternalServerError, nil)
return
}
totalFee := configInfo.DepositFee
totalFee := memberConfig.MemberDeposit
if totalFee == 0 || user.Deposit == totalFee {
logger.Error(errors.New("totalFee is 0"))
RespJson(c, status.InternalServerError, nil)
@ -379,6 +404,23 @@ func UserDepositRefundRecordList(c *gin.Context) {
RespOK(c, resp)
}
func MemberConfigList(c *gin.Context) {
//uc := auth.GetCurrentUser(c)
//if uc == nil {
// RespJson(c, status.Unauthorized, nil)
// return
//}
resp, err := model.MemberConfigInfo()
if err != nil {
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, resp)
}
// 升级 1-黄金会员 2-白金会员 3-黑金会员
// 开通会员
// 升级会员
@ -386,3 +428,5 @@ func UserDepositRefundRecordList(c *gin.Context) {
// 购物车
// 押金
// 会员列表 开通会员 下订单 借卡 还卡
// 会员升级

View File

@ -82,14 +82,14 @@ const (
AwardOffShelves = 500407 //奖品下架
AwardExchangeOut = 500408 //奖品已兑完
NotMember = 500501 //非会员
HadReceiveReward = 500502 // 已经领取过奖励
OrderDelivered = 500503 // 订单已发货
OrderCompleted = 500504 // 订单已完成
OrderStockOut = 500505 // 没有库存
OrderUnpaidDeposit = 500506 // 没有库存
NotMember = 500501 //非会员
HadReceiveReward = 500502 // 已经领取过奖励
OrderDelivered = 500503 // 订单已发货
OrderCompleted = 500504 // 订单已完成
OrderStockOut = 500505 // 没有库存
OrderUnpaidDeposit = 500506 // 未交押金
RefundDepositSubmitted = 500507 // 已提交押金退款
OrderMemberLevelLow = 500508 // 会员等级低
ToastErr = 600 // 报错
)

View File

@ -1679,6 +1679,62 @@ func (qs UserInviteQuerySet) Limit(limit int) UserInviteQuerySet {
return qs.w(qs.db.Limit(limit))
}
// MemberLevelEq is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelEq(memberLevel uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("member_level = ?", memberLevel))
}
// MemberLevelGt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelGt(memberLevel uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("member_level > ?", memberLevel))
}
// MemberLevelGte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelGte(memberLevel uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("member_level >= ?", memberLevel))
}
// MemberLevelIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelIn(memberLevel ...uint32) UserInviteQuerySet {
if len(memberLevel) == 0 {
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("member_level IN (?)", memberLevel))
}
// MemberLevelLt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelLt(memberLevel uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("member_level < ?", memberLevel))
}
// MemberLevelLte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelLte(memberLevel uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("member_level <= ?", memberLevel))
}
// MemberLevelNe is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelNe(memberLevel uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("member_level != ?", memberLevel))
}
// MemberLevelNotIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberLevelNotIn(memberLevel ...uint32) UserInviteQuerySet {
if len(memberLevel) == 0 {
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel))
}
// MemberOpenTimeEq is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) MemberOpenTimeEq(memberOpenTime time.Time) UserInviteQuerySet {
@ -1863,6 +1919,12 @@ func (qs UserInviteQuerySet) OrderAscByID() UserInviteQuerySet {
return qs.w(qs.db.Order("id ASC"))
}
// OrderAscByMemberLevel is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByMemberLevel() UserInviteQuerySet {
return qs.w(qs.db.Order("member_level ASC"))
}
// OrderAscByMemberOpenTime is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByMemberOpenTime() UserInviteQuerySet {
@ -1935,6 +1997,12 @@ func (qs UserInviteQuerySet) OrderDescByID() UserInviteQuerySet {
return qs.w(qs.db.Order("id DESC"))
}
// OrderDescByMemberLevel is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByMemberLevel() UserInviteQuerySet {
return qs.w(qs.db.Order("member_level DESC"))
}
// OrderDescByMemberOpenTime is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByMemberOpenTime() UserInviteQuerySet {
@ -2271,6 +2339,13 @@ func (u UserInviteUpdater) SetID(ID uint32) UserInviteUpdater {
return u
}
// SetMemberLevel is an autogenerated method
// nolint: dupl
func (u UserInviteUpdater) SetMemberLevel(memberLevel uint32) UserInviteUpdater {
u.fields[string(UserInviteDBSchema.MemberLevel)] = memberLevel
return u
}
// SetMemberOpenTime is an autogenerated method
// nolint: dupl
func (u UserInviteUpdater) SetMemberOpenTime(memberOpenTime time.Time) UserInviteUpdater {
@ -2367,6 +2442,7 @@ var UserInviteDBSchema = struct {
MemberStatus UserInviteDBSchemaField
ToUid UserInviteDBSchemaField
StoreType UserInviteDBSchemaField
MemberLevel UserInviteDBSchemaField
}{
ID: UserInviteDBSchemaField("id"),
@ -2381,6 +2457,7 @@ var UserInviteDBSchema = struct {
MemberStatus: UserInviteDBSchemaField("member_status"),
ToUid: UserInviteDBSchemaField("to_uid"),
StoreType: UserInviteDBSchemaField("store_type"),
MemberLevel: UserInviteDBSchemaField("member_level"),
}
// Update updates UserInvite fields by primary key
@ -2399,6 +2476,7 @@ func (o *UserInvite) Update(db *gorm.DB, fields ...UserInviteDBSchemaField) erro
"member_status": o.MemberStatus,
"to_uid": o.ToUid,
"store_type": o.StoreType,
"member_level": o.MemberLevel,
}
u := map[string]interface{}{}
for _, f := range fields {
@ -2656,6 +2734,62 @@ func (qs UserOpenMemberRecordQuerySet) Limit(limit int) UserOpenMemberRecordQuer
return qs.w(qs.db.Limit(limit))
}
// MemberLevelEq is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelEq(memberLevel uint32) UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Where("member_level = ?", memberLevel))
}
// MemberLevelGt is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelGt(memberLevel uint32) UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Where("member_level > ?", memberLevel))
}
// MemberLevelGte is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelGte(memberLevel uint32) UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Where("member_level >= ?", memberLevel))
}
// MemberLevelIn is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelIn(memberLevel ...uint32) UserOpenMemberRecordQuerySet {
if len(memberLevel) == 0 {
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("member_level IN (?)", memberLevel))
}
// MemberLevelLt is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelLt(memberLevel uint32) UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Where("member_level < ?", memberLevel))
}
// MemberLevelLte is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelLte(memberLevel uint32) UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Where("member_level <= ?", memberLevel))
}
// MemberLevelNe is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelNe(memberLevel uint32) UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Where("member_level != ?", memberLevel))
}
// MemberLevelNotIn is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) MemberLevelNotIn(memberLevel ...uint32) UserOpenMemberRecordQuerySet {
if len(memberLevel) == 0 {
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel))
}
// Offset is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) Offset(offset int) UserOpenMemberRecordQuerySet {
@ -2718,6 +2852,12 @@ func (qs UserOpenMemberRecordQuerySet) OrderAscByID() UserOpenMemberRecordQueryS
return qs.w(qs.db.Order("id ASC"))
}
// OrderAscByMemberLevel is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) OrderAscByMemberLevel() UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Order("member_level ASC"))
}
// OrderAscByOrderId is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) OrderAscByOrderId() UserOpenMemberRecordQuerySet {
@ -2760,6 +2900,12 @@ func (qs UserOpenMemberRecordQuerySet) OrderDescByID() UserOpenMemberRecordQuery
return qs.w(qs.db.Order("id DESC"))
}
// OrderDescByMemberLevel is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) OrderDescByMemberLevel() UserOpenMemberRecordQuerySet {
return qs.w(qs.db.Order("member_level DESC"))
}
// OrderDescByOrderId is an autogenerated method
// nolint: dupl
func (qs UserOpenMemberRecordQuerySet) OrderDescByOrderId() UserOpenMemberRecordQuerySet {
@ -3009,6 +3155,13 @@ func (u UserOpenMemberRecordUpdater) SetID(ID uint32) UserOpenMemberRecordUpdate
return u
}
// SetMemberLevel is an autogenerated method
// nolint: dupl
func (u UserOpenMemberRecordUpdater) SetMemberLevel(memberLevel uint32) UserOpenMemberRecordUpdater {
u.fields[string(UserOpenMemberRecordDBSchema.MemberLevel)] = memberLevel
return u
}
// SetOpenNo is an autogenerated method
// nolint: dupl
func (u UserOpenMemberRecordUpdater) SetOpenNo(openNo string) UserOpenMemberRecordUpdater {
@ -3072,38 +3225,41 @@ func (f UserOpenMemberRecordDBSchemaField) String() string {
// UserOpenMemberRecordDBSchema stores db field names of UserOpenMemberRecord
var UserOpenMemberRecordDBSchema = struct {
ID UserOpenMemberRecordDBSchemaField
CreatedAt UserOpenMemberRecordDBSchemaField
UpdatedAt UserOpenMemberRecordDBSchemaField
DeletedAt UserOpenMemberRecordDBSchemaField
Uid UserOpenMemberRecordDBSchemaField
OpenNo UserOpenMemberRecordDBSchemaField
OrderId UserOpenMemberRecordDBSchemaField
OrderType UserOpenMemberRecordDBSchemaField
ID UserOpenMemberRecordDBSchemaField
CreatedAt UserOpenMemberRecordDBSchemaField
UpdatedAt UserOpenMemberRecordDBSchemaField
DeletedAt UserOpenMemberRecordDBSchemaField
Uid UserOpenMemberRecordDBSchemaField
OpenNo UserOpenMemberRecordDBSchemaField
OrderId UserOpenMemberRecordDBSchemaField
OrderType UserOpenMemberRecordDBSchemaField
MemberLevel UserOpenMemberRecordDBSchemaField
}{
ID: UserOpenMemberRecordDBSchemaField("id"),
CreatedAt: UserOpenMemberRecordDBSchemaField("created_at"),
UpdatedAt: UserOpenMemberRecordDBSchemaField("updated_at"),
DeletedAt: UserOpenMemberRecordDBSchemaField("deleted_at"),
Uid: UserOpenMemberRecordDBSchemaField("uid"),
OpenNo: UserOpenMemberRecordDBSchemaField("open_no"),
OrderId: UserOpenMemberRecordDBSchemaField("order_id"),
OrderType: UserOpenMemberRecordDBSchemaField("order_type"),
ID: UserOpenMemberRecordDBSchemaField("id"),
CreatedAt: UserOpenMemberRecordDBSchemaField("created_at"),
UpdatedAt: UserOpenMemberRecordDBSchemaField("updated_at"),
DeletedAt: UserOpenMemberRecordDBSchemaField("deleted_at"),
Uid: UserOpenMemberRecordDBSchemaField("uid"),
OpenNo: UserOpenMemberRecordDBSchemaField("open_no"),
OrderId: UserOpenMemberRecordDBSchemaField("order_id"),
OrderType: UserOpenMemberRecordDBSchemaField("order_type"),
MemberLevel: UserOpenMemberRecordDBSchemaField("member_level"),
}
// Update updates UserOpenMemberRecord fields by primary key
// nolint: dupl
func (o *UserOpenMemberRecord) Update(db *gorm.DB, fields ...UserOpenMemberRecordDBSchemaField) error {
dbNameToFieldName := map[string]interface{}{
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"uid": o.Uid,
"open_no": o.OpenNo,
"order_id": o.OrderId,
"order_type": o.OrderType,
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"uid": o.Uid,
"open_no": o.OpenNo,
"order_id": o.OrderId,
"order_type": o.OrderType,
"member_level": o.MemberLevel,
}
u := map[string]interface{}{}
for _, f := range fields {

View File

@ -2,6 +2,7 @@ package model
import (
"encoding/json"
"errors"
"github.com/codinl/go-logger"
)
@ -25,7 +26,8 @@ type PayConfig struct {
}
const (
ConfigNamePay = "pay_config" // 支付配置
ConfigNamePay = "pay_config" // 支付配置
ConfigNameMember = "member_config" // 会员配置
)
func PayConfigInfo() (*PayConfig, error) {
@ -46,15 +48,54 @@ func PayConfigInfo() (*PayConfig, error) {
return payConfig, nil
}
//
type MemberConfig struct {
MemberLever uint32 `json:"member_lever"` // 会员等级
MemberFee uint32 `json:"member_fee"` // 会员费
MemberDeposit uint32 `json:"member_deposit"` // 押金
CardMax uint32 `json:"card_max"`
}
func MemberConfigInfo() ([]MemberConfig, error) {
var memberConfigs []MemberConfig
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigNameMember).One(&configAllocation)
if err != nil {
logger.Error("err:", err)
return memberConfigs, err
}
err = json.Unmarshal([]byte(configAllocation.Value), &memberConfigs)
if err != nil {
logger.Error("err:", err)
return memberConfigs, err
}
return memberConfigs, nil
}
func GetMemberConfig(level uint32) (*MemberConfig, error) {
if level == 3 {
level = 2
}
info, err := MemberConfigInfo()
if err != nil {
return nil, err
}
for _, config := range info {
if config.MemberLever == level {
return &config, nil
}
}
return nil, errors.New("level err")
}
//type ConfigInterface interface {
// Encode() string
//}
//
//type CheckConfig struct {
// Check uint8 `json:"check"`
//}
//
//func (c *CheckConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {

38
model/config_test.go Normal file
View File

@ -0,0 +1,38 @@
package model
import (
"encoding/json"
"fmt"
"testing"
)
func TestMemberConfigInfo(t *testing.T) {
lever := []uint32{2, 4, 5}
list := make([]MemberConfig, 0)
cardCount := 0
for i, _ := range lever {
if lever[i] == 2 {
cardCount = 1
} else if lever[i] == 4 {
cardCount = 2
} else if lever[i] == 4 {
cardCount = 5
}
var config = MemberConfig{
MemberLever: lever[i],
MemberFee: lever[i],
MemberDeposit: lever[i],
CardMax: uint32(cardCount),
}
list = append(list, config)
}
bytes, err := json.Marshal(&list)
if err != nil {
fmt.Println("err:", err.Error())
}
fmt.Println("list:", string(bytes))
}

View File

@ -50,6 +50,11 @@ func (*HomeCarousel) TableName() string {
return "home_carousel"
}
type CardInfo struct {
GameCardId uint32 `json:"game_card_id"`
Count uint32 `json:"count"`
}
func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId uint32) ([]GameCard, uint32, error) {
var (
cards []GameCard = make([]GameCard, 0)
@ -166,6 +171,21 @@ func IsGameCardOnline(gameCardId uint32) (bool, error) {
return count == 1, nil
}
func IsGameCardListOnline(gameCards []CardInfo) (bool, error) {
for _, v := range gameCards {
count, err := NewGameCardQuerySet(DB).IDEq(v.GameCardId).StatusEq(1).Count()
if err != nil {
logger.Error("err:", err)
return false, err
}
if count < 1 {
return false, nil
}
}
return true, nil
}
func IsGameCardHaveStoke(storeId, gameCardId uint32) (bool, error) {
var stock GameCardGoodsStock
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).GameCardIdEq(uint64(gameCardId)).One(&stock)

View File

@ -62,6 +62,16 @@ type Order struct {
Mchid string `json:"mchid"` // 商户
}
type OrderCard struct {
Model
OrderId uint32 `json:"order_id" gorm:"index"`
Uid uint32 `json:"uid" gorm:"index"`
GameCardId uint32 `json:"game_card_id" gorm:"index"` // 游戏id
GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"` // 游戏卡id
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
Status uint8 `json:"status" gorm:"index"`
}
func (*Order) TableName() string {
return "order"
}
@ -295,7 +305,6 @@ func IsHaveUnreturnedOrders(uid uint32) (bool, error) {
return unreturned.Count != 0, nil
}
func IsUserHaveUnreturnedOrder(uid uint32) (bool, error) {
fmt.Println("uid", uid)
@ -378,7 +387,6 @@ func (m *Order) Cancel() error {
return errors.New("card status expire")
}
begin := DB.Begin()
err = NewOrderQuerySet(begin).IDEq(m.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update()
if err != nil {

View File

@ -43,8 +43,16 @@ func (o *User) TableName() string {
}
const (
MemberTypeConsumer = 1
MemberTypeMember = 2
MemberTypeConsumer = 1 // 普通用户
MemberTypeMember = 2 // 黄金会员
)
const (
MemberLevelConsumer = 1 // 普通用户
MemberLevelGold = 2 // 黄金会员
MemberLevelPeriod = 3
MemberLevelPlatinum = 4 // 白金会员
MemberLevelBlackGold = 5 // 黑金会员
)
const DateTimeFormat = "2006-01-02"
@ -61,6 +69,7 @@ type UserInvite struct {
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
ToUid uint32 `json:"to_uid"` // 被邀请用户
StoreType uint32 `json:"store_type"` // 门店类型
MemberLevel uint32 `json:"member_level"` // 会员等级
}
const (
@ -128,11 +137,11 @@ func UserUpdate(user *User) error {
type UserOpenMemberRecord struct {
Model
Uid uint32 `json:"uid"`
OpenNo string `json:"open_no" gorm:"index"`
OrderId uint32 `json:"order_id"`
OrderType uint32 `json:"order_type"` // 1-物流支付
Uid uint32 `json:"uid"`
OpenNo string `json:"open_no" gorm:"index"`
OrderId uint32 `json:"order_id"`
OrderType uint32 `json:"order_type"` // 1-物流支付
MemberLevel uint32 `json:"member_level"`
}
func (o *UserOpenMemberRecord) TableName() string {
@ -166,7 +175,6 @@ type CommonProblem struct {
Sort uint32 `json:"sort" gorm:"index"`
}
type GroupSendMessageTemplate struct {
Model
@ -178,7 +186,6 @@ type GroupSendMessageTemplate struct {
Status uint32 `json:"status"` // 1-待发送 2-已发送
}
func (*CommonProblem) TableName() string {
return "common_problem"
}
@ -364,7 +371,6 @@ func GetDepositRefundRecordList(uid uint32) ([]DepositRefundRecord, error) {
return deposits, nil
}
var userMutexMap map[string]*sync.Mutex
func GetUserMutexMap() map[string]*sync.Mutex {
@ -388,5 +394,4 @@ func GetUserMutex(mutexKey string) *sync.Mutex {
// return GetUserMutex(fmt.Sprintf("AuthLogin:%d", uid))
//}
var AuthLoginMutex = sync.Mutex{}
var AuthLoginMutex = sync.Mutex{}

View File

@ -0,0 +1,531 @@
2022/01/16 14:38:12 [INFO ]base_init_db.go:38: DB init success
2022/01/16 15:29:56 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:30:00 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:30:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:30:00 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:30:01 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:30:01 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:30:01 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:30:03 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 15:30:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 15:30:03 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 15:30:58 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 15:30:58 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 15:30:58 [INFO ]account.go:49: resp.UnionID=
2022/01/16 15:30:58 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:31:04 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 15:31:04 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 15:31:04 [INFO ]account.go:49: resp.UnionID=
2022/01/16 15:31:04 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:31:24 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:31:25 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:31:25 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:31:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:31:26 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:31:37 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:31:38 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:31:38 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:34:59 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:04 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 15:35:04 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 15:35:04 [INFO ]account.go:49: resp.UnionID=
2022/01/16 15:35:04 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:05 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:08 [INFO ]init.go:30: /api/v1/user/user_info/upload
2022/01/16 15:35:08 [ERROR]account.go:279: Key: 'Code' Error:Field validation for 'Code' failed on the 'required' tag
2022/01/16 15:35:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:10 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:16 [INFO ]init.go:30: /api/v1/user/user_info/upload
2022/01/16 15:35:16 [INFO ]account.go:302: userInfo={OpenID: Nickname:枫 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoBbibF1ykzNbej9KZreT23p4O2MLFgNIt73BeIP6GnYOH3baeJvS30wKk866ibKuSL3prOpLJMC6Jg/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1642318516}}
2022/01/16 15:35:16 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:18 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:19 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:19 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:20 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:35:20 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:29 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 15:35:29 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 15:35:29 [INFO ]account.go:49: resp.UnionID=
2022/01/16 15:35:29 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:35:29 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:36:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:38:42 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:40:22 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:40:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:41:56 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:42:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:42:23 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:44:12 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:44:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:44:35 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:44:37 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:44:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:46:59 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:47:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:47:19 [INFO ]init.go:30: /api/v1/user/open_member
2022/01/16 15:47:19 [INFO ]wx_pay.go:63: MchId: 1609877389
2022/01/16 15:47:19 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c
2022/01/16 15:47:19 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456
2022/01/16 15:47:19 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=vjVgoqgzYqJ6pyrK47L363Qf0wYDWV8x&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=diddvhp40000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154719&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:47:19 [ERROR]wx_pay.go:464: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>vjVgoqgzYqJ6pyrK47L363Qf0wYDWV8x</nonce_str><sign>ECDE78A54BA7B9A8BC19C51B3F5CE5D8</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>diddvhp40000</out_trade_no><fee_type>CNY</fee_type><total_fee>41</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20220116154719</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4tpfro8u_fUPMbHEWYx5svQ</openid><profit_sharing>N</profit_sharing></xml>
2022/01/16 15:47:19 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=Mc9GYbaUaXD3BToo&package=prepay_id=wx1615471951571141d8de42ce2655ae0000&signType=MD5&timeStamp=1642319239&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:47:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:49:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:49:09 [INFO ]init.go:30: /api/v1/user/open_member
2022/01/16 15:49:09 [INFO ]wx_pay.go:63: MchId: 1609877389
2022/01/16 15:49:09 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c
2022/01/16 15:49:09 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:09 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=cCHl1d7GEi7g9is9A2my0vbx3cFnvQuJ&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=dided18o0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154909&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:09 [ERROR]wx_pay.go:464: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>cCHl1d7GEi7g9is9A2my0vbx3cFnvQuJ</nonce_str><sign>0C404E64B119780687532816783F03EF</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>dided18o0000</out_trade_no><fee_type>CNY</fee_type><total_fee>41</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20220116154909</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4tpfro8u_fUPMbHEWYx5svQ</openid><profit_sharing>N</profit_sharing></xml>
2022/01/16 15:49:10 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=lOVZRmfoioPBfULu&package=prepay_id=wx161549100009358b0b65c85b76b1520000&signType=MD5&timeStamp=1642319350&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:10 [INFO ]init.go:30: /api/v1/user/open_member
2022/01/16 15:49:10 [INFO ]wx_pay.go:63: MchId: 1609877389
2022/01/16 15:49:10 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c
2022/01/16 15:49:10 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:10 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=63cN2N1GnO3rjy8DOACK03V6Dp515q6E&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=dided4ng0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154910&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:10 [ERROR]wx_pay.go:464: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>63cN2N1GnO3rjy8DOACK03V6Dp515q6E</nonce_str><sign>03A10200FDED898D6C7DA73316D53CF4</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>dided4ng0000</out_trade_no><fee_type>CNY</fee_type><total_fee>41</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20220116154910</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4tpfro8u_fUPMbHEWYx5svQ</openid><profit_sharing>N</profit_sharing></xml>
2022/01/16 15:49:10 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=YtFKFOjTvYF1TAza&package=prepay_id=wx16154910775284d1d11a140b92f2bd0000&signType=MD5&timeStamp=1642319350&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:16 [INFO ]init.go:30: /api/v1/user/open_member
2022/01/16 15:49:17 [INFO ]wx_pay.go:63: MchId: 1609877389
2022/01/16 15:49:17 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c
2022/01/16 15:49:17 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:17 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=CHz2Jj33ULa0VKk7I2q1ki7n77XfK535&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=didedtp40000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154916&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:17 [ERROR]wx_pay.go:464: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>CHz2Jj33ULa0VKk7I2q1ki7n77XfK535</nonce_str><sign>11C1E2D541DC0F8284B2CCE24CEA1068</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>didedtp40000</out_trade_no><fee_type>CNY</fee_type><total_fee>41</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20220116154916</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4tpfro8u_fUPMbHEWYx5svQ</openid><profit_sharing>N</profit_sharing></xml>
2022/01/16 15:49:17 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=e5zoJnepNXQX6mBl&package=prepay_id=wx16154917204493a8a49858360b56130000&signType=MD5&timeStamp=1642319357&key=DeovoMingHuiRengTianTang45675456
2022/01/16 15:49:43 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:49:47 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 15:49:47 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 15:49:47 [INFO ]account.go:49: resp.UnionID=
2022/01/16 15:49:47 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:49:48 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:49:52 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:49:52 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:50:06 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:50:06 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:50:06 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:50:07 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:50:07 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:50:09 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:50:09 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:51:27 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:51:33 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:38 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:43 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:44 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:59:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:45 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 15:59:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 15:59:47 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:01:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:01:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:01:46 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:01:48 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:01:48 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:01:48 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:01:49 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:02:34 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:04:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:04:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:04:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:04:07 [INFO ]init.go:30: /api/v1/user/invite_list
2022/01/16 16:04:53 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:04:54 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:04:55 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:04:55 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:04:56 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/article/title_panel/list
2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/article/list
2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:04:59 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:04:59 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:05:00 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:05:02 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:05:03 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:05:07 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:05:11 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:05:12 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:05:14 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:05:20 [INFO ]init.go:30: /api/v1/user/user_info/tel
2022/01/16 16:05:20 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:05:20 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:05:30 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:05:31 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:06:01 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:06:01 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:06:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:06:47 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:06:47 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:06:48 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:06:51 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:06:53 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:06:54 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:06:54 [INFO ]init.go:30: /api/v1/user/address/list
2022/01/16 16:07:19 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:07:20 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:07:22 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:07:23 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:07:31 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:07:32 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:07:33 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:07:34 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:09:09 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:09:09 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:09:11 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:09:12 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:10:33 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:10:34 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:10:35 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:12:54 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:12:55 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:13:11 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:13:11 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:13:40 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:13:42 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:13:53 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:13:54 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:13:55 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:13:55 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:15:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:15:11 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:15:11 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:15:11 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:15:21 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:15:21 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:15:22 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:15:22 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:15:23 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:15:23 [INFO ]init.go:30: /api/v1/user/address/list
2022/01/16 16:15:24 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:15:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:15:58 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:15:58 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:17:44 [INFO ]base_init_db.go:38: DB init success
2022/01/16 16:17:45 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 16:17:45 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 16:17:45 [INFO ]account.go:49: resp.UnionID=
2022/01/16 16:17:45 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:17:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:17:49 [INFO ]init.go:30: /api/v1/user/user_info/upload
2022/01/16 16:17:50 [INFO ]account.go:302: userInfo={OpenID: Nickname:枫 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoBbibF1ykzNbej9KZreT23p4O2MLFgNIt73BeIP6GnYOH3baeJvS30wKk866ibKuSL3prOpLJMC6Jg/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1642321068}}
2022/01/16 16:17:50 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:17:52 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:17:52 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:17:54 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:17:54 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:17:55 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:17:55 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:02 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:18:02 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:18:04 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:18:05 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:18:06 [INFO ]init.go:30: /api/v1/user/address/list
2022/01/16 16:18:21 [INFO ]init.go:30: /api/v1/user/address/add
2022/01/16 16:18:21 [INFO ]init.go:30: /api/v1/order/amount
2022/01/16 16:18:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:45 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:18:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:46 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:18:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:48 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:18:50 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:18:51 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:18:52 [INFO ]init.go:30: /api/v1/article/title_panel/list
2022/01/16 16:18:53 [INFO ]init.go:30: /api/v1/article/list
2022/01/16 16:18:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:18:54 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:18:54 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:18:55 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:18:55 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:18:55 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:19:04 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:19:04 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:19:05 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:19:07 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:19:09 [INFO ]init.go:30: /api/v1/user/invite_list
2022/01/16 16:19:13 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:19:14 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:19:14 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:19:19 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:19:19 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:19:20 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:19:20 [INFO ]init.go:30: /api/v1/user/address/list
2022/01/16 16:19:20 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:19:24 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:19:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:19:26 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:19:32 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:19:32 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:19:32 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:20:01 [INFO ]init.go:30: /api/v1/auth/login
2022/01/16 16:20:01 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2022/01/16 16:20:01 [INFO ]account.go:49: resp.UnionID=
2022/01/16 16:20:02 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:20:02 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:20:05 [INFO ]init.go:30: /api/v1/user/user_info/upload
2022/01/16 16:20:05 [INFO ]account.go:302: userInfo={OpenID: Nickname:枫 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoBbibF1ykzNbej9KZreT23p4O2MLFgNIt73BeIP6GnYOH3baeJvS30wKk866ibKuSL3prOpLJMC6Jg/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1642321204}}
2022/01/16 16:20:05 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:20:54 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:21:06 [INFO ]init.go:30: /api/v1/user/open_member
2022/01/16 16:21:06 [INFO ]wx_pay.go:63: MchId: 1609877389
2022/01/16 16:21:06 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c
2022/01/16 16:21:06 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456
2022/01/16 16:21:06 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=4t4p3Bqd0P2oY4zIsP4IGIsRC70zgR9I&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=didln10s0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116162106&total_fee=4&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2022/01/16 16:21:06 [ERROR]wx_pay.go:464: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>4t4p3Bqd0P2oY4zIsP4IGIsRC70zgR9I</nonce_str><sign>A6A4F7BAAA85ADC1FBCA6EC3A3D18BEB</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>didln10s0000</out_trade_no><fee_type>CNY</fee_type><total_fee>4</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20220116162106</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4tpfro8u_fUPMbHEWYx5svQ</openid><profit_sharing>N</profit_sharing></xml>
2022/01/16 16:21:06 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=4j2i5D5vEzDZsJxu&package=prepay_id=wx16162106859233ff5ca5291acb1b5a0000&signType=MD5&timeStamp=1642321266&key=DeovoMingHuiRengTianTang45675456
2022/01/16 16:22:55 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:23:07 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:23:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:23:23 [INFO ]init.go:30: /api/v1/user/open_member
2022/01/16 16:23:23 [INFO ]wx_pay.go:63: MchId: 1609877389
2022/01/16 16:23:23 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c
2022/01/16 16:23:23 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456
2022/01/16 16:23:23 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=3Qftg657g46XN59t62kaaqs5Mz52poHL&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=didm7n1c0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116162323&total_fee=8&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2022/01/16 16:23:23 [ERROR]wx_pay.go:464: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>3Qftg657g46XN59t62kaaqs5Mz52poHL</nonce_str><sign>E5F4A1C61F53C0965E6F9E1DB685587F</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>didm7n1c0000</out_trade_no><fee_type>CNY</fee_type><total_fee>8</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20220116162323</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4tpfro8u_fUPMbHEWYx5svQ</openid><profit_sharing>N</profit_sharing></xml>
2022/01/16 16:23:23 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=l2GpwuLNzq6HeQSz&package=prepay_id=wx16162323563678392ca9ba60590a5b0000&signType=MD5&timeStamp=1642321403&key=DeovoMingHuiRengTianTang45675456
2022/01/16 16:23:42 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:24:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:24:17 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:24:17 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:24:34 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:24:35 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:24:35 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:25:09 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:25:10 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:25:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:25:11 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:25:11 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:25:42 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:25:49 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:26:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:27:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:27:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:27:05 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:27:06 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:27:06 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:29:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:29:03 [INFO ]init.go:30: //api/v1/user/member_config
2022/01/16 16:29:10 [INFO ]init.go:30: /api/v1/user/member_config
2022/01/16 16:29:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:35:41 [INFO ]init.go:30: /api/v1/user/member_config
2022/01/16 16:35:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:35:50 [INFO ]init.go:30: /api/v1/user/member_config
2022/01/16 16:35:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:36:04 [INFO ]init.go:30: /api/v1/user/member_config
2022/01/16 16:36:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:37:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:37:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:37:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:37:26 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:37:30 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:37:30 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:37:33 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:37:33 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:37:33 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:37:46 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:37:47 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:37:47 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:37:50 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:37:52 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:37:53 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:37:54 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:38:10 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:40:09 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:40:16 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:40:17 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:40:19 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:40:19 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:40:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:41:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:41:37 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:41:37 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:41:37 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:41:40 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:40 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:47 [INFO ]base_init_db.go:38: DB init success
2022/01/16 16:41:47 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:47 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:48 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:41:48 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:41:48 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:41:49 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:50 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:51 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:41:52 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:41:57 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:41:58 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:42:16 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:42:16 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:42:16 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:42:19 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:42:21 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:42:23 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:43:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:43:11 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:43:12 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:43:12 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:43:13 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:43:14 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:43:15 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:43:23 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:43:23 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:43:25 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:43:32 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:43:35 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:43:40 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:43:42 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:18 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:23 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:27 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:42 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:43 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:44:43 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:44:44 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:44:46 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:46 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:44:52 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:45:00 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:46:13 [INFO ]base_init_db.go:38: DB init success
2022/01/16 16:47:04 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:22 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:47:23 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:47:23 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:47:24 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:47:26 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:47:26 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:27 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:28 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:47:28 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:47:28 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:47:29 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:47:29 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:47:29 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:47:30 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:47:30 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:47:31 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:47:34 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:47:36 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:36 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:37 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:47:38 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:39 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:39 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:47:40 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:41 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:44 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:45 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:47:45 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:49 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:51 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:47:54 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:47:59 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:48:02 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:48:08 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:48:08 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:48:08 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:48:15 [INFO ]init.go:30: /api/v1/game_card/type/list
2022/01/16 16:48:15 [INFO ]init.go:30: /api/v1/game_card/banner
2022/01/16 16:48:15 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:49:02 [INFO ]init.go:30: /api/v1/game_card/info
2022/01/16 16:49:02 [INFO ]init.go:30: /api/v1/game_card/game_type
2022/01/16 16:49:03 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:49:05 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:49:06 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:49:12 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:49:56 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:50:02 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:50:04 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:50:04 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:50:06 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:50:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:51:35 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:51:37 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:51:38 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:51:38 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:39 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:50 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:51:50 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:51 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:52 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:53 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:53 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:56 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:51:56 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:57 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:58 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:51:58 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:51:59 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:00 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:52:00 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:01 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:02 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:03 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:52:03 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:04 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:05 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:52:05 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:06 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:07 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:52:07 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:08 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:09 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:52:09 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:52:10 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:53:34 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:53:36 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:53:37 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:53:37 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:53:38 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:53:39 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:53:40 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:53:41 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:53:41 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:53:42 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:53:43 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:53:43 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:53:44 [INFO ]init.go:30: /api/v1/shopping_cart/add
2022/01/16 16:53:45 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:54:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:54:45 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:55:02 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:55:03 [INFO ]init.go:30: /api/v1/game_card/list
2022/01/16 16:55:13 [INFO ]init.go:30: /api/v1/store/list
2022/01/16 16:55:13 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:55:14 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:55:15 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:55:15 [INFO ]init.go:30: /api/v1/shopping_cart/list
2022/01/16 16:55:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:55:28 [INFO ]init.go:30: /api/v1/user/data
2022/01/16 16:55:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2022/01/16 16:55:28 [INFO ]init.go:30: /api/v1/game_card/list

View File

@ -79,6 +79,8 @@ func ConfigAppRouter(r gin.IRouter) {
user.POST("refund_deposit", controller.RefundDeposit) // 押金
user.POST("refund_deposit_record", controller.UserDepositRefundRecordList) // 押金记录
user.POST("member_config", controller.MemberConfigList) // 开通会员配置
user.POST("common_problem/list", controller.CommonProblemList) // 常见问题列表
//user.POST("service/wechat_id", controller.GetCustomerServiceWechatId) // 获取客服微信号
user.POST("invite_applet_code", controller.UserInviteAppletQRCode) // 小程序分享二维码