正在显示
9 个修改的文件
包含
295 行增加
和
188 行删除
| @@ -304,7 +304,7 @@ func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStati | @@ -304,7 +304,7 @@ func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStati | ||
| 304 | } | 304 | } |
| 305 | } | 305 | } |
| 306 | 306 | ||
| 307 | -// 获取员工财富值分组统计 | 307 | +// 获取公司员工财富值分组统计 |
| 308 | func (statisticsService *StatisticsService) EmployeesSuMoneyStatistics(employeesSuMoneyStatisticsCommand *command.EmployeesSuMoneyStatisticsCommand) (interface{}, error) { | 308 | func (statisticsService *StatisticsService) EmployeesSuMoneyStatistics(employeesSuMoneyStatisticsCommand *command.EmployeesSuMoneyStatisticsCommand) (interface{}, error) { |
| 309 | if err := employeesSuMoneyStatisticsCommand.ValidateCommand(); err != nil { | 309 | if err := employeesSuMoneyStatisticsCommand.ValidateCommand(); err != nil { |
| 310 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 310 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
| @@ -344,7 +344,7 @@ func (statisticsService *StatisticsService) EmployeesSuMoneyStatistics(employees | @@ -344,7 +344,7 @@ func (statisticsService *StatisticsService) EmployeesSuMoneyStatistics(employees | ||
| 344 | } | 344 | } |
| 345 | } | 345 | } |
| 346 | 346 | ||
| 347 | -// 获取员工贡献值分组统计 | 347 | +// 获取公司员工贡献值分组统计 |
| 348 | func (statisticsService *StatisticsService) EmployeesContributionsStatistics(employeesContributionsStatisticsCommand *command.EmployeesContributionsStatisticsCommand) (interface{}, error) { | 348 | func (statisticsService *StatisticsService) EmployeesContributionsStatistics(employeesContributionsStatisticsCommand *command.EmployeesContributionsStatisticsCommand) (interface{}, error) { |
| 349 | if err := employeesContributionsStatisticsCommand.ValidateCommand(); err != nil { | 349 | if err := employeesContributionsStatisticsCommand.ValidateCommand(); err != nil { |
| 350 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 350 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
| @@ -385,44 +385,44 @@ func (statisticsService *StatisticsService) EmployeesContributionsStatistics(emp | @@ -385,44 +385,44 @@ func (statisticsService *StatisticsService) EmployeesContributionsStatistics(emp | ||
| 385 | } | 385 | } |
| 386 | 386 | ||
| 387 | // 员工排行榜统计 (弃用) | 387 | // 员工排行榜统计 (弃用) |
| 388 | -func (statisticsService *StatisticsService) EmployeesRankingListStatistics(employeesRankingListStatisticsCommand *command.EmployeesRankingListStatisticsCommand) (interface{}, error) { | ||
| 389 | - if err := employeesRankingListStatisticsCommand.ValidateCommand(); err != nil { | ||
| 390 | - return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 391 | - } | ||
| 392 | - transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 393 | - if err != nil { | ||
| 394 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 395 | - } | ||
| 396 | - if err := transactionContext.StartTransaction(); err != nil { | ||
| 397 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 398 | - } | ||
| 399 | - defer func() { | ||
| 400 | - transactionContext.RollbackTransaction() | ||
| 401 | - }() | ||
| 402 | - | ||
| 403 | - var employeeDao *dao.EmployeeDao | ||
| 404 | - if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | ||
| 405 | - "transactionContext": transactionContext, | ||
| 406 | - }); err != nil { | ||
| 407 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 408 | - } else { | ||
| 409 | - employeeDao = value | ||
| 410 | - } | ||
| 411 | - | ||
| 412 | - if employeesRankingListStatisticsCommand.StartTime.IsZero() && employeesRankingListStatisticsCommand.EndTime.IsZero() { | ||
| 413 | - employeesRankingListStatisticsCommand.StartTime = time.Date(1971, time.Month(1), 1, 0, 0, 0, 0, time.Now().Location()) | ||
| 414 | - employeesRankingListStatisticsCommand.EndTime = time.Now().Local() | ||
| 415 | - } | ||
| 416 | - | ||
| 417 | - if employeesRankingListStatistics, err := employeeDao.CalculateEmployeesRankingList(employeesRankingListStatisticsCommand.CompanyId, employeesRankingListStatisticsCommand.StartTime, employeesRankingListStatisticsCommand.EndTime, employeesRankingListStatisticsCommand.Offset, employeesRankingListStatisticsCommand.Limit); err != nil { | ||
| 418 | - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 419 | - } else { | ||
| 420 | - if err := transactionContext.CommitTransaction(); err != nil { | ||
| 421 | - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 422 | - } | ||
| 423 | - return employeesRankingListStatistics, nil | ||
| 424 | - } | ||
| 425 | -} | 388 | +//func (statisticsService *StatisticsService) EmployeesRankingListStatistics(employeesRankingListStatisticsCommand *command.EmployeesRankingListStatisticsCommand) (interface{}, error) { |
| 389 | +// if err := employeesRankingListStatisticsCommand.ValidateCommand(); err != nil { | ||
| 390 | +// return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 391 | +// } | ||
| 392 | +// transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 393 | +// if err != nil { | ||
| 394 | +// return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 395 | +// } | ||
| 396 | +// if err := transactionContext.StartTransaction(); err != nil { | ||
| 397 | +// return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 398 | +// } | ||
| 399 | +// defer func() { | ||
| 400 | +// transactionContext.RollbackTransaction() | ||
| 401 | +// }() | ||
| 402 | +// | ||
| 403 | +// var employeeDao *dao.EmployeeDao | ||
| 404 | +// if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | ||
| 405 | +// "transactionContext": transactionContext, | ||
| 406 | +// }); err != nil { | ||
| 407 | +// return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 408 | +// } else { | ||
| 409 | +// employeeDao = value | ||
| 410 | +// } | ||
| 411 | +// | ||
| 412 | +// if employeesRankingListStatisticsCommand.StartTime.IsZero() && employeesRankingListStatisticsCommand.EndTime.IsZero() { | ||
| 413 | +// employeesRankingListStatisticsCommand.StartTime = time.Date(1971, time.Month(1), 1, 0, 0, 0, 0, time.Now().Location()) | ||
| 414 | +// employeesRankingListStatisticsCommand.EndTime = time.Now().Local() | ||
| 415 | +// } | ||
| 416 | +// | ||
| 417 | +// if employeesRankingListStatistics, err := employeeDao.CalculateEmployeesRankingList(employeesRankingListStatisticsCommand.CompanyId, employeesRankingListStatisticsCommand.StartTime, employeesRankingListStatisticsCommand.EndTime, employeesRankingListStatisticsCommand.Offset, employeesRankingListStatisticsCommand.Limit); err != nil { | ||
| 418 | +// return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 419 | +// } else { | ||
| 420 | +// if err := transactionContext.CommitTransaction(); err != nil { | ||
| 421 | +// return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 422 | +// } | ||
| 423 | +// return employeesRankingListStatistics, nil | ||
| 424 | +// } | ||
| 425 | +//} | ||
| 426 | 426 | ||
| 427 | // 贡献值、财富值榜单 | 427 | // 贡献值、财富值榜单 |
| 428 | func (statisticsService *StatisticsService) ContributionsWealthRanking(contributionsWealthRankingQuery *query.ContributionsWealthRankingQuery) (interface{}, error) { | 428 | func (statisticsService *StatisticsService) ContributionsWealthRanking(contributionsWealthRankingQuery *query.ContributionsWealthRankingQuery) (interface{}, error) { |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | + "time" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type ContributionsTransactionRecordStatisticsCommand struct { | ||
| 10 | + // 统一用户UID | ||
| 11 | + Uid int64 `json:"uid" valid:"Required"` | ||
| 12 | + // 事务时间区间-开始时间 | ||
| 13 | + TransactionStartTime time.Time `json:"transactionStartTime,omitempty"` | ||
| 14 | + // 事务时间区间-截止时间 | ||
| 15 | + TransactionEndTime time.Time `json:"transactionEndTime,omitempty"` | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (contributionsTransactionRecordStatisticsCommand *ContributionsTransactionRecordStatisticsCommand) ValidateCommand() error { | ||
| 19 | + valid := validation.Validation{} | ||
| 20 | + b, err := valid.Valid(contributionsTransactionRecordStatisticsCommand) | ||
| 21 | + if err != nil { | ||
| 22 | + return err | ||
| 23 | + } | ||
| 24 | + if !b { | ||
| 25 | + for _, validErr := range valid.Errors { | ||
| 26 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 27 | + } | ||
| 28 | + } | ||
| 29 | + return nil | ||
| 30 | +} |
| @@ -1055,12 +1055,7 @@ func (cashPoolService *CashPoolService) GetExchangeCashPerson(getExchangeCashPer | @@ -1055,12 +1055,7 @@ func (cashPoolService *CashPoolService) GetExchangeCashPerson(getExchangeCashPer | ||
| 1055 | } | 1055 | } |
| 1056 | } | 1056 | } |
| 1057 | 1057 | ||
| 1058 | -// 返回素币兑换现金活动总清单 | ||
| 1059 | -//func (cashPoolService *CashPoolService) ListSystemExchangeCashPerson(listSystemExchangeCashPersonQuery *query.ListSystemExchangeCashPersonQuery) (interface{}, error) { | ||
| 1060 | -// | ||
| 1061 | -//} | ||
| 1062 | - | ||
| 1063 | -// TODO 返回兑换素币清单列表 | 1058 | +// 返回兑换素币清单列表 |
| 1064 | func (cashPoolService *CashPoolService) ListExchangeCashPerson(listExchangeCashPersonQuery *query.ListExchangeCashPersonQuery) (interface{}, error) { | 1059 | func (cashPoolService *CashPoolService) ListExchangeCashPerson(listExchangeCashPersonQuery *query.ListExchangeCashPersonQuery) (interface{}, error) { |
| 1065 | if err := listExchangeCashPersonQuery.ValidateQuery(); err != nil { | 1060 | if err := listExchangeCashPersonQuery.ValidateQuery(); err != nil { |
| 1066 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 1061 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
| @@ -1368,11 +1363,6 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC | @@ -1368,11 +1363,6 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC | ||
| 1368 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashPersonCommand.ListId))) | 1363 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashPersonCommand.ListId))) |
| 1369 | } | 1364 | } |
| 1370 | 1365 | ||
| 1371 | - // TODO 更新兑换清单,个人已兑换现金计算 | ||
| 1372 | - if err := person.Update(tool_funs.SimpleStructToMap(updateExchangeCashPersonCommand)); err != nil { | ||
| 1373 | - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 1374 | - } | ||
| 1375 | - | ||
| 1376 | var exchangeCashActivityRepository domain.ExchangeActivityRepository | 1366 | var exchangeCashActivityRepository domain.ExchangeActivityRepository |
| 1377 | if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{ | 1367 | if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{ |
| 1378 | "transactionContext": transactionContext, | 1368 | "transactionContext": transactionContext, |
| @@ -1391,6 +1381,13 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC | @@ -1391,6 +1381,13 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC | ||
| 1391 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(person.ExchangeCashActivityId))) | 1381 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(person.ExchangeCashActivityId))) |
| 1392 | } | 1382 | } |
| 1393 | 1383 | ||
| 1384 | + // 更新兑换清单,个人已兑换现金计算 | ||
| 1385 | + updateExchangeCashPersonCommand.ExchangedCash = updateExchangeCashPersonCommand.ExchangedSuMoney * activityFound.Rate | ||
| 1386 | + | ||
| 1387 | + if err := person.Update(tool_funs.SimpleStructToMap(updateExchangeCashPersonCommand)); err != nil { | ||
| 1388 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 1389 | + } | ||
| 1390 | + | ||
| 1394 | updateExchangeCashActivityCommand := &command.UpdateExchangeCashActivityCommand{ | 1391 | updateExchangeCashActivityCommand := &command.UpdateExchangeCashActivityCommand{ |
| 1395 | ExchangeCashActivityId: person.ExchangeCashActivityId, | 1392 | ExchangeCashActivityId: person.ExchangeCashActivityId, |
| 1396 | ExchangedSuMoney: activityFound.ExchangedSuMoney + (updateExchangeCashPersonCommand.ExchangedSuMoney - person.ExchangedSuMoney), | 1393 | ExchangedSuMoney: activityFound.ExchangedSuMoney + (updateExchangeCashPersonCommand.ExchangedSuMoney - person.ExchangedSuMoney), |
| @@ -165,6 +165,7 @@ func (suMoneyService *SuMoneyService) SuMoneyTransactionRecordStatistics(suMoney | @@ -165,6 +165,7 @@ func (suMoneyService *SuMoneyService) SuMoneyTransactionRecordStatistics(suMoney | ||
| 165 | defer func() { | 165 | defer func() { |
| 166 | transactionContext.RollbackTransaction() | 166 | transactionContext.RollbackTransaction() |
| 167 | }() | 167 | }() |
| 168 | + | ||
| 168 | var employeeDao *dao.EmployeeDao | 169 | var employeeDao *dao.EmployeeDao |
| 169 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | 170 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ |
| 170 | "transactionContext": transactionContext, | 171 | "transactionContext": transactionContext, |
| @@ -173,6 +174,7 @@ func (suMoneyService *SuMoneyService) SuMoneyTransactionRecordStatistics(suMoney | @@ -173,6 +174,7 @@ func (suMoneyService *SuMoneyService) SuMoneyTransactionRecordStatistics(suMoney | ||
| 173 | } else { | 174 | } else { |
| 174 | employeeDao = value | 175 | employeeDao = value |
| 175 | } | 176 | } |
| 177 | + | ||
| 176 | if calculateResult, err := employeeDao.CalculateSuMoneyTransactionRecord(suMoneyTransactionRecordStatisticsCommand.Uid, suMoneyTransactionRecordStatisticsCommand.TransactionStartTime, suMoneyTransactionRecordStatisticsCommand.TransactionEndTime); err != nil { | 178 | if calculateResult, err := employeeDao.CalculateSuMoneyTransactionRecord(suMoneyTransactionRecordStatisticsCommand.Uid, suMoneyTransactionRecordStatisticsCommand.TransactionStartTime, suMoneyTransactionRecordStatisticsCommand.TransactionEndTime); err != nil { |
| 177 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 179 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 178 | } else { | 180 | } else { |
| @@ -183,6 +185,42 @@ func (suMoneyService *SuMoneyService) SuMoneyTransactionRecordStatistics(suMoney | @@ -183,6 +185,42 @@ func (suMoneyService *SuMoneyService) SuMoneyTransactionRecordStatistics(suMoney | ||
| 183 | } | 185 | } |
| 184 | } | 186 | } |
| 185 | 187 | ||
| 188 | +// 贡献值事务记录统计 | ||
| 189 | +func (suMoneyService *SuMoneyService) ContributionsTransactionRecordStatistics(contributionsTransactionRecordStatisticsCommand *command.ContributionsTransactionRecordStatisticsCommand) (interface{}, error) { | ||
| 190 | + if err := contributionsTransactionRecordStatisticsCommand.ValidateCommand(); err != nil { | ||
| 191 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
| 192 | + } | ||
| 193 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
| 194 | + if err != nil { | ||
| 195 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 196 | + } | ||
| 197 | + if err := transactionContext.StartTransaction(); err != nil { | ||
| 198 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 199 | + } | ||
| 200 | + defer func() { | ||
| 201 | + transactionContext.RollbackTransaction() | ||
| 202 | + }() | ||
| 203 | + | ||
| 204 | + var employeeDao *dao.EmployeeDao | ||
| 205 | + if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | ||
| 206 | + "transactionContext": transactionContext, | ||
| 207 | + }); err != nil { | ||
| 208 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 209 | + } else { | ||
| 210 | + employeeDao = value | ||
| 211 | + } | ||
| 212 | + | ||
| 213 | + if calculateResult, err := employeeDao.CalculateSuMoneyTransactionRecord(contributionsTransactionRecordStatisticsCommand.Uid, contributionsTransactionRecordStatisticsCommand.TransactionStartTime, contributionsTransactionRecordStatisticsCommand.TransactionEndTime); err != nil { | ||
| 214 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 215 | + } else { | ||
| 216 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
| 217 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
| 218 | + } | ||
| 219 | + return calculateResult, nil | ||
| 220 | + } | ||
| 221 | +} | ||
| 222 | + | ||
| 223 | + | ||
| 186 | func NewSuMoneyService(options map[string]interface{}) *SuMoneyService { | 224 | func NewSuMoneyService(options map[string]interface{}) *SuMoneyService { |
| 187 | newSuMoneyService := &SuMoneyService{} | 225 | newSuMoneyService := &SuMoneyService{} |
| 188 | return newSuMoneyService | 226 | return newSuMoneyService |
| @@ -31,6 +31,7 @@ func (dao *EmployeeDao) BatchSetStatus(uids []int64, status int) error { | @@ -31,6 +31,7 @@ func (dao *EmployeeDao) BatchSetStatus(uids []int64, status int) error { | ||
| 31 | return err | 31 | return err |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | +// 修改用户权限 | ||
| 34 | func (dao *EmployeeDao) ChangePrincipal(companyId int64, employeeAccount string) error { | 35 | func (dao *EmployeeDao) ChangePrincipal(companyId int64, employeeAccount string) error { |
| 35 | tx := dao.transactionContext.PgTx | 36 | tx := dao.transactionContext.PgTx |
| 36 | if _, err := tx.Query( | 37 | if _, err := tx.Query( |
| @@ -48,6 +49,7 @@ func (dao *EmployeeDao) ChangePrincipal(companyId int64, employeeAccount string) | @@ -48,6 +49,7 @@ func (dao *EmployeeDao) ChangePrincipal(companyId int64, employeeAccount string) | ||
| 48 | return nil | 49 | return nil |
| 49 | } | 50 | } |
| 50 | 51 | ||
| 52 | +// | ||
| 51 | func (dao *EmployeeDao) TransferSuMoney(uid int64, suMoney float64) error { | 53 | func (dao *EmployeeDao) TransferSuMoney(uid int64, suMoney float64) error { |
| 52 | tx := dao.transactionContext.PgTx | 54 | tx := dao.transactionContext.PgTx |
| 53 | _, err := tx.QueryOne( | 55 | _, err := tx.QueryOne( |
| @@ -87,7 +89,7 @@ func (dao *EmployeeDao) CalculatePersonUnReadNotification(uid int64) (map[string | @@ -87,7 +89,7 @@ func (dao *EmployeeDao) CalculatePersonUnReadNotification(uid int64) (map[string | ||
| 87 | }, nil | 89 | }, nil |
| 88 | } | 90 | } |
| 89 | 91 | ||
| 90 | -// 计算个人素币情况,昨日收益:做任务验收获得的素币+额外增加-扣除素币-兑换物资-兑换现金 | 92 | +// 计算个人素币收益,昨日收益:做任务验收获得的素币+额外增加-扣除素币-兑换物资-兑换现金 |
| 91 | func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{}, error) { | 93 | func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{}, error) { |
| 92 | var incomeSuMoney float64 | 94 | var incomeSuMoney float64 |
| 93 | var expendSuMoney float64 | 95 | var expendSuMoney float64 |
| @@ -142,7 +144,7 @@ func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{ | @@ -142,7 +144,7 @@ func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{ | ||
| 142 | }, nil | 144 | }, nil |
| 143 | } | 145 | } |
| 144 | 146 | ||
| 145 | -// 系统已兑换素币、未兑换素币 | 147 | +// 计算系统已兑换素币、未兑换素币 |
| 146 | func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] interface{}, error) { | 148 | func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] interface{}, error) { |
| 147 | var systemUnExchangeSuMoney float64 | 149 | var systemUnExchangeSuMoney float64 |
| 148 | var systemExchangedSuMoney float64 | 150 | var systemExchangedSuMoney float64 |
| @@ -203,10 +205,12 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf | @@ -203,10 +205,12 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf | ||
| 203 | }, nil | 205 | }, nil |
| 204 | } | 206 | } |
| 205 | 207 | ||
| 206 | -// 个人收入支出素币统计 | 208 | +// 计算个人素币收支 |
| 207 | func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transactionStartTime time.Time, transactionEndTime time.Time) (map[string]interface{}, error) { | 209 | func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transactionStartTime time.Time, transactionEndTime time.Time) (map[string]interface{}, error) { |
| 208 | - var incomeSuMoney float64 // 收入的素币(2:任务奖励,3:增加) | ||
| 209 | - var expendSuMoney float64 // 消耗的素币(1:兑换物资,4:扣除, 5: 兑换现金) | 210 | + var ( |
| 211 | + incomeSuMoney float64 // 收入的素币(2:任务奖励,3:增加) | ||
| 212 | + expendSuMoney float64 // 消耗的素币(1:兑换物资,4:扣除, 5: 兑换现金) | ||
| 213 | + ) | ||
| 210 | tx := dao.transactionContext.PgTx | 214 | tx := dao.transactionContext.PgTx |
| 211 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 215 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 212 | // 收入素币 | 216 | // 收入素币 |
| @@ -235,31 +239,37 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction | @@ -235,31 +239,37 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction | ||
| 235 | }, nil | 239 | }, nil |
| 236 | } | 240 | } |
| 237 | 241 | ||
| 238 | -// 员工财富值统计 | ||
| 239 | -func (dao *EmployeeDao) CalculateEmployeesSuMoney(companyId int, startTime time.Time, endTime time.Time) (map[string]interface{}, error) { | ||
| 240 | - var ret []struct { | ||
| 241 | - Uid int | ||
| 242 | - EmployeeName string | ||
| 243 | - EmployeeSuMoney float64 | ||
| 244 | - } | 242 | +// 计算个人贡献值收支 |
| 243 | +func (dao *EmployeeDao) CalculateContributionsTransactionRecord(uid int64, transactionStartTime time.Time, transactionEndTime time.Time) (map[string]interface{}, error) { | ||
| 244 | + var ( | ||
| 245 | + incomeContributions float64 // 增加的贡献值(2:任务奖励,3:增加) | ||
| 246 | + expendContributions float64 // 扣除的贡献值 (4: 扣除) | ||
| 247 | + ) | ||
| 245 | tx := dao.transactionContext.PgTx | 248 | tx := dao.transactionContext.PgTx |
| 246 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 249 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 247 | - if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 248 | - ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | ||
| 249 | - ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | ||
| 250 | - ColumnExpr("sum(su_money_transaction_record.su_money) AS employee_su_money"). | ||
| 251 | - Where(`e.company_id = ?`, companyId). | ||
| 252 | - Where(`e.status = ?`, 1). | ||
| 253 | - Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). // 增加,任务奖励的 | ||
| 254 | - Where(`su_money_transaction_record.create_time > ?`, startTime). | ||
| 255 | - Where(`su_money_transaction_record.create_time < ?`, endTime). | ||
| 256 | - Group("su_money_transaction_record.employee"). | ||
| 257 | - Order("employee_su_money DESC"). | ||
| 258 | - Select(&ret); err != nil { | 250 | + // 增加的贡献值 |
| 251 | + if err := tx.Model(suMoneyTransactionRecordModel). | ||
| 252 | + ColumnExpr("sum(su_money_transaction_record.su_money) AS income_su_money"). | ||
| 253 | + Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid). | ||
| 254 | + Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). | ||
| 255 | + Where(`su_money_transaction_record.create_time > ?`, transactionStartTime). | ||
| 256 | + Where(`su_money_transaction_record.create_time < ?`, transactionEndTime). | ||
| 257 | + Select(&incomeContributions); err != nil { | ||
| 258 | + return nil, err | ||
| 259 | + } | ||
| 260 | + // 扣除的贡献值 | ||
| 261 | + if err := tx.Model(suMoneyTransactionRecordModel). | ||
| 262 | + ColumnExpr("sum(su_money_transaction_record.su_money) AS expend_su_money"). | ||
| 263 | + Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid). | ||
| 264 | + Where(`su_money_transaction_record.record_type =?`, 4). | ||
| 265 | + Where(`su_money_transaction_record.create_time > ?`, transactionStartTime). | ||
| 266 | + Where(`su_money_transaction_record.create_time < ?`, transactionEndTime). | ||
| 267 | + Select(&expendContributions); err != nil { | ||
| 259 | return nil, err | 268 | return nil, err |
| 260 | } | 269 | } |
| 261 | return map[string]interface{}{ | 270 | return map[string]interface{}{ |
| 262 | - "employeesSuMoney": ret, | 271 | + "incomeContributions": incomeContributions, |
| 272 | + "expendContributions": expendContributions, | ||
| 263 | }, nil | 273 | }, nil |
| 264 | } | 274 | } |
| 265 | 275 | ||
| @@ -311,7 +321,7 @@ func (dao *EmployeeDao) CalculateEmployeesSuMoney(companyId int, startTime time. | @@ -311,7 +321,7 @@ func (dao *EmployeeDao) CalculateEmployeesSuMoney(companyId int, startTime time. | ||
| 311 | // }, nil | 321 | // }, nil |
| 312 | //} | 322 | //} |
| 313 | 323 | ||
| 314 | -// 贡献值、财富值总榜和年榜 | 324 | +// 贡献值、财富值总榜和年榜, |
| 315 | func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]interface{}) (interface{}, error) { | 325 | func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]interface{}) (interface{}, error) { |
| 316 | var retWealth []struct { | 326 | var retWealth []struct { |
| 317 | Uid int | 327 | Uid int |
| @@ -337,10 +347,8 @@ func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]inter | @@ -337,10 +347,8 @@ func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]inter | ||
| 337 | EmployeesContributions float64 | 347 | EmployeesContributions float64 |
| 338 | Ranking int | 348 | Ranking int |
| 339 | } | 349 | } |
| 340 | - | ||
| 341 | tx := dao.transactionContext.PgTx | 350 | tx := dao.transactionContext.PgTx |
| 342 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 351 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 343 | - | ||
| 344 | // 财富值榜单 | 352 | // 财富值榜单 |
| 345 | queryWealth := tx.Model(suMoneyTransactionRecordModel) | 353 | queryWealth := tx.Model(suMoneyTransactionRecordModel) |
| 346 | queryWealth = queryWealth.Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint") | 354 | queryWealth = queryWealth.Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint") |
| @@ -432,24 +440,6 @@ func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]inter | @@ -432,24 +440,6 @@ func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]inter | ||
| 432 | } | 440 | } |
| 433 | contributionsDecrease := queryContributionsDecrease.Group("su_money_transaction_record.employee") | 441 | contributionsDecrease := queryContributionsDecrease.Group("su_money_transaction_record.employee") |
| 434 | 442 | ||
| 435 | - //if offset, ok := queryOptions["offset"]; ok { | ||
| 436 | - // offset := offset.(int) | ||
| 437 | - // if offset > -1 { | ||
| 438 | - // queryContributionsDecrease = queryContributionsDecrease.Offset(offset) | ||
| 439 | - // } | ||
| 440 | - //} else { | ||
| 441 | - // queryContributionsDecrease = queryContributionsDecrease.Offset(0) | ||
| 442 | - //} | ||
| 443 | - //if limit, ok := queryOptions["limit"]; ok { | ||
| 444 | - // limit := limit.(int) | ||
| 445 | - // if limit > -1 { | ||
| 446 | - // queryContributionsDecrease = queryContributionsDecrease.Limit(limit) | ||
| 447 | - // } | ||
| 448 | - //} else { | ||
| 449 | - // queryContributionsDecrease = queryContributionsDecrease.Limit(20) | ||
| 450 | - //} | ||
| 451 | - //contributionsDecrease := queryWealth.Order("employee_contributions_decrease DESC") | ||
| 452 | - | ||
| 453 | queryContributions := tx.Model() | 443 | queryContributions := tx.Model() |
| 454 | queryContributions = queryContributions.With("t", contributionsDecrease) | 444 | queryContributions = queryContributions.With("t", contributionsDecrease) |
| 455 | queryContributions = queryContributions.Table("t") | 445 | queryContributions = queryContributions.Table("t") |
| @@ -555,51 +545,112 @@ func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]inter | @@ -555,51 +545,112 @@ func (dao *EmployeeDao) ContributionsWealthRanking(queryOptions map[string]inter | ||
| 555 | }, nil | 545 | }, nil |
| 556 | } | 546 | } |
| 557 | 547 | ||
| 558 | -// 排行榜统计,排名(弃用) | ||
| 559 | -func (dao *EmployeeDao) CalculateEmployeesRankingList(companyId int, startTime time.Time, endTime time.Time, offset int, limit int) (map[string]interface{}, error) { | ||
| 560 | - var retWealth []struct { | ||
| 561 | - Uid int | ||
| 562 | - EmployeeName string | ||
| 563 | - EmployeeSuMoney float64 | ||
| 564 | - Ranking int | ||
| 565 | - } | ||
| 566 | - var retContributions []struct { // 员工贡献值 | 548 | +// 排行榜统计,排名 |
| 549 | +//func (dao *EmployeeDao) CalculateEmployeesRankingList(companyId int, startTime time.Time, endTime time.Time, offset int, limit int) (map[string]interface{}, error) { | ||
| 550 | +// var retWealth []struct { | ||
| 551 | +// Uid int | ||
| 552 | +// EmployeeName string | ||
| 553 | +// EmployeeSuMoney float64 | ||
| 554 | +// Ranking int | ||
| 555 | +// } | ||
| 556 | +// var retContributions []struct { // 员工贡献值 | ||
| 557 | +// Uid int | ||
| 558 | +// EmployeeName string | ||
| 559 | +// EmployeesContributions float64 | ||
| 560 | +// Ranking int | ||
| 561 | +// } | ||
| 562 | +// var retContributionDecrease []struct { // 员工减少的贡献值 | ||
| 563 | +// Uid int | ||
| 564 | +// EmployeeName string | ||
| 565 | +// EmployeesContributions float64 | ||
| 566 | +// Ranking int | ||
| 567 | +// } | ||
| 568 | +// tx := dao.transactionContext.PgTx | ||
| 569 | +// suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | ||
| 570 | +// if limit < -1 { | ||
| 571 | +// limit = 20 | ||
| 572 | +// } | ||
| 573 | +// if offset < -1 { | ||
| 574 | +// offset = 0 | ||
| 575 | +// } | ||
| 576 | +// // 员工财富值 | ||
| 577 | +// if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 578 | +// ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | ||
| 579 | +// ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | ||
| 580 | +// ColumnExpr("sum(su_money_transaction_record.su_money) AS employee_su_money"). | ||
| 581 | +// Where(`e.company_id = ?`, companyId). | ||
| 582 | +// Where(`e.status = ?`, 1). | ||
| 583 | +// Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). // 增加,任务奖励的 | ||
| 584 | +// Where(`su_money_transaction_record.create_time > ?`, startTime). | ||
| 585 | +// Where(`su_money_transaction_record.create_time < ?`, endTime). | ||
| 586 | +// Group("su_money_transaction_record.employee"). | ||
| 587 | +// Order("employee_su_money DESC"). | ||
| 588 | +// Limit(limit). | ||
| 589 | +// Offset(offset). | ||
| 590 | +// Select(&retWealth); err != nil { | ||
| 591 | +// return nil, err | ||
| 592 | +// } | ||
| 593 | +// // 增加的贡献值 | ||
| 594 | +// if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 595 | +// ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | ||
| 596 | +// ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | ||
| 597 | +// ColumnExpr("sum(su_money_transaction_record.su_money) AS employees_contributions"). | ||
| 598 | +// Where(`e.company_id = ?`, companyId). | ||
| 599 | +// Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). | ||
| 600 | +// Where(`e.status = ?`, 1). | ||
| 601 | +// Where(`su_money_transaction_record.create_time > ?`, startTime). | ||
| 602 | +// Where(`su_money_transaction_record.create_time < ?`, endTime). | ||
| 603 | +// Group("su_money_transaction_record.employee"). | ||
| 604 | +// Order("employees_contributions DESC"). | ||
| 605 | +// Limit(limit). | ||
| 606 | +// Offset(offset). | ||
| 607 | +// Select(&retContributions); err != nil { | ||
| 608 | +// return nil, err | ||
| 609 | +// } | ||
| 610 | +// // 减少的贡献值 | ||
| 611 | +// if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 612 | +// ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | ||
| 613 | +// ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | ||
| 614 | +// ColumnExpr("sum(su_money_transaction_record.su_money) AS employees_contributions"). | ||
| 615 | +// Where(`e.company_id = ?`, companyId). | ||
| 616 | +// Where(`su_money_transaction_record.record_type = ?`, 4). | ||
| 617 | +// Where(`e.status = ?`, 1). | ||
| 618 | +// Where(`su_money_transaction_record.create_time > ?`, startTime). | ||
| 619 | +// Where(`su_money_transaction_record.create_time < ?`, endTime). | ||
| 620 | +// Group("su_money_transaction_record.employee"). | ||
| 621 | +// Order("employees_contributions DESC"). | ||
| 622 | +// Limit(limit). | ||
| 623 | +// Offset(offset). | ||
| 624 | +// Select(&retContributionDecrease); err != nil { | ||
| 625 | +// return nil, err | ||
| 626 | +// } | ||
| 627 | +// for i := 0; i < len(retContributions); i++ { | ||
| 628 | +// for j := 0; j < len(retContributionDecrease); j++ { | ||
| 629 | +// if retContributions[i].Uid == retContributionDecrease[j].Uid { | ||
| 630 | +// retContributions[i].EmployeesContributions -= retContributionDecrease[j].EmployeesContributions | ||
| 631 | +// } | ||
| 632 | +// } | ||
| 633 | +// } | ||
| 634 | +// return map[string]interface{}{ | ||
| 635 | +// "employeesContributions": retContributions, | ||
| 636 | +// "employeesWealth": retWealth, | ||
| 637 | +// }, nil | ||
| 638 | +//} | ||
| 639 | + | ||
| 640 | +// 公司员工贡献值分组统计 | ||
| 641 | +func (dao *EmployeeDao) CalculateEmployeesContributions(companyId int, startTime time.Time, endTime time.Time) (map[string]interface{}, error) { | ||
| 642 | + var ret []struct { // 员工贡献值 | ||
| 567 | Uid int | 643 | Uid int |
| 568 | EmployeeName string | 644 | EmployeeName string |
| 569 | EmployeesContributions float64 | 645 | EmployeesContributions float64 |
| 570 | - Ranking int | ||
| 571 | } | 646 | } |
| 572 | - var retContributionDecrease []struct { // 员工减少的贡献值 | 647 | + var retDecrease []struct { // 员工减少的贡献值 |
| 573 | Uid int | 648 | Uid int |
| 574 | EmployeeName string | 649 | EmployeeName string |
| 575 | EmployeesContributions float64 | 650 | EmployeesContributions float64 |
| 576 | - Ranking int | ||
| 577 | } | 651 | } |
| 578 | tx := dao.transactionContext.PgTx | 652 | tx := dao.transactionContext.PgTx |
| 579 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 653 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 580 | - if limit < -1 { | ||
| 581 | - limit = 20 | ||
| 582 | - } | ||
| 583 | - if offset < -1 { | ||
| 584 | - offset = 0 | ||
| 585 | - } | ||
| 586 | - // 员工财富值 | ||
| 587 | - if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 588 | - ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | ||
| 589 | - ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | ||
| 590 | - ColumnExpr("sum(su_money_transaction_record.su_money) AS employee_su_money"). | ||
| 591 | - Where(`e.company_id = ?`, companyId). | ||
| 592 | - Where(`e.status = ?`, 1). | ||
| 593 | - Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). // 增加,任务奖励的 | ||
| 594 | - Where(`su_money_transaction_record.create_time > ?`, startTime). | ||
| 595 | - Where(`su_money_transaction_record.create_time < ?`, endTime). | ||
| 596 | - Group("su_money_transaction_record.employee"). | ||
| 597 | - Order("employee_su_money DESC"). | ||
| 598 | - Limit(limit). | ||
| 599 | - Offset(offset). | ||
| 600 | - Select(&retWealth); err != nil { | ||
| 601 | - return nil, err | ||
| 602 | - } | ||
| 603 | // 增加的贡献值 | 654 | // 增加的贡献值 |
| 604 | if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | 655 | if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). |
| 605 | ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | 656 | ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). |
| @@ -612,9 +663,7 @@ func (dao *EmployeeDao) CalculateEmployeesRankingList(companyId int, startTime t | @@ -612,9 +663,7 @@ func (dao *EmployeeDao) CalculateEmployeesRankingList(companyId int, startTime t | ||
| 612 | Where(`su_money_transaction_record.create_time < ?`, endTime). | 663 | Where(`su_money_transaction_record.create_time < ?`, endTime). |
| 613 | Group("su_money_transaction_record.employee"). | 664 | Group("su_money_transaction_record.employee"). |
| 614 | Order("employees_contributions DESC"). | 665 | Order("employees_contributions DESC"). |
| 615 | - Limit(limit). | ||
| 616 | - Offset(offset). | ||
| 617 | - Select(&retContributions); err != nil { | 666 | + Select(&ret); err != nil { |
| 618 | return nil, err | 667 | return nil, err |
| 619 | } | 668 | } |
| 620 | // 减少的贡献值 | 669 | // 减少的贡献值 |
| @@ -629,77 +678,46 @@ func (dao *EmployeeDao) CalculateEmployeesRankingList(companyId int, startTime t | @@ -629,77 +678,46 @@ func (dao *EmployeeDao) CalculateEmployeesRankingList(companyId int, startTime t | ||
| 629 | Where(`su_money_transaction_record.create_time < ?`, endTime). | 678 | Where(`su_money_transaction_record.create_time < ?`, endTime). |
| 630 | Group("su_money_transaction_record.employee"). | 679 | Group("su_money_transaction_record.employee"). |
| 631 | Order("employees_contributions DESC"). | 680 | Order("employees_contributions DESC"). |
| 632 | - Limit(limit). | ||
| 633 | - Offset(offset). | ||
| 634 | - Select(&retContributionDecrease); err != nil { | 681 | + Select(&retDecrease); err != nil { |
| 635 | return nil, err | 682 | return nil, err |
| 636 | } | 683 | } |
| 637 | - for i := 0; i < len(retContributions); i++ { | ||
| 638 | - for j := 0; j < len(retContributionDecrease); j++ { | ||
| 639 | - if retContributions[i].Uid == retContributionDecrease[j].Uid { | ||
| 640 | - retContributions[i].EmployeesContributions -= retContributionDecrease[j].EmployeesContributions | 684 | + for i := 0; i < len(ret); i++ { |
| 685 | + for j := 0; j < len(retDecrease); j++ { | ||
| 686 | + if ret[i].Uid == retDecrease[j].Uid { | ||
| 687 | + ret[i].EmployeesContributions -= retDecrease[j].EmployeesContributions | ||
| 641 | } | 688 | } |
| 642 | } | 689 | } |
| 643 | } | 690 | } |
| 644 | return map[string]interface{}{ | 691 | return map[string]interface{}{ |
| 645 | - "employeesContributions": retContributions, | ||
| 646 | - "employeesWealth": retWealth, | 692 | + "employeesContributions": ret, |
| 647 | }, nil | 693 | }, nil |
| 648 | } | 694 | } |
| 649 | 695 | ||
| 650 | -// 员工贡献值统计 | ||
| 651 | -func (dao *EmployeeDao) CalculateEmployeesContributions(companyId int, startTime time.Time, endTime time.Time) (map[string]interface{}, error) { | ||
| 652 | - var ret []struct { // 员工贡献值 | ||
| 653 | - Uid int | ||
| 654 | - EmployeeName string | ||
| 655 | - EmployeesContributions float64 | ||
| 656 | - } | ||
| 657 | - var retDecrease []struct { // 员工减少的贡献值 | 696 | +// 公司员工财富值分组统计 |
| 697 | +func (dao *EmployeeDao) CalculateEmployeesSuMoney(companyId int, startTime time.Time, endTime time.Time) (map[string]interface{}, error) { | ||
| 698 | + var ret []struct { | ||
| 658 | Uid int | 699 | Uid int |
| 659 | EmployeeName string | 700 | EmployeeName string |
| 660 | - EmployeesContributions float64 | 701 | + EmployeeSuMoney float64 |
| 661 | } | 702 | } |
| 662 | tx := dao.transactionContext.PgTx | 703 | tx := dao.transactionContext.PgTx |
| 663 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 704 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 664 | - // 增加的贡献值 | ||
| 665 | if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | 705 | if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). |
| 666 | ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | 706 | ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). |
| 667 | ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | 707 | ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). |
| 668 | - ColumnExpr("sum(su_money_transaction_record.su_money) AS employees_contributions"). | 708 | + ColumnExpr("sum(su_money_transaction_record.su_money) AS employee_su_money"). |
| 669 | Where(`e.company_id = ?`, companyId). | 709 | Where(`e.company_id = ?`, companyId). |
| 670 | - Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). | ||
| 671 | Where(`e.status = ?`, 1). | 710 | Where(`e.status = ?`, 1). |
| 711 | + Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). // 增加,任务奖励的 | ||
| 672 | Where(`su_money_transaction_record.create_time > ?`, startTime). | 712 | Where(`su_money_transaction_record.create_time > ?`, startTime). |
| 673 | Where(`su_money_transaction_record.create_time < ?`, endTime). | 713 | Where(`su_money_transaction_record.create_time < ?`, endTime). |
| 674 | Group("su_money_transaction_record.employee"). | 714 | Group("su_money_transaction_record.employee"). |
| 675 | - Order("employees_contributions DESC"). | 715 | + Order("employee_su_money DESC"). |
| 676 | Select(&ret); err != nil { | 716 | Select(&ret); err != nil { |
| 677 | return nil, err | 717 | return nil, err |
| 678 | } | 718 | } |
| 679 | - // 减少的贡献值 | ||
| 680 | - if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 681 | - ColumnExpr("su_money_transaction_record.employee->>'uid' AS uid"). | ||
| 682 | - ColumnExpr("su_money_transaction_record.employee->>'employeeName' AS employee_name"). | ||
| 683 | - ColumnExpr("sum(su_money_transaction_record.su_money) AS employees_contributions"). | ||
| 684 | - Where(`e.company_id = ?`, companyId). | ||
| 685 | - Where(`su_money_transaction_record.record_type = ?`, 4). | ||
| 686 | - Where(`e.status = ?`, 1). | ||
| 687 | - Where(`su_money_transaction_record.create_time > ?`, startTime). | ||
| 688 | - Where(`su_money_transaction_record.create_time < ?`, endTime). | ||
| 689 | - Group("su_money_transaction_record.employee"). | ||
| 690 | - Order("employees_contributions DESC"). | ||
| 691 | - Select(&retDecrease); err != nil { | ||
| 692 | - return nil, err | ||
| 693 | - } | ||
| 694 | - for i := 0; i < len(ret); i++ { | ||
| 695 | - for j := 0; j < len(retDecrease); j++ { | ||
| 696 | - if ret[i].Uid == retDecrease[j].Uid { | ||
| 697 | - ret[i].EmployeesContributions -= retDecrease[j].EmployeesContributions | ||
| 698 | - } | ||
| 699 | - } | ||
| 700 | - } | ||
| 701 | return map[string]interface{}{ | 719 | return map[string]interface{}{ |
| 702 | - "employeesContributions": ret, | 720 | + "employeesSuMoney": ret, |
| 703 | }, nil | 721 | }, nil |
| 704 | } | 722 | } |
| 705 | 723 |
| @@ -15,6 +15,7 @@ type StatisticsController struct { | @@ -15,6 +15,7 @@ type StatisticsController struct { | ||
| 15 | beego.Controller | 15 | beego.Controller |
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | +// 系统任务统计 | ||
| 18 | func (controller *StatisticsController) SystemTaskStatistics() { | 19 | func (controller *StatisticsController) SystemTaskStatistics() { |
| 19 | statisticsService := service.NewStatisticsService(nil) | 20 | statisticsService := service.NewStatisticsService(nil) |
| 20 | systemTaskStatisticsCommand := &command.SystemTaskStatisticsCommand{} | 21 | systemTaskStatisticsCommand := &command.SystemTaskStatisticsCommand{} |
| @@ -30,6 +31,7 @@ func (controller *StatisticsController) SystemTaskStatistics() { | @@ -30,6 +31,7 @@ func (controller *StatisticsController) SystemTaskStatistics() { | ||
| 30 | controller.ServeJSON() | 31 | controller.ServeJSON() |
| 31 | } | 32 | } |
| 32 | 33 | ||
| 34 | +// 个人任务统计 | ||
| 33 | func (controller *StatisticsController) PersonTaskStatistics() { | 35 | func (controller *StatisticsController) PersonTaskStatistics() { |
| 34 | statisticsService := service.NewStatisticsService(nil) | 36 | statisticsService := service.NewStatisticsService(nil) |
| 35 | personTaskStatisticsCommand := &command.PersonTaskStatisticsCommand{} | 37 | personTaskStatisticsCommand := &command.PersonTaskStatisticsCommand{} |
| @@ -45,6 +47,7 @@ func (controller *StatisticsController) PersonTaskStatistics() { | @@ -45,6 +47,7 @@ func (controller *StatisticsController) PersonTaskStatistics() { | ||
| 45 | controller.ServeJSON() | 47 | controller.ServeJSON() |
| 46 | } | 48 | } |
| 47 | 49 | ||
| 50 | +// 个人素币统计 | ||
| 48 | func (controller *StatisticsController) PersonSuMoneyStatistics() { | 51 | func (controller *StatisticsController) PersonSuMoneyStatistics() { |
| 49 | statisticsService := service.NewStatisticsService(nil) | 52 | statisticsService := service.NewStatisticsService(nil) |
| 50 | personSuMoneyStatisticsCommand := &command.PersonSuMoneyStatisticsCommand{} | 53 | personSuMoneyStatisticsCommand := &command.PersonSuMoneyStatisticsCommand{} |
| @@ -60,6 +63,7 @@ func (controller *StatisticsController) PersonSuMoneyStatistics() { | @@ -60,6 +63,7 @@ func (controller *StatisticsController) PersonSuMoneyStatistics() { | ||
| 60 | controller.ServeJSON() | 63 | controller.ServeJSON() |
| 61 | } | 64 | } |
| 62 | 65 | ||
| 66 | +// 个人通知统计 | ||
| 63 | func (controller *StatisticsController) PersonNotificationStatistics() { | 67 | func (controller *StatisticsController) PersonNotificationStatistics() { |
| 64 | statisticsService := service.NewStatisticsService(nil) | 68 | statisticsService := service.NewStatisticsService(nil) |
| 65 | personNotificationStatisticsCommand := &command.PersonNotificationStatisticsCommand{} | 69 | personNotificationStatisticsCommand := &command.PersonNotificationStatisticsCommand{} |
| @@ -75,6 +79,7 @@ func (controller *StatisticsController) PersonNotificationStatistics() { | @@ -75,6 +79,7 @@ func (controller *StatisticsController) PersonNotificationStatistics() { | ||
| 75 | controller.ServeJSON() | 79 | controller.ServeJSON() |
| 76 | } | 80 | } |
| 77 | 81 | ||
| 82 | +// 系统素币统计 | ||
| 78 | func (controller *StatisticsController) SystemSuMoneyStatistics() { | 83 | func (controller *StatisticsController) SystemSuMoneyStatistics() { |
| 79 | statisticsService := service.NewStatisticsService(nil) | 84 | statisticsService := service.NewStatisticsService(nil) |
| 80 | systemSuMoneyStatisticsCommand := &command.SystemSuMoneyStatisticsCommand{} | 85 | systemSuMoneyStatisticsCommand := &command.SystemSuMoneyStatisticsCommand{} |
| @@ -90,6 +95,7 @@ func (controller *StatisticsController) SystemSuMoneyStatistics() { | @@ -90,6 +95,7 @@ func (controller *StatisticsController) SystemSuMoneyStatistics() { | ||
| 90 | controller.ServeJSON() | 95 | controller.ServeJSON() |
| 91 | } | 96 | } |
| 92 | 97 | ||
| 98 | +// 系统现金统计 | ||
| 93 | func (controller *StatisticsController) SystemCashStatistics() { | 99 | func (controller *StatisticsController) SystemCashStatistics() { |
| 94 | statisticsService := service.NewStatisticsService(nil) | 100 | statisticsService := service.NewStatisticsService(nil) |
| 95 | systemCashStatisticsCommand := &command.SystemCashStatisticsCommand{} | 101 | systemCashStatisticsCommand := &command.SystemCashStatisticsCommand{} |
| @@ -105,7 +111,7 @@ func (controller *StatisticsController) SystemCashStatistics() { | @@ -105,7 +111,7 @@ func (controller *StatisticsController) SystemCashStatistics() { | ||
| 105 | controller.ServeJSON() | 111 | controller.ServeJSON() |
| 106 | } | 112 | } |
| 107 | 113 | ||
| 108 | -// 获取员工财富值 | 114 | +// 获取公司员工财富值 |
| 109 | func (controller *StatisticsController) EmployeesSuMoneyStatistics() { | 115 | func (controller *StatisticsController) EmployeesSuMoneyStatistics() { |
| 110 | statisticsService := service.NewStatisticsService(nil) | 116 | statisticsService := service.NewStatisticsService(nil) |
| 111 | employeesSuMoneyStatisticsCommand := &command.EmployeesSuMoneyStatisticsCommand{} | 117 | employeesSuMoneyStatisticsCommand := &command.EmployeesSuMoneyStatisticsCommand{} |
| @@ -122,7 +128,7 @@ func (controller *StatisticsController) EmployeesSuMoneyStatistics() { | @@ -122,7 +128,7 @@ func (controller *StatisticsController) EmployeesSuMoneyStatistics() { | ||
| 122 | controller.ServeJSON() | 128 | controller.ServeJSON() |
| 123 | } | 129 | } |
| 124 | 130 | ||
| 125 | -// 获取员工贡献值 | 131 | +// 获取公司员工贡献值 |
| 126 | func (controller *StatisticsController) EmployeesContributionsStatistics() { | 132 | func (controller *StatisticsController) EmployeesContributionsStatistics() { |
| 127 | statisticsService := service.NewStatisticsService(nil) | 133 | statisticsService := service.NewStatisticsService(nil) |
| 128 | employeesContributionsStatisticsCommand := &command.EmployeesContributionsStatisticsCommand{} | 134 | employeesContributionsStatisticsCommand := &command.EmployeesContributionsStatisticsCommand{} |
| @@ -138,7 +144,7 @@ func (controller *StatisticsController) EmployeesContributionsStatistics() { | @@ -138,7 +144,7 @@ func (controller *StatisticsController) EmployeesContributionsStatistics() { | ||
| 138 | controller.ServeJSON() | 144 | controller.ServeJSON() |
| 139 | } | 145 | } |
| 140 | 146 | ||
| 141 | -// 员工财富值、贡献值排行榜 | 147 | +// 公司员工财富值、贡献值排行榜 |
| 142 | func (controller *StatisticsController) RankingListStatistics() { | 148 | func (controller *StatisticsController) RankingListStatistics() { |
| 143 | statisticsService := service.NewStatisticsService(nil) | 149 | statisticsService := service.NewStatisticsService(nil) |
| 144 | contributionsWealthRankingQuery := &query.ContributionsWealthRankingQuery{} | 150 | contributionsWealthRankingQuery := &query.ContributionsWealthRankingQuery{} |
| @@ -85,6 +85,7 @@ func (controller *SuMoneyController) SearchSuMoneyTransactionRecord() { | @@ -85,6 +85,7 @@ func (controller *SuMoneyController) SearchSuMoneyTransactionRecord() { | ||
| 85 | controller.ServeJSON() | 85 | controller.ServeJSON() |
| 86 | } | 86 | } |
| 87 | 87 | ||
| 88 | +// 素币事务统计(个人素币收支) | ||
| 88 | func (controller *SuMoneyController) SuMoneyTransactionRecordStatistics() { | 89 | func (controller *SuMoneyController) SuMoneyTransactionRecordStatistics() { |
| 89 | suMoneyService := service.NewSuMoneyService(nil) | 90 | suMoneyService := service.NewSuMoneyService(nil) |
| 90 | suMoneyTransactionRecordStatisticsCommand := &command.SuMoneyTransactionRecordStatisticsCommand{} | 91 | suMoneyTransactionRecordStatisticsCommand := &command.SuMoneyTransactionRecordStatisticsCommand{} |
| @@ -100,6 +101,22 @@ func (controller *SuMoneyController) SuMoneyTransactionRecordStatistics() { | @@ -100,6 +101,22 @@ func (controller *SuMoneyController) SuMoneyTransactionRecordStatistics() { | ||
| 100 | controller.ServeJSON() | 101 | controller.ServeJSON() |
| 101 | } | 102 | } |
| 102 | 103 | ||
| 104 | +// 贡献值事务统计(个人贡献值收支) | ||
| 105 | +func (controller *SuMoneyController) ContributionsTransactionRecordStatistics() { | ||
| 106 | + suMoneyService := service.NewSuMoneyService(nil) | ||
| 107 | + contributionsTransactionRecordStatisticsCommand := &command.ContributionsTransactionRecordStatisticsCommand{} | ||
| 108 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), contributionsTransactionRecordStatisticsCommand) | ||
| 109 | + data, err := suMoneyService.ContributionsTransactionRecordStatistics(contributionsTransactionRecordStatisticsCommand) | ||
| 110 | + var response utils.JsonResponse | ||
| 111 | + if err != nil { | ||
| 112 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 113 | + } else { | ||
| 114 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 115 | + } | ||
| 116 | + controller.Data["json"] = response | ||
| 117 | + controller.ServeJSON() | ||
| 118 | +} | ||
| 119 | + | ||
| 103 | // 投入现金池 | 120 | // 投入现金池 |
| 104 | func (controller *SuMoneyController) CashInput() { | 121 | func (controller *SuMoneyController) CashInput() { |
| 105 | cashPoolService := service.NewCashPoolService(nil) | 122 | cashPoolService := service.NewCashPoolService(nil) |
| @@ -6,10 +6,10 @@ import ( | @@ -6,10 +6,10 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | func init() { | 8 | func init() { |
| 9 | - beego.Router("/statistics/system-task", &controllers.StatisticsController{}, "Post:SystemTaskStatistics") | ||
| 10 | - beego.Router("/statistics/person-task", &controllers.StatisticsController{}, "Post:PersonTaskStatistics") | ||
| 11 | - beego.Router("/statistics/person-su-money", &controllers.StatisticsController{}, "Post:PersonSuMoneyStatistics") | ||
| 12 | - beego.Router("/statistics/person-notification", &controllers.StatisticsController{}, "Post:PersonNotificationStatistics") | 9 | + beego.Router("/statistics/system-task", &controllers.StatisticsController{}, "Post:SystemTaskStatistics") // 系统任务统计 |
| 10 | + beego.Router("/statistics/person-task", &controllers.StatisticsController{}, "Post:PersonTaskStatistics") // 个人任务统计 | ||
| 11 | + beego.Router("/statistics/person-su-money", &controllers.StatisticsController{}, "Post:PersonSuMoneyStatistics") // 个人素币统计 | ||
| 12 | + beego.Router("/statistics/person-notification", &controllers.StatisticsController{}, "Post:PersonNotificationStatistics") // 个人通知统计 | ||
| 13 | beego.Router("/statistics/system-su-money", &controllers.StatisticsController{}, "Post:SystemSuMoneyStatistics") // 系统素币统计 | 13 | beego.Router("/statistics/system-su-money", &controllers.StatisticsController{}, "Post:SystemSuMoneyStatistics") // 系统素币统计 |
| 14 | beego.Router("/statistics/system-cash", &controllers.StatisticsController{}, "Post:SystemCashStatistics") // 系统现金统计 | 14 | beego.Router("/statistics/system-cash", &controllers.StatisticsController{}, "Post:SystemCashStatistics") // 系统现金统计 |
| 15 | beego.Router("/statistics/employees-su-money", &controllers.StatisticsController{}, "Post:EmployeesSuMoneyStatistics") // 员工财富值统计 | 15 | beego.Router("/statistics/employees-su-money", &controllers.StatisticsController{}, "Post:EmployeesSuMoneyStatistics") // 员工财富值统计 |
| @@ -11,7 +11,8 @@ func init() { | @@ -11,7 +11,8 @@ func init() { | ||
| 11 | beego.Router("/su-money/su-money-transaction-records/:suMoneyTransactionRecordId", &controllers.SuMoneyController{}, "Get:GetSuMoneyTransactionRecord") // 返回素币事务记录 | 11 | beego.Router("/su-money/su-money-transaction-records/:suMoneyTransactionRecordId", &controllers.SuMoneyController{}, "Get:GetSuMoneyTransactionRecord") // 返回素币事务记录 |
| 12 | beego.Router("/su-money/exchange", &controllers.SuMoneyController{}, "Post:ExchangeSuMoney") // 兑换素币 | 12 | beego.Router("/su-money/exchange", &controllers.SuMoneyController{}, "Post:ExchangeSuMoney") // 兑换素币 |
| 13 | beego.Router("/su-money/search-su-money-transaction-record", &controllers.SuMoneyController{}, "Post:SearchSuMoneyTransactionRecord") // 搜索素币事务记录 | 13 | beego.Router("/su-money/search-su-money-transaction-record", &controllers.SuMoneyController{}, "Post:SearchSuMoneyTransactionRecord") // 搜索素币事务记录 |
| 14 | - beego.Router("/su-money/su-money-transaction-record-statistics", &controllers.SuMoneyController{}, "Post:SuMoneyTransactionRecordStatistics") // 返回素币事务记录统计 | 14 | + beego.Router("/su-money/su-money-transaction-record-statistics", &controllers.SuMoneyController{}, "Post:SuMoneyTransactionRecordStatistics") // 返回素币事务记录统计(个人素币收支) |
| 15 | + beego.Router("/su-money/contributions-transaction-record-statistics", &controllers.SuMoneyController{}, "Post:ContributionsTransactionRecordStatistics") // 返回贡献值事务记录统计(个人贡献值收支) | ||
| 15 | beego.Router("/su-money/su-money-transaction-records/export-records", &controllers.SuMoneyController{}, "Post:ExportSuMoneyTransactionRecord") // 导出素币事务记录(流水) | 16 | beego.Router("/su-money/su-money-transaction-records/export-records", &controllers.SuMoneyController{}, "Post:ExportSuMoneyTransactionRecord") // 导出素币事务记录(流水) |
| 16 | beego.Router("/su-money/su-money-transaction-records/export-su-money", &controllers.SuMoneyController{}, "Post:ExportSuMoney") // 导出员工素币 | 17 | beego.Router("/su-money/su-money-transaction-records/export-su-money", &controllers.SuMoneyController{}, "Post:ExportSuMoney") // 导出员工素币 |
| 17 | 18 |
-
请 注册 或 登录 后发表评论