Ver Fonte

[智价云] 官网留言后台管理

tangyuanwang há 1 semana atrás
pai
commit
1da8ef0e3b

+ 120 - 0
app/Http/Controllers/Manager/Website/LeadMessage.php

@@ -0,0 +1,120 @@
+<?php
+
+namespace App\Http\Controllers\Manager\Website;
+
+use App\Http\Controllers\Controller;
+use App\Http\Requests\Manager\Website\LeadMessage as Request;
+use App\Models\Manager\Website\LeadMessage as LeadMessageModel;
+
+/**
+ * 官网潜在客户留言
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2026-03-05
+ */
+class LeadMessage extends Controller
+{
+    /**
+     * 列表
+     * @author: 唐远望
+     * @version: 1.0
+     * @date: 2026-03-05
+     */
+    public function list(Request $Request, LeadMessageModel $LeadMessageModel)
+    {
+        // 验证规则
+        $Request->scene('list')->validate();
+        // 接收参数
+        $phone                        = request('phone', '');
+        $companyName                = request('company_name', '');
+        $status                        = request('status');
+        $limit                        = request('limit', config('page_num', 10));
+        $start_time = request('start_time', '');
+        $end_time = request('end_time', '');
+        // 查询数据
+        $map                         = [];
+        // 时间条件
+        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 ($phone)                $map[] = ['phone', '=', $phone];
+        if ($companyName)            $map[] = ['company_name', 'like', "%$companyName%"];
+        if (!is_null($status))        $map[] = ['status', '=', $status];
+        // 查询系统用户
+        $Paginator                    = $LeadMessageModel->query()->where($map)->orderByDesc('id')->paginate($limit, ['id', 'phone', 'company_name', 'position', 'remarks', 'status', 'insert_time', 'update_time']);
+        // 获取数据
+        $data['total']                = $Paginator->total();
+        $data['current_page']        = $Paginator->currentPage();
+        $data['per_page']            = (int)$Paginator->perPage();
+        $data['last_page']            = $Paginator->lastPage();
+        $data['data']                = $Paginator->items();
+        // 告知结果
+        return                        json_send(['code' => 'success', 'msg' => '获取成功', 'data' => $data]);
+    }
+
+    /**
+     * 新增
+     * @author: 唐远望
+     * @version: 1.0
+     * @date: 2026-03-05
+     */
+    public function add(Request $Request, LeadMessageModel $LeadMessageModel)
+    {
+        // 验证规则
+        $Request->scene('add')->validate();
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        // 接收数据
+        $data['phone']                        = request('phone', '');
+        $data['company_name']                = request('company_name', '未知');
+        $data['position']                    = request('position', '未知');
+        $data['remarks']                    = request('remarks', '');
+        // 查询用户
+        $oldData                            = $LeadMessageModel->where([['phone', '=', $data['phone']]])->first(['id', 'phone', 'status']);
+        // 存在的话
+        if ($oldData)                      return json_send(['code' => 'success', 'msg' => '留言成功', 'data' => $oldData]);
+        // 写入表
+        $data['id']                            = $LeadMessageModel->add($data);
+        // // 失败返回
+        if (!$data['id'])                  return json_send(['code' => 'error', 'msg' => '提交失败,请重试']);
+        // 记录行为
+        $admin_id   = request('access_token.uid', 0); //用户ID
+        $table_name = $LeadMessageModel->getTable();
+        $notes_type = 1; //操作类型,1添加,2修改,3=删除
+        $this->addAdminHistory('官网留言管理', 0, $admin_id, $is_admin, $table_name, $notes_type, [], $data, '新增了留言');
+        // 返回结果
+        return                                json_send(['code' => 'success', 'msg' => '留言成功', 'data' => '']);
+    }
+
+
+    /**
+     * 修改状态
+     * @author: 唐远望
+     * @version: 1.0
+     * @date: 2026-03-05
+     */
+    public function set_status(Request $request, LeadMessageModel $LeadMessageModel)
+    {
+        // 验证参数
+        $request->scene('set_status')->validate();
+        $is_admin = request('access_token.is_admin', '0'); //是否管理员操作 0=是1=否
+        // 设置状态
+        $id                                = request('id', 0);
+        $status                            = request('status', 0);
+        $remarks                        = request('remarks', '');
+        // 查询用户
+        $oldData                        = $LeadMessageModel->where([['id', '=', $id]])->first();
+        // 如果用户不存在
+        if (!$oldData)                    return json_send(['code' => 'error', 'msg' => '用户不存在']);
+        // 执行修改
+        $result                            = $LeadMessageModel->where([['id', '=', $id]])->update(['status' => $status, 'remarks' => $remarks,'update_time' => time()]);
+        // 提示新增失败
+        if (!$result)                    return json_send(['code' => 'error', 'msg' => '设置失败']);
+        // 记录行为
+        $admin_id   = request('access_token.uid', 0); //用户ID
+        $table_name = $LeadMessageModel->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' =>'']);
+    }
+}

+ 75 - 0
app/Http/Requests/Manager/Website/LeadMessage.php

@@ -0,0 +1,75 @@
+<?php
+
+namespace App\Http\Requests\Manager\Website;
+
+use App\Http\Requests\BaseRequest;
+
+/**
+ * 官网潜在客户留言-接口验证
+ * @author 唐远望
+ * @version 1.0
+ * @date 2026-03-05
+ * 
+ */
+class LeadMessage 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',
+            'phone'             => 'required|regex:/^1[34578]\d{9}$/|unique:website_lead_message,phone',
+            'company_name'      => 'required',
+            'position'          => 'required',
+            'remarks'           => 'required',
+        ];
+    }
+
+
+    // 场景列表
+    protected   $scenes         = [
+        'detail'             => ['id'],
+        'list'               => ['page', 'limit'],
+        'add'                      => ['phone', 'company_name', 'position', 'remarks'],
+        'edit'                  => ['id', 'name'],
+        'set_status'              => ['id', 'status'],
+        'delete'                  => ['id'],
+    ];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @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'         => '每页数量格式错误',
+            'phone.required'    => '手机号码必填',
+            'phone.regex'       => '手机号码格式错误',
+            'phone.unique'      => '手机号码已存在',
+            'company_name.required' => '公司名称必填',
+            'position.required' => '职位必填',
+            'remarks.required'  => '留言内容必填',
+        ];
+    }
+}

+ 24 - 0
app/Models/Manager/Website/LeadMessage.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Models\Manager\Website;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 官网潜在客户留言模型
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2026-03-05
+ */
+class LeadMessage extends Model
+{
+    use HasFactory;
+    // 与模型关联的表名
+    protected $table = 'website_lead_message';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+}

+ 6 - 1
routes/manager.php

@@ -365,4 +365,9 @@ Route::any('statistics/basic_panel/get_low_price_platform_province_count', [App\
 //数据概况-禁止挂网平台分布
 Route::any('statistics/basic_panel/get_violation_platform_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_platform_count']);
 //数据概况-禁止挂网平台省份分布
-Route::any('statistics/basic_panel/get_violation_platform_province_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_platform_province_count']);
+Route::any('statistics/basic_panel/get_violation_platform_province_count', [App\Http\Controllers\Manager\Statistics\BasicPanel::class, 'get_violation_platform_province_count']);
+
+// 潜在客户留言-列表
+Route::any('website/lead_message/list', [App\Http\Controllers\Manager\Website\LeadMessage::class, 'list']);
+// 潜在客户留言-修改状态
+Route::any('website/lead_message/set_status', [App\Http\Controllers\Manager\Website\LeadMessage::class,'set_status']);