// +---------------------------------------------------------------------- namespace App\Services\Common; use App\Models\SocialCirclesModel; use App\Services\BaseService; /** * 生活圈推荐应用-服务类 * @author laravel开发员 * @since 2024/12/28 * Class SocialCirclesService * @package App\Services\Common */ class SocialCirclesService extends BaseService { /** * 构造函数 * @author laravel开发员 * @since 2024/12/28 * SocialCirclesService constructor. */ public function __construct() { $this->model = new SocialCirclesModel(); } /** * 添加或编辑 * @return array * @since 2024/12/28 * @author laravel开发员 */ public function edit() { $data = request()->all(); // 图片处理:将完整URL转换为相对路径 if (isset($data['logo'])) { if (empty($data['logo'])) { // 空值保存为空字符串 $data['logo'] = ''; } else { // 转换完整URL为相对路径 $imagePath = get_image_path($data['logo']); // get_image_path返回false时也保存为空字符串 $data['logo'] = $imagePath !== false ? $imagePath : ''; } } else { $data['logo'] = ''; } // 如果是Web类型,确保有链接地址 if (isset($data['link_type']) && $data['link_type'] == 1) { if (empty($data['link_url'])) { return message('Web类型必须填写链接地址', false); } } // 如果是小程序类型,确保有app_id if (isset($data['link_type']) && $data['link_type'] == 2) { if (empty($data['app_id'])) { return message('小程序类型必须填写AppID', false); } } return parent::edit($data); } /** * 获取详情信息(编辑时使用,保持logo相对路径) */ public function info() { $id = request()->input("id", 0); $info = []; if ($id) { // 传入false参数,保持logo相对路径,供上传组件使用 $info = $this->model->getInfo($id, true); } return message(MESSAGE_OK, true, $info); } /** * 获取列表数据(列表显示时logo已自动转换为完整URL) */ public function getList() { // 调用父类方法获取列表数据 // BaseService会循环调用model->getInfo(),默认参数true会自动转换logo为完整URL return parent::getList(); } /** * 修改状态 */ public function status() { $params = request()->all(); $id = isset($params['id']) ? intval($params['id']) : 0; $status = isset($params['status']) ? intval($params['status']) : 0; if (!$id) { return ['code' => 1, 'msg' => 'ID不能为空']; } if (!$status || ($status != 1 && $status != 2)) { return ['code' => 1, 'msg' => '状态参数错误']; } $result = $this->model->where('id', $id)->update([ 'status' => $status, 'update_time' => time() ]); if ($result !== false) { return ['code' => 0, 'msg' => '状态修改成功']; } return ['code' => 1, 'msg' => '状态修改失败']; } }