Просмотр исходного кода

[智价云] 订阅消息模板设置

tangyuanwang 11 часов назад
Родитель
Сommit
ae09c2b08b

+ 57 - 0
app/Http/Controllers/Api/User/SubscriptionTmp.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace App\Http\Controllers\Api\User;
+
+use App\Http\Controllers\Api\Api;
+use App\Http\Requests\Api\User\SubscriptionTmp as Request;
+use App\Models\Api\User\SubscriptionTmp as SubscriptionTmpModel;
+
+
+/**
+ * 用户订阅消息
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2026-04-08
+ */
+class SubscriptionTmp extends Api
+{
+    /**
+     * 订阅模板设置
+     * @author: 唐远望
+     * @version: 1.0
+     * @date: 2026-04-01
+     */
+    public function set(Request $Request, SubscriptionTmpModel $SubscriptionTmpModel)
+    {
+        // 验证规则
+        $Request->scene('set')->validate();
+        $user_info = $this->checkLogin();
+        if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
+        $user_id = $user_info['uid'];
+        $open_subscribe = request('open_subscribe', 0);
+        // 接收数据
+        $tmplate_id = request('tmplate_id', '');
+        $data['tmplate_id']                        = $tmplate_id;
+        $data['open_subscribe']                    = $open_subscribe; //订阅开关0=开启1=关闭
+        $data['user_id']                    = $user_id;
+        $data['insert_time']                    = time();
+        try {
+            // 查询用户
+            $config_data = $SubscriptionTmpModel->where([['user_id', '=', $user_id], ['tmplate_id', '=', $tmplate_id]])->first();
+            // 存在的话
+            if ($config_data) {
+                // 更新数据
+                $config_data->open_subscribe = $data['open_subscribe'];
+                $config_data->update_time = time();
+                $config_data->save();
+            } else {
+                //写入数据
+                $SubscriptionTmpModel->insert($data);
+            }
+        } catch (\Exception $e) {
+            return json_send(['code' => 'error', 'msg' => '操作失败', 'data' => $e->getMessage()]);
+        }
+        // 返回结果
+        return json_send(['code' => 'success', 'msg' => '操作成功', 'data' => '']);
+    }
+}

+ 66 - 0
app/Http/Requests/Api/User/SubscriptionTmp.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace App\Http\Requests\Api\User;
+
+use App\Http\Requests\BaseRequest;
+
+/**
+ * 订阅消息
+ * @author 唐远望
+ * @version 1.0
+ * @date 2026-04-08
+ * 
+ */
+class SubscriptionTmp 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',
+            'tmplate_id'      => 'required',
+        ];
+    }
+
+
+    // 场景列表
+    protected   $scenes         = [
+        'detail'             => ['id'],
+        'list'               => ['page', 'limit'],
+        'set'                      => ['tmplate_id'],
+        'edit'                  => ['tmplate_id'],
+        'detail'                  => [''],
+    ];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @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'         => '每页数量格式错误',
+            'tmplate_id.required' => '模板ID未知',
+        ];
+    }
+}

+ 24 - 0
app/Models/Api/User/SubscriptionTmp.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Models\Api\User;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 用户订阅消息模板
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2026-04-08
+ */
+class SubscriptionTmp extends Model
+{
+    use HasFactory;
+    // 与模型关联的表名
+    protected $table = 'user_subscription_tmp';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+}

+ 2 - 0
routes/api.php

@@ -33,6 +33,8 @@ Route::any('login/wechat_phone', [App\Http\Controllers\Api\Login::class, 'wechat
 Route::any('wechat/official/callback', [App\Http\Controllers\Api\Wechat\OfficialNotify::class, 'callback']);
 //公众号测试推送
 Route::any('wechat/official/test', [App\Http\Controllers\Api\Wechat\OfficialNotify::class, 'test']);
+//订阅模板设置
+Route::any('user/subscription_tmp/set', [App\Http\Controllers\Api\User\SubscriptionTmp::class, 'set']);
 
 // ------违规处理------
 // 低价挂网商品违规处理-列表