From 5fb91cfff19ec9ce0d4e82082613f03e07f12b63 Mon Sep 17 00:00:00 2001
From: lwh <2679599887@qq.com>
Date: Mon, 8 May 2023 15:48:21 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E9=A6=96=E9=A1=B5?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ExaminationInformation/InfoArticle.php | 28 ++--
app/admin/controller/Gen/Gen.php | 4 +-
app/admin/controller/Home/HomeEnv.php | 111 ++++++++++++++++
app/admin/controller/Home/HomeWorks.php | 122 ++++++++++++++++++
.../ExaminationInformation/InfoArticle.php | 31 ++++-
app/common/model/Home/HomeEnv.php | 104 +++++++++++++++
app/common/model/Home/HomeWorks.php | 112 ++++++++++++++++
public/excel/艺考资讯/资讯文章导入模板.xlsx | Bin 0 -> 9144 bytes
8 files changed, 494 insertions(+), 18 deletions(-)
create mode 100644 app/admin/controller/Home/HomeEnv.php
create mode 100644 app/admin/controller/Home/HomeWorks.php
create mode 100644 app/common/model/Home/HomeEnv.php
create mode 100644 app/common/model/Home/HomeWorks.php
create mode 100644 public/excel/艺考资讯/资讯文章导入模板.xlsx
diff --git a/app/admin/controller/ExaminationInformation/InfoArticle.php b/app/admin/controller/ExaminationInformation/InfoArticle.php
index ba6dd8a..e96a883 100644
--- a/app/admin/controller/ExaminationInformation/InfoArticle.php
+++ b/app/admin/controller/ExaminationInformation/InfoArticle.php
@@ -20,12 +20,12 @@ class InfoArticle extends BaseController
/**
* 获取资讯文章列表
*/
- public function getinfoArticleList(Request $request): array
+ public function getinfoArticleList(Request $request, $isExport = false): array
{
$params = $request->param();
$con = [];
- $con = Tool::getOptionalQuery(['info_article_title', 'LIKE'],['a.info_article_type_guid', '='], ['info_article_status', '='],);
+ $con = Tool::getOptionalQuery(['info_article_title', 'LIKE'], ['a.info_article_type_guid', '='], ['info_article_status', '='],);
$query = ModelinfoArticle::where($con)
->field([
@@ -41,10 +41,10 @@ class InfoArticle extends BaseController
])
->alias('a')
- ->leftjoin('info_article_type b','a.info_article_type_guid = b.info_article_type_guid')
+ ->leftjoin('info_article_type b', 'a.info_article_type_guid = b.info_article_type_guid')
->order('info_article_order', 'asc');
- return msg("获取资讯文章列表成功!", $query);
+ return $isExport ? $query->select()->toArray() : msg("获取资讯文章列表成功!", $query);
}
/**
@@ -88,7 +88,7 @@ class InfoArticle extends BaseController
'info_article_content|文章内容' => 'require',
'info_article_order|文章排序' => 'require'
]);
-
+
$model = ModelinfoArticle::create($params, [
'info_article_guid',
'info_article_create_user_guid',
@@ -115,7 +115,7 @@ class InfoArticle extends BaseController
$info_article = ModelinfoArticle::where([
'info_article_guid' => explode(',', $params['info_article_guid'])
])->select();
-
+
$info_article->delete();
return msg('删除成功!');
}
@@ -125,10 +125,7 @@ class InfoArticle extends BaseController
*/
public function exportExcel(Request $request)
{
- $params = $request->param();
- $params['limit'] = 10000;
- $select = self::getinfoArticleList($request)['data'];
- return ModelinfoArticle::exportExcel($select);
+ ModelinfoArticle::exportExcel(self::getinfoArticleList($request, true));
}
/**
@@ -137,7 +134,16 @@ class InfoArticle extends BaseController
public function downloadTemplate(Request $request)
{
$params = $request->param();
- $data = array_values(ModelinfoArticle::EXCELFIELD);
+ $data = [
+ array_values(ModelinfoArticle::EXCELFIELD),
+ [
+ '招生新闻',
+ '【2023届厚德开展】艺术与灵感的写生之旅',
+ 'http://houde_web.aerwen.net/uploads/EnrolIntroImg/20230429/466799fb9c916c3562a9c311de272c81.jpg',
+ '1',
+ "展示",
+ ]
+ ];
$excel = (new Excel())->exporTsheet($data);
$excel->save('资讯文章导入模板.xlsx');
}
diff --git a/app/admin/controller/Gen/Gen.php b/app/admin/controller/Gen/Gen.php
index e8e86e8..f0901b4 100644
--- a/app/admin/controller/Gen/Gen.php
+++ b/app/admin/controller/Gen/Gen.php
@@ -825,8 +825,8 @@ class Gen extends BaseController
$sortTemplate = "
-
- SortField}='scope'>
+ SortField}' :min='1' controls-position='right'
@change='handleEditOrder(scope.row)'>
";
diff --git a/app/admin/controller/Home/HomeEnv.php b/app/admin/controller/Home/HomeEnv.php
new file mode 100644
index 0000000..1403da6
--- /dev/null
+++ b/app/admin/controller/Home/HomeEnv.php
@@ -0,0 +1,111 @@
+param();
+ $con = [];
+
+ $con = Tool::getOptionalQuery();
+
+ $query = ModelHomeEnv::where($con)
+ ->field([
+ 'home_env_id',
+ 'home_env_guid',
+ 'home_env_img',
+ 'home_env_sort'
+ ])
+ ->order('home_env_sort', 'asc');
+
+ return msg("获取首页环境列表成功!", $query);
+ }
+
+ /**
+ * 编辑首页环境
+ */
+ public function editHomeEnv(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'home_env_img|图片' => 'require',
+ 'home_env_sort|排序' => 'require'
+ ]);
+ $model = ModelHomeEnv::where('home_env_guid', $params['home_env_guid'])->find();
+ if (!$model) throwErrorMsg("该首页环境不存在", 1);
+ $model->allowField([
+ 'home_env_update_user_guid',
+ 'home_env_img',
+ 'home_env_sort'
+ ])->save($params);
+ return msg('编辑成功!');
+ }
+
+ /**
+ * 添加首页环境
+ */
+ public function addHomeEnv(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'home_env_img|图片' => 'require',
+ 'home_env_sort|排序' => 'require'
+ ]);
+ $model = ModelHomeEnv::create($params, [
+ 'home_env_guid',
+ 'home_env_create_user_guid',
+ 'home_env_update_user_guid',
+ 'home_env_img',
+ 'home_env_sort'
+ ]);
+ return msg('添加成功!');
+ }
+
+ /**
+ * 删除首页环境
+ */
+ public function deleteHomeEnv(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'home_env_guid' => 'require',
+ ]);
+ $home_env = ModelHomeEnv::where([
+ 'home_env_guid' => explode(',', $params['home_env_guid'])
+ ])->select();
+ $home_env->delete();
+ return msg('删除成功!');
+ }
+
+ /**
+ * 导出Excel
+ */
+ public function exportExcel(Request $request)
+ {
+ $params = $request->param();
+ $select = ModelHomeEnv::field([
+ 'home_env_img',
+ 'home_env_sort'
+ ])
+ ->order('home_env_sort', 'asc')
+ ->select()->toArray();
+ return ModelHomeEnv::exportExcel($select);
+ }
+}
diff --git a/app/admin/controller/Home/HomeWorks.php b/app/admin/controller/Home/HomeWorks.php
new file mode 100644
index 0000000..c43ee88
--- /dev/null
+++ b/app/admin/controller/Home/HomeWorks.php
@@ -0,0 +1,122 @@
+param();
+ $con = [];
+
+ $con = Tool::getOptionalQuery(['home_works_author_type', '='],);
+
+ $query = ModelHomeWorks::where($con)
+ ->field([
+ 'home_works_id',
+ 'home_works_guid',
+ 'home_works_author_type',
+ 'home_works_img',
+ 'home_works_sort',
+ 'home_works_intro'
+ ])
+ ->order('home_works_sort', 'asc');
+
+ return msg("获取首页作品列表成功!", $query);
+ }
+
+ /**
+ * 编辑首页作品
+ */
+ public function editHomeWorks(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'home_works_author_type|作者类型' => 'require',
+ 'home_works_img|图片' => 'require',
+ 'home_works_sort|排序' => 'require',
+ ]);
+ $model = ModelHomeWorks::where('home_works_guid', $params['home_works_guid'])->find();
+ if (!$model) throwErrorMsg("该首页作品不存在", 1);
+ $model->allowField([
+ 'home_works_update_user_guid',
+ 'home_works_author_type',
+ 'home_works_img',
+ 'home_works_sort',
+ 'home_works_intro'
+ ])->save($params);
+ return msg('编辑成功!');
+ }
+
+ /**
+ * 添加首页作品
+ */
+ public function addHomeWorks(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'home_works_author_type|作者类型' => 'require',
+ 'home_works_img|图片' => 'require',
+ 'home_works_sort|排序' => 'require',
+ ]);
+ $model = ModelHomeWorks::create($params, [
+ 'home_works_guid',
+ 'home_works_create_user_guid',
+ 'home_works_update_user_guid',
+ 'home_works_author_type',
+ 'home_works_img',
+ 'home_works_sort',
+ 'home_works_intro'
+ ]);
+ return msg('添加成功!');
+ }
+
+ /**
+ * 删除首页作品
+ */
+ public function deleteHomeWorks(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'home_works_guid' => 'require',
+ ]);
+ $home_works = ModelHomeWorks::where([
+ 'home_works_guid' => explode(',', $params['home_works_guid'])
+ ])->select();
+ $home_works->delete();
+ return msg('删除成功!');
+ }
+
+ /**
+ * 导出Excel
+ */
+ public function exportExcel(Request $request)
+ {
+ $params = $request->param();
+ $select = ModelHomeWorks::field([
+ 'home_works_author_type',
+ 'home_works_img',
+ 'home_works_sort',
+ 'home_works_intro'
+ ])
+ ->order('home_works_sort', 'asc')
+ ->select()->toArray();
+ return ModelHomeWorks::exportExcel($select);
+ }
+}
diff --git a/app/common/model/ExaminationInformation/InfoArticle.php b/app/common/model/ExaminationInformation/InfoArticle.php
index 4ffdfa5..9f4a830 100644
--- a/app/common/model/ExaminationInformation/InfoArticle.php
+++ b/app/common/model/ExaminationInformation/InfoArticle.php
@@ -9,6 +9,8 @@ use app\common\arw\adjfut\src\Excel;
use app\Request;
use app\common\exception\Tool;
use think\facade\Db;
+use app\common\model\Dictionary\Dictionary as ModelDictionary;
+use app\common\model\ExaminationInformation\InfoArticleType as ModelInfoArticleType;
class InfoArticle extends BaseModel
{
@@ -63,10 +65,12 @@ class InfoArticle extends BaseModel
// excel导入/下载模板表头
public const EXCELFIELD = [
+ 'info_article_type_name' => '文章类型',
'info_article_title' => '文章标题',
'info_article_cover' => '文章封面',
- 'info_article_content' => '文章内容',
+ // 'info_article_content' => '文章内容',
'info_article_order' => '文章排序',
+ 'info_article_status' => '首页是否展示',
];
//排序字段
@@ -115,17 +119,24 @@ class InfoArticle extends BaseModel
public static function exportExcel($select)
{
$data = [[
+ '文章类型',
'文章标题',
'文章封面',
// '文章内容',
- '文章排序'
+ '文章排序',
+ "首页是否展示"
]];
foreach ($select as $key => $val) {
+ $show_status = ModelDictionary::getDictionaryData('show_status');
+ $val['info_article_status'] = ModelDictionary::getDataDictionaryName($show_status, $val['info_article_status']);
+
$data[] = [
+ $val['info_article_title'],
$val['info_article_title'],
Excel::ExportImgFiled($val['info_article_cover']),
// $val['info_article_content'],
$val['info_article_order'],
+ $val['info_article_status'],
];
}
$excel = (new Excel())->exporTsheet($data);
@@ -153,7 +164,7 @@ class InfoArticle extends BaseModel
foreach ($data as $line => $value) {
try {
$model = self::importExcelInit($value);
- $msg[] = "{$line} 新增成功!
";
+ $msg[] = "{$line} {$model->info_article_title}新增成功!
";
} catch (\Throwable $th) {
$msg[] = "{$line} {$th->getMessage()}
";
}
@@ -171,15 +182,25 @@ class InfoArticle extends BaseModel
*/
public static function importExcelInit($value)
{
+ $info_article_type_name = $value['info_article_type_name'];
$info_article_title = $value['info_article_title'];
$info_article_cover = $value['info_article_cover'];
- $info_article_content = $value['info_article_content'];
$info_article_order = $value['info_article_order'];
+ $info_article_status = $value['info_article_status'];
+
+ $info_article_type = ModelInfoArticleType::where('info_article_type_name',$info_article_type_name)->find();
+ if(!$info_article_type) throwErrorMsg($info_article_type_name . "不存在,请重新确认!");
+ $info_article_type_guid = $info_article_type->info_article_type_guid;
+
+ $show_status = ModelDictionary::getDictionaryData('show_status');
+ $info_article_status = ModelDictionary::getDataDictionaryValue($show_status, $info_article_status);
+
return self::create([
+ 'info_article_type_guid' => $info_article_type_guid,
'info_article_title' => $info_article_title,
'info_article_cover' => $info_article_cover,
- 'info_article_content' => $info_article_content,
'info_article_order' => $info_article_order,
+ 'info_article_status' => $info_article_status,
]);
}
}
diff --git a/app/common/model/Home/HomeEnv.php b/app/common/model/Home/HomeEnv.php
new file mode 100644
index 0000000..f1d65da
--- /dev/null
+++ b/app/common/model/Home/HomeEnv.php
@@ -0,0 +1,104 @@
+ 'int',
+ 'home_env_guid' => 'string',
+ 'home_env_img' => 'string',
+ 'home_env_sort' => 'string',
+ 'home_env_create_time' => 'datetime',
+ 'home_env_create_user_guid' => 'string',
+ 'home_env_update_time' => 'datetime',
+ 'home_env_update_user_guid' => 'string',
+ 'home_env_delete_time' => 'datetime',
+ 'home_env_delete_user_guid' => 'string',
+
+ ];
+ // 设置json类型字段
+ protected $json = [''];
+ // 开启自动写入时间戳字段
+ protected $autoWriteTimestamp = 'datetime';
+ // 创建时间
+ protected $createTime = 'home_env_create_time';
+ // 修改时间
+ protected $updateTime = 'home_env_update_time';
+
+
+ //排序字段
+ public $order_field = 'home_env_sort';
+
+ /**
+ * 新增前
+ */
+ public static function onBeforeInsert(self $model): void
+ {
+ Tool::sortInsertProc(
+ self::class,
+ $model->home_env_sort,
+ );
+ $model->completeCreateField();
+ }
+
+ /**
+ * 更新前
+ */
+ public static function onBeforeUpdate(self $model): void
+ {
+ Tool::sortEditProc(
+ self::class,
+ $model->home_env_guid,
+ $model->home_env_sort,
+ );
+ $model->completeUpdateField();
+ }
+
+ /**
+ * 删除前
+ */
+ public static function onBeforeDelete(self $model): void
+ {
+ Tool::sortDeleteProc(self::class, $model->home_env_guid);
+ $model->completeDeleteField();
+ }
+
+
+ /**
+ * 导出Excel
+ *
+ * @param array $select 导出的数据
+ */
+ public static function exportExcel(array $select): void
+ {
+ $data = [[
+ '图片',
+ '排序'
+ ]];
+ foreach ($select as $key => $val) {
+ $data[] = [
+ Excel::ExportImgFiled($val['home_env_img']),
+ $val['home_env_sort'],
+ ];
+ }
+ $excel = (new Excel())->exporTsheet($data);
+ $excel->save('首页环境.xlsx');
+ }
+}
diff --git a/app/common/model/Home/HomeWorks.php b/app/common/model/Home/HomeWorks.php
new file mode 100644
index 0000000..61cce64
--- /dev/null
+++ b/app/common/model/Home/HomeWorks.php
@@ -0,0 +1,112 @@
+ 'int',
+ 'home_works_guid' => 'string',
+ 'home_works_author_type' => 'string',
+ 'home_works_img' => 'string',
+ 'home_works_sort' => 'int',
+ 'home_works_intro' => 'string',
+ 'home_works_create_time' => 'datetime',
+ 'home_works_create_user_guid' => 'string',
+ 'home_works_update_time' => 'datetime',
+ 'home_works_update_user_guid' => 'string',
+ 'home_works_delete_time' => 'datetime',
+ 'home_works_delete_user_guid' => 'string',
+
+ ];
+ // 设置json类型字段
+ protected $json = [''];
+ // 开启自动写入时间戳字段
+ protected $autoWriteTimestamp = 'datetime';
+ // 创建时间
+ protected $createTime = 'home_works_create_time';
+ // 修改时间
+ protected $updateTime = 'home_works_update_time';
+
+
+
+ //排序字段
+ public $order_field = 'home_works_sort';
+
+ /**
+ * 新增前
+ */
+ public static function onBeforeInsert(self $model): void
+ {
+ Tool::sortInsertProc(
+ self::class,
+ $model->home_works_sort,
+ ['home_works_author_type' => $model->home_works_author_type]
+ );
+ $model->completeCreateField();
+ }
+
+ /**
+ * 更新前
+ */
+ public static function onBeforeUpdate(self $model): void
+ {
+ Tool::sortEditProc(
+ self::class,
+ $model->home_works_guid,
+ $model->home_works_sort,
+ ['home_works_author_type' => $model->home_works_author_type]
+ );
+ $model->completeUpdateField();
+ }
+
+ /**
+ * 删除前
+ */
+ public static function onBeforeDelete(self $model): void
+ {
+ Tool::sortDeleteProc(self::class, $model->home_works_guid);
+ $model->completeDeleteField();
+ }
+
+ /**
+ * 导出Excel
+ *
+ * @param array $select 导出的数据
+ */
+ public static function exportExcel(array $select): void
+ {
+ $data = [[
+ '作者类型',
+ '图片',
+ '排序',
+ '介绍'
+ ]];
+ foreach ($select as $key => $val) {
+ $data[] = [
+ Excel::ExportImgFiled($val['home_works_author_type']),
+ $val['home_works_img'],
+ $val['home_works_sort'],
+ $val['home_works_intro'],
+ ];
+ }
+ $excel = (new Excel())->exporTsheet($data);
+ $excel->save('首页作品.xlsx');
+ }
+}
diff --git a/public/excel/艺考资讯/资讯文章导入模板.xlsx b/public/excel/艺考资讯/资讯文章导入模板.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..e7fa11bca91bfe6dd95e83f6481e3c3c34699286
GIT binary patch
literal 9144
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
a{)eelS3-uLE&zZ5|Ga{S1JqPMfBhfuf3Z^l
literal 0
HcmV?d00001