a
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user