|
|
@@ -549,15 +549,6 @@ class UserBillRepository extends BaseRepository
|
|
549
|
549
|
if (!empty($userIdList)) {
|
|
550
|
550
|
$userEntityMapByUid = $userRepository->getUserEntityMapByUidList($userIdList);
|
|
551
|
551
|
}
|
|
552
|
|
-
|
|
553
|
|
- // 获取所有用户是否有 共富身份
|
|
554
|
|
- /** @var SharedProsperityUserRepository $sharedProsperityUserRepository */
|
|
555
|
|
- $sharedProsperityUserRepository = app()->make(SharedProsperityUserRepository::class);
|
|
556
|
|
- $sharedProsperityUserEntityMapUserId = [];
|
|
557
|
|
- if (!empty($sharedProsperityUserIdList)) {
|
|
558
|
|
- $sharedProsperityUserEntityMapUserId = $sharedProsperityUserRepository->getSharedProsperityUserEntityMapByUserIdList($userIdList);
|
|
559
|
|
- }
|
|
560
|
|
-
|
|
561
|
552
|
// 获取实名认证 映射信息 (养老金记录 结算时 需要确定 所属人是否已经实名认证 如果实名认证了 需要推到养老金公证处明细表里 并修改养老金记录的推送状态)
|
|
562
|
553
|
/** @var UserCertificationEntity[] $userCertificationEntityMapByUid */
|
|
563
|
554
|
$userCertificationEntityMapByUid = [];
|
|
|
@@ -569,13 +560,7 @@ class UserBillRepository extends BaseRepository
|
|
569
|
560
|
/** @var GzcLogRepository $gzcLogRepository */
|
|
570
|
561
|
$gzcLogRepository = app()->make(GzcLogRepository::class);
|
|
571
|
562
|
|
|
572
|
|
- // 需要更新的 用户信息-基础信息- 会员身份信息
|
|
573
|
563
|
$updateUserEntityList = [];
|
|
574
|
|
- // 需要更新的 共富体系身份信息
|
|
575
|
|
- $updateSharedProsperityUserEntityList = [];
|
|
576
|
|
- // 共富区 佣金收入支出记录
|
|
577
|
|
- /** @var SharedProsperityBalanceLogEntity[] $insertSharedProsperityBalanceLogEntityList */
|
|
578
|
|
- $insertSharedProsperityBalanceLogEntityList = [];
|
|
579
|
564
|
$updateUserBillEntityList = [];
|
|
580
|
565
|
foreach ($userBillEntityList as $userBillEntity) {
|
|
581
|
566
|
if (empty($userBillEntity->getBillId()) || empty($userBillEntity->getUid())) {
|
|
|
@@ -586,16 +571,15 @@ class UserBillRepository extends BaseRepository
|
|
586
|
571
|
throw new ValidateException("该账单记录已更新,请勿重复操作({$userBillEntity->getBillId()})");
|
|
587
|
572
|
}
|
|
588
|
573
|
|
|
589
|
|
- // 判断用户是否存在
|
|
590
|
574
|
$userEntity = $userEntityMapByUid[$userBillEntity->getUid()];
|
|
591
|
575
|
if (empty($userEntity) || empty($userEntity->getUid())) {
|
|
592
|
576
|
throw new ValidateException("未查询到用户信息({$userBillEntity->getBillId()})");
|
|
593
|
577
|
}
|
|
594
|
578
|
|
|
595
|
|
- // 要更新的用户信息
|
|
596
|
|
- $updateUserEntity = null;
|
|
597
|
|
- // 要更新的 共富用户信息
|
|
598
|
|
- $updateSharedProsperityUserEntity = null;
|
|
|
579
|
+ // 更新 用户信息
|
|
|
580
|
+ /** @var UserEntity $updateUserEntity */
|
|
|
581
|
+ $updateUserEntity = $updateUserEntityList[$userEntity->getUid()] ?? UserEntity::newInstance();
|
|
|
582
|
+ $updateUserEntity->setUid($userEntity->getUid());
|
|
599
|
583
|
// 更新 账单 记录
|
|
600
|
584
|
/** @var UserBillEntity $updateUserBillEntity */
|
|
601
|
585
|
$updateUserBillEntity = $updateUserBillEntityList[$userBillEntity->getBillId()] ?? UserBillEntity::newInstance();
|
|
|
@@ -604,97 +588,27 @@ class UserBillRepository extends BaseRepository
|
|
604
|
588
|
->setBillId($userBillEntity->getBillId())
|
|
605
|
589
|
->setStatus(UserBillEnum::STATUS['VALID']['code'])
|
|
606
|
590
|
->setTakeTime(time());
|
|
607
|
|
- // 直推佣金 锁客佣金 平台奖励佣金 分享佣金
|
|
|
591
|
+
|
|
608
|
592
|
if (in_array($userBillEntity->getCommissionType(), [
|
|
609
|
593
|
UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code'],
|
|
610
|
594
|
UserBillEnum::COMMISSION_TYPE['LOCKED_CUSTOMER']['code'],
|
|
611
|
595
|
UserBillEnum::COMMISSION_TYPE['PLATFORM_REWARD']['code'],
|
|
612
|
596
|
UserBillEnum::COMMISSION_TYPE['SHARE_EARNINGS']['code']
|
|
613
|
597
|
])) {
|
|
614
|
|
- // 首先判断 是否有共富会员身份
|
|
615
|
|
- $sharedProsperityUserEntity = $sharedProsperityUserEntityMapUserId[$userBillEntity->getUid()] ?? null;
|
|
616
|
|
- // 如果拥有共富身份 并且非 会员专区 专属奖励 则发放到 共富身份中
|
|
617
|
|
- if (
|
|
618
|
|
- $userBillEntity->getMerId() != CommonEnum::DESIGN_MERCHANT_ID['MemberZone']['code']
|
|
619
|
|
- && !empty($sharedProsperityUserEntity)
|
|
620
|
|
- && $sharedProsperityUserEntity instanceof SharedProsperityUserEntity
|
|
621
|
|
- && !empty($sharedProsperityUserEntity->getId())
|
|
622
|
|
- ) {
|
|
623
|
|
- // 更新 共富用户信息
|
|
624
|
|
- /** @var SharedProsperityUserEntity $updateSharedProsperityUserEntity */
|
|
625
|
|
- $updateSharedProsperityUserEntity = $updateSharedProsperityUserEntityList[$userBillEntity->getUid()] ?? SharedProsperityUserEntity::newInstance();
|
|
626
|
|
- $updateSharedProsperityUserEntity
|
|
627
|
|
- ->setId($sharedProsperityUserEntity->getId())
|
|
628
|
|
- ->setUserId($sharedProsperityUserEntity->getUserId());
|
|
629
|
|
- // 佣金
|
|
630
|
|
- if (is_null($updateSharedProsperityUserEntity->getBalance())) {
|
|
631
|
|
- $updateSharedProsperityUserEntity->setBalance($sharedProsperityUserEntity->getBalance());
|
|
632
|
|
- }
|
|
633
|
|
-
|
|
634
|
|
- switch ($userBillEntity->getCommissionType()) {
|
|
635
|
|
- case UserBillEnum::COMMISSION_TYPE['DIRECT_REFERRAL']['code']:
|
|
636
|
|
- $sharedProsperityBalanceLogType = SharedProsperityBalanceLogEnum::TYPE['DIRECT_REFERRAL']['code'];
|
|
637
|
|
- break;
|
|
638
|
|
-
|
|
639
|
|
- case UserBillEnum::COMMISSION_TYPE['LOCKED_CUSTOMER']['code']:
|
|
640
|
|
- $sharedProsperityBalanceLogType = SharedProsperityBalanceLogEnum::TYPE['LOCKED_CUSTOMER']['code'];
|
|
641
|
|
- break;
|
|
642
|
|
-
|
|
643
|
|
- case UserBillEnum::COMMISSION_TYPE['PLATFORM_REWARD']['code']:
|
|
644
|
|
- $sharedProsperityBalanceLogType = SharedProsperityBalanceLogEnum::TYPE['PLATFORM_REWARD']['code'];
|
|
645
|
|
- break;
|
|
646
|
|
-
|
|
647
|
|
- case UserBillEnum::COMMISSION_TYPE['SHARE_EARNINGS']['code']:
|
|
648
|
|
- $sharedProsperityBalanceLogType = SharedProsperityBalanceLogEnum::TYPE['SHARE_EARNINGS']['code'];
|
|
649
|
|
- break;
|
|
650
|
|
-
|
|
651
|
|
- default:
|
|
652
|
|
- $sharedProsperityBalanceLogType = null;
|
|
653
|
|
- break;
|
|
654
|
|
- }
|
|
655
|
|
- $sharedProsperityBalanceLogEntity = SharedProsperityBalanceLogEntity::newInstance()
|
|
656
|
|
- ->setUserId($sharedProsperityUserEntity->getUserId())
|
|
657
|
|
- ->setType($sharedProsperityBalanceLogType)
|
|
658
|
|
- ->setLevel($sharedProsperityUserEntity->getPartnerLevel())
|
|
659
|
|
- ->setNumber($userBillEntity->getNumber())
|
|
660
|
|
- ->setStatus(SharedProsperityBalanceLogEnum::STATUS['VALID']['code'])
|
|
661
|
|
- ;
|
|
662
|
|
-
|
|
663
|
|
- // 更新用户 佣金 信息
|
|
664
|
|
- if ($userBillEntity->getPm() == UserBillEnum::PM['EXPEND']['code']) {
|
|
665
|
|
- if ($updateSharedProsperityUserEntity->getBalance() < $userBillEntity->getNumber()) {
|
|
666
|
|
- throw new ValidateException('用户佣金不足');
|
|
667
|
|
- }
|
|
668
|
|
- $updateSharedProsperityUserEntity->setBalance(bcsub($updateSharedProsperityUserEntity->getBalance(), $userBillEntity->getNumber(), 2));
|
|
669
|
|
-
|
|
670
|
|
- $sharedProsperityBalanceLogEntity->setPm(SharedProsperityBalanceLogEnum::PM['EXPEND']['code']);
|
|
671
|
|
- } else {
|
|
672
|
|
- $updateSharedProsperityUserEntity->setBalance(bcadd($updateSharedProsperityUserEntity->getBalance(), $userBillEntity->getNumber(), 2));
|
|
673
|
|
-
|
|
674
|
|
- $sharedProsperityBalanceLogEntity->setPm(SharedProsperityBalanceLogEnum::PM['INCOME']['code']);
|
|
|
598
|
+ // 直推奖
|
|
|
599
|
+ if (is_null($updateUserEntity->getBrokeragePrice())) {
|
|
|
600
|
+ $updateUserEntity->setBrokeragePrice($userEntity->getBrokeragePrice());
|
|
|
601
|
+ }
|
|
|
602
|
+ // 更新用户 佣金 信息
|
|
|
603
|
+ if ($userBillEntity->getPm() == UserBillEnum::PM['EXPEND']['code']) {
|
|
|
604
|
+ if ($updateUserEntity->getBrokeragePrice() < $userBillEntity->getNumber()) {
|
|
|
605
|
+ throw new ValidateException('用户佣金不足');
|
|
675
|
606
|
}
|
|
676
|
|
- // 插入 共富区 佣金记录 变动表
|
|
677
|
|
- $insertSharedProsperityBalanceLogEntityList[] = $sharedProsperityBalanceLogEntity
|
|
678
|
|
- ->setAfter($updateSharedProsperityUserEntity->getBalance());
|
|
|
607
|
+ $updateUserEntity->setBrokeragePrice(bcsub($updateUserEntity->getBrokeragePrice(), $userBillEntity->getNumber(), 2));
|
|
679
|
608
|
} else {
|
|
680
|
|
- // 更新 用户信息
|
|
681
|
|
- /** @var UserEntity $updateUserEntity */
|
|
682
|
|
- $updateUserEntity = $updateUserEntityList[$userEntity->getUid()] ?? UserEntity::newInstance();
|
|
683
|
|
- $updateUserEntity->setUid($userEntity->getUid());
|
|
684
|
|
- // 直推奖
|
|
685
|
|
- if (is_null($updateUserEntity->getBrokeragePrice())) {
|
|
686
|
|
- $updateUserEntity->setBrokeragePrice($userEntity->getBrokeragePrice());
|
|
687
|
|
- }
|
|
688
|
|
- // 更新用户 佣金 信息
|
|
689
|
|
- if ($userBillEntity->getPm() == UserBillEnum::PM['EXPEND']['code']) {
|
|
690
|
|
- if ($updateUserEntity->getBrokeragePrice() < $userBillEntity->getNumber()) {
|
|
691
|
|
- throw new ValidateException('用户佣金不足');
|
|
692
|
|
- }
|
|
693
|
|
- $updateUserEntity->setBrokeragePrice(bcsub($updateUserEntity->getBrokeragePrice(), $userBillEntity->getNumber(), 2));
|
|
694
|
|
- } else {
|
|
695
|
|
- $updateUserEntity->setBrokeragePrice(bcadd($updateUserEntity->getBrokeragePrice(), $userBillEntity->getNumber(), 2));
|
|
696
|
|
- }
|
|
|
609
|
+ $updateUserEntity->setBrokeragePrice(bcadd($updateUserEntity->getBrokeragePrice(), $userBillEntity->getNumber(), 2));
|
|
697
|
610
|
}
|
|
|
611
|
+
|
|
698
|
612
|
} else if ($userBillEntity->getCommissionType() == UserBillEnum::COMMISSION_TYPE['PENSION']['code']) {
|
|
699
|
613
|
|
|
700
|
614
|
if ($userBillEntity->getGzc() == UserBillEnum::GZC_STATUS['NOT_ENTERED']['code']) {
|
|
|
@@ -710,10 +624,7 @@ class UserBillRepository extends BaseRepository
|
|
710
|
624
|
$userBillEntity->getLinkId(),
|
|
711
|
625
|
$userBillEntity->getNumber()
|
|
712
|
626
|
);
|
|
713
|
|
- // 更新 用户信息
|
|
714
|
|
- /** @var UserEntity $updateUserEntity */
|
|
715
|
|
- $updateUserEntity = $updateUserEntityList[$userEntity->getUid()] ?? UserEntity::newInstance();
|
|
716
|
|
- $updateUserEntity->setUid($userEntity->getUid());
|
|
|
627
|
+
|
|
717
|
628
|
// 养老金
|
|
718
|
629
|
if (is_null($updateUserEntity->getAnnuity())) {
|
|
719
|
630
|
$updateUserEntity->setAnnuity($userEntity->getAnnuity());
|
|
|
@@ -734,12 +645,7 @@ class UserBillRepository extends BaseRepository
|
|
734
|
645
|
}
|
|
735
|
646
|
}
|
|
736
|
647
|
|
|
737
|
|
- if (!empty($updateUserEntity)) {
|
|
738
|
|
- $updateUserEntityList[$userEntity->getUid()] = $updateUserEntity;
|
|
739
|
|
- }
|
|
740
|
|
- if (!empty($updateSharedProsperityUserEntity)) {
|
|
741
|
|
- $updateSharedProsperityUserEntityList[$updateSharedProsperityUserEntity->getUserId()] = $updateSharedProsperityUserEntity;
|
|
742
|
|
- }
|
|
|
648
|
+ $updateUserEntityList[$userEntity->getUid()] = $updateUserEntity;
|
|
743
|
649
|
$updateUserBillEntityList[$userBillEntity->getBillId()] = $updateUserBillEntity;
|
|
744
|
650
|
}
|
|
745
|
651
|
if (!empty($updateUserEntityList)) {
|
|
|
@@ -750,21 +656,6 @@ class UserBillRepository extends BaseRepository
|
|
750
|
656
|
);
|
|
751
|
657
|
}
|
|
752
|
658
|
|
|
753
|
|
- if (!empty($updateSharedProsperityUserEntityList)) {
|
|
754
|
|
- $sharedProsperityUserRepository->batchUpdateSharedProsperityUserDataByDataList(
|
|
755
|
|
- array_map(function (SharedProsperityUserEntity $updateSharedProsperityUserEntity) {
|
|
756
|
|
- return $updateSharedProsperityUserEntity->toUnderlineArray();
|
|
757
|
|
- }, $updateSharedProsperityUserEntityList)
|
|
758
|
|
- );
|
|
759
|
|
- }
|
|
760
|
|
- if (!empty($insertSharedProsperityBalanceLogEntityList)) {
|
|
761
|
|
- /** @var SharedProsperityBalanceLogDao $balanceDao */
|
|
762
|
|
- $balanceDao = app()->make(SharedProsperityBalanceLogDao::class);
|
|
763
|
|
- $balanceDao->insertAll(array_map(function ($insertSharedProsperityBalanceLogEntity) {
|
|
764
|
|
- return $insertSharedProsperityBalanceLogEntity->toUnderlineArray();
|
|
765
|
|
- }, $insertSharedProsperityBalanceLogEntityList));
|
|
766
|
|
- }
|
|
767
|
|
-
|
|
768
|
659
|
if (!empty($updateUserBillEntityList)) {
|
|
769
|
660
|
$this->batchUpdateUserBillDataByDataList(
|
|
770
|
661
|
array_map(function (UserBillEntity $updateUserBillEntity) {
|