This commit is contained in:
richboo111
2022-07-22 14:05:15 +08:00
parent 92dffeba1d
commit ed5deec4f4
3 changed files with 21 additions and 55 deletions

View File

@@ -1,9 +1,8 @@
package financial
import (
"fmt"
_ "fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/auth2"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model"
@@ -169,42 +168,8 @@ func SettleUnionOrders(ctx *jxcontext.Context, vendorIDs []int) (err error) {
}
func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string, isFree bool) (errCode string, err error) {
var (
db = dao.GetDB()
memberCards []*model.MemberCard
memberCard *model.MemberCard
userIDReal string
)
if !isFree {
userIDReal = ctx.GetUserID()
} else {
userIDReal = userID
}
userMembers, err := dao.GetUserMember(db, userIDReal, model.MemberTypeNormal)
configList, err := dao.QueryConfigs(db, model.ConfigTypeName[model.ConfigTypeMemberCard], model.ConfigTypeMemberCard, "")
userBill, err := dao.GetUserBill(db, userIDReal, "")
if len(configList) <= 0 {
return "", fmt.Errorf("未找到会员卡配置!")
}
config := configList[0]
err = jxutils.Strings2Objs(config.Value, &memberCards)
if err != nil {
return "", err
}
for _, v := range memberCards {
if v.ID == memberID {
memberCard = v
}
}
if !isFree {
//验证微信绑定
if err = auth2.CheckWeixinminiAuthBind(userIDReal); err != nil {
return "", err
}
if userBill.AccountBalance < memberCard.ActPrice {
return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足,请充值!")
}
}
var db = dao.GetDB()
userMembers, err := dao.GetUserMember(db, userID, model.MemberTypeNormal)
txDB, _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
@@ -212,7 +177,7 @@ func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string, isFree
panic(r)
}
}()
//证明已经开了会员了,相当于续费
//当前状态是否是会员 续费/开通
if len(userMembers) > 0 {
userMember := userMembers[0]
if memberID == model.MemberCardTypeMonth {
@@ -226,7 +191,7 @@ func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string, isFree
}
} else {
userMember2 := &model.UserMember{
UserID: userIDReal,
UserID: userID,
MemberType: model.MemberTypeNormal,
MemberTypeID: memberID,
}
@@ -241,14 +206,6 @@ func WXInvestMember(ctx *jxcontext.Context, memberID int, userID string, isFree
return
}
}
if !isFree {
//支出明细
if err = AddExpendUpdateAccount(txDB, userBill, model.BillTypeMember, memberCard.ActPrice, 0); err != nil {
dao.Rollback(db, txDB)
return
}
}
dao.Commit(db, txDB)
return errCode, err
}