Przeglądaj źródła

[智价云] 通知站内信功能

tangyuanwang 5 godzin temu
rodzic
commit
8371c31512

+ 100 - 0
app/Http/Controllers/Manager/Process/Notice.php

@@ -0,0 +1,100 @@
+<?php
+
+namespace App\Http\Controllers\Manager\Process;
+
+use App\Http\Controllers\Controller;
+use App\Http\Requests\Manager\Process\Notices as Request;
+use App\Models\manager\Process\Notices as NoticesModel;
+
+/**
+ * 通知服务
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2026-03-21
+ */
+class Notice extends Controller
+{
+    /**
+     * 列表
+     * @author: 唐远望
+     * @version: 1.0
+     * @date: 2026-03-21
+     */
+    public function list(Request $Request, NoticesModel $NoticesModel)
+    {
+        // 验证规则
+        $Request->scene('list')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        // 接收参数
+        $uid = request('access_token.uid', 0);
+        $map = [];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map['company_id'] = $company_id;
+            $map['custom_uid'] = $uid;
+        } else {
+            $map['company_id'] = $admin_company_id;
+        }
+        // 接收参数
+        $status                        = request('status');
+        $limit                        = request('limit', config('page_num', 10));
+        $start_time = request('start_time', '');
+        $end_time = request('end_time', '');
+
+        // 时间条件
+        if ($start_time) $map[] = ['insert_time', '>=', strtotime($start_time . ' 00:00:00')];
+        if ($end_time) $map[]   = ['insert_time', '<=', strtotime($end_time . ' 23:59:59')];
+        if (!is_null($status))        $map[] = ['status', '=', $status];
+        // 查询系统用户
+        $result                    = $NoticesModel->where($map)->orderByDesc('id')->paginate($limit);
+        // 告知结果
+        return                        json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $result]);
+    }
+
+
+    /**
+     * 修改状态
+     * @author: 唐远望
+     * @version: 1.0
+     * @date: 2026-03-21
+     */
+    public function set_status(Request $request, NoticesModel $NoticesModel)
+    {
+        // 验证参数
+        $request->scene('set_status')->validate();
+        $admin_company_id = request('admin_company_id', '0');
+        $company_id = request('access_token.company_id', '0');
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        // 接收参数
+        $uid = request('access_token.uid', 0);
+        $map = [];
+        // 权限判断
+        if ($is_admin != 1 && $company_id != 0) {
+            $map['company_id'] = $company_id;
+            $map['custom_uid'] = $uid;
+        } else {
+            $map['company_id'] = $admin_company_id;
+        }
+        // 设置状态
+        $id                                = request('id', 0);
+        $status                            = request('status', 0);
+        $map[]                             = ['id', '=', $id];
+        // 查询用户
+        $oldData                        = $NoticesModel->where($map)->first();
+        // 如果用户不存在
+        if (!$oldData)                    return json_send(['code' => 'error', 'msg' => '通知消息记录不存在']);
+        // 执行修改
+        $result                            = $NoticesModel->where($map)->update(['status' => $status, 'update_time' => time()]);
+        // 提示新增失败
+        if (!$result)                    return json_send(['code' => 'error', 'msg' => '设置失败']);
+        // 记录行为
+        $admin_id   = request('access_token.uid', 0); //用户ID
+        $table_name = $NoticesModel->getTable();
+        $notes_type = 2; //操作类型,1添加,2修改,3=删除
+        $this->addAdminHistory('系统通知', 0, $admin_id, $is_admin, $table_name, $notes_type, [], ['status' => $status], "修改了记录ID为:$id 的通知状态");
+        // 告知结果
+        return                          json_send(['code' => 'success', 'msg' => '设置成功', 'data' => '']);
+    }
+}

+ 69 - 0
app/Http/Requests/Manager/Process/Notices.php

@@ -0,0 +1,69 @@
+<?php
+
+namespace App\Http\Requests\Manager\Process;
+
+use App\Http\Requests\BaseRequest;
+
+/**
+ * 通知处理请求类
+ * @author 唐远望
+ * @version 1.0
+ * @date 2026-03-21
+ * 
+ */
+class Notices extends BaseRequest
+{
+    /**
+     * 获取应用于请求的规则
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        // 返回结果
+        return      [
+            'name'                 => 'required',
+            'id'                => 'required|integer|gt:0',
+            'status'            => 'required|integer|in:0,1',
+            'page'              => 'integer|min:1',
+            'limit'             => 'integer|min:1',
+            'status'            => 'required|integer|in:0,1',
+        ];
+    }
+
+
+    // 场景列表
+    protected   $scenes         = [
+        'detail'             => ['id'],
+        'list'               => ['page', 'limit'],
+        'add'                      => [],
+        'edit'                      => [],
+        'set_status'              => ['id', 'status'],
+        'set_processing_status'   => ['id'],
+        'delete'                  => ['id'],
+        'data_cleaning'           => [''],
+        'export_excel'            => ['']
+    ];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @return array
+     */
+    public function messages()
+    {
+        return [
+            'name.required'     => '名称必填',
+            'id.required'       => 'ID未知',
+            'id.integer'        => 'ID格式错误',
+            'id.gt'               => 'ID格式错误',
+            'status.required'   => '状态未知',
+            'status.integer'    => '状态格式错误',
+            'status.in'         => '状态格式错误',
+            'page.integer'      => '页码格式错误',
+            'page.min'          => '页码格式错误',
+            'limit.integer'     => '每页数量格式错误',
+            'limit.min'         => '每页数量格式错误',
+        ];
+    }
+}

+ 4 - 0
routes/manager.php

@@ -273,6 +273,10 @@ Route::any('process/violation_store/delete', [App\Http\Controllers\Manager\Proce
 Route::any('process/violation_store/data_cleaning', [App\Http\Controllers\Manager\Process\ViolationStore::class, 'data_cleaning']);
 // 违规处理-违规店铺-导出Excel
 Route::any('process/violation_store/export_excel', [App\Http\Controllers\Manager\Process\ViolationStore::class, 'export_excel']);
+//违规处理-通知列表
+Route::any('process/notice/list', [App\Http\Controllers\Manager\Process\Notice::class, 'list']);
+//违规处理-通知修改状态
+Route::any('process/notice/set_status', [App\Http\Controllers\Manager\Process\Notice::class, 'set_status']);
 
 // 获取签名上传地址
 Route::any('upload/get_sign_url',[App\Http\Controllers\Manager\Upload::class,'get_sign_url']);