作者 陈志颖

fix:修复个人素币收支统计

... ... @@ -217,20 +217,22 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction
var (
incomeSuMoney float64 // 收入的素币(2:任务奖励,3:增加 6: 兑换素币撤回)
expendSuMoney float64 // 消耗的素币(1:兑换物资,4:扣除, 5: 兑换现金)
expendSuMoneyExchange float64
incomeSuMoneyExchangeRestore float64
)
tx := dao.transactionContext.PgTx
suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord)
// 收入素币
// 收入素币
if err := tx.Model(suMoneyTransactionRecordModel).
ColumnExpr("sum(su_money_transaction_record.su_money) AS income_su_money").
Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3, 6})).
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})).
Where(`su_money_transaction_record.create_time > ?`, transactionStartTime).
Where(`su_money_transaction_record.create_time < ?`, transactionEndTime).
Select(&incomeSuMoney); err != nil {
return nil, err
}
// 支出素币
// 支出素币
if err := tx.Model(suMoneyTransactionRecordModel).
ColumnExpr("sum(su_money_transaction_record.su_money) AS expend_su_money").
Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
... ... @@ -240,9 +242,29 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction
Select(&expendSuMoney); err != nil {
return nil, err
}
// 兑换现金的
if err := tx.Model(suMoneyTransactionRecordModel).
ColumnExpr("sum(su_money_transaction_record.su_money) AS expend_su_money").
Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
Where(`su_money_transaction_record.record_type =?`, 5).
Where(`su_money_transaction_record.create_time > ?`, transactionStartTime).
Where(`su_money_transaction_record.create_time < ?`, transactionEndTime).
Select(&expendSuMoneyExchange); err != nil {
return nil, err
}
// 兑换现金撤回的
if err := tx.Model(suMoneyTransactionRecordModel).
ColumnExpr("sum(su_money_transaction_record.su_money) AS expend_su_money").
Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
Where(`su_money_transaction_record.record_type = ?`, 6).
Where(`su_money_transaction_record.create_time > ?`, transactionStartTime).
Where(`su_money_transaction_record.create_time < ?`, transactionEndTime).
Select(&incomeSuMoneyExchangeRestore); err != nil {
return nil, err
}
return map[string]interface{}{
"incomeSuMoney": incomeSuMoney - expendSuMoney, // 个人素币盈利
"expendSuMoney": expendSuMoney, // 个人素币支出
"incomeSuMoney": incomeSuMoney, // 个人素币收入
"expendSuMoney": expendSuMoney + expendSuMoneyExchange - incomeSuMoneyExchangeRestore, // 个人素币支出
}, nil
}
... ... @@ -254,7 +276,7 @@ func (dao *EmployeeDao) CalculateContributionsTransactionRecord(uid int64, trans
)
tx := dao.transactionContext.PgTx
suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord)
// 收入的贡献值
// 收入的贡献值
if err := tx.Model(suMoneyTransactionRecordModel).
ColumnExpr("sum(su_money_transaction_record.su_money) AS income_su_money").
Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
... ... @@ -264,7 +286,7 @@ func (dao *EmployeeDao) CalculateContributionsTransactionRecord(uid int64, trans
Select(&incomeContributions); err != nil {
return nil, err
}
// 支出的贡献值
// 支出的贡献值
if err := tx.Model(suMoneyTransactionRecordModel).
ColumnExpr("sum(su_money_transaction_record.su_money) AS expend_su_money").
Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
... ... @@ -275,7 +297,7 @@ func (dao *EmployeeDao) CalculateContributionsTransactionRecord(uid int64, trans
return nil, err
}
return map[string]interface{}{
"incomeContributions": incomeContributions - expendContributions, // 个人贡献值盈利
"incomeContributions": incomeContributions, // 个人贡献值收入
"expendContributions": expendContributions, // 个人贡献支出
}, nil
}
... ...