...
|
...
|
@@ -87,32 +87,58 @@ func (dao *EmployeeDao) CalculatePersonUnReadNotification(uid int64) (map[string |
|
|
}, nil
|
|
|
}
|
|
|
|
|
|
// 计算个人素币情况
|
|
|
// 计算个人素币情况,昨日收益:做任务验收获得的素币+额外增加-扣除素币-兑换物资-兑换现金
|
|
|
func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{}, error) {
|
|
|
var incomeSuMoney float64
|
|
|
var expendSuMoney float64
|
|
|
var incomeSuMoneyOfYesterday float64
|
|
|
var expendSuMoneyOfYesterday float64
|
|
|
tx := dao.transactionContext.PgTx
|
|
|
suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord)
|
|
|
yesterday := time.Now().AddDate(0, 0, -1)
|
|
|
// 昨日收益
|
|
|
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 = ?`, 2).
|
|
|
//Where(`su_money_transaction_record.record_type = ?`, 2).
|
|
|
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})).
|
|
|
Where(`su_money_transaction_record.create_time > ?`, time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 0, 0, 0, 0, yesterday.Location())).
|
|
|
Where(`su_money_transaction_record.create_time < ?`, time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 23, 59, 59, 0, yesterday.Location())).
|
|
|
Select(&incomeSuMoneyOfYesterday); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
// 昨日支出
|
|
|
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 = ?`, 2).
|
|
|
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{1, 4, 5})).
|
|
|
Where(`su_money_transaction_record.create_time > ?`, time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 0, 0, 0, 0, yesterday.Location())).
|
|
|
Where(`su_money_transaction_record.create_time < ?`, time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 23, 59, 59, 0, yesterday.Location())).
|
|
|
Select(&expendSuMoneyOfYesterday); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
// 总收益
|
|
|
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 = ?`, 2).
|
|
|
//Where(`su_money_transaction_record.record_type = ?`, 2).
|
|
|
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})).
|
|
|
Select(&incomeSuMoney); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
// 总支出
|
|
|
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 = ?`, 2).
|
|
|
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{1, 4, 5})).
|
|
|
Select(&expendSuMoney); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
return map[string]interface{}{
|
|
|
"incomeSuMoney": incomeSuMoney,
|
|
|
"incomeSuMoneyOfYesterday": incomeSuMoneyOfYesterday,
|
|
|
"incomeSuMoney": incomeSuMoney - expendSuMoney,
|
|
|
"incomeSuMoneyOfYesterday": incomeSuMoneyOfYesterday - expendSuMoneyOfYesterday,
|
|
|
}, nil
|
|
|
}
|
|
|
|
...
|
...
|
@@ -177,12 +203,13 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf |
|
|
}, nil
|
|
|
}
|
|
|
|
|
|
// 个人素币事务统计
|
|
|
// 个人收入支出素币统计
|
|
|
func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transactionStartTime time.Time, transactionEndTime time.Time) (map[string]interface{}, error) {
|
|
|
var incomeSuMoney float64 // 收入的素币(2:任务奖励,3:增加)
|
|
|
var expendSuMoney float64 // 消耗的素币(1:兑换物资,4:扣除, 5: 兑换现金)
|
|
|
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).
|
...
|
...
|
@@ -192,10 +219,11 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction |
|
|
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).
|
|
|
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{1, 4})).
|
|
|
Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{1, 4, 5})).
|
|
|
Where(`su_money_transaction_record.create_time > ?`, transactionStartTime).
|
|
|
Where(`su_money_transaction_record.create_time < ?`, transactionEndTime).
|
|
|
Select(&expendSuMoney); err != nil {
|
...
|
...
|
|