"aliyun", "engine" => [ "aliyun" => [ "bucket" => Config::get('aliyunoss.bucket'), "access_key_id" => Config::get('aliyunoss.access_key_id'), "access_key_secret" => Config::get('aliyunoss.access_key_secret'), "domain" => Config::get('aliyunoss.domain'), ] ] ]; } public static function lists($get) { $where = []; if (!empty($get['title']) and $get['title']) { $where[] = ['title', 'like', '%' . $get['title'] . '%']; } $where[] = ['delete_time', '=', 0]; $model = new MallNews(); $lists = $model->field(true) ->where($where) ->order('sort desc, create_time desc') ->paginate([ 'page' => $get['page'], 'list_rows' => $get['limit'], 'var_page' => 'page' ]) ->toArray(); return ['count' => $lists['total'], 'lists' => $lists['data']]; } // 获取详情 public static function detail($id) { $result = MallNews::with('files')->where(['id' => $id, 'delete_time' => 0])->find(); if (isset($result['files'])) { foreach ($result['files'] as &$v) { if ($result['type'] == 0) { $v['src'] = UrlServer::getFileUrl('uploads/images/' . $v['src']); } else { $v['src'] = Config::get('aliyunoss.domain') . self::$FILE_VIDEO_PATH . '/'. $v['src']; } } } if ($result['mall_type'] == 0) { $result['shop'] = Db::name('goods')->where('id', $result['shop_id'])->select()->toArray(); } else { $result['shop'] = MallNewsShop::alias('mns') ->join('goods g', 'mns.shop_id = g.id') ->field('mns.id, g.id as gid, g.name') ->where(['mns.delete_time' => 0])->whereIn('mns.id', $result['mall_news_goods_id'])->select()->toArray(); } return $result; } // 添加表单信息 public static function create($form) { $result = self::checkForm($form); if (isset($result['code']) && $result['code'] == -1) { return $result; } $form['create_time'] = time(); $file = $result['data']; if ($form['mall_type'] == 1) { $form['mall_news_goods_id'] = substr( $form['shop_id'], 1); $form['shop_id'] = 0; } $id = MallNews::insertGetId($form); if (is_array($file)) { foreach ($file as &$v) { MallNewsFile::create([ 'mall_news_id' => $id, 'src' => basename($v) ]); } } else { MallNewsFile::create([ 'mall_news_id' => $id, 'src' => basename($file) ]); } return ['code' => 1, 'msg' => '添加成功']; } // 修改表单信息 public static function edit($form) { $result = self::checkForm($form); if (isset($result['code']) && $result['code'] == -1) { return $result; } $form['update_time'] = time(); $file = $result['data']; if ($form['mall_type'] == 1) { $form['mall_news_goods_id'] = $form['shop_id']; $form['shop_id'] = 0; } MallNews::where('id', $form['id'])->update($form); if (is_array($file)) { MallNewsFile::where('mall_news_id', $form['id'])->delete(); foreach ($file as &$v) { MallNewsFile::create([ 'mall_news_id' => $form['id'], 'src' => basename($v) ]); } } else { MallNewsFile::where('mall_news_id', $form['id'])->delete(); MallNewsFile::create([ 'mall_news_id' => $form['id'], 'src' => basename($file) ]); } return ['code' => 1, 'msg' => '修改成功']; } // 上传视频 public static function uploadVideo() { $file = request()->file('file'); if ($file->getSize() > self::$MAX_UPLOAD_SIZE * 1024 * 1024) { return ['code' => -1, 'msg' => '视频最大上传为' . self::$MAX_UPLOAD_SIZE . 'Mb']; } $StorageDriver = new StorageDriver(self::config()); $StorageDriver->setUploadFile('file'); if (!$StorageDriver->upload(self::$FILE_VIDEO_PATH)) { return ['code' => -1, 'msg' => '上传错误']; } $fileName = $StorageDriver->getFileName(); if ($fileName) { return ['code' => 1, 'msg' => '', 'data' => array('file' => Config::get('aliyunoss.domain') . self::$FILE_VIDEO_PATH . '/'. $fileName)]; } return ['code' => -1, 'msg' => '上传失败']; } // 删除视频 public static function delVideo($file) { if (!$file) { return false; } $file = self::$FILE_VIDEO_PATH . '/' . basename($file); $StorageDriver = new StorageDriver(self::config()); $StorageDriver->delete($file); } // 删除文章 public static function del($id) { $result = MallNews::where([ 'id' => $id ])->update([ 'delete_time' => time(), ]); if ($result) { return true; } return false; } // 快讯商品列表 public static function shop_list($get) { $where[] = ['mns.delete_time', '=', 0]; $model = new MallNewsShop(); $lists = $model->alias('mns') ->join('goods g', 'mns.shop_id = g.id') ->field('mns.id, g.id as gid, g.name, g.image') ->where($where) ->order('mns.create_time desc') ->paginate([ 'page' => $get['page'], 'list_rows' => $get['limit'], 'var_page' => 'page' ]) ->toArray(); return ['count' => $lists['total'], 'lists' => $lists['data']]; } // 获取快讯商品详情 public static function shop_detail($id) { $result = MallNewsShop::with('files')->where(['id' => $id, 'delete_time' => 0])->find(); if (isset($result['files'])) { foreach ($result['files'] as &$v) { if ($result['type'] == 0) { $v['src'] = UrlServer::getFileUrl('uploads/images/' . $v['src']); } else { $v['src'] = Config::get('aliyunoss.domain') . self::$FILE_VIDEO_PATH . '/'. $v['src']; } } } $result['shop'] = Db::name('goods')->where('id', $result['shop_id'])->find(); return $result; } // 创建快讯商品 public static function create_shop($post) { $arr['shop_id'] = $post['shop_id']; $arr['content'] = $post['content']; $arr['create_time'] = time(); $id = MallNewsShop::insertGetId($arr); if (isset($post['mall_news_images'])) { foreach ($post['mall_news_images'] as &$v) { MallNewsFile::create([ 'mall_news_shop_id' => $id, 'src' => basename($v) ]); } } return ['code' => 1, 'msg' => '添加成功']; } // 修改表单信息 public static function edit_shop($post) { $arr['shop_id'] = $post['shop_id']; $arr['content'] = $post['content']; $arr['update_time'] = time(); MallNewsShop::where('id', $post['id'])->update($arr); if (isset($post['mall_news_images'])) { MallNewsFile::where('mall_news_shop_id', $post['id'])->delete(); foreach ($post['mall_news_images'] as &$v) { MallNewsFile::create([ 'mall_news_shop_id' => $post['id'], 'src' => basename($v) ]); } } return ['code' => 1, 'msg' => '修改成功']; } // 删除文章 public static function del_shop($id) { $result = MallNewsShop::where([ 'id' => $id ])->update([ 'delete_time' => time(), ]); if ($result) { return true; } return false; } private static function checkForm(&$form) { if (empty($form)) { return ['code' => -1, 'msg' => '表单内容为空']; } $file = []; unset($form['file']); if (!empty($form['sort']) && !is_numeric($form['sort'])) { return ['code' => -1, 'msg' => '请输入整数']; } if ($form['mall_type'] == 1) { $form['type'] = 0; } if ($form['type'] == 0) { // 文章类型 if (isset($form['mall_news_images'])) { $file = $form['mall_news_images']; if (count($form['mall_news_images']) > 6) { return ['code' => -1, 'msg' => '上传图片数量超过限制']; } unset($form['mall_news_images']) ; } unset($form['video_file']); } else if ($form['type'] == 1) { // 视频类型 if (!empty($form['video_file'])) { $file = $form['video_file']; unset($form['video_file']); } if (isset($form['mall_news_images'])) { unset($form['mall_news_images']) ; } } return ['code' => 1, 'data' => $file]; } }