From 24b6a4a6d41b17488e1959d0b030d7632c5342d7 Mon Sep 17 00:00:00 2001 From: li Date: Tue, 25 Oct 2022 15:06:14 +0800 Subject: [PATCH] fix: --- model/game_card.go | 12 ++-- model/model_test.go | 147 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+), 5 deletions(-) diff --git a/model/game_card.go b/model/game_card.go index 3142b03..d6813c4 100644 --- a/model/game_card.go +++ b/model/game_card.go @@ -550,6 +550,7 @@ func GetGameCardSearch(name string, page, pageSize int, storeId uint32) ([]GameC logger.Error("err:", err) return cards, 0, err } + cardMap := make(map[uint32]GameCard, 0) cardIds := make([]uint64, 0, len(cards)) for i, _ := range cards { @@ -597,11 +598,12 @@ func GetGameCardSearch(name string, page, pageSize int, storeId uint32) ([]GameC if cardCount.Count%uint32(pageSize) == 0 { totalPage = cardCount.Count / uint32(pageSize) } - - if uint32(page) < totalPage-1 && totalPage != 1 { - cards = list[page*pageSize : (page+1)*pageSize] - } else { - cards = list[page*pageSize:] + if len(list) != 0 { + if uint32(page) < totalPage-1 && totalPage != 1 { + cards = list[page*pageSize : (page+1)*pageSize] + } else { + cards = list[page*pageSize:] + } } return cards, totalPage, nil diff --git a/model/model_test.go b/model/model_test.go index 333d6e7..26963a1 100644 --- a/model/model_test.go +++ b/model/model_test.go @@ -8,6 +8,7 @@ import ( "fmt" "mh-server/lib/auth" "mh-server/lib/utils" + "mh-server/lib/wxpay" "mh-server/lib/xianmai" "os" "sort" @@ -1731,3 +1732,149 @@ func TestCreateAccessToken(t *testing.T) { } fmt.Println("token:", token) } + +func TestPushWXPayNotice(t *testing.T) { + InitDBProd() + DB = DBProd + PushWXPayNoticeInfo() +} + +func PushWXPayNoticeInfo() { + fmt.Println("微信推送支付通知") + //body, err := ioutil.ReadAll(c.Request.Body) + //if err != nil { + // logger.Error(err) + //} + + //logger.Error("xml Request.Body1:", string(body)) + var notifyInfo wxpay.WechatNotifyInfo + notifyInfo.OutTradeNo = "82EE941414" + notifyInfo.Attach = wxpay.WxPayPostagePackage + //if err := c.ShouldBindXML(¬ify); err != nil { + // logger.Error(err) + // RespBodyXML(c, map[string]string{ + // "return_code": "FAIL", + // }) + // return + //} + + //err = xml.Unmarshal(body, ¬ifyInfo) + //if err != nil { + // logger.Error(err) + //} + //ret := WXPayNoticeResp{ + // ReturnCode: "FAIL", + //} + //correctSign, err := PayCallBackHandle(notifyInfo, config.AppConfig.WxMchSecret) + //if err != nil { + // logger.Error("PushWXPayNotice sign create fail") + // return + //} + //if notifyInfo.Sign != correctSign { + // logger.Error("PushWXPayNotice sign verification fail") + // return + //} + fundRecord := new(FundRecord) + + if notifyInfo.Attach == wxpay.WxPayPostagePackage { + record := &UserOpenMemberRecord{OpenNo: notifyInfo.OutTradeNo} + err := record.GetByOpenNo() + if err != nil { + logger.Error("err:", err) + } + if record.State == 2 { + //ret.ReturnCode = "SUCCESS" + logger.Error("State err") + return + } + var activity Activity + err = NewActivityQuerySet(DB).IDEq(3).One(&activity) + if err != nil { + logger.Error("coupon err:", err) + return + } + var coupon Coupon + err = NewCouponQuerySet(DB).ActivityTypeEq(activity.ActivityType).One(&coupon) + if err != nil { + logger.Error("coupon err:", err) + return + } + + defer func() { + if err := recover(); err != nil { + logger.Error("err:", err) + } + }() + + //days := (info.PostagePackageFee * 365) / originalMemberConfig.MemberFee + user := GetUserByUid(record.Uid) + days := GetPostagePackageMemberDuration(user.MemberLevel) + durationRecord := &UserMemberDurationRecord{ + Uid: record.Uid, + Duration: days, + EventType: 1, + MemberLevel: record.MemberLevel, + } + nowTime := time.Now() + + //go func() { + begin := DB.Begin() + for i := 0; i < 10; i++ { + userCoupon := &UserCoupon{ + Uid: record.Uid, + CouponId: coupon.ID, + CouponType: coupon.CouponType, + ActivityType: activity.ActivityType, + ActivityId: activity.ID, + Value: coupon.Value, + State: 1, + ActiveStart: nowTime, + ActiveEnd: nowTime.AddDate(10, 0, 0), + MemberLevel: record.MemberLevel, + } + err = begin.Create(userCoupon).Error + if err != nil { + begin.Rollback() + logger.Error("user coupon err:", err) + return + } + } + + memberExpire := user.MemberExpire.AddDate(0, 0, int(days)) + err = NewUserQuerySet(begin).UidEq(record.Uid).GetUpdater().SetMemberExpire(memberExpire).Update() + if err != nil { + begin.Rollback() + logger.Error("update member expire err:", err) + return + } + + err = begin.Create(durationRecord).Error + if err != nil { + logger.Error("create duration record err:", err) + return + } + + err = begin.Commit().Error + if err != nil { + begin.Rollback() + logger.Error("commit err:", err) + return + } + //}() + + fundRecord.Uid = uint32(record.Uid) + fundRecord.FundType = FundTypePostagePackageFee + fundRecord.Remark = "购买运费包" + } + + fundRecord.Amount = int64(notifyInfo.TotalFee) + fundRecord.TransactionId = notifyInfo.TransactionId + fundRecord.OutTradeNo = notifyInfo.OutTradeNo + fundRecord.Status = 2 + err := DB.Create(&fundRecord).Error + if err != nil { + logger.Error("create fund record err:", err) + } + logger.Debug("微信推动支付通知") + +}