正在显示
15 个修改的文件
包含
171 行增加
和
45 行删除
| @@ -6,7 +6,7 @@ import ( | @@ -6,7 +6,7 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type ListListIntervalQuery struct { | 8 | type ListListIntervalQuery struct { |
| 9 | - CompanyId int64 `json:"companyId"` // 公司id | 9 | + CompanyId int `json:"companyId"` // 公司id |
| 10 | Offset int `json:"offset,omitempty"` // 查询偏离量 | 10 | Offset int `json:"offset,omitempty"` // 查询偏离量 |
| 11 | Limit int `json:"limit,omitempty"` // 查询限制 | 11 | Limit int `json:"limit,omitempty"` // 查询限制 |
| 12 | } | 12 | } |
| @@ -82,7 +82,7 @@ func (listIntervalService *ListIntervalService) ListListInterval(listListInterva | @@ -82,7 +82,7 @@ func (listIntervalService *ListIntervalService) ListListInterval(listListInterva | ||
| 82 | } | 82 | } |
| 83 | return map[string]interface{}{ | 83 | return map[string]interface{}{ |
| 84 | "count": count, | 84 | "count": count, |
| 85 | - "taskNatures": listIntervals, | 85 | + "listIntervals": listIntervals, |
| 86 | }, nil | 86 | }, nil |
| 87 | } | 87 | } |
| 88 | } | 88 | } |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego/validation" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +type EmployeesContributionsStatisticsCommand struct { | ||
| 9 | + CompanyId int `json:"companyId" valid:"Required"` // 公司id | ||
| 10 | +} | ||
| 11 | + | ||
| 12 | +func (employeesContributionsStatisticsCommand *EmployeesContributionsStatisticsCommand) ValidateCommand() error { | ||
| 13 | + valid := validation.Validation{} | ||
| 14 | + b, err := valid.Valid(employeesContributionsStatisticsCommand) | ||
| 15 | + if err != nil { | ||
| 16 | + return err | ||
| 17 | + } | ||
| 18 | + if !b { | ||
| 19 | + for _, validErr := range valid.Errors { | ||
| 20 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 21 | + } | ||
| 22 | + } | ||
| 23 | + return nil | ||
| 24 | +} |
| 1 | +package command | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + | ||
| 6 | + "github.com/astaxie/beego/validation" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type EmployeesSuMoneyStatisticsCommand struct { | ||
| 10 | + CompanyId int `json:"companyId" valid:"Required"` // 公司id | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (employeesSuMoneyStatisticsCommand *EmployeesSuMoneyStatisticsCommand) ValidateCommand() error { | ||
| 14 | + valid := validation.Validation{} | ||
| 15 | + b, err := valid.Valid(employeesSuMoneyStatisticsCommand) | ||
| 16 | + if err != nil { | ||
| 17 | + return err | ||
| 18 | + } | ||
| 19 | + if !b { | ||
| 20 | + for _, validErr := range valid.Errors { | ||
| 21 | + return fmt.Errorf("%s %s", validErr.Key, validErr.Message) | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + return nil | ||
| 25 | +} |
| @@ -160,7 +160,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | @@ -160,7 +160,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | ||
| 160 | defer func() { | 160 | defer func() { |
| 161 | transactionContext.RollbackTransaction() | 161 | transactionContext.RollbackTransaction() |
| 162 | }() | 162 | }() |
| 163 | - | ||
| 164 | var employeeDao *dao.EmployeeDao | 163 | var employeeDao *dao.EmployeeDao |
| 165 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | 164 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ |
| 166 | "transactionContext": transactionContext, | 165 | "transactionContext": transactionContext, |
| @@ -169,8 +168,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | @@ -169,8 +168,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | ||
| 169 | } else { | 168 | } else { |
| 170 | employeeDao = value | 169 | employeeDao = value |
| 171 | } | 170 | } |
| 172 | - | ||
| 173 | - // 企业员工资源库 | ||
| 174 | var employeeRepository domain.EmployeeRepository | 171 | var employeeRepository domain.EmployeeRepository |
| 175 | if value, err := factory.CreateEmployeeRepository(map[string]interface{}{ | 172 | if value, err := factory.CreateEmployeeRepository(map[string]interface{}{ |
| 176 | "transactionContext": transactionContext, | 173 | "transactionContext": transactionContext, |
| @@ -179,8 +176,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | @@ -179,8 +176,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | ||
| 179 | } else { | 176 | } else { |
| 180 | employeeRepository = value | 177 | employeeRepository = value |
| 181 | } | 178 | } |
| 182 | - | ||
| 183 | - // 判断企业员工是否有效 | ||
| 184 | employee, err := employeeRepository.FindOne(map[string]interface{}{ | 179 | employee, err := employeeRepository.FindOne(map[string]interface{}{ |
| 185 | "uid": personSuMoneyStatisticsCommand.Uid, | 180 | "uid": personSuMoneyStatisticsCommand.Uid, |
| 186 | }) | 181 | }) |
| @@ -190,8 +185,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | @@ -190,8 +185,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | ||
| 190 | if employee == nil { | 185 | if employee == nil { |
| 191 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业员工") | 186 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业员工") |
| 192 | } | 187 | } |
| 193 | - | ||
| 194 | - // 计算个人素币 | ||
| 195 | if personSuMoneyStatistics, err := employeeDao.CalculatePersonSuMoney(personSuMoneyStatisticsCommand.Uid); err != nil { | 188 | if personSuMoneyStatistics, err := employeeDao.CalculatePersonSuMoney(personSuMoneyStatisticsCommand.Uid); err != nil { |
| 196 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 189 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 197 | } else { | 190 | } else { |
| @@ -203,7 +196,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | @@ -203,7 +196,6 @@ func (statisticsService *StatisticsService) PersonSuMoneyStatistics(personSuMone | ||
| 203 | } | 196 | } |
| 204 | } | 197 | } |
| 205 | 198 | ||
| 206 | -// TODO 系统素币统计 | ||
| 207 | func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMoneyStatisticsCommand *command.SystemSuMoneyStatisticsCommand) (interface{}, error) { | 199 | func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMoneyStatisticsCommand *command.SystemSuMoneyStatisticsCommand) (interface{}, error) { |
| 208 | if err := systemSuMoneyStatisticsCommand.ValidateCommand(); err != nil { | 200 | if err := systemSuMoneyStatisticsCommand.ValidateCommand(); err != nil { |
| 209 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 201 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
| @@ -219,15 +211,6 @@ func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMone | @@ -219,15 +211,6 @@ func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMone | ||
| 219 | transactionContext.RollbackTransaction() | 211 | transactionContext.RollbackTransaction() |
| 220 | }() | 212 | }() |
| 221 | 213 | ||
| 222 | - //var cashPoolDao *dao.CashPoolDao | ||
| 223 | - //if value, err := factory.CreateCashPoolDao(map[string]interface{}{ | ||
| 224 | - // "transactionContext": transactionContext, | ||
| 225 | - //}); err != nil { | ||
| 226 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 227 | - //} else { | ||
| 228 | - // cashPoolDao = value | ||
| 229 | - //} | ||
| 230 | - | ||
| 231 | var employeeDao *dao.EmployeeDao | 214 | var employeeDao *dao.EmployeeDao |
| 232 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | 215 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ |
| 233 | "transactionContext": transactionContext, | 216 | "transactionContext": transactionContext, |
| @@ -237,15 +220,6 @@ func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMone | @@ -237,15 +220,6 @@ func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMone | ||
| 237 | employeeDao = value | 220 | employeeDao = value |
| 238 | } | 221 | } |
| 239 | 222 | ||
| 240 | - //var employeeRepository domain.EmployeeRepository | ||
| 241 | - //if value, err := factory.CreateEmployeeRepository(map[string]interface{}{ | ||
| 242 | - // "transactionContext": transactionContext, | ||
| 243 | - //}); err != nil { | ||
| 244 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 245 | - //} else { | ||
| 246 | - // employeeRepository = value | ||
| 247 | - //} | ||
| 248 | - | ||
| 249 | if systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(systemSuMoneyStatisticsCommand.CompanyId); err != nil { | 223 | if systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(systemSuMoneyStatisticsCommand.CompanyId); err != nil { |
| 250 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 224 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 251 | } else { | 225 | } else { |
| @@ -256,7 +230,6 @@ func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMone | @@ -256,7 +230,6 @@ func (statisticsService *StatisticsService) SystemSuMoneyStatistics(systemSuMone | ||
| 256 | } | 230 | } |
| 257 | } | 231 | } |
| 258 | 232 | ||
| 259 | -// TODO 系统现金统计 | ||
| 260 | func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStatisticsCommand *command.SystemCashStatisticsCommand) (interface{}, error) { | 233 | func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStatisticsCommand *command.SystemCashStatisticsCommand) (interface{}, error) { |
| 261 | if err := systemCashStatisticsCommand.ValidateCommand(); err != nil { | 234 | if err := systemCashStatisticsCommand.ValidateCommand(); err != nil { |
| 262 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 235 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
| @@ -272,15 +245,6 @@ func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStati | @@ -272,15 +245,6 @@ func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStati | ||
| 272 | transactionContext.RollbackTransaction() | 245 | transactionContext.RollbackTransaction() |
| 273 | }() | 246 | }() |
| 274 | 247 | ||
| 275 | - //var cashPoolDao *dao.CashPoolDao | ||
| 276 | - //if value, err := factory.CreateCashPoolDao(map[string]interface{}{ | ||
| 277 | - // "transactionContext": transactionContext, | ||
| 278 | - //}); err != nil { | ||
| 279 | - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 280 | - //} else { | ||
| 281 | - // cashPoolDao = value | ||
| 282 | - //} | ||
| 283 | - | ||
| 284 | var employeeDao *dao.EmployeeDao | 248 | var employeeDao *dao.EmployeeDao |
| 285 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | 249 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ |
| 286 | "transactionContext": transactionContext, | 250 | "transactionContext": transactionContext, |
| @@ -300,6 +264,19 @@ func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStati | @@ -300,6 +264,19 @@ func (statisticsService *StatisticsService) SystemCashStatistics(systemCashStati | ||
| 300 | } | 264 | } |
| 301 | } | 265 | } |
| 302 | 266 | ||
| 267 | +// TODO 员工素币值统计 | ||
| 268 | +func (statisticsService *StatisticsService) EmployeesSuMoneyStatistics(employeesSuMoneyStatisticsCommand *command.EmployeesSuMoneyStatisticsCommand) (interface{}, error) { | ||
| 269 | + | ||
| 270 | + return nil ,nil | ||
| 271 | +} | ||
| 272 | + | ||
| 273 | +// TODO 员工贡献值统计 | ||
| 274 | +func (statisticsService *StatisticsService) EmployeesContributionsStatistics(employeesContributionsStatisticsCommand *command.EmployeesContributionsStatisticsCommand) (interface{}, error) { | ||
| 275 | + | ||
| 276 | + return nil, nil | ||
| 277 | +} | ||
| 278 | + | ||
| 279 | + | ||
| 303 | func NewStatisticsService(options map[string]interface{}) *StatisticsService { | 280 | func NewStatisticsService(options map[string]interface{}) *StatisticsService { |
| 304 | newStatisticsService := &StatisticsService{} | 281 | newStatisticsService := &StatisticsService{} |
| 305 | return newStatisticsService | 282 | return newStatisticsService |
| @@ -114,20 +114,20 @@ func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{ | @@ -114,20 +114,20 @@ func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{ | ||
| 114 | }, nil | 114 | }, nil |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | -// TODO 计算系统素币 | 117 | +// 计算系统素币 |
| 118 | func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] interface{}, error) { | 118 | func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] interface{}, error) { |
| 119 | var systemUnExchangeSuMoney float64 | 119 | var systemUnExchangeSuMoney float64 |
| 120 | var systemExchangedSuMoney float64 | 120 | var systemExchangedSuMoney float64 |
| 121 | tx := dao.transactionContext.PgTx | 121 | tx := dao.transactionContext.PgTx |
| 122 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 122 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 123 | - if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS employee ON employee.uid = employee.uid"). | 123 | + if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_records.employee->>'uid')::bigint"). |
| 124 | ColumnExpr("sum(su_money_transaction_record.current_su_money) AS system_unExchange_su_money"). | 124 | ColumnExpr("sum(su_money_transaction_record.current_su_money) AS system_unExchange_su_money"). |
| 125 | Where("employee.company_id = ?", companyId). | 125 | Where("employee.company_id = ?", companyId). |
| 126 | Where(`su_money_transaction_record.record_type = ?`, 5). | 126 | Where(`su_money_transaction_record.record_type = ?`, 5). |
| 127 | Select(&systemUnExchangeSuMoney); err != nil { | 127 | Select(&systemUnExchangeSuMoney); err != nil { |
| 128 | return nil, err | 128 | return nil, err |
| 129 | } | 129 | } |
| 130 | - if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS employee ON employee.uid = employee.uid"). | 130 | + if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_records.employee->>'uid')::bigint"). |
| 131 | ColumnExpr("sum(su_money_transaction_record.su_money) AS system_changed_su_money"). | 131 | ColumnExpr("sum(su_money_transaction_record.su_money) AS system_changed_su_money"). |
| 132 | Where("employee.company_id = ?", companyId). | 132 | Where("employee.company_id = ?", companyId). |
| 133 | Where(`su_money_transaction_record.record_type = ?`, 5). | 133 | Where(`su_money_transaction_record.record_type = ?`, 5). |
| @@ -140,7 +140,7 @@ func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] int | @@ -140,7 +140,7 @@ func (dao *EmployeeDao) CalculateSystemSuMoney(companyId int64) (map[string] int | ||
| 140 | },nil | 140 | },nil |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | -// TODO 计算系统现金 | 143 | +// 计算系统现金 |
| 144 | func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interface{}, error) { | 144 | func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interface{}, error) { |
| 145 | var ( | 145 | var ( |
| 146 | systemUnExchangeCash float64 | 146 | systemUnExchangeCash float64 |
| @@ -148,7 +148,7 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf | @@ -148,7 +148,7 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf | ||
| 148 | ) | 148 | ) |
| 149 | tx := dao.transactionContext.PgTx | 149 | tx := dao.transactionContext.PgTx |
| 150 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | 150 | suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) |
| 151 | - if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS employee ON employee.uid = employee.uid"). | 151 | + if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_records.employee->>'uid')::bigint"). |
| 152 | ColumnExpr("sum(su_money_transaction_record.cash) AS system_exchanged_cash"). | 152 | ColumnExpr("sum(su_money_transaction_record.cash) AS system_exchanged_cash"). |
| 153 | Where("employee.company_id = ?", companyId). | 153 | Where("employee.company_id = ?", companyId). |
| 154 | Where(`su_money_transaction_record.record_type = ?`, 5). | 154 | Where(`su_money_transaction_record.record_type = ?`, 5). |
| @@ -158,7 +158,10 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf | @@ -158,7 +158,10 @@ func (dao *EmployeeDao) CalculateSystemCash(companyId int64) (map[string] interf | ||
| 158 | 158 | ||
| 159 | cashPool := new(models.CashPool) | 159 | cashPool := new(models.CashPool) |
| 160 | if err := tx.Model(cashPool). | 160 | if err := tx.Model(cashPool). |
| 161 | + Column("un_exchange_cash"). | ||
| 161 | Where("cash_pool.company_id = ?", companyId). | 162 | Where("cash_pool.company_id = ?", companyId). |
| 163 | + Order("id DSC"). | ||
| 164 | + Limit(1). | ||
| 162 | Select(&systemUnExchangeCash) ; err != nil { | 165 | Select(&systemUnExchangeCash) ; err != nil { |
| 163 | return nil, err | 166 | return nil, err |
| 164 | } | 167 | } |
| @@ -198,6 +201,52 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction | @@ -198,6 +201,52 @@ func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transaction | ||
| 198 | }, nil | 201 | }, nil |
| 199 | } | 202 | } |
| 200 | 203 | ||
| 204 | +func (dao *EmployeeDao) CalculateEmployeesSuMoney(companyId int) (map[string]interface{}, error) { | ||
| 205 | + tx := dao.transactionContext.PgTx | ||
| 206 | + var res []struct { | ||
| 207 | + EmployeesSuMoney float64 | ||
| 208 | + Employee domain.Employee | ||
| 209 | + } | ||
| 210 | + suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | ||
| 211 | + if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 212 | + Column("su_money_transaction_record.employee, (su_money_transaction_record.employee->>'employeeName')::text,"). | ||
| 213 | + ColumnExpr("sum(su_money_transaction_record.current_su_money) AS employee_su_money"). | ||
| 214 | + Where(`e.company_id = ?`, companyId). | ||
| 215 | + Where(`e.status = ?`, 1). | ||
| 216 | + Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})). | ||
| 217 | + Group("su_money_transaction_record.employee"). | ||
| 218 | + Order("employee_su_money DESC"). | ||
| 219 | + Select(&res); err != nil { | ||
| 220 | + return nil, err | ||
| 221 | + } | ||
| 222 | + return map[string]interface{}{ | ||
| 223 | + "employeesSuMoney": res, | ||
| 224 | + }, nil | ||
| 225 | +} | ||
| 226 | + | ||
| 227 | +func (dao *EmployeeDao) CalculateEmployeesContributions(companyId int) (map[string]interface{}, error) { | ||
| 228 | + tx := dao.transactionContext.PgTx | ||
| 229 | + var ret []struct { | ||
| 230 | + EmployeesContributions float64 | ||
| 231 | + Employee domain.Employee | ||
| 232 | + } | ||
| 233 | + suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord) | ||
| 234 | + if err := tx.Model(suMoneyTransactionRecordModel).Join("JOIN employees AS e ON e.uid = (su_money_transaction_record.employee->>'uid')::bigint"). | ||
| 235 | + Column("su_money_transaction_record.employee"). | ||
| 236 | + ColumnExpr("sum(s.current_su_money) AS employees_contributions"). | ||
| 237 | + Where(`e.company_id = ?`, companyId). | ||
| 238 | + Where(`su_money_transaction_record.record_type = ?`, 2). | ||
| 239 | + Where(`e.status = ?`, 1). | ||
| 240 | + Group("su_money_transaction_record.employee"). | ||
| 241 | + Order("employees_contributions DESC"). | ||
| 242 | + Select(&ret); err != nil { | ||
| 243 | + return nil, err | ||
| 244 | + } | ||
| 245 | + return map[string]interface{}{ | ||
| 246 | + "employeesContributions": ret, | ||
| 247 | + }, nil | ||
| 248 | +} | ||
| 249 | + | ||
| 201 | func NewEmployeeDao(transactionContext *pgTransaction.TransactionContext) (*EmployeeDao, error) { | 250 | func NewEmployeeDao(transactionContext *pgTransaction.TransactionContext) (*EmployeeDao, error) { |
| 202 | if transactionContext == nil { | 251 | if transactionContext == nil { |
| 203 | return nil, fmt.Errorf("transactionContext参数不能为nil") | 252 | return nil, fmt.Errorf("transactionContext参数不能为nil") |
| @@ -39,6 +39,7 @@ func init() { | @@ -39,6 +39,7 @@ func init() { | ||
| 39 | (*models.CashPool)(nil), | 39 | (*models.CashPool)(nil), |
| 40 | (*models.ExchangeCashActivity)(nil), | 40 | (*models.ExchangeCashActivity)(nil), |
| 41 | (*models.ExchangeCashPersonList)(nil), | 41 | (*models.ExchangeCashPersonList)(nil), |
| 42 | + (*models.ListInterval)(nil), | ||
| 42 | } { | 43 | } { |
| 43 | err := DB.CreateTable(model, &orm.CreateTableOptions{ | 44 | err := DB.CreateTable(model, &orm.CreateTableOptions{ |
| 44 | Temp: false, | 45 | Temp: false, |
| @@ -18,7 +18,7 @@ func (repository *ListIntervalRepository) Save(listInterval *domain.ListInterval | @@ -18,7 +18,7 @@ func (repository *ListIntervalRepository) Save(listInterval *domain.ListInterval | ||
| 18 | if _, err := tx.QueryOne( | 18 | if _, err := tx.QueryOne( |
| 19 | pg.Scan(&listInterval.ListIntervalId, &listInterval.CompanyId, &listInterval.IntervalStartTime, &listInterval.IntervalEndTime), | 19 | pg.Scan(&listInterval.ListIntervalId, &listInterval.CompanyId, &listInterval.IntervalStartTime, &listInterval.IntervalEndTime), |
| 20 | "INSERT INTO list_intervals (list_interval_start_time, list_interval_end_time, company_id) VALUES (?, ?, ?) RETURNING id, company_id, list_interval_start_time, list_interval_end_time", | 20 | "INSERT INTO list_intervals (list_interval_start_time, list_interval_end_time, company_id) VALUES (?, ?, ?) RETURNING id, company_id, list_interval_start_time, list_interval_end_time", |
| 21 | - listInterval.ListIntervalId, listInterval.CompanyId, listInterval.IntervalStartTime, listInterval.IntervalEndTime); err != nil { | 21 | + listInterval.IntervalStartTime, listInterval.IntervalEndTime, listInterval.CompanyId); err != nil { |
| 22 | return listInterval, err | 22 | return listInterval, err |
| 23 | } | 23 | } |
| 24 | } else { | 24 | } else { |
| @@ -101,3 +101,8 @@ func (controller *EmployeeController) ListEmployee() { | @@ -101,3 +101,8 @@ func (controller *EmployeeController) ListEmployee() { | ||
| 101 | controller.Data["json"] = response | 101 | controller.Data["json"] = response |
| 102 | controller.ServeJSON() | 102 | controller.ServeJSON() |
| 103 | } | 103 | } |
| 104 | + | ||
| 105 | +// TODO 导出员工素币情况列表,选择导出(ids) | ||
| 106 | +func (controller *EmployeeController) ExportSuMoney() { | ||
| 107 | + | ||
| 108 | +} |
| @@ -68,7 +68,7 @@ func (controller *ListIntervalController) GetListInterval() { | @@ -68,7 +68,7 @@ func (controller *ListIntervalController) GetListInterval() { | ||
| 68 | func (controller *ListIntervalController) ListListInterval() { | 68 | func (controller *ListIntervalController) ListListInterval() { |
| 69 | listIntervalService := service.NewListIntervalService(nil) | 69 | listIntervalService := service.NewListIntervalService(nil) |
| 70 | listListIntervalQuery := &query.ListListIntervalQuery{} | 70 | listListIntervalQuery := &query.ListListIntervalQuery{} |
| 71 | - companyId, _ := controller.GetInt64(":companyID") | 71 | + companyId, _ := controller.GetInt("companyId") |
| 72 | listListIntervalQuery.CompanyId = companyId | 72 | listListIntervalQuery.CompanyId = companyId |
| 73 | offset, _ := controller.GetInt("offset") | 73 | offset, _ := controller.GetInt("offset") |
| 74 | listListIntervalQuery.Offset = offset | 74 | listListIntervalQuery.Offset = offset |
| @@ -102,3 +102,33 @@ func (controller *StatisticsController) SystemCashStatistics() { | @@ -102,3 +102,33 @@ func (controller *StatisticsController) SystemCashStatistics() { | ||
| 102 | controller.Data["json"] = response | 102 | controller.Data["json"] = response |
| 103 | controller.ServeJSON() | 103 | controller.ServeJSON() |
| 104 | } | 104 | } |
| 105 | + | ||
| 106 | +func (controller *StatisticsController) EmployeesSuMoneyStatistics() { | ||
| 107 | + statisticsService := service.NewStatisticsService(nil) | ||
| 108 | + employeesSuMoneyStatisticsCommand := &command.EmployeesSuMoneyStatisticsCommand{} | ||
| 109 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), employeesSuMoneyStatisticsCommand) | ||
| 110 | + data, err := statisticsService.EmployeesSuMoneyStatistics(employeesSuMoneyStatisticsCommand) | ||
| 111 | + var response utils.JsonResponse | ||
| 112 | + if err != nil { | ||
| 113 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 114 | + } else { | ||
| 115 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 116 | + } | ||
| 117 | + controller.Data["json"] = response | ||
| 118 | + controller.ServeJSON() | ||
| 119 | +} | ||
| 120 | + | ||
| 121 | +func (controller *StatisticsController) EmployeesContributionsStatistics() { | ||
| 122 | + statisticsService := service.NewStatisticsService(nil) | ||
| 123 | + employeesContributionsStatisticsCommand := &command.EmployeesContributionsStatisticsCommand{} | ||
| 124 | + json.Unmarshal(controller.Ctx.Input.GetData("requestBody").([]byte), employeesContributionsStatisticsCommand) | ||
| 125 | + data, err := statisticsService.EmployeesContributionsStatistics(employeesContributionsStatisticsCommand) | ||
| 126 | + var response utils.JsonResponse | ||
| 127 | + if err != nil { | ||
| 128 | + response = utils.ResponseError(controller.Ctx, err) | ||
| 129 | + } else { | ||
| 130 | + response = utils.ResponseData(controller.Ctx, data) | ||
| 131 | + } | ||
| 132 | + controller.Data["json"] = response | ||
| 133 | + controller.ServeJSON() | ||
| 134 | +} |
| @@ -363,3 +363,13 @@ func (controller *SuMoneyController) ImportExchangeList () { | @@ -363,3 +363,13 @@ func (controller *SuMoneyController) ImportExchangeList () { | ||
| 363 | controller.Data["json"] = response | 363 | controller.Data["json"] = response |
| 364 | controller.ServeJSON() | 364 | controller.ServeJSON() |
| 365 | } | 365 | } |
| 366 | + | ||
| 367 | +// TODO 导出素币兑换清单,选择导出(ids) | ||
| 368 | +func (controller *SuMoneyController) ExportExchangeList() { | ||
| 369 | + | ||
| 370 | +} | ||
| 371 | + | ||
| 372 | +// TODO 导出素币流水记录,选择导出(ids) | ||
| 373 | +func (controller *SuMoneyController) ExportSuMoneyTransactionRecord() { | ||
| 374 | + | ||
| 375 | +} |
| @@ -11,4 +11,5 @@ func init() { | @@ -11,4 +11,5 @@ func init() { | ||
| 11 | beego.Router("/employees/:uid", &controllers.EmployeeController{}, "Get:GetEmployee") | 11 | beego.Router("/employees/:uid", &controllers.EmployeeController{}, "Get:GetEmployee") |
| 12 | beego.Router("/employees/:uid", &controllers.EmployeeController{}, "Delete:RemoveEmployee") | 12 | beego.Router("/employees/:uid", &controllers.EmployeeController{}, "Delete:RemoveEmployee") |
| 13 | beego.Router("/employees/", &controllers.EmployeeController{}, "Get:ListEmployee") | 13 | beego.Router("/employees/", &controllers.EmployeeController{}, "Get:ListEmployee") |
| 14 | + beego.Router("/employees/export", &controllers.EmployeeController{}, "Post:ExportSuMoney") // 导出员工素币情况列表 | ||
| 14 | } | 15 | } |
| @@ -12,4 +12,6 @@ func init() { | @@ -12,4 +12,6 @@ func init() { | ||
| 12 | beego.Router("/statistics/person-notification", &controllers.StatisticsController{}, "Post:PersonNotificationStatistics") | 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") // 员工财富值统计 | ||
| 16 | + beego.Router("/statistics/employees-contributions", &controllers.StatisticsController{}, "Post:EmployeesContributionsStatistics") // 员工贡献值统计 | ||
| 15 | } | 17 | } |
| @@ -12,6 +12,7 @@ func init() { | @@ -12,6 +12,7 @@ func init() { | ||
| 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/su-money-transaction-records/export", &controllers.SuMoneyController{}, "Post:ExportSuMoneyTransactionRecord") // 导出素币事务记录 | ||
| 15 | 16 | ||
| 16 | /**********************************************现金池*******************************************/ | 17 | /**********************************************现金池*******************************************/ |
| 17 | beego.Router("/cash-pool/input", &controllers.SuMoneyController{}, "Post:CashInput") // 现金池投入 | 18 | beego.Router("/cash-pool/input", &controllers.SuMoneyController{}, "Post:CashInput") // 现金池投入 |
| @@ -31,4 +32,5 @@ func init() { | @@ -31,4 +32,5 @@ func init() { | ||
| 31 | beego.Router("/cash-pool/activity/exchange-list/:listId", &controllers.SuMoneyController{}, "Put:UpdateExchangeList") // 编辑素币兑换清单 | 32 | beego.Router("/cash-pool/activity/exchange-list/:listId", &controllers.SuMoneyController{}, "Put:UpdateExchangeList") // 编辑素币兑换清单 |
| 32 | beego.Router("/cash-pool/activity/exchange-list/:listId", &controllers.SuMoneyController{}, "Delete:RemoveExchangeCashPerson") // 删除素币兑换清单 | 33 | beego.Router("/cash-pool/activity/exchange-list/:listId", &controllers.SuMoneyController{}, "Delete:RemoveExchangeCashPerson") // 删除素币兑换清单 |
| 33 | beego.Router("/cash-pool/activity/exchange-list/import", &controllers.SuMoneyController{}, "Post:ImportExchangeList") // 导入素币兑换清单 | 34 | beego.Router("/cash-pool/activity/exchange-list/import", &controllers.SuMoneyController{}, "Post:ImportExchangeList") // 导入素币兑换清单 |
| 35 | + beego.Router("/cash-pool/activity/exchange-list/export", &controllers.SuMoneyController{}, "Post:ExportExchangeList") // 导出素币兑换清单 | ||
| 34 | } | 36 | } |
-
请 注册 或 登录 后发表评论