This commit is contained in:
苏尹岚
2021-01-04 11:55:27 +08:00
parent 31c746f639
commit b586a93722

View File

@@ -208,12 +208,12 @@ func GetPayStatistics(db *DaoDB, userID string, pop int, cityCodes []int, mobile
return sql
}
sql := `
SELECT t1.total_pay, t2.submit_cash + t3.account_balance can_cash, t3.account_balance, t4.cashed, t4.cashed / 10 cash_income
SELECT SUM(IFNULL(t1.pay_price,0)) total_pay, SUM(IFNULL(t2.pay_price,0)) submit_cash + SUM(IFNULL(t3.account_balance,0)) can_cash, t3.account_balance, t4.cashed, t4.cashed / 10 cash_income
FROM user a
LEFT JOIN (SELECT SUM(pay_price) total_pay, user_id FROM ` + "`order`" + ` WHERE type = ? AND status = ? ` + getWhereSql(sqlParams) + ` GROUP BY 2) t1 ON t1.user_id = a.user_id
LEFT JOIN (SELECT SUM(pay_price) submit_cash, user_id FROM ` + "`order`" + ` WHERE type = ? AND status = ?` + getWhereSql(sqlParams) + ` GROUP BY 2) t2 ON t2.user_id = a.user_id
LEFT JOIN ` + "`order` t1" + ` WHERE type = ? AND status = ? ` + getWhereSql(sqlParams) + ` ON t1.user_id = a.user_id
LEFT JOIN ` + "`order` t2" + ` WHERE type = ? AND status = ?` + getWhereSql(sqlParams) + `ON t2.user_id = a.user_id
LEFT JOIN user_bill t3 ON t3.user_id = a.user_id
LEFT JOIN (SELECT SUM(pay_price) cashed, user_id FROM ` + "`order`" + ` WHERE type = ? AND status = ?` + getWhereSql(sqlParams) + ` GROUP BY 2) t4 ON t4.user_id = a.user_id
LEFT JOIN ` + "`order` t4" + ` WHERE type = ? AND status = ?` + getWhereSql(sqlParams) + `ON t4.user_id = a.user_id
`
sqlParams = append(sqlParams, model.OrderTypePay, model.OrderStatusFinished)
sqlParams = append(sqlParams, model.OrderTypeCash, model.OrderStatusWait4Pay)
@@ -252,6 +252,7 @@ func GetPayStatistics(db *DaoDB, userID string, pop int, cityCodes []int, mobile
fmt.Println(utils.Format4Output(getPayStatisticsResult, false))
sqlParams2 := []interface{}{}
getPayStatisticsResult1 := &GetPayStatisticsResult{}
sql2 := `
SELECT SUM(IFNULL(d.expend_price,0)) member_income
FROM user a`
@@ -264,6 +265,22 @@ func GetPayStatistics(db *DaoDB, userID string, pop int, cityCodes []int, mobile
sqlParams2 = append(sqlParams2, mobile)
}
}
sql2 += `
LEFT JOIN user_bill c ON c.user_id = a.user_id
LEFT JOIN bill_expend d ON d.bill_id = c.bill_id AND d.type = ?
`
if fromTime != utils.ZeroTimeValue {
sql2 += ` AND d.created_at > ?`
sqlParams2 = append(sqlParams2, fromTime)
}
if toTime != utils.ZeroTimeValue {
sql2 += ` AND d.created_at < ?`
sqlParams2 = append(sqlParams2, toTime)
}
sql2 += `
WHERE a.status = ? AND a.deleted_at = ?
`
sqlParams2 = append(sqlParams2, model.BillTypeMember, model.UserStatusNormal, utils.DefaultTimeValue)
if len(cityCodes) > 0 {
sql2 += ` AND a.city_code IN ` + GenQuestionMarks(len(cityCodes)) + `)`
sqlParams2 = append(sqlParams2, cityCodes)
@@ -277,23 +294,8 @@ func GetPayStatistics(db *DaoDB, userID string, pop int, cityCodes []int, mobile
sqlParams2 = append(sqlParams2, userID)
}
}
sql2 += `
LEFT JOIN user_bill c ON c.user_id = a.user_id
LEFT JOIN bill_expend d ON d.bill_id = c.bill_id AND d.type = ?
WHERE a.status = ? AND a.deleted_at = ?
`
sqlParams2 = append(sqlParams2, model.BillTypeMember, model.UserStatusNormal, utils.DefaultTimeValue)
if fromTime != utils.ZeroTimeValue {
sql2 += ` AND d.created_at > ?`
sqlParams2 = append(sqlParams2, fromTime)
}
if toTime != utils.ZeroTimeValue {
sql2 += ` AND d.created_at < ?`
sqlParams2 = append(sqlParams2, toTime)
}
fmt.Println(sql2)
fmt.Println(sqlParams2)
err = GetRow(db, &getPayStatisticsResult, sql2, sqlParams2)
fmt.Println(utils.Format4Output(getPayStatisticsResult, false))
err = GetRow(db, &getPayStatisticsResult1, sql2, sqlParams2)
getPayStatisticsResult.MemberIncome = getPayStatisticsResult1.MemberIncome
getPayStatisticsResult.TotalIncome = getPayStatisticsResult.MemberIncome + getPayStatisticsResult.CashIncome
return getPayStatisticsResult, err
}