This commit is contained in:
li 2021-12-25 16:38:30 +08:00
parent 8a9a81ada0
commit 8575db059a
30 changed files with 24097 additions and 584 deletions

View File

@ -60,37 +60,52 @@ func AuthLogin(c *gin.Context) {
// RespJson(c, status.InternalServerError, nil)
// return
//}
fmt.Println("InviteUid:", req.InviteUid)
now := time.Now()
// 不存在则创建 新用户
//var invite *model.UserInvite
if req.InviteUid != 0 {
if req.InviteUid != 0 && req.InviteUid != user.Uid && user.StoreId == 0 {
inviteUser := model.GetUserByUid(req.InviteUid)
user.StoreId = inviteUser.StoreId
user.UserType = model.UserTypeConsumer
if inviteUser.UserType == 2 {
//user.UserType = model.UserTypeConsumer
num, err := model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId).
UpdateNum()
if err != nil {
logger.Error(err)
}
if num == 0 {
logger.Error("update store id err")
}
invite := &model.UserInvite{
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberType: model.MemberTypeConsumer,
ToUid: user.Uid,
MemberStatus: 1,
}
invite := &model.UserInvite{
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberOpenTime: time.Time{},
MemberType: model.MemberTypeConsumer,
MemberStatus: 1,
ToUid: user.Uid,
}
count, err := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).Count()
if err != nil {
logger.Error(err)
RespJson(c, status.InternalServerError, nil)
return
}
if count == 0 {
if err := invite.Create(model.DB); err != nil {
count, err := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).Count()
if err != nil {
logger.Error(err)
RespJson(c, status.InternalServerError, nil)
return
}
if count == 0 {
if err := invite.Create(model.DB); err != nil {
logger.Error(err)
RespJson(c, status.InternalServerError, nil)
return
}
}
}
}
if sqlErr == model.RecordNotFound {
user = model.User{
@ -104,26 +119,27 @@ func AuthLogin(c *gin.Context) {
var eg errgroup.Group
if req.InviteUid != 0 {
//inviteUser := model.GetUserByUid(req.InviteUid)
//user.StoreId = inviteUser.StoreId
//user.UserType = model.UserTypeConsumer
//
//invite := &model.UserInvite{
// FromUid: req.InviteUid,
// UserType: inviteUser.UserType,
// StoreId: inviteUser.StoreId,
// MemberType: model.MemberTypeConsumer,
// ToUid: user.Uid,
// MemberStatus: 1,
//}
//eg.Go(func() error {
// if err := invite.Create(model.DB); err != nil {
// logger.Error(err)
// RespJson(c, status.InternalServerError, nil)
// return err
// }
// return nil
//})
inviteUser := model.GetUserByUid(req.InviteUid)
user.StoreId = inviteUser.StoreId
user.UserType = model.UserTypeConsumer
invite := &model.UserInvite{
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberType: model.MemberTypeConsumer,
ToUid: user.Uid,
MemberStatus: 1,
}
eg.Go(func() error {
if err := invite.Create(model.DB); err != nil {
logger.Error(err)
RespJson(c, status.InternalServerError, nil)
return err
}
return nil
})
}
fmt.Println("新用户:", user.WxOpenID)

50
controller/activity.go Normal file
View File

@ -0,0 +1,50 @@
package controller
import (
"github.com/codinl/go-logger"
"github.com/gin-gonic/gin"
"mh-server/lib/auth"
"mh-server/lib/status"
"mh-server/model"
)
func UserRedeemCodeList(c *gin.Context) {
uc := auth.GetCurrentUser(c)
if uc == nil {
RespJson(c, status.Unauthorized, nil)
return
}
codeList, err := model.UserRedeemCodeList(uc.Uid)
if err != nil {
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, codeList)
}
func UserConvertRedeemCode(c *gin.Context) {
req := &struct {
SerialCode string `json:"serial_code"`
}{}
if c.ShouldBindJSON(req) != nil {
logger.Errorf("para err")
RespJson(c, status.BadRequest, nil)
return
}
uc := auth.GetCurrentUser(c)
if uc == nil {
RespJson(c, status.Unauthorized, nil)
return
}
err := model.UserRedeemCodeConvert(uc.Uid, req.SerialCode)
if err != nil {
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, nil)
}

View File

@ -104,7 +104,7 @@ func GameCardSearch(c *gin.Context) {
return
}
cardList, totalPage, err := model.GetGameCardSearch(req.Name, req.Page, req.PageSize,req.StoreId)
cardList, totalPage, err := model.GetGameCardSearch(req.Name, req.Page, req.PageSize, req.StoreId)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
@ -250,35 +250,14 @@ func PushWXPayNotice(c *gin.Context) {
}
if notify.Attach == wxpay.WxPayRentCard {
logger.Info("租借游戏卡 支付成功:")
//orderSn, err := strconv.Atoi(notify.OutTradeNo)
//if err != nil {
// logger.Error("err:", err)
//} else {
// //err = model.NewOrderQuerySet(model.DB).IDEq(uint32(orderId)).GetUpdater().
// // SetPayStatus(model.PayStatusPaid).Update()
// //if err != nil {
// // logger.Error("err:", err)
// //}
// err = model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).GetUpdater().
// SetPayStatus(model.PayStatusPaid).Update()
// if err != nil {
// logger.Error("err:", err)
// }
//}
err = model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).GetUpdater().
SetPayStatus(model.PayStatusPaid).SetPayTime(time.Now()).Update()
if err != nil {
logger.Error("err:", err)
}
//if err := model.NewUserPrizeOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).GetUpdater().
// SetOrderStatus(model.PRIZE_ORDER_STATUS_PROGRESS).Update(); err != nil {
// logger.Error(err)
//}
} else if notify.Attach == wxpay.WxPayMember {
logger.Info("开通会员 支付成功:")
@ -300,21 +279,32 @@ func PushWXPayNotice(c *gin.Context) {
if err != nil {
logger.Error("err:", err)
} else {
expireTime := user.MemberExpire.AddDate(1, 0, 0)
if user.MemberLevel == 1 {
expireTime = time.Now().AddDate(1, 0, 0)
//expireTime := user.MemberExpire.AddDate(1, 0, 0)
//if user.MemberLevel == 1 {
// expireTime = time.Now().AddDate(1, 0, 0)
//}
expireTime := time.Now().AddDate(1, 0, 0)
if user.MemberExpire.After(time.Now()) {
expireTime = user.MemberExpire.AddDate(1, 0, 0)
}
err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: 2, MemberExpire: expireTime})
configInfo, err := model.PayConfigInfo()
if err != nil {
logger.Error("err:", err)
return
}
err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: 2, MemberExpire: expireTime, Deposit: configInfo.DepositFee})
if err != nil {
logger.Error("err:", err)
}
count, err := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).Count()
if err != nil {
var invite model.UserInvite
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).One(&invite)
if err != nil && err != model.RecordNotFound {
logger.Error("err:", err)
} else {
if count == 0 {
if err == model.RecordNotFound {
userInvite := &model.UserInvite{
FromUid: 0,
UserType: 0,
@ -329,14 +319,27 @@ func PushWXPayNotice(c *gin.Context) {
logger.Error("err:", err)
}
} else {
num, err := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater().
SetMemberOpenTime(time.Now()).SetMemberType(2).SetMemberStatus(2).UpdateNum()
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
if user.MemberLevel != 2 {
qs = qs.SetMemberOpenTime(time.Now())
}
num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum()
if err != nil {
logger.Error("err:", err)
}
if num == 0 {
logger.Error("更新错误")
}
if invite.FromUid != 0 {
inviteUser := model.GetUserByUid(invite.FromUid)
if inviteUser.UserType != 2 && user.MemberLevel != 2 {
err := model.CodeSendToUser(invite.FromUid, model.CodeTypeMemberCard30)
if err != nil {
logger.Error("err:", err)
}
}
}
}
}
@ -345,6 +348,26 @@ func PushWXPayNotice(c *gin.Context) {
fmt.Println("notify.TotalFee:", notify.TotalFee)
fmt.Println("notify.OutTradeNo:", notify.OutTradeNo)
} else if notify.Attach == wxpay.WxPayDeposit {
record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo}
err := record.GetByOpenNo()
if err != nil {
logger.Error("err:", err)
}
configInfo, err := model.PayConfigInfo()
if err != nil {
logger.Error("err:", err)
return
}
num, err := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetDeposit(configInfo.DepositFee).UpdateNum()
if err != nil {
logger.Error("update deposit err:", err)
}
if num == 0 {
logger.Error("update deposit num is 0")
}
}
logger.Debug("微信推动支付通知")

View File

@ -217,6 +217,11 @@ func OrderCreate(c *gin.Context) {
RespJson(c, status.NotMember, nil)
return
}
if user.Deposit == 0 {
logger.Error(errors.New("user deposit 0"))
RespJson(c, status.OrderUnpaidDeposit, nil)
return
}
model.UnPayOrderSetCancel(user.Uid)
@ -374,7 +379,7 @@ func OrderCreate(c *gin.Context) {
// return
//}
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, OrderId: order.ID}.Insert()
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, OrderId: order.ID, OrderType: 1}.Insert()
if err != nil {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
@ -389,6 +394,92 @@ func OrderCreate(c *gin.Context) {
RespOK(c, ret)
}
//func ExpressFeeRefund(c *gin.Context) {
// req := struct {
// OrderId uint32 `json:"order_id"`
// }{}
// if c.ShouldBindJSON(&req) != nil {
// logger.Error("ShouldBindJSON err")
// RespJson(c, status.BadRequest, nil)
// return
// }
// order := model.Order{}
// order.ID = req.OrderId
// order.Info()
// outTradeNo, err := model.GetWxPayExpressFeeRefundRecord(req.OrderId)
// if err != nil {
// logger.Error("err:", err)
// return
// }
//
// orderSn := model.GetOrderSn()
// err = model.UserOpenMemberRecord{Uid: uint32(order.Uid), OpenNo: orderSn, OrderId: order.ID, OrderType: 2}.Insert()
// if err != nil {
// logger.Error(errors.New("WebPay err"))
// RespJson(c, status.InternalServerError, nil)
// return
// }
//
// orderRefund := wxpay.OrderRefund{
// OutTradeNo: outTradeNo,
// OutRefundNo: orderSn,
// NotifyUrl: "",
// Amount: wxpay.OrderRefundAmount{
// Refund: order.Postage,
// Total: order.Postage,
// Currency: "CNY",
// },
// }
// err = wxpay.WxPayOrderRefund(orderRefund)
// if err != nil {
// logger.Error("err:", err)
// }
//
//}
//func ExpressFeeRefund(c *gin.Context) {
// req := struct {
// OrderId uint32 `json:"order_id"`
// }{}
// if c.ShouldBindJSON(&req) != nil {
// logger.Error("ShouldBindJSON err")
// RespJson(c, status.BadRequest, nil)
// return
// }
// order := model.Order{}
// order.ID = req.OrderId
// order.Info()
// outTradeNo, err := model.GetWxPayExpressFeeRefundRecord(req.OrderId)
// if err != nil {
// logger.Error("err:", err)
// return
// }
//
// orderSn := model.GetOrderSn()
// err = model.UserOpenMemberRecord{Uid: uint32(order.Uid), OpenNo: orderSn, OrderId: order.ID, OrderType: 2}.Insert()
// if err != nil {
// logger.Error(errors.New("WebPay err"))
// RespJson(c, status.InternalServerError, nil)
// return
// }
//
// orderRefund := wxpay.OrderRefund{
// OutTradeNo: outTradeNo,
// OutRefundNo: orderSn,
// NotifyUrl: "",
// Amount: wxpay.OrderRefundAmount{
// Refund: order.Postage,
// Total: order.Postage,
// Currency: "CNY",
// },
// }
// err = wxpay.WxPayOrderRefund(orderRefund)
// if err != nil {
// logger.Error("err:", err)
// }
//
//}
const (
PayStatusUnPay = 1 // 未支付
PayStatusPaid = 2 // 已支付
@ -425,7 +516,7 @@ func OrderPay(c *gin.Context) {
return
}
if order.PayStatus != PayStatusUnPay || order.CardStatus != OrderCardStatusUnPick || order.CreatedAt.Add(30*time.Minute).Before(time.Now()) {
//if order.PayStatus != PayStatusUnPay || order.CardStatus != OrderCardStatusUnPick || order.CreatedAt.Add(3*time.Minute).Before(time.Now()) {
//if order.PayStatus != PayStatusUnPay || order.CardStatus != OrderCardStatusUnPick || order.CreatedAt.Add(3*time.Minute).Before(time.Now()) {
logger.Error("Order err:", err)
RespJson(c, status.InternalServerError, nil)
return
@ -653,7 +744,8 @@ func OrderCancel(c *gin.Context) {
// RespJson(c, status.Unauthorized, nil)
// return
//}
order := model.Order{}
fmt.Println("OrderId:", req.OrderId)
order := &model.Order{}
order.ID = req.OrderId
err := order.Cancel()
if err != nil {
@ -662,6 +754,44 @@ func OrderCancel(c *gin.Context) {
return
}
fmt.Println("order:", order)
if order.DeliveryType == 2 {
outTradeNo, err := model.GetWxPayExpressFeeRefundRecord(order.ID)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
orderSn := model.GetOrderSn()
err = model.UserOpenMemberRecord{Uid: uint32(order.Uid), OpenNo: orderSn, OrderId: order.ID, OrderType: 2}.Insert()
if err != nil {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
return
}
orderRefund := wxpay.OrderRefund{
OutTradeNo: outTradeNo,
OutRefundNo: orderSn,
NotifyUrl: "",
Amount: wxpay.OrderRefundAmount{
Refund: order.PayPrice,
Total: order.PayPrice,
Currency: "CNY",
},
}
//bytes, _ := json.Marshal(orderRefund)
//fmt.Println("订单取消:", string(bytes))
//err = wxpay.WxPayOrderRefund(orderRefund)
err = wxpay.TransactionOrderRefund(orderRefund)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
}
RespOK(c, nil)
return
}

View File

@ -2,13 +2,19 @@ package controller
import (
"errors"
"fmt"
"github.com/codinl/go-logger"
"github.com/gin-gonic/gin"
"mh-server/lib/auth"
"mh-server/lib/status"
"mh-server/lib/wxpay"
"mh-server/model"
"qiniupkg.com/x/log.v7"
"time"
)
const (
MemberFee = 299 * 100 // 会员费
DepositFee = 300 * 100 // 押金费
)
func HistoryBrowsingList(c *gin.Context) {
@ -64,7 +70,7 @@ func HistoryBrowsingDel(c *gin.Context) {
if len(req.GameCardIds) > 0 {
err := model.NewHistoryBrowsingQuerySet(model.DB.Unscoped()).UidEq(uint64(uc.Uid)).GameCardIdIn(req.GameCardIds...).Delete()
if err != nil {
log.Error("err:", err)
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
@ -130,7 +136,7 @@ func CollectionAdd(c *gin.Context) {
}
err := collection.Create(model.DB)
if err != nil {
log.Error("err:", err)
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
@ -155,7 +161,7 @@ func CollectionCancel(c *gin.Context) {
if len(req.GameCardIds) > 0 {
err := model.NewCollectionQuerySet(model.DB.Unscoped()).UidEq(uint64(uc.Uid)).GameCardIdIn(req.GameCardIds...).Delete()
if err != nil {
log.Error("err:", err)
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
@ -198,14 +204,9 @@ func UserInfoUpdate(c *gin.Context) {
return
}
const (
MemberFee = 300 * 100 // 会员费
DepositFee = 299 * 100 // 押金费
)
func OpenMember(c *gin.Context) {
//req := struct {
// GameCardId uint64 `json:"game_card_id" binding:"required"`
// PayType uint32 `json:"pay_type"` // 1-开通会员 2-
//}{}
//if c.ShouldBindJSON(&req) != nil {
// RespJson(c, status.BadRequest, nil)
@ -224,14 +225,35 @@ func OpenMember(c *gin.Context) {
//uid := "623892011"
//user := model.GetUserByUid(62389201)
totalFee := uint32(MemberFee + DepositFee)
//totalFee = uint32(3) // TODO 测试
if user.MemberLevel > 1 {
totalFee = DepositFee
//totalFee = uint32(1) // TODO 测试
//totalFee = uint32(3)
//if user.MemberLevel > 1 {
// totalFee = DepositFee
// //totalFee = uint32(1)
//}
configInfo, err := model.PayConfigInfo()
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 {
// totalFee = MemberFee
// // //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
}
if totalFee == 0 {
logger.Error(errors.New("totalFee is 0"))
RespJson(c, status.InternalServerError, nil)
return
}
//webPay, err := wxpay.WebPay(uid, totalFee, user.WxOpenID, "N", wxpay.WxPayMember)
//if err != nil {
// logger.Error(errors.New("WebPay err"))
@ -240,7 +262,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}.Insert()
if err != nil {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
@ -257,6 +279,46 @@ func OpenMember(c *gin.Context) {
RespOK(c, webPay)
}
func PayDeposit(c *gin.Context) {
uc := auth.GetCurrentUser(c)
if uc == nil {
RespJson(c, status.Unauthorized, nil)
return
}
user := model.GetUserByUid(uc.Uid)
orderSn := model.GetOrderSn()
err := model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn}.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:", err)
return
}
totalFee := configInfo.DepositFee
if totalFee == 0 || user.Deposit == totalFee {
logger.Error(errors.New("totalFee is 0"))
RespJson(c, status.InternalServerError, nil)
return
}
//totalFee = 1 // TODO 测试
webPay, err := wxpay.WebPay(orderSn, totalFee, user.WxOpenID, "N", wxpay.WxPayDeposit)
if err != nil {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, webPay)
}
func CommonProblemList(c *gin.Context) {
common := &model.CommonProblem{}
list, err := common.List()
@ -268,3 +330,69 @@ func CommonProblemList(c *gin.Context) {
RespOK(c, list)
return
}
func RefundDeposit(c *gin.Context) {
uc := auth.GetCurrentUser(c)
if uc == nil {
RespJson(c, status.Unauthorized, nil)
return
}
user := model.GetUserByUid(uc.Uid)
if user.Deposit == 0 {
logger.Error("deposit is 0")
RespJson(c, status.InternalServerError, nil)
return
}
unreturnedOrders, err := model.IsUserHaveUnreturnedOrder(user.Uid)
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
if unreturnedOrders {
logger.Error("unreturnedOrders")
RespJson(c, status.HaveUnreturnedOrders, nil)
return
}
count, err := model.NewDepositRefundRecordQuerySet(model.DB).UidEq(uc.Uid).StatusNotIn(model.DepositRefundStatusRefunded,model.DepositRefundStatusRefused).Count()
if err != nil || count > 0 {
logger.Error("count is not 0")
RespJson(c, status.RefundDepositSubmitted, nil)
return
}
record := &model.DepositRefundRecord{
Uid: uc.Uid,
Status: model.DepositRefundStatusUnconfirmed,
Amount: user.Deposit,
Operator: 0,
ConfirmTime: time.Time{},
}
err = model.DB.Create(record).Error
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, nil)
}
func UserDepositRefundRecordList(c *gin.Context) {
uc := auth.GetCurrentUser(c)
if uc == nil {
RespJson(c, status.Unauthorized, nil)
return
}
resp, err := model.GetDepositRefundRecordList(uc.Uid)
if err != nil {
logger.Errorf("err:", err)
RespJson(c, status.InternalServerError, nil)
return
}
RespOK(c, resp)
}

4
go.sum
View File

@ -16,6 +16,7 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw=
github.com/agiledragon/gomonkey v2.0.2+incompatible/go.mod h1:2NGfXu1a80LLr2cmWXGBDaHEjb1idR6+FVlX5T3D9hw=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@ -246,8 +247,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
@ -408,6 +409,7 @@ 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=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/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=

View File

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

View File

@ -13,11 +13,13 @@ import (
"github.com/wechatpay-apiv3/wechatpay-go/core/option"
"github.com/wechatpay-apiv3/wechatpay-go/services/certificates"
"github.com/wechatpay-apiv3/wechatpay-go/services/payments/jsapi"
"github.com/wechatpay-apiv3/wechatpay-go/services/refunddomestic"
wechatpayutils "github.com/wechatpay-apiv3/wechatpay-go/utils"
"io/ioutil"
"log"
"mh-server/config"
"mh-server/lib/utils"
"mh-server/model"
"net/http"
"sort"
"strconv"
@ -34,12 +36,12 @@ const (
WxPayMember = "member_pay" // 会员
WxPayRentCard = "rent_card_pay" // 租卡
WxPayDeposit = "deposit_pay" // 押金
//NotifyUrl = "https://switch.deovo.com:8001/api/v1/wxpay/notice" // TODO 数据库配置 生产
NotifyUrl = "https://dev.switch.deovo.com:8004/api/v1/wxpay/notice" // TODO 测试
//NotifyUrl = "https://dev.switch.deovo.com:8004/api/v1/wxpay/notice" // TODO 测试
wxPayOrderRefundsUrl = "https://api.mch.weixin.qq.com/v3/refund/domestic/refunds"
)
//web 微信支付
@ -48,6 +50,16 @@ func WebPay(orderId string, totalFee uint32, openId, profitSharing, attach strin
strTime := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
nonce := utils.GenRandStr(NonceStringLength)
configInfo, err := model.PayConfigInfo()
if err != nil {
logger.Error(err)
return nil, err
}
if configInfo.NotifyUrl == "" {
logger.Error("NotifyUrl is null")
return nil, errors.New("NotifyUrl is null")
}
logger.Info("MchId:", config.AppConfig.WxMchID)
logger.Info("AppId:", config.AppConfig.WxAppId)
logger.Info("MchSecret:", config.AppConfig.WxMchSecret)
@ -65,7 +77,7 @@ func WebPay(orderId string, totalFee uint32, openId, profitSharing, attach strin
SpbillCreateIp: clientIp,
//NotifyUrl: "https://" + config.AppConfig.Domain + config.AppConfig.WxPayNotifyUrl,
//NotifyUrl: "https://" + domain + wxPayNotifyUrl,
NotifyUrl: NotifyUrl,
NotifyUrl: configInfo.NotifyUrl,
TradeType: "JSAPI",
MchId: config.AppConfig.WxMchID,
AppId: config.AppConfig.WxAppId,
@ -501,7 +513,7 @@ func WxPayTransactionOrderClose(outTradeNo, mchid string) error {
Mchid: &mchid,
})
if err != nil {
fmt.Println("err:",err)
fmt.Println("err:", err)
logger.Error(err)
return err
}
@ -529,3 +541,103 @@ func PayNotifyHandle(notify WechatNotifyInfo) (string, error) {
logger.Error("微信推送支付通知 sign : payKey", sign, config.AppConfig.WxMchSecret)
return sign, err
}
func TransactionOrderRefund(orderRefund OrderRefund) error {
var (
mchID string = "1609877389" // 商户号
mchCertificateSerialNumber string = "7540301D8FD52CCF7D6267DCF7CD2BC0AB467EFF" // 商户证书序列号
mchAPIv3Key string = "DeovoMingHuiRengTianTang45675123" // 商户APIv3密钥
)
// 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
mchPrivateKey, err := wechatpayutils.LoadPrivateKeyWithPath("./configs/merchant/apiclient_key.pem")
if err != nil {
log.Print("load merchant private key error")
}
ctx := context.Background()
// 使用商户私钥等初始化 client并使它具有自动定时获取微信支付平台证书的能力
opts := []core.ClientOption{
option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
}
client, err := core.NewClient(ctx, opts...)
if err != nil {
log.Printf("new wechat pay client err:%s", err)
}
svc := refunddomestic.RefundsApiService{Client: client}
resp, result, err := svc.Create(ctx,
refunddomestic.CreateRequest{
OutTradeNo: core.String(orderRefund.OutTradeNo),
OutRefundNo: core.String(orderRefund.OutRefundNo),
Reason: core.String("取消订单"),
NotifyUrl: core.String("https://weixin.qq.com/api/v1/wxpay/notice"),
Amount: &refunddomestic.AmountReq{
Currency: core.String("CNY"),
Refund: core.Int64(int64(orderRefund.Amount.Refund)),
Total: core.Int64(int64(orderRefund.Amount.Total)),
},
},
)
if err != nil {
// 处理错误
log.Printf("call Create err:%s", err)
} else {
// 处理返回结果
log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
}
return nil
}
func PayOrderRefund(orderRefund OrderRefund) error {
para, err := json.Marshal(&orderRefund)
if err != nil {
logger.Error("err:", err)
return err
}
client := http.Client{}
req, err := http.NewRequest("POST", wxPayOrderRefundsUrl, bytes.NewBuffer(para))
if err != nil {
logger.Error(err)
return err
}
req.Header.Set("Content-Type", "application/json; charset=utf-8")
req.Header.Set("Accept", "application/json")
resp, err := client.Do(req)
if err != nil {
logger.Error(err)
return err
}
//fmt.Println("err:", err)
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
logger.Error(err)
return err
}
//fmt.Println("err:", err)
fmt.Println("body:", string(body))
defer resp.Body.Close()
fmt.Println("")
return nil
}
type OrderRefund struct {
OutTradeNo string `json:"out_trade_no"`
OutRefundNo string `json:"out_refund_no"`
NotifyUrl string `json:"notify_url"`
Amount OrderRefundAmount `json:"amount"`
}
type OrderRefundAmount struct {
Refund uint32 `json:"refund"`
Total uint32 `json:"total"`
Currency string `json:"currency"`
}

View File

@ -159,6 +159,62 @@ func (qs GameCardGoodsQuerySet) DeletedAtNe(deletedAt time.Time) GameCardGoodsQu
return qs.w(qs.db.Where("deleted_at != ?", deletedAt))
}
// GameCardIdEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdEq(gameCardId uint64) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("game_card_id = ?", gameCardId))
}
// GameCardIdGt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdGt(gameCardId uint64) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("game_card_id > ?", gameCardId))
}
// GameCardIdGte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdGte(gameCardId uint64) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("game_card_id >= ?", gameCardId))
}
// GameCardIdIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdIn(gameCardId ...uint64) GameCardGoodsQuerySet {
if len(gameCardId) == 0 {
qs.db.AddError(errors.New("must at least pass one gameCardId in GameCardIdIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("game_card_id IN (?)", gameCardId))
}
// GameCardIdLt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdLt(gameCardId uint64) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("game_card_id < ?", gameCardId))
}
// GameCardIdLte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdLte(gameCardId uint64) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("game_card_id <= ?", gameCardId))
}
// GameCardIdNe is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdNe(gameCardId uint64) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("game_card_id != ?", gameCardId))
}
// GameCardIdNotIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GameCardIdNotIn(gameCardId ...uint64) GameCardGoodsQuerySet {
if len(gameCardId) == 0 {
qs.db.AddError(errors.New("must at least pass one gameCardId in GameCardIdNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("game_card_id NOT IN (?)", gameCardId))
}
// GetDB is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) GetDB() *gorm.DB {
@ -257,6 +313,12 @@ func (qs GameCardGoodsQuerySet) OrderAscByDeletedAt() GameCardGoodsQuerySet {
return qs.w(qs.db.Order("deleted_at ASC"))
}
// OrderAscByGameCardId is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) OrderAscByGameCardId() GameCardGoodsQuerySet {
return qs.w(qs.db.Order("game_card_id ASC"))
}
// OrderAscByID is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) OrderAscByID() GameCardGoodsQuerySet {
@ -293,6 +355,12 @@ func (qs GameCardGoodsQuerySet) OrderDescByDeletedAt() GameCardGoodsQuerySet {
return qs.w(qs.db.Order("deleted_at DESC"))
}
// OrderDescByGameCardId is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) OrderDescByGameCardId() GameCardGoodsQuerySet {
return qs.w(qs.db.Order("game_card_id DESC"))
}
// OrderDescByID is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) OrderDescByID() GameCardGoodsQuerySet {
@ -317,6 +385,38 @@ func (qs GameCardGoodsQuerySet) OrderDescByUpdatedAt() GameCardGoodsQuerySet {
return qs.w(qs.db.Order("updated_at DESC"))
}
// ProviderEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) ProviderEq(provider string) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("provider = ?", provider))
}
// ProviderIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) ProviderIn(provider ...string) GameCardGoodsQuerySet {
if len(provider) == 0 {
qs.db.AddError(errors.New("must at least pass one provider in ProviderIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("provider IN (?)", provider))
}
// ProviderNe is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) ProviderNe(provider string) GameCardGoodsQuerySet {
return qs.w(qs.db.Where("provider != ?", provider))
}
// ProviderNotIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) ProviderNotIn(provider ...string) GameCardGoodsQuerySet {
if len(provider) == 0 {
qs.db.AddError(errors.New("must at least pass one provider in ProviderNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("provider NOT IN (?)", provider))
}
// SerialNumberEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsQuerySet) SerialNumberEq(serialNumber string) GameCardGoodsQuerySet {
@ -511,6 +611,13 @@ func (u GameCardGoodsUpdater) SetDeletedAt(deletedAt *time.Time) GameCardGoodsUp
return u
}
// SetGameCardId is an autogenerated method
// nolint: dupl
func (u GameCardGoodsUpdater) SetGameCardId(gameCardId uint64) GameCardGoodsUpdater {
u.fields[string(GameCardGoodsDBSchema.GameCardId)] = gameCardId
return u
}
// SetID is an autogenerated method
// nolint: dupl
func (u GameCardGoodsUpdater) SetID(ID uint32) GameCardGoodsUpdater {
@ -518,6 +625,13 @@ func (u GameCardGoodsUpdater) SetID(ID uint32) GameCardGoodsUpdater {
return u
}
// SetProvider is an autogenerated method
// nolint: dupl
func (u GameCardGoodsUpdater) SetProvider(provider string) GameCardGoodsUpdater {
u.fields[string(GameCardGoodsDBSchema.Provider)] = provider
return u
}
// SetSerialNumber is an autogenerated method
// nolint: dupl
func (u GameCardGoodsUpdater) SetSerialNumber(serialNumber string) GameCardGoodsUpdater {
@ -578,18 +692,22 @@ var GameCardGoodsDBSchema = struct {
CreatedAt GameCardGoodsDBSchemaField
UpdatedAt GameCardGoodsDBSchemaField
DeletedAt GameCardGoodsDBSchemaField
GameCardId GameCardGoodsDBSchemaField
SerialNumber GameCardGoodsDBSchemaField
Status GameCardGoodsDBSchemaField
StoreId GameCardGoodsDBSchemaField
Provider GameCardGoodsDBSchemaField
}{
ID: GameCardGoodsDBSchemaField("id"),
CreatedAt: GameCardGoodsDBSchemaField("created_at"),
UpdatedAt: GameCardGoodsDBSchemaField("updated_at"),
DeletedAt: GameCardGoodsDBSchemaField("deleted_at"),
GameCardId: GameCardGoodsDBSchemaField("game_card_id"),
SerialNumber: GameCardGoodsDBSchemaField("serial_number"),
Status: GameCardGoodsDBSchemaField("status"),
StoreId: GameCardGoodsDBSchemaField("store_id"),
Provider: GameCardGoodsDBSchemaField("provider"),
}
// Update updates GameCardGoods fields by primary key
@ -600,9 +718,11 @@ func (o *GameCardGoods) Update(db *gorm.DB, fields ...GameCardGoodsDBSchemaField
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"game_card_id": o.GameCardId,
"serial_number": o.SerialNumber,
"status": o.Status,
"store_id": o.StoreId,
"provider": o.Provider,
}
u := map[string]interface{}{}
for _, f := range fields {
@ -952,6 +1072,12 @@ func (qs GameCardGoodsStockQuerySet) OrderAscByID() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("id ASC"))
}
// OrderAscByOrderCount is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderAscByOrderCount() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("order_count ASC"))
}
// OrderAscByRentStock is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderAscByRentStock() GameCardGoodsStockQuerySet {
@ -970,12 +1096,80 @@ func (qs GameCardGoodsStockQuerySet) OrderAscByStoreStock() GameCardGoodsStockQu
return qs.w(qs.db.Order("store_stock ASC"))
}
// OrderAscByTotalStock is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderAscByTotalStock() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("total_stock ASC"))
}
// OrderAscByUpdatedAt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderAscByUpdatedAt() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("updated_at ASC"))
}
// OrderAscByUserHoldStock is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderAscByUserHoldStock() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("user_hold_stock ASC"))
}
// OrderCountEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountEq(orderCount uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("order_count = ?", orderCount))
}
// OrderCountGt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountGt(orderCount uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("order_count > ?", orderCount))
}
// OrderCountGte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountGte(orderCount uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("order_count >= ?", orderCount))
}
// OrderCountIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountIn(orderCount ...uint32) GameCardGoodsStockQuerySet {
if len(orderCount) == 0 {
qs.db.AddError(errors.New("must at least pass one orderCount in OrderCountIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("order_count IN (?)", orderCount))
}
// OrderCountLt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountLt(orderCount uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("order_count < ?", orderCount))
}
// OrderCountLte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountLte(orderCount uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("order_count <= ?", orderCount))
}
// OrderCountNe is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountNe(orderCount uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("order_count != ?", orderCount))
}
// OrderCountNotIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderCountNotIn(orderCount ...uint32) GameCardGoodsStockQuerySet {
if len(orderCount) == 0 {
qs.db.AddError(errors.New("must at least pass one orderCount in OrderCountNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("order_count NOT IN (?)", orderCount))
}
// OrderDescByCreatedAt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderDescByCreatedAt() GameCardGoodsStockQuerySet {
@ -1000,6 +1194,12 @@ func (qs GameCardGoodsStockQuerySet) OrderDescByID() GameCardGoodsStockQuerySet
return qs.w(qs.db.Order("id DESC"))
}
// OrderDescByOrderCount is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderDescByOrderCount() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("order_count DESC"))
}
// OrderDescByRentStock is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderDescByRentStock() GameCardGoodsStockQuerySet {
@ -1018,12 +1218,24 @@ func (qs GameCardGoodsStockQuerySet) OrderDescByStoreStock() GameCardGoodsStockQ
return qs.w(qs.db.Order("store_stock DESC"))
}
// OrderDescByTotalStock is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderDescByTotalStock() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("total_stock DESC"))
}
// OrderDescByUpdatedAt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderDescByUpdatedAt() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("updated_at DESC"))
}
// OrderDescByUserHoldStock is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) OrderDescByUserHoldStock() GameCardGoodsStockQuerySet {
return qs.w(qs.db.Order("user_hold_stock DESC"))
}
// RentStockEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) RentStockEq(rentStock uint32) GameCardGoodsStockQuerySet {
@ -1192,6 +1404,62 @@ func (qs GameCardGoodsStockQuerySet) StoreStockNotIn(storeStock ...uint32) GameC
return qs.w(qs.db.Where("store_stock NOT IN (?)", storeStock))
}
// TotalStockEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockEq(totalStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("total_stock = ?", totalStock))
}
// TotalStockGt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockGt(totalStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("total_stock > ?", totalStock))
}
// TotalStockGte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockGte(totalStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("total_stock >= ?", totalStock))
}
// TotalStockIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockIn(totalStock ...uint32) GameCardGoodsStockQuerySet {
if len(totalStock) == 0 {
qs.db.AddError(errors.New("must at least pass one totalStock in TotalStockIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("total_stock IN (?)", totalStock))
}
// TotalStockLt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockLt(totalStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("total_stock < ?", totalStock))
}
// TotalStockLte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockLte(totalStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("total_stock <= ?", totalStock))
}
// TotalStockNe is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockNe(totalStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("total_stock != ?", totalStock))
}
// TotalStockNotIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) TotalStockNotIn(totalStock ...uint32) GameCardGoodsStockQuerySet {
if len(totalStock) == 0 {
qs.db.AddError(errors.New("must at least pass one totalStock in TotalStockNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("total_stock NOT IN (?)", totalStock))
}
// UpdatedAtEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UpdatedAtEq(updatedAt time.Time) GameCardGoodsStockQuerySet {
@ -1228,6 +1496,62 @@ func (qs GameCardGoodsStockQuerySet) UpdatedAtNe(updatedAt time.Time) GameCardGo
return qs.w(qs.db.Where("updated_at != ?", updatedAt))
}
// UserHoldStockEq is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockEq(userHoldStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("user_hold_stock = ?", userHoldStock))
}
// UserHoldStockGt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockGt(userHoldStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("user_hold_stock > ?", userHoldStock))
}
// UserHoldStockGte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockGte(userHoldStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("user_hold_stock >= ?", userHoldStock))
}
// UserHoldStockIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockIn(userHoldStock ...uint32) GameCardGoodsStockQuerySet {
if len(userHoldStock) == 0 {
qs.db.AddError(errors.New("must at least pass one userHoldStock in UserHoldStockIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("user_hold_stock IN (?)", userHoldStock))
}
// UserHoldStockLt is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockLt(userHoldStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("user_hold_stock < ?", userHoldStock))
}
// UserHoldStockLte is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockLte(userHoldStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("user_hold_stock <= ?", userHoldStock))
}
// UserHoldStockNe is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockNe(userHoldStock uint32) GameCardGoodsStockQuerySet {
return qs.w(qs.db.Where("user_hold_stock != ?", userHoldStock))
}
// UserHoldStockNotIn is an autogenerated method
// nolint: dupl
func (qs GameCardGoodsStockQuerySet) UserHoldStockNotIn(userHoldStock ...uint32) GameCardGoodsStockQuerySet {
if len(userHoldStock) == 0 {
qs.db.AddError(errors.New("must at least pass one userHoldStock in UserHoldStockNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("user_hold_stock NOT IN (?)", userHoldStock))
}
// SetCreatedAt is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) SetCreatedAt(createdAt time.Time) GameCardGoodsStockUpdater {
@ -1256,6 +1580,13 @@ func (u GameCardGoodsStockUpdater) SetID(ID uint32) GameCardGoodsStockUpdater {
return u
}
// SetOrderCount is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) SetOrderCount(orderCount uint32) GameCardGoodsStockUpdater {
u.fields[string(GameCardGoodsStockDBSchema.OrderCount)] = orderCount
return u
}
// SetRentStock is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) SetRentStock(rentStock uint32) GameCardGoodsStockUpdater {
@ -1277,6 +1608,13 @@ func (u GameCardGoodsStockUpdater) SetStoreStock(storeStock uint32) GameCardGood
return u
}
// SetTotalStock is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) SetTotalStock(totalStock uint32) GameCardGoodsStockUpdater {
u.fields[string(GameCardGoodsStockDBSchema.TotalStock)] = totalStock
return u
}
// SetUpdatedAt is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) SetUpdatedAt(updatedAt time.Time) GameCardGoodsStockUpdater {
@ -1284,6 +1622,13 @@ func (u GameCardGoodsStockUpdater) SetUpdatedAt(updatedAt time.Time) GameCardGoo
return u
}
// SetUserHoldStock is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) SetUserHoldStock(userHoldStock uint32) GameCardGoodsStockUpdater {
u.fields[string(GameCardGoodsStockDBSchema.UserHoldStock)] = userHoldStock
return u
}
// Update is an autogenerated method
// nolint: dupl
func (u GameCardGoodsStockUpdater) Update() error {
@ -1312,38 +1657,47 @@ func (f GameCardGoodsStockDBSchemaField) String() string {
// GameCardGoodsStockDBSchema stores db field names of GameCardGoodsStock
var GameCardGoodsStockDBSchema = struct {
ID GameCardGoodsStockDBSchemaField
CreatedAt GameCardGoodsStockDBSchemaField
UpdatedAt GameCardGoodsStockDBSchemaField
DeletedAt GameCardGoodsStockDBSchemaField
StoreId GameCardGoodsStockDBSchemaField
GameCardId GameCardGoodsStockDBSchemaField
StoreStock GameCardGoodsStockDBSchemaField
RentStock GameCardGoodsStockDBSchemaField
ID GameCardGoodsStockDBSchemaField
CreatedAt GameCardGoodsStockDBSchemaField
UpdatedAt GameCardGoodsStockDBSchemaField
DeletedAt GameCardGoodsStockDBSchemaField
StoreId GameCardGoodsStockDBSchemaField
GameCardId GameCardGoodsStockDBSchemaField
StoreStock GameCardGoodsStockDBSchemaField
RentStock GameCardGoodsStockDBSchemaField
UserHoldStock GameCardGoodsStockDBSchemaField
OrderCount GameCardGoodsStockDBSchemaField
TotalStock GameCardGoodsStockDBSchemaField
}{
ID: GameCardGoodsStockDBSchemaField("id"),
CreatedAt: GameCardGoodsStockDBSchemaField("created_at"),
UpdatedAt: GameCardGoodsStockDBSchemaField("updated_at"),
DeletedAt: GameCardGoodsStockDBSchemaField("deleted_at"),
StoreId: GameCardGoodsStockDBSchemaField("store_id"),
GameCardId: GameCardGoodsStockDBSchemaField("game_card_id"),
StoreStock: GameCardGoodsStockDBSchemaField("store_stock"),
RentStock: GameCardGoodsStockDBSchemaField("rent_stock"),
ID: GameCardGoodsStockDBSchemaField("id"),
CreatedAt: GameCardGoodsStockDBSchemaField("created_at"),
UpdatedAt: GameCardGoodsStockDBSchemaField("updated_at"),
DeletedAt: GameCardGoodsStockDBSchemaField("deleted_at"),
StoreId: GameCardGoodsStockDBSchemaField("store_id"),
GameCardId: GameCardGoodsStockDBSchemaField("game_card_id"),
StoreStock: GameCardGoodsStockDBSchemaField("store_stock"),
RentStock: GameCardGoodsStockDBSchemaField("rent_stock"),
UserHoldStock: GameCardGoodsStockDBSchemaField("user_hold_stock"),
OrderCount: GameCardGoodsStockDBSchemaField("order_count"),
TotalStock: GameCardGoodsStockDBSchemaField("total_stock"),
}
// Update updates GameCardGoodsStock fields by primary key
// nolint: dupl
func (o *GameCardGoodsStock) Update(db *gorm.DB, fields ...GameCardGoodsStockDBSchemaField) error {
dbNameToFieldName := map[string]interface{}{
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"store_id": o.StoreId,
"game_card_id": o.GameCardId,
"store_stock": o.StoreStock,
"rent_stock": o.RentStock,
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"store_id": o.StoreId,
"game_card_id": o.GameCardId,
"store_stock": o.StoreStock,
"rent_stock": o.RentStock,
"user_hold_stock": o.UserHoldStock,
"order_count": o.OrderCount,
"total_stock": o.TotalStock,
}
u := map[string]interface{}{}
for _, f := range fields {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -90,48 +90,48 @@ func initCreateTable() {
// 测试服务器
func InitDBTest() {
var err error
dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"mh_dev", "m5h4parZsXjbeiFh", "39.108.188.218", "3306", "mh_dev")
db, err := gorm.Open("mysql", dialect)
if err != nil {
logger.Infof("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
panic(err)
}
if db.DB().Ping() != nil {
fmt.Printf("Ping DB fail: %#v", db.Error)
panic(err)
}
db.SingularTable(true)
db.AutoMigrate(
&User{},
//&LotteryInviteTargetUser{},
&GameCard{},
&Collection{},
&Config{},
&HistoryBrowsing{},
&ShoppingCart{},
&UserAddress{},
&SearchHistory{},
&Order{},
&HotSearch{},
&HomeCarousel{},
&GameCardType{},
&Store{},
&GameType{},
&UserOpenMemberRecord{},
&CommonProblem{},
&ExpressCompany{},
&GameCardGoodsStock{},
&GameCardGoods{},
)
fmt.Println("DB init success")
DB = db
logger.Info("ok")
}
//func InitDBTest() {
// var err error
//
// dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
// "mh_dev", "m5h4parZsXjbeiFh", "39.108.188.218", "3306", "mh_dev")
//
// db, err := gorm.Open("mysql", dialect)
// if err != nil {
// logger.Infof("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
// panic(err)
// }
//
// if db.DB().Ping() != nil {
// fmt.Printf("Ping DB fail: %#v", db.Error)
// panic(err)
// }
// db.SingularTable(true)
//
// db.AutoMigrate(
// &User{},
// //&LotteryInviteTargetUser{},
// &GameCard{},
// &Collection{},
// &Config{},
// &HistoryBrowsing{},
// &ShoppingCart{},
// &UserAddress{},
// &SearchHistory{},
// &Order{},
// &HotSearch{},
// &HomeCarousel{},
// &GameCardType{},
// &Store{},
// &GameType{},
// &UserOpenMemberRecord{},
// &CommonProblem{},
// &ExpressCompany{},
// &GameCardGoodsStock{},
// &GameCardGoods{},
// )
//
// fmt.Println("DB init success")
// DB = db
// logger.Info("ok")
//}

View File

@ -1,145 +1,139 @@
package model
import (
"fmt"
"github.com/jinzhu/gorm"
"testing"
)
// 本地服务器
func TestInitDevDB(t *testing.T) {
var err error
//dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
// "step_db", "7XmjY2FSpeKcZFsG", "192.168.0.188", "3306",
// "step_db")
dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"qq", "admin123", "127.0.0.1", "3306",
"zouzou")
db, err := gorm.Open("mysql", dialect)
if err != nil {
t.Logf("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
panic(err)
}
if db.DB().Ping() != nil {
fmt.Printf("Ping DB fail: %#v", db.Error)
panic(err)
}
//表名非复数形式
db.SingularTable(true)
db.AutoMigrate(
//&PrizeType{},
&GameCard{},
)
fmt.Println("DB init success")
t.Log("ok")
}
//func TestInitDevDB(t *testing.T) {
// var err error
//
// //dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
// // "step_db", "7XmjY2FSpeKcZFsG", "192.168.0.188", "3306",
// // "step_db")
// dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
// "qq", "admin123", "127.0.0.1", "3306",
// "zouzou")
// db, err := gorm.Open("mysql", dialect)
// if err != nil {
// t.Logf("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
// panic(err)
// }
//
// if db.DB().Ping() != nil {
// fmt.Printf("Ping DB fail: %#v", db.Error)
// panic(err)
// }
// //表名非复数形式
// db.SingularTable(true)
//
// db.AutoMigrate(
// //&PrizeType{},
// &GameCard{},
// )
//
// fmt.Println("DB init success")
//
// t.Log("ok")
//}
// 测试服务器
func TestInitTestDB(t *testing.T) {
var err error
dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"mh_dev", "m5h4parZsXjbeiFh", "39.108.188.218", "3306", "mh_dev")
db, err := gorm.Open("mysql", dialect)
if err != nil {
t.Logf("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
panic(err)
}
if db.DB().Ping() != nil {
fmt.Printf("Ping DB fail: %#v", db.Error)
panic(err)
}
db.SingularTable(true)
db.AutoMigrate(
&User{},
//&LotteryInviteTargetUser{},
&GameCard{},
&Collection{},
&Config{},
&HistoryBrowsing{},
&ShoppingCart{},
&UserAddress{},
&SearchHistory{},
&Order{},
&HotSearch{},
&UserRefreshToken{},
)
fmt.Println("DB init success")
t.Log("ok")
}
//func TestInitTestDB(t *testing.T) {
// var err error
//
// dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
// "mh_dev", "m5h4parZsXjbeiFh", "39.108.188.218", "3306", "mh_dev")
//
// db, err := gorm.Open("mysql", dialect)
// if err != nil {
// t.Logf("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
// panic(err)
// }
//
// if db.DB().Ping() != nil {
// fmt.Printf("Ping DB fail: %#v", db.Error)
// panic(err)
// }
// db.SingularTable(true)
//
// db.AutoMigrate(
// &User{},
// //&LotteryInviteTargetUser{},
// &GameCard{},
// &Collection{},
// &Config{},
// &HistoryBrowsing{},
// &ShoppingCart{},
// &UserAddress{},
// &SearchHistory{},
// &Order{},
// &HotSearch{},
// &UserRefreshToken{},
// )
//
// fmt.Println("DB init success")
//
// t.Log("ok")
//}
// 线上服务器
func TestInitProDB(t *testing.T) {
var err error
dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
"root", "KP1giyE2iSZ45WsN5mQGNla6Jw9goF39", "rm-wz974q6794nk01g4k9o.mysql.rds.aliyuncs.com", "3306",
"ttsb")
db, err := gorm.Open("mysql", dialect)
if err != nil {
t.Logf("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
panic(err)
}
if db.DB().Ping() != nil {
fmt.Printf("Ping DB fail: %#v", db.Error)
panic(err)
}
//表名非复数形式
db.SingularTable(true)
db.AutoMigrate(
//&User{},
//&UserBlackList{},
//&ReceiverAddress{},
//&AdminCharge{},
//&UserPrize{},
//&HuafeiCharge{},
//&WxUserPrize{},
//&Draw{},
//&ADTag{},
//&ADTagRel{},
//&ADPrize{},
//&ADTheme{},
//&LotteryInviteOfUser{},
//&LotteryInviteHelpRecord{},
//&LotteryInviteWinRate{},
//&LotteryInviteTargetUser{},
//&DrawPrize{},
//&DrawRecord{},
//&Sponsor{},
//&DrawDecided{},
//&DrawUserShareCode{},
//&DrawUserHelpRecord{},
//&DrawLuckyCardUseRecord{},
//&DrawPrize{},
//&DrawWinnerOrder{},
//&DrawJoinRecord{},
//&VmRecord{},
//&Prize{},
//&PrizeUserInviteRecord{},
//&PrizeInviteRecord{},
//&HornUseRecord{},
//&UserInviteRecord{},
//&UserFormId{},
//&Step{},
//&UserStepRecordDaily{},
//&ShareImg{},
//&UserPrizeCollect{},
)
fmt.Println("DB init success")
t.Log("ok")
}
//func TestInitProDB(t *testing.T) {
// var err error
//
// dialect := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
// "root", "KP1giyE2iSZ45WsN5mQGNla6Jw9goF39", "rm-wz974q6794nk01g4k9o.mysql.rds.aliyuncs.com", "3306",
// "ttsb")
// db, err := gorm.Open("mysql", dialect)
// if err != nil {
// t.Logf("Open DB error [%s] with dialect[%s]", err.Error(), dialect)
// panic(err)
// }
//
// if db.DB().Ping() != nil {
// fmt.Printf("Ping DB fail: %#v", db.Error)
// panic(err)
// }
// //表名非复数形式
// db.SingularTable(true)
//
// db.AutoMigrate(
// //&User{},
// //&UserBlackList{},
// //&ReceiverAddress{},
// //&AdminCharge{},
// //&UserPrize{},
// //&HuafeiCharge{},
// //&WxUserPrize{},
// //&Draw{},
// //&ADTag{},
// //&ADTagRel{},
// //&ADPrize{},
// //&ADTheme{},
// //&LotteryInviteOfUser{},
// //&LotteryInviteHelpRecord{},
// //&LotteryInviteWinRate{},
// //&LotteryInviteTargetUser{},
//
// //&DrawPrize{},
// //&DrawRecord{},
// //&Sponsor{},
// //&DrawDecided{},
// //&DrawUserShareCode{},
// //&DrawUserHelpRecord{},
// //&DrawLuckyCardUseRecord{},
// //&DrawPrize{},
// //&DrawWinnerOrder{},
// //&DrawJoinRecord{},
// //&VmRecord{},
// //&Prize{},
// //&PrizeUserInviteRecord{},
// //&PrizeInviteRecord{},
// //&HornUseRecord{},
// //&UserInviteRecord{},
// //&UserFormId{},
// //&Step{},
// //&UserStepRecordDaily{},
// //&ShareImg{},
// //&UserPrizeCollect{},
// )
//
// fmt.Println("DB init success")
//
// t.Log("ok")
//}

View File

@ -2,6 +2,7 @@ package model
import (
"encoding/json"
"github.com/codinl/go-logger"
)
//go:generate goqueryset -in config.go
@ -17,97 +18,126 @@ func (m *Config) TableName() string {
return "config"
}
type ConfigInterface interface {
Encode() string
type PayConfig struct {
MemberFee uint32 `json:"member_fee"`
DepositFee uint32 `json:"deposit_fee"`
NotifyUrl string `json:"notify_url"`
}
type CheckConfig struct {
Check uint8 `json:"check"`
}
const (
ConfigNamePay = "pay_config" // 支付配置
)
func (c *CheckConfig) Encode() string {
configBytes, err := json.Marshal(c)
func PayConfigInfo() (*PayConfig, error) {
payConfig := new(PayConfig)
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigNamePay).One(&configAllocation)
if err != nil {
return ""
logger.Error("err:", err)
return payConfig, err
}
return string(configBytes)
}
type AutoChargeMobileConfig struct {
IsOpen uint8 `json:"is_open"`
}
func (c *AutoChargeMobileConfig) Encode() string {
configBytes, err := json.Marshal(c)
err = json.Unmarshal([]byte(configAllocation.Value), payConfig)
if err != nil {
return ""
logger.Error("err:", err)
return payConfig, err
}
return string(configBytes)
return payConfig, nil
}
type StepConfig struct {
InitStep uint32 `json:"init_step"`
InviteStepAward uint32 `json:"invite_step_award"`
StepDayLimit uint32 `json:"step_day_limit"`
StepToVmRate float64 `json:"step_to_vm_rate"`
InviteAwardRate float64 `json:"invite_award_rate"`
InviteAwardRateLimit float64 `json:"invite_award_rate_limit"`
SuperMemberRm uint32 `json:"super_member_rm"`
}
func (c *StepConfig) Encode() string {
configBytes, err := json.Marshal(c)
if err != nil {
return ""
}
return string(configBytes)
}
//type FBConfig struct {
// AssistanceValidityTerm uint32 `json:"assistance_validity_term"` // 邀请倒计时
// Postage uint32 `json:"postage"` // 邮费
// AssistanceFee uint32 `json:"assistance_fee"` // 每人拆红包
// OrderAssistanceFee uint32 `json:"order_assistance_fee"` // 订单邀请拆红包
// ActivityExpire string `json:"activity_expire"` // 活动过期时间
//
//type ConfigInterface interface {
// Encode() string
//}
//
//type FOConfig struct {
// ActivityExpire string `json:"activity_expire"` // 活动过期时间
//type CheckConfig struct {
// Check uint8 `json:"check"`
//}
//
//func (c *FBConfig) Encode() string {
//func (c *CheckConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
type InviteLotteryConfig struct {
Name string `json:"name"` // 名字
Image string `json:"image"` // 图片
DrawTime uint32 `json:"draw_time"` // 开奖的分钟数
SponsorId uint32 `json:"sponsor_id"` // 赞助商ID
NeedNum uint32 `json:"need_num"` // 需要的邀请数
IsShow uint8 `json:"is_show"` // 上下架
}
func (c *InviteLotteryConfig) Encode() string {
configBytes, err := json.Marshal(c)
if err != nil {
return ""
}
return string(configBytes)
}
//type TargetUserConfig struct {
// List map[uint32]bool `json:"list"`
//
//type AutoChargeMobileConfig struct {
// IsOpen uint8 `json:"is_open"`
//}
//
//func (c *TargetUserConfig) Encode() string {
//func (c *AutoChargeMobileConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
//
//type StepConfig struct {
// InitStep uint32 `json:"init_step"`
// InviteStepAward uint32 `json:"invite_step_award"`
// StepDayLimit uint32 `json:"step_day_limit"`
// StepToVmRate float64 `json:"step_to_vm_rate"`
// InviteAwardRate float64 `json:"invite_award_rate"`
// InviteAwardRateLimit float64 `json:"invite_award_rate_limit"`
// SuperMemberRm uint32 `json:"super_member_rm"`
//}
//
//func (c *StepConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
//
////type FBConfig struct {
//// AssistanceValidityTerm uint32 `json:"assistance_validity_term"` // 邀请倒计时
//// Postage uint32 `json:"postage"` // 邮费
//// AssistanceFee uint32 `json:"assistance_fee"` // 每人拆红包
//// OrderAssistanceFee uint32 `json:"order_assistance_fee"` // 订单邀请拆红包
//// ActivityExpire string `json:"activity_expire"` // 活动过期时间
////}
////
////type FOConfig struct {
//// ActivityExpire string `json:"activity_expire"` // 活动过期时间
////}
////
////func (c *FBConfig) Encode() string {
//// configBytes, err := json.Marshal(c)
//// if err != nil {
//// return ""
//// }
//// return string(configBytes)
////}
//
//type InviteLotteryConfig struct {
// Name string `json:"name"` // 名字
// Image string `json:"image"` // 图片
// DrawTime uint32 `json:"draw_time"` // 开奖的分钟数
// SponsorId uint32 `json:"sponsor_id"` // 赞助商ID
// NeedNum uint32 `json:"need_num"` // 需要的邀请数
// IsShow uint8 `json:"is_show"` // 上下架
//}
//
//func (c *InviteLotteryConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
//
////type TargetUserConfig struct {
//// List map[uint32]bool `json:"list"`
////}
////
////func (c *TargetUserConfig) Encode() string {
//// configBytes, err := json.Marshal(c)
//// if err != nil {
//// return ""
//// }
//// return string(configBytes)
////}

View File

@ -202,10 +202,15 @@ func (*GameCardGoods) TableName() string {
type GameCardGoodsStock struct {
Model
StoreId uint64 `json:"store_id"` // 门店id
GameCardId uint64 `json:"game_card_id"` // 游戏卡id
StoreStock uint32 `json:"store_stock"` // 门店库存
RentStock uint32 `json:"rent_stock"` // 租借库存
StoreId uint64 `json:"store_id"` // 门店id
GameCardId uint64 `json:"game_card_id"` // 游戏卡id
StoreStock uint32 `json:"store_stock"` // 门店库存
RentStock uint32 `json:"rent_stock"` // 租借库存
UserHoldStock uint32 `json:"user_hold_stock"`
OrderCount uint32 `json:"order_count"`
TotalStock uint32 `json:"total_stock"`
Name string `json:"name" gorm:"-"` // 名称
CoverImg string `json:"coverImg" gorm:"-"` // 封面
}
func (*GameCardGoodsStock) TableName() string {

View File

@ -1,10 +1,13 @@
package model
import (
"crypto/sha512"
"encoding/json"
"fmt"
"github.com/codinl/go-logger"
"github.com/jinzhu/gorm"
"math/rand"
"strings"
"testing"
"time"
)
@ -12,7 +15,7 @@ import (
func TestGameList(t *testing.T) {
InitTestDB()
var game GameCard
err := NewGameCardQuerySet(GormDb).IDEq(1).One(&game)
err := NewGameCardQuerySet(DBDev).IDEq(1).One(&game)
if err != nil {
logger.Error("err:", err)
return
@ -30,7 +33,7 @@ func TestGameList(t *testing.T) {
game.Price = uint32(randNum)
game.OrderCount = uint32(randNum + numUnix)
game.ID = 0
GormDb.Create(&game)
DBDev.Create(&game)
}
}
@ -44,7 +47,7 @@ func getRandNumUnix() int {
return rand.Intn(1000)
}
var GormDb *gorm.DB
var DBDev *gorm.DB
// 测试服务器
func InitTestDB() {
@ -88,13 +91,27 @@ func InitTestDB() {
&GameCardGoods{},
&UserInvite{},
&ArticleTitlePanel{},
&RedeemCode{},
&UserRedeemCode{},
&DepositRefundRecord{},
&GroupSendMessageTemplate{},
)
fmt.Println("DB init success")
DB = db
DBDev = db
logger.Info("ok")
}
func TestInitTestDBModel(t *testing.T) {
InitTestDB()
}
func TestMemberExprireTime(t *testing.T) {
InitTestDB()
}
var DBProd *gorm.DB
func InitDBProd() {
@ -113,7 +130,10 @@ func InitDBProd() {
DBProd.DB().SetConnMaxLifetime(time.Second * 10)
DBProd.LogMode(true)
DBProd.SingularTable(true)
DBProd.AutoMigrate()
DBProd.AutoMigrate(
&RedeemCode{},
&UserRedeemCode{},
)
if err := DBProd.DB().Ping(); err != nil {
fmt.Println("Ping Database Fail, error = ", err)
@ -131,7 +151,7 @@ func TestHotSearch_TableName(t *testing.T) {
Keyword: s,
Sort: uint32(len(list) - i),
}
err := hotSearch.Create(GormDb)
err := hotSearch.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -151,7 +171,7 @@ func TestGetHomeCarouselList(t *testing.T) {
Detail: "",
Link: "",
}
err := homeCarousel.Create(GormDb)
err := homeCarousel.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -166,7 +186,7 @@ func TestGameCardType_Create(t *testing.T) {
Name: s,
Sort: uint32(i + 100),
}
err := cardType.Create(GormDb)
err := cardType.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -174,10 +194,6 @@ func TestGameCardType_Create(t *testing.T) {
}
func TestMemberExprireTime(t *testing.T) {
InitTestDB()
}
func TestStore_TableName(t *testing.T) {
InitTestDB()
@ -194,7 +210,7 @@ func TestStore_TableName(t *testing.T) {
Longitude: 0,
Latitude: 0,
}
err := store.Create(GormDb)
err := store.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -211,7 +227,7 @@ func TestPess(t *testing.T) {
CompanyName: comp[i],
CompanyCode: compCode[i],
}
err := company.Create(GormDb)
err := company.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -221,12 +237,12 @@ func TestPess(t *testing.T) {
func TestGoodsStock(t *testing.T) {
InitTestDB()
cards := make([]GameCard, 0)
err := NewGameCardQuerySet(GormDb).All(&cards)
err := NewGameCardQuerySet(DBDev).All(&cards)
if err != nil {
logger.Error("err:", err)
}
stores := make([]Store, 0)
err = NewStoreQuerySet(GormDb).All(&stores)
err = NewStoreQuerySet(DBDev).All(&stores)
if err != nil {
logger.Error("err:", err)
}
@ -239,7 +255,7 @@ func TestGoodsStock(t *testing.T) {
StoreStock: 1000,
RentStock: 10,
}
err := stock.Create(GormDb)
err := stock.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -250,12 +266,12 @@ func TestGoodsStock(t *testing.T) {
func TestGoodsCard(t *testing.T) {
InitTestDB()
cards := make([]GameCard, 0)
err := NewGameCardQuerySet(GormDb).All(&cards)
err := NewGameCardQuerySet(DBDev).All(&cards)
if err != nil {
logger.Error("err:", err)
}
stores := make([]Store, 0)
err = NewStoreQuerySet(GormDb).All(&stores)
err = NewStoreQuerySet(DBDev).All(&stores)
if err != nil {
logger.Error("err:", err)
}
@ -268,7 +284,7 @@ func TestGoodsCard(t *testing.T) {
StoreStock: 1000,
RentStock: 10,
}
err := stock.Create(GormDb)
err := stock.Create(DBDev)
if err != nil {
logger.Error("err:", err)
}
@ -278,7 +294,7 @@ func TestGoodsCard(t *testing.T) {
func TestOrderList(t *testing.T) {
InitTestDB()
count, err := NewOrderQuerySet(GormDb.Debug()).UidEq(uint64(55191926)).PayStatusEq(PayStatusPaid).CardStatusIn([]uint8{1, 2, 3}...).Count()
count, err := NewOrderQuerySet(DBDev.Debug()).UidEq(uint64(55191926)).PayStatusEq(PayStatusPaid).CardStatusIn([]uint8{1, 2, 3}...).Count()
if err != nil {
logger.Error("err:", err)
@ -344,3 +360,191 @@ func UserBundleFirstOrderStore() {
}
}
}
func TestMemberCode(t *testing.T) {
for i := 0; i < 100; i++ {
MemberCode()
}
}
func MemberCode() {
//sha256.New()
//ft := time.Now().Format("20060102150405")
st := fmt.Sprintf("%d", time.Now().UnixNano())
str := "test-hash" + st
hasher := sha512.New()
hasher.Write([]byte(str))
r := hasher.Sum(nil)
//fmt.Printf("%x \n",r)
hs := fmt.Sprintf("%x", r)
upper := strings.ToUpper(hs)
fmt.Println("upper:", upper)
}
func TestLeng(t *testing.T) {
fmt.Println("len:", len("22AB0776591642F13101"))
// B61E1104C989D4E2F453EB6253A06A3721094DDF76FF468EB679CEA046403D3F7B963A8FBED0CB70C1EB9B17BB684DAFB700F966676D
}
func TestRedeemCodeCreate(t *testing.T) {
RedeemCodeCreate()
}
func RedeemCodeCreate() {
//InitTestDB()
InitDBProd()
for i := 0; i < 1000; i++ {
redeem := NewRedeemCode()
fmt.Println("redeemCode:", redeem)
secretCode := RedeemSecretCode(redeem)
fmt.Println("secretCode:", secretCode)
if !IsRedeemCodeExist(redeem) {
redeemCode := &RedeemCode{
SerialCode: redeem,
CodeType: CodeTypeMemberCard30,
Status: RedeemCodeStatusStock,
CodeSecret: secretCode,
EffectiveTime: time.Now(),
ExpirationTime: time.Time{},
}
err := DBProd.Create(redeemCode).Error
if err != nil {
fmt.Println("err:", err)
}
}
}
}
func IsRedeemCodeExist(code string) bool {
var isExist uint32
sql := fmt.Sprintf("SELECT EXISTS (SELECT * FROM redeem_code WHERE serial_code = '%s') AS code_exsit;", code)
err := DBProd.Raw(sql).Row().Scan(&isExist)
if err != nil {
fmt.Println("err:", err)
return true
}
return isExist == 1
}
func NewRedeemCode() string {
semen := fmt.Sprintf("MemberCard30%d", time.Now().UnixNano())
shaer := sha512.New()
shaer.Write([]byte(semen))
r := shaer.Sum(nil)
hs := fmt.Sprintf("%x", r)
hs = strings.ToUpper(hs)
return "MC30" + hs[:19]
}
func TestInitConfig(t *testing.T) {
InitConfig()
}
func InitConfig() {
//InitTestDB()
InitDBProd()
payConfig := &PayConfig{
MemberFee: 29900,
DepositFee: 30000,
NotifyUrl: "https://switch.deovo.com:8001/api/v1/wxpay/notice",
}
bytes, err := json.Marshal(payConfig)
if err != nil {
fmt.Println("err:", err)
}
configInfo := &Config{
Name: "pay_config",
Value: string(bytes),
}
err = DBProd.Create(configInfo).Error
if err != nil {
fmt.Println("err:", err)
}
}
func TestMergingGameCards(t *testing.T) {
MergingGameCards()
}
func MergingGameCards() {
//UPDATE history_browsing SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE collection SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE game_card_goods SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE `order` SET game_card_id=782 WHERE game_card_id = 870;
//UPDATE shopping_cart SET game_card_id=782 WHERE game_card_id = 870;
fromGameId := uint64(870)
toGameId := uint64(782)
InitDBProd()
var fromGameCardStock []GameCardGoodsStock
err := NewGameCardGoodsStockQuerySet(DBProd).GameCardIdEq(fromGameId).All(&fromGameCardStock)
if err != nil {
logger.Error("err:", err)
return
}
var toGameCardStock []GameCardGoodsStock
err = NewGameCardGoodsStockQuerySet(DBProd).GameCardIdEq(toGameId).All(&toGameCardStock)
if err != nil {
logger.Error("err:", err)
return
}
toGameMap := make(map[uint64]GameCardGoodsStock, 0)
for i, _ := range toGameCardStock {
toGameMap[toGameCardStock[i].StoreId] = toGameCardStock[i]
}
for _, v := range fromGameCardStock {
//fmt.Println("fromGameCardStock:", fromGameCardStock[i].StoreId)
//fmt.Println("fromGameCardStock:", fromGameCardStock[i].StoreStock)
//fmt.Println("fromGameCardStock:", v.RentStock)
cardGoodsStock, ok := toGameMap[v.StoreId]
if ok {
// cardGoodsStock.StoreStock += v.StoreStock
// cardGoodsStock.RentStock += v.RentStock
// cardGoodsStock.UserHoldStock += v.UserHoldStock
// cardGoodsStock.OrderCount += v.OrderCount
// cardGoodsStock.TotalStock += v.TotalStock
// err := DBProd.Save(&cardGoodsStock).Error
// if err != nil {
// logger.Error("err:", err)
// }
fmt.Println("cardGoodsStock:", cardGoodsStock)
} else {
fmt.Println("cardGoodsStock:", v.StoreId)
v.ID = 0
v.GameCardId = 782
err := DBProd.Create(&v).Error
if err != nil {
logger.Error("create err:", err)
}
}
}
}

View File

@ -202,7 +202,6 @@ func (m *Order) Revert() (*OrderInfo, error) {
return &info, nil
}
func (m *Order) RevertCancel() (*OrderInfo, error) {
var (
order Order
@ -296,6 +295,24 @@ func IsHaveUnreturnedOrders(uid uint32) (bool, error) {
return unreturned.Count != 0, nil
}
func IsUserHaveUnreturnedOrder(uid uint32) (bool, error) {
fmt.Println("uid", uid)
sql := fmt.Sprintf("SELECT COUNT(*) AS count FROM `order` WHERE uid = %d AND pay_status IN (1,2) AND card_status IN (1,2,3) ;", uid)
//count, err := NewOrderQuerySet(DB).UidEq(uint64(uid)).PayStatusEq(PayStatusPaid).CardStatusIn(1, 2, 3).Count()
//if err != nil {
// logger.Error("err:", err)
// return false, err
//}
unreturned := &struct {
Count int `json:"count"`
}{}
DB.Raw(sql).Scan(unreturned)
fmt.Println("订单数量count:", unreturned.Count)
return unreturned.Count != 0, nil
}
// gen:qs
type ExpressCompany struct {
Model
@ -346,7 +363,7 @@ func (m *Order) Cancel() error {
return errors.New("card status not unpick")
}
if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(30*time.Minute).Before(time.Now()) {
//if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(3*time.Minute).Before(time.Now()) {
//if userOrder.PayStatus == PayStatusUnPay && userOrder.CreatedAt.Add(3*time.Minute).Before(time.Now()) {
log.Error("card status expire err: ")
return errors.New("card status expire")
}
@ -356,11 +373,12 @@ func (m *Order) Cancel() error {
//fmt.Println("CreatedAt",userOrder.CreatedAt.Add(4*time.Minute))
//fmt.Println("Now",time.Now())
if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(24*time.Hour).Before(time.Now()) {
//if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(4*time.Minute).Before(time.Now()) {
//if userOrder.PayStatus == PayStatusPaid && userOrder.DeliveryType == DeliveryTypeStorePick && userOrder.CreatedAt.Add(4*time.Minute).Before(time.Now()) {
log.Error("card status expire err: ")
return errors.New("card status expire")
}
begin := DB.Begin()
err = NewOrderQuerySet(begin).IDEq(m.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update()
if err != nil {
@ -383,6 +401,7 @@ func (m *Order) Cancel() error {
return err
}
*m = userOrder
return nil
}

216
model/redeem_code.go Normal file
View File

@ -0,0 +1,216 @@
package model
import (
"crypto/sha512"
"errors"
"fmt"
"github.com/codinl/go-logger"
"strings"
"time"
)
const (
RedeemCodeStatusStock = "stocking" // 库存
RedeemCodeStatusHold = "user-hold" // 用户持有
RedeemCodeStatusUsed = "used" // 已使用
)
const (
CodeTypeMemberCard30 = "member-card-30"
)
const (
RedeemCodeSecretKey = "046033a527d1b723ed0a1012e6518d490"
)
const (
UserRedeemCodeStatusHold = "user-hold"
UserRedeemCodeStatusUsed = "used"
)
const (
RedeemCodeActivityTypeStore = 1 // 门店赠送
RedeemCodeActivityTypeUserInvite = 2 // 用户邀请
)
//go:generate goqueryset -in redeem_code.go
// gen:qs
type RedeemCode struct {
Model
SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码
CodeType string `json:"code_type"` // memberCard
Status string `json:"status" gorm:"index;comment:'兑换状态'"` // stocking user-hold used
CodeSecret string `json:"code_secret"` // 兑换密码
EffectiveTime time.Time `json:"effective_time"` // 生效时间
ExpirationTime time.Time `json:"expiration_time"` // 过期时间
}
// gen:qs
type UserRedeemCode struct {
Model
Uid uint32 `json:"uid" gorm:"index;comment:'用户id'"`
Status string `json:"status" gorm:"index;comment:'兑换状态'"` // user-hold used
SerialCode string `json:"serial_code" gorm:"index;comment:'兑换编码'"` // 兑换编码
CodeType string `json:"code_type"` // memberCard
ConvertTime time.Time `json:"convert_time"` // 绑定时间
ActivityType uint32 `json:"activity_type"` // 1-门店赠送 2-用户邀请
}
//type BindingRedeemCodeRecord struct {
// Model
//}
// 会员兑换码
// 用户押金
// 支付押金
// 押金
// 开通会员
// 管理端 发 会员 Sign 校验
func RedeemSecretCode(redeem string) string {
semen := redeem[:13] + strings.ToUpper(RedeemCodeSecretKey)
shaer := sha512.New()
shaer.Write([]byte(semen))
r := shaer.Sum(nil)
hs := fmt.Sprintf("%x", r)
return hs[:7]
}
func UserRedeemCodeList(uid uint32) ([]UserRedeemCode, error) {
var userRedeems []UserRedeemCode
err := NewUserRedeemCodeQuerySet(DB).UidEq(uid).OrderDescByID().All(&userRedeems)
if err != nil && err != RecordNotFound {
logger.Error("user redeem code err:", err)
return userRedeems, err
}
if len(userRedeems) == 0 {
return userRedeems, nil
}
holdList := make([]UserRedeemCode, 0)
usedList := make([]UserRedeemCode, 0)
for i, _ := range userRedeems {
if userRedeems[i].Status == UserRedeemCodeStatusHold {
holdList = append(holdList, userRedeems[i])
} else {
usedList = append(usedList, userRedeems[i])
}
}
return append(holdList, usedList...), nil
}
func UserRedeemCodeConvert(uid uint32, serialCode string) error {
var userRedeem UserRedeemCode
err := NewUserRedeemCodeQuerySet(DB).UidEq(uid).SerialCodeEq(serialCode).One(&userRedeem)
if err != nil {
logger.Error("user redeem code err:", err)
return err
}
if userRedeem.Status != UserRedeemCodeStatusHold {
return errors.New("user redeem code not exist")
}
begin := DB.Begin()
num, err := NewRedeemCodeQuerySet(begin).SerialCodeEq(serialCode).GetUpdater().SetStatus(RedeemCodeStatusUsed).UpdateNum()
if err != nil {
logger.Error("user redeem code err:", err)
begin.Rollback()
return err
}
if num == 0 {
logger.Error("num is 0 err:")
begin.Rollback()
return err
}
updateNum, err := NewUserRedeemCodeQuerySet(begin).UidEq(uid).SerialCodeEq(serialCode).GetUpdater().
SetStatus(UserRedeemCodeStatusUsed).SetConvertTime(time.Now()).UpdateNum()
if err != nil {
logger.Error("user redeem code err:", err)
begin.Rollback()
return err
}
if updateNum == 0 {
logger.Error("num is 0 err:")
begin.Rollback()
return err
}
user := GetUserByUid(uid)
qs := NewUserQuerySet(begin).UidEq(uid).GetUpdater()
if user.MemberLevel == 1 {
qs = qs.SetMemberLevel(3)
}
if user.MemberExpire.After(time.Now()) {
qs = qs.SetMemberExpire(user.MemberExpire.AddDate(0, 0, 30))
} else {
qs = qs.SetMemberExpire(time.Now().AddDate(0, 0, 30))
}
userNum, err := qs.UpdateNum()
if err != nil {
logger.Error("user redeem code err:", err)
begin.Rollback()
return err
}
if userNum == 0 {
logger.Error("num is 0 err:")
begin.Rollback()
return err
}
err = begin.Commit().Error
if err != nil {
logger.Error("user redeem code err:", err)
begin.Rollback()
return err
}
return nil
}
func CodeSendToUser(uid uint32, codeType string) error {
count, err := NewUserRedeemCodeQuerySet(DB).UidEq(uid).Count()
if err != nil {
logger.Error("err:", err)
return err
}
if count > 24 {
logger.Error("redeem code limit 24")
return errors.New("redeem code limit 24")
}
var redeemCode RedeemCode
err = NewRedeemCodeQuerySet(DB).StatusEq(RedeemCodeStatusStock).CodeTypeEq(codeType).Limit(1).One(&redeemCode)
if err != nil {
logger.Errorf("err:%#v", err)
return err
}
begin := DB.Begin()
sql := fmt.Sprintf("UPDATE redeem_code SET `status` ='%s' WHERE id =%d", RedeemCodeStatusHold, redeemCode.ID)
err = begin.Exec(sql).Error
if err != nil {
logger.Errorf("err:%#v", err)
begin.Rollback()
return err
}
userRedeemCode := &UserRedeemCode{
Uid: uid,
Status: UserRedeemCodeStatusHold,
SerialCode: redeemCode.SerialCode,
CodeType: redeemCode.CodeType,
ActivityType: RedeemCodeActivityTypeUserInvite,
}
err = begin.Create(userRedeemCode).Error
if err != nil {
logger.Errorf("err:%#v", err)
begin.Rollback()
return err
}
err = begin.Commit().Error
if err != nil {
logger.Errorf("err:%#v", err)
begin.Rollback()
return err
}
return nil
}

View File

@ -100,3 +100,21 @@ func (m *Store) Info() error {
}
return nil
}
type CannibalizeStockTask struct {
Model
FromStoreId uint32 `json:"from_store_id"`
ToStoreId uint32 `json:"to_store_id"`
TaskId uint32 `json:"task_id"`
GameCardId uint32 `json:"game_card_id"` // 游戏卡id
Count uint32 `json:"count"`
Status uint8 `json:"status"` // 1-待填调拨卡 2-待发货 3-已发货 4-已入库
}
type CannibalizeGameCardGoods struct {
Model
CannibalizeStockTaskId uint32 `json:"cannibalize_stock_task_id"`
GameCardId uint32 `json:"game_card_id"` // 游戏卡id
SerialNumber string `json:"serial_number" gorm:"index"` // 编号
}

View File

@ -12,21 +12,21 @@ import (
type User struct {
Model
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
Bond uint32 `json:"bond"` // 保证金
WxName string `json:"wx_name"` // 昵称
WxAvatar string `json:"wx_avatar"` // 头像
WxOpenID string `json:"wx_open_id"`
AppOpenID string `json:"app_open_id"`
WxUnionID string `json:"wx_union_id"`
Tel string `json:"tel"` // 电话
Gender uint8 `json:"gender"` // 性别
City string `json:"city"` // 城市
Province string `json:"province"` // 省
Country string `json:"country"` // 市
Uid uint32 `json:"uid" gorm:"column:uid;unique_index"`
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
Bond uint32 `json:"bond"` // 保证金
WxName string `json:"wx_name"` // 昵称
WxAvatar string `json:"wx_avatar"` // 头像
WxOpenID string `json:"wx_open_id"`
AppOpenID string `json:"app_open_id"`
WxUnionID string `json:"wx_union_id"`
Tel string `json:"tel"` // 电话
Gender uint8 `json:"gender"` // 性别
City string `json:"city"` // 城市
Province string `json:"province"` // 省
Country string `json:"country"` // 市
Deposit uint32 `json:"deposit"` //
UserType uint8 `json:"user_type"` // 用户类型 1-普通用户 2-店员
StoreId uint64 `json:"store_id"` // 门店id
InviteCodeUrl string `json:"invite_code_url"` // 分享二维码
@ -55,13 +55,32 @@ type UserInvite struct {
FromUid uint32 `json:"from_uid"` // 邀请用户id
UserType uint8 `json:"user_type"` // 用户类型
StoreId uint64 `json:"store_id"` // 门店id
MemberOpenTime time.Time `json:"member_open_time"` //
MemberType uint8 `json:"member_type"` // 1-普通用户 2-会员
MemberStatus uint8 `json:"member_status"` // 1-未注册 2-已注册 3-已取消会员
ToUid uint32 `json:"to_uid"` //
MemberOpenTime time.Time `json:"member_open_time"` // 开通会员
MemberType uint8 `json:"member_type"` // 被邀请用户 1-普通用户 2-会员
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
ToUid uint32 `json:"to_uid"` // 被邀请用户
StoreType uint32 `json:"store_type"` // 门店类型
}
const (
DepositRefundStatusUnconfirmed = 1 // 待确认
DepositRefundStatusConfirmed = 2 // 已确认
DepositRefundStatusRefunded = 3 // 已退款
DepositRefundStatusRefused = 4 // 已拒绝
)
// gen:qs
type DepositRefundRecord struct {
Model
Uid uint32 `json:"uid"`
Status uint32 `json:"status"` // 1 // 待确认 2 // 已确认 3 // 已退款 4 // 已拒绝
Amount uint32 `json:"amount"`
Operator uint32 `json:"operator"`
ConfirmTime time.Time `json:"confirm_time"`
User User `json:"user" gorm:"-"`
}
func GetUserByUid(uid uint32) *User {
user := new(User)
if err := NewUserQuerySet(DB).UidEq(uid).One(user); err != nil {
@ -89,6 +108,9 @@ func UserUpdate(user *User) error {
fields = append(fields, UserDBSchema.MemberLevel)
fields = append(fields, UserDBSchema.MemberExpire)
}
if user.Deposit != 0 {
fields = append(fields, UserDBSchema.Deposit)
}
if len(fields) > 0 {
err := user.Update(DB.Where(&User{Uid: user.Uid}), fields...)
@ -105,9 +127,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"`
Uid uint32 `json:"uid"`
OpenNo string `json:"open_no" gorm:"index"`
OrderId uint32 `json:"order_id"`
OrderType uint32 `json:"order_type"` // 1-物流支付
}
func (o *UserOpenMemberRecord) TableName() string {
@ -141,6 +165,19 @@ type CommonProblem struct {
Sort uint32 `json:"sort" gorm:"index"`
}
type GroupSendMessageTemplate struct {
Model
Title string `json:"title" `
Message string `json:"message"`
UserType uint32 `json:"user_type" gorm:"index,column:user_type"` // 1-所有用户 2-会员 3-非会员 4-指定用户
SendTime time.Time `json:"send_time"`
Tels string `json:"tels"`
Status uint32 `json:"status"` // 1-待发送 2-已发送
}
func (*CommonProblem) TableName() string {
return "common_problem"
}
@ -297,3 +334,31 @@ func GetOrderSn() string {
}
return orderSn
}
func (m *User) Edit() {
err := DB.Save(m).Error
if err != nil {
logger.Error("err:", err)
}
return
}
func GetWxPayExpressFeeRefundRecord(orderId uint32) (string, error) {
var openMemberRecord UserOpenMemberRecord
err := NewUserOpenMemberRecordQuerySet(DB).OrderIdEq(orderId).OrderTypeEq(1).OrderDescByID().Limit(1).One(&openMemberRecord)
if err != nil {
logger.Error("err:", err)
return "", err
}
return openMemberRecord.OpenNo, nil
}
func GetDepositRefundRecordList(uid uint32) ([]DepositRefundRecord, error) {
var deposits []DepositRefundRecord
err := NewDepositRefundRecordQuerySet(DB).UidEq(uid).OrderDescByID().All(&deposits)
if err != nil {
logger.Error("deposit refund record err:", err)
return deposits, err
}
return deposits, nil
}

View File

@ -0,0 +1,783 @@
2021/11/06 11:17:41 [INFO ]base_init_db.go:38: DB init success
2021/11/06 11:18:28 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:18:28 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:18:29 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:18:29 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:18:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:18:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:18:30 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:18:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:18:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:18:30 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:18:31 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:18:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:18:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:27 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:25:27 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:25:27 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:28 [ERROR]game_card.go:144: err: must at least pass one gameCardId in GameCardIdIn
2021/11/06 11:25:29 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:25:29 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:25:29 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:29 [ERROR]game_card.go:144: err: must at least pass one gameCardId in GameCardIdIn
2021/11/06 11:25:29 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:29 [ERROR]game_card.go:144: err: must at least pass one gameCardId in GameCardIdIn
2021/11/06 11:25:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:25:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:25:30 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:30 [ERROR]game_card.go:144: err: must at least pass one gameCardId in GameCardIdIn
2021/11/06 11:25:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:25:54 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:25:54 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:55 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:25:55 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:25:55 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:25:55 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:26:02 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:26:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:26:04 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:26:04 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:26:04 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:12 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:12 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:12 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:20 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:20 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:20 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:22 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:27:22 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:23 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:23 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:23 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:25 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:27:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:27 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:27 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:27 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:29 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:29 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:29 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:30 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:33 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 11:27:34 [INFO ]account.go:46: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2021/11/06 11:27:34 [INFO ]account.go:47: resp.UnionID=
2021/11/06 11:27:34 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 11:27:35 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 11:27:35 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 11:27:35 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 11:27:37 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 11:27:37 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/11/06 11:27:40 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 11:27:40 [INFO ]init.go:30: /api/v1/user/address/list
2021/11/06 11:27:40 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:27:43 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:27:46 [INFO ]init.go:30: /api/v1/order/create
2021/11/06 11:27:46 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":12,"price":0,"express_fee":0,"delivery_type":1}
2021/11/06 11:27:46 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:27:46 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:27:47 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:27:47 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:29:23 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:29:23 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:29:23 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:29:25 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 11:29:25 [INFO ]init.go:30: /api/v1/user/address/list
2021/11/06 11:29:25 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:29:27 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:29:29 [INFO ]init.go:30: /api/v1/order/create
2021/11/06 11:29:29 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":12,"price":0,"express_fee":0,"delivery_type":1}
2021/11/06 11:29:29 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:29:29 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:29:30 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:29:30 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:31:24 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:31:25 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:31:25 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:31:26 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 11:31:26 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/11/06 11:31:27 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 11:31:27 [INFO ]init.go:30: /api/v1/user/address/list
2021/11/06 11:31:27 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 11:31:29 [INFO ]init.go:30: /api/v1/order/create
2021/11/06 11:31:29 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":12,"price":0,"express_fee":0,"delivery_type":1}
2021/11/06 11:31:29 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:31:29 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:31:30 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 11:31:30 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 11:36:28 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 12:03:20 [INFO ]base_init_db.go:38: DB init success
2021/11/06 12:15:01 [INFO ]init.go:30: /api/v1/order/info
2021/11/06 12:15:01 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 12:15:01 [INFO ]init.go:30: /api/v1/store/info
2021/11/06 12:15:10 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:15:10 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:15:10 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:15:16 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:15:16 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:15:16 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:15:18 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 12:15:18 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:15:18 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:15:18 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:15:18 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:15:23 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 12:15:23 [INFO ]account.go:46: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2021/11/06 12:15:23 [INFO ]account.go:47: resp.UnionID=
2021/11/06 12:15:24 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 12:15:26 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 12:15:26 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 12:17:16 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 12:17:16 [INFO ]account.go:286: 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:1636172236}}
2021/11/06 12:17:16 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 12:17:18 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:17:18 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:17:18 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:17:19 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:17:19 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:17:19 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:17:20 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:17:20 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:17:20 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:17:43 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:17:43 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:17:43 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:18:45 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:18:45 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:18:45 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:19:38 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:19:39 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:19:39 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 12:19:40 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:21:41 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:21:41 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:21:41 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:05 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 12:22:05 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:06 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:06 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:06 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:07 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:07 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:07 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:07 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:07 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:07 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:09 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:09 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:09 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:17 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 12:22:18 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 12:22:18 [INFO ]account.go:47: resp.UnionID=
2021/11/06 12:22:18 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 12:22:20 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 12:22:20 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 12:22:23 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:22:23 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:23 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:28 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 12:22:28 [INFO ]account.go:286: userInfo={OpenID: Nickname:y Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/w53X2zzOWSJuaBHlPuT3Uf71uviaI9mdCo1UOtpzjQI2SfmZ135VHu7Chha1kyyEtJ39yS9OicI49RHgIwyD7Dpw/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636172548}}
2021/11/06 12:22:28 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 12:22:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:22:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:22:30 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:24:11 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:24:11 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:24:11 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:24:26 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:24:26 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:24:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:24:27 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:24:27 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:24:27 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 12:35:23 [INFO ]base_init_db.go:38: DB init success
2021/11/06 12:59:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 12:59:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 12:59:30 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 12:59:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:00:41 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:00:41 [INFO ]account.go:46: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2021/11/06 13:00:41 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:00:41 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:00:43 [INFO ]init.go:30: /api/v1/user/invite_list
2021/11/06 13:00:44 [INFO ]init.go:30: /api/v1/user/invite_list
2021/11/06 13:00:45 [INFO ]init.go:30: /api/v1/user/invite_applet_code
2021/11/06 13:00:45 [ERROR]templete_msg.go:64: 查询accessToken:
2021/11/06 13:00:45 [INFO ]templete_msg.go:45: response={AccessToken:50_zT-hobzL5hXfIXwl4e4NqI_5tRRRtBxUOiZTU9BDZaRpGEjmvKAUDML48i8fjRhel1z5lKtIpq_Hk9qS3P-WYQFR2YxrUQIbgCcnIZt757NIV_VOHAnpTYrW6sABWVpmc48NB2Gs7V3FCYpzWDLdAAAJQY ExpiresIn:7200 Errcode:0 Errmsg:}
2021/11/06 13:00:45 [INFO ]templete_msg.go:78: 50_zT-hobzL5hXfIXwl4e4NqI_5tRRRtBxUOiZTU9BDZaRpGEjmvKAUDML48i8fjRhel1z5lKtIpq_Hk9qS3P-WYQFR2YxrUQIbgCcnIZt757NIV_VOHAnpTYrW6sABWVpmc48NB2Gs7V3FCYpzWDLdAAAJQY
2021/11/06 13:00:46 [ERROR]crypt.go:180: err:&errors.errorString{s:"invalid argument"}
2021/11/06 13:00:46 [ERROR]crypt.go:181: err: invalid argument
2021/11/06 13:01:01 [INFO ]init.go:30: /api/v1/user/invite_applet_code
2021/11/06 13:01:28 [INFO ]init.go:30: /api/v1/order/list
2021/11/06 13:01:28 [INFO ]init.go:30: /api/v1/order/list
2021/11/06 13:01:51 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:01:51 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:01:51 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:02:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:02:31 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:02:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:02:38 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:02:38 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:02:39 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:02:45 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:02:45 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:04:30 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:04:30 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:04:30 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:04:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:04:31 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:04:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:04:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:04:55 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:04:55 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:04:55 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:04:55 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:05:25 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:05:25 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:05:26 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:05:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:06:21 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:06:22 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 13:06:22 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:06:22 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:13:52 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:13:52 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:13:52 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:13:52 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:14:01 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:14:01 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:14:01 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:14:03 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:14:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:14:08 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:14:08 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:14:08 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:14:09 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:14:36 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:14:36 [INFO ]account.go:286: userInfo={OpenID: Nickname:辉会飞 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/jicmSODu452I4Yibn1yfEZgB2F59YVsTl7f8WuQCxZ2kmxU1MsrMWAsUgXxVQMG7Uib3GwlEFQiaAhNE8iblUBBWOBA/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636175676}}
2021/11/06 13:14:37 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:18:49 [INFO ]base_init_db.go:38: DB init success
2021/11/06 13:19:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:19:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:19:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:19:10 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:19:10 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:19:11 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:19:12 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:19:13 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:19:13 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:19:13 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:19:13 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:20:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:20:00 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:20:00 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:20:02 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:20:02 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:20:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:20:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:20:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:20:39 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:20:40 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:20:40 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:20:40 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:21:33 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:21:33 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:21:33 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:21:38 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:21:38 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:21:51 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:21:51 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:21:51 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:21:51 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:21:56 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:21:57 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:21:57 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:21:57 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:22:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:22:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:22:04 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:22:04 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:22:13 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:22:13 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:22:13 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:22:15 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:22:15 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:22:16 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:22:16 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:22:16 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:22:29 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:22:29 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:22:29 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:22:29 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:24:42 [INFO ]base_init_db.go:38: DB init success
2021/11/06 13:26:02 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:26:02 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:26:02 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:26:03 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:26:05 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:26:06 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:29:38 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:29:38 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:29:38 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:29:55 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:29:55 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:29:55 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:30:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:30:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:30:03 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:30:04 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:30:06 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:30:07 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:30:07 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:30:07 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:30:09 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:30:09 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:31:11 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:31:12 [INFO ]account.go:287: userInfo={OpenID: Nickname:辉会飞 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/jicmSODu452I4Yibn1yfEZgB2F59YVsTl7f8WuQCxZ2kmxU1MsrMWAsUgXxVQMG7Uib3GwlEFQiaAhNE8iblUBBWOBA/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636176671}}
2021/11/06 13:31:12 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:31:31 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:31:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:31:31 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:31:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:31:32 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:31:32 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:31:32 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:31:44 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:31:44 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:31:44 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:31:54 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:31:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:31:54 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:32:18 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:32:18 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:32:18 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:32:18 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:32:45 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:32:45 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:32:46 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:32:46 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:32:48 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:32:48 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:32:48 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:33:00 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:33:00 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 13:33:00 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:33:01 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:33:08 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:33:08 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:33:11 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:33:11 [INFO ]account.go:287: userInfo={OpenID: Nickname:y Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/w53X2zzOWSJuaBHlPuT3Uf71uviaI9mdCo1UOtpzjQI2SfmZ135VHu7Chha1kyyEtJ39yS9OicI49RHgIwyD7Dpw/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636176790}}
2021/11/06 13:33:11 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:37:55 [INFO ]base_init_db.go:38: DB init success
2021/11/06 13:39:22 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:39:22 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:39:22 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:39:22 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:39:22 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:39:22 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:39:52 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:39:52 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:39:52 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:40:54 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:40:55 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 13:40:55 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:40:55 [ERROR]account.go:77: update store id err
2021/11/06 13:40:55 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:40:57 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:40:57 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:40:59 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:41:00 [INFO ]account.go:294: userInfo={OpenID: Nickname:y Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/w53X2zzOWSJuaBHlPuT3Uf71uviaI9mdCo1UOtpzjQI2SfmZ135VHu7Chha1kyyEtJ39yS9OicI49RHgIwyD7Dpw/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636177259}}
2021/11/06 13:41:00 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:41:24 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:24 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:25 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:41:25 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:26 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:26 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:27 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:27 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:27 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:28 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:28 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:28 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:32 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:32 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:32 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:33 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:33 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:33 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:54 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:55 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:41:55 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:41:56 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:41:56 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:41:56 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:42:00 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:42:09 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:42:09 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:42:09 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:42:09 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:42:11 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:42:11 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:42:37 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:42:37 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:42:37 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:42:37 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:42:41 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:42:41 [INFO ]account.go:294: userInfo={OpenID: Nickname:辉会飞 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/jicmSODu452I4Yibn1yfEZgB2F59YVsTl7f8WuQCxZ2kmxU1MsrMWAsUgXxVQMG7Uib3GwlEFQiaAhNE8iblUBBWOBA/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636177360}}
2021/11/06 13:42:41 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:43:15 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:43:15 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:43:15 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:43:21 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:43:21 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:43:21 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:43:22 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:48:13 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:48:14 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:48:14 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:48:14 [ERROR]account.go:77: update store id err
2021/11/06 13:48:14 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:48:16 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:48:16 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:48:19 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:48:20 [INFO ]account.go:294: userInfo={OpenID: Nickname:辉会飞 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/jicmSODu452I4Yibn1yfEZgB2F59YVsTl7f8WuQCxZ2kmxU1MsrMWAsUgXxVQMG7Uib3GwlEFQiaAhNE8iblUBBWOBA/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636177699}}
2021/11/06 13:48:20 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:48:32 [INFO ]init.go:30: /api/v1/user/open_member
2021/11/06 13:48:32 [INFO ]wx_pay.go:51: MchId: 1609877389
2021/11/06 13:48:32 [INFO ]wx_pay.go:52: AppId: wx806c079463b5b56c
2021/11/06 13:48:32 [INFO ]wx_pay.go:53: MchSecret: DeovoMingHuiRengTianTang45675456
2021/11/06 13:48:32 [INFO ]wx_pay.go:369: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=BL77agnT56J75RkZ7pAJqMKJuAbovKyK&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA&out_trade_no=crh9tf640000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20211106134832&total_fee=59900&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2021/11/06 13:48:32 [ERROR]wx_pay.go:393: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>BL77agnT56J75RkZ7pAJqMKJuAbovKyK</nonce_str><sign>1315DD103C147B568D07E51B2C806CFE</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>crh9tf640000</out_trade_no><fee_type>CNY</fee_type><total_fee>59900</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20211106134832</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4vOn6Tf4u5UqXRwAsUm9dfA</openid><profit_sharing>N</profit_sharing></xml>
2021/11/06 13:48:32 [INFO ]wx_pay.go:369: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=7Il81XeUzz7h8ml2&package=prepay_id=wx061348327986971ce31f942c11c0860000&signType=MD5&timeStamp=1636177712&key=DeovoMingHuiRengTianTang45675456
2021/11/06 13:48:42 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:49:05 [INFO ]base_init_db.go:38: DB init success
2021/11/06 13:51:14 [INFO ]init.go:30: /api/v1/user/open_member
2021/11/06 13:51:14 [INFO ]wx_pay.go:51: MchId: 1609877389
2021/11/06 13:51:14 [INFO ]wx_pay.go:52: AppId: wx806c079463b5b56c
2021/11/06 13:51:14 [INFO ]wx_pay.go:53: MchSecret: DeovoMingHuiRengTianTang45675456
2021/11/06 13:51:14 [INFO ]wx_pay.go:369: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=C4c4pf553u91909JL3b9nEupMX9y0fWJ&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA&out_trade_no=crhah6s40000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20211106135114&total_fee=3&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2021/11/06 13:51:14 [ERROR]wx_pay.go:393: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>C4c4pf553u91909JL3b9nEupMX9y0fWJ</nonce_str><sign>C5E6BEA641C249684E861277105ABA7D</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>crhah6s40000</out_trade_no><fee_type>CNY</fee_type><total_fee>3</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20211106135114</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4vOn6Tf4u5UqXRwAsUm9dfA</openid><profit_sharing>N</profit_sharing></xml>
2021/11/06 13:51:14 [INFO ]wx_pay.go:369: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=GfGukkRMH1dKkF0m&package=prepay_id=wx06135114735852576d2f669061ca840000&signType=MD5&timeStamp=1636177874&key=DeovoMingHuiRengTianTang45675456
2021/11/06 13:51:39 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:52:23 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:52:23 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:52:23 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:52:23 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:52:24 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:52:24 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:52:24 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:52:42 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:52:42 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:52:43 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:52:43 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:52:59 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:52:59 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:52:59 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:53:00 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:53:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:53:00 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:53:00 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:53:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:53:00 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:53:08 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:53:08 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:53:08 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:53:10 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:53:10 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:53:12 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:53:12 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 13:53:12 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:53:12 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:53:15 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 13:53:15 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:53:18 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 13:53:18 [INFO ]account.go:294: userInfo={OpenID: Nickname:y Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/w53X2zzOWSJuaBHlPuT3Uf71uviaI9mdCo1UOtpzjQI2SfmZ135VHu7Chha1kyyEtJ39yS9OicI49RHgIwyD7Dpw/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636177998}}
2021/11/06 13:53:18 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:53:28 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:53:28 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:53:28 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:53:28 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:54:10 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:54:10 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:54:11 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:54:11 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:54:13 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:54:13 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:54:13 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:54:19 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:54:19 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:54:19 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:54:21 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:54:21 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:54:21 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:54:21 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:54:21 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:54:22 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:54:22 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:54:22 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:55:10 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:55:10 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:55:10 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:56:01 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:56:02 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:56:02 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:56:02 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:56:02 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:56:27 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:56:27 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:56:27 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:56:27 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:57:19 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:57:19 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:57:19 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:57:19 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:57:26 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:57:37 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:57:37 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:57:37 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:57:37 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 13:58:25 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 13:58:25 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/11/06 13:58:26 [INFO ]init.go:30: /api/v1/game_card/info
2021/11/06 13:58:26 [INFO ]init.go:30: /api/v1/user/address/list
2021/11/06 13:58:26 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 13:58:28 [INFO ]init.go:30: /api/v1/order/create
2021/11/06 13:58:28 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/11/06 13:58:28 [ERROR]order.go:216: user level 1
2021/11/06 13:58:35 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 13:58:35 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 13:58:35 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 13:59:00 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 13:59:00 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 13:59:00 [INFO ]account.go:47: resp.UnionID=
2021/11/06 13:59:00 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:02:14 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:02:14 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:02:14 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:02:14 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:02:17 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:02:17 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:02:17 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:02:25 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:02:25 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:02:26 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:02:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:02:27 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:02:27 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:02:27 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:02:43 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:02:43 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:02:43 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:02:43 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:02:52 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:02:53 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:02:53 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:02:53 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:02:55 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 14:02:55 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:02:58 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 14:02:58 [INFO ]account.go:294: userInfo={OpenID: Nickname:辉会飞 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/jicmSODu452I4Yibn1yfEZgB2F59YVsTl7f8WuQCxZ2kmxU1MsrMWAsUgXxVQMG7Uib3GwlEFQiaAhNE8iblUBBWOBA/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636178578}}
2021/11/06 14:02:59 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:03:15 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:03:15 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:03:15 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:03:50 [INFO ]init.go:30: /api/v1/user/open_member
2021/11/06 14:03:50 [INFO ]wx_pay.go:51: MchId: 1609877389
2021/11/06 14:03:50 [INFO ]wx_pay.go:52: AppId: wx806c079463b5b56c
2021/11/06 14:03:50 [INFO ]wx_pay.go:53: MchSecret: DeovoMingHuiRengTianTang45675456
2021/11/06 14:03:50 [INFO ]wx_pay.go:369: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=6yXsuVFT8n07o5w8AxV6iRe6Qzb1Y28c&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA&out_trade_no=crhddg780000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20211106140350&total_fee=3&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2021/11/06 14:03:50 [ERROR]wx_pay.go:393: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>6yXsuVFT8n07o5w8AxV6iRe6Qzb1Y28c</nonce_str><sign>67029227D6F7216AB5B5E4D80BE9D999</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>crhddg780000</out_trade_no><fee_type>CNY</fee_type><total_fee>3</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20211106140350</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4vOn6Tf4u5UqXRwAsUm9dfA</openid><profit_sharing>N</profit_sharing></xml>
2021/11/06 14:03:50 [INFO ]wx_pay.go:369: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=mXuPerebLwbyeBsl&package=prepay_id=wx06140350647555b61b7b020c9dfb740000&signType=MD5&timeStamp=1636178630&key=DeovoMingHuiRengTianTang45675456
2021/11/06 14:04:09 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:04:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:04:31 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:04:31 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:04:32 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:04:33 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:04:33 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:04:33 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:04:39 [INFO ]init.go:30: /api/v1/user/my/history_browsing
2021/11/06 14:04:56 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:04:56 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:04:56 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:04:56 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:11:05 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:11:05 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:05 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:16 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:16 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:11:17 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:11:17 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:18 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:18 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:11:18 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:19 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:19 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:11:19 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:22 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:22 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:11:22 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:49 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:11:49 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:50 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:11:50 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:54 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:11:54 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:11:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:12:00 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:12:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:12:00 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:12:08 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:12:08 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:12:08 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:12:11 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:12:12 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 14:12:12 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:12:12 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:12:17 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 14:12:17 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:12:22 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 14:12:22 [INFO ]account.go:294: userInfo={OpenID: Nickname:y Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/w53X2zzOWSJuaBHlPuT3Uf71uviaI9mdCo1UOtpzjQI2SfmZ135VHu7Chha1kyyEtJ39yS9OicI49RHgIwyD7Dpw/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636179141}}
2021/11/06 14:12:22 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:12:50 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:12:50 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:12:51 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:12:51 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:12:52 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:12:52 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:12:52 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:13:05 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:13:05 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:13:06 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:13:06 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:13:07 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:13:07 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:13:07 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:13:21 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:13:21 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:13:22 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:13:32 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:13:32 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:13:33 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:13:33 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:13:33 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:13:40 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:13:40 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:13:40 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:13:40 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:14:06 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:14:06 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:14:06 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:14:06 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:14:29 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:14:29 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:14:29 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:14:53 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:14:53 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:14:53 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:15:14 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:15:14 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:15:14 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:15:14 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:18:37 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:18:37 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:18:37 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:18:37 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:23:46 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:23:46 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:23:47 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:23:47 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:24:17 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:24:17 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:24:17 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:24:21 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:24:21 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:24:21 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:24:21 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:24:35 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 14:24:35 [INFO ]account.go:294: userInfo={OpenID: Nickname:辉会飞 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/jicmSODu452I4Yibn1yfEZgB2F59YVsTl7f8WuQCxZ2kmxU1MsrMWAsUgXxVQMG7Uib3GwlEFQiaAhNE8iblUBBWOBA/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636179875}}
2021/11/06 14:24:35 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:25:41 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:25:41 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:25:41 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:27:57 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:27:57 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:27:57 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:27:59 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:28:14 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:28:14 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:28:14 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:28:45 [INFO ]init.go:30: /api/v1/user/open_member
2021/11/06 14:28:45 [INFO ]wx_pay.go:51: MchId: 1609877389
2021/11/06 14:28:45 [INFO ]wx_pay.go:52: AppId: wx806c079463b5b56c
2021/11/06 14:28:45 [INFO ]wx_pay.go:53: MchSecret: DeovoMingHuiRengTianTang45675456
2021/11/06 14:28:45 [INFO ]wx_pay.go:369: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=BmG1baEtPQZx0o37MK270wP0rf74If16&notify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA&out_trade_no=crhj408o0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20211106142845&total_fee=3&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456
2021/11/06 14:28:45 [ERROR]wx_pay.go:393: xml: <xml><appid>wx806c079463b5b56c</appid><mch_id>1609877389</mch_id><device_info>WEB</device_info><nonce_str>BmG1baEtPQZx0o37MK270wP0rf74If16</nonce_str><sign>1460CBC4BED4E2427E1DEE9BAC4B84AB</sign><sign_type>MD5</sign_type><body>创建订单</body><attach>member_pay</attach><out_trade_no>crhj408o0000</out_trade_no><fee_type>CNY</fee_type><total_fee>3</total_fee><spbill_create_ip>39.108.188.218</spbill_create_ip><time_start>20211106142845</time_start><notify_url>https://dev.switch.deovo.com:8004/api/v1/wxpay/notice</notify_url><trade_type>JSAPI</trade_type><openid>ohuHh4vOn6Tf4u5UqXRwAsUm9dfA</openid><profit_sharing>N</profit_sharing></xml>
2021/11/06 14:28:45 [INFO ]wx_pay.go:369: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=BF3vztObuK5Pv17k&package=prepay_id=wx06142845711682ea07ee0f0f9a43530000&signType=MD5&timeStamp=1636180125&key=DeovoMingHuiRengTianTang45675456
2021/11/06 14:29:13 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:29:34 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:29:34 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:29:34 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:29:34 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:29:48 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:29:48 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:29:48 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:29:48 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:29:51 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 14:29:51 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:30:39 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:30:39 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:30:40 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:30:40 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:30:58 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:30:58 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:30:58 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:30:58 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:30:59 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:30:59 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:30:59 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:31:22 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:31:22 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 14:31:22 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:31:22 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:31:25 [INFO ]init.go:30: /api/v1/user/user_info/tel
2021/11/06 14:31:25 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:31:29 [INFO ]init.go:30: /api/v1/user/user_info/upload
2021/11/06 14:31:29 [INFO ]account.go:294: userInfo={OpenID: Nickname:y Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/w53X2zzOWSJuaBHlPuT3Uf71uviaI9mdCo1UOtpzjQI2SfmZ135VHu7Chha1kyyEtJ39yS9OicI49RHgIwyD7Dpw/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1636180288}}
2021/11/06 14:31:29 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:31:45 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:31:45 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:31:45 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:31:45 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:32:40 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:32:40 [INFO ]account.go:46: OpenID=ohuHh4pD_4PLay9k6kt_JEJMkV_s
2021/11/06 14:32:40 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:32:40 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:36:47 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:36:47 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:36:48 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:36:48 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:37:13 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 14:37:13 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 14:37:13 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:37:13 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/06 14:37:27 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:37:27 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:37:27 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:37:28 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 14:37:43 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 14:37:53 [INFO ]init.go:30: /api/v1/auth/login
2021/11/06 14:37:53 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/06 14:37:53 [INFO ]account.go:47: resp.UnionID=
2021/11/06 14:37:53 [INFO ]init.go:30: /api/v1/user/data
2021/11/06 15:08:36 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/06 15:08:36 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/06 15:08:37 [INFO ]init.go:30: /api/v1/store/list
2021/11/06 15:08:37 [INFO ]init.go:30: /api/v1/game_card/list

View File

@ -0,0 +1,58 @@
2021/11/07 18:51:31 [INFO ]base_init_db.go:38: DB init success
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/store/list
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/07 18:54:20 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/07 18:54:21 [INFO ]init.go:30: /api/v1/game_card/banner
2021/11/07 18:54:21 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/11/07 18:54:21 [INFO ]init.go:30: /api/v1/game_card/list
2021/11/07 18:59:12 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:01:31 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:01:31 [ERROR]activity.go:15: para err
2021/11/07 19:02:14 [INFO ]base_init_db.go:38: DB init success
2021/11/07 19:02:19 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:02:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:07:32 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:18:58 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:19:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:20:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:22:38 [INFO ]init.go:30: /api/v1/auth/login
2021/11/07 19:22:38 [INFO ]account.go:46: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2021/11/07 19:22:38 [INFO ]account.go:47: resp.UnionID=
2021/11/07 19:22:38 [INFO ]init.go:30: /api/v1/user/data
2021/11/07 19:22:39 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:22:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:23:57 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:24:08 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:24:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:24:43 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:25:00 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:25:21 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:25:31 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:26:49 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:27:13 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:29:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:30:02 [INFO ]init.go:30: /api/v1/activity/redeem_code/user/convert
2021/11/07 19:30:09 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:31:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:31:11 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:31:49 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:33:29 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:33:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:34:01 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:34:43 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:35:52 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:36:01 [INFO ]init.go:30: /api/v1/activity/redeem_code/user/convert
2021/11/07 19:36:01 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:36:31 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:41:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:43:11 [INFO ]init.go:30: /api/v1/auth/login
2021/11/07 19:43:11 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/11/07 19:43:11 [INFO ]account.go:47: resp.UnionID=
2021/11/07 19:43:11 [INFO ]init.go:30: /api/v1/user/data
2021/11/07 19:44:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/11/07 19:44:20 [INFO ]init.go:30: /api/v1/activity/redeem_code/user/convert
2021/11/07 19:44:20 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,596 @@
2021/12/11 10:04:05 [INFO ]base_init_db.go:38: DB init success
2021/12/11 10:06:51 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:06:51 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:06:51 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:06:52 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:06:52 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:06:52 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:06:53 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:06:55 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:06:55 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:11:44 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:11:44 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:11:44 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:11:50 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:11:50 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:11:50 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:11:51 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:11:51 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:11:51 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:11:53 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:11:53 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:11:53 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:11:56 [INFO ]init.go:30: /api/v1/auth/login
2021/12/11 10:11:56 [INFO ]account.go:46: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2021/12/11 10:11:56 [INFO ]account.go:47: resp.UnionID=
2021/12/11 10:11:56 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:11:56 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:11:57 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:11:57 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:11:58 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:11:59 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:12:00 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:12:00 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:12:00 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:12:00 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:12:01 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:12:01 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:12:03 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:12:27 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:12:28 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 10:12:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 10:19:53 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:19:53 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:19:53 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 10:20:49 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 10:20:49 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 10:20:49 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 13:59:33 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 13:59:33 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 13:59:33 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 13:59:33 [ERROR]game_card.go:144: err: must at least pass one gameCardId in GameCardIdIn
2021/12/11 13:59:34 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 13:59:34 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 13:59:34 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 13:59:34 [ERROR]game_card.go:144: err: must at least pass one gameCardId in GameCardIdIn
2021/12/11 14:05:39 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 14:05:39 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 14:05:39 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 14:05:41 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 14:05:41 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 14:05:41 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 14:05:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 14:05:42 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 14:05:42 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 14:05:49 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 14:05:49 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 14:05:49 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 14:05:50 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 14:05:50 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 14:06:03 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 14:06:03 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 14:06:03 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 14:06:07 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 14:06:07 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 14:06:07 [ERROR]order.go:238: unreturnedOrders
2021/12/11 14:06:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 14:06:13 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 14:06:14 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 14:07:35 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 14:07:35 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 14:07:35 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 14:07:39 [INFO ]init.go:30: /api/v1/auth/login
2021/12/11 14:07:39 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/12/11 14:07:39 [INFO ]account.go:47: resp.UnionID=
2021/12/11 14:07:39 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 14:07:40 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 14:07:42 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 14:07:42 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 14:07:43 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 14:07:43 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 14:07:43 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 14:07:54 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 14:07:54 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 14:07:54 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:07:54 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:07:55 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:07:55 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:07:57 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:07:57 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:07:59 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:07:59 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:12:53 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:21:39 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:21:39 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:22:11 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:22:11 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:22:11 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:22:13 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 14:22:13 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 14:22:13 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 14:22:44 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 14:22:44 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 14:22:45 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:22:45 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:25:37 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:25:37 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:26:35 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 14:26:36 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 14:30:55 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 14:30:55 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 14:30:55 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:07:37 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:07:37 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:07:37 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:07:56 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:07:56 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:07:56 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:07:57 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:08:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:08:00 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:08:00 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:08:00 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:08:02 [INFO ]init.go:30: /api/v1/user/invite_list
2021/12/11 15:08:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:08:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:08:04 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 15:08:06 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 15:08:10 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:08:10 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:08:10 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:08:13 [INFO ]init.go:30: /api/v1/auth/login
2021/12/11 15:08:13 [INFO ]account.go:46: OpenID=ohuHh4vOn6Tf4u5UqXRwAsUm9dfA
2021/12/11 15:08:13 [INFO ]account.go:47: resp.UnionID=
2021/12/11 15:08:13 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 15:08:13 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:08:58 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:08:58 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:08:59 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:08:59 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 15:08:59 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:09:00 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:09:18 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 15:09:18 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 15:09:18 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:09:18 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:09:20 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:09:20 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:11:17 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:11:17 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:11:17 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:11:19 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:11:19 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 15:11:19 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:11:20 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:11:36 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 15:11:36 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 15:11:37 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:11:37 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:12:12 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:12:12 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 15:12:12 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:15:32 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:15:32 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:17:23 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:17:23 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:17:23 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:34:02 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:34:02 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:34:02 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:34:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:34:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:34:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:38:28 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:38:28 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:38:28 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:38:29 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:38:32 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 15:38:32 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 15:38:33 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:38:35 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:38:35 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:38:35 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:38:36 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:38:36 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:38:37 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:38:37 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 15:38:37 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:38:38 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 15:38:38 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 15:38:38 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:38:39 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:38:39 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:38:39 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:43:39 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:46:45 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:46:45 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:46:46 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:46:46 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:48:19 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:48:19 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:48:19 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:48:20 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:48:21 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:48:26 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:48:26 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:48:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:48:28 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:48:28 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:48:32 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:48:33 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:51:06 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:51:06 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 15:51:06 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:51:08 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:52:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:52:38 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 15:52:38 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:52:39 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 15:52:40 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 15:52:41 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:52:41 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:52:41 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:52:42 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:52:42 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:52:43 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:52:43 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 15:52:43 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:52:46 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 15:52:46 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 15:52:46 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:52:46 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:52:47 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:52:47 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:52:59 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 15:52:59 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 15:52:59 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 15:53:01 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:53:01 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 15:53:01 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 15:53:02 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 15:53:02 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:53:04 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 15:53:06 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 15:53:06 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 15:53:07 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:53:08 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:53:08 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:53:09 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:53:59 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:53:59 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 15:53:59 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:54:00 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:54:00 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:55:48 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:55:48 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:55:48 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:55:49 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 15:55:50 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:55:50 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 15:55:50 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:57:14 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 15:57:14 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 16:18:54 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:18:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:18:54 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:18:55 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:18:56 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 16:18:56 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 16:18:57 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 16:18:57 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 16:18:57 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 16:18:59 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 16:18:59 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 16:18:59 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:18:59 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 16:19:00 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:19:00 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 16:22:54 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:22:54 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 16:22:54 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:22:54 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 16:22:56 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:22:56 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 16:22:56 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:22:57 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 16:22:57 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 16:23:05 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:23:05 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:23:05 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:44:03 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:44:03 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:44:03 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:44:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:44:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:44:04 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:44:05 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:44:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:48:58 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:48:58 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:48:59 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:48:59 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:48:59 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:00 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:00 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:49:00 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:49:00 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:01 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:01 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:49:01 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:49:01 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:02 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:02 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:49:14 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:49:14 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:49:14 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:16 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:49:16 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:49:16 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:17 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:17 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:49:17 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:49:17 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:18 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:18 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:49:19 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:49:19 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:29 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:49:29 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:49:29 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:31 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:49:31 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:49:31 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:49:32 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:32 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:49:32 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:50:46 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:50:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:50:47 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:50:47 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:50:47 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:50:48 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 16:50:48 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 16:50:49 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 16:50:49 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 16:50:49 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 16:50:54 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:50:54 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:50:54 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:51:28 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:51:28 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:51:28 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:51:31 [INFO ]init.go:30: /api/v1/auth/login
2021/12/11 16:51:31 [INFO ]account.go:46: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ
2021/12/11 16:51:31 [INFO ]account.go:47: resp.UnionID=
2021/12/11 16:51:31 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:51:31 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:52:11 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:52:11 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:52:12 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:52:23 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:52:23 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:52:23 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:55:25 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 16:55:25 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 16:55:25 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 16:55:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 16:55:27 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 16:55:27 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:04:22 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:04:22 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:04:23 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:04:23 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:04:23 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:07:13 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:07:13 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:07:14 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:07:14 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:07:21 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 17:07:21 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 17:07:21 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 17:07:24 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:07:24 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:07:25 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:07:25 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:07:25 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:07:26 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:07:26 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:07:26 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:07:27 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:07:28 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:07:28 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:08:03 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:03 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 17:08:03 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:04 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:05 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:08:16 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:16 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:08:27 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:27 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 17:08:27 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:27 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:28 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:08:34 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:08:34 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:08:35 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:08:35 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:08:35 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:08:37 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:08:46 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:08:46 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:08:46 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:08:47 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:10:53 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:10:53 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:11:04 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:11:04 [INFO ]init.go:30: /api/v1/order/cancel
2021/12/11 17:11:04 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:16:20 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:16:20 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:16:23 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:16:23 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:16:23 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:16:23 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:16:23 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:16:25 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:16:25 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":14,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:16:26 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:16:26 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:16:26 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:16:26 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:16:27 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:16:27 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:21:26 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:32:35 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:32:35 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:32:35 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:32:48 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 17:32:48 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 17:32:48 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 17:32:48 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:32:50 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:32:50 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:32:51 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:32:51 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:32:51 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:32:53 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:32:53 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:32:53 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:32:53 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:32:54 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:32:54 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:36:10 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:36:10 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:36:10 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:36:10 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:36:10 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:36:10 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:39:38 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:39:38 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:39:38 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:39:41 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:39:41 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:39:41 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:40:51 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:40:51 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":13,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:40:52 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:40:52 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:45:52 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:50:00 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:50:00 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:50:01 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:50:01 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:51:18 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:51:18 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:51:18 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:51:20 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:51:20 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:51:21 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:51:21 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:51:21 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:51:22 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:52:23 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:52:24 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:52:24 [INFO ]order.go:182: bodyString: {"game_card_id":823,"store_id":12,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:52:25 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:52:25 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:52:25 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:52:25 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:56:07 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:56:07 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:56:07 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:56:10 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 17:56:10 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 17:56:10 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 17:56:10 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:56:10 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 17:56:11 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 17:56:11 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 17:56:11 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 17:56:34 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 17:56:34 [INFO ]order.go:182: bodyString: {"game_card_id":822,"store_id":12,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 17:56:34 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:56:34 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:56:35 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:56:35 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:57:25 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:57:25 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:57:55 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:57:55 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:57:56 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 17:57:56 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 17:58:09 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:58:12 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 17:58:14 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:58:22 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 17:58:23 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:58:24 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:58:24 [INFO ]init.go:30: /api/v1/user/data
2021/12/11 17:58:26 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 17:58:26 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 17:58:26 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 17:58:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 17:58:31 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 17:58:32 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 18:08:04 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 18:15:14 [INFO ]init.go:30: /api/v1/order/list
2021/12/11 18:15:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list
2021/12/11 18:15:17 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 18:15:17 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 18:15:17 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 18:15:17 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:18 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 18:15:19 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:20 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 18:15:20 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:20 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 18:15:20 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:21 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:36 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:40 [INFO ]init.go:30: /api/v1/game_card/type/list
2021/12/11 18:15:40 [INFO ]init.go:30: /api/v1/game_card/banner
2021/12/11 18:15:40 [INFO ]init.go:30: /api/v1/game_card/list
2021/12/11 18:15:42 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:42 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 18:15:43 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:43 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 18:15:43 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:44 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:52 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:52 [INFO ]init.go:30: /api/v1/game_card/game_type
2021/12/11 18:15:53 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:15:53 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 18:15:53 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:54 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:15:58 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 18:15:58 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":17,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 18:15:58 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:15:58 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:15:59 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:15:59 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:16:36 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:16:36 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:20:50 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:20:50 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:20:50 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:20:52 [INFO ]init.go:30: /api/v1/game_card/info
2021/12/11 18:20:52 [INFO ]init.go:30: /api/v1/user/address/list
2021/12/11 18:20:52 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:20:54 [INFO ]init.go:30: /api/v1/store/list
2021/12/11 18:20:57 [INFO ]init.go:30: /api/v1/order/create
2021/12/11 18:20:57 [INFO ]order.go:182: bodyString: {"game_card_id":825,"store_id":17,"price":0,"express_fee":0,"delivery_type":1}
2021/12/11 18:20:57 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:20:57 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:20:58 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:20:58 [INFO ]init.go:30: /api/v1/store/info
2021/12/11 18:25:57 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:25:57 [ERROR]order.go:106: err: record not found
2021/12/11 18:28:45 [INFO ]init.go:30: /api/v1/order/info
2021/12/11 18:28:45 [ERROR]order.go:106: err: record not found

View File

@ -66,64 +66,18 @@ func ConfigAppRouter(r gin.IRouter) {
search.Use(auth.UserAccessAuth)
search.POST("history", controller.GameCardSearchHistory) // 游戏卡搜索历史
}
//tui := api.Group("tui")
//{
// tui.POST("list", controller.TuiList) // 推文列表
// tui.POST("detail", controller.TuiDetail) // 推文详情
//}
//
//video := api.Group("video")
//{
// video.POST("list", controller.VideoList)
// video.POST("type", controller.VideoType)
// video.POST("detail", controller.VideoDetail)
// video.Use(auth.UserAccessAuth)
//
//}
//userBubble := api.Group("user/bubble").Use(auth.UserAccessAuth)
//{
// userBubble.POST("list", controller.UserBubbleList)
// userBubble.POST("detail", controller.UserBubbleDetail)
// userBubble.POST("gather", controller.UserBubbleGather)
//}
//prize := api.Group("prize")
//{
// //prize.POST("list/by_type", controller.PrizeListByType) // 奖品品列表
// //prize.POST("exchanged/list", controller.PrizeExchangedList) // 奖品兑换记录
//
// prizeAuth := prize.Use(auth.UserAccessAuth)
// {
// prize.POST("list", controller.PrizeList) // 奖品品列表
// prize.POST("detail", controller.PrizeDetail) // 奖品详情
//
// prizeAuth.POST("assistance", controller.AssistancePrize) // 奖品助力
// prizeAuth.POST("exchange", controller.PrizeExchange) // 奖品兑换
// //prizeAuth.POST("invite_fo", controller.PrizeInviteFO) // 奖品邀请好友下首单
// prizeAuth.POST("my", controller.MyPrize) // 我的奖品
// prizeAuth.POST("assistance/detail", controller.PrizeAssistanceDetail) // 奖品助力详情
// prizeAuth.POST("delivery", controller.PrizeDelivery) // 奖品申请发货
// prizeAuth.POST("delivery/list", controller.PrizeDeliveryList) // 奖品申请发货信息列表
// prizeAuth.POST("wx_pay", controller.PrizeWXPay) // 奖品申请发货邮费支付
//
// //prizeAuth.POST("collect", controller.PrizeCollect) // 奖品收藏
// //prizeAuth.POST("collect/list", controller.PrizeCollectList) // 收藏列表
// //prizeAuth.POST("share_code", controller.PrizeShareCode) // 获取奖品分享邀请码
// }
//}
//apiStep := api.Use(auth.UserAccessAuth)
//{
// apiStep.POST("wx_step/upload", controller.WxStepUpload) // 获取当前微信运动步数
// apiStep.POST("user_info/upload", controller.UserInfoUpload) // 上传用户信息
//}
user := api.Group("user")
{
user.Use(auth.UserAccessAuth) // TODO
user.POST("data", controller.UserData) // 用户数据
user.POST("user_info/upload", controller.UserInfoUpload) // 上传用户信息
user.POST("user_info/tel", controller.UserTel) // 获取用户手机号
user.POST("user_info/update", controller.UserInfoUpdate) // 修改用户信息
user.POST("open_member", controller.OpenMember) // 开通会员
user.Use(auth.UserAccessAuth) // TODO
user.POST("data", controller.UserData) // 用户数据
user.POST("user_info/upload", controller.UserInfoUpload) // 上传用户信息
user.POST("user_info/tel", controller.UserTel) // 获取用户手机号
user.POST("user_info/update", controller.UserInfoUpdate) // 修改用户信息
user.POST("open_member", controller.OpenMember) // 开通会员
user.POST("pay_deposit", controller.PayDeposit) // 支付押金
user.POST("refund_deposit", controller.RefundDeposit) // 押金
user.POST("refund_deposit_record", controller.UserDepositRefundRecordList) // 押金记录
user.POST("common_problem/list", controller.CommonProblemList) // 常见问题列表
//user.POST("service/wechat_id", controller.GetCustomerServiceWechatId) // 获取客服微信号
@ -137,54 +91,6 @@ func ConfigAppRouter(r gin.IRouter) {
store.POST("info", controller.StoreInfo) // 门店详情
}
//// TODO member模块独立, 命名规范
//member := api.Group("user/member")
//{
// member.Use(auth.UserAccessAuth)
//
// member.POST("verification/code", controller.MemberGetVerificationCode) // 获取验证码
// member.POST("detail", controller.MemberDetail) // 会员详情
// member.POST("lv2/upgrade", controller.MemberLv2Upgrade) // 会员升级 lv1 -> lv2
// member.POST("lv3/upgrade", controller.MemberLv3Upgrade) // 会员升级 lv2 -> lv3
// member.POST("invite/info", controller.MemberInviteInfo) // 邀请人信息
//
//}
//userIncome := api.Group("user/income")
//{
// userIncome.Use(auth.UserAccessAuth)
//
// userIncome.POST("data", controller.UserIncomeData) // 收益概览
// userIncome.POST("list", controller.UserIncomeList) // 收益列表
// userIncome.POST("info", controller.UserIncomeInfo) // 收益概览(包含 0元购)
// userIncome.POST("member/order/list", controller.MemberOrderList) // 会员订单列表
// userIncome.POST("pdd/order/list", controller.PDDOrderList) // PDD订单列表
// userIncome.POST("pdd/enrolled/detail/list", controller.PDDEnrolledDetailList) // PDD 已入账详情列表
// userIncome.POST("enroll/my/order/list", controller.EnrollMyOrderList) // 入账中我的订单列表
//
//}
//userInvite := api.Group("user/invite")
//{
// userInvite.Use(auth.UserAccessAuth)
//
// userInvite.POST("list", controller.UserInviteList) // 邀请列表
// userInvite.POST("data", controller.UserInviteData) // 邀请概览
//}
////step := api.Group("step")
////{
////stepAuth := step.Use(auth.UserAccessAuth)
//
////stepAuth.POST("to_vm", controller.StepToVm) // 步数兑换 // 合并到泡泡领取中
////}
//// 用户的奖品
//userPrize := api.Group("user/prize")
//{
// userPrize.Use(auth.UserAccessAuth)
//
// userPrize.POST("list", controller.UserPrizeList) //用户的奖品列表
// //userPrize.POST("apply_delivery", controller.UserPrizeApplyDelivery) //申请奖品发货
// userPrize.POST("detail", controller.UserPrizeDetail) //详情, 发货状态
//}
address := api.Group("user/address")
{
@ -217,16 +123,18 @@ func ConfigAppRouter(r gin.IRouter) {
order.POST("express", controller.OrderExpress) // 订单物流
order.POST("express_company/list", controller.ExpressCompanyList) // 物流公司列表
order.POST("order/wx_pay/success", controller.WXPaySuccess) // 微信支付成功
order.POST("cancel", controller.OrderCancel) // 订单取消
order.Use(auth.UserAccessAuth) // TODO
order.POST("create", controller.OrderCreate) // 创建订单
order.POST("pay", controller.OrderPay) // 订单支付
order.POST("list", controller.OrderList) // 订单列表
order.POST("revert", controller.OrderRevert) // 订单归还
order.POST("revert/cancel", controller.OrderRevertCancel) // 订单归还
order.Use(auth.UserAccessAuth) // TODO
order.POST("create", controller.OrderCreate) // 创建订单
order.POST("pay", controller.OrderPay) // 订单支付
order.POST("list", controller.OrderList) // 订单列表
order.POST("revert", controller.OrderRevert) // 订单归还
order.POST("revert/cancel", controller.OrderRevertCancel) // 订单归还
//order.POST("express_fee/refund", controller.ExpressFeeRefund) // 物流费退款
order.POST("confirm_receipt", controller.ConfirmReceipt) // 订单确认收货
order.POST("cancel", controller.OrderCancel) // 订单取消
}
article := api.Group("article")
@ -242,57 +150,13 @@ func ConfigAppRouter(r gin.IRouter) {
article.POST("collect/list", controller.ArticleCollectList) //
}
activity := api.Group("activity")
{
//// TODO 配置
//config := api.Group("config")
//{
// config.POST("sys", controller.AuthLogin) // 系统配置
// config.POST("step", controller.AuthLogin) // 计步配置
// config.POST("share", controller.AuthLogin) // 分享配置,不同场景对应不同的分享图文
//}
//// TODO 客服
//kf := api.Group("kf")
//{
// kf.POST("get", controller.AuthLogin) // 用户的专属客服
//}
//// TODO 用户设置
//setting := api.Group("setting")
//{
// setting.POST("push", controller.AuthLogin) // 用户推送消息设置
//}
//// TODO 提现
//withdraw := api.Group("withdraw")
//{
// userPrize.Use(auth.UserAccessAuth)
//
// withdraw.POST("apply", controller.WithdrawApply) // 申请提现
// withdraw.POST("list", controller.WithdrawList) // 提现记录
// withdraw.POST("state", controller.WithdrawState) // 提现状态
//}
//// TODO 秒杀
//seckill := api.Group("seckill")
//{
// seckill.POST("list", controller.AuthLogin) //
//}
//
//qiniu := api.Group("qiniu")
//{
// qiniu.Use(auth.UserAccessAuth)
// qiniu.POST("token", controller.QiniuToken)
//}
//// TODO 过渡版本,更新后删除以下接口
//apiV2 := r.Group("/api/" + API_VERSION_V2)
//{
// apiV2.POST("upload_user_info", controller.UserInfoUpload) // 上传用户信息V2 小程序:2.1.3
//}
//authGroupV2 := apiV2.Group("auth")
//{
// authGroupV2.POST("login", controller.AuthLogin) // 新用户登录 旧用户刷新accessToken
//}
//userV2 := apiV2.Group("user")
//{
// userV2.Use(auth.UserAccessAuth)
// userV2.POST("data",controller.UserDataV2)
//}
activity.Use(auth.UserAccessAuth)
activity.POST("redeem_code/user_redeem_code/list", controller.UserRedeemCodeList) // 详情
activity.POST("redeem_code/user/convert", controller.UserConvertRedeemCode) // 会员兑换码
}
}