正在显示
1 个修改的文件
包含
79 行增加
和
5 行删除
@@ -401,8 +401,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | @@ -401,8 +401,7 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | ||
401 | return nil, err | 401 | return nil, err |
402 | } | 402 | } |
403 | 403 | ||
404 | - //TODO /************************ 更新分红激励规则 **************************/ | ||
405 | - | 404 | + /************************ 更新分红激励规则 **************************/ |
406 | // 获取分红激励规则列表 | 405 | // 获取分红激励规则列表 |
407 | var dividendsIncentivesRulesFetched []*models.DividendsIncentivesRule | 406 | var dividendsIncentivesRulesFetched []*models.DividendsIncentivesRule |
408 | dividendsIncentivesRuleQuery := tx.Model(÷ndsIncentivesRulesFetched) | 407 | dividendsIncentivesRuleQuery := tx.Model(÷ndsIncentivesRulesFetched) |
@@ -485,14 +484,89 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | @@ -485,14 +484,89 @@ func (repository *CooperationContractRepository) Save(cooperationContract *domai | ||
485 | return nil, err | 484 | return nil, err |
486 | } | 485 | } |
487 | 486 | ||
488 | - //TODO /********************** 更新金额激励规则 **************************/ | ||
489 | - | ||
490 | - // 获取金额激励规则列表 | 487 | + /********************** 更新金额激励规则 **************************/ |
491 | var moneyIncentivesRulesFetched []*models.MoneyIncentivesRule | 488 | var moneyIncentivesRulesFetched []*models.MoneyIncentivesRule |
492 | moneyIncentivesRuleQuery := tx.Model(&moneyIncentivesRulesFetched) | 489 | moneyIncentivesRuleQuery := tx.Model(&moneyIncentivesRulesFetched) |
493 | if err := moneyIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContract.CooperationContractNumber).Select(); err != nil { | 490 | if err := moneyIncentivesRuleQuery.Where("cooperation_contract_number = ?", cooperationContract.CooperationContractNumber).Select(); err != nil { |
494 | return nil, err | 491 | return nil, err |
495 | } | 492 | } |
493 | + | ||
494 | + // 提取金额激励规则id | ||
495 | + var moneyIncentivesRuleIdsFetched []int64 | ||
496 | + for _, moneyIncentivesRule := range moneyIncentivesRulesFetched { | ||
497 | + moneyIncentivesRuleIdsFetched = append(moneyIncentivesRuleIdsFetched, moneyIncentivesRule.MoneyIncentivesRuleId) | ||
498 | + } | ||
499 | + | ||
500 | + // 待更新金额激励规则 | ||
501 | + var moneyIncentivesRulesToUpdate []*domain.MoneyIncentivesRule | ||
502 | + // 待添加金额激励规则 | ||
503 | + var moneyIncentivesRulesToAdd []*domain.MoneyIncentivesRule | ||
504 | + for _, moneyIncentivesRule := range cooperationContract.MoneyIncentivesRules { | ||
505 | + if moneyIncentivesRule.MoneyIncentivesRuleId != 0 { | ||
506 | + moneyIncentivesRulesToUpdate = append(moneyIncentivesRulesToUpdate, moneyIncentivesRule) | ||
507 | + } else { | ||
508 | + moneyIncentivesRulesToAdd = append(moneyIncentivesRulesToAdd, moneyIncentivesRule) | ||
509 | + } | ||
510 | + } | ||
511 | + | ||
512 | + // 将待添加的金额激励规则领域模型转换为数据模型 | ||
513 | + var moneyIncentivesRulesToAddModels []*models.MoneyIncentivesRule | ||
514 | + for _, moneyIncentivesRuleDomain := range moneyIncentivesRulesToAdd { | ||
515 | + moneyIncentivesRulesToAddModels = append(moneyIncentivesRulesToAddModels, &models.MoneyIncentivesRule{ | ||
516 | + CooperationContractNumber: moneyIncentivesRuleDomain.CooperationContractNumber, | ||
517 | + MoneyIncentivesAmount: moneyIncentivesRuleDomain.MoneyIncentivesAmount, | ||
518 | + MoneyIncentivesStage: moneyIncentivesRuleDomain.MoneyIncentivesStage, | ||
519 | + MoneyIncentivesStageEnd: moneyIncentivesRuleDomain.MoneyIncentivesStageEnd, | ||
520 | + MoneyIncentivesStageStart: moneyIncentivesRuleDomain.MoneyIncentivesStageStart, | ||
521 | + MoneyIncentivesTime: moneyIncentivesRuleDomain.MoneyIncentivesTime, | ||
522 | + ReferrerPercentage: moneyIncentivesRuleDomain.ReferrerPercentage, | ||
523 | + SalesmanPercentage: moneyIncentivesRuleDomain.SalesmanPercentage, | ||
524 | + Org: moneyIncentivesRuleDomain.Org, | ||
525 | + Company: moneyIncentivesRuleDomain.Company, | ||
526 | + UpdatedAt: time.Time{}, | ||
527 | + DeletedAt: time.Time{}, | ||
528 | + CreatedAt: time.Now(), | ||
529 | + }) | ||
530 | + } | ||
531 | + // 添加金额激励规则 | ||
532 | + if _, err := tx.Model(&moneyIncentivesRulesToAddModels).Insert(); err != nil { | ||
533 | + return nil, err | ||
534 | + } | ||
535 | + | ||
536 | + // 待更新或者删除的ids | ||
537 | + var moneyIncentivesRulesToUpdateOrDeleteIds []int64 | ||
538 | + for _, moneyIncentivesRuleToUpdate := range moneyIncentivesRulesToUpdate { | ||
539 | + moneyIncentivesRulesToUpdateOrDeleteIds = append(moneyIncentivesRulesToUpdateOrDeleteIds, moneyIncentivesRuleToUpdate.MoneyIncentivesRuleId) | ||
540 | + } | ||
541 | + | ||
542 | + // 待更新的金额激励规则id | ||
543 | + moneyRuleIdsToUpdate := utils.Intersect(moneyIncentivesRuleIdsFetched, moneyIncentivesRulesToUpdateOrDeleteIds) | ||
544 | + var moneyRuleModelsToUpdate []*models.MoneyIncentivesRule | ||
545 | + for _, id := range moneyRuleIdsToUpdate { | ||
546 | + for _, moneyIncentivesRuleModel := range moneyIncentivesRulesFetched { | ||
547 | + if moneyIncentivesRuleModel.MoneyIncentivesRuleId == id { | ||
548 | + moneyRuleModelsToUpdate = append(moneyRuleModelsToUpdate, moneyIncentivesRuleModel) | ||
549 | + } | ||
550 | + } | ||
551 | + } | ||
552 | + if _, err := tx.Model(&moneyRuleModelsToUpdate).WherePK().Update(); err != nil { | ||
553 | + return nil, err | ||
554 | + } | ||
555 | + | ||
556 | + // 待删除的金额激励规则id | ||
557 | + moneyIncentivesRuleIdsToDelete := utils.Difference(moneyIncentivesRuleIdsFetched, moneyIncentivesRulesToUpdateOrDeleteIds) | ||
558 | + var moneyIncentivesRuleModelsToDelete []*models.MoneyIncentivesRule | ||
559 | + for _, id := range moneyIncentivesRuleIdsToDelete { | ||
560 | + for _, moneyIncentivesRuleModel := range moneyIncentivesRulesFetched { | ||
561 | + if moneyIncentivesRuleModel.MoneyIncentivesRuleId == id { | ||
562 | + moneyIncentivesRuleModelsToDelete = append(moneyIncentivesRuleModelsToDelete, moneyIncentivesRuleModel) | ||
563 | + } | ||
564 | + } | ||
565 | + } | ||
566 | + if _, err := tx.Model(&moneyIncentivesRuleModelsToDelete).WherePK().Delete(); err != nil { | ||
567 | + return nil, err | ||
568 | + } | ||
569 | + | ||
496 | } | 570 | } |
497 | return cooperationContract, nil | 571 | return cooperationContract, nil |
498 | } | 572 | } |
-
请 注册 或 登录 后发表评论