新增混合支付+完善新会员充值

This commit is contained in:
richboo111
2022-07-26 11:55:20 +08:00
parent 2b3349127d
commit 17ef6c5170
8 changed files with 164 additions and 22 deletions

View File

@@ -7,7 +7,6 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-print/globals"
"github.com/astaxie/beego/client/orm"
"time"
)
@@ -168,6 +167,7 @@ func SettleUnionOrders(ctx *jxcontext.Context, vendorIDs []int) (err error) {
return err
}
//微信 老会员续费
func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string) (errCode string, err error) {
var db = dao.GetDB()
//获取用户 当前会员信息
@@ -176,12 +176,10 @@ func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string) (errCod
return "获取用户会员信息失败", err
}
//当前状态是否是会员 续费/开通
var cnt = 0
if len(userMembers) > 0 {
userMember := userMembers[0]
if memberID == model.OrderTypeMember {
userMember.EndAt = userMember.EndAt.AddDate(0, 1, 0)
cnt++
} else {
userMember.EndAt = userMember.EndAt.AddDate(1, 0, 0)
}
@@ -204,6 +202,25 @@ func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string) (errCod
return "开通会员失败", err
}
}
globals.SugarLogger.Debugf("==================== %d", cnt)
return errCode, err
}
//微信 新充值会员
func WXInvestMemberNew(ctx *jxcontext.Context, memberID int, userID string) (errCode string, err error) {
var db = dao.GetDB()
userMember2 := &model.UserMember{
UserID: userID,
MemberType: model.MemberTypeNormal,
MemberTypeID: memberID,
}
if memberID == model.OrderTypeMember {
userMember2.EndAt = time.Now().AddDate(0, 1, 0)
} else {
userMember2.EndAt = time.Now().AddDate(1, 0, 0)
}
dao.WrapAddIDCULDEntity(userMember2, ctx.GetUserName())
if err = dao.CreateEntity(db, userMember2); err != nil {
return "开通会员失败", err
}
return errCode, err
}

View File

@@ -296,13 +296,9 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
if call.TrxStatus == tonglianpayapi.TrxStatusSuccess {
switch order.OrderType {
case model.PayType4Express:
<<<<<<< HEAD
err = q_bida.CreateOrder2QBiDa(&userOrder)
=======
err = q_bida.CreateOrder2QBiDa(&userOrder, order.OrderID)
case model.PayType4Member, model.PayType4Recharge:
err = OnPayFinished(order)
>>>>>>> 273aa3164fbc887ac30837bd4ce1b25410ca498c
}
}
return err

View File

@@ -105,12 +105,27 @@ func OnCashFinished(order *model.Order) (err error) {
//微信支付充值会员
func OnWXPayFinished(order *model.Order) (err error) {
var (
db = dao.GetDB()
ctx *jxcontext.Context
)
globals.SugarLogger.Debugf("OnWXPayFinished begin modify account order: %v", utils.Format4Output(order, false))
//判断是新会员充值还是老会员续费
userMembers, err := dao.GetUserMember(db, order.UserID, model.MemberTypeNormal)
if err != nil {
return err
}
//根据订单类型来操作账户
if order.Type == model.OrderTypePay {
_, err = WXInvestMember(ctx, order.OrderType, order.UserID)
//为新会员生成会员信息并充值
if len(userMembers) > 0 {
if _, err := WXInvestMember(ctx, order.OrderType, order.UserID); err != nil {
return err
}
} else {
if _, err := WXInvestMemberNew(ctx, order.OrderType, order.UserID); err != nil {
return err
}
}
} else {
globals.SugarLogger.Debugf("OnWXPayFinished 暂不支持此订单类型 order: %v", utils.Format4Output(order, false))
return fmt.Errorf("暂不支持此订单类型!")