提交 4b037388 authored 作者: 李大见's avatar 李大见
<?php
namespace App\Http\Controllers\Api\MobileWeb;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\Validators\Api\MobileWeb\BillingModuleValidator;
use BlueCity\Core\Inc\ErrorInc;
use App\Services\Api\MobileWeb\BillingModuleService;
// 移动端-账单列表
class BillingModuleController extends Controller
{
// 列表每页显示数据个数
protected $show_count = 10;
public function __construct()
{
$this->dataValidator = new BillingModuleValidator();
}
// 列表
public function index(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->indexValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = BillingModuleService::index($request->all(), $this->show_count);
return $return_data;
}
// 查看凭证
public function checkVoucher(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->checkInfoValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = BillingModuleService::checkVoucher($request->all());
return response()->json($return_data);
}
// 查看详情
public function checkInfo(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->checkInfoValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = BillingModuleService::checkInfo($request->all());
return response()->json($return_data);
}
// 确认账单
public function affirmBill(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->affirmBillValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = BillingModuleService::affirmBill($request->all());
return response()->json($return_data);
}
// 上传发票
public function uploadInvoice(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->uploadInvoiceValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = BillingModuleService::uploadInvoice($request->all());
return response()->json($return_data);
}
}
<?php
namespace App\Http\Controllers\Api\MobileWeb;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\Validators\Api\MobileWeb\LoginValidator;
use BlueCity\Core\Inc\ErrorInc;
use App\Services\Api\MobileWeb\LoginService;
use Illuminate\Support\Facades\Crypt;
class LoginController extends Controller
{
public function __construct()
{
$this->dataValidator = new LoginValidator();
}
// 登录
public function login(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->loginValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'data'=>[]]);
}
$return_data = LoginService::login($request->all());
return $return_data;
}
//退出
public function quit(Request $request)
{
return LoginService::quit($request->all());
}
}
<?php
namespace App\Http\Controllers\Api\MobileWeb;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\Validators\Api\MobileWeb\OrderListValidator;
use BlueCity\Core\Inc\ErrorInc;
use App\Services\Api\MobileWeb\OrderListService;
// 移动端-工单列表
class OrderListController extends Controller
{
// 列表每页显示数据个数
protected $show_count = 4;
public function __construct()
{
$this->dataValidator = new OrderListValidator();
}
// 列表
public function index(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->indexValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::index($request->all(), $this->show_count,1);
return $return_data;
}
// 接单
public function receiving(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->receivingStartValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$input = $request->all();
if($input['type']==1){
$return_data = OrderListService::getPerson($request->all(),$request['old_install_id']);
}
if($input['type']==2) {
$error_message = $this->dataValidator->receivingValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::receiving($request->all());
}
return response()->json($return_data);
}
// 拒单
public function refuse(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->refuseValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::refuse($request->all());
return response()->json($return_data);
}
// 检验
public function inspect(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->startInstallValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::inspect($request->all());
return response()->json($return_data);
}
// 开始安装
public function startInstall(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->startInstallValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::startInstall($request->all());
return response()->json($return_data);
}
// 安装反馈
public function installFeedback(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->installFeedbackValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::installFeedback($request->all());
return response()->json($return_data);
}
// 获取反馈信息
public function getFeedback(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->startInstallValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::getFeedback($request->all());
return response()->json($return_data);
}
// 详情
public function info(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->startInstallValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::info($request->all());
return response()->json($return_data);
}
// 获取技师
public function getInstallPerson(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->indexValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::getInstallPerson($request->all());
return response()->json($return_data);
}
// 获取标签
public function getLabel(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->indexValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::getLabel($request->all());
return response()->json($return_data);
}
// 获取操作记录
public function operatingRecord(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->operatingRecordValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::operatingRecord($request->all());
return response()->json($return_data);
}
// 图片反馈
public function imageFeedback(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->imageFeedbackValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::imageFeedback($request->all());
return response()->json($return_data);
}
// 车牌反馈
public function LicenseFeedback(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->LicenseFeedbackValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = OrderListService::LicenseFeedback($request->all());
return response()->json($return_data);
}
}
<?php
namespace App\Http\Controllers\Api\MobileWeb;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\Validators\Api\MobileWeb\ServiceEvaluationValidator;
use BlueCity\Core\Inc\ErrorInc;
use App\Services\Api\MobileWeb\ServiceEvaluationService;
// 移动端-账单列表
class ServiceEvaluationController extends Controller
{
// 列表每页显示数据个数
protected $show_count = 10;
public function __construct()
{
$this->dataValidator = new ServiceEvaluationValidator();
}
// 列表
public function index(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->indexValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'Data'=>[$error_message]]);
}
$return_data = ServiceEvaluationService::index($request->all(), $this->show_count);
return $return_data;
}
}
<?php
namespace App\Http\Controllers\Api\MobileWeb;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\Validators\Api\MobileWeb\TechnicianValidator;
use BlueCity\Core\Inc\ErrorInc;
use App\Services\Api\MobileWeb\TechnicianService;
// 移动端-技师管理
class TechnicianController extends Controller
{
// 列表每页显示数据个数
protected $show_count = 10;
public function __construct()
{
$this->dataValidator = new TechnicianValidator();
}
// 列表
public function index(Request $request)
{
$return_data = TechnicianService::index($request->all(), $this->show_count);
return $return_data;
}
// 技师新增
public function add(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->addValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'data'=>[$error_message]]);
}
$return_data = TechnicianService::add($request);
return response()->json($return_data);
}
// 技师编辑
public function edit(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->editShowValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'data'=>[$error_message]]);
}
if ($request['type'] == 1) {
$return_data = TechnicianService::editShow($request);
return response()->json($return_data);
}
// 编辑提交验证数据
$error_message = $this->dataValidator->addValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'data'=>[$error_message]]);
}
$return_data = TechnicianService::edit($request);
return response()->json($return_data);
}
// 修改密码
public function changePassword(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->changePasswordValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'data'=>[$error_message]]);
}
$return_data = TechnicianService::changePassword($request->all());
return response()->json($return_data);
}
// 删除
public function delete(Request $request)
{
// 验证数据
$error_message = $this->dataValidator->deleteValidator($request->all());
if ($error_message) {
return response()->json(['ErrorCode'=>ErrorInc::INVALID_PARAM, 'ErrorMessage'=>$error_message->first(), 'data'=>[$error_message]]);
}
$return_data = TechnicianService::delete($request->all());
return response()->json($return_data);
}
}
......@@ -60,5 +60,6 @@ class Kernel extends HttpKernel
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'requestpc'=>\App\Http\Middleware\RequestPcMiddleware::class,
'RequestApp'=>\App\Http\Middleware\RequestAppMiddleware::class,
'WebLogin'=>\App\Http\Middleware\WebLogin::class,
];
}
<?php
namespace App\Http\Middleware;
use Closure;
use DB;
use Illuminate\Support\Facades\Crypt;
class WebLogin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!$request->exists('api_token')){
return response()->json(["ErrorCode"=>300,'ErrorMessage'=>'api_token失效:检索码01,请重新登录!','data'=>'']);
}
if(!$request->exists('session_company_id')){
return response()->json(["ErrorCode"=>300,'ErrorMessage'=>'api_token失效:检索码05,请重新登录!','data'=>'']);
}
if(!$request->exists('session_install_id')){
return response()->json(["ErrorCode"=>300,'ErrorMessage'=>'api_token失效:检索码06,请重新登录!','data'=>'']);
}
$request['api_token_old'] = $request['api_token'];
// 解密api_token,如果不是系统生成的token会解密失败
try{
$api_token = Crypt::decrypt($request['api_token']);
}catch (\Exception $e){
return response()->json(["ErrorCode"=>300,'ErrorMessage'=>'api_token失效:检索码02,请重新登录!','data'=>'']);
}
// 拿到token获取登录表信息
$login_web = DB::table('login_web')
->where('api_token','=',$api_token)
->select('lowe_last_login','api_token','company_id','install_id','admin_id','user_type')
->first();
if(empty($login_web)){
return response()->json(["ErrorCode"=>300,'ErrorMessage'=>'api_token失效:检索码03,请重新登录!','data'=>'']);
}
// 当前时间
$hours = time();
// 如果最后登录时间小于当前时间,说明登陆过期
if($login_web['lowe_last_login'] < $hours){
return response()->json(["ErrorCode"=>300, 'ErrorMessage'=>'登陆过期,请重新登录', 'data'=>'']);
}
if($request['session_company_id'] !=$login_web['company_id'] || $request['session_install_id'] !=$login_web['install_id']){
return response()->json(["ErrorCode"=>300,'ErrorMessage'=>'api_token失效:检索码04,请重新登录!','data'=>'']);
}
$now_time = $hours + 10*60*60;
if ($now_time > $login_web['lowe_last_login']) {
// 每隔2个小时更新一次,降低更新次数,如果登录时间超过2个小时在操作就当前时间加12小时
DB::table('login_web')->where('api_token','=',$api_token)->update(['lowe_last_login'=>$hours + 12*60*60]);
}
$request['api_token'] = $api_token;//赋值解密后的token值
$session['user_type'] = $login_web['user_type'];//用户账号类型
$session['company_id'] = $login_web['company_id'];//公司id
$session['install_id'] = $login_web['install_id'];//操作人id
$session['admin_id'] = $login_web['admin_id'];//所属服务商id
$session['install_name'] = $login_web['install_name'];//操作人信息
$request['session'] = $session;
return $next($request);
}
}
<?php
namespace App\Http\Requests\Validators\Api\MobileWeb;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Validator;
// 移动端-账单列表
class BillingModuleValidator extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
// 列表验证器
public function indexValidator($data)
{
// 自定义错误消息
$messages = [
'admin_id.required' => '请输入服务商id',
'admin_id.integer' => '参数错误',
'type.required' => '请输入type值',
'type.max' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'admin_id' => 'required|integer|min:1',
'type' => [
'required',
Rule::in([1, 2]),
],
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 查看详情验证器
public function checkInfoValidator($data)
{
// 自定义错误消息
$messages = [
'admin_id.required' => '参数错误',
'stl_wat.required' => '请输入结算单号',
];
// 数据验证
$validator = Validator::make($data, [
'admin_id' => 'required|integer|min:1',
'stl_wat' => 'required',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 确认账单验证器
public function affirmBillValidator($data)
{
// 自定义错误消息
$messages = [
'admin_id.required' => '参数错误',
'wat_num.required' => '请输入结算单号',
];
// 数据验证
$validator = Validator::make($data, [
'admin_id' => 'required|integer|min:1',
'wat_num' => 'required',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 上传发票验证器
public function uploadInvoiceValidator($data)
{
// 自定义错误消息
$messages = [
'admin_id.required' => '参数错误',
'wat_num.required' => '请输入结算单号',
// 'stl_invoice_number.required' => '请输入发票单号',
// 'stl_expressage_number.required' => '请输入快递单号',
];
// 数据验证
$validator = Validator::make($data, [
'admin_id' => 'required|integer|min:1',
'wat_num' => 'required',
// 'stl_invoice_number' => 'required',
// 'stl_expressage_number' => 'required',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
}
<?php
namespace App\Http\Requests\Validators\Api\MobileWeb;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Validator;
class LoginValidator extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
// 登录验证器
public function loginValidator($data)
{
// 自定义错误消息
$messages = [
'account.required' => '请输入账号',
'account.max' => '参数错误',
'password.required' => '请输入密码',
'password.max' => '参数错误',
'login_type.required' => '请传入类型',
'login_type.in' => '参数错误',
'user_type.required' => '请传入类型',
'user_type.in' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'account' => 'required|string|max:50',
'password' => 'required|string|max:50',
'login_type' => [//类型1强制登录2不登录
'required',
Rule::in(['1', '2']),
],'user_type' => [//登录类型1技师2服务商
'required',
Rule::in(['1', '2']),
],
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
}
<?php
namespace App\Http\Requests\Validators\Api\MobileWeb;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Validator;
// 移动端-工单列表
class OrderListValidator extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
// 列表验证器
public function indexValidator($data)
{
// 自定义错误消息
$messages = [
'stauas.required' => '请输入订单状态',
'stauas.integer' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'stauas' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 详情验证器
public function infoValidator($data)
{
// 自定义错误消息
$messages = [
'deor_id.required' => '请输入设计工单id',
'deor_id.integer' => '参数错误',
'sys_num.required' => '请输入订单单号',
'sys_num.max' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'deor_id' => 'required|integer|min:1',
'sys_num' => 'required|string|max:50',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 接单验证器入口
public function receivingStartValidator($data)
{
// 自定义错误消息
$messages = [
'type.required' => '请输入请求类型',
'type.in' => '参数错误',
'id.required' => '请输入工单id',
'id.integer' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'type' => [//类型1强制登录2不登录
'required',
Rule::in(['1', '2']),
],
'id' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 接单验证器
public function receivingValidator($data)
{
// 自定义错误消息
$messages = [
'receive_install_id.required' => '请选择安装人员',
'receive_install_id.integer' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'receive_install_id' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 拒单验证器
public function refuseValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'admin_id.required' => '参数错误',
'id.required' => '请输入服务工单id',
'id.integer' => '参数错误',
'remarks.required' => '请输入拒单备注',
'remarks.max' => '拒单备注长度超出限制',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'id' => 'required|integer|min:1',
'remarks' => 'required|string|max:255',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 开始安装验证器
public function startInstallValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'admin_id.required' => '参数错误',
'id.required' => '请输入服务工单id',
'id.integer' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'id' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 安装反馈验证器
public function installFeedbackValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'admin_id.required' => '参数错误',
'id.required' => '请输入服务工单id',
'type.required' => '请选择完成类型',
// 'template_data.required' => '请输入图片相关数据',
// 'license_plate.required' => '请输入车牌号',
// 'license_plate.max' => '长度超出限制',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'id' => 'required|integer|min:1',
'type' => 'required|integer|min:1',
// 'template_data' => 'required',
// 'license_plate' => 'required|string|max:20',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 操作记录验证器
public function operatingRecordValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'admin_id.required' => '参数错误',
'serial_number.required' => '请输入单号',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'serial_number' => 'required',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 反馈安装图片验证器
public function imageFeedbackValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'admin_id.required' => '参数错误',
'image_url.required' => '参数错误',
'image_id.required' => '参数错误',
'image_type.required' => '参数错误',
'id.required' => '请输入服务工单id',
'id.integer' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'image_url' => 'required|min:1',
'image_type' => 'required|min:1',
'image_id' => 'required|min:1',
'id' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 反馈车牌车架号验证器
public function LicenseFeedbackValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'admin_id.required' => '参数错误',
'gd_id.required' => '参数错误',
'id.required' => '请输入服务工单id',
'id.integer' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'gd_id' => 'required|integer|min:1',
'id' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
}
<?php
namespace App\Http\Requests\Validators\Api\MobileWeb;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Validator;
// 移动端-账单列表
class ServiceEvaluationValidator extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
// 列表验证器
public function indexValidator($data)
{
// 自定义错误消息
$messages = [
'admin_id.required' => '请输入服务商id',
'admin_id.integer' => '参数错误',
'type.required' => '请输入type值',
'type.max' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'admin_id' => 'required|integer|min:1',
'type' => [
'required',
Rule::in([1, 2]),
],
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
}
<?php
namespace App\Http\Requests\Validators\Api\MobileWeb;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use Validator;
class TechnicianValidator extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
// 新增验证器
public function addValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'install_id.integer' => '参数错误',
'install_id.min' => '参数错误',
'admin_id.required' => '参数错误',
'admin_id.integer' => '参数错误',
'admin_id.min' => '参数错误',
'install_name.required' => '请输入姓名',
'install_name.max' => '参数错误',
'install_phone.required' => '请输入联系电话',
'install_phone.max' => '参数错误',
'install_year.required' => '请选择入职时间',
'install_year.max' => '参数错误',
'install_is_type.required' => '请选择是否启用',
'install_is_type.max' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'install_name' => 'required|string|max:50',
'install_phone' => 'required|string|max:50',
'install_year' => 'required|string|max:50',
'install_is_type' => [
'required',
Rule::in([1, 2]),
],
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 修改密码验证器
public function changePasswordValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'install_id.integer' => '参数错误',
'install_id.min' => '参数错误',
'admin_id.required' => '参数错误',
'admin_id.integer' => '参数错误',
'admin_id.min' => '参数错误',
'password.required' => '请输入原密码',
'new_password.required' => '请输入新密码',
'new_password.regex' => '密码格式错误',
'new_password_affirm.required' => '请输入确认密码',
'new_password_affirm.same' => '两次密码不一致',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'password' => 'required',
'new_password' => [
'required',
'regex:/^[a-zA-Z\d_]{8,}$/', //正则验证密码格式
],
// 与密码数据保持一致
'new_password_affirm' => 'required|same:new_password',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
// 编辑展示验证器
public function editShowValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'install_id.integer' => '参数错误',
'install_id.min' => '参数错误',
'admin_id.required' => '参数错误',
'admin_id.integer' => '参数错误',
'admin_id.min' => '参数错误',
'edit_install_id.required' => '请输入技师id',
'edit_install_id.integer' => '参数错误',
'edit_install_id.min' => '参数错误',
'type.required' => '请输入类型',
'type.in' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
'edit_install_id' => 'required|integer|min:1',
'type' => [
'required',
Rule::in([1, 2]),
],
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
public function deleteValidator($data)
{
// 自定义错误消息
$messages = [
'install_id.required' => '参数错误',
'install_id.integer' => '参数错误',
'install_id.min' => '参数错误',
'admin_id.required' => '参数错误',
'admin_id.integer' => '参数错误',
'admin_id.min' => '参数错误',
];
// 数据验证
$validator = Validator::make($data, [
'install_id' => 'required|integer|min:1',
'admin_id' => 'required|integer|min:1',
], $messages);
// 判断数据验证是否成功
if ($validator->fails()) {
return $validator->errors();
}
}
}
<?php
namespace App\Services\Api\MobileWeb;
use App\Services\CommonService;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\DB;
use BlueCity\Core\Inc\ErrorInc;
use App\Models\{Company, InstallPerson};
use Illuminate\Support\Facades\Crypt;
class LoginService
{
// 登录
public static function login($request)
{
if ($request['user_type'] == 1) { //技师登录
// 查询登录账号数据
$find_person = DB::table('install_person as install')
->leftJoin('admin as adm', 'install.admin_id', '=', 'adm.id')
->where('delet_y', 1)
->where('check_code', $request['account'])
->where('install_password', md5($request['password']))
->select('install.id', 'check_code', 'install_name', 'install_phone', 'install_is_type', 'admin_id','company_id','admin_groupnew')
->first();
} elseif($request['user_type'] == 2) { //服务商登录
//判定是否有公司名称字段
if(!isset($request['company_name']) || $request['company_name']==''){
return ['ErrorCode' => 201, 'ErrorMessage' => '请填写公司名称!', 'data' => ''];
}
//查询公司名称是否存在
$company_id = Company::where("com_name",$request['company_name'])->value('com_id');
// 查询登录账号数据
$find_person = DB::table('admin as adm')
->leftJoin('admin_infor as adin', 'adin.admin_id', '=', 'adm.id')
->where('admin_acc', $request['account'])
->where('company_id', $company_id)
->whereIn('admin_groupnew', [2,3])
->where('admin_password', md5($request['password']))
->select('adm.id', 'admin_acc as check_code', 'admin_name as install_name', 'phone as install_phone', 'enable as install_is_type', 'adm.id as admin_id','admin_groupnew','company_id')
->first();
$find_person = CommonService::dataToArray($find_person);
}
if (empty($find_person)) {
return ['ErrorCode' => 202, 'ErrorMessage' => '账号密码错误!', 'data' => ''];
}
if ($find_person['install_is_type'] != 1) {
return ['ErrorCode' => 203, 'ErrorMessage' => '当前账号已停用!', 'data' => ''];
}
if($request['user_type'] == 2 && $find_person['admin_groupnew']==3){
$request['user_type'] = 3;
}
if ($request['openid']) {
// 微信授权绑定用户信息
$bingding_res = self::accreditBinding($request, $find_person);
}
$expiration_time = 12 * 60 * 60; //登录过期时间
// 生成token
$unique_string = md5(uniqid(md5(microtime(true)) . rand(100000, 999999), true)); //生成唯一字符串
$api_token = sha1($unique_string); //加密
$find_login = DB::table('login_web')
->where('install_id', '=', $find_person['id'])
->where('user_type', '=', $request['user_type'])
->select('lowe_id', 'install_id', 'lowe_last_login')
->first();
if (empty($find_login)) {
// 如果用户第一次登陆,将用户的登录状态保存到临时表
$lote_data['install_id'] = $find_person['id']; //账号id
$lote_data['lowe_last_login'] = time() + $expiration_time; //最后登陆时间
$lote_data['api_token'] = $api_token; //api_token
$lote_data['account'] = $find_person['check_code']; //登录账号
$lote_data['install_name'] = $find_person['install_name']??""; //账号姓名
$lote_data['install_phone'] = $find_person['install_phone']; //手机号
$lote_data['admin_id'] = $find_person['admin_id']; //所属服务中心id
$lote_data['user_type'] = $request['user_type']; //登录类型:1技师2服务商3经销商
$lote_data['company_id'] = $find_person['company_id']; //所属公司id
$lote_data['role_auth'] = '';
$lote_data['auth_routes'] = '';
$lote_res = DB::table('login_web')->insert($lote_data);
if (empty($lote_res)) {
return ["ErrorCode" => 204, 'ErrorMessage' => '登录失败!1', 'data' => ''];
}
// 返回数据
$return_data = [
'api_token' => Crypt::encrypt($api_token), //生成前台token
'account' => $find_person['check_code'],
'install_name' => $find_person['install_name'],
'install_phone' => $find_person['install_phone'],
'install_id' => $find_person['id'],
'admin_id' => $find_person['admin_id'],
'company_id' => $find_person['company_id'],
];
return ['ErrorCode' => 1, 'ErrorMessage' => '登录成功', 'data' => $return_data];
}
$now_time = time();
// 当前时间大于最后登陆时间,登录时间已过期,重新登录
// login_type 值为1 强制登录
if ($now_time > $find_login['lowe_last_login'] || $request['login_type'] == 1) {
//修改登陆状态
$lote_data['install_id'] = $find_person['id']; //账号id
$lote_data['lowe_last_login'] = time() + $expiration_time; //最后登陆时间
$lote_data['api_token'] = $api_token; //api_token
$lote_data['account'] = $find_person['check_code']; //登录账号
$lote_data['install_name'] = $find_person['install_name']; //账号姓名
$lote_data['install_phone'] = $find_person['install_phone']; //手机号
$lote_data['admin_id'] = $find_person['admin_id']; //所属服务中心id
$lote_data['user_type'] = $request['user_type']; //登录类型:1技师2服务商3经销商
$lote_data['company_id'] = $find_person['company_id']; //所属公司id
$lote_res = DB::table('login_web')
->where('lowe_id', $find_login['lowe_id'])
->update($lote_data);
if (empty($lote_res)) {
return ["ErrorCode" => 500, 'ErrorMessage' => '登录失败!2', 'data' => ''];
}
// 返回数据
$return_data = [
'api_token' => Crypt::encrypt($api_token), //生成前台token
'account' => $find_person['check_code'],
'install_name' => $find_person['install_name'],
'install_phone' => $find_person['install_phone'],
'install_id' => $find_person['id'],
'admin_id' => $find_person['admin_id'],
'company_id' => $find_person['company_id'],
];
return ['ErrorCode' => 1, 'ErrorMessage' => '登录成功', 'data' => $return_data];
} else {
return ["ErrorCode" => 400, 'ErrorMessage' => '该用户已经登录', 'data' => ''];
}
}
// 微信授权绑定
public static function accreditBinding($request, $find_person)
{
// 查询数据表openID是否存在绑定,存在绑定改为离线
DB::table('installation_master')
->where('wechat_number',$request['openid'])
->update(['priority'=>2,'update_time'=>date('Y-m-d H:i:s')]);
$find_data = DB::table('installation_master')
->where('check_code',$find_person['check_code'])
->value('id');
if($find_data){
return DB::table('installation_master')
->where('id',$find_data)
->update(['priority'=>1,'wechat_number'=>$request['openid'],'update_time'=>date('Y-m-d H:i:s')]);
}else {
// 新增绑定关系
$data['wechat_number'] = $request['openid'];
$data['type'] = $request['user_type'];
$data['check_code'] = $find_person['check_code'];
$data['inst_name'] = $find_person['install_name'];
$data['inst_phone'] = $find_person['install_phone'];
$data['admin_id'] = $find_person['admin_id'];
$data['install_id'] = $find_person['id'];
$data['priority'] = 1;
return DB::table('installation_master')->insert($data);
}
}
// 退出
public static function quit($request)
{
try {
$api_token = Crypt::decrypt($request['api_token']);
} catch (\Exception $e) {
return ['ErrorCode' => ErrorInc::BUSINESS_FORBID, 'ErrorMessage' => 'api_token失效', 'data' => ''];
}
// 更改最后登录时间
$lote_data['lowe_last_login'] = 0; //最后登陆时间
$res = DB::table('login_web')
->where('api_token', $api_token)
->update($lote_data);
if ($res) {
return ['ErrorCode' => 1, 'ErrorMessage' => '退出成功', 'data' => '{}'];
} else {
return ["ErrorCode" => 201, 'ErrorMessage' => '退出失败', 'data' => '{}'];
}
}
}
......@@ -104,7 +104,7 @@ return [
|
*/
'key' => env('APP_KEY'),
'key' => 'base64:Qz/ncZnpyltqLHyovv/WxZQW6XPZPk8pvEuh6IeBSG0=',//env('APP_KEY'),
'cipher' => 'AES-256-CBC',
......
......@@ -1411,3 +1411,45 @@ Route::group(['prefix' => 'RequestApp', 'namespace' => 'AppApi', 'middleware' =>
Route::group(['prefix' => 'Dou', 'namespace' => 'Dou'], function () {
Route::any('MyTest/test', 'MyTestController@test'); //测试入口
});
// 移动端网页功能
Route::namespace('Api')->group(function () {
// 技师登录
Route::post('w1/login', 'MobileWeb\LoginController@login'); //登录
Route::post('w1/quit', 'MobileWeb\LoginController@quit'); //退出
// 需要验证
Route::group(['middleware' => ['WebLogin']], function () {
Route::post('w1/OrderList/index', 'MobileWeb\OrderListController@index'); //服务工单列表
Route::post('w1/OrderList/receiving', 'MobileWeb\OrderListController@receiving'); //接单
Route::post('w1/OrderList/refuse', 'MobileWeb\OrderListController@refuse'); //拒单
Route::post('w1/OrderList/startInstall', 'MobileWeb\OrderListController@startInstall'); //开始安装
Route::post('w1/OrderList/inspect', 'MobileWeb\OrderListController@inspect'); //检验
Route::post('w1/OrderList/installFeedback', 'MobileWeb\OrderListController@installFeedback'); //安装反馈
Route::post('w1/OrderList/info', 'MobileWeb\OrderListController@info'); //详情
Route::post('w1/OrderList/getInstallPerson', 'MobileWeb\OrderListController@getInstallPerson'); //获取技师
Route::post('w1/OrderList/getLabel', 'MobileWeb\OrderListController@getLabel'); //获取标签
Route::post('w1/OrderList/operatingRecord', 'MobileWeb\OrderListController@operatingRecord'); //获取操作记录
Route::post('w1/OrderList/getFeedback', 'MobileWeb\OrderListController@getFeedback'); //获取安装反馈数据
Route::post('w1/OrderList/imageFeedback', 'MobileWeb\OrderListController@imageFeedback'); //施工反馈,图片反馈
Route::post('w1/OrderList/LicenseFeedback', 'MobileWeb\OrderListController@LicenseFeedback'); //施工反馈,车牌反馈
// 技师管理
Route::post('w1/Technician/index', 'MobileWeb\TechnicianController@index'); //技师列表
Route::post('w1/Technician/add', 'MobileWeb\TechnicianController@add'); //技师列表-新增
Route::post('w1/Technician/changePassword', 'MobileWeb\TechnicianController@changePassword'); //技师列表-修改密码
Route::post('w1/Technician/delete', 'MobileWeb\TechnicianController@delete'); //删除
Route::post('w1/Technician/edit', 'MobileWeb\TechnicianController@edit'); //编辑
// 账单模块
Route::post('w1/BillingModule/index', 'MobileWeb\BillingModuleController@index'); //列表
Route::post('w1/BillingModule/checkVoucher', 'MobileWeb\BillingModuleController@checkVoucher'); //查看凭证
Route::post('w1/BillingModule/checkInfo', 'MobileWeb\BillingModuleController@checkInfo'); //查看详情
Route::post('w1/BillingModule/affirmBill', 'MobileWeb\BillingModuleController@affirmBill'); //确认账单
Route::post('w1/BillingModule/uploadInvoice', 'MobileWeb\BillingModuleController@uploadInvoice'); //上传发票
// 服务评价
Route::post('w1/ServiceEvaluation/index', 'MobileWeb\ServiceEvaluationController@index'); //列表
});
});
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论