167 lines
4.7 KiB
PHP
167 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace app\controller;
|
|
|
|
use app\model\Customer;
|
|
use app\util\Util;
|
|
use config\constants\Constants;
|
|
use support\Log;
|
|
use support\Request;
|
|
|
|
class CustomerController
|
|
{
|
|
|
|
/**
|
|
* 客户分级
|
|
* @param Request $request
|
|
* @return \support\Response
|
|
*/
|
|
public function getGrade(Request $request)
|
|
{
|
|
$grade = [];
|
|
foreach (Constants::GRADE as $key => $value) {
|
|
$grade[] = [
|
|
'status' => $key,
|
|
'text' => $value,
|
|
];
|
|
}
|
|
return json($grade);
|
|
}
|
|
|
|
/**
|
|
* 客户偏好
|
|
* @param Request $request
|
|
* @return \support\Response
|
|
*/
|
|
public function getCarType(Request $request)
|
|
{
|
|
$grade = [];
|
|
foreach (Constants::GRADE as $key => $value) {
|
|
$grade[] = [
|
|
'status' => $key,
|
|
'text' => $value,
|
|
];
|
|
}
|
|
return json($grade);
|
|
}
|
|
|
|
/**
|
|
* 客户列表
|
|
* @param Request $request
|
|
* @return \support\Response
|
|
*/
|
|
public function list(Request $request)
|
|
{
|
|
|
|
$page = $request->input('page', 1);
|
|
$perPage = $request->input('per_page', 10);
|
|
|
|
$where = [];
|
|
|
|
$userId = $request->user['id'];
|
|
if (Util::isEmpty($userId)) {
|
|
return Util::fail(['user_id' => $userId], trans('user_none'));
|
|
}
|
|
if ($request->user['role'] != 1) {
|
|
$where['user_id'] = $userId;
|
|
}
|
|
|
|
// 执行分页查询
|
|
$data = Customer::where($where)
|
|
->orderBy('id', 'desc')
|
|
->paginate($perPage, ['*'], 'page', $page);
|
|
|
|
foreach ($data->items() as &$value) {
|
|
$value = Customer::getCustomer($value);
|
|
}
|
|
|
|
return Util::page($data);
|
|
}
|
|
|
|
/**
|
|
* 客户详情
|
|
* @param Request $request
|
|
* @return \support\Response
|
|
*/
|
|
public function detail(Request $request)
|
|
{
|
|
$id = Util::getParam($request, 'id');
|
|
if (Util::isEmpty($id)) {
|
|
return Util::fail([], 'id' . trans('not_null'));
|
|
}
|
|
|
|
$res = Customer::select('id', 'user_id', 'grade', 'channel_id','car_type_id', 'country_id', 'magnitude', 'email', 'phone', 'WhatsApp', 'contacts', 'describe')
|
|
->where('id', $id)
|
|
->first();
|
|
if ($res) {
|
|
$res->toArray();
|
|
} else {
|
|
return Util::fail([], '记录不存在');
|
|
}
|
|
|
|
$res = Customer::getCustomer($res);
|
|
|
|
return Util::success($res);
|
|
}
|
|
|
|
/**
|
|
* 客户录入
|
|
* @param Request $request
|
|
* @return \support\Response
|
|
*/
|
|
public function save(Request $request)
|
|
{
|
|
$id = Util::getParam($request, 'id');
|
|
$channel_id = Util::getParam($request, 'channel_id');
|
|
if (Util::isEmpty($channel_id)) {
|
|
return Util::fail([], 'channel_id' . trans('not_null'));
|
|
}
|
|
$country_id = Util::getParam($request, 'country_id');
|
|
if (Util::isEmpty($country_id)) {
|
|
// return Util::fail([],'country_id'.trans('not_null'));
|
|
}
|
|
$car_type_id = Util::getParam($request, 'car_type_id');
|
|
if (Util::isEmpty($car_type_id)) {
|
|
return Util::fail([], 'car_type_id' . trans('not_null'));
|
|
}
|
|
$contacts = Util::getParam($request, 'contacts');
|
|
$email = Util::getParam($request, 'email');
|
|
$phone = Util::getParam($request, 'phone');
|
|
if (Util::isEmpty($contacts) && Util::isEmpty($email) && Util::isEmpty($phone)) {
|
|
return Util::fail([], 'country_id' . trans('not_null'));
|
|
}
|
|
|
|
$data = [
|
|
'user_id' => $request->user['id'],
|
|
'grade' => Util::getParam($request, 'grade', 0),
|
|
'channel_id' => $channel_id,
|
|
'country_id' => $country_id,
|
|
'car_type_id' => $car_type_id,
|
|
'magnitude' => Util::getParam($request, 'magnitude', 0),
|
|
'email' => $email,
|
|
'phone' => $phone,
|
|
'WhatsApp' => Util::getParam($request, 'WhatsApp',''),
|
|
'contacts' => $contacts,
|
|
'describe' => Util::getParam($request, 'describe'),
|
|
'lat' => Util::getParam($request, 'lat',0),
|
|
'lng' => Util::getParam($request, 'lng',0),
|
|
'address' => Util::getParam($request, 'address',''),
|
|
];
|
|
|
|
if (Util::isEmpty($id)) {
|
|
$res = Customer::create($data);
|
|
} else {
|
|
$res = Customer::where('id', $id)
|
|
->update($data);
|
|
// Log::info('update', ['res' => $res]);
|
|
(!$res)?: $res=Customer::find($id)->toArray();
|
|
}
|
|
|
|
if ($res) {
|
|
return Util::success($res);
|
|
} else {
|
|
return Util::fail($res);
|
|
}
|
|
}
|
|
|
|
} |