fix:
This commit is contained in:
parent
1ed696a93b
commit
95c7e963bc
|
@ -253,11 +253,12 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
RespBodyXML(c, ret)
|
||||
return
|
||||
}
|
||||
|
||||
fundRecord := new(model.FundRecord)
|
||||
if notify.Attach == wxpay.WxPayRentCard {
|
||||
logger.Info("租借游戏卡 支付成功:")
|
||||
var order model.Order
|
||||
err := model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).PayStatusEq(PayStatusUnPay).CardStatusNe(OrderCardStatusCancel).One(&order)
|
||||
err := model.NewOrderQuerySet(model.DB).OrderSnEq(notify.OutTradeNo).
|
||||
PayStatusEq(PayStatusUnPay).CardStatusNe(OrderCardStatusCancel).One(&order)
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
|
@ -337,6 +338,9 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
go model.ShoppingCartCreateOrderByOrder(order)
|
||||
|
||||
fundRecord.Uid = uint32(order.Uid)
|
||||
fundRecord.FundType = model.FundTypeExpressFee
|
||||
//count, err := model.NewOrderQuerySet(model.DB).UidEq(order.Uid).IDEq(order.ID).Count()
|
||||
//if err != nil {
|
||||
// logger.Error("err:", err)
|
||||
|
@ -360,6 +364,18 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
|
||||
remark := ""
|
||||
if record.MemberLevel == 2 {
|
||||
remark = "黄金会员费"
|
||||
} else if record.MemberLevel == 4 {
|
||||
remark = "白金会员费"
|
||||
} else if record.MemberLevel == 5 {
|
||||
remark = "黑金会员费"
|
||||
}
|
||||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeMemberFee
|
||||
fundRecord.Remark = remark
|
||||
var user model.User
|
||||
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
|
||||
if err != nil {
|
||||
|
@ -397,7 +413,7 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
}
|
||||
|
||||
var invite model.UserInvite
|
||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).One(&invite)
|
||||
err = model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).OrderDescByID().Limit(1).One(&invite)
|
||||
if err != nil && err != model.RecordNotFound {
|
||||
logger.Error("err:", err)
|
||||
} else {
|
||||
|
@ -446,10 +462,22 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
logger.Error("send user vm err:", err)
|
||||
}
|
||||
}
|
||||
|
||||
err = model.SendUserVm(user.Uid, record.MemberLevel, 0)
|
||||
if err != nil {
|
||||
logger.Error("send user vm err:", err)
|
||||
}
|
||||
|
||||
openMemberChannel := model.OpenMemberChannelUserInvite
|
||||
if inviteUser.UserType == 2 {
|
||||
openMemberChannel = model.OpenMemberChannelStorePromotion
|
||||
}
|
||||
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().
|
||||
SetOpenMemberChannel(openMemberChannel).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -493,6 +521,18 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
remark := ""
|
||||
if user.MemberLevel == 2 {
|
||||
remark = "黄金会员押金"
|
||||
} else if user.MemberLevel == 4 {
|
||||
remark = "白金会员押金"
|
||||
} else if user.MemberLevel == 5 {
|
||||
remark = "黑金会员押金"
|
||||
}
|
||||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeMemberDeposit
|
||||
fundRecord.Remark = remark
|
||||
|
||||
num, err := model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetDeposit(memberConfig.MemberDeposit).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("update deposit err:", err)
|
||||
|
@ -522,6 +562,10 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
}
|
||||
|
||||
fundRecord.Uid = uint32(goodsOrder.Uid)
|
||||
fundRecord.FundType = model.FundTypeExpressFee
|
||||
fundRecord.Remark = "积分兑换快递费"
|
||||
} else if notify.Attach == wxpay.WxPayUpgradeMember {
|
||||
record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo}
|
||||
err := record.GetByOpenNo()
|
||||
|
@ -564,6 +608,10 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
}
|
||||
|
||||
model.CreateUserRentCardByMemberLevel(record.Uid, record.MemberLevel, memberConfig.CardMax)
|
||||
|
||||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeUpgradeMember
|
||||
fundRecord.Remark = "升级会员"
|
||||
} else if notify.Attach == wxpay.WxPayMemberExpireDelay {
|
||||
record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo}
|
||||
err := record.GetByOpenNo()
|
||||
|
@ -584,6 +632,9 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
logger.Error("err:", err)
|
||||
return
|
||||
}
|
||||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeMemberExpireDelay
|
||||
fundRecord.Remark = "会员过期滞纳金"
|
||||
} else if notify.Attach == wxpay.WxPayShareCardRetrieve {
|
||||
record := &model.UserOpenMemberRecord{OpenNo: notify.OutTradeNo}
|
||||
err := record.GetByOpenNo()
|
||||
|
@ -608,8 +659,19 @@ func PushWXPayNotice(c *gin.Context) {
|
|||
if err != nil {
|
||||
logger.Error("update pay state err:", err)
|
||||
}
|
||||
fundRecord.Uid = uint32(record.Uid)
|
||||
fundRecord.FundType = model.FundTypeExpressFee
|
||||
fundRecord.Remark = "共享卡收回卡快递费"
|
||||
}
|
||||
|
||||
fundRecord.Amount = int64(notify.TotalFee)
|
||||
fundRecord.TransactionId = notify.TransactionId
|
||||
fundRecord.OutTradeNo = notify.OutTradeNo
|
||||
fundRecord.Status = 2
|
||||
err = model.DB.Create(&fundRecord).Error
|
||||
if err != nil {
|
||||
logger.Error("create fund record err:", err)
|
||||
}
|
||||
logger.Debug("微信推动支付通知")
|
||||
ret.ReturnCode = "SUCCESS"
|
||||
RespBodyXML(c, ret)
|
||||
|
|
|
@ -335,10 +335,24 @@ func RentCardOrderCreate(c *gin.Context) {
|
|||
RespJson(c, status.OrderStockOut, nil)
|
||||
return
|
||||
}
|
||||
go func() {
|
||||
if user.OpenMemberChannel == model.OpenMemberChannelStorePromotion {
|
||||
go func() {
|
||||
exist, err := model.QueryRecordExist(fmt.Sprintf("SELECT * FROM `order` WHERE uid = %d", uc.Uid))
|
||||
if err != nil {
|
||||
logger.Error("order exist err:", err)
|
||||
return
|
||||
}
|
||||
|
||||
}()
|
||||
fmt.Println("PayPrice:", order.PayPrice)
|
||||
if !exist && user.OpenMemberTime.Format(model.DateTimeFormat) == time.Now().Format(model.DateTimeFormat) {
|
||||
_, err = model.NewUserQuerySet(model.DB).UidEq(uc.Uid).GetUpdater().SetStoreId(uint64(req.StoreId)).UpdateNum()
|
||||
if err != nil {
|
||||
logger.Error("update user err:", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
//fmt.Println("PayPrice:", order.PayPrice)
|
||||
if req.Price == 0 {
|
||||
tx := model.TransactionBegin()
|
||||
order.PayStatus = model.PayStatusPaid
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -120,6 +120,7 @@ func InitTestDB() {
|
|||
//&GameShareCardVm{},
|
||||
|
||||
&GameCard{},
|
||||
&FundRecord{},
|
||||
)
|
||||
|
||||
fmt.Println("DB init success")
|
||||
|
|
|
@ -829,6 +829,18 @@ func (m *Order) CreatOrderCard(cards []CardInfo, storeId uint32, gdb *gorm.DB) e
|
|||
return nil
|
||||
}
|
||||
|
||||
func QueryRecordExist(sql string) {
|
||||
DB.Where("").Count("")
|
||||
type RecordExist struct {
|
||||
RecordExist int64 `json:"record_exist"`
|
||||
}
|
||||
|
||||
func QueryRecordExist(sql string) (bool, error) {
|
||||
var recordExist RecordExist
|
||||
existSql := fmt.Sprintf("SELECT EXISTS (%s) AS record_exist;", sql)
|
||||
err := DB.Raw(existSql).Scan(&recordExist).Error
|
||||
if err != nil {
|
||||
logger.Error("err:", err)
|
||||
return false, err
|
||||
}
|
||||
|
||||
return recordExist.RecordExist == 1, nil
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ const (
|
|||
TimeFormat = "2006-01-02 15:04:05"
|
||||
)
|
||||
const (
|
||||
OpenMemberChannelStorePromotion = "store_promotion"
|
||||
OpenMemberChannelStorePromotion = "store_promotion" // 门店推荐
|
||||
OpenMemberChannelUserInvite = "user_invite"
|
||||
OpenMemberChannelRedeemCode = "redeem_code"
|
||||
)
|
||||
|
@ -107,26 +107,32 @@ type DepositRefundRecord struct {
|
|||
User User `json:"user" gorm:"-"`
|
||||
}
|
||||
|
||||
// 黄金会员 member_gold 白金会员 member_platinum 黑金会员 member_black_gold
|
||||
// member_gold_deposit member_platinum_deposit member_black_gold_platinum
|
||||
// express_fee
|
||||
const (
|
||||
UserConsumeTypeMemberGold = "member_gold"
|
||||
UserConsumeTypeMemberPlatinum = "member_platinum"
|
||||
UserConsumeTypeMemberBlackGold = "member_black_gold"
|
||||
UserConsumeTypeMemberGoldDeposit = "member_gold_deposit"
|
||||
UserConsumeTypeMemberPlatinumDeposit = "member_platinum_deposit"
|
||||
UserConsumeTypeMemberBlackGoldDeposit = "member_black_gold_platinum"
|
||||
UserConsumeTypeExpressFee = "express_fee"
|
||||
FundTypeMemberFee = "member_fee"
|
||||
FundTypeMemberDeposit = "member_deposit"
|
||||
|
||||
//FundTypeMemberGold = "member_gold" // 黄金会员
|
||||
//FundTypeMemberPlatinum = "member_platinum" // 白金会员
|
||||
//FundTypeMemberBlackGold = "member_black_gold" // 黑金会员
|
||||
//FundTypeMemberGoldDeposit = "member_gold_deposit" // 黄金会员押金
|
||||
//FundTypeMemberPlatinumDeposit = "member_platinum_deposit" // 白金会员押金
|
||||
//FundTypeMemberBlackGoldDeposit = "member_black_gold_platinum" // 黑金会员押金
|
||||
|
||||
FundTypeExpressFee = "express_fee" // 邮费
|
||||
FundTypeUpgradeMember = "upgrade_member" // 升级会员
|
||||
FundTypeMemberExpireDelay = "member_expire_delay" // 滞纳金
|
||||
)
|
||||
|
||||
// gen:qs
|
||||
type UserConsumeRecord struct {
|
||||
type FundRecord struct {
|
||||
Model
|
||||
Uid uint32 `json:"uid"`
|
||||
ConsumeType string `json:"consume_type"` // 黄金会员 member_gold 白金会员 member_platinum 黑金会员 member_black_gold
|
||||
Amount uint32 `json:"amount"`
|
||||
Status uint32 `json:"status"` // 1-待支付 2-已支付 3-已退款
|
||||
Uid uint32 `json:"uid"`
|
||||
FundType string `json:"fund_type"` // -member_gold -member_platinum -member_black_gold
|
||||
Amount int64 `json:"amount"`
|
||||
TransactionId string `json:"transaction_id"` // 支付单号
|
||||
OutTradeNo string `json:"out_trade_no"`
|
||||
Status uint32 `json:"status"` // 1-待支付 2-已支付 3-已退款
|
||||
Remark string `json:"remark"` // 备注
|
||||
}
|
||||
|
||||
// gen:qs
|
||||
|
|
Loading…
Reference in New Issue
Block a user