SocialCirclesService.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2017~2021 LARAVEL研发中心
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://www.laravel.cn
  8. // +----------------------------------------------------------------------
  9. // | Author: laravel开发员 <laravel.qq.com>
  10. // +----------------------------------------------------------------------
  11. namespace App\Services\Common;
  12. use App\Models\SocialCirclesModel;
  13. use App\Services\BaseService;
  14. /**
  15. * 生活圈推荐应用-服务类
  16. * @author laravel开发员
  17. * @since 2024/12/28
  18. * Class SocialCirclesService
  19. * @package App\Services\Common
  20. */
  21. class SocialCirclesService extends BaseService
  22. {
  23. /**
  24. * 构造函数
  25. * @author laravel开发员
  26. * @since 2024/12/28
  27. * SocialCirclesService constructor.
  28. */
  29. public function __construct()
  30. {
  31. $this->model = new SocialCirclesModel();
  32. }
  33. /**
  34. * 添加或编辑
  35. * @return array
  36. * @since 2024/12/28
  37. * @author laravel开发员
  38. */
  39. public function edit()
  40. {
  41. $data = request()->all();
  42. // 图片处理:将完整URL转换为相对路径
  43. if (isset($data['logo'])) {
  44. if (empty($data['logo'])) {
  45. // 空值保存为空字符串
  46. $data['logo'] = '';
  47. } else {
  48. // 转换完整URL为相对路径
  49. $imagePath = get_image_path($data['logo']);
  50. // get_image_path返回false时也保存为空字符串
  51. $data['logo'] = $imagePath !== false ? $imagePath : '';
  52. }
  53. } else {
  54. $data['logo'] = '';
  55. }
  56. // 如果是Web类型,确保有链接地址
  57. if (isset($data['link_type']) && $data['link_type'] == 1) {
  58. if (empty($data['link_url'])) {
  59. return message('Web类型必须填写链接地址', false);
  60. }
  61. }
  62. // 如果是小程序类型,确保有app_id
  63. if (isset($data['link_type']) && $data['link_type'] == 2) {
  64. if (empty($data['app_id'])) {
  65. return message('小程序类型必须填写AppID', false);
  66. }
  67. }
  68. return parent::edit($data);
  69. }
  70. /**
  71. * 获取详情信息(编辑时使用,保持logo相对路径)
  72. */
  73. public function info()
  74. {
  75. $id = request()->input("id", 0);
  76. $info = [];
  77. if ($id) {
  78. // 传入false参数,保持logo相对路径,供上传组件使用
  79. $info = $this->model->getInfo($id, true);
  80. }
  81. return message(MESSAGE_OK, true, $info);
  82. }
  83. /**
  84. * 获取列表数据(列表显示时logo已自动转换为完整URL)
  85. */
  86. public function getList()
  87. {
  88. // 调用父类方法获取列表数据
  89. // BaseService会循环调用model->getInfo(),默认参数true会自动转换logo为完整URL
  90. return parent::getList();
  91. }
  92. /**
  93. * 修改状态
  94. */
  95. public function status()
  96. {
  97. $params = request()->all();
  98. $id = isset($params['id']) ? intval($params['id']) : 0;
  99. $status = isset($params['status']) ? intval($params['status']) : 0;
  100. if (!$id) {
  101. return ['code' => 1, 'msg' => 'ID不能为空'];
  102. }
  103. if (!$status || ($status != 1 && $status != 2)) {
  104. return ['code' => 1, 'msg' => '状态参数错误'];
  105. }
  106. $result = $this->model->where('id', $id)->update([
  107. 'status' => $status,
  108. 'update_time' => time()
  109. ]);
  110. if ($result !== false) {
  111. return ['code' => 0, 'msg' => '状态修改成功'];
  112. }
  113. return ['code' => 1, 'msg' => '状态修改失败'];
  114. }
  115. }