SubscriptionTmp.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers\Api\User;
  3. use App\Http\Controllers\Api\Api;
  4. use App\Http\Requests\Api\User\SubscriptionTmp as Request;
  5. use App\Models\Api\User\SubscriptionTmp as SubscriptionTmpModel;
  6. /**
  7. * 用户订阅消息
  8. * @author: 唐远望
  9. * @version: 1.0
  10. * @date: 2026-04-08
  11. */
  12. class SubscriptionTmp extends Api
  13. {
  14. /**
  15. * 订阅模板设置
  16. * @author: 唐远望
  17. * @version: 1.0
  18. * @date: 2026-04-01
  19. */
  20. public function set(Request $Request, SubscriptionTmpModel $SubscriptionTmpModel)
  21. {
  22. // 验证规则
  23. $Request->scene('set')->validate();
  24. $user_info = $this->checkLogin();
  25. if (!$user_info) return json_send(['code' => 'error', 'msg' => '请先登录']);
  26. $user_id = $user_info['uid'];
  27. $open_subscribe = request('open_subscribe', 0);
  28. // 接收数据
  29. $tmplate_id = request('tmplate_id', '');
  30. $data['tmplate_id'] = $tmplate_id;
  31. $data['open_subscribe'] = $open_subscribe; //订阅开关0=开启1=关闭
  32. $data['user_id'] = $user_id;
  33. $data['insert_time'] = time();
  34. try {
  35. // 查询用户
  36. $config_data = $SubscriptionTmpModel->where([['user_id', '=', $user_id], ['tmplate_id', '=', $tmplate_id]])->first();
  37. // 存在的话
  38. if ($config_data) {
  39. // 更新数据
  40. $config_data->open_subscribe = $data['open_subscribe'];
  41. $config_data->update_time = time();
  42. $config_data->save();
  43. } else {
  44. //写入数据
  45. $SubscriptionTmpModel->insert($data);
  46. }
  47. } catch (\Exception $e) {
  48. return json_send(['code' => 'error', 'msg' => '操作失败', 'data' => $e->getMessage()]);
  49. }
  50. // 返回结果
  51. return json_send(['code' => 'success', 'msg' => '操作成功', 'data' => '']);
  52. }
  53. }