<?php // +---------------------------------------------------------------------- // | likeadmin快速开发前后端分离管理后台(PHP版) // +---------------------------------------------------------------------- // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力 // | 开源版本可自由商用,可去除界面版权logo // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin // | github下载:https://github.com/likeshop-github/likeadmin // | 访问官网:https://www.likeadmin.cn // | likeadmin团队 版权所有 拥有最终解释权 // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- namespace app\api\controller; use app\api\logic\IndexLogic; use app\common\model\Company; use app\common\model\company\CompanyProperty; use app\common\model\contract\VehicleContract; use app\common\model\vehicle\VehicleRent; use think\facade\Db; use think\facade\Log; use think\response\Json; /** * index * Class IndexController * @package app\api\controller */ class IndexController extends BaseApiController { public array $notNeedLogin = ['index', 'config', 'policy', 'decorate', 'notifyUrl','notifyProperty','notifyAuthentication','notifyVehicleContractUpdate','notifyVillageCarRent']; private $domain = 'https://logistics.lihaink.cn'; // private $domain = 'http://www.lst.local'; /** * @notes 首页数据 * @return Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author 段誉 * @date 2022/9/21 19:15 */ public function index() { $result = IndexLogic::getIndexData(); return $this->data($result); } /** * @notes 全局配置 * @return Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author 段誉 * @date 2022/9/21 19:41 */ public function config() { $group_id=$this->userInfo?$this->userInfo['group_id']:1; $result = IndexLogic::getConfigData($group_id); return $this->data($result); } /** * @notes 政策协议 * @return Json * @author 段誉 * @date 2022/9/20 20:00 */ public function policy() { $type = $this->request->get('type/s', ''); $result = IndexLogic::getPolicyByType($type); return $this->data($result); } /** * @notes 装修信息 * @return Json * @author 段誉 * @date 2022/9/21 18:37 */ public function decorate() { $id = $this->request->get('id/d'); $result = IndexLogic::getDecorate($id); return $this->data($result); } /**签约回调 */ public function notifyUrl() { $a = Request()->get(); if ($a) { $find = Db::name('contract')->where('id', $a['id'])->find(); if ($find) { if ($find['signing_timer'] == 0) { Db::name('contract')->where('id', $a['id'])->update(['signing_timer' => 1]); return true; } else if ($find['signing_timer'] == 1) { Db::name('contract')->where('id', $a['id'])->update(['status' => 1, 'signing_timer' => 2]); if ($find['type'] == 1) { Db::name('company')->where('id', $find['party_a'])->update(['status' => 1, 'is_contract' => 1]); Db::name('company')->where('id', $find['party_b'])->update(['status' => 1, 'is_contract' => 1]); } else { Db::name('company')->where('id', $find['party_a'])->update(['status' => 1, 'is_contract' => 1]); Db::name('user')->where('id', $find['party_b'])->update(['is_contract' => 1]); } } } } return json(['success' => true, 'msg' => '成功']); } public function notifyVillageCarRent(){ //获取参数 $id = $this->request->get('id'); if(empty($id)){ return json(['success' => false, 'msg' => '缺少参数']); } //获取合同数据 $contract = VehicleContract::where('id',$id)->find(); if(empty($contract)){ return json(['success' => false, 'msg' => '参数错误']); } if($contract['status'] != 2){ return json(['success' => false, 'msg' => '合同状态错误']); } if ($contract['signing_timer'] == 0) { VehicleContract::where('id',$id)->update(['signing_timer'=>1]); }else if($contract['signing_timer'] == 1) { //更改合同状态 VehicleContract::where('id',$id)->update(['signing_timer'=>2,'status'=>3]); //添加车辆到物流系统 $vehicle = json_decode($contract['cars_info'],true); //判断是否是自有车辆 if($contract['type'] == 1){ $curl_res = curl_post($this->domain.'/api/addSelfCar',[],[ 'license'=>$vehicle['license'], 'company_id' => $contract['company_a_id'], 'company_name' => $contract['company_a_name'], 'company_user' => $contract['company_a_user'], 'company_phone' => $contract['company_a_phone'], ]); $cars_info = json_encode(['id'=>$curl_res['data']['car_id'],'license'=>$vehicle['license']]); VehicleContract::where('id',$id)->update(['cars_info'=>$cars_info,'update_time'=>time()]); VehicleRent::create([ 'car_id' => $curl_res['data']['car_id'], 'contract_id' => $contract['id'], 'company_id' => $contract['company_a_id'], 'car_license' => $vehicle['license'], 'status' => 2, 'rent_time' => time(), 'rent_company_id' => $contract['company_b_id'], 'create_time' => time(), 'type' => 1 ]); $car_id = $curl_res['data']['car_id']; }else if($contract['type'] == 0){ //添加车辆到物流系统 VehicleRent::where('car_id',$vehicle['id'])->update([ 'status' => 2, 'rent_time' => time(), 'rent_company_id' => $contract['company_b_id'], ]); $car_id = $vehicle['id']; } $party_b = Company::where('id',$contract['company_b_id'])->find(); //通知物流系统跟新 curl_post($this->domain.'/api/updateVehicleRent',[],[ 'car_id' => $car_id, 'use_user_id' => $party_b['user_id'], 'use_user_name' => $party_b['master_name'], 'use_user_phone' => $party_b['master_phone'] ]); CompanyProperty::create([ 'company_id' => $contract['company_b_id'], 'object_id' => $car_id, 'type' => 1 ]); } return json(['success' => true, 'msg' => '成功']); } //车辆租赁签约合同状态更改 public function notifyVehicleContractUpdate(){ if(!$this->request->isPost()){ return $this->fail('请求方式错误'); } $param = $this->request->post(); $model = VehicleContract::where('contract_logistic_id',$param['contract_logistic_id'])->find(); if(empty($model)){ return $this->fail('数据不存在'); } $cars = json_decode($model['cars_info'],true); $result = $model->where('id',$model['id'])->save($param); if($result && isset($param['status']) && $param['status'] == 3){ $data= []; foreach($cars as $k=>$v) { $data[$k]['car_id'] = $v['id']; $data[$k]['car_license'] = $v['license']; $data[$k]['type'] = 0; $data[$k]['status'] = 0; $data[$k]['company_id'] = $model['company_b_id']; $data[$k]['create_time'] = strtotime($model['create_time']); } $vehicleRent = new VehicleRent(); $vehicleRent -> saveAll($data); } //返回 return $result ? $this->success('更新成功') : $this->fail('更新失败'); } /** * 资产回调 */ public function notifyProperty() { $parmas = Request()->post(); if ($parmas) { if (!isset($parmas['company_id']) || $parmas['company_id'] < 0) { return json(['success' => false, 'msg' => '公司id不能为空']); } if (!isset($parmas['object_id'])) { return json(['success' => false, 'msg' => '对象id不能为空']); } $data=[]; $object_id = explode(',',$parmas['object_id']); foreach($object_id as $k=>$v){ if($v>0){ $data[$k]['company_id']=$parmas['company_id']; $data[$k]['object_id']=$v; $data[$k]['type']=1; } } if (count($data)>0){ $res = CompanyProperty::insertAll($data); } if ($res) { return json(['success' => true, 'msg' => '成功']); } else { return json(['success' => false, 'msg' => '失败']); } } return json(['success' => false, 'msg' => '失败,没有参数']); } /** * 认证回调 */ public function notifyAuthentication() { $parmas = Request()->param(); Log::error('notifyAuthentication', $parmas); if ($parmas) { Company::where('id',$parmas['id'])->update(['is_authentication'=>1]); return json(['success' => true, 'msg' => '成功']); } return json(['success' => false, 'msg' => '失败,没有参数']); } }