TaskSystem/app/api/controller/IndexController.php
2023-08-31 10:35:39 +08:00

274 lines
10 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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'],
'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' => '失败,没有参数']);
}
}