diff --git a/crmeb/app/api/controller/v1/user/UserBillController.php b/crmeb/app/api/controller/v1/user/UserBillController.php index a9ba34c84..a55eedb96 100644 --- a/crmeb/app/api/controller/v1/user/UserBillController.php +++ b/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)); + } } diff --git a/crmeb/app/api/route/v1.php b/crmeb/app/api/route/v1.php index 6ef08c25c..86198a1bd 100644 --- a/crmeb/app/api/route/v1.php +++ b/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');//提现申请 diff --git a/crmeb/app/dao/order/StoreOrderDao.php b/crmeb/app/dao/order/StoreOrderDao.php index 4839de82b..ec7f61abb 100644 --- a/crmeb/app/dao/order/StoreOrderDao.php +++ b/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); }); } diff --git a/crmeb/app/model/order/StoreOrder.php b/crmeb/app/model/order/StoreOrder.php index 8419c2fae..0142c470c 100644 --- a/crmeb/app/model/order/StoreOrder.php +++ b/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); + } } diff --git a/crmeb/app/services/agent/DivisionServices.php b/crmeb/app/services/agent/DivisionServices.php index 0291df1f4..f333d7835 100644 --- a/crmeb/app/services/agent/DivisionServices.php +++ b/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']; } diff --git a/crmeb/app/services/user/UserBillServices.php b/crmeb/app/services/user/UserBillServices.php index b737e84e6..2ea8f9322 100644 --- a/crmeb/app/services/user/UserBillServices.php +++ b/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; + } }