<?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']; /** * @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(!$contract || $contract->isEmpty()){ return json(['success' => false, 'msg' => '参数错误']); } $car = json_decode($contract['cars_info']); 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]); if($contract['type'] == 0){ //更改车辆状态 VehicleRent::where('car_id',$car[0]['id'])->where('company_id',$contract['company_a_id'])->update([ 'rent_company_id' => $contract['company_b_id'], 'status' => 1, 'rent_time' => time() ]); $party_b_company = Company::field('user_id,master_name,master_phone')->where('id',$contract['company_b_id'])->find(); //通知物流系统添加车辆使用人 curl_post('http://logistics.lihaink.cn/api/createRentCarUser',[],[ 'car_id' => $car[0]['id'], 'user_id' => $party_b_company['user_id'], 'user_name' => $party_b_company['master_name'], 'user_phone' => $party_b_company['master_phone'], ]); }else{ //自有车辆 } } 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(!$model || $model->isEmpty()){ return $this->fail('数据不存在'); } $result = $model->where('id',$model['id'])->save($param); if($result && isset($param['status']) && $param['status'] == 3){ $cars = json_decode($model['cars_info'],true); foreach($cars as $k=>$v) { $cars[$k]['type'] = 0; $cars[$k]['status'] = 0; $cars[$k]['company_id'] = $model['company_b_id']; $cars[$k]['create_time'] = $model['create_time']; } VehicleRent::saveAll($cars); } //返回 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' => '失败,没有参数']); } }