正在显示
4 个修改的文件
包含
157 行增加
和
1 行删除
| @@ -56,6 +56,25 @@ class NewsExtendController extends BaseController | @@ -56,6 +56,25 @@ class NewsExtendController extends BaseController | ||
| 56 | } | 56 | } |
| 57 | 57 | ||
| 58 | /** | 58 | /** |
| 59 | + * @remark :修改状态 | ||
| 60 | + * @name :status | ||
| 61 | + * @author :lyh | ||
| 62 | + * @method :post | ||
| 63 | + * @time :2025/5/27 9:22 | ||
| 64 | + */ | ||
| 65 | + public function status(){ | ||
| 66 | + $this->request->validate([ | ||
| 67 | + 'id' => 'required', | ||
| 68 | + 'status' => 'required', | ||
| 69 | + ], [ | ||
| 70 | + 'id.required' => '字段名称不能为空', | ||
| 71 | + 'status.required' => '字段类型不能为空', | ||
| 72 | + ]); | ||
| 73 | + $data = $this->logic->extendSave(); | ||
| 74 | + $this->response('success', Code::SUCCESS, $data); | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + /** | ||
| 59 | * @remark :删除扩展字段 | 78 | * @remark :删除扩展字段 |
| 60 | * @name :del | 79 | * @name :del |
| 61 | * @author :lyh | 80 | * @author :lyh |
| @@ -30,6 +30,7 @@ class NewsExtendLogic extends BaseLogic | @@ -30,6 +30,7 @@ class NewsExtendLogic extends BaseLogic | ||
| 30 | * @time :2025/5/26 15:17 | 30 | * @time :2025/5/26 15:17 |
| 31 | */ | 31 | */ |
| 32 | public function list($map){ | 32 | public function list($map){ |
| 33 | + $map['status'] = 1; | ||
| 33 | $data = $this->model->list($map); | 34 | $data = $this->model->list($map); |
| 34 | return $this->success($data); | 35 | return $this->success($data); |
| 35 | } | 36 | } |
| @@ -61,6 +62,18 @@ class NewsExtendLogic extends BaseLogic | @@ -61,6 +62,18 @@ class NewsExtendLogic extends BaseLogic | ||
| 61 | } | 62 | } |
| 62 | 63 | ||
| 63 | /** | 64 | /** |
| 65 | + * @remark :修改状态 | ||
| 66 | + * @name :extendStatus | ||
| 67 | + * @author :lyh | ||
| 68 | + * @method :post | ||
| 69 | + * @time :2025/5/27 9:20 | ||
| 70 | + */ | ||
| 71 | + public function extendStatus(){ | ||
| 72 | + $result = $this->model->edit(['status'=>$this->param['status']],['id'=>$this->param['id']]); | ||
| 73 | + return $this->success(['result'=>$result]); | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + /** | ||
| 64 | * @remark :删除字段 | 77 | * @remark :删除字段 |
| 65 | * @name :extendDel | 78 | * @name :extendDel |
| 66 | * @author :lyh | 79 | * @author :lyh |
| @@ -8,6 +8,8 @@ use App\Http\Logic\Bside\BaseLogic; | @@ -8,6 +8,8 @@ use App\Http\Logic\Bside\BaseLogic; | ||
| 8 | use App\Models\News\News; | 8 | use App\Models\News\News; |
| 9 | use App\Models\News\NewsCategory; | 9 | use App\Models\News\NewsCategory; |
| 10 | use App\Models\News\NewsCategory as NewsCategoryModel; | 10 | use App\Models\News\NewsCategory as NewsCategoryModel; |
| 11 | +use App\Models\News\NewsExtend; | ||
| 12 | +use App\Models\News\NewsExtendInfo; | ||
| 11 | use App\Models\RouteMap\RouteMap; | 13 | use App\Models\RouteMap\RouteMap; |
| 12 | use App\Models\Template\BTemplate; | 14 | use App\Models\Template\BTemplate; |
| 13 | use App\Services\CosService; | 15 | use App\Services\CosService; |
| @@ -79,6 +81,7 @@ class NewsLogic extends BaseLogic | @@ -79,6 +81,7 @@ class NewsLogic extends BaseLogic | ||
| 79 | $this->edit(['url' => $route], ['id' => $id]); | 81 | $this->edit(['url' => $route], ['id' => $id]); |
| 80 | $this->curlDelRoute(['new_route'=>$route]); | 82 | $this->curlDelRoute(['new_route'=>$route]); |
| 81 | } | 83 | } |
| 84 | + $this->model->saveExtendInfo($id,$this->param['extend'] ?? []); | ||
| 82 | $this->addUpdateNotify(RouteMap::SOURCE_NEWS,$route); | 85 | $this->addUpdateNotify(RouteMap::SOURCE_NEWS,$route); |
| 83 | return $this->success(['id'=>$id]); | 86 | return $this->success(['id'=>$id]); |
| 84 | } | 87 | } |
| @@ -143,11 +146,12 @@ class NewsLogic extends BaseLogic | @@ -143,11 +146,12 @@ class NewsLogic extends BaseLogic | ||
| 143 | { | 146 | { |
| 144 | $info = $this->model->read($this->param); | 147 | $info = $this->model->read($this->param); |
| 145 | if($info === false){ | 148 | if($info === false){ |
| 146 | - $this->fail('error'); | 149 | + $this->fail('当前数据不存在'); |
| 147 | } | 150 | } |
| 148 | $info['category_id'] = explode(',',trim($info['category_id'],',')); | 151 | $info['category_id'] = explode(',',trim($info['category_id'],',')); |
| 149 | $info['image_link'] = getImageUrl($info['image'],$this->user['storage_type'],$this->user['project_location']); | 152 | $info['image_link'] = getImageUrl($info['image'],$this->user['storage_type'],$this->user['project_location']); |
| 150 | $info['og_image'] = getImageUrl(empty($info['og_image']) ? $info['image'] : $info['og_image'],$this->user['storage_type'],$this->user['project_location']); | 153 | $info['og_image'] = getImageUrl(empty($info['og_image']) ? $info['image'] : $info['og_image'],$this->user['storage_type'],$this->user['project_location']); |
| 154 | + $info['extend'] = $this->model->getExtendInfo($info['id']); | ||
| 151 | return $this->success($info); | 155 | return $this->success($info); |
| 152 | } | 156 | } |
| 153 | 157 |
| @@ -32,4 +32,124 @@ class News extends Base | @@ -32,4 +32,124 @@ class News extends Base | ||
| 32 | public function getRelatedProductIdAttribute($value){ | 32 | public function getRelatedProductIdAttribute($value){ |
| 33 | return Arr::setToArr($value); | 33 | return Arr::setToArr($value); |
| 34 | } | 34 | } |
| 35 | + | ||
| 36 | + /** | ||
| 37 | + * @remark :扩展字段根据type返回类型 | ||
| 38 | + * @name :setTypValues | ||
| 39 | + * @author :lyh | ||
| 40 | + * @method :post | ||
| 41 | + * @time :2023/12/6 14:43 | ||
| 42 | + */ | ||
| 43 | + public function getExtendInfo($news_id){ | ||
| 44 | + $extendModel = new NewsExtend(); | ||
| 45 | + $list = $extendModel->list([],'id',['id','type','key','title']); | ||
| 46 | + if(empty($list)){ | ||
| 47 | + return []; | ||
| 48 | + } | ||
| 49 | + $extendInfoModel = new NewsExtendInfo(); | ||
| 50 | + $infoList = $extendInfoModel->list(['news_id'=>$news_id],'created_at'); | ||
| 51 | + foreach ($list as $k=>$v){ | ||
| 52 | + if($v['type'] == 3 || $v['type'] == 4){ | ||
| 53 | + $v['values'] = []; | ||
| 54 | + }else{ | ||
| 55 | + $v['values'] = ''; | ||
| 56 | + } | ||
| 57 | + if(!empty($infoList)){ | ||
| 58 | + foreach ($infoList as $values){ | ||
| 59 | + if($v['key'] == $values['key']){ | ||
| 60 | + $v = $this->setTypValues($v,$values); | ||
| 61 | + break; | ||
| 62 | + } | ||
| 63 | + } | ||
| 64 | + } | ||
| 65 | + $list[$k] = $v; | ||
| 66 | + } | ||
| 67 | + return $list; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + | ||
| 71 | + /** | ||
| 72 | + * @remark :扩展字段根据type返回类型 | ||
| 73 | + * @name :setTypValues | ||
| 74 | + * @author :lyh | ||
| 75 | + * @method :post | ||
| 76 | + * @time :2023/12/6 14:43 | ||
| 77 | + */ | ||
| 78 | + public function setTypValues($v,$info){ | ||
| 79 | + if($v['type'] == 3){ | ||
| 80 | + $arr = json_decode($info['values']); | ||
| 81 | + foreach ($arr as $k1=>$v1){ | ||
| 82 | + $v1 = (array)$v1; | ||
| 83 | + $v1['url'] = getImageUrl($v1['url'],$this->user['storage_type'],$this->user['project_location']); | ||
| 84 | + $arr[$k1] = $v1; | ||
| 85 | + } | ||
| 86 | + $v['values'] = $arr; | ||
| 87 | + }elseif($v['type'] == 4){ | ||
| 88 | + $arr1 = json_decode($info['values']); | ||
| 89 | + foreach ($arr1 as $k1=>$v1){ | ||
| 90 | + $v1 = (array)$v1; | ||
| 91 | + if(isset($v1['url'])){ | ||
| 92 | + $v1['url'] = getFileUrl($v1['url'],$this->user['storage_type'],$this->user['project_location'],$this->user['file_cdn'] ?? 0); | ||
| 93 | + }else{ | ||
| 94 | + $v1 = getFileUrl($v1,$this->user['storage_type'],$this->user['project_location'],$this->user['file_cdn'] ?? 0); | ||
| 95 | + } | ||
| 96 | + $arr1[$k1] = $v1; | ||
| 97 | + } | ||
| 98 | + $v['values'] = $arr1; | ||
| 99 | + }else{ | ||
| 100 | + $v['values'] = $info['values']; | ||
| 101 | + } | ||
| 102 | + return $v; | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + /** | ||
| 106 | + * @remark :保存扩展字段 | ||
| 107 | + * @name :saveExtend | ||
| 108 | + * @author :lyh | ||
| 109 | + * @method :post | ||
| 110 | + * @time :2023/11/9 15:02 | ||
| 111 | + */ | ||
| 112 | + public function saveExtendInfo($news_id,$extend){ | ||
| 113 | + //先删除以前的数据 | ||
| 114 | + $extendInfoModel = new NewsExtendInfo(); | ||
| 115 | + $extendInfoModel->del(['news_id'=>$news_id]); | ||
| 116 | + if(empty($extend)) { | ||
| 117 | + return true; | ||
| 118 | + } | ||
| 119 | + foreach ($extend as $k => $v){ | ||
| 120 | + if(empty($v['values'])){ | ||
| 121 | + continue; | ||
| 122 | + } | ||
| 123 | + $v = $this->saveHandleExtend($v,$news_id); | ||
| 124 | + $extendInfoModel->add($v); | ||
| 125 | + } | ||
| 126 | + return true; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + /** | ||
| 130 | + * @remark :保存扩展字段时处理数据 | ||
| 131 | + * @name :saveHandleExtend | ||
| 132 | + * @author :lyh | ||
| 133 | + * @method :post | ||
| 134 | + * @time :2023/12/6 15:11 | ||
| 135 | + */ | ||
| 136 | + public function saveHandleExtend(&$v,$news_id){ | ||
| 137 | + unset($v['title']); | ||
| 138 | + if($v['type'] == 3){ | ||
| 139 | + foreach ($v['values'] as $k1=>$v1){ | ||
| 140 | + $v1['url'] = str_replace_url($v1['url']); | ||
| 141 | + $v['values'][$k1] = $v1; | ||
| 142 | + } | ||
| 143 | + $v['values'] = json_encode($v['values']); | ||
| 144 | + }elseif ($v['type'] == 4){ | ||
| 145 | + foreach ($v['values'] as $k1=>$v1){ | ||
| 146 | + $v1['url'] = str_replace_url($v1['url']); | ||
| 147 | + $v['values'][$k1] = $v1; | ||
| 148 | + } | ||
| 149 | + $v['values'] = json_encode($v['values']); | ||
| 150 | + } | ||
| 151 | + $v['project_id'] = $this->user['project_id']; | ||
| 152 | + $v['news_id'] = $news_id; | ||
| 153 | + return $v; | ||
| 154 | + } | ||
| 35 | } | 155 | } |
-
请 注册 或 登录 后发表评论