Browse Source

【程序目录】处理判断

evoxwht 3 years ago
parent
commit
8b61254242

+ 11 - 0
crmeb/app/api/controller/v1/user/UserBillController.php

@@ -440,4 +440,15 @@ class UserBillController
         $uid = (int)$request->uid();
         return app('json')->success($this->services->brokerage_rank($uid, $data['type']));
     }
+
+    /**
+     * 事业部/代理商推广订单
+     * @param Request $request
+     * @return mixed
+     */
+    public function divisionOrder(Request $request)
+    {
+        $uid = (int)$request->uid();
+        return app('json')->successful($this->services->divisionOrder($uid));
+    }
 }

+ 1 - 0
crmeb/app/api/route/v1.php

@@ -181,6 +181,7 @@ Route::group(function () {
     Route::get('integral/list', 'v1.user.UserBillController/integral_list')->name('integralList');//积分记录
     Route::get('user/routine_code', 'v1.user.UserBillController/getRoutineCode')->name('getRoutineCode');//小程序二维码
     Route::get('user/spread_info', 'v1.user.UserBillController/getSpreadInfo')->name('getSpreadInfo');//获取分销背景等信息
+    Route::post('division/order', 'v1.user.UserBillController/divisionOrder')->name('divisionOrder');//事业部推广订单
     //提现类
     Route::get('extract/bank', 'v1.user.UserExtractController/bank')->name('extractBank');//提现银行/提现最低金额
     Route::post('extract/cash', 'v1.user.UserExtractController/cash')->name('extractCash');//提现申请

+ 0 - 2
crmeb/app/dao/order/StoreOrderDao.php

@@ -173,8 +173,6 @@ class StoreOrderDao extends BaseDao
             } else {
                 $query->where('refund_status', 0);
             }
-        })->when(isset($where['is_spread']), function ($query) {
-            $query->where('refund_status', 2);
         });
     }
 

+ 20 - 0
crmeb/app/model/order/StoreOrder.php

@@ -566,4 +566,24 @@ class StoreOrder extends BaseModel
             }
         }
     }
+
+    /**
+     * 事业部推广订单
+     * @param $query
+     * @param $value
+     */
+    public function searchDivisionIdAttr($query, $value)
+    {
+        if ($value !== '') $query->where('division_id', $value);
+    }
+
+    /**
+     * 代理商推广订单
+     * @param $query
+     * @param $value
+     */
+    public function searchAgentIdAttr($query, $value)
+    {
+        if ($value !== '') $query->where('agent_id', $value);
+    }
 }

+ 4 - 4
crmeb/app/services/agent/DivisionServices.php

@@ -392,14 +392,14 @@ class DivisionServices extends BaseServices
                     /** 员工直接下级 */
                     if ($isSelfBrokerage) {
                         $storeBrokerageOne = $storeBrokerageRatio;
-                        $storeBrokerageTwo = 0;
-                        $staffPercent = $staffInfo['division_percent'] - $storeBrokerageOne;
+                        $storeBrokerageTwo = $staffInfo['division_percent'] - $storeBrokerageOne;
+                        $staffPercent = 0;
                         $agentPercent = $agentInfo['division_percent'] - $staffInfo['division_percent'];
                         $divisionPercent = $divisionInfo['division_percent'] - $agentInfo['division_percent'];
                     } else {
-                        $storeBrokerageOne = 0;
+                        $storeBrokerageOne = $staffInfo['division_percent'];
                         $storeBrokerageTwo = 0;
-                        $staffPercent = $staffInfo['division_percent'];
+                        $staffPercent = 0;
                         $agentPercent = $agentInfo['division_percent'] - $staffInfo['division_percent'];
                         $divisionPercent = $divisionInfo['division_percent'] - $agentInfo['division_percent'];
                     }

+ 58 - 2
crmeb/app/services/user/UserBillServices.php

@@ -1189,9 +1189,9 @@ class UserBillServices extends BaseServices
         $storeOrderServices = app()->make(StoreOrderServices::class);
         [$page, $limit] = $this->getPageValue();
         $time = [];
-        $where = ['paid' => 1, 'type' => 1, 'spread_or_uid' => $uid, 'pid' => 0, 'is_spread' => 1];
+        $where = ['paid' => 1, 'type' => 1, 'spread_or_uid' => $uid, 'pid' => 0];
         $list = $storeOrderServices->getlist($where, ['id,order_id,uid,add_time,spread_uid,status,spread_two_uid,one_brokerage,two_brokerage,pay_price,pid'], $page, $limit, ['split']);
-        $result['count'] = $storeOrderServices->count($where + ['pid' => 0]);
+        $result['count'] = $storeOrderServices->count($where);
         $time_data = [];
         if ($list) {
             $uids = array_unique(array_column($list, 'uid'));
@@ -1240,4 +1240,60 @@ class UserBillServices extends BaseServices
                 return $this->dao->getGroupField($where, $rechargeSumField, $group);
         }
     }
+
+    /**
+     * 事业部/代理商订单
+     * @param $uid
+     * @return array
+     */
+    public function divisionOrder($uid)
+    {
+        /** @var UserServices $userService */
+        $userService = app()->make(UserServices::class);
+        /** @var StoreOrderServices $storeOrderServices */
+        $storeOrderServices = app()->make(StoreOrderServices::class);
+        $userInfo = $userService->getUserInfo($uid);
+        if (!$userInfo) {
+            throw new ValidateException('数据不存在');
+        }
+        $division_type = $userInfo['division_type'];
+        [$page, $limit] = $this->getPageValue();
+        $where = ['paid' => 1, 'type' => 1, 'pid' => 0];
+        if ($division_type == 1) {
+            $where = $where + ['division_id' => $uid];
+        } elseif ($division_type == 2) {
+            $where = $where + ['agent_id' => $uid];
+        }
+
+        $list = $storeOrderServices->getlist($where, ['id,order_id,uid,add_time,spread_uid,division_id,agent_id,status,spread_two_uid,one_brokerage,two_brokerage,agent_brokerage,division_brokerage,pay_price,pid'], $page, $limit, ['split']);
+        $result['count'] = $storeOrderServices->count($where);
+        $time_data = [];
+        if ($list) {
+            $uids = array_unique(array_column($list, 'uid'));
+            $userInfos = $userService->getColumn([['uid', 'in', $uids]], 'uid,avatar,nickname', 'uid');
+            foreach ($list as &$item) {
+                $item['avatar'] = $userInfos[$item['uid']]['avatar'] ?? '';
+                $item['nickname'] = $userInfos[$item['uid']]['nickname'] ?? '';
+                $item['time'] = $item['add_time'] ? date('Y-m-d H:i', $item['add_time']) : '';
+                $item['time_key'] = $item['add_time'] ? date('Y-m', $item['add_time']) : '';
+                $item['type'] = in_array($item['status'], [2, 3]) ? 'brokerage' : 'number';
+                if ($division_type == 1) {
+                    $item['number'] = $item['division_brokerage'];
+                } elseif ($division_type == 2) {
+                    $item['number'] = $item['agent_brokerage'];
+                }
+            }
+            $times = array_unique(array_column($list, 'time_key'));
+            $time_data = [];
+            $i = 0;
+            foreach ($times as $time) {
+                $time_data[$i]['time'] = $time;
+                $time_data[$i]['count'] = $storeOrderServices->getMonthCount($where + ['pid' => 0], $time);
+                $i++;
+            }
+        }
+        $result['list'] = $list;
+        $result['time'] = $time_data;
+        return $result;
+    }
 }