erp_old/app/admin/logic/article/ArticleLogic.php

108 lines
2.7 KiB
PHP
Raw Normal View History

2024-02-07 14:37:31 +08:00
<?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();
}
}