Commit 6cfb0f3a by 连敬荣

报价代码重构

parent 37406929
...@@ -4,6 +4,8 @@ namespace App\Http\Controllers; ...@@ -4,6 +4,8 @@ namespace App\Http\Controllers;
use App\Http\Utils\ApiCode; use App\Http\Utils\ApiCode;
use App\Http\Utils\AppType;
use App\Http\Utils\RequestHelper;
use App\map\InquiryMap; use App\map\InquiryMap;
use App\map\QuoteMap; use App\map\QuoteMap;
use App\Model\BestGoodsModel; use App\Model\BestGoodsModel;
...@@ -365,4 +367,156 @@ class SearchController extends Controller ...@@ -365,4 +367,156 @@ class SearchController extends Controller
return [ApiCode::API_CODE_SUCCESS, '成功', $list['data'], $list['total']]; return [ApiCode::API_CODE_SUCCESS, '成功', $list['data'], $list['total']];
} }
public function getQuoteList(Request $request, $export = '')
{
$quoteModel = new QuoteModel();
$input = $request->input();
$userInfo = $this->user();
$page = $input['page'];
$limit = $input['limit'];
$type = $input['type']; // 1-我的报价,2-所有报价,3-报价草稿,4-销售首页
$input['user_id'] = $userInfo['user_id'];//赋值用户信息
$input['user_name'] = $userInfo['user_name'];
$input['email'] = $userInfo['email'];
$map['inquiry_sn'] = isset($input['inquiry_sn']) ? trim($input['inquiry_sn']) : ''; // 询价单号
$map['goods_name'] = isset($input['goods_name']) ? trim($input['goods_name']) : ''; // 型号
$map['brand_name'] = isset($input['brand_name']) ? trim($input['brand_name']) : ''; // 品牌
$map['quote_sn'] = isset($input['quote_sn']) ? trim($input['quote_sn']) : ''; // 报价单号
$map['status'] = isset($input['status']) ? $input['status'] : ''; // 报价状态
$map['source'] = isset($input['source']) ? $input['source'] : ''; // 来源
$map['start_time'] = !empty($input['start_time']) ? strtotime($input['start_time']) : '';
$map['end_time'] = !empty($input['end_time']) ? strtotime($input['end_time']) + 86399 : '';
$map = array_filter($map) ? $map : [];
$field = [
'q.id',
'q.inquiry_id',
'q.inquiry_sn',
'q.inquiry_items_id',
'q.quote_sn',
'q.source',
'q.price_origin',
'q.price_rmb',
'q.price_other',
'q.currency',
'q.goods_name as quote_goods_name',
'q.brand_name as quote_brand_name',
'q.supplier_id',
'q.supplier_name',
'q.quote_number',
'q.status',
'q.create_uid',
'q.create_name',
'q.delivery_time',
'q.batch',
'q.create_time',
"q.tax_rate",
"q.mpq",
"q.moq",
"q.remark",
"q.expire_time",
'it.goods_name',
'it.brand_name',
'it.inquiry_number',
];
// if ($map) {
$list = $quoteModel->commonQuery($map, $input);
// } else {
// $list = $this->from('quote as q')
// ->join('inquiry_items as it', 'q.inquiry_items_id', '=', 'it.id');
// }
$map['create_uid'] = isset($input['create_uid']) ? $input['create_uid'] : ''; // 报价制单人
if ($type == 1) {
$list = $list->where('q.create_uid', $input['user_id'])->whereNotIn('q.status', [0, -1]); // 过滤报价草稿
// 如果是云芯的,过滤已删除状态
if (RequestHelper::getClientType() == AppType::APPTYPE_YUNXIN){
$list = $list->where('q.status', '<>', QuoteModel::STATUS_DEL);
}
} elseif ($type == 2) {
$perm = new PermController;
$role = $perm->getUserRole($input['user_id'], $input['email']); // 用户角色
if ($role == 4) { // 采购查看下级
$sub_sale_ids = $perm->getSubSaleId($input['user_id']);
$list = $list->whereIn('q.create_uid', $sub_sale_ids);
}
$list = $list->whereNotIn('q.status', [0, -1]); // 过滤报价草稿
} elseif ($type == 3) {
$list = $list->where('q.status', 0)->whereIn('q.inquiry_items_id', explode(',', $input['inquiry_items_ids']));
} elseif (@$input['inquiry_items_id'] > 0) {
$list = $list->whereNotIn('q.status', [0, -1])->where('q.inquiry_items_id', $input['inquiry_items_id']);
} elseif (isset($input['inquiry_items_ids']) && $input['inquiry_items_ids']) {
$inquiry_items_ids = explode(",", $input['inquiry_items_ids']);
$inquiry_items_ids = array_values(array_filter($inquiry_items_ids));
$list = $list->whereNotIn('q.status', [0, -1])->whereIn('q.inquiry_items_id', $inquiry_items_ids);
}
if ($map['create_uid']) { // 制单人
$list = $list->where('q.create_uid', $map['create_uid']);
}
$list = $list->select($field)->orderBy('id', 'desc');
// dump($list->getBindings());
// dump($list->toSql());
// $tmp = str_replace('?', '"'.'%s'.'"', $list->toSql());
// $tmp = vsprintf($tmp, $list->getBindings());
// echo $tmp;
// exit;
if ($export) {
$list = $list->get()->toArray();
if (empty($list)) {
echo '<script>alert("导出数据为空");history.go(-1);</script>';
die;
}
ExportLayui ($list);
} else {
$list = $list->paginate($limit, ['*'], 'page', $page)->toArray();
$list['data'] = $quoteModel->handleData($list['data'], $type);
$msg = '成功';
if ($type == 1) { // 我的报价
if (isset($map['status']) && $map['status']) {
switch($map['status']) {
case 1:
$list['count']['quoted_status'] = $quoteModel->commonQuery($map, $input, 2);
$list['count']['selected_status'] = 0;
$list['count']['confirmed_status'] = 0;
break;
case 2:
$list['count']['quoted_status'] = 0;
$list['count']['selected_status'] = $quoteModel->commonQuery($map, $input, 2);
$list['count']['confirmed_status'] = 0;
break;
case 3:
$list['count']['quoted_status'] = 0;
$list['count']['selected_status'] = 0;
$list['count']['confirmed_status'] = $quoteModel->commonQuery($map, $input, 2);
break;
}
} else {
$map['status'] = 1;
$list['count']['quoted_status'] = $quoteModel->commonQuery($map, $input, 2);
$map['status'] = 2;
$list['count']['selected_status'] = $quoteModel->commonQuery($map, $input, 2);
$map['status'] = 3;
$list['count']['confirmed_status'] = $quoteModel->commonQuery($map, $input, 2);
}
if (isset($list['count'])){
$msg = $list['count'];
}
}
// return [0, '获取成功', $list['data'], $list['total']];
ExportLayui ([ApiCode::API_CODE_SUCCESS, $msg, $list['data'], $list['total']]);
}
}
} }
\ No newline at end of file
...@@ -9,4 +9,5 @@ Route::Post('/ApiDeleteInquiryItems','DataController@deleteInquiryItemsDetail'); ...@@ -9,4 +9,5 @@ Route::Post('/ApiDeleteInquiryItems','DataController@deleteInquiryItemsDetail');
Route::Post('/ApiEditInquiry','DataController@creatInquiry');//新增询价; Route::Post('/ApiEditInquiry','DataController@creatInquiry');//新增询价;
Route::Post('/ApiUpdateOneItems','DataController@editInquiryItemDetail');//修改单条明细记录; Route::Post('/ApiUpdateOneItems','DataController@editInquiryItemDetail');//修改单条明细记录;
Route::Get('/ApiInquiryList','SearchController@getInquiryList');//询价列表; Route::Get('/ApiInquiryList','SearchController@getInquiryList');//询价列表;
Route::Post('/ApiInquiryListPool','SearchController@getInquiryListPool');//询价池; Route::Post('/ApiInquiryListPool','SearchController@getInquiryListPool');//询价池;
\ No newline at end of file Route::Post('/ApiQuoteList','SearchController@getQuoteList');//报价列表;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment