From a0a31709e537e8ab6c00f7ba8f560c6f5b8cfa52 Mon Sep 17 00:00:00 2001 From: li Date: Sun, 16 Jan 2022 16:56:20 +0800 Subject: [PATCH] fix: --- controller/game_card.go | 20 +- controller/order.go | 170 +++++---- controller/store.go | 7 +- controller/user.go | 64 +++- lib/status/status.go | 14 +- model/autogenerated_user.go | 204 ++++++++-- model/config.go | 49 ++- model/config_test.go | 38 ++ model/game_card.go | 20 + model/order.go | 12 +- model/user.go | 29 +- pack/log_server/server.2022-01-16.log | 531 ++++++++++++++++++++++++++ router/router_app.go | 2 + 13 files changed, 1015 insertions(+), 145 deletions(-) create mode 100644 model/config_test.go create mode 100644 pack/log_server/server.2022-01-16.log diff --git a/controller/game_card.go b/controller/game_card.go index 7e22b7e..4f856fd 100644 --- a/controller/game_card.go +++ b/controller/game_card.go @@ -288,13 +288,18 @@ func PushWXPayNotice(c *gin.Context) { expireTime = user.MemberExpire.AddDate(1, 0, 0) } - configInfo, err := model.PayConfigInfo() + //configInfo, err := model.PayConfigInfo() + //if err != nil { + // logger.Error("err:", err) + // return + //} + memberConfig, err := model.GetMemberConfig(record.MemberLevel) if err != nil { - logger.Error("err:", err) + logger.Error("GetMemberConfig err:", err) return } - err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: 2, MemberExpire: expireTime, Deposit: configInfo.DepositFee}) + err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit}) if err != nil { logger.Error("err:", err) } @@ -313,6 +318,7 @@ func PushWXPayNotice(c *gin.Context) { MemberType: 2, ToUid: record.Uid, MemberStatus: 2, + MemberLevel: record.MemberLevel, } err := userInvite.Create(model.DB) if err != nil { @@ -321,7 +327,7 @@ func PushWXPayNotice(c *gin.Context) { } else { qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater() if user.MemberLevel != 2 { - qs = qs.SetMemberOpenTime(time.Now()) + qs = qs.SetMemberOpenTime(time.Now()).SetMemberLevel(record.MemberLevel) } num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum() if err != nil { @@ -333,8 +339,8 @@ func PushWXPayNotice(c *gin.Context) { if invite.FromUid != 0 { inviteUser := model.GetUserByUid(invite.FromUid) - if inviteUser.UserType != 2 && user.MemberLevel != 2 { - err := model.CodeSendToUser(invite.FromUid, model.CodeTypeMemberCard30,model.RedeemCodeActivityTypeUserInvite) + if inviteUser.UserType != 2 && user.MemberLevel != 2 { // 邀请 新用户推送一次 + err := model.CodeSendToUser(invite.FromUid, model.CodeTypeMemberCard30, model.RedeemCodeActivityTypeUserInvite) if err != nil { logger.Error("err:", err) } @@ -344,7 +350,7 @@ func PushWXPayNotice(c *gin.Context) { } if user.MemberLevel != 2 { - err = model.CodeSendToUser(user.Uid, model.CodeTypeMemberCard30,model.RedeemCodeActivityTypeStore) + err = model.CodeSendToUser(user.Uid, model.CodeTypeMemberCard30, model.RedeemCodeActivityTypeStore) if err != nil { logger.Error("err:", err) } diff --git a/controller/order.go b/controller/order.go index 11efa14..850f43d 100644 --- a/controller/order.go +++ b/controller/order.go @@ -161,12 +161,12 @@ func OrderCreate(c *gin.Context) { //} req := struct { - GameCardId uint64 `json:"game_card_id"` - StoreId uint64 `json:"store_id"` - UserAddressId uint64 `json:"user_address_id"` - Price uint32 `json:"price"` - DeliveryType uint8 `json:"delivery_type"` // 取货方式 - ExpressFee uint32 `json:"express_fee"` + GameCardList []model.CardInfo `json:"game_card_list"` + StoreId uint64 `json:"store_id"` + UserAddressId uint64 `json:"user_address_id"` + Price uint32 `json:"price"` + DeliveryType uint8 `json:"delivery_type"` // 取货方式 + ExpressFee uint32 `json:"express_fee"` }{} bodyString, err := ioutil.ReadAll(c.Request.Body) @@ -222,7 +222,21 @@ func OrderCreate(c *gin.Context) { RespJson(c, status.OrderUnpaidDeposit, nil) return } - + memberConfig, err := model.GetMemberConfig(user.MemberLevel) + if err != nil { + logger.Error("GetMemberConfig err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + cardCount := uint32(0) + for _, v := range req.GameCardList { + cardCount += v.Count + } + if memberConfig.MemberLever < cardCount { + logger.Error("GetMemberConfig err:", err) + RespJson(c, status.OrderMemberLevelLow, nil) + return + } model.UnPayOrderSetCancel(user.Uid) orderCreateLocker.Lock() @@ -240,7 +254,7 @@ func OrderCreate(c *gin.Context) { return } - online, err := model.IsGameCardOnline(uint32(req.GameCardId)) + online, err := model.IsGameCardListOnline(req.GameCardList) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) @@ -262,7 +276,7 @@ func OrderCreate(c *gin.Context) { order := model.Order{ Uid: uint64(uc.Uid), - GameCardId: req.GameCardId, + GameCardId: 0, StoreId: req.StoreId, UserAddressId: req.UserAddressId, DeliveryType: req.DeliveryType, @@ -278,80 +292,80 @@ func OrderCreate(c *gin.Context) { //tx := model.TransactionBegin() ////TODO 以支付成功作为订单下单成功的依据,不是订单创建 已修改 - var gameCardGoodsStock model.GameCardGoodsStock - err = model.NewGameCardGoodsStockQuerySet(model.DB).StoreIdEq(req.StoreId).GameCardIdEq(req.GameCardId).One(&gameCardGoodsStock) - if err != nil { - logger.Error("err:", err) - RespJson(c, status.InternalServerError, nil) - return - } - if gameCardGoodsStock.RentStock <= 0 { - logger.Error("order stock out ") - RespJson(c, status.OrderStockOut, nil) - return - } - - fmt.Println("PayPrice:", order.PayPrice) - if req.Price == 0 { - order.PayStatus = model.PayStatusPaid - fmt.Println("orderId:", order.PayStatus) - err = order.OrderCreate() - if err != nil { - logger.Error("err:", err) - RespJson(c, status.InternalServerError, nil) - return - } - - // 减库存 - sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) - fmt.Println("sql:", sql) - err = model.DB.Exec(sql).Error - if err != nil { - logger.Errorf("err:", err) - RespJson(c, status.InternalServerError, nil) - return - } - - ret := map[string]interface{}{ - "web_pay": "", - "order_id": order.ID, - } - RespOK(c, ret) - return - } - - begin := model.DB.Begin() - //err = order.OrderCreate() + //var gameCardGoodsStock model.GameCardGoodsStock + //err = model.NewGameCardGoodsStockQuerySet(model.DB).StoreIdEq(req.StoreId).GameCardIdEq(req.GameCardId).One(&gameCardGoodsStock) //if err != nil { // logger.Error("err:", err) // RespJson(c, status.InternalServerError, nil) // return //} - err = order.Create(begin) - if err != nil { - begin.Rollback() - logger.Error("err:", err) - RespJson(c, status.InternalServerError, nil) - return - } - - // 减库存 - sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) - fmt.Println("sql:", sql) - err = begin.Exec(sql).Error - if err != nil { - begin.Rollback() - logger.Errorf("err:", err) - RespJson(c, status.InternalServerError, nil) - return - } - err = begin.Commit().Error - if err != nil { - begin.Rollback() - logger.Errorf("err:", err) - RespJson(c, status.InternalServerError, nil) - return - } + //if gameCardGoodsStock.RentStock <= 0 { + // logger.Error("order stock out ") + // RespJson(c, status.OrderStockOut, nil) + // return + //} + // + //fmt.Println("PayPrice:", order.PayPrice) + //if req.Price == 0 { + // order.PayStatus = model.PayStatusPaid + // fmt.Println("orderId:", order.PayStatus) + // err = order.OrderCreate() + // if err != nil { + // logger.Error("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + // } + // + // // 减库存 + // sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) + // fmt.Println("sql:", sql) + // err = model.DB.Exec(sql).Error + // if err != nil { + // logger.Errorf("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + // } + // + // ret := map[string]interface{}{ + // "web_pay": "", + // "order_id": order.ID, + // } + // RespOK(c, ret) + // return + //} + // + //begin := model.DB.Begin() + ////err = order.OrderCreate() + ////if err != nil { + //// logger.Error("err:", err) + //// RespJson(c, status.InternalServerError, nil) + //// return + ////} + //err = order.Create(begin) + //if err != nil { + // begin.Rollback() + // logger.Error("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + //} + // + //// 减库存 + //sql := fmt.Sprintf("UPDATE game_card_goods_stock SET rent_stock= rent_stock-1 WHERE store_id=%d AND game_card_id=%d;", req.StoreId, req.GameCardId) + //fmt.Println("sql:", sql) + //err = begin.Exec(sql).Error + //if err != nil { + // begin.Rollback() + // logger.Errorf("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + //} + //err = begin.Commit().Error + //if err != nil { + // begin.Rollback() + // logger.Errorf("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + //} orderId := fmt.Sprintf("%d", order.ID) //orderId = "100000" diff --git a/controller/store.go b/controller/store.go index 48eb361..04ebeef 100644 --- a/controller/store.go +++ b/controller/store.go @@ -57,6 +57,9 @@ func ShoppingCartAdd(c *gin.Context) { RespJson(c, status.BadRequest, nil) return } + //fmt.Println("GameCardId:",req.GameCardId) + //fmt.Println("AddType:",req.AddType) + if req.GameCardId == 0 { logger.Error("GameCardId is 0") RespJson(c, status.BadRequest, nil) @@ -96,7 +99,9 @@ func ShoppingCartAdd(c *gin.Context) { } else if req.AddType == 2 { shoppingCart.Count -= 1 } - + if shoppingCart.Count < 0 { + shoppingCart.Count = 0 + } _, err = model.NewShoppingCartQuerySet(model.DB).IDEq(shoppingCart.ID).GetUpdater().SetCount(shoppingCart.Count).UpdateNum() if err != nil { logger.Error("err:", err) diff --git a/controller/user.go b/controller/user.go index c57c59a..fdf541c 100644 --- a/controller/user.go +++ b/controller/user.go @@ -205,6 +205,14 @@ func UserInfoUpdate(c *gin.Context) { } func OpenMember(c *gin.Context) { + req := struct { + MemberLevel uint32 `json:"member_level"` // 昵称 + }{} + if c.ShouldBindJSON(&req) != nil { + logger.Error("parameter err") + RespJson(c, status.BadRequest, nil) + return + } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) @@ -213,12 +221,19 @@ func OpenMember(c *gin.Context) { user := model.GetUserByUid(uc.Uid) - configInfo, err := model.PayConfigInfo() + //configInfo, err := model.PayConfigInfo() + //if err != nil { + // logger.Error("err:", err) + // RespJson(c, status.InternalServerError, nil) + // return + //} + memberConfig, err := model.GetMemberConfig(req.MemberLevel) if err != nil { logger.Error("err:", err) RespJson(c, status.InternalServerError, nil) return } + //totalFee := uint32(MemberFee + DepositFee) ////totalFee = uint32(3) // TODO 测试 //if user.Deposit == 300 { @@ -226,10 +241,11 @@ func OpenMember(c *gin.Context) { // // //totalFee = uint32(1) // TODO 测试 //} - fmt.Println("configInfo.MemberFee : configInfo.DepositFee", configInfo.MemberFee, configInfo.DepositFee) - totalFee := configInfo.MemberFee + configInfo.DepositFee - if user.Deposit == configInfo.DepositFee { - totalFee = configInfo.MemberFee + fmt.Println("configInfo.MemberFee : configInfo.DepositFee", memberConfig.MemberFee, memberConfig.MemberDeposit) + + totalFee := memberConfig.MemberFee + memberConfig.MemberDeposit + if user.Deposit == memberConfig.MemberDeposit { + totalFee = memberConfig.MemberFee } if totalFee == 0 { logger.Error(errors.New("totalFee is 0")) @@ -244,7 +260,7 @@ func OpenMember(c *gin.Context) { //} //orderSn := utils.GetSerialNo32HEXString() orderSn := model.GetOrderSn() - err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn}.Insert() + err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn,MemberLevel: req.MemberLevel}.Insert() if err != nil { logger.Error(errors.New("WebPay err")) RespJson(c, status.InternalServerError, nil) @@ -276,14 +292,23 @@ func PayDeposit(c *gin.Context) { RespJson(c, status.InternalServerError, nil) return } - - configInfo, err := model.PayConfigInfo() + level := user.MemberLevel + if level == model.MemberLevelPeriod { + level = model.MemberLevelGold + } + //configInfo, err := model.PayConfigInfo() + //if err != nil { + // logger.Error("err:", err) + // return + //} + memberConfig, err := model.GetMemberConfig(level) if err != nil { - logger.Error("err:", err) + logger.Error("GetMemberConfig err:",err) + RespJson(c, status.InternalServerError, nil) return } - totalFee := configInfo.DepositFee + totalFee := memberConfig.MemberDeposit if totalFee == 0 || user.Deposit == totalFee { logger.Error(errors.New("totalFee is 0")) RespJson(c, status.InternalServerError, nil) @@ -379,6 +404,23 @@ func UserDepositRefundRecordList(c *gin.Context) { RespOK(c, resp) } +func MemberConfigList(c *gin.Context) { + //uc := auth.GetCurrentUser(c) + //if uc == nil { + // RespJson(c, status.Unauthorized, nil) + // return + //} + + resp, err := model.MemberConfigInfo() + if err != nil { + logger.Errorf("err:", err) + RespJson(c, status.InternalServerError, nil) + return + } + + RespOK(c, resp) +} + // 升级 1-黄金会员 2-白金会员 3-黑金会员 // 开通会员 // 升级会员 @@ -386,3 +428,5 @@ func UserDepositRefundRecordList(c *gin.Context) { // 购物车 // 押金 +// 会员列表 开通会员 下订单 借卡 还卡 +// 会员升级 diff --git a/lib/status/status.go b/lib/status/status.go index 3266ea3..f0becb7 100644 --- a/lib/status/status.go +++ b/lib/status/status.go @@ -82,14 +82,14 @@ const ( AwardOffShelves = 500407 //奖品下架 AwardExchangeOut = 500408 //奖品已兑完 - NotMember = 500501 //非会员 - HadReceiveReward = 500502 // 已经领取过奖励 - OrderDelivered = 500503 // 订单已发货 - OrderCompleted = 500504 // 订单已完成 - OrderStockOut = 500505 // 没有库存 - OrderUnpaidDeposit = 500506 // 没有库存 - + NotMember = 500501 //非会员 + HadReceiveReward = 500502 // 已经领取过奖励 + OrderDelivered = 500503 // 订单已发货 + OrderCompleted = 500504 // 订单已完成 + OrderStockOut = 500505 // 没有库存 + OrderUnpaidDeposit = 500506 // 未交押金 RefundDepositSubmitted = 500507 // 已提交押金退款 + OrderMemberLevelLow = 500508 // 会员等级低 ToastErr = 600 // 报错 ) diff --git a/model/autogenerated_user.go b/model/autogenerated_user.go index ad27024..84267e3 100644 --- a/model/autogenerated_user.go +++ b/model/autogenerated_user.go @@ -1679,6 +1679,62 @@ func (qs UserInviteQuerySet) Limit(limit int) UserInviteQuerySet { return qs.w(qs.db.Limit(limit)) } +// MemberLevelEq is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelEq(memberLevel uint32) UserInviteQuerySet { + return qs.w(qs.db.Where("member_level = ?", memberLevel)) +} + +// MemberLevelGt is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelGt(memberLevel uint32) UserInviteQuerySet { + return qs.w(qs.db.Where("member_level > ?", memberLevel)) +} + +// MemberLevelGte is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelGte(memberLevel uint32) UserInviteQuerySet { + return qs.w(qs.db.Where("member_level >= ?", memberLevel)) +} + +// MemberLevelIn is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelIn(memberLevel ...uint32) UserInviteQuerySet { + if len(memberLevel) == 0 { + qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("member_level IN (?)", memberLevel)) +} + +// MemberLevelLt is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelLt(memberLevel uint32) UserInviteQuerySet { + return qs.w(qs.db.Where("member_level < ?", memberLevel)) +} + +// MemberLevelLte is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelLte(memberLevel uint32) UserInviteQuerySet { + return qs.w(qs.db.Where("member_level <= ?", memberLevel)) +} + +// MemberLevelNe is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelNe(memberLevel uint32) UserInviteQuerySet { + return qs.w(qs.db.Where("member_level != ?", memberLevel)) +} + +// MemberLevelNotIn is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) MemberLevelNotIn(memberLevel ...uint32) UserInviteQuerySet { + if len(memberLevel) == 0 { + qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel)) +} + // MemberOpenTimeEq is an autogenerated method // nolint: dupl func (qs UserInviteQuerySet) MemberOpenTimeEq(memberOpenTime time.Time) UserInviteQuerySet { @@ -1863,6 +1919,12 @@ func (qs UserInviteQuerySet) OrderAscByID() UserInviteQuerySet { return qs.w(qs.db.Order("id ASC")) } +// OrderAscByMemberLevel is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) OrderAscByMemberLevel() UserInviteQuerySet { + return qs.w(qs.db.Order("member_level ASC")) +} + // OrderAscByMemberOpenTime is an autogenerated method // nolint: dupl func (qs UserInviteQuerySet) OrderAscByMemberOpenTime() UserInviteQuerySet { @@ -1935,6 +1997,12 @@ func (qs UserInviteQuerySet) OrderDescByID() UserInviteQuerySet { return qs.w(qs.db.Order("id DESC")) } +// OrderDescByMemberLevel is an autogenerated method +// nolint: dupl +func (qs UserInviteQuerySet) OrderDescByMemberLevel() UserInviteQuerySet { + return qs.w(qs.db.Order("member_level DESC")) +} + // OrderDescByMemberOpenTime is an autogenerated method // nolint: dupl func (qs UserInviteQuerySet) OrderDescByMemberOpenTime() UserInviteQuerySet { @@ -2271,6 +2339,13 @@ func (u UserInviteUpdater) SetID(ID uint32) UserInviteUpdater { return u } +// SetMemberLevel is an autogenerated method +// nolint: dupl +func (u UserInviteUpdater) SetMemberLevel(memberLevel uint32) UserInviteUpdater { + u.fields[string(UserInviteDBSchema.MemberLevel)] = memberLevel + return u +} + // SetMemberOpenTime is an autogenerated method // nolint: dupl func (u UserInviteUpdater) SetMemberOpenTime(memberOpenTime time.Time) UserInviteUpdater { @@ -2367,6 +2442,7 @@ var UserInviteDBSchema = struct { MemberStatus UserInviteDBSchemaField ToUid UserInviteDBSchemaField StoreType UserInviteDBSchemaField + MemberLevel UserInviteDBSchemaField }{ ID: UserInviteDBSchemaField("id"), @@ -2381,6 +2457,7 @@ var UserInviteDBSchema = struct { MemberStatus: UserInviteDBSchemaField("member_status"), ToUid: UserInviteDBSchemaField("to_uid"), StoreType: UserInviteDBSchemaField("store_type"), + MemberLevel: UserInviteDBSchemaField("member_level"), } // Update updates UserInvite fields by primary key @@ -2399,6 +2476,7 @@ func (o *UserInvite) Update(db *gorm.DB, fields ...UserInviteDBSchemaField) erro "member_status": o.MemberStatus, "to_uid": o.ToUid, "store_type": o.StoreType, + "member_level": o.MemberLevel, } u := map[string]interface{}{} for _, f := range fields { @@ -2656,6 +2734,62 @@ func (qs UserOpenMemberRecordQuerySet) Limit(limit int) UserOpenMemberRecordQuer return qs.w(qs.db.Limit(limit)) } +// MemberLevelEq is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelEq(memberLevel uint32) UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Where("member_level = ?", memberLevel)) +} + +// MemberLevelGt is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelGt(memberLevel uint32) UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Where("member_level > ?", memberLevel)) +} + +// MemberLevelGte is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelGte(memberLevel uint32) UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Where("member_level >= ?", memberLevel)) +} + +// MemberLevelIn is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelIn(memberLevel ...uint32) UserOpenMemberRecordQuerySet { + if len(memberLevel) == 0 { + qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("member_level IN (?)", memberLevel)) +} + +// MemberLevelLt is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelLt(memberLevel uint32) UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Where("member_level < ?", memberLevel)) +} + +// MemberLevelLte is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelLte(memberLevel uint32) UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Where("member_level <= ?", memberLevel)) +} + +// MemberLevelNe is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelNe(memberLevel uint32) UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Where("member_level != ?", memberLevel)) +} + +// MemberLevelNotIn is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) MemberLevelNotIn(memberLevel ...uint32) UserOpenMemberRecordQuerySet { + if len(memberLevel) == 0 { + qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn")) + return qs.w(qs.db) + } + return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel)) +} + // Offset is an autogenerated method // nolint: dupl func (qs UserOpenMemberRecordQuerySet) Offset(offset int) UserOpenMemberRecordQuerySet { @@ -2718,6 +2852,12 @@ func (qs UserOpenMemberRecordQuerySet) OrderAscByID() UserOpenMemberRecordQueryS return qs.w(qs.db.Order("id ASC")) } +// OrderAscByMemberLevel is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) OrderAscByMemberLevel() UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Order("member_level ASC")) +} + // OrderAscByOrderId is an autogenerated method // nolint: dupl func (qs UserOpenMemberRecordQuerySet) OrderAscByOrderId() UserOpenMemberRecordQuerySet { @@ -2760,6 +2900,12 @@ func (qs UserOpenMemberRecordQuerySet) OrderDescByID() UserOpenMemberRecordQuery return qs.w(qs.db.Order("id DESC")) } +// OrderDescByMemberLevel is an autogenerated method +// nolint: dupl +func (qs UserOpenMemberRecordQuerySet) OrderDescByMemberLevel() UserOpenMemberRecordQuerySet { + return qs.w(qs.db.Order("member_level DESC")) +} + // OrderDescByOrderId is an autogenerated method // nolint: dupl func (qs UserOpenMemberRecordQuerySet) OrderDescByOrderId() UserOpenMemberRecordQuerySet { @@ -3009,6 +3155,13 @@ func (u UserOpenMemberRecordUpdater) SetID(ID uint32) UserOpenMemberRecordUpdate return u } +// SetMemberLevel is an autogenerated method +// nolint: dupl +func (u UserOpenMemberRecordUpdater) SetMemberLevel(memberLevel uint32) UserOpenMemberRecordUpdater { + u.fields[string(UserOpenMemberRecordDBSchema.MemberLevel)] = memberLevel + return u +} + // SetOpenNo is an autogenerated method // nolint: dupl func (u UserOpenMemberRecordUpdater) SetOpenNo(openNo string) UserOpenMemberRecordUpdater { @@ -3072,38 +3225,41 @@ func (f UserOpenMemberRecordDBSchemaField) String() string { // UserOpenMemberRecordDBSchema stores db field names of UserOpenMemberRecord var UserOpenMemberRecordDBSchema = struct { - ID UserOpenMemberRecordDBSchemaField - CreatedAt UserOpenMemberRecordDBSchemaField - UpdatedAt UserOpenMemberRecordDBSchemaField - DeletedAt UserOpenMemberRecordDBSchemaField - Uid UserOpenMemberRecordDBSchemaField - OpenNo UserOpenMemberRecordDBSchemaField - OrderId UserOpenMemberRecordDBSchemaField - OrderType UserOpenMemberRecordDBSchemaField + ID UserOpenMemberRecordDBSchemaField + CreatedAt UserOpenMemberRecordDBSchemaField + UpdatedAt UserOpenMemberRecordDBSchemaField + DeletedAt UserOpenMemberRecordDBSchemaField + Uid UserOpenMemberRecordDBSchemaField + OpenNo UserOpenMemberRecordDBSchemaField + OrderId UserOpenMemberRecordDBSchemaField + OrderType UserOpenMemberRecordDBSchemaField + MemberLevel UserOpenMemberRecordDBSchemaField }{ - ID: UserOpenMemberRecordDBSchemaField("id"), - CreatedAt: UserOpenMemberRecordDBSchemaField("created_at"), - UpdatedAt: UserOpenMemberRecordDBSchemaField("updated_at"), - DeletedAt: UserOpenMemberRecordDBSchemaField("deleted_at"), - Uid: UserOpenMemberRecordDBSchemaField("uid"), - OpenNo: UserOpenMemberRecordDBSchemaField("open_no"), - OrderId: UserOpenMemberRecordDBSchemaField("order_id"), - OrderType: UserOpenMemberRecordDBSchemaField("order_type"), + ID: UserOpenMemberRecordDBSchemaField("id"), + CreatedAt: UserOpenMemberRecordDBSchemaField("created_at"), + UpdatedAt: UserOpenMemberRecordDBSchemaField("updated_at"), + DeletedAt: UserOpenMemberRecordDBSchemaField("deleted_at"), + Uid: UserOpenMemberRecordDBSchemaField("uid"), + OpenNo: UserOpenMemberRecordDBSchemaField("open_no"), + OrderId: UserOpenMemberRecordDBSchemaField("order_id"), + OrderType: UserOpenMemberRecordDBSchemaField("order_type"), + MemberLevel: UserOpenMemberRecordDBSchemaField("member_level"), } // Update updates UserOpenMemberRecord fields by primary key // nolint: dupl func (o *UserOpenMemberRecord) Update(db *gorm.DB, fields ...UserOpenMemberRecordDBSchemaField) error { dbNameToFieldName := map[string]interface{}{ - "id": o.ID, - "created_at": o.CreatedAt, - "updated_at": o.UpdatedAt, - "deleted_at": o.DeletedAt, - "uid": o.Uid, - "open_no": o.OpenNo, - "order_id": o.OrderId, - "order_type": o.OrderType, + "id": o.ID, + "created_at": o.CreatedAt, + "updated_at": o.UpdatedAt, + "deleted_at": o.DeletedAt, + "uid": o.Uid, + "open_no": o.OpenNo, + "order_id": o.OrderId, + "order_type": o.OrderType, + "member_level": o.MemberLevel, } u := map[string]interface{}{} for _, f := range fields { diff --git a/model/config.go b/model/config.go index 71a6aa3..bf7e34a 100644 --- a/model/config.go +++ b/model/config.go @@ -2,6 +2,7 @@ package model import ( "encoding/json" + "errors" "github.com/codinl/go-logger" ) @@ -25,7 +26,8 @@ type PayConfig struct { } const ( - ConfigNamePay = "pay_config" // 支付配置 + ConfigNamePay = "pay_config" // 支付配置 + ConfigNameMember = "member_config" // 会员配置 ) func PayConfigInfo() (*PayConfig, error) { @@ -46,15 +48,54 @@ func PayConfigInfo() (*PayConfig, error) { return payConfig, nil } -// +type MemberConfig struct { + MemberLever uint32 `json:"member_lever"` // 会员等级 + MemberFee uint32 `json:"member_fee"` // 会员费 + MemberDeposit uint32 `json:"member_deposit"` // 押金 + CardMax uint32 `json:"card_max"` +} + +func MemberConfigInfo() ([]MemberConfig, error) { + var memberConfigs []MemberConfig + var configAllocation Config + err := NewConfigQuerySet(DB).NameEq(ConfigNameMember).One(&configAllocation) + if err != nil { + logger.Error("err:", err) + return memberConfigs, err + } + + err = json.Unmarshal([]byte(configAllocation.Value), &memberConfigs) + if err != nil { + logger.Error("err:", err) + return memberConfigs, err + } + + return memberConfigs, nil +} + +func GetMemberConfig(level uint32) (*MemberConfig, error) { + if level == 3 { + level = 2 + } + info, err := MemberConfigInfo() + if err != nil { + return nil, err + } + for _, config := range info { + if config.MemberLever == level { + return &config, nil + } + } + + return nil, errors.New("level err") +} + //type ConfigInterface interface { // Encode() string //} -// //type CheckConfig struct { // Check uint8 `json:"check"` //} -// //func (c *CheckConfig) Encode() string { // configBytes, err := json.Marshal(c) // if err != nil { diff --git a/model/config_test.go b/model/config_test.go new file mode 100644 index 0000000..2dc19ab --- /dev/null +++ b/model/config_test.go @@ -0,0 +1,38 @@ +package model + +import ( + "encoding/json" + "fmt" + "testing" +) + +func TestMemberConfigInfo(t *testing.T) { + lever := []uint32{2, 4, 5} + list := make([]MemberConfig, 0) + cardCount := 0 + + for i, _ := range lever { + if lever[i] == 2 { + cardCount = 1 + } else if lever[i] == 4 { + cardCount = 2 + } else if lever[i] == 4 { + cardCount = 5 + } + + var config = MemberConfig{ + MemberLever: lever[i], + MemberFee: lever[i], + MemberDeposit: lever[i], + CardMax: uint32(cardCount), + } + list = append(list, config) + } + + bytes, err := json.Marshal(&list) + if err != nil { + fmt.Println("err:", err.Error()) + } + + fmt.Println("list:", string(bytes)) +} diff --git a/model/game_card.go b/model/game_card.go index 9104793..1d5127a 100644 --- a/model/game_card.go +++ b/model/game_card.go @@ -50,6 +50,11 @@ func (*HomeCarousel) TableName() string { return "home_carousel" } +type CardInfo struct { + GameCardId uint32 `json:"game_card_id"` + Count uint32 `json:"count"` +} + func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId uint32) ([]GameCard, uint32, error) { var ( cards []GameCard = make([]GameCard, 0) @@ -166,6 +171,21 @@ func IsGameCardOnline(gameCardId uint32) (bool, error) { return count == 1, nil } +func IsGameCardListOnline(gameCards []CardInfo) (bool, error) { + for _, v := range gameCards { + count, err := NewGameCardQuerySet(DB).IDEq(v.GameCardId).StatusEq(1).Count() + if err != nil { + logger.Error("err:", err) + return false, err + } + if count < 1 { + return false, nil + } + } + + return true, nil +} + func IsGameCardHaveStoke(storeId, gameCardId uint32) (bool, error) { var stock GameCardGoodsStock err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).GameCardIdEq(uint64(gameCardId)).One(&stock) diff --git a/model/order.go b/model/order.go index 1688cf6..086593b 100644 --- a/model/order.go +++ b/model/order.go @@ -62,6 +62,16 @@ type Order struct { Mchid string `json:"mchid"` // 商户 } +type OrderCard struct { + Model + OrderId uint32 `json:"order_id" gorm:"index"` + Uid uint32 `json:"uid" gorm:"index"` + GameCardId uint32 `json:"game_card_id" gorm:"index"` // 游戏id + GameCardGoodsId uint32 `json:"game_card_goods_id" gorm:"index"` // 游戏卡id + StoreId uint32 `json:"store_id" gorm:"index"` // 门店id + Status uint8 `json:"status" gorm:"index"` +} + func (*Order) TableName() string { return "order" } @@ -295,7 +305,6 @@ func IsHaveUnreturnedOrders(uid uint32) (bool, error) { return unreturned.Count != 0, nil } - func IsUserHaveUnreturnedOrder(uid uint32) (bool, error) { fmt.Println("uid", uid) @@ -378,7 +387,6 @@ func (m *Order) Cancel() error { return errors.New("card status expire") } - begin := DB.Begin() err = NewOrderQuerySet(begin).IDEq(m.ID).GetUpdater().SetCardStatus(OrderCardStatusCancel).Update() if err != nil { diff --git a/model/user.go b/model/user.go index 01de6da..1d7ba2a 100644 --- a/model/user.go +++ b/model/user.go @@ -43,8 +43,16 @@ func (o *User) TableName() string { } const ( - MemberTypeConsumer = 1 - MemberTypeMember = 2 + MemberTypeConsumer = 1 // 普通用户 + MemberTypeMember = 2 // 黄金会员 +) + +const ( + MemberLevelConsumer = 1 // 普通用户 + MemberLevelGold = 2 // 黄金会员 + MemberLevelPeriod = 3 + MemberLevelPlatinum = 4 // 白金会员 + MemberLevelBlackGold = 5 // 黑金会员 ) const DateTimeFormat = "2006-01-02" @@ -61,6 +69,7 @@ type UserInvite struct { MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员 ToUid uint32 `json:"to_uid"` // 被邀请用户 StoreType uint32 `json:"store_type"` // 门店类型 + MemberLevel uint32 `json:"member_level"` // 会员等级 } const ( @@ -128,11 +137,11 @@ func UserUpdate(user *User) error { type UserOpenMemberRecord struct { Model - Uid uint32 `json:"uid"` - OpenNo string `json:"open_no" gorm:"index"` - OrderId uint32 `json:"order_id"` - OrderType uint32 `json:"order_type"` // 1-物流支付 - + Uid uint32 `json:"uid"` + OpenNo string `json:"open_no" gorm:"index"` + OrderId uint32 `json:"order_id"` + OrderType uint32 `json:"order_type"` // 1-物流支付 + MemberLevel uint32 `json:"member_level"` } func (o *UserOpenMemberRecord) TableName() string { @@ -166,7 +175,6 @@ type CommonProblem struct { Sort uint32 `json:"sort" gorm:"index"` } - type GroupSendMessageTemplate struct { Model @@ -178,7 +186,6 @@ type GroupSendMessageTemplate struct { Status uint32 `json:"status"` // 1-待发送 2-已发送 } - func (*CommonProblem) TableName() string { return "common_problem" } @@ -364,7 +371,6 @@ func GetDepositRefundRecordList(uid uint32) ([]DepositRefundRecord, error) { return deposits, nil } - var userMutexMap map[string]*sync.Mutex func GetUserMutexMap() map[string]*sync.Mutex { @@ -388,5 +394,4 @@ func GetUserMutex(mutexKey string) *sync.Mutex { // return GetUserMutex(fmt.Sprintf("AuthLogin:%d", uid)) //} - -var AuthLoginMutex = sync.Mutex{} \ No newline at end of file +var AuthLoginMutex = sync.Mutex{} diff --git a/pack/log_server/server.2022-01-16.log b/pack/log_server/server.2022-01-16.log new file mode 100644 index 0000000..b6b390b --- /dev/null +++ b/pack/log_server/server.2022-01-16.log @@ -0,0 +1,531 @@ +2022/01/16 14:38:12 [INFO ]base_init_db.go:38: DB init success +2022/01/16 15:29:56 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:29:57 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:30:00 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:30:00 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:30:00 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:30:01 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:30:01 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:30:01 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:30:02 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:30:03 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 15:30:03 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 15:30:03 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 15:30:58 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 15:30:58 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 15:30:58 [INFO ]account.go:49: resp.UnionID= +2022/01/16 15:30:58 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:31:04 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 15:31:04 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 15:31:04 [INFO ]account.go:49: resp.UnionID= +2022/01/16 15:31:04 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:31:24 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:31:25 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:31:25 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:31:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:31:26 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:31:37 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:31:38 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:31:38 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:34:59 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:04 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 15:35:04 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 15:35:04 [INFO ]account.go:49: resp.UnionID= +2022/01/16 15:35:04 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:05 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:08 [INFO ]init.go:30: /api/v1/user/user_info/upload +2022/01/16 15:35:08 [ERROR]account.go:279: Key: 'Code' Error:Field validation for 'Code' failed on the 'required' tag +2022/01/16 15:35:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:10 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:16 [INFO ]init.go:30: /api/v1/user/user_info/upload +2022/01/16 15:35:16 [INFO ]account.go:302: userInfo={OpenID: Nickname:枫 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoBbibF1ykzNbej9KZreT23p4O2MLFgNIt73BeIP6GnYOH3baeJvS30wKk866ibKuSL3prOpLJMC6Jg/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1642318516}} +2022/01/16 15:35:16 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:18 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:19 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:19 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:20 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:35:20 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:29 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 15:35:29 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 15:35:29 [INFO ]account.go:49: resp.UnionID= +2022/01/16 15:35:29 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:35:29 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:36:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:38:42 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:40:22 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:40:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:41:56 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:42:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:42:23 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:44:12 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:44:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:44:35 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:44:37 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:44:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:46:59 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:47:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:47:19 [INFO ]init.go:30: /api/v1/user/open_member +2022/01/16 15:47:19 [INFO ]wx_pay.go:63: MchId: 1609877389 +2022/01/16 15:47:19 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c +2022/01/16 15:47:19 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456 +2022/01/16 15:47:19 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=vjVgoqgzYqJ6pyrK47L363Qf0wYDWV8x¬ify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=diddvhp40000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154719&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:47:19 [ERROR]wx_pay.go:464: xml: wx806c079463b5b56c1609877389WEBvjVgoqgzYqJ6pyrK47L363Qf0wYDWV8xECDE78A54BA7B9A8BC19C51B3F5CE5D8MD5创建订单member_paydiddvhp40000CNY4139.108.188.21820220116154719https://dev.switch.deovo.com:8004/api/v1/wxpay/noticeJSAPIohuHh4tpfro8u_fUPMbHEWYx5svQN +2022/01/16 15:47:19 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=Mc9GYbaUaXD3BToo&package=prepay_id=wx1615471951571141d8de42ce2655ae0000&signType=MD5&timeStamp=1642319239&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:47:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:49:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:49:09 [INFO ]init.go:30: /api/v1/user/open_member +2022/01/16 15:49:09 [INFO ]wx_pay.go:63: MchId: 1609877389 +2022/01/16 15:49:09 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c +2022/01/16 15:49:09 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:09 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=cCHl1d7GEi7g9is9A2my0vbx3cFnvQuJ¬ify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=dided18o0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154909&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:09 [ERROR]wx_pay.go:464: xml: wx806c079463b5b56c1609877389WEBcCHl1d7GEi7g9is9A2my0vbx3cFnvQuJ0C404E64B119780687532816783F03EFMD5创建订单member_paydided18o0000CNY4139.108.188.21820220116154909https://dev.switch.deovo.com:8004/api/v1/wxpay/noticeJSAPIohuHh4tpfro8u_fUPMbHEWYx5svQN +2022/01/16 15:49:10 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=lOVZRmfoioPBfULu&package=prepay_id=wx161549100009358b0b65c85b76b1520000&signType=MD5&timeStamp=1642319350&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:10 [INFO ]init.go:30: /api/v1/user/open_member +2022/01/16 15:49:10 [INFO ]wx_pay.go:63: MchId: 1609877389 +2022/01/16 15:49:10 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c +2022/01/16 15:49:10 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:10 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=63cN2N1GnO3rjy8DOACK03V6Dp515q6E¬ify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=dided4ng0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154910&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:10 [ERROR]wx_pay.go:464: xml: wx806c079463b5b56c1609877389WEB63cN2N1GnO3rjy8DOACK03V6Dp515q6E03A10200FDED898D6C7DA73316D53CF4MD5创建订单member_paydided4ng0000CNY4139.108.188.21820220116154910https://dev.switch.deovo.com:8004/api/v1/wxpay/noticeJSAPIohuHh4tpfro8u_fUPMbHEWYx5svQN +2022/01/16 15:49:10 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=YtFKFOjTvYF1TAza&package=prepay_id=wx16154910775284d1d11a140b92f2bd0000&signType=MD5&timeStamp=1642319350&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:16 [INFO ]init.go:30: /api/v1/user/open_member +2022/01/16 15:49:17 [INFO ]wx_pay.go:63: MchId: 1609877389 +2022/01/16 15:49:17 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c +2022/01/16 15:49:17 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:17 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=CHz2Jj33ULa0VKk7I2q1ki7n77XfK535¬ify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=didedtp40000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116154916&total_fee=41&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:17 [ERROR]wx_pay.go:464: xml: wx806c079463b5b56c1609877389WEBCHz2Jj33ULa0VKk7I2q1ki7n77XfK53511C1E2D541DC0F8284B2CCE24CEA1068MD5创建订单member_paydidedtp40000CNY4139.108.188.21820220116154916https://dev.switch.deovo.com:8004/api/v1/wxpay/noticeJSAPIohuHh4tpfro8u_fUPMbHEWYx5svQN +2022/01/16 15:49:17 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=e5zoJnepNXQX6mBl&package=prepay_id=wx16154917204493a8a49858360b56130000&signType=MD5&timeStamp=1642319357&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 15:49:43 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:49:47 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 15:49:47 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 15:49:47 [INFO ]account.go:49: resp.UnionID= +2022/01/16 15:49:47 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:49:48 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:49:52 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:49:52 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:50:06 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:50:06 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:50:06 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:50:07 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:50:07 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:50:09 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:50:09 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:51:27 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:51:33 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:38 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:43 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:44 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:59:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:45 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 15:59:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 15:59:47 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:01:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:01:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:01:46 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:01:48 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:01:48 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:01:48 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:01:49 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:02:34 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:04:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:04:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:04:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:04:07 [INFO ]init.go:30: /api/v1/user/invite_list +2022/01/16 16:04:53 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:04:54 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:04:55 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:04:55 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:04:56 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/article/title_panel/list +2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/article/list +2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:04:57 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:04:59 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:04:59 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:05:00 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:05:02 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:05:03 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:05:07 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:05:11 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:05:12 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:05:14 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:05:20 [INFO ]init.go:30: /api/v1/user/user_info/tel +2022/01/16 16:05:20 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:05:20 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:05:30 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:05:31 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:06:01 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:06:01 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:06:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:06:47 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:06:47 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:06:48 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:06:51 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:06:53 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:06:54 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:06:54 [INFO ]init.go:30: /api/v1/user/address/list +2022/01/16 16:07:19 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:07:20 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:07:22 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:07:23 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:07:31 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:07:32 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:07:33 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:07:34 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:09:09 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:09:09 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:09:11 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:09:12 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:10:33 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:10:34 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:10:35 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:12:54 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:12:55 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:13:11 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:13:11 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:13:40 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:13:42 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:13:53 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:13:54 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:13:55 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:13:55 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:15:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:15:11 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:15:11 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:15:11 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:15:21 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:15:21 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:15:22 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:15:22 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:15:23 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:15:23 [INFO ]init.go:30: /api/v1/user/address/list +2022/01/16 16:15:24 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:15:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:15:58 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:15:58 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:17:44 [INFO ]base_init_db.go:38: DB init success +2022/01/16 16:17:45 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 16:17:45 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 16:17:45 [INFO ]account.go:49: resp.UnionID= +2022/01/16 16:17:45 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:17:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:17:49 [INFO ]init.go:30: /api/v1/user/user_info/upload +2022/01/16 16:17:50 [INFO ]account.go:302: userInfo={OpenID: Nickname:枫 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoBbibF1ykzNbej9KZreT23p4O2MLFgNIt73BeIP6GnYOH3baeJvS30wKk866ibKuSL3prOpLJMC6Jg/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1642321068}} +2022/01/16 16:17:50 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:17:52 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:17:52 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:17:54 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:17:54 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:17:55 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:17:55 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:02 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:18:02 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:18:04 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:18:05 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:18:06 [INFO ]init.go:30: /api/v1/user/address/list +2022/01/16 16:18:21 [INFO ]init.go:30: /api/v1/user/address/add +2022/01/16 16:18:21 [INFO ]init.go:30: /api/v1/order/amount +2022/01/16 16:18:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:45 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:18:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:46 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:46 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:18:47 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:48 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:18:50 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:18:51 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:18:52 [INFO ]init.go:30: /api/v1/article/title_panel/list +2022/01/16 16:18:53 [INFO ]init.go:30: /api/v1/article/list +2022/01/16 16:18:54 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:18:54 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:18:54 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:18:55 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:18:55 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:18:55 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:19:04 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:19:04 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:19:05 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:19:07 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:19:09 [INFO ]init.go:30: /api/v1/user/invite_list +2022/01/16 16:19:13 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:19:14 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:19:14 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:19:19 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:19:19 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:19:20 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:19:20 [INFO ]init.go:30: /api/v1/user/address/list +2022/01/16 16:19:20 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:19:24 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:19:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:19:26 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:19:32 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:19:32 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:19:32 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:20:01 [INFO ]init.go:30: /api/v1/auth/login +2022/01/16 16:20:01 [INFO ]account.go:48: OpenID=ohuHh4tpfro8u_fUPMbHEWYx5svQ +2022/01/16 16:20:01 [INFO ]account.go:49: resp.UnionID= +2022/01/16 16:20:02 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:20:02 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:20:05 [INFO ]init.go:30: /api/v1/user/user_info/upload +2022/01/16 16:20:05 [INFO ]account.go:302: userInfo={OpenID: Nickname:枫 Gender:0 Province: Language:zh_CN Country: City: Avatar:https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoBbibF1ykzNbej9KZreT23p4O2MLFgNIt73BeIP6GnYOH3baeJvS30wKk866ibKuSL3prOpLJMC6Jg/132 UnionID: Watermark:{AppID:wx806c079463b5b56c Timestamp:1642321204}} +2022/01/16 16:20:05 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:20:54 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:21:06 [INFO ]init.go:30: /api/v1/user/open_member +2022/01/16 16:21:06 [INFO ]wx_pay.go:63: MchId: 1609877389 +2022/01/16 16:21:06 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c +2022/01/16 16:21:06 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456 +2022/01/16 16:21:06 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=4t4p3Bqd0P2oY4zIsP4IGIsRC70zgR9I¬ify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=didln10s0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116162106&total_fee=4&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 16:21:06 [ERROR]wx_pay.go:464: xml: wx806c079463b5b56c1609877389WEB4t4p3Bqd0P2oY4zIsP4IGIsRC70zgR9IA6A4F7BAAA85ADC1FBCA6EC3A3D18BEBMD5创建订单member_paydidln10s0000CNY439.108.188.21820220116162106https://dev.switch.deovo.com:8004/api/v1/wxpay/noticeJSAPIohuHh4tpfro8u_fUPMbHEWYx5svQN +2022/01/16 16:21:06 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=4j2i5D5vEzDZsJxu&package=prepay_id=wx16162106859233ff5ca5291acb1b5a0000&signType=MD5&timeStamp=1642321266&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 16:22:55 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:23:07 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:23:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:23:23 [INFO ]init.go:30: /api/v1/user/open_member +2022/01/16 16:23:23 [INFO ]wx_pay.go:63: MchId: 1609877389 +2022/01/16 16:23:23 [INFO ]wx_pay.go:64: AppId: wx806c079463b5b56c +2022/01/16 16:23:23 [INFO ]wx_pay.go:65: MchSecret: DeovoMingHuiRengTianTang45675456 +2022/01/16 16:23:23 [INFO ]wx_pay.go:440: 签字符串1 : appid=wx806c079463b5b56c&attach=member_pay&body=创建订单&device_info=WEB&fee_type=CNY&mch_id=1609877389&nonce_str=3Qftg657g46XN59t62kaaqs5Mz52poHL¬ify_url=https://dev.switch.deovo.com:8004/api/v1/wxpay/notice&openid=ohuHh4tpfro8u_fUPMbHEWYx5svQ&out_trade_no=didm7n1c0000&profit_sharing=N&sign_type=MD5&spbill_create_ip=39.108.188.218&time_start=20220116162323&total_fee=8&trade_type=JSAPI&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 16:23:23 [ERROR]wx_pay.go:464: xml: wx806c079463b5b56c1609877389WEB3Qftg657g46XN59t62kaaqs5Mz52poHLE5F4A1C61F53C0965E6F9E1DB685587FMD5创建订单member_paydidm7n1c0000CNY839.108.188.21820220116162323https://dev.switch.deovo.com:8004/api/v1/wxpay/noticeJSAPIohuHh4tpfro8u_fUPMbHEWYx5svQN +2022/01/16 16:23:23 [INFO ]wx_pay.go:440: 签字符串1 : appId=wx806c079463b5b56c&nonceStr=l2GpwuLNzq6HeQSz&package=prepay_id=wx16162323563678392ca9ba60590a5b0000&signType=MD5&timeStamp=1642321403&key=DeovoMingHuiRengTianTang45675456 +2022/01/16 16:23:42 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:24:16 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:24:17 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:24:17 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:24:34 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:24:35 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:24:35 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:25:09 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:25:10 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:25:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:25:11 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:25:11 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:25:42 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:25:49 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:26:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:27:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:27:05 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:27:05 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:27:06 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:27:06 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:29:03 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:29:03 [INFO ]init.go:30: //api/v1/user/member_config +2022/01/16 16:29:10 [INFO ]init.go:30: /api/v1/user/member_config +2022/01/16 16:29:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:35:41 [INFO ]init.go:30: /api/v1/user/member_config +2022/01/16 16:35:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:35:50 [INFO ]init.go:30: /api/v1/user/member_config +2022/01/16 16:35:50 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:36:04 [INFO ]init.go:30: /api/v1/user/member_config +2022/01/16 16:36:04 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:37:15 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:37:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:37:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:37:26 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:37:28 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:37:30 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:37:30 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:37:31 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:37:33 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:37:33 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:37:33 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:37:46 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:37:47 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:37:47 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:37:50 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:37:52 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:37:53 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:37:54 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:38:10 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:40:09 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:40:16 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:40:17 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:40:19 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:40:19 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:40:44 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:41:36 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:41:37 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:41:37 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:41:37 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:41:40 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:40 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:47 [INFO ]base_init_db.go:38: DB init success +2022/01/16 16:41:47 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:47 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:48 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:41:48 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:41:48 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:41:49 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:50 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:51 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:41:52 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:41:57 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:41:58 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:42:16 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:42:16 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:42:16 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:42:19 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:42:21 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:42:23 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:43:10 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:43:11 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:43:12 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:43:12 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:43:13 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:43:14 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:43:15 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:43:20 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:43:23 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:43:23 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:43:25 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:43:32 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:43:35 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:43:40 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:43:42 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:18 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:23 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:27 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:42 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:43 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:44:43 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:44:44 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:44:46 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:46 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:44:52 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:45:00 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:46:13 [INFO ]base_init_db.go:38: DB init success +2022/01/16 16:47:04 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:22 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:47:23 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:47:23 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:47:24 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:47:26 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:47:26 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:27 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:28 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:47:28 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:47:28 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:47:29 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:47:29 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:47:29 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:47:30 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:47:30 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:47:31 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:47:34 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:47:36 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:36 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:37 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:47:38 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:39 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:39 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:47:40 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:41 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:44 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:45 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:47:45 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:49 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:51 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:47:54 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:47:59 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:48:02 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:48:08 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:48:08 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:48:08 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:48:15 [INFO ]init.go:30: /api/v1/game_card/type/list +2022/01/16 16:48:15 [INFO ]init.go:30: /api/v1/game_card/banner +2022/01/16 16:48:15 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:49:02 [INFO ]init.go:30: /api/v1/game_card/info +2022/01/16 16:49:02 [INFO ]init.go:30: /api/v1/game_card/game_type +2022/01/16 16:49:03 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:49:05 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:49:06 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:49:12 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:49:56 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:50:02 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:50:04 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:50:04 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:50:06 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:50:41 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:51:35 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:51:37 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:51:38 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:51:38 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:39 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:50 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:51:50 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:51 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:52 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:53 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:53 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:56 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:51:56 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:57 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:58 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:51:58 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:51:59 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:00 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:52:00 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:01 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:02 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:03 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:52:03 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:04 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:05 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:52:05 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:06 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:07 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:52:07 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:08 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:09 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:52:09 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:52:10 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:53:34 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:53:36 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:53:37 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:53:37 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:53:38 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:53:39 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:53:40 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:53:41 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:53:41 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:53:42 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:53:43 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:53:43 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:53:44 [INFO ]init.go:30: /api/v1/shopping_cart/add +2022/01/16 16:53:45 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:54:45 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:54:45 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:55:02 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:55:03 [INFO ]init.go:30: /api/v1/game_card/list +2022/01/16 16:55:13 [INFO ]init.go:30: /api/v1/store/list +2022/01/16 16:55:13 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:55:14 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:55:15 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:55:15 [INFO ]init.go:30: /api/v1/shopping_cart/list +2022/01/16 16:55:26 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:55:28 [INFO ]init.go:30: /api/v1/user/data +2022/01/16 16:55:28 [INFO ]init.go:30: /api/v1/activity/redeem_code/user_redeem_code/list +2022/01/16 16:55:28 [INFO ]init.go:30: /api/v1/game_card/list diff --git a/router/router_app.go b/router/router_app.go index 9865a50..a618ead 100644 --- a/router/router_app.go +++ b/router/router_app.go @@ -79,6 +79,8 @@ func ConfigAppRouter(r gin.IRouter) { user.POST("refund_deposit", controller.RefundDeposit) // 押金 user.POST("refund_deposit_record", controller.UserDepositRefundRecordList) // 押金记录 + user.POST("member_config", controller.MemberConfigList) // 开通会员配置 + user.POST("common_problem/list", controller.CommonProblemList) // 常见问题列表 //user.POST("service/wechat_id", controller.GetCustomerServiceWechatId) // 获取客服微信号 user.POST("invite_applet_code", controller.UserInviteAppletQRCode) // 小程序分享二维码