正在显示
1 个修改的文件
包含
64 行增加
和
14 行删除
| @@ -373,12 +373,7 @@ func (cashPoolService *CashPoolService) GetExchangeCashActivity(getExchangeCashA | @@ -373,12 +373,7 @@ func (cashPoolService *CashPoolService) GetExchangeCashActivity(getExchangeCashA | ||
| 373 | var t2 = time.Date(deadline.Year(), deadline.Month(), deadline.Day(), 0, 0, 0, 0, time.Local) | 373 | var t2 = time.Date(deadline.Year(), deadline.Month(), deadline.Day(), 0, 0, 0, 0, time.Local) |
| 374 | updateExchangeCashActivity := &command.UpdateExchangeCashActivityCommand { | 374 | updateExchangeCashActivity := &command.UpdateExchangeCashActivityCommand { |
| 375 | ExchangeCashActivityId: activity.ActivityId, | 375 | ExchangeCashActivityId: activity.ActivityId, |
| 376 | - //ExchangeActivityName: activity.ExchangeActivityName, | ||
| 377 | - //Deadline: activity.Deadline, | ||
| 378 | CountDown: int64(t2.Sub(t1).Hours() / 24), | 376 | CountDown: int64(t2.Sub(t1).Hours() / 24), |
| 379 | - //ExchangedSuMoney: activity.ExchangedSuMoney, | ||
| 380 | - //ExchangedCash: activity.ExchangedCash, | ||
| 381 | - //ExchangeRate: activity.Rate, | ||
| 382 | } | 377 | } |
| 383 | if err := activity.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivity)); err != nil { | 378 | if err := activity.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivity)); err != nil { |
| 384 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | 379 | return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) |
| @@ -485,6 +480,8 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang | @@ -485,6 +480,8 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang | ||
| 485 | if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPools[0].UnExchangeCash { | 480 | if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPools[0].UnExchangeCash { |
| 486 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") | 481 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") |
| 487 | } | 482 | } |
| 483 | + // TODO 批量更新兑换清单中已兑换现金值 | ||
| 484 | + | ||
| 488 | // 计算系统平均兑换汇率并更新现金池 | 485 | // 计算系统平均兑换汇率并更新现金池 |
| 489 | var employeeDao *dao.EmployeeDao | 486 | var employeeDao *dao.EmployeeDao |
| 490 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | 487 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ |
| @@ -518,10 +515,10 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang | @@ -518,10 +515,10 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang | ||
| 518 | } else { | 515 | } else { |
| 519 | rate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64) | 516 | rate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64) |
| 520 | } | 517 | } |
| 521 | - // TODO 更新现金池 | 518 | + // 更新现金池 |
| 522 | updateCashPoolCommand := &command.UpdateCashPoolCommand{ | 519 | updateCashPoolCommand := &command.UpdateCashPoolCommand{ |
| 523 | CashPoolId: cashPools[0].CashPoolId, | 520 | CashPoolId: cashPools[0].CashPoolId, |
| 524 | - ExchangedCash: systemExchangedCash, | 521 | + ExchangedCash: systemUnExchangeCash, |
| 525 | UnExchangeCash: systemUnExchangeCash, | 522 | UnExchangeCash: systemUnExchangeCash, |
| 526 | Rate: rate, | 523 | Rate: rate, |
| 527 | } | 524 | } |
| @@ -535,10 +532,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang | @@ -535,10 +532,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang | ||
| 535 | if cashPoolUpdated == nil { | 532 | if cashPoolUpdated == nil { |
| 536 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 533 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 537 | } | 534 | } |
| 538 | - // TODO 批量更新兑换清单中已兑换现金值 | ||
| 539 | - | ||
| 540 | } | 535 | } |
| 541 | - | ||
| 542 | if activityUpdated, err := exchangeCashActivityRepository.Save(activity); err != nil { | 536 | if activityUpdated, err := exchangeCashActivityRepository.Save(activity); err != nil { |
| 543 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 537 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 544 | } else { | 538 | } else { |
| @@ -672,7 +666,6 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC | @@ -672,7 +666,6 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC | ||
| 672 | if activityUpdated == nil { | 666 | if activityUpdated == nil { |
| 673 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(createExchangeCashPersonCommand.ExchangeCashActivityId))) | 667 | return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(createExchangeCashPersonCommand.ExchangeCashActivityId))) |
| 674 | } | 668 | } |
| 675 | - | ||
| 676 | // 判断清单中现金总额超过平台未兑换现金 | 669 | // 判断清单中现金总额超过平台未兑换现金 |
| 677 | var cashPoolDao *dao.CashPoolDao | 670 | var cashPoolDao *dao.CashPoolDao |
| 678 | if value, err := factory.CreateCashPoolDao(map[string]interface{}{ | 671 | if value, err := factory.CreateCashPoolDao(map[string]interface{}{ |
| @@ -690,6 +683,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC | @@ -690,6 +683,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC | ||
| 690 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业") | 683 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业") |
| 691 | } | 684 | } |
| 692 | activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64) | 685 | activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64) |
| 686 | + | ||
| 693 | var employeeDao *dao.EmployeeDao | 687 | var employeeDao *dao.EmployeeDao |
| 694 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ | 688 | if value, err := factory.CreateEmployeeDao(map[string]interface{}{ |
| 695 | "transactionContext": transactionContext, | 689 | "transactionContext": transactionContext, |
| @@ -699,12 +693,68 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC | @@ -699,12 +693,68 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC | ||
| 699 | employeeDao = value | 693 | employeeDao = value |
| 700 | } | 694 | } |
| 701 | systemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId) | 695 | systemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId) |
| 696 | + if err != nil { | ||
| 697 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 698 | + } | ||
| 699 | + if systemCashStatistics == nil { | ||
| 700 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") | ||
| 701 | + } | ||
| 702 | + systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64) | ||
| 703 | + systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64) | ||
| 702 | if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > systemCashStatistics["systemUnExchangeCash"].(float64) { | 704 | if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > systemCashStatistics["systemUnExchangeCash"].(float64) { |
| 703 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") | 705 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") |
| 704 | } | 706 | } |
| 705 | - | ||
| 706 | - // TODO 更新现金池 | ||
| 707 | - | 707 | + systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(activity.CompanyId) |
| 708 | + if err != nil { | ||
| 709 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 710 | + } | ||
| 711 | + if systemSuMoneyStatistics == nil { | ||
| 712 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") | ||
| 713 | + } | ||
| 714 | + systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) | ||
| 715 | + // 更新现金池 | ||
| 716 | + var cashPoolRepository domain.CashPoolRepository | ||
| 717 | + if value, err := factory.CreateCashPoolRepository(map[string] interface{} { | ||
| 718 | + "transactionContext": transactionContext, | ||
| 719 | + }); err != nil { | ||
| 720 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 721 | + } else { | ||
| 722 | + cashPoolRepository = value | ||
| 723 | + } | ||
| 724 | + // 获取现金池 | ||
| 725 | + _, cashPools, err := cashPoolRepository.Find(map[string]interface{}{ | ||
| 726 | + "companyId": activity.CompanyId, | ||
| 727 | + }) | ||
| 728 | + if err != nil { | ||
| 729 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 730 | + } | ||
| 731 | + if cashPools == nil { | ||
| 732 | + return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activity.CompanyId))) | ||
| 733 | + } | ||
| 734 | + // 平均兑换汇率 | ||
| 735 | + var newRate float64 | ||
| 736 | + if systemExchangedSuMoney == 0 { | ||
| 737 | + newRate = 0 | ||
| 738 | + } else { | ||
| 739 | + newRate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64) | ||
| 740 | + } | ||
| 741 | + // 更新现金池 | ||
| 742 | + updateCashPoolCommand := &command.UpdateCashPoolCommand{ | ||
| 743 | + CashPoolId: cashPools[0].CashPoolId, | ||
| 744 | + ExchangedCash: systemUnExchangeCash, | ||
| 745 | + UnExchangeCash: systemUnExchangeCash, | ||
| 746 | + Rate: newRate, | ||
| 747 | + } | ||
| 748 | + if err := cashPools[0].Update(tool_funs.SimpleStructToMap(updateCashPoolCommand)); err != nil { | ||
| 749 | + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) | ||
| 750 | + } | ||
| 751 | + cashPoolUpdated, err := cashPoolRepository.Save(cashPools[0]) | ||
| 752 | + if err != nil { | ||
| 753 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 754 | + } | ||
| 755 | + if cashPoolUpdated == nil { | ||
| 756 | + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | ||
| 757 | + } | ||
| 708 | if err := transactionContext.CommitTransaction(); err != nil { | 758 | if err := transactionContext.CommitTransaction(); err != nil { |
| 709 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 759 | return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 710 | } | 760 | } |
-
请 注册 或 登录 后发表评论