This commit is contained in:
苏尹岚
2020-12-09 15:22:59 +08:00
parent 145deb5c70
commit 633aef8f10

View File

@@ -296,21 +296,6 @@ func AcceptJob(ctx *jxcontext.Context, jobID int) (errCode string, err error) {
//任务限时完成 //任务限时完成
timer := checkLimitJobOrders(db, job, jobOrder, model.JobTimerTypeAccept) timer := checkLimitJobOrders(db, job, jobOrder, model.JobTimerTypeAccept)
JobTimerMap[jobOrder.JobOrderID] = timer JobTimerMap[jobOrder.JobOrderID] = timer
//特殊任务,如美团会员,是直接要支付
if job.Type == model.JobTypeMtMember {
userBill, err := dao.GetUserBill(db, ctx.GetUserID(), "")
if err != nil {
return errCode, err
}
if userBill.AccountBalance < 1000 {
return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足,请充值!")
}
//账户支出
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, 1000); err != nil {
dao.Rollback(db)
return errCode, err
}
}
dao.Commit(db) dao.Commit(db)
return errCode, err return errCode, err
} }
@@ -625,50 +610,63 @@ func ImprotMtMembers(ctx *jxcontext.Context, mtMembers []*model.MtMember) (err e
func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err error) { func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err error) {
var ( var (
db = dao.GetDB() db = dao.GetDB()
userID = ctx.GetUserID()
) )
dao.Begin(db) dao.Begin(db)
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
dao.Rollback(db) dao.Rollback(db)
panic(r) panic(r)
} else {
dao.Commit(db)
} }
}() }()
nums, err := dao.GetMtMembers(db) nums, err := dao.GetMtMembers(db)
if nums < 10 { if nums < 10 {
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "F4836F9238F611EB9101525400C36BDA", "美团会员券", "美团会员券仅剩"+utils.Int2Str(nums)+"张了!") ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "F4836F9238F611EB9101525400C36BDA", "美团会员券", "美团会员券仅剩"+utils.Int2Str(nums)+"张了!")
} ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "EFA9876238FC11EB9101525400C36BDA", "美团会员券", "美团会员券仅剩"+utils.Int2Str(nums)+"张了!")
mtMember, err := dao.GetMtMember(db)
if mtMember == nil {
return errCode, fmt.Errorf("补券中,请稍后再试!")
} }
if err != nil { if err != nil {
dao.Rollback(db) dao.Rollback(db)
return errCode, err return errCode, err
} }
//验证微信绑定 //验证微信绑定
if err = auth2.CheckWeixinminiAuthBind(ctx.GetUserID()); err != nil { if err = auth2.CheckWeixinminiAuthBind(userID); err != nil {
return "", err return "", err
} }
if err = api.MtMemberAPI.RechargeExchange(phone, mtMember.ShortLink); err == nil { //特殊任务,如美团会员,是直接要支付
userBill, err := dao.GetUserBill(db, userID, "")
if err != nil {
return errCode, err
}
if userBill.AccountBalance < 1000 {
return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足,请充值!")
}
//账户支出
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, 1000); err != nil {
dao.Rollback(db)
return errCode, err
}
for {
mtMember, err := dao.GetMtMember(db)
if mtMember == nil {
return errCode, fmt.Errorf("补券中,请稍后再试!")
}
err = api.MtMemberAPI.RechargeExchange(phone, mtMember.ShortLink)
mtMember.DeletedAt = time.Now() mtMember.DeletedAt = time.Now()
if _, err = dao.UpdateEntity(db, mtMember, "DeletedAt"); err == nil { dao.UpdateEntity(db, mtMember, "DeletedAt")
dao.Commit(db) if err == nil {
} else { job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
dao.Rollback(db) errCode, err = AcceptJob(ctx, job.ID)
return errCode, err if errCode != "" {
} return errCode, err
job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false) }
errCode, err = AcceptJob(ctx, job.ID) if err != nil {
if errCode != "" { return errCode, err
return errCode, err }
} break
if err != nil {
return errCode, err
} }
} }
dao.Commit(db)
return errCode, err return errCode, err
} }