作者 李宇航

合并分支 'lyh-server' 到 'master'

Lyh server



查看合并请求 !3210
@@ -98,7 +98,9 @@ class CopyProject extends Command @@ -98,7 +98,9 @@ class CopyProject extends Command
98 $data['old_project_id'] = $old_project_id; 98 $data['old_project_id'] = $old_project_id;
99 unset($data['id'],$data['exclusive_aicc_day'],$data['aicc'],$data['robots'],$data['is_translate_tag'],$data['is_translate'],$data['is_minor_languages'],$data['uptime']); 99 unset($data['id'],$data['exclusive_aicc_day'],$data['aicc'],$data['robots'],$data['is_translate_tag'],$data['is_translate'],$data['is_minor_languages'],$data['uptime']);
100 $project_id = $projectModel->insertGetId($data); 100 $project_id = $projectModel->insertGetId($data);
101 - $data['post_id'] = mt_rand(100000, 999999).$project_id; 101 + $letters = range('A', 'X'); // 只取前 24 个字母(A ~ X)
  102 + $randomLetter = $letters[array_rand($letters)];
  103 + $data['post_id'] = $randomLetter.mt_rand(100000, 999999).$project_id;
102 $hashids = new Hashids($data['from_order_id'], 13, 'abcdefghjkmnpqrstuvwxyz1234567890'); 104 $hashids = new Hashids($data['from_order_id'], 13, 'abcdefghjkmnpqrstuvwxyz1234567890');
103 $projectModel->edit(['from_order_id'=>$hashids->encode($project_id),'post_id'=>$data['post_id']],['id'=>$project_id]); 105 $projectModel->edit(['from_order_id'=>$hashids->encode($project_id),'post_id'=>$data['post_id']],['id'=>$project_id]);
104 //复制设置的模版 106 //复制设置的模版
@@ -9,6 +9,7 @@ namespace App\Http\Controllers\Api; @@ -9,6 +9,7 @@ namespace App\Http\Controllers\Api;
9 9
10 use App\Enums\Common\Code; 10 use App\Enums\Common\Code;
11 use App\Http\Controllers\Controller; 11 use App\Http\Controllers\Controller;
  12 +use App\Models\WorkOrder\TicketProject;
12 use Illuminate\Http\Exceptions\HttpResponseException; 13 use Illuminate\Http\Exceptions\HttpResponseException;
13 use Illuminate\Http\JsonResponse; 14 use Illuminate\Http\JsonResponse;
14 use Illuminate\Http\Request; 15 use Illuminate\Http\Request;
@@ -139,4 +140,6 @@ class BaseController extends Controller @@ -139,4 +140,6 @@ class BaseController extends Controller
139 $response = response($result,$result_code,$header); 140 $response = response($result,$result_code,$header);
140 throw new HttpResponseException($response); 141 throw new HttpResponseException($response);
141 } 142 }
  143 +
  144 +
142 } 145 }
1 <?php 1 <?php
2 /** 2 /**
3 * @remark : 3 * @remark :
4 - * @name :Project5CateController.php 4 + * @name :Ticket5UploadDataController.php
5 * @author :lyh 5 * @author :lyh
6 * @method :post 6 * @method :post
7 * @time :2025/11/8 09:35 7 * @time :2025/11/8 09:35
@@ -15,7 +15,7 @@ use App\Models\Ticket\Project5Cate; @@ -15,7 +15,7 @@ use App\Models\Ticket\Project5Cate;
15 use App\Models\WorkOrder\TicketProject; 15 use App\Models\WorkOrder\TicketProject;
16 use Illuminate\Support\Facades\Http; 16 use Illuminate\Support\Facades\Http;
17 17
18 -class Project5CateController extends BaseController 18 +class Ticket5UploadDataController extends BaseController
19 { 19 {
20 /** 20 /**
21 * @remark :获取对应项目的分类 21 * @remark :获取对应项目的分类
@@ -34,7 +34,7 @@ class Project5CateController extends BaseController @@ -34,7 +34,7 @@ class Project5CateController extends BaseController
34 ]); 34 ]);
35 //查询是否有值 35 //查询是否有值
36 $project5CateModel = new Project5Cate(); 36 $project5CateModel = new Project5Cate();
37 - $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'))]]); 37 + $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'))]]);
38 if($cateInfo !== false){ 38 if($cateInfo !== false){
39 $resultData = $cateInfo['text']; 39 $resultData = $cateInfo['text'];
40 $this->response('success', Code::SUCCESS, $resultData); 40 $this->response('success', Code::SUCCESS, $resultData);
@@ -125,4 +125,68 @@ class Project5CateController extends BaseController @@ -125,4 +125,68 @@ class Project5CateController extends BaseController
125 } 125 }
126 $this->response('请求失败',Code::SYSTEM_ERROR); 126 $this->response('请求失败',Code::SYSTEM_ERROR);
127 } 127 }
  128 +
  129 + /**
  130 + * @remark :提交数据
  131 + * @name :save
  132 + * @author :lyh
  133 + * @method :post
  134 + * @time :2025/11/10 11:01
  135 + */
  136 + public function save()
  137 + {
  138 + $this->request->validate([
  139 + 'post_id' => 'required',
  140 + 'type' => 'required',
  141 + 'text' => 'required'
  142 + ], [
  143 + 'post_od.required' => 'project_id不能为空',
  144 + 'type.required' => '上传类型不能为空',
  145 + 'text' => '数据详情不为空'
  146 + ]);
  147 + if(empty($this->param['text']['image'])){
  148 + $this->response('参数错误',Code::SYSTEM_ERROR);
  149 + }
  150 + if(empty($this->param['text']['title'])){
  151 + $this->response('参数错误,标题不能为空',Code::SYSTEM_ERROR);
  152 + }
  153 + //验证当前数据是否已提交
  154 + $this->param['text'] = json_encode($this->param['text'], true);
  155 + $this->pushTicketByBots($this->param['post_id'],$this->param['type']);
  156 + if(isset($this->param['id']) && !empty($this->param['id'])){
  157 + //执行编辑
  158 + $info = $this->model->read(['id'=>$this->param['id']]);
  159 + if($info['status'] == 0){
  160 + $this->model->edit($this->param,['id'=>$this->param['id']]);
  161 + }else{
  162 + $this->response('当前状态不允许编辑', Code::SYSTEM_ERROR);
  163 + }
  164 + $this->response('success');
  165 + }else{
  166 + $info = $this->model->read(['project_id' => $this->param['project_id'], 'type' => $this->param['type'], 'text' => $this->param['text'], 'status' => 0]);
  167 + if ($info === false) {
  168 + $id = $this->model->addReturnId($this->param);
  169 + } else {
  170 + $id = $info['id'];
  171 + }
  172 + $data = ['id' => $id];
  173 + $this->response('success', Code::SUCCESS, $data);
  174 + }
  175 + }
  176 +
  177 + /**
  178 + * @remark :钉钉通知
  179 + * @name :pushTicketByBots
  180 + * @author :lyh
  181 + * @method :post
  182 + * @time :2025/11/10 11:10
  183 + */
  184 + public function pushTicketByBots($post_id,$type = 1)
  185 + {
  186 + $project = TicketProject::where('post_id', $post_id)->where('project_cate',$type)->where('is_del', 0)->first();
  187 + if (!$project){
  188 + return response()->json(['message' => '未找到对应的工单项目'], 404);
  189 + }
  190 + return $project->pushWechatGroupMsg("您好,用户已上传数据,请审核!");
  191 + }
128 } 192 }
@@ -179,7 +179,7 @@ class TicketUploadDataController extends BaseController @@ -179,7 +179,7 @@ class TicketUploadDataController extends BaseController
179 } 179 }
180 //验证当前数据是否已提交 180 //验证当前数据是否已提交
181 $this->param['text'] = json_encode($this->param['text'], true); 181 $this->param['text'] = json_encode($this->param['text'], true);
182 - $this->pushTicketByBot($this->param['project_id']); 182 + $this->pushTicketByBots($this->param['project_id']);
183 if(isset($this->param['id']) && !empty($this->param['id'])){ 183 if(isset($this->param['id']) && !empty($this->param['id'])){
184 //执行编辑 184 //执行编辑
185 $info = $this->model->read(['id'=>$this->param['id']]); 185 $info = $this->model->read(['id'=>$this->param['id']]);
@@ -202,15 +202,15 @@ class TicketUploadDataController extends BaseController @@ -202,15 +202,15 @@ class TicketUploadDataController extends BaseController
202 } 202 }
203 203
204 /** 204 /**
205 - * @remark :6.0数据推送微信  
206 - * @name :pushTicketByBot 205 + * @remark :钉钉通知
  206 + * @name :pushTicketByBots
207 * @author :lyh 207 * @author :lyh
208 * @method :post 208 * @method :post
209 - * @time :2025/11/10 10:34 209 + * @time :2025/11/10 11:07
210 */ 210 */
211 - public function pushTicketByBot($project_id) 211 + public function pushTicketByBots($project_id,$type = 2)
212 { 212 {
213 - $project = TicketProject::where('table_id', $project_id)->where('project_cate',2)->where('is_del', 0)->first(); 213 + $project = TicketProject::where('table_id', $project_id)->where('project_cate',$type)->where('is_del', 0)->first();
214 if (!$project){ 214 if (!$project){
215 return response()->json(['message' => '未找到对应的工单项目'], 404); 215 return response()->json(['message' => '未找到对应的工单项目'], 404);
216 } 216 }
1 <?php 1 <?php
2 /** 2 /**
3 * @remark : 3 * @remark :
4 - * @name :Project5CateController.php 4 + * @name :Ticket5UploadDataController.php
5 * @author :lyh 5 * @author :lyh
6 * @method :post 6 * @method :post
7 * @time :2025/11/8 09:25 7 * @time :2025/11/8 09:25
@@ -15,7 +15,7 @@ use Illuminate\Http\Request; @@ -15,7 +15,7 @@ use Illuminate\Http\Request;
15 15
16 /** 16 /**
17 * @remark :保存5.0的分类 17 * @remark :保存5.0的分类
18 - * @name :Project5CateController 18 + * @name :Ticket5UploadDataController
19 * @author :lyh 19 * @author :lyh
20 * @method :post 20 * @method :post
21 * @time :2025/11/8 09:26 21 * @time :2025/11/8 09:26
@@ -110,8 +110,8 @@ Route::prefix('ticket_upload')->group(function () { @@ -110,8 +110,8 @@ Route::prefix('ticket_upload')->group(function () {
110 Route::any('/saveLayoutDesign', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'saveLayoutDesign'])->name('ticket_upload.saveLayoutDesign'); 110 Route::any('/saveLayoutDesign', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'saveLayoutDesign'])->name('ticket_upload.saveLayoutDesign');
111 Route::any('/getLayoutDesignInfo', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'getLayoutDesignInfo'])->name('ticket_upload.getLayoutDesignInfo'); 111 Route::any('/getLayoutDesignInfo', [\App\Http\Controllers\Api\WorkOrder\TicketUploadDataController::class, 'getLayoutDesignInfo'])->name('ticket_upload.getLayoutDesignInfo');
112 //5.0获取分类 112 //5.0获取分类
113 - Route::any('/getProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'getProject5Cate'])->name('ticket_upload.getProject5Cate');  
114 - Route::any('/addProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Project5CateController::class, 'addProject5Cate'])->name('ticket_upload.addProject5Cate'); 113 + Route::any('/getProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Ticket5UploadDataController::class, 'getProject5Cate'])->name('ticket_upload.getProject5Cate');
  114 + Route::any('/addProject5Cate', [\App\Http\Controllers\Api\WorkOrder\Ticket5UploadDataController::class, 'addProject5Cate'])->name('ticket_upload.addProject5Cate');
115 115
116 }); 116 });
117 //geo设置 117 //geo设置