Merge remote-tracking branch 'origin/master' into akun
正在显示
6 个修改的文件
包含
83 行增加
和
14 行删除
| @@ -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设置 |
-
请 注册 或 登录 后发表评论