108 lines
2.7 KiB
PHP
108 lines
2.7 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\admin\logic\article;
|
||
|
|
||
|
|
||
|
use app\common\model\article\Article;
|
||
|
use app\common\logic\BaseLogic;
|
||
|
use app\common\model\article\ArticleContent;
|
||
|
use think\facade\Db;
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 文章逻辑
|
||
|
* Class ArticleLogic
|
||
|
* @package app\admin\logic\article
|
||
|
*/
|
||
|
class ArticleLogic extends BaseLogic
|
||
|
{
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @notes 添加文章
|
||
|
* @param array $params
|
||
|
* @return bool
|
||
|
* @author likeadmin
|
||
|
* @date 2024/02/05 16:36
|
||
|
*/
|
||
|
public static function add(array $params): bool
|
||
|
{
|
||
|
Db::startTrans();
|
||
|
try {
|
||
|
$res= Article::create([
|
||
|
'title' => $params['title'],
|
||
|
'state' => $params['state'],
|
||
|
'top' => $params['top']
|
||
|
]);
|
||
|
ArticleContent::create(['article_id'=>$res->id,'content'=>$params['content']]);
|
||
|
Db::commit();
|
||
|
return true;
|
||
|
} catch (\Exception $e) {
|
||
|
Db::rollback();
|
||
|
self::setError($e->getMessage());
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @notes 编辑文章
|
||
|
* @param array $params
|
||
|
* @return bool
|
||
|
* @author likeadmin
|
||
|
* @date 2024/02/05 16:36
|
||
|
*/
|
||
|
public static function edit(array $params): bool
|
||
|
{
|
||
|
Db::startTrans();
|
||
|
try {
|
||
|
Article::where('id', $params['id'])->update([
|
||
|
'title_map' => $params['title_map'],
|
||
|
'title' => $params['title'],
|
||
|
'state' => $params['state'],
|
||
|
// 'pv' => $params['pv'],
|
||
|
'top' => $params['top'],
|
||
|
// 'create_user' => $params['create_user'],
|
||
|
// 'update_user' => $params['update_user']
|
||
|
]);
|
||
|
$find=ArticleContent::where('article_id',$params['id'])->find();
|
||
|
if($find){
|
||
|
ArticleContent::where('article_id',$params['id'])->update(['content'=>$params['content']]);
|
||
|
}else{
|
||
|
ArticleContent::create(['article_id'=>$params['id'],'content'=>$params['content']]);
|
||
|
}
|
||
|
Db::commit();
|
||
|
return true;
|
||
|
} catch (\Exception $e) {
|
||
|
Db::rollback();
|
||
|
self::setError($e->getMessage());
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @notes 删除文章
|
||
|
* @param array $params
|
||
|
* @return bool
|
||
|
* @author likeadmin
|
||
|
* @date 2024/02/05 16:36
|
||
|
*/
|
||
|
public static function delete(array $params): bool
|
||
|
{
|
||
|
return Article::destroy($params['id']);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @notes 获取文章详情
|
||
|
* @param $params
|
||
|
* @return array
|
||
|
* @author likeadmin
|
||
|
* @date 2024/02/05 16:36
|
||
|
*/
|
||
|
public static function detail($params): array
|
||
|
{
|
||
|
return Article::with('detail')->findOrEmpty($params['id'])->toArray();
|
||
|
}
|
||
|
}
|