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)
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)
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) {
var (
db = dao.GetDB()
db = dao.GetDB()
userID = ctx.GetUserID()
)
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
} else {
dao.Commit(db)
}
}()
nums, err := dao.GetMtMembers(db)
if nums < 10 {
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "F4836F9238F611EB9101525400C36BDA", "美团会员券", "美团会员券仅剩"+utils.Int2Str(nums)+"张了!")
}
mtMember, err := dao.GetMtMember(db)
if mtMember == nil {
return errCode, fmt.Errorf("补券中,请稍后再试!")
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "EFA9876238FC11EB9101525400C36BDA", "美团会员券", "美团会员券仅剩"+utils.Int2Str(nums)+"张了!")
}
if err != nil {
dao.Rollback(db)
return errCode, err
}
//验证微信绑定
if err = auth2.CheckWeixinminiAuthBind(ctx.GetUserID()); err != nil {
if err = auth2.CheckWeixinminiAuthBind(userID); err != nil {
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()
if _, err = dao.UpdateEntity(db, mtMember, "DeletedAt"); err == nil {
dao.Commit(db)
} else {
dao.Rollback(db)
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 errCode != "" {
return errCode, err
}
if err != nil {
return errCode, err
dao.UpdateEntity(db, mtMember, "DeletedAt")
if err == nil {
job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
errCode, err = AcceptJob(ctx, job.ID)
if errCode != "" {
return errCode, err
}
if err != nil {
return errCode, err
}
break
}
}
dao.Commit(db)
return errCode, err
}