From 139c4015a2267ca5f92c3cad7e30ea60502eaccd Mon Sep 17 00:00:00 2001
From: lwh <2679599887@qq.com>
Date: Sun, 23 Apr 2023 07:53:10 +0800
Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=BD=95?=
=?UTF-8?q?=E5=8F=96=E9=99=A2=E6=A0=A1=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../HonoraryAchievement/Achievement.php | 159 ++++++++++++++++
.../HonoraryAchievement/SchoolCategory.php | 3 +-
.../model/HonoraryAchievement/Achievement.php | 176 ++++++++++++++++++
.../HonoraryAchievement/SchoolCategory.php | 8 +-
4 files changed, 339 insertions(+), 7 deletions(-)
create mode 100644 app/admin/controller/HonoraryAchievement/Achievement.php
create mode 100644 app/common/model/HonoraryAchievement/Achievement.php
diff --git a/app/admin/controller/HonoraryAchievement/Achievement.php b/app/admin/controller/HonoraryAchievement/Achievement.php
new file mode 100644
index 0000000..9604066
--- /dev/null
+++ b/app/admin/controller/HonoraryAchievement/Achievement.php
@@ -0,0 +1,159 @@
+param();
+ $con = [];
+
+ $con = Tool::getOptionalQuery(['school_category_guid', '='], ['achievement_title', 'LIKE'],);
+
+ $query = ModelAchievement::where($con)
+ ->field([
+ 'a.achievement_id',
+ 'a.achievement_guid',
+ 'a.school_category_guid',
+ 'b.school_category_name',
+ 'a.achievement_title',
+ 'a.achievement_content',
+ 'a.achievement_sub_content',
+ 'a.achievement_sort'
+ ])
+ ->alias('a')
+ ->leftjoin('school_category b','a.school_category_guid = b.school_category_guid')
+ ->order('achievement_sort', 'asc');
+
+ return msg("获取录取院校成绩列表成功!", $query);
+ }
+
+ /**
+ * 编辑录取院校成绩
+ */
+ public function editAchievement(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'school_category_guid|录取院校' => 'require',
+ 'achievement_title|标题' => 'require',
+ 'achievement_content|内容' => 'require',
+ 'achievement_sub_content|副内容' => 'require',
+ 'achievement_sort|排序' => 'require'
+ ]);
+ $model = ModelAchievement::where('achievement_guid', $params['achievement_guid'])->find();
+ if (!$model) throwErrorMsg("该录取院校成绩不存在", 1);
+ $model->allowField([
+ 'achievement_update_user_guid',
+ 'school_category_guid',
+ 'achievement_title',
+ 'achievement_content',
+ 'achievement_sub_content',
+ 'achievement_sort'
+ ])->save($params);
+ return msg('编辑成功!');
+ }
+
+ /**
+ * 添加录取院校成绩
+ */
+ public function addAchievement(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'school_category_guid|录取院校' => 'require',
+ 'achievement_title|标题' => 'require',
+ 'achievement_content|内容' => 'require',
+ 'achievement_sub_content|副内容' => 'require',
+ 'achievement_sort|排序' => 'require'
+ ]);
+ $model = ModelAchievement::create($params, [
+ 'achievement_guid',
+ 'achievement_create_user_guid',
+ 'achievement_update_user_guid',
+ 'school_category_guid',
+ 'achievement_title',
+ 'achievement_content',
+ 'achievement_sub_content',
+ 'achievement_sort'
+ ]);
+ return msg('添加成功!');
+ }
+
+ /**
+ * 删除录取院校成绩
+ */
+ public function deleteAchievement(Request $request): array
+ {
+ $params = $request->param();
+ $this->validate($params, [
+ 'achievement_guid' => 'require',
+ ]);
+ $achievement = ModelAchievement::where([
+ 'achievement_guid' => explode(',', $params['achievement_guid'])
+ ])->select();
+ $achievement->delete();
+ return msg('删除成功!');
+ }
+
+ /**
+ * 导出Excel
+ */
+ public function exportExcel(Request $request)
+ {
+ $params = $request->param();
+ $select = ModelAchievement::field([
+ 'school_category_guid',
+ 'achievement_title',
+ 'achievement_content',
+ 'achievement_sub_content',
+ 'achievement_sort'
+ ])
+ ->order('achievement_sort', 'asc')
+ ->select();
+ return ModelAchievement::exportExcel($select);
+ }
+
+ /**
+ * 下载导入模板
+ */
+ public function downloadTemplate(Request $request)
+ {
+ $params = $request->param();
+ $data = array_values(ModelAchievement::EXCELFIELD);
+ $excel = (new Excel())->exporTsheet($data);
+ $excel->save('录取院校成绩导入模板.xlsx');
+ }
+
+ /**
+ * 导入excel
+ */
+ public function importExcel(Request $request)
+ {
+ $file = new UploadFile('uploads', 'fileExt:xlsx');
+ $file->putFile('achievement');
+
+ $msg = ModelAchievement::importExcel($file);
+ return [
+ 'code' => 0,
+ 'msg' => $msg
+ ];
+ }
+}
diff --git a/app/admin/controller/HonoraryAchievement/SchoolCategory.php b/app/admin/controller/HonoraryAchievement/SchoolCategory.php
index 1afe5f6..506b728 100644
--- a/app/admin/controller/HonoraryAchievement/SchoolCategory.php
+++ b/app/admin/controller/HonoraryAchievement/SchoolCategory.php
@@ -114,8 +114,7 @@ class SchoolCategory extends BaseController
$select = ModelSchoolCategory::field([
'school_category_title',
'school_category_name',
- 'school_category_img',
- 'school_category_sort'
+ 'school_category_img'
])
->order('school_category_sort', 'asc')
->select();
diff --git a/app/common/model/HonoraryAchievement/Achievement.php b/app/common/model/HonoraryAchievement/Achievement.php
new file mode 100644
index 0000000..4288a78
--- /dev/null
+++ b/app/common/model/HonoraryAchievement/Achievement.php
@@ -0,0 +1,176 @@
+ "int",
+
+ "achievement_guid" => "string",
+
+ "school_category_guid" => "string",
+
+ "achievement_title" => "string",
+
+ "achievement_content" => "string",
+
+ "achievement_sub_content" => "string",
+
+ "achievement_sort" => "string",
+
+ "achievement_create_time" => "datetime",
+
+ "achievement_create_user_guid" => "string",
+
+ "achievement_update_time" => "datetime",
+
+ "achievement_update_user_guid" => "string",
+
+ "achievement_delete_time" => "datetime",
+
+ "achievement_delete_user_guid" => "string",
+
+ ];
+ // 设置json类型字段
+ protected $json = [''];
+ // 开启自动写入时间戳字段
+ protected $autoWriteTimestamp = 'datetime';
+ // 创建时间
+ protected $createTime = 'achievement_create_time';
+ // 修改时间
+ protected $updateTime = 'achievement_update_time';
+
+
+ // excel导入/下载模板表头
+ public const EXCELFIELD = [
+ 'school_category_guid' => '录取院校',
+ 'achievement_title' => '标题',
+ 'achievement_content' => '内容',
+ 'achievement_sub_content' => '副内容',
+ 'achievement_sort' => '排序',
+ ];
+
+
+
+ /**
+ * 新增前
+ */
+ public static function onBeforeInsert(self $model): void
+ {
+ // self::checkRepeatData($model);
+ $model->completeCreateField();
+ }
+
+ /**
+ * 更新前
+ */
+ public static function onBeforeUpdate(self $model): void
+ {
+ // self::checkRepeatData($model);
+ $model->completeUpdateField();
+ }
+
+ /**
+ * 删除前
+ */
+ public static function onBeforeDelete(self $model): void
+ {
+ $model->completeDeleteField();
+ }
+
+ /**
+ * 导出Excel
+ */
+ public static function exportExcel($select)
+ {
+ $data = [[
+ '录取院校',
+ '标题',
+ '内容',
+ '副内容',
+ '排序'
+ ]];
+ foreach ($select as $key => $val) {
+ $data[] = [
+ $val['school_category_guid'],
+ $val['achievement_title'],
+ $val['achievement_content'],
+ $val['achievement_sub_content'],
+ $val['achievement_sort'],
+ ];
+ }
+ $excel = (new Excel())->exporTsheet($data);
+ $excel->save('录取院校成绩.xlsx');
+ }
+
+ /**
+ * 导入excel
+ */
+ public static function importExcel($file)
+ {
+ $msg = [];
+
+ Db::startTrans();
+ try {
+ $excel = new Excel($file);
+ $data = $excel->parseExcel(
+ Tool::getExcelRule(self::EXCELFIELD),
+ [
+ 'titleLine' => [1]
+ ]
+ );
+ if (!$data) throwErrorMsg('excel无数据', 1);
+ $msg = [];
+ foreach ($data as $line => $value) {
+ try {
+ $model = self::importExcelInit($value);
+ $msg[] = "{$line} 新增成功!
";
+ } catch (\Throwable $th) {
+ $msg[] = "{$line} {$th->getMessage()}
";
+ }
+ }
+ Db::commit();
+ return implode(', ', $msg);
+ } catch (\Throwable $th) {
+ Db::rollback();
+ throw $th;
+ }
+ }
+
+ /**
+ * 导入excel初始化
+ */
+ public static function importExcelInit($value)
+ {
+ $school_category_guid = $value['school_category_guid'];
+ $achievement_title = $value['achievement_title'];
+ $achievement_content = $value['achievement_content'];
+ $achievement_sub_content = $value['achievement_sub_content'];
+ $achievement_sort = $value['achievement_sort'];
+ return self::create([
+ 'school_category_guid' => $school_category_guid,
+ 'achievement_title' => $achievement_title,
+ 'achievement_content' => $achievement_content,
+ 'achievement_sub_content' => $achievement_sub_content,
+ 'achievement_sort' => $achievement_sort,
+ ]);
+ }
+}
diff --git a/app/common/model/HonoraryAchievement/SchoolCategory.php b/app/common/model/HonoraryAchievement/SchoolCategory.php
index b382f82..48d7c23 100644
--- a/app/common/model/HonoraryAchievement/SchoolCategory.php
+++ b/app/common/model/HonoraryAchievement/SchoolCategory.php
@@ -107,17 +107,15 @@ class SchoolCategory extends BaseModel
public static function exportExcel($select)
{
$data = [[
- '标题',
- '名称',
- '图片',
- '排序'
+ '录取院校分类标题',
+ '录取院校分类名称',
+ '录取院校分类图片',
]];
foreach ($select as $key => $val) {
$data[] = [
$val['school_category_title'],
$val['school_category_name'],
Excel::ExportImgFiled($val['school_category_img']),
- $val['school_category_sort'],
];
}
$excel = (new Excel())->exporTsheet($data);