作者 陈志颖

fix:修复更新兑换活动汇率,现金池计算问题

@@ -727,6 +727,16 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -727,6 +727,16 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
727 } 727 }
728 728
729 if updateExchangeCashActivityCommand.ExchangeRate != 0 { // 更新兑换活动兑换汇率 729 if updateExchangeCashActivityCommand.ExchangeRate != 0 { // 更新兑换活动兑换汇率
  730 + // 增大汇率
  731 + if updateExchangeCashActivityCommand.ExchangeRate > activityFound.Rate {
  732 +
  733 + }
  734 +
  735 + // 减小汇率
  736 + if updateExchangeCashActivityCommand.ExchangeRate < activityFound.Rate {
  737 +
  738 + }
  739 +
730 // 获取当前公司现金池 740 // 获取当前公司现金池
731 _, cashPoolsFound, err := cashPoolRepository.Find(map[string]interface{}{ 741 _, cashPoolsFound, err := cashPoolRepository.Find(map[string]interface{}{
732 "companyId": activityFound.CompanyId, 742 "companyId": activityFound.CompanyId,
@@ -763,10 +773,11 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -763,10 +773,11 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
763 773
764 // 批量更新兑换清单,更新已兑换现金值 774 // 批量更新兑换清单,更新已兑换现金值
765 for _, personFound := range peopleFound { 775 for _, personFound := range peopleFound {
  776 + personFoundExchangedSuMoney := personFound.ExchangedSuMoney
766 // 更新兑换清单命令 777 // 更新兑换清单命令
767 updateExchangeCashPerson := &command.UpdateExchangeCashPersonCommand { 778 updateExchangeCashPerson := &command.UpdateExchangeCashPersonCommand {
768 - ExchangedCash: updateExchangeCashActivityCommand.ExchangeRate * personFound.ExchangedSuMoney,  
769 - ExchangedSuMoney: personFound.ExchangedSuMoney, 779 + ExchangedCash: updateExchangeCashActivityCommand.ExchangeRate * personFoundExchangedSuMoney,
  780 + ExchangedSuMoney: personFoundExchangedSuMoney,
770 } 781 }
771 782
772 // 更新素币兑换清单 783 // 更新素币兑换清单
@@ -779,6 +790,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -779,6 +790,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
779 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 790 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
780 } 791 }
781 } 792 }
  793 +
782 // 获取平台素币状况 794 // 获取平台素币状况
783 systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(activityFound.CompanyId) 795 systemSuMoneyStatistics, err := employeeDao.CalculateSystemSuMoney(activityFound.CompanyId)
784 if err != nil { 796 if err != nil {
@@ -801,22 +813,26 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -801,22 +813,26 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
801 systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64) 813 systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64)
802 systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64) 814 systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64)
803 815
  816 + // 更新兑换活动命令已兑换现金
  817 + updateExchangeCashActivityCommand.ExchangedCash = updateExchangeCashActivityCommand.ExchangeRate * activityFound.ExchangedSuMoney
  818 +
804 // 计算平均兑换汇率 819 // 计算平均兑换汇率
805 var rate float64 820 var rate float64
806 if systemExchangedSuMoney == 0 { 821 if systemExchangedSuMoney == 0 {
807 rate = 0 822 rate = 0
808 } else { 823 } else {
809 - rate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64) 824 + rate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", (systemExchangedCash + (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash)) / systemExchangedSuMoney), 64)
810 } 825 }
811 826
812 // 更新现金池命令 827 // 更新现金池命令
813 updateCashPoolCommand := &command.UpdateCashPoolCommand{ 828 updateCashPoolCommand := &command.UpdateCashPoolCommand{
814 CashPoolId: cashPoolsFound[0].CashPoolId, 829 CashPoolId: cashPoolsFound[0].CashPoolId,
815 - ExchangedCash: systemUnExchangeCash,  
816 - UnExchangeCash: systemUnExchangeCash, 830 + ExchangedCash: systemExchangedCash + (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash),
  831 + UnExchangeCash: systemUnExchangeCash - (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash) ,
817 ExchangedSuMoney: systemExchangedSuMoney, 832 ExchangedSuMoney: systemExchangedSuMoney,
818 UnExchangeSuMoney: systemUnExchangeSuMoney, 833 UnExchangeSuMoney: systemUnExchangeSuMoney,
819 Rate: rate, 834 Rate: rate,
  835 + Cash: cashPoolsFound[0].Cash,
820 } 836 }
821 837
822 // 更新现金池 838 // 更新现金池
@@ -832,10 +848,6 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -832,10 +848,6 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
832 if cashPoolUpdated == nil { 848 if cashPoolUpdated == nil {
833 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 849 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
834 } 850 }
835 -  
836 - // 更新兑换活动命令已兑换现金  
837 - updateExchangeCashActivityCommand.ExchangedCash = updateExchangeCashActivityCommand.ExchangeRate * activityFound.ExchangedSuMoney  
838 -  
839 } else { // 未更新兑换活动汇率 851 } else { // 未更新兑换活动汇率
840 updateExchangeCashActivityCommand.ExchangedCash = activityFound.ExchangedCash 852 updateExchangeCashActivityCommand.ExchangedCash = activityFound.ExchangedCash
841 } 853 }
@@ -1110,14 +1122,12 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC @@ -1110,14 +1122,12 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC
1110 updateCashPoolCommand := &command.UpdateCashPoolCommand{ 1122 updateCashPoolCommand := &command.UpdateCashPoolCommand{
1111 CashPoolId: cashPoolsFound[0].CashPoolId, 1123 CashPoolId: cashPoolsFound[0].CashPoolId,
1112 Cash: cashPoolsFound[0].Cash, 1124 Cash: cashPoolsFound[0].Cash,
1113 - //CompanyId: cashPoolsFound[0].CompanyId,  
1114 ExchangedCash: cashPoolsFound[0].ExchangedCash + personSaved.ExchangedCash, 1125 ExchangedCash: cashPoolsFound[0].ExchangedCash + personSaved.ExchangedCash,
1115 UnExchangeCash: cashPoolsFound[0].UnExchangeCash - personSaved.ExchangedCash, 1126 UnExchangeCash: cashPoolsFound[0].UnExchangeCash - personSaved.ExchangedCash,
1116 ExchangedSuMoney: systemExchangedSuMoney, 1127 ExchangedSuMoney: systemExchangedSuMoney,
1117 UnExchangeSuMoney: systemUnExchangeSuMoney, 1128 UnExchangeSuMoney: systemUnExchangeSuMoney,
1118 Rate: newRate, 1129 Rate: newRate,
1119 LastRate: cashPoolsFound[0].LastRate, 1130 LastRate: cashPoolsFound[0].LastRate,
1120 - //CreateTime: time.Now(),  
1121 } 1131 }
1122 1132
1123 // 更新现金池 1133 // 更新现金池