待提现

This commit is contained in:
苏尹岚
2020-11-16 16:31:28 +08:00
parent 5d62f14378
commit 641e05cfd7
4 changed files with 48 additions and 11 deletions

View File

@@ -488,6 +488,7 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (e
jobOrder.Comment = comment
jobOrder.AuditAt = time.Now()
jobOrder.LastOperator = ctx.GetUserName()
userBillJobOrder, err := dao.GetUserBill(db, jobOrder.UserID, "")
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
@@ -507,23 +508,30 @@ func AuditJob(ctx *jxcontext.Context, jobOrderID, status int, comment string) (e
} 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 {
//不分成
if messageGroupsResult[0].DividePercentage != 0 {
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
}
}
//接收人账户收入
if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJobDivide, job.AvgPrice*(100-messageGroupsResult[0].DividePercentage)/100); err != nil {
dao.Rollback(db)
return err
}
} else {
//接收人账户收入
if err = financial.AddIncomeUpdateAccount(db, userBillJobOrder, model.BillTypeJob, job.AvgPrice); 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

View File

@@ -496,6 +496,9 @@ func GetSelfInfo(ctx *jxcontext.Context) (getSelfInfoResult *dao.GetSelfInfoResu
} else {
err = err3
}
if price, err := dao.GetUserAllWaitCashPrice(dao.GetDB(), getSelfInfoResult.User.UserID); err == nil {
getSelfInfoResult.WaitCashPrice = price
}
}
}
return getSelfInfoResult, err

View File

@@ -21,7 +21,8 @@ type UserDeliveryAddressEx struct {
type GetSelfInfoResult struct {
model.User
model.UserBill
UserMembers []*model.UserMember `json:"userMembers"`
WaitCashPrice int `json:"waitCashPrice"`
UserMembers []*model.UserMember `json:"userMembers"`
}
func GetUserByID(db *DaoDB, fieldName, fieldValue string) (user *model.User, err error) {
@@ -232,3 +233,28 @@ func GetUserMember(db *DaoDB, userID string, memberType int) (userMembers []*mod
err = GetRows(db, &userMembers, sql, sqlParams)
return userMembers, err
}
type GetUserAllWaitCashPriceResult struct {
UserID string `orm:"column(user_id)" json:"userID"`
Price int `json:"price"`
}
func GetUserAllWaitCashPrice(db *DaoDB, userID string) (price int, err error) {
var result = &GetUserAllWaitCashPriceResult{}
sql := `
SELECT SUM(IF(d.id IS NOT NULL, IF(d.divide_percentage = 0, b.avg_price, b.avg_price*(100-d.divide_percentage)/100),b.avg_price)) price, a.user_id
FROM job_order a
JOIN job b ON a.job_id = b.id
LEFT JOIN message_group_member c ON a.user_id = c.member_user_id
LEFT JOIN message_group d ON d.group_id = c.group_id AND d.type = ?
WHERE a.user_id = ?
AND a.status = ?
`
sqlParams := []interface{}{
model.GroupTypeMulit,
userID,
model.JobOrderStatusWaitAudit,
}
err = GetRow(db, &result, sql, sqlParams)
return result.Price, err
}

View File

@@ -246,7 +246,7 @@ func GetMessageGroupMembers(db *DaoDB, groupID, groupType int, memberUserID stri
FROM message_group_member a
`
if groupType != 0 {
sql += ` JOIN message_group b ON b.group_id = a.group_id AND b.group_type = ?`
sql += ` JOIN message_group b ON b.group_id = a.group_id AND b.type = ?`
sqlParams = append(sqlParams, groupType)
}
sql += `