From f920a30389c4f4c9af83440f4eaeed7b04d29234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Nov 2020 14:57:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=88=86=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/job.go | 42 ++++++++++++++++++++++++------------- business/model/bill.go | 2 ++ 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index b0547184f..f46e41505 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -501,20 +501,34 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (e } if status == model.JobOrderStatusAuditPass { //若完成任务的人在某个群组中,则要向群主分成 - // if messageGroupMembers, err := dao.GetMessageGroupMembers(db, 0, model.GroupTypeMulit, jobOrder.UserID); err == nil { - // if len(messageGroupMembers) > 1 { - // return fmt.Errorf("审核异常,该任务提交人加入了多个群组!") - // } else if len(messageGroupMembers) == 1 { - // if messageGroupsResult, err := dao.GetMessageGroups(db, "", messageGroupMembers[0].GroupID, model.GroupTypeMulit, false, ""); err == nil { - - // } - // } - // } - //接收人账户收入 - userBillJobOrder, err := dao.GetUserBill(db, jobOrder.UserID, "") - if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJob, job.AvgPrice); err != nil { - dao.Rollback(db) - return err + if messageGroupMembers, err := dao.GetMessageGroupMembers(db, 0, model.GroupTypeMulit, jobOrder.UserID); err == nil { + if len(messageGroupMembers) > 1 { + return fmt.Errorf("审核异常,该任务提交人加入了多个群组!") + } else if len(messageGroupMembers) == 1 { + if messageGroupsResult, err := dao.GetMessageGroups(db, "", messageGroupMembers[0].GroupID, model.GroupTypeMulit, false, ""); err == nil { + if len(messageGroupsResult) == 1 { + if userBillGroupMaster, err := dao.GetUserBill(db, messageGroupsResult[0].UserID, ""); err == nil { + if err = financial.AddIncomeUpdateAccount(db, userBillGroupMaster, model.BillTypeDivide, job.AvgPrice*messageGroupsResult[0].DividePercentage/100); err != nil { + dao.Rollback(db) + return err + } + } + //接收人账户收入 + userBillJobOrder, err := dao.GetUserBill(db, jobOrder.UserID, "") + if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJobDivide, job.AvgPrice*(100-messageGroupsResult[0].DividePercentage)/100); err != nil { + dao.Rollback(db) + return err + } + } + } + } else if len(messageGroupMembers) == 0 { //若没有在某个群组,则得到全部 + //接收人账户收入 + userBillJobOrder, err := dao.GetUserBill(db, jobOrder.UserID, "") + if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJob, job.AvgPrice); err != nil { + dao.Rollback(db) + return err + } + } } jobOrder.Status = model.JobOrderStatusFinish if _, err = dao.UpdateEntity(db, jobOrder, "Status"); err != nil { diff --git a/business/model/bill.go b/business/model/bill.go index c66546865..1ddb444b5 100644 --- a/business/model/bill.go +++ b/business/model/bill.go @@ -6,6 +6,8 @@ const ( BillTypeJobCancelOverdue = 12 //任务过期或取消 BillTypeJobAuditUnPassWithCancelOverdue = 13 //任务不通过时,任务已取消或过期 BillTypeSpJob = 14 //特殊任务扣除 + BillTypeDivide = 15 //群员做任务分成 + BillTypeJobDivide = 16 //做任务实得(被扣除分成后) BillTypeMember = 20 //开通会员