|
|
@@ -1013,4 +1013,132 @@ class TaskPartnerProfits
|
|
1013
|
1013
|
|
|
1014
|
1014
|
Db::name('user_sign_fugou')->insert($bill);
|
|
1015
|
1015
|
}
|
|
|
1016
|
+
|
|
|
1017
|
+ /**
|
|
|
1018
|
+ * 补发分红
|
|
|
1019
|
+ * @param Request $request
|
|
|
1020
|
+ * @return mixed
|
|
|
1021
|
+ */
|
|
|
1022
|
+ public function resendUnissued(Request $request)
|
|
|
1023
|
+ {
|
|
|
1024
|
+ $dividendLogId = $request->param('dividendLogId', 0);
|
|
|
1025
|
+ if (empty($dividendLogId)) {
|
|
|
1026
|
+ return app('json')->fail('无效记录ID');
|
|
|
1027
|
+ }
|
|
|
1028
|
+ /** @var DividendLogRepository $dividendLogRepository */
|
|
|
1029
|
+ $dividendLogRepository = app()->make(DividendLogRepository::class);
|
|
|
1030
|
+ $dividendLogEntity = $dividendLogRepository->getDividendLogEntityById($dividendLogId);
|
|
|
1031
|
+ if (empty($dividendLogEntity->getId())) {
|
|
|
1032
|
+ return app('json')->fail('无效记录');
|
|
|
1033
|
+ }
|
|
|
1034
|
+
|
|
|
1035
|
+ $dividendLogEntityByResend = DividendLogEntity::newInstance()
|
|
|
1036
|
+ ->setType($dividendLogEntity->getType())
|
|
|
1037
|
+ ->setStartTime($dividendLogEntity->getStartTime())
|
|
|
1038
|
+ ->setEndTime($dividendLogEntity->getEndTime())
|
|
|
1039
|
+ ->setPerformance($dividendLogEntity->getPerformance())
|
|
|
1040
|
+ ->setAbatement($dividendLogEntity->getAbatement())
|
|
|
1041
|
+ ->setAllocated($dividendLogEntity->getAllocated())
|
|
|
1042
|
+ ->setRule($dividendLogEntity->getRule())
|
|
|
1043
|
+ ->setExpected(bcsub($dividendLogEntity->getExpected(), $dividendLogEntity->getArrivalPoint(), 2))
|
|
|
1044
|
+ ->setFeeWaiverUids([])
|
|
|
1045
|
+ ->setResult($dividendLogEntity->getResult())
|
|
|
1046
|
+ ->setIsTest(DividendLogEnum::IS_TEST['No']['code'])
|
|
|
1047
|
+ ->setReissueId($dividendLogEntity->getId());
|
|
|
1048
|
+
|
|
|
1049
|
+ $startTime = $dividendLogEntity->getStartTime();
|
|
|
1050
|
+ $endTime = $dividendLogEntity->getEndTime();
|
|
|
1051
|
+ $performance = $dividendLogEntity->getPerformance();
|
|
|
1052
|
+ $weekRecord = $dividendLogEntity->getAllocated();
|
|
|
1053
|
+ $feeWaiverUids = $dividendLogEntity->getFeeWaiverUids();
|
|
|
1054
|
+ $feeWaiverUids = array_column($feeWaiverUids, 'uid');
|
|
|
1055
|
+ $redEnvelope = 0.00;
|
|
|
1056
|
+ if (!empty($dividendLogEntity->getAbatement())) {
|
|
|
1057
|
+ $abatement = json_decode($dividendLogEntity->getAbatement(), true);
|
|
|
1058
|
+ if (is_array($abatement)) {
|
|
|
1059
|
+ foreach ($abatement as $item) {
|
|
|
1060
|
+ if ($item['code'] == 'redEnvelope') {
|
|
|
1061
|
+ $redEnvelope = $item['number'] ?? 0.00;
|
|
|
1062
|
+ }
|
|
|
1063
|
+ }
|
|
|
1064
|
+ }
|
|
|
1065
|
+ }
|
|
|
1066
|
+
|
|
|
1067
|
+ $salesArr = $dividendLogEntity->getResult();
|
|
|
1068
|
+ foreach ($salesArr as $key => $value) {
|
|
|
1069
|
+ if (empty($value)) {
|
|
|
1070
|
+ continue;
|
|
|
1071
|
+ }
|
|
|
1072
|
+ if (count($value['dividerPeoplePv']) <= 0) {
|
|
|
1073
|
+ continue;
|
|
|
1074
|
+ }
|
|
|
1075
|
+ $fsMoneyNums = $value['fs_money_nums'];//中级合伙人级别,可分红的总佣金
|
|
|
1076
|
+ $maxValueAll = $value['maxValueAll'];//当前级别合伙人下面所有的双联盟业绩
|
|
|
1077
|
+ $sumOfOthersAll = $value['sumOfOthersAll'];//当前级别合伙人下面所有的小区(业绩小的部分)总业绩
|
|
|
1078
|
+
|
|
|
1079
|
+ //每人分红金额
|
|
|
1080
|
+ foreach ($value['dividerPeoplePv'] as $uid => $item) {
|
|
|
1081
|
+
|
|
|
1082
|
+
|
|
|
1083
|
+ $allAward = bcadd($item['myWeightMoney'], $item['myMixMoney'], 2);
|
|
|
1084
|
+ //90%给佣金,10给复购金
|
|
|
1085
|
+ $yj_90 = floor($allAward * 0.9 * 100) / 100;
|
|
|
1086
|
+ $fg_10 = floor($allAward * 0.1 * 100) / 100;
|
|
|
1087
|
+
|
|
|
1088
|
+ if (!in_array($uid, $feeWaiverUids)) {
|
|
|
1089
|
+ // $feeWaiverUids = $dividendLogEntity->getFeeWaiverUids() ?: [];
|
|
|
1090
|
+ // $feeWaiverUids[] = [
|
|
|
1091
|
+ // 'uid' => $uid,
|
|
|
1092
|
+ // 'remark' => '此次发放为补发,只发放上次未发放人员数据'
|
|
|
1093
|
+ // ];
|
|
|
1094
|
+ // $dividendLogEntity->setFeeWaiverUids($feeWaiverUids);
|
|
|
1095
|
+ continue;
|
|
|
1096
|
+ }
|
|
|
1097
|
+ $dividendLogEntity->setArrivalPoint(bcadd($dividendLogEntity->getArrivalPoint() ?: '0.00', $allAward, 2));
|
|
|
1098
|
+ $arrivalInfo = $dividendLogEntity->getArrivalInfo() ?: [];
|
|
|
1099
|
+ $arrivalInfo[$uid]['allAward'] = $allAward;
|
|
|
1100
|
+ $arrivalInfo[$uid]['orderInfo'] = [];
|
|
|
1101
|
+ $dividendLogEntity->setArrivalInfo($arrivalInfo);
|
|
|
1102
|
+
|
|
|
1103
|
+
|
|
|
1104
|
+ # code...
|
|
|
1105
|
+ Db::name("user")->where("uid", $uid)->inc("total_amount_old", $yj_90)->save();
|
|
|
1106
|
+ Db::name("user")->where("uid", $uid)->inc("amount_old", $yj_90)->save();//不用冻结金额和提现额度来限制佣金发放
|
|
|
1107
|
+ Db::name("user")->where("uid", $uid)->inc("brokerage_price", $yj_90)->save();
|
|
|
1108
|
+ Db::name("user")->where("uid", $uid)->inc("fugou", $fg_10)->save();
|
|
|
1109
|
+
|
|
|
1110
|
+ $this->change_user_log($uid, 'amount_old', 1, $yj_90, "member_award", "星级分红入账" . "-" . $value['title']);//释放佣金
|
|
|
1111
|
+
|
|
|
1112
|
+ // 入账记录
|
|
|
1113
|
+ $week_data = [];
|
|
|
1114
|
+ $week_data['user_id'] = $uid;
|
|
|
1115
|
+ $week_data['user_group'] = $value['user_group'];
|
|
|
1116
|
+ $week_data['start_time'] = $startTime;
|
|
|
1117
|
+ $week_data['end_time'] = $endTime;
|
|
|
1118
|
+ $week_data['performance'] = $performance;
|
|
|
1119
|
+ $week_data['red_envelope'] = $redEnvelope;
|
|
|
1120
|
+ $week_data['reality_performance'] = $weekRecord;
|
|
|
1121
|
+ $week_data['dividend_ratio'] = $value['profit_rate'];
|
|
|
1122
|
+ $week_data['dividend'] = $fsMoneyNums;
|
|
|
1123
|
+ $week_data['performance_part'] = $item['sumOfOthers'] ?? '0.00';
|
|
|
1124
|
+ $week_data['performance_part_all'] = $sumOfOthersAll;
|
|
|
1125
|
+ $week_data['part_money'] = $item['myMixMoney'];
|
|
|
1126
|
+ $week_data['performance_total'] = bcadd($item['maxValue'] ?? '0.00', $item['sumOfOthers'] ?? '0.00', 2);
|
|
|
1127
|
+ $week_data['performance_total_all'] = ($maxValueAll + $sumOfOthersAll);
|
|
|
1128
|
+ $week_data['total_money'] = $item['myWeightMoney'];
|
|
|
1129
|
+ $week_data['brokerage'] = $yj_90;
|
|
|
1130
|
+ $week_data['fugou'] = $fg_10;
|
|
|
1131
|
+ $week_data['radio'] = 2;
|
|
|
1132
|
+ $week_data['create_time'] = date('Y-m-d H:i:s');
|
|
|
1133
|
+ Db::name("partner_profit_records")->insert($week_data);
|
|
|
1134
|
+
|
|
|
1135
|
+ $this->bill_user_log111111($uid, "合伙人分佣", $yj_90, "合伙人分佣明细入账", 11);//联创分佣明细2.0系统
|
|
|
1136
|
+ $this->fugou_user_log($uid, $fg_10, 16, 1, 1);//复购金明细入账
|
|
|
1137
|
+ }
|
|
|
1138
|
+ }
|
|
|
1139
|
+ /** @var DividendLogRepository $dividendLogRepository */
|
|
|
1140
|
+ $dividendLogRepository = app()->make(DividendLogRepository::class);
|
|
|
1141
|
+ $dividendLogRepository->createByEntity($dividendLogEntityByResend);
|
|
|
1142
|
+ return app('json')->success($salesArr);
|
|
|
1143
|
+ }
|
|
1016
|
1144
|
}
|