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)
|
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
|
||||||
}
|
}
|
||||||
@@ -626,40 +611,50 @@ 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 {
|
//特殊任务,如美团会员,是直接要支付
|
||||||
mtMember.DeletedAt = time.Now()
|
userBill, err := dao.GetUserBill(db, userID, "")
|
||||||
if _, err = dao.UpdateEntity(db, mtMember, "DeletedAt"); err == nil {
|
if err != nil {
|
||||||
dao.Commit(db)
|
return errCode, err
|
||||||
} else {
|
}
|
||||||
|
if userBill.AccountBalance < 1000 {
|
||||||
|
return model.ErrCodeAccountBalanceNotEnough, fmt.Errorf("用户余额不足,请充值!")
|
||||||
|
}
|
||||||
|
//账户支出
|
||||||
|
if err = financial.AddExpendUpdateAccount(db, userBill, model.BillTypeSpJob, 1000); err != nil {
|
||||||
dao.Rollback(db)
|
dao.Rollback(db)
|
||||||
return errCode, err
|
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()
|
||||||
|
dao.UpdateEntity(db, mtMember, "DeletedAt")
|
||||||
|
if err == nil {
|
||||||
job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
|
job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeMtMember}, utils.ZeroTimeValue, utils.ZeroTimeValue, false)
|
||||||
errCode, err = AcceptJob(ctx, job.ID)
|
errCode, err = AcceptJob(ctx, job.ID)
|
||||||
if errCode != "" {
|
if errCode != "" {
|
||||||
@@ -668,7 +663,10 @@ func RechargeMtMembers(ctx *jxcontext.Context, phone int) (errCode string, err e
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errCode, err
|
return errCode, err
|
||||||
}
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
dao.Commit(db)
|
||||||
return errCode, err
|
return errCode, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user