【程序目录】处理判断

This commit is contained in:
evoxwht 2022-05-05 12:05:17 +08:00
parent ec47994f61
commit 8b61254242
6 changed files with 94 additions and 8 deletions

View File

@ -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));
}
}

View File

@ -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');//提现申请

View File

@ -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);
});
}

View File

@ -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);
}
}

View File

@ -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'];
}

View File

@ -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;
}
}