作者 陈志颖

fix:个人素币判断、现金池现金判断

@@ -102,6 +102,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co @@ -102,6 +102,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co
102 if err != nil { 102 if err != nil {
103 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 103 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
104 } 104 }
  105 + cashPoolExchangeCash := cashPools[0].ExchangedCash
105 106
106 // 不存在现金池 107 // 不存在现金池
107 if count == 0 { // 新增现金池 108 if count == 0 { // 新增现金池
@@ -130,11 +131,11 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co @@ -130,11 +131,11 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co
130 return cashPool, nil 131 return cashPool, nil
131 } 132 }
132 } else { // 更新现金池 133 } else { // 更新现金池
133 - if createCashPoolCommand.Cash < cashPools[0].ExchangedCash { 134 + if createCashPoolCommand.Cash < cashPoolExchangeCash {
134 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "投入的现金值必须大于当前已兑换现金值") 135 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "投入的现金值必须大于当前已兑换现金值")
135 } 136 }
136 // 重新计算平均兑换汇率 137 // 重新计算平均兑换汇率
137 - newRate := cashPools[0].ExchangedCash / systemExchangedSuMoney 138 + newRate := cashPoolExchangeCash / systemExchangedSuMoney
138 139
139 // 获取上次兑换活动兑换汇率查询 140 // 获取上次兑换活动兑换汇率查询
140 var lastActivityRate float64 141 var lastActivityRate float64
@@ -158,7 +159,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co @@ -158,7 +159,7 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co
158 updateCashPoolCommand := &command.UpdateCashPoolCommand{ 159 updateCashPoolCommand := &command.UpdateCashPoolCommand{
159 CashPoolId: cashPools[0].CashPoolId, 160 CashPoolId: cashPools[0].CashPoolId,
160 Cash: createCashPoolCommand.Cash, 161 Cash: createCashPoolCommand.Cash,
161 - ExchangedCash: cashPools[0].ExchangedCash, 162 + ExchangedCash: cashPoolExchangeCash,
162 UnExchangeCash: cashPools[0].UnExchangeCash + (createCashPoolCommand.Cash - cashPools[0].Cash), 163 UnExchangeCash: cashPools[0].UnExchangeCash + (createCashPoolCommand.Cash - cashPools[0].Cash),
163 ExchangedSuMoney: systemExchangedSuMoney, 164 ExchangedSuMoney: systemExchangedSuMoney,
164 UnExchangeSuMoney: systemUnExchangeSuMoney, 165 UnExchangeSuMoney: systemUnExchangeSuMoney,
@@ -589,7 +590,7 @@ func (cashPoolService *CashPoolService) ListExchangeCashActivity(listExchangeCas @@ -589,7 +590,7 @@ func (cashPoolService *CashPoolService) ListExchangeCashActivity(listExchangeCas
589 // 更新兑换现金活动倒计时命令 590 // 更新兑换现金活动倒计时命令
590 updateExchangeCashActivity := &command.UpdateExchangeCashActivityCommand { 591 updateExchangeCashActivity := &command.UpdateExchangeCashActivityCommand {
591 ExchangeCashActivityId: activity.ActivityId, 592 ExchangeCashActivityId: activity.ActivityId,
592 - CountDown: int64(math.Ceil(t2.Sub(t1).Hours() / 24)), // 重新计算活动倒计时 593 + CountDown: int64(math.Ceil(t2.Sub(t1).Hours() / 24)),
593 Deadline: activity.Deadline.Local(), 594 Deadline: activity.Deadline.Local(),
594 ExchangedSuMoney: activity.ExchangedSuMoney, 595 ExchangedSuMoney: activity.ExchangedSuMoney,
595 ExchangedCash: activity.ExchangedCash, 596 ExchangedCash: activity.ExchangedCash,
@@ -870,13 +871,15 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -870,13 +871,15 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
870 return activityUpdated, nil 871 return activityUpdated, nil
871 } 872 }
872 } 873 }
  874 + cashPoolFoundUnExchangeCash := cashPoolsFound[0].UnExchangeCash
  875 + cashPoolFoundExchangedCash := cashPoolsFound[0].ExchangedCash
873 876
874 // 获取当前兑换活动汇率 877 // 获取当前兑换活动汇率
875 activityFoundRate := activityFound.Rate 878 activityFoundRate := activityFound.Rate
876 879
877 if updateExchangeCashActivityCommand.ExchangeRate != activityFoundRate && updateExchangeCashActivityCommand.ExchangeRate != 0 { // 更新兑换活动兑换汇率 880 if updateExchangeCashActivityCommand.ExchangeRate != activityFoundRate && updateExchangeCashActivityCommand.ExchangeRate != 0 { // 更新兑换活动兑换汇率
878 // 判断兑换活动清单中现金总金额是否超过平台未兑换现金值 881 // 判断兑换活动清单中现金总金额是否超过平台未兑换现金值
879 - if activityFound.ExchangedSuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPoolsFound[0].UnExchangeCash { 882 + if activityFound.ExchangedSuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPoolFoundUnExchangeCash {
880 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") 883 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
881 } 884 }
882 885
@@ -930,14 +933,14 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -930,14 +933,14 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
930 if systemExchangedSuMoney == 0 { 933 if systemExchangedSuMoney == 0 {
931 rate = 0 934 rate = 0
932 } else { 935 } else {
933 - rate = (cashPoolsFound[0].ExchangedCash + (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash)) / systemExchangedSuMoney 936 + rate = (cashPoolFoundExchangedCash + (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash)) / systemExchangedSuMoney
934 } 937 }
935 938
936 // 更新现金池命令 939 // 更新现金池命令
937 updateCashPoolCommand := &command.UpdateCashPoolCommand{ 940 updateCashPoolCommand := &command.UpdateCashPoolCommand{
938 CashPoolId: cashPoolsFound[0].CashPoolId, 941 CashPoolId: cashPoolsFound[0].CashPoolId,
939 - ExchangedCash: cashPoolsFound[0].ExchangedCash + (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash),  
940 - UnExchangeCash: cashPoolsFound[0].UnExchangeCash - (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash) , 942 + ExchangedCash: cashPoolFoundExchangedCash + (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash),
  943 + UnExchangeCash: cashPoolFoundUnExchangeCash - (updateExchangeCashActivityCommand.ExchangedCash - activityFound.ExchangedCash) ,
941 ExchangedSuMoney: systemExchangedSuMoney, 944 ExchangedSuMoney: systemExchangedSuMoney,
942 UnExchangeSuMoney: systemUnExchangeSuMoney, 945 UnExchangeSuMoney: systemUnExchangeSuMoney,
943 Rate: rate, 946 Rate: rate,
@@ -1128,9 +1131,10 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC @@ -1128,9 +1131,10 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC
1128 if employeeFound == nil { 1131 if employeeFound == nil {
1129 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的员工") 1132 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的员工")
1130 } 1133 }
  1134 + employeeFoundSuMoney := employeeFound.SuMoney
1131 1135
1132 // 判断该员工兑换的素币是否超过本人持有的素币 1136 // 判断该员工兑换的素币是否超过本人持有的素币
1133 - if employeeFound.SuMoney < updateExchangeCashPersonCommand.ExchangedSuMoney { 1137 + if employeeFoundSuMoney < updateExchangeCashPersonCommand.ExchangedSuMoney {
1134 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "当前兑换素币超过本人持有的素币值") 1138 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "当前兑换素币超过本人持有的素币值")
1135 } 1139 }
1136 1140
@@ -1224,8 +1228,10 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC @@ -1224,8 +1228,10 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC
1224 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activityFound.CompanyId))) 1228 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activityFound.CompanyId)))
1225 } 1229 }
1226 1230
  1231 + cashPoolFoundUnExchangeCash := cashPoolsFound[0].UnExchangeCash
  1232 +
1227 // 判断是否超过平台未兑换现金 1233 // 判断是否超过平台未兑换现金
1228 - if activityUpdated.ExchangedSuMoney * activityUpdated.Rate > cashPoolsFound[0].UnExchangeCash { 1234 + if activityUpdated.ExchangedSuMoney * activityUpdated.Rate > cashPoolFoundUnExchangeCash {
1229 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") 1235 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
1230 } 1236 }
1231 1237
@@ -2217,6 +2223,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC @@ -2217,6 +2223,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC
2217 if employeeFound == nil { 2223 if employeeFound == nil {
2218 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的员工") 2224 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的员工")
2219 } 2225 }
  2226 + employeeFoundSuMoney := employeeFound.SuMoney
2220 2227
2221 // 判断当前员工是否已经存在兑换素币清单中 2228 // 判断当前员工是否已经存在兑换素币清单中
2222 if _, people, err := exchangeCashPersonListRepository.Find(map[string]interface{}{ 2229 if _, people, err := exchangeCashPersonListRepository.Find(map[string]interface{}{
@@ -2231,7 +2238,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC @@ -2231,7 +2238,7 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC
2231 } 2238 }
2232 2239
2233 // 判断该员工兑换的素币是否超过本人持有的素币 2240 // 判断该员工兑换的素币是否超过本人持有的素币
2234 - if employeeFound.SuMoney < createExchangeCashPersonCommand.ExchangedSuMoney { 2241 + if employeeFoundSuMoney < createExchangeCashPersonCommand.ExchangedSuMoney {
2235 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "当前兑换素币超过本人持有的素币值") 2242 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "当前兑换素币超过本人持有的素币值")
2236 } 2243 }
2237 2244
@@ -2309,9 +2316,10 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC @@ -2309,9 +2316,10 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC
2309 if len(cashPoolsFound) == 0 { 2316 if len(cashPoolsFound) == 0 {
2310 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, "当前现金池为空,请先投入现金") 2317 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, "当前现金池为空,请先投入现金")
2311 } 2318 }
  2319 + cashPoolFoundUnExchangeCash := cashPoolsFound[0].UnExchangeCash
2312 2320
2313 // 判断兑换活动的现金是否超过现金池未兑换现金 2321 // 判断兑换活动的现金是否超过现金池未兑换现金
2314 - if activityUpdated.ExchangedSuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPoolsFound[0].UnExchangeCash { 2322 + if activityUpdated.ExchangedSuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPoolFoundUnExchangeCash {
2315 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池未兑换现金") 2323 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池未兑换现金")
2316 } 2324 }
2317 2325