get(); }else{ $list = $sql->paginate(getProp($param,'limit',15)); } if (!$list->isEmpty()){ $type = array_column(self::getNavPagesType(),null,'value'); $minParamType = array_column(self::getMiniProgramType(),null,'value'); foreach ($list as $value){ $value->type_txt = $type[$value->type]['name'] ?? "-"; $value->miniprogram_type_text = $minParamType[$value->miniprogram_type]['name'] ?? "-"; $value->duanjus = collect($value->duanjus)->sortBy('sort')->toArray(); } } return $list; } public static function getQuerySql($param) { $sql = NavPages::query()->where('is_del','=',0)->orderBy('status','desc')->orderBy('id','desc'); if (getProp($param,'type')){ $sql->where('type',$param['type']); } if (getProp($param,'miniprogram_type')){ $sql->where("miniprogram_type",$param['miniprogram_type']); } return $sql; } /** * 添加 * name: addChannel * @param mixed $param * @return string|void * date 2023/06/08 15:11 */ public static function addChannel(mixed $param) { $res = NavPages::create($param); if ($res){ if ($param['status'] == 1){ NavPages::where('id','<>',$res->id)->where('type',$param['type'])->where('miniprogram_type',$param['miniprogram_type'])->update(['status' => 0]); } return "操作成功"; } self::throwErrMsg("添加失败"); } // 启用 public static function enableChannel($id) { $info = NavPages::where('id',$id)->first(); if(is_empty($info)){ self::throwErrMsg("频道配置不存在"); } NavPages::where('type',$info->type)->where('miniprogram_type',$info->miniprogram_type)->update(['status'=>0]); NavPages::where('id',$id)->update(['status'=>1]); return "操作成功"; } // 保存配置 public static function setChannel($id, array $set) { $info = NavPages::where('id',$id)->first(); if(is_empty($info)){ self::throwErrMsg("频道配置不存在"); } $res = NavPages::where('id',$id)->update(['duanjus' => $set]); if ($res){ return "操作成功"; } self::throwErrMsg("操作失败"); } // 删除 public static function delChannel($id) { $info = NavPages::where('id',$id)->where('is_del',0)->first(); if(is_empty($info)){ self::throwErrMsg("频道配置不存在"); } if ($info->status == 1){ self::throwErrMsg("请先禁用"); } $res = NavPages::where('id',$id)->update(['is_del' =>1,'del_at' => get_date(),'status' => 0]); if ($res){ return "操作成功"; } self::throwErrMsg("操作失败"); } }