|
|
@@ -4,6 +4,7 @@ namespace app\api\controller\user;
|
|
|
|
|
|
use app\http\validates\user\AddressValidate;
|
|
|
use app\models\system\SystemCity;
|
|
|
+use app\models\user\UserSingleAward;
|
|
|
use app\models\user\UserVisit;
|
|
|
use think\db\exception\DataNotFoundException;
|
|
|
use think\db\exception\DbException;
|
|
|
@@ -611,4 +612,93 @@ class UserController
|
|
|
$puid = $request->post('puid/d', 0);
|
|
|
return app('json')->success(User::setSpread($puid, $request->uid()));
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 加权奖励
|
|
|
+ * @param Request $request
|
|
|
+ * @return void
|
|
|
+ * @throws DataNotFoundException
|
|
|
+ * @throws DbException
|
|
|
+ * @throws ModelNotFoundException
|
|
|
+ */
|
|
|
+ public function weighting(Request $request)
|
|
|
+ {
|
|
|
+ $start = strtotime('yesterday');
|
|
|
+ $end = strtotime('today');
|
|
|
+ $money = StoreOrder::where('paid', 1)->whereBetweenTime('add_time', $start, $end)->sum('pay_price'); // 全网业绩
|
|
|
+
|
|
|
+ $partner = sys_config('partner')/100;//合伙人比列
|
|
|
+ $shareholder = sys_config('shareholder')/100;//股东比列
|
|
|
+ $director = sys_config('director')/100;//董事比列
|
|
|
+ $user = User::where('level', '>=', 2)->select()->toArray();
|
|
|
+ if (!empty($user)) {
|
|
|
+ foreach ($user as $vo) {
|
|
|
+ $jl = 0;
|
|
|
+ if ($vo['level'] == 2) {
|
|
|
+ //合伙人
|
|
|
+ $jl += $money * $partner;// 合伙人加权奖励
|
|
|
+ $sp_jl = $money * $partner;// 合伙人上级奖励
|
|
|
+ } elseif ($vo['level'] == 3) {
|
|
|
+ //股东
|
|
|
+ $jl += $money * $partner;// 合伙人加权奖励
|
|
|
+ $jl += $money * $shareholder;// 股东加权奖励
|
|
|
+ } elseif ($vo['level'] == 4) {
|
|
|
+ //股东
|
|
|
+ $jl += $money * $partner;// 合伙人加权奖励
|
|
|
+ $jl += $money * $shareholder;// 股东加权奖励
|
|
|
+ $jl += $money * $director;// 董事加权奖励
|
|
|
+ }
|
|
|
+ $model = new UserSingleAward();
|
|
|
+ $award = $model->where('uid', $vo['uid'])->where('status', 0)->select()->toArray();
|
|
|
+ if ($award) {
|
|
|
+ $bdjl = 0; // 爆单剩余奖励
|
|
|
+ foreach ($award as &$item) {
|
|
|
+ $surplus = $item['money'] - $item['grant'];
|
|
|
+ if ($surplus < $jl) {
|
|
|
+ $bdjl += $surplus;
|
|
|
+ $jl -= $surplus;
|
|
|
+ $item['status'] = 1;
|
|
|
+ $item['grant'] = $item['money'];
|
|
|
+ } else {
|
|
|
+ $bdjl += $jl;
|
|
|
+ $item['grant'] += $jl;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $model->saveAll($award);
|
|
|
+ UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $bdjl, '', $vo['brokerage_price'] + $bdjl, '加权佣金奖励');
|
|
|
+ User::where('uid', $vo['uid'])->inc('brokerage_price', $bdjl)->update();
|
|
|
+
|
|
|
+ if ($vo['level'] == 2){
|
|
|
+ // 如果是合伙人
|
|
|
+ if ($vo['spread_uid']){
|
|
|
+ $spread = User::where('uid', $vo['spread_uid'])->where('level', '>=', 1)->find();
|
|
|
+ if ($spread){
|
|
|
+ $model = new UserSingleAward();
|
|
|
+ $award = $model->where('uid', $spread['uid'])->where('status', 0)->select()->toArray();
|
|
|
+ if ($award){
|
|
|
+ $bdjl = 0; // 爆单剩余奖励
|
|
|
+ foreach ($award as &$item){
|
|
|
+ $surplus = $item['money'] - $item['grant'];
|
|
|
+ if ($surplus < $sp_jl){
|
|
|
+ $bdjl += $surplus;
|
|
|
+ $sp_jl -= $surplus;
|
|
|
+ $item['status'] = 1;
|
|
|
+ $item['grant'] = $item['money'];
|
|
|
+ }else{
|
|
|
+ $bdjl += $sp_jl;
|
|
|
+ $item['grant'] += $sp_jl;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $model->saveAll($award);
|
|
|
+ UserBill::income('佣金', $spread['uid'], 'now_money', 'brokerage', $bdjl, '', $spread['brokerage_price']+$bdjl, '领导奖励');
|
|
|
+ User::where('uid', $spread['uid'])->inc('brokerage_price', $bdjl)->update();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ echo '发放成功';
|
|
|
+ }
|
|
|
}
|