作者 陈志颖

fix:返回兑换活动时更新活动倒计时

@@ -51,18 +51,15 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co @@ -51,18 +51,15 @@ func (cashPoolService *CashPoolService) CreateCashPool(createCashPoolCommand *co
51 if systemSuMoneyStatistics == nil { 51 if systemSuMoneyStatistics == nil {
52 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") 52 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
53 } 53 }
54 -  
55 systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) 54 systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64)
56 systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64) 55 systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64)
57 systemCashStatistics, err := employeeDao.CalculateSystemCash(createCashPoolCommand.CompanyId) 56 systemCashStatistics, err := employeeDao.CalculateSystemCash(createCashPoolCommand.CompanyId)
58 -  
59 if err != nil { 57 if err != nil {
60 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 58 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
61 } 59 }
62 if systemCashStatistics == nil { 60 if systemCashStatistics == nil {
63 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") 61 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
64 } 62 }
65 -  
66 systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64) 63 systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64)
67 systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64) 64 systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64)
68 var cashPoolRepository domain.CashPoolRepository 65 var cashPoolRepository domain.CashPoolRepository
@@ -268,12 +265,12 @@ func (cashPoolService *CashPoolService) ListExchangeCashActivity(listExchangeCas @@ -268,12 +265,12 @@ func (cashPoolService *CashPoolService) ListExchangeCashActivity(listExchangeCas
268 } else { 265 } else {
269 exchangeActivityRepository = value 266 exchangeActivityRepository = value
270 } 267 }
271 -  
272 - // TODO 需要更新兑换活动结束倒计时  
273 -  
274 if count, activities, err := exchangeActivityRepository.Find(tool_funs.SimpleStructToMap(listExchangeCashActivityQuery)); err != nil { 268 if count, activities, err := exchangeActivityRepository.Find(tool_funs.SimpleStructToMap(listExchangeCashActivityQuery)); err != nil {
275 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 269 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
276 } else { 270 } else {
  271 + // TODO 需要更新兑换活动结束倒计时
  272 +
  273 +
277 if err := transactionContext.CommitTransaction(); err != nil { 274 if err := transactionContext.CommitTransaction(); err != nil {
278 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 275 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
279 } 276 }
@@ -347,21 +344,56 @@ func (cashPoolService *CashPoolService) GetExchangeCashActivity(getExchangeCashA @@ -347,21 +344,56 @@ func (cashPoolService *CashPoolService) GetExchangeCashActivity(getExchangeCashA
347 } else { 344 } else {
348 exchangeCashActivityRepository = value 345 exchangeCashActivityRepository = value
349 } 346 }
350 -  
351 - // TODO 需要更新兑换活动结束倒计时  
352 -  
353 - activity, err := exchangeCashActivityRepository.FindOne(map[string]interface{}{"exchangeCashActivityId": getExchangeCashActivityQuery.ExchangeCashActivityId}) 347 + // 需要更新兑换活动结束倒计时
  348 + activity, err := exchangeCashActivityRepository.FindOne(map[string]interface{}{"activityId": getExchangeCashActivityQuery.ExchangeCashActivityId})
354 if err != nil { 349 if err != nil {
355 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 350 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
356 } 351 }
357 if activity == nil { 352 if activity == nil {
358 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getExchangeCashActivityQuery.ExchangeCashActivityId))) 353 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getExchangeCashActivityQuery.ExchangeCashActivityId)))
  354 + }
  355 + var timeNow = time.Now()
  356 + var deadline = activity.Deadline
  357 + var t1 = time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 0, 0, 0, 0, time.Local)
  358 + var t2 = time.Date(deadline.Year(), deadline.Month(), deadline.Day(), 0, 0, 0, 0, time.Local)
  359 + updateExchangeCashActivity := &command.UpdateExchangeCashActivityCommand {
  360 + ExchangeCashActivityId: activity.ActivityId,
  361 + //ExchangeActivityName: activity.ExchangeActivityName,
  362 + //Deadline: activity.Deadline,
  363 + CountDown: int64(t2.Sub(t1).Hours() / 24),
  364 + //ExchangedSuMoney: activity.ExchangedSuMoney,
  365 + //ExchangedCash: activity.ExchangedCash,
  366 + //ExchangeRate: activity.Rate,
  367 + }
  368 + if err := activity.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivity)); err != nil {
  369 + return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
  370 + }
  371 + activityFound, err := exchangeCashActivityRepository.Save(activity)
  372 + if err != nil {
  373 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  374 + }
  375 + // 返回兑换现金活动
  376 + if activityFound == nil {
  377 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
359 } else { 378 } else {
360 if err := transactionContext.CommitTransaction(); err != nil { 379 if err := transactionContext.CommitTransaction(); err != nil {
361 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 380 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
362 } 381 }
363 - return activity, nil 382 + return activityFound, nil
364 } 383 }
  384 + // 返回兑换现金活动
  385 + //activityFound, err := exchangeCashActivityRepository.FindOne(map[string]interface{}{"exchangeCashActivityId": getExchangeCashActivityQuery.ExchangeCashActivityId})
  386 + //if err != nil {
  387 + // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  388 + //}
  389 + //if activityFound == nil {
  390 + // return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(getExchangeCashActivityQuery.ExchangeCashActivityId)))
  391 + //} else {
  392 + // if err := transactionContext.CommitTransaction(); err != nil {
  393 + // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  394 + // }
  395 + // return activityFound, nil
  396 + //}
365 } 397 }
366 398
367 // 更新兑换现金活动,名称,截止日期、汇率 399 // 更新兑换现金活动,名称,截止日期、汇率
@@ -379,6 +411,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -379,6 +411,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
379 defer func() { 411 defer func() {
380 transactionContext.RollbackTransaction() 412 transactionContext.RollbackTransaction()
381 }() 413 }()
  414 + // 更新兑换活动
382 var exchangeCashActivityRepository domain.ExchangeActivityRepository 415 var exchangeCashActivityRepository domain.ExchangeActivityRepository
383 if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{ 416 if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{
384 "transactionContext": transactionContext, 417 "transactionContext": transactionContext,
@@ -397,7 +430,9 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -397,7 +430,9 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
397 if err := activity.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivityCommand)); err != nil { 430 if err := activity.Update(tool_funs.SimpleStructToMap(updateExchangeCashActivityCommand)); err != nil {
398 return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error()) 431 return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
399 } 432 }
  433 + // 更新兑换活动兑换汇率
400 if updateExchangeCashActivityCommand.ExchangeRate != 0 { 434 if updateExchangeCashActivityCommand.ExchangeRate != 0 {
  435 + // 获取当前现金池
401 var cashPoolRepository domain.CashPoolRepository 436 var cashPoolRepository domain.CashPoolRepository
402 if value, err := factory.CreateCashPoolRepository(map[string] interface{} { 437 if value, err := factory.CreateCashPoolRepository(map[string] interface{} {
403 "transactionContext": transactionContext, 438 "transactionContext": transactionContext,
@@ -415,7 +450,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -415,7 +450,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
415 if cashPools == nil { 450 if cashPools == nil {
416 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activity.CompanyId))) 451 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(activity.CompanyId)))
417 } 452 }
418 - // 修改汇率时判断兑换活动清单中现金总金额是否超过平台未兑换现金值 453 + // 判断兑换活动清单中现金总金额是否超过平台未兑换现金值
419 var cashPoolDao *dao.CashPoolDao 454 var cashPoolDao *dao.CashPoolDao
420 if value, err := factory.CreateCashPoolDao(map[string]interface{}{ 455 if value, err := factory.CreateCashPoolDao(map[string]interface{}{
421 "transactionContext": transactionContext, 456 "transactionContext": transactionContext,
@@ -429,13 +464,13 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -429,13 +464,13 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
429 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 464 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
430 } 465 }
431 if activitySuMoneyStatistics == nil { 466 if activitySuMoneyStatistics == nil {
432 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") 467 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业")
433 } 468 }
434 activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64) 469 activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64)
435 if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPools[0].UnExchangeCash { 470 if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > cashPools[0].UnExchangeCash {
436 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金") 471 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
437 } 472 }
438 - // 计算系统平均兑换汇率 473 + // 计算系统平均兑换汇率并更新现金池
439 var employeeDao *dao.EmployeeDao 474 var employeeDao *dao.EmployeeDao
440 if value, err := factory.CreateEmployeeDao(map[string]interface{}{ 475 if value, err := factory.CreateEmployeeDao(map[string]interface{}{
441 "transactionContext": transactionContext, 476 "transactionContext": transactionContext,
@@ -452,7 +487,6 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -452,7 +487,6 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
452 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司") 487 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的公司")
453 } 488 }
454 systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64) 489 systemExchangedSuMoney := systemSuMoneyStatistics["systemExchangedSuMoney"].(float64)
455 - //systemUnExchangeSuMoney := systemSuMoneyStatistics["systemUnExchangeSuMoney"].(float64)  
456 systemCashStatistics, err := employeeDao.CalculateSystemCash(activity.CompanyId) 490 systemCashStatistics, err := employeeDao.CalculateSystemCash(activity.CompanyId)
457 if err != nil { 491 if err != nil {
458 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 492 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
@@ -462,14 +496,18 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -462,14 +496,18 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
462 } 496 }
463 systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64) 497 systemExchangedCash := systemCashStatistics["systemExchangedCash"].(float64)
464 systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64) 498 systemUnExchangeCash := systemCashStatistics["systemUnExchangeCash"].(float64)
465 - rate, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64) // 平均兑换汇率  
466 - // 更新现金池 499 + // 平均兑换汇率
  500 + var rate float64
  501 + if systemExchangedSuMoney == 0 {
  502 + rate = 0
  503 + } else {
  504 + rate, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", systemExchangedCash / systemExchangedSuMoney), 64)
  505 + }
  506 + // TODO 更新现金池
467 updateCashPoolCommand := &command.UpdateCashPoolCommand{ 507 updateCashPoolCommand := &command.UpdateCashPoolCommand{
468 CashPoolId: cashPools[0].CashPoolId, 508 CashPoolId: cashPools[0].CashPoolId,
469 - //ExchangedSuMoney: systemExchangedSuMoney,  
470 ExchangedCash: systemExchangedCash, 509 ExchangedCash: systemExchangedCash,
471 UnExchangeCash: systemUnExchangeCash, 510 UnExchangeCash: systemUnExchangeCash,
472 - //UnExchangeSuMoney: systemUnExchangeSuMoney,  
473 Rate: rate, 511 Rate: rate,
474 } 512 }
475 if err := cashPools[0].Update(tool_funs.SimpleStructToMap(updateCashPoolCommand)); err != nil { 513 if err := cashPools[0].Update(tool_funs.SimpleStructToMap(updateCashPoolCommand)); err != nil {
@@ -482,8 +520,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang @@ -482,8 +520,7 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashActivity(updateExchang
482 if cashPoolUpdated == nil { 520 if cashPoolUpdated == nil {
483 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 521 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
484 } 522 }
485 -  
486 - // TODO 更新兑换清单中已兑换现金值 523 + // TODO 批量更新兑换清单中已兑换现金值
487 524
488 } 525 }
489 526
@@ -621,11 +658,37 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC @@ -621,11 +658,37 @@ func (cashPoolService *CashPoolService) CreateExchangeCashPerson(createExchangeC
621 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(createExchangeCashPersonCommand.ExchangeCashActivityId))) 658 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(createExchangeCashPersonCommand.ExchangeCashActivityId)))
622 } 659 }
623 660
624 - // TODO 判断清单中现金总额超过现金池未兑换现金时创建失败,提示:“已超过投入现金池的未兑换现金” 661 + // 判断清单中现金总额超过平台未兑换现金
  662 + var cashPoolDao *dao.CashPoolDao
  663 + if value, err := factory.CreateCashPoolDao(map[string]interface{}{
  664 + "transactionContext": transactionContext,
  665 + }); err != nil {
  666 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  667 + } else {
  668 + cashPoolDao = value
  669 + }
  670 + activitySuMoneyStatistics, err := cashPoolDao.CalculateActivityExchangedSuMoney(activityFound.CompanyId)
  671 + if err != nil {
  672 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  673 + }
  674 + if activitySuMoneyStatistics == nil {
  675 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业")
  676 + }
  677 + activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64)
  678 + var employeeDao *dao.EmployeeDao
  679 + if value, err := factory.CreateEmployeeDao(map[string]interface{}{
  680 + "transactionContext": transactionContext,
  681 + }); err != nil {
  682 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  683 + } else {
  684 + employeeDao = value
  685 + }
  686 + systemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId)
  687 + if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > systemCashStatistics["systemUnExchangeCash"].(float64) {
  688 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
  689 + }
625 690
626 // TODO 更新现金池 691 // TODO 更新现金池
627 - // 获取现金池  
628 - // 更新现金池  
629 692
630 if err := transactionContext.CommitTransaction(); err != nil { 693 if err := transactionContext.CommitTransaction(); err != nil {
631 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) 694 return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
@@ -721,6 +784,7 @@ func (cashPoolService *CashPoolService) RemoveExchangeCashPerson(removeExchangeC @@ -721,6 +784,7 @@ func (cashPoolService *CashPoolService) RemoveExchangeCashPerson(removeExchangeC
721 defer func() { 784 defer func() {
722 transactionContext.RollbackTransaction() 785 transactionContext.RollbackTransaction()
723 }() 786 }()
  787 + // 移除兑换素币清单
724 var exchangeCashPersonListRepository domain.ExchangeCashPersonListRepository 788 var exchangeCashPersonListRepository domain.ExchangeCashPersonListRepository
725 if value, err := factory.CreateExchangeCashPersonListRepository(map[string]interface{}{ 789 if value, err := factory.CreateExchangeCashPersonListRepository(map[string]interface{}{
726 "transactionContext": transactionContext, 790 "transactionContext": transactionContext,
@@ -736,12 +800,11 @@ func (cashPoolService *CashPoolService) RemoveExchangeCashPerson(removeExchangeC @@ -736,12 +800,11 @@ func (cashPoolService *CashPoolService) RemoveExchangeCashPerson(removeExchangeC
736 if person == nil { 800 if person == nil {
737 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeExchangeCashPersonCommand.ListId))) 801 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(removeExchangeCashPersonCommand.ListId)))
738 } 802 }
739 - // 移除兑换素币清单  
740 personDeleted, err := exchangeCashPersonListRepository.Remove(person) 803 personDeleted, err := exchangeCashPersonListRepository.Remove(person)
741 if err != nil { 804 if err != nil {
742 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 805 return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
743 } 806 }
744 - // 生成素币流水,更新个人素币 807 + // 生成素币流水,还原个人素币值
745 var operationSuMoneyService service.OperationSuMoneyService 808 var operationSuMoneyService service.OperationSuMoneyService
746 if value, err := factory.CreateOperationSuMoneyService(map[string]interface{}{ 809 if value, err := factory.CreateOperationSuMoneyService(map[string]interface{}{
747 "transactionContext": transactionContext, 810 "transactionContext": transactionContext,
@@ -764,7 +827,7 @@ func (cashPoolService *CashPoolService) RemoveExchangeCashPerson(removeExchangeC @@ -764,7 +827,7 @@ func (cashPoolService *CashPoolService) RemoveExchangeCashPerson(removeExchangeC
764 if task == nil { 827 if task == nil {
765 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(operationSuMoneyCommand.Uid))) 828 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(operationSuMoneyCommand.Uid)))
766 } 829 }
767 - // 更新兑换活动 830 + // 更新兑换活动兑换情况
768 var exchangeCashActivityRepository domain.ExchangeActivityRepository 831 var exchangeCashActivityRepository domain.ExchangeActivityRepository
769 if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{ 832 if value, err := factory.CreateExchangeCashActivityRepository(map[string]interface{}{
770 "transactionContext": transactionContext, 833 "transactionContext": transactionContext,
@@ -878,8 +941,35 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC @@ -878,8 +941,35 @@ func (cashPoolService *CashPoolService) UpdateExchangeCashPerson(updateExchangeC
878 if activityUpdated == nil { 941 if activityUpdated == nil {
879 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashActivityCommand.ExchangeCashActivityId))) 942 return nil, application.ThrowError(application.RES_NO_FIND_ERROR, fmt.Sprintf("%s", string(updateExchangeCashActivityCommand.ExchangeCashActivityId)))
880 } 943 }
881 -  
882 - // TODO 判断现金池未兑换现金 944 + // 判断是否超过平台未兑换现金
  945 + var cashPoolDao *dao.CashPoolDao
  946 + if value, err := factory.CreateCashPoolDao(map[string]interface{}{
  947 + "transactionContext": transactionContext,
  948 + }); err != nil {
  949 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  950 + } else {
  951 + cashPoolDao = value
  952 + }
  953 + activitySuMoneyStatistics, err := cashPoolDao.CalculateActivityExchangedSuMoney(activityFound.CompanyId)
  954 + if err != nil {
  955 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  956 + }
  957 + if activitySuMoneyStatistics == nil {
  958 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "无效的企业")
  959 + }
  960 + activitySuMoney := activitySuMoneyStatistics["activityExchangedSuMoney"].(float64)
  961 + var employeeDao *dao.EmployeeDao
  962 + if value, err := factory.CreateEmployeeDao(map[string]interface{}{
  963 + "transactionContext": transactionContext,
  964 + }); err != nil {
  965 + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  966 + } else {
  967 + employeeDao = value
  968 + }
  969 + systemCashStatistics, err := employeeDao.CalculateSystemCash(activityFound.CompanyId)
  970 + if activitySuMoney * updateExchangeCashActivityCommand.ExchangeRate > systemCashStatistics["systemUnExchangeCash"].(float64) {
  971 + return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, "已超过投入现金池的未兑换现金")
  972 + }
883 973
884 // TODO 更新现金池 974 // TODO 更新现金池
885 975