作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

... ... @@ -98,7 +98,9 @@ class CopyProject extends Command
$data['old_project_id'] = $old_project_id;
unset($data['id'],$data['exclusive_aicc_day'],$data['aicc'],$data['robots'],$data['is_translate_tag'],$data['is_translate'],$data['is_minor_languages'],$data['uptime']);
$project_id = $projectModel->insertGetId($data);
$data['post_id'] = mt_rand(100000, 999999).$project_id;
$letters = range('A', 'X'); // 只取前 24 个字母(A ~ X)
$randomLetter = $letters[array_rand($letters)];
$data['post_id'] = $randomLetter.mt_rand(100000, 999999).$project_id;
$hashids = new Hashids($data['from_order_id'], 13, 'abcdefghjkmnpqrstuvwxyz1234567890');
$projectModel->edit(['from_order_id'=>$hashids->encode($project_id),'post_id'=>$data['post_id']],['id'=>$project_id]);
//复制设置的模版
... ...
... ... @@ -9,6 +9,7 @@ namespace App\Http\Controllers\Api;
use App\Enums\Common\Code;
use App\Http\Controllers\Controller;
use App\Models\WorkOrder\TicketProject;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
... ... @@ -139,4 +140,6 @@ class BaseController extends Controller
$response = response($result,$result_code,$header);
throw new HttpResponseException($response);
}
}
... ...
<?php
/**
* @remark :
* @name :Project5CateController.php
* @name :Ticket5UploadDataController.php
* @author :lyh
* @method :post
* @time :2025/11/8 09:35
... ... @@ -15,7 +15,7 @@ use App\Models\Ticket\Project5Cate;
use App\Models\WorkOrder\TicketProject;
use Illuminate\Support\Facades\Http;
class Project5CateController extends BaseController
class Ticket5UploadDataController extends BaseController
{
/**
* @remark :获取对应项目的分类
... ... @@ -34,7 +34,7 @@ class Project5CateController extends BaseController
]);
//查询是否有值
$project5CateModel = new Project5Cate();
$cateInfo = $project5CateModel->read(['project_id' => $this->param['post_id'],'type'=>$this->param['type'],'updated_at'=>['>', date('Y-m-d H:i:s', strtotime('-48 hours'))]]);
$cateInfo = $project5CateModel->read(['project_id' => $this->param['post_id'],'type'=>$this->param['type'],'updated_at'=>['>', date('Y-m-d H:i:s', strtotime('-24 hours'))]]);
if($cateInfo !== false){
$resultData = $cateInfo['text'];
$this->response('success', Code::SUCCESS, $resultData);
... ... @@ -125,4 +125,68 @@ class Project5CateController extends BaseController
}
$this->response('请求失败',Code::SYSTEM_ERROR);
}
/**
* @remark :提交数据
* @name :save
* @author :lyh
* @method :post
* @time :2025/11/10 11:01
*/
public function save()
{
$this->request->validate([
'post_id' => 'required',
'type' => 'required',
'text' => 'required'
], [
'post_od.required' => 'project_id不能为空',
'type.required' => '上传类型不能为空',
'text' => '数据详情不为空'
]);
if(empty($this->param['text']['image'])){
$this->response('参数错误',Code::SYSTEM_ERROR);
}
if(empty($this->param['text']['title'])){
$this->response('参数错误,标题不能为空',Code::SYSTEM_ERROR);
}
//验证当前数据是否已提交
$this->param['text'] = json_encode($this->param['text'], true);
$this->pushTicketByBots($this->param['post_id'],$this->param['type']);
if(isset($this->param['id']) && !empty($this->param['id'])){
//执行编辑
$info = $this->model->read(['id'=>$this->param['id']]);
if($info['status'] == 0){
$this->model->edit($this->param,['id'=>$this->param['id']]);
}else{
$this->response('当前状态不允许编辑', Code::SYSTEM_ERROR);
}
$this->response('success');
}else{
$info = $this->model->read(['project_id' => $this->param['project_id'], 'type' => $this->param['type'], 'text' => $this->param['text'], 'status' => 0]);
if ($info === false) {
$id = $this->model->addReturnId($this->param);
} else {
$id = $info['id'];
}
$data = ['id' => $id];
$this->response('success', Code::SUCCESS, $data);
}
}
/**
* @remark :钉钉通知
* @name :pushTicketByBots
* @author :lyh
* @method :post
* @time :2025/11/10 11:10
*/
public function pushTicketByBots($post_id,$type = 1)
{
$project = TicketProject::where('post_id', $post_id)->where('project_cate',$type)->where('is_del', 0)->first();
if (!$project){
return response()->json(['message' => '未找到对应的工单项目'], 404);
}
return $project->pushWechatGroupMsg("您好,用户已上传数据,请审核!");
}
}
... ...
... ... @@ -179,7 +179,7 @@ class TicketUploadDataController extends BaseController
}
//验证当前数据是否已提交
$this->param['text'] = json_encode($this->param['text'], true);
$this->pushTicketByBot($this->param['project_id']);
$this->pushTicketByBots($this->param['project_id']);
if(isset($this->param['id']) && !empty($this->param['id'])){
//执行编辑
$info = $this->model->read(['id'=>$this->param['id']]);
... ... @@ -202,15 +202,15 @@ class TicketUploadDataController extends BaseController
}
/**
* @remark :6.0数据推送微信
* @name :pushTicketByBot
* @remark :钉钉通知
* @name :pushTicketByBots
* @author :lyh
* @method :post
* @time :2025/11/10 10:34
* @time :2025/11/10 11:07
*/
public function pushTicketByBot($project_id)
public function pushTicketByBots($project_id,$type = 2)
{
$project = TicketProject::where('table_id', $project_id)->where('project_cate',2)->where('is_del', 0)->first();
$project = TicketProject::where('table_id', $project_id)->where('project_cate',$type)->where('is_del', 0)->first();
if (!$project){
return response()->json(['message' => '未找到对应的工单项目'], 404);
}
... ...
<?php
/**
* @remark :
* @name :Project5CateController.php
* @name :Ticket5UploadDataController.php
* @author :lyh
* @method :post
* @time :2025/11/8 09:25
... ... @@ -15,7 +15,7 @@ use Illuminate\Http\Request;
/**
* @remark :保存5.0的分类
* @name :Project5CateController
* @name :Ticket5UploadDataController
* @author :lyh
* @method :post
* @time :2025/11/8 09:26
... ...
... ... @@ -110,8 +110,8 @@ Route::prefix('ticket_upload')->group(function () {
Route::any('/saveLayoutDesign', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'saveLayoutDesign'])->name('ticket_upload.saveLayoutDesign');
Route::any('/getLayoutDesignInfo', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'getLayoutDesignInfo'])->name('ticket_upload.getLayoutDesignInfo');
//5.0获取分类
Route::any('/getProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'getProject5Cate'])->name('ticket_upload.getProject5Cate');
Route::any('/addProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'addProject5Cate'])->name('ticket_upload.addProject5Cate');
Route::any('/getProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Ticket5UploadDataController::class, 'getProject5Cate'])->name('ticket_upload.getProject5Cate');
Route::any('/addProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Ticket5UploadDataController::class, 'addProject5Cate'])->name('ticket_upload.addProject5Cate');
});
//geo设置
... ...