|
@@ -0,0 +1,291 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\JsonRpc;
|
|
|
+
|
|
|
+use App\Model\FooterCategory;
|
|
|
+use App\Model\Website;
|
|
|
+use App\Model\FooterContent;
|
|
|
+use App\Model\Web;
|
|
|
+use Hyperf\RpcServer\Annotation\RpcService;
|
|
|
+use App\Tools\Result;
|
|
|
+use Hyperf\DbConnection\Db;
|
|
|
+
|
|
|
+
|
|
|
+class FooterService implements FooterServiceInterface
|
|
|
+{
|
|
|
+
|
|
|
+ * 获取底部导航
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getFooterCategory(array $data): array
|
|
|
+ {
|
|
|
+ $where = [];
|
|
|
+ if(isset($data['website_name'])){
|
|
|
+ array_push($where, ['website.website_name','like','%'.$data['website_name'].'%']);
|
|
|
+ }
|
|
|
+ if(isset($data['name'])){
|
|
|
+ array_push($where, ['footer_category.name','like','%'.$data['name'].'%']);
|
|
|
+ }
|
|
|
+ $query = FooterCategory::when(!empty($where), function ($query) use ($where) {
|
|
|
+ $query->where($where);
|
|
|
+ });
|
|
|
+ $rep = $query->leftJoin("website","website.id","footer_category.website_id")
|
|
|
+ ->select("footer_category.*","website.website_name","website.id as website_id")
|
|
|
+ ->limit($data['pageSize'])->offset(($data['page']-1)*$data['pageSize'])->orderBy("updated_at","desc")
|
|
|
+ ->get();
|
|
|
+ $count = $query->count();
|
|
|
+
|
|
|
+ $result = [];
|
|
|
+ $result = [
|
|
|
+ 'rows'=>$rep,
|
|
|
+ 'count'=>$count
|
|
|
+ ];
|
|
|
+ if($count == 0){
|
|
|
+ return Result::error("没有查到相关数据!");
|
|
|
+ }
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+
|
|
|
+ * 添加底部导航
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addFooterCategory(array $data): array
|
|
|
+ {
|
|
|
+ if(empty($data)){
|
|
|
+ $result = Website::select('website_name','id')->get();
|
|
|
+ }else{
|
|
|
+
|
|
|
+ $webid = Website::select('website_name','id')->where('id',$data['website_id'])->first();
|
|
|
+ if(empty($webid)){
|
|
|
+ return Result::error("该网站不存在!");
|
|
|
+ }
|
|
|
+
|
|
|
+ $name = FooterCategory::where('website_id',$data['website_id'])->where('name',$data['name'])->first();
|
|
|
+ if(!empty($name)){
|
|
|
+ return Result::error("该底部导航名称已存在!");
|
|
|
+ }
|
|
|
+ $result = FooterCategory::insertGetId($data);
|
|
|
+ }
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("添加失败!");
|
|
|
+ }else{
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ * 修改底部导航
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function upFooterCategory(array $data): array
|
|
|
+ {
|
|
|
+ $footer_category = FooterCategory::where('id', $data['id'])->first();
|
|
|
+ if(empty($footer_category)) {
|
|
|
+ return Result::error("该底部导航不存在!");
|
|
|
+ }
|
|
|
+ if(empty($data['website_id'])){
|
|
|
+ $web = Website::select('website_name','id')->get();
|
|
|
+ $footer_category = FooterCategory::where('footer_category.id',$data['id'])
|
|
|
+ ->leftJoin("website","website.id","footer_category.website_id")
|
|
|
+ ->select("footer_category.*","website.website_name","website.id as website_id")
|
|
|
+ ->first();
|
|
|
+ if(isset($data['name'])){
|
|
|
+ $footer_category['name'] = $data['name'];
|
|
|
+ }
|
|
|
+ $result = [
|
|
|
+ 'rows'=>$footer_category,
|
|
|
+ 'web'=>$web
|
|
|
+ ];
|
|
|
+ }else{
|
|
|
+ $all_categories = FooterCategory::where('website_id',$data['website_id'])->pluck('name')->toArray();
|
|
|
+
|
|
|
+ if (in_array($data['name'], $all_categories)) {
|
|
|
+ return Result::error("修改后的底部导航名称已存在!");
|
|
|
+ }
|
|
|
+ $webid = Website::where('id',$data['website_id'])->first();
|
|
|
+ if(empty($webid)){
|
|
|
+ return Result::error("该网站不存在!");
|
|
|
+ }
|
|
|
+ $result = FooterCategory::where('id', $data['id'])->update($data);
|
|
|
+ }
|
|
|
+ if (empty($result)) {
|
|
|
+ return Result::error("修改失败!");
|
|
|
+ }else{
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ * 删除底部导航
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function delFooterCategory(array $data): array
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try{
|
|
|
+ $footer_category = FooterCategory::where('id', $data['id'])->first();
|
|
|
+ if (!$footer_category) {
|
|
|
+ return Result::error("该底部导航不存在!");
|
|
|
+ }else{
|
|
|
+ $result['footer_category'] = FooterCategory::where('id', $data['id'])->delete();
|
|
|
+ $result['footer_content'] = FooterContent::where('fcat_id', $data['id'])->delete();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ } catch(\Throwable $ex){
|
|
|
+ Db::rollBack();
|
|
|
+ var_dump($ex->getMessage());
|
|
|
+ return Result::error("删除失败",0);
|
|
|
+ }
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+
|
|
|
+ * 添加底部导航(列表)内容
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addFooterContent(array $data): array
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $cat = FooterCategory::where('id', $data['fcat_id'])->first();
|
|
|
+ if (!$cat) {
|
|
|
+ return Result::error("该底部导航不存在!");
|
|
|
+ }
|
|
|
+ if($cat['type'] != $data['type']){
|
|
|
+ return Result::error("请输入正确的底部导航类型!");
|
|
|
+ }
|
|
|
+ if($cat['type'] == 0){
|
|
|
+ $content = FooterContent::where('fcat_id', $data['fcat_id'])->first();
|
|
|
+ if(!empty($content)){
|
|
|
+ return Result::error("该底部导航已添加内容!");
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+
|
|
|
+ if(!isset($data['list_title']) || empty($data['list_title'])){
|
|
|
+ return Result::error("请输入底部导航列表标题!");
|
|
|
+ }
|
|
|
+ $content = FooterContent::where('fcat_id', $data['fcat_id'])->where('list_title',$data['list_title'])->first();
|
|
|
+ if(!empty($content)){
|
|
|
+ return Result::error("该列表标题已存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ unset($data['type']);
|
|
|
+ $result = FooterContent::insertGetId($data);
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("添加失败!");
|
|
|
+ }else{
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ * 获取底部导航(列表)内容
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getFooterContent(array $data): array
|
|
|
+ {
|
|
|
+
|
|
|
+ $where = [];
|
|
|
+ array_push($where, ['fcat_id',$data['fcat_id']]);
|
|
|
+ $type = FooterCategory::where('id', $data['fcat_id'])->value('type');
|
|
|
+ if($type == 1){
|
|
|
+ if(isset($data['list_title'])){
|
|
|
+ array_push($where, ['list_title','like','%'.$data['list_title'].'%']);
|
|
|
+ }
|
|
|
+ if(isset($data['con_title'])){
|
|
|
+ array_push($where, ['con_title','like','%'.$data['con_title'].'%']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $rep = FooterContent::where($where)
|
|
|
+ ->leftJoin('footer_category','footer_category.id','fcat_id')
|
|
|
+ ->select('footer_content.*','footer_category.type')
|
|
|
+ ->limit($data['pageSize'])
|
|
|
+ ->offset(($data['page']-1)*$data['pageSize'])
|
|
|
+ ->orderBy("updated_at","desc")
|
|
|
+ ->get();
|
|
|
+ $count = FooterContent::where($where)->count();
|
|
|
+ if($count == 0){
|
|
|
+ return Result::error("没有查到相关数据!");
|
|
|
+ }else{
|
|
|
+ $result = [
|
|
|
+ 'rows'=>$rep,
|
|
|
+ 'count'=>$count
|
|
|
+ ];
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ * 获取某个底部导航(列表)内容
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getOneFooterContent(array $data): array
|
|
|
+ {
|
|
|
+ $result = FooterContent::where('footer_content.id', $data['id'])
|
|
|
+ ->leftJoin('footer_category','footer_category.id','fcat_id')
|
|
|
+ ->select('footer_content.*','footer_category.type')
|
|
|
+ ->first();
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("请输入正确的底部导航内容id!");
|
|
|
+ }else{
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ * 编辑底部导航(列表)内容
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function upFooterContent(array $data): array
|
|
|
+ {
|
|
|
+ $content = FooterContent::where('footer_content.id', $data['id'])
|
|
|
+ ->leftJoin('footer_category','footer_category.id','fcat_id')
|
|
|
+ ->select('footer_content.*','footer_category.type','footer_category.id as fcat_id')
|
|
|
+ ->first();
|
|
|
+ if(!$content){
|
|
|
+ return Result::error("该底部导航内容不存在!");
|
|
|
+ }
|
|
|
+ if($content['type'] != $data['type']){
|
|
|
+ return Result::error("请输入正确的底部导航类型!");
|
|
|
+ }
|
|
|
+ if($content['type'] == 1){
|
|
|
+ if(!isset($data['list_title']) || empty($data['list_title'])){
|
|
|
+ return Result::error("请输入底部导航列表标题!");
|
|
|
+ }
|
|
|
+ $list_title = FooterContent::where('fcat_id', $data['fcat_id'])->where('list_title',$data['list_title'])->first();
|
|
|
+ if(!empty($list_title)){
|
|
|
+ return Result::error("该列表标题已存在!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ unset($data['type']);
|
|
|
+ $result = FooterContent::where('id', $data['id'])->update($data);
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("修改失败!");
|
|
|
+ }else{
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ * 删除底部导航(列表)内容
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function delFooterContent(array $data): array
|
|
|
+ {
|
|
|
+ $result = FooterContent::where('id', $data['id'])->delete($data);
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("删除失败!");
|
|
|
+ }else{
|
|
|
+ return Result::success($result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|