Merge branch 'rsm' of e.coding.net:rosydev/jx-callback into rsm

This commit is contained in:
邹宗楠
2022-07-22 18:21:00 +08:00
6 changed files with 117 additions and 30 deletions

View File

@@ -541,6 +541,7 @@ func InvestMember(ctx *jxcontext.Context, memberID int, userID string, isFree bo
userMembers, err := dao.GetUserMember(db, userIDReal, model.MemberTypeNormal) userMembers, err := dao.GetUserMember(db, userIDReal, model.MemberTypeNormal)
configList, err := dao.QueryConfigs(db, model.ConfigTypeName[model.ConfigTypeMemberCard], model.ConfigTypeMemberCard, "") configList, err := dao.QueryConfigs(db, model.ConfigTypeName[model.ConfigTypeMemberCard], model.ConfigTypeMemberCard, "")
userBill, err := dao.GetUserBill(db, userIDReal, "") userBill, err := dao.GetUserBill(db, userIDReal, "")
if len(configList) <= 0 { if len(configList) <= 0 {
return "", fmt.Errorf("未找到会员卡配置!") return "", fmt.Errorf("未找到会员卡配置!")
} }

View File

@@ -1,11 +1,13 @@
package financial package financial
import ( import (
_ "fmt"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "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"
"git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-print/globals"
"github.com/astaxie/beego/client/orm" "github.com/astaxie/beego/client/orm"
"time" "time"
) )
@@ -165,3 +167,43 @@ func SettleUnionOrders(ctx *jxcontext.Context, vendorIDs []int) (err error) {
dao.Commit(db, txDB) dao.Commit(db, txDB)
return err return err
} }
func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string) (errCode string, err error) {
var db = dao.GetDB()
//获取用户 当前会员信息
userMembers, err := dao.GetUserMember(db, userID, model.MemberTypeNormal)
if err != nil {
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)
}
if _, err = dao.UpdateEntity(db, userMember, "EndAt"); err != nil {
return "更新会员到期时间失败", err
}
} else {
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
}
}
globals.SugarLogger.Debugf("==================== %d", cnt)
return errCode, err
}

View File

@@ -0,0 +1,14 @@
package financial
import (
"testing"
)
func TestOnWXPayFinished(t *testing.T) {
//var (
// ctx *jxcontext.Context
//)
//if _, err := WXInvestMember(ctx, 1, "1303D7B2096011ED9A4C525400C36BDA", true); err != nil {
// t.Logf("微信购买会员失败")
//}
}

View File

@@ -245,6 +245,7 @@ func OnTLPayCallback(call *tonglianpayapi.CallBackResult) (err error) {
} }
func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
var count = 0
order := &model.Order{ order := &model.Order{
OrderID: call.CusorderID, OrderID: call.CusorderID,
} }
@@ -268,6 +269,14 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
payStatus = model.OrderStatusFailPay payStatus = model.OrderStatusFailPay
} }
//充值会员 增加微信支付处理业务
if (order.OrderType == 2 || order.OrderType == 5) && call.TrxStatus == tonglianpayapi.TrxStatusSuccess {
if err := OnWXPayFinished(order); err != nil {
return err
}
count++
return err
} else if order.OrderType == 3 {
txdb, _ := dao.Begin(db) txdb, _ := dao.Begin(db)
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
@@ -278,7 +287,6 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
dao.Rollback(db, txdb) dao.Rollback(db, txdb)
return err return err
} }
userOrder := model.UserVendorOrder{LocalWayBill: order.OrderID} userOrder := model.UserVendorOrder{LocalWayBill: order.OrderID}
if err := dao.GetEntity(db, &userOrder, `LocalWayBill`); err != nil { if err := dao.GetEntity(db, &userOrder, `LocalWayBill`); err != nil {
dao.Rollback(db, txdb) dao.Rollback(db, txdb)
@@ -298,9 +306,12 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) {
err = OnPayFinished(order) err = OnPayFinished(order)
} }
} }
return err
}
} else { } else {
globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err)
} }
globals.SugarLogger.Debugf("=============aaaaaaaaa========== %d", count)
return err return err
} }

View File

@@ -2,7 +2,6 @@ package financial
import ( import (
"fmt" "fmt"
"git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/jx-callback/globals"
@@ -102,3 +101,22 @@ func OnCashFinished(order *model.Order) (err error) {
globals.SugarLogger.Debugf("OnCashFinished end modify account ...") globals.SugarLogger.Debugf("OnCashFinished end modify account ...")
return err return err
} }
//微信支付充值会员
func OnWXPayFinished(order *model.Order) (err error) {
var (
ctx *jxcontext.Context
)
globals.SugarLogger.Debugf("OnWXPayFinished begin modify account order: %v", utils.Format4Output(order, false))
//根据订单类型来操作账户
if order.Type == model.OrderTypePay {
if _, err = WXInvestMember(ctx, order.OrderType, order.UserID); err != nil {
return err
}
} else {
globals.SugarLogger.Debugf("OnWXPayFinished 暂不支持此订单类型 order: %v", utils.Format4Output(order, false))
return fmt.Errorf("暂不支持此订单类型!")
}
globals.SugarLogger.Debugf("OnWXPayFinished end modify account ...")
return err
}

View File

@@ -30,9 +30,10 @@ const (
OrderTypeCash = 2 //提现 OrderTypeCash = 2 //提现
OrderTypePublishJob = 1 //发布任务 OrderTypePublishJob = 1 //发布任务
OrderTpyeMember = 2 //充值会员 OrderTypeMember = 2 //充值会员月卡
OrderTypeMemberYear = 5 //充值会员年卡
OrderTypeDelivery = 3 //发快递 OrderTypeDelivery = 3 //发快递
OrderTpyeDropShipping = 4 //一件代发交钱 OrderTypeDropShipping = 4 //一件代发交钱
) )
var ( var (
@@ -58,7 +59,7 @@ type Order struct {
OrderID string `orm:"column(order_id)" json:"orderID"` // 订单号 OrderID string `orm:"column(order_id)" json:"orderID"` // 订单号
UserID string `orm:"column(user_id);size(48)" json:"userID"` // 用户ID UserID string `orm:"column(user_id);size(48)" json:"userID"` // 用户ID
Type int `json:"type"` // 支付还是提现 1-支付2-提现 Type int `json:"type"` // 支付还是提现 1-支付2-提现
OrderType int `json:"orderType"` // 订单类型1-发任务2-会员3-发快递4-提现 OrderType int `json:"orderType"` // 订单类型1-发任务2-会员月卡3-发快递4-提现5-会员年卡
Way string `json:"way"` // weixinapp ,weixinmini Way string `json:"way"` // weixinapp ,weixinmini
Status int `json:"status"` // 订单状态,待支付2已支付5支付成功110支付失败115,150取消 Status int `json:"status"` // 订单状态,待支付2已支付5支付成功110支付失败115,150取消
PayPrice int `json:"payPrice"` // 支付金额 PayPrice int `json:"payPrice"` // 支付金额