123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- /**
- *
- * @file:Channel.php
- * @Date: 2023/6/8
- * @Time: 11:17
- */
- namespace Modules\Operation\Service;
- use Modules\Common\Services\BaseService;
- use Modules\Operation\Models\NavPages;
- class ChannelServic extends BaseService
- {
- public static function ChannelList($param)
- {
- $sql = self::getQuerySql($param);
- $isAll = getProp($param,'is_all',false);
- if ($isAll){
- $list = $sql->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');
- }
- }
- 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()]);
- if ($res){
- return "操作成功";
- }
- self::throwErrMsg("操作失败");
- }
- }
|