diff --git a/app/admin/controller/HonoraryAchievement/Achievement.php b/app/admin/controller/HonoraryAchievement/Achievement.php index 9604066..f6ce52a 100644 --- a/app/admin/controller/HonoraryAchievement/Achievement.php +++ b/app/admin/controller/HonoraryAchievement/Achievement.php @@ -25,7 +25,11 @@ class Achievement extends BaseController $params = $request->param(); $con = []; - $con = Tool::getOptionalQuery(['school_category_guid', '='], ['achievement_title', 'LIKE'],); + $con = Tool::getOptionalQuery( + ['a.school_category_guid', '='], + ['a.achievement_title', 'LIKE'], + ['a.achievement_content', 'LIKE'], + ); $query = ModelAchievement::where($con) ->field([ @@ -39,7 +43,7 @@ class Achievement extends BaseController 'a.achievement_sort' ]) ->alias('a') - ->leftjoin('school_category b','a.school_category_guid = b.school_category_guid') + ->leftjoin('school_category b', 'a.school_category_guid = b.school_category_guid') ->order('achievement_sort', 'asc'); return msg("获取录取院校成绩列表成功!", $query); @@ -50,25 +54,32 @@ class Achievement extends BaseController */ 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('编辑成功!'); + Db::startTrans(); + try { + $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); + Db::commit(); + return msg('编辑成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } } /** @@ -76,25 +87,32 @@ class Achievement extends BaseController */ 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('添加成功!'); + Db::startTrans(); + try { + $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' + ]); + Db::commit(); + return msg('添加成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } } /** @@ -102,15 +120,22 @@ class Achievement extends BaseController */ 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('删除成功!'); + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'achievement_guid' => 'require', + ]); + $achievement = ModelAchievement::where([ + 'achievement_guid' => explode(',', $params['achievement_guid']) + ])->select(); + $achievement->delete(); + Db::commit(); + return msg('删除成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } } /** @@ -119,15 +144,11 @@ class Achievement extends BaseController 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(); + $params['limit'] = 10000; + // if (isset($params['signup_guids']) && $params['signup_guids']) { + // $con['signup.signup_guid'] = explode(',', $params['signup_guids']); + // } + $select = self::getAchievementList($request)['data']; return ModelAchievement::exportExcel($select); } @@ -137,7 +158,10 @@ class Achievement extends BaseController public function downloadTemplate(Request $request) { $params = $request->param(); - $data = array_values(ModelAchievement::EXCELFIELD); + $data = [ + array_values(ModelAchievement::EXCELFIELD), + ['清华大学美术学院', '2016年', '刘畅、潘欣玥', '录取清华大学', "1"] + ]; $excel = (new Excel())->exporTsheet($data); $excel->save('录取院校成绩导入模板.xlsx'); } diff --git a/app/admin/controller/HonoraryAchievement/SchoolLeaders.php b/app/admin/controller/HonoraryAchievement/SchoolLeaders.php new file mode 100644 index 0000000..d7a04ac --- /dev/null +++ b/app/admin/controller/HonoraryAchievement/SchoolLeaders.php @@ -0,0 +1,177 @@ +param(); + $con = []; + + $con = Tool::getOptionalQuery(['a.school_category_guid', '='], ['school_leaders_name', 'LIKE'],['school_leaders_school', 'LIKE'],); + + $query = ModelSchoolLeaders::where($con) + ->field([ + 'a.school_leaders_id', + 'a.school_leaders_guid', + 'a.school_category_guid', + 'b.school_category_name', + 'a.school_leaders_name', + 'a.school_leaders_school', + 'a.school_leaders_img', + 'a.school_leaders_sort' + ]) + ->alias('a') + ->leftjoin('school_category b', 'a.school_category_guid = b.school_category_guid') + ->order('school_leaders_sort', 'asc'); + + return msg("获取录取学院领军者列表成功!", $query); + } + + /** + * 编辑录取学院领军者 + */ + public function editSchoolLeaders(Request $request): array + { + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'school_category_guid|录取院校' => 'require', + 'school_leaders_name|名称' => 'require', + 'school_leaders_school|所属院校' => 'require', + 'school_leaders_img|图片' => 'require' + ]); + $model = ModelSchoolLeaders::where('school_leaders_guid', $params['school_leaders_guid'])->find(); + if (!$model) throwErrorMsg("该录取学院领军者不存在", 1); + $model->allowField([ + 'school_leaders_update_user_guid', + 'school_category_guid', + 'school_leaders_name', + 'school_leaders_school', + 'school_leaders_img', + 'school_leaders_sort' + ])->save($params); + Db::commit(); + return msg('编辑成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** + * 添加录取学院领军者 + */ + public function addSchoolLeaders(Request $request): array + { + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'school_category_guid|录取院校' => 'require', + 'school_leaders_name|名称' => 'require', + 'school_leaders_school|所属院校' => 'require', + 'school_leaders_img|图片' => 'require' + ]); + $model = ModelSchoolLeaders::create($params, [ + 'school_leaders_guid', + 'school_leaders_create_user_guid', + 'school_leaders_update_user_guid', + 'school_category_guid', + 'school_leaders_name', + 'school_leaders_school', + 'school_leaders_img', + 'school_leaders_sort' + ]); + Db::commit(); + return msg('添加成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** + * 删除录取学院领军者 + */ + public function deleteSchoolLeaders(Request $request): array + { + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'school_leaders_guid' => 'require', + ]); + $school_leaders = ModelSchoolLeaders::where([ + 'school_leaders_guid' => explode(',', $params['school_leaders_guid']) + ])->select(); + $school_leaders->delete(); + Db::commit(); + return msg('删除成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** + * 导出Excel + */ + public function exportExcel(Request $request) + { + $params = $request->param(); + $params['limit'] = 10000; + // if (isset($params['signup_guids']) && $params['signup_guids']) { + // $con['signup.signup_guid'] = explode(',', $params['signup_guids']); + // } + $select = self::getSchoolLeadersList($request)['data']; + return ModelSchoolLeaders::exportExcel($select); + } + + /** + * 下载导入模板 + */ + public function downloadTemplate(Request $request) + { + $params = $request->param(); + $data = [ + array_values(ModelSchoolLeaders::EXCELFIELD), + ['清华大学美术学院', '糖金金', '广州第一大学', "1"] + ]; + $excel = (new Excel())->exporTsheet($data); + $excel->save('录取学院领军者导入模板.xlsx'); + } + + /** + * 导入excel + */ + public function importExcel(Request $request) + { + $file = new UploadFile('uploads', 'fileExt:xlsx'); + $file->putFile('school_leaders'); + + $msg = ModelSchoolLeaders::importExcel($file); + return [ + 'code' => 0, + 'msg' => $msg + ]; + } +} diff --git a/app/common/model/Dictionary/Dictionary.php b/app/common/model/Dictionary/Dictionary.php index 06a8b4b..a0be784 100644 --- a/app/common/model/Dictionary/Dictionary.php +++ b/app/common/model/Dictionary/Dictionary.php @@ -268,4 +268,23 @@ class Dictionary extends BaseModel }; return $dictionary_name; } + + /** + * 获取字典集合(二级)指定字名称的值 + * + * @param array $dictionary_data 字典集合 + * @param string $dictionary_name 字典名称 + * @return string|null + */ + public static function getDataDictionaryValue(array $dictionary_data, string $dictionary_name) + { + $dictionary_value = null; + foreach ($dictionary_data as $dictionary) { + if ($dictionary['dictionary_name'] == $dictionary_name) { + $dictionary_value = $dictionary['dictionary_value']; + break; + } + }; + return $dictionary_value; + } } diff --git a/app/common/model/Enrol/EnrolAq.php b/app/common/model/Enrol/EnrolAq.php index 0002387..6163446 100644 --- a/app/common/model/Enrol/EnrolAq.php +++ b/app/common/model/Enrol/EnrolAq.php @@ -9,6 +9,7 @@ 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; class EnrolAq extends BaseModel { @@ -115,6 +116,13 @@ class EnrolAq extends BaseModel '回答状态' ]]; foreach ($select as $key => $val) { + // 字典取值 + $show_status = ModelDictionary::getDictionaryData('show_status'); + $answer_status = ModelDictionary::getDictionaryData('answer_status'); + $val['enrol_aq_status'] = ModelDictionary::getDataDictionaryName($show_status, $val['enrol_aq_status']); + $val['enrol_aq_answer_status'] = ModelDictionary::getDataDictionaryName($answer_status, $val['enrol_aq_answer_status']); + + $data[] = [ $val['enrol_aq_question'], $val['enrol_aq_answer'], @@ -127,10 +135,4 @@ class EnrolAq extends BaseModel $excel->save('招生问答.xlsx'); } - - // public function getEnrolAqStatusBoolAttr($value) - // { - // return $value == 1 ? false : true; - // } - } diff --git a/app/common/model/HonoraryAchievement/Achievement.php b/app/common/model/HonoraryAchievement/Achievement.php index 4288a78..dc736f4 100644 --- a/app/common/model/HonoraryAchievement/Achievement.php +++ b/app/common/model/HonoraryAchievement/Achievement.php @@ -8,7 +8,9 @@ use think\model\concern\SoftDelete; use app\common\arw\adjfut\src\Excel; use app\Request; use app\common\exception\Tool; +use PSpell\Dictionary; use think\facade\Db; +use app\common\model\HonoraryAchievement\SchoolCategory as ModelSchoolCategory; class Achievement extends BaseModel { @@ -61,21 +63,26 @@ class Achievement extends BaseModel // excel导入/下载模板表头 public const EXCELFIELD = [ - 'school_category_guid' => '录取院校', + 'school_category_name' => '录取院校', 'achievement_title' => '标题', 'achievement_content' => '内容', 'achievement_sub_content' => '副内容', 'achievement_sort' => '排序', ]; - + //排序字段 + public $order_field = 'achievement_sort'; /** * 新增前 */ public static function onBeforeInsert(self $model): void { - // self::checkRepeatData($model); + Tool::sortInsertProc( + self::class, + $model->achievement_sort, + ['school_category_guid' => $model->school_category_guid] + ); $model->completeCreateField(); } @@ -84,7 +91,12 @@ class Achievement extends BaseModel */ public static function onBeforeUpdate(self $model): void { - // self::checkRepeatData($model); + Tool::sortEditProc( + self::class, + $model->achievement_guid, + $model->achievement_sort, + ['school_category_guid' => $model->school_category_guid] + ); $model->completeUpdateField(); } @@ -93,9 +105,11 @@ class Achievement extends BaseModel */ public static function onBeforeDelete(self $model): void { + Tool::sortDeleteProc(self::class, $model->school_category_guid); $model->completeDeleteField(); } + /** * 导出Excel */ @@ -110,7 +124,7 @@ class Achievement extends BaseModel ]]; foreach ($select as $key => $val) { $data[] = [ - $val['school_category_guid'], + $val['school_category_name'], $val['achievement_title'], $val['achievement_content'], $val['achievement_sub_content'], @@ -142,7 +156,7 @@ class Achievement extends BaseModel foreach ($data as $line => $value) { try { $model = self::importExcelInit($value); - $msg[] = "{$line} 新增成功!
"; + $msg[] = "{$line} 【{$model->school_category_name}】的{$model->achievement_title}数据 新增成功!
"; } catch (\Throwable $th) { $msg[] = "{$line} {$th->getMessage()}
"; } @@ -160,17 +174,26 @@ class Achievement extends BaseModel */ public static function importExcelInit($value) { - $school_category_guid = $value['school_category_guid']; + $school_category_name = $value['school_category_name']; $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 = ModelSchoolCategory::where('school_category_name',$school_category_name)->find(); + if(!$school_category) throwErrorMsg( $school_category_name . " 录取院校不存在!"); + else $school_category_guid = $school_category->school_category_guid; + + $model = 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, ]); + + $model['school_category_name'] = $school_category_name; + return $model; } } diff --git a/app/common/model/HonoraryAchievement/SchoolCategory.php b/app/common/model/HonoraryAchievement/SchoolCategory.php index 48d7c23..1455146 100644 --- a/app/common/model/HonoraryAchievement/SchoolCategory.php +++ b/app/common/model/HonoraryAchievement/SchoolCategory.php @@ -9,6 +9,7 @@ use app\common\arw\adjfut\src\Excel; use app\Request; use app\common\exception\Tool; use think\facade\Db; +use app\common\model\HonoraryAchievement\SchoolCategory as ModelSchoolCategory; class SchoolCategory extends BaseModel { diff --git a/app/common/model/HonoraryAchievement/SchoolLeaders.php b/app/common/model/HonoraryAchievement/SchoolLeaders.php new file mode 100644 index 0000000..cfe6056 --- /dev/null +++ b/app/common/model/HonoraryAchievement/SchoolLeaders.php @@ -0,0 +1,196 @@ + "int", + + "school_leaders_nameschool_leaders_nameschool_leaders_name" => "string", + + "school_category_guid" => "string", + + "school_leaders_name" => "string", + + "school_leaders_school" => "string", + + "school_leaders_img" => "string", + + "school_leaders_sort" => "int", + + "school_leaders_create_time" => "datetime", + + "school_leaders_create_user_guid" => "string", + + "school_leaders_update_time" => "datetime", + + "school_leaders_update_user_guid" => "string", + + "school_leaders_delete_time" => "datetime", + + "school_leaders_delete_user_guid" => "string", + + ]; + // 设置json类型字段 + protected $json = ['']; + // 开启自动写入时间戳字段 + protected $autoWriteTimestamp = 'datetime'; + // 创建时间 + protected $createTime = 'school_leaders_create_time'; + // 修改时间 + protected $updateTime = 'school_leaders_update_time'; + + + // excel导入/下载模板表头 + public const EXCELFIELD = [ + 'school_category_name' => '录取院校', + 'school_leaders_name' => '领军者名称', + 'school_leaders_school' => '领军者所属院校', + 'school_leaders_sort' => '领军者排序', + ]; + + + + //排序字段 + public $order_field = 'school_leaders_sort'; + + /** + * 新增前 + */ + public static function onBeforeInsert(self $model): void + { + Tool::sortInsertProc( + self::class, + $model->school_leaders_sort, + ['school_category_guid' => $model->school_category_guid] + ); + $model->completeCreateField(); + } + + /** + * 更新前 + */ + public static function onBeforeUpdate(self $model): void + { + Tool::sortEditProc( + self::class, + $model->school_leaders_guid, + $model->school_leaders_sort, + ['school_category_guid' => $model->school_category_guid] + ); + $model->completeUpdateField(); + } + + /** + * 删除前 + */ + public static function onBeforeDelete(self $model): void + { + Tool::sortDeleteProc(self::class, $model->school_category_guid); + $model->completeDeleteField(); + } + + /** + * 导出Excel + */ + public static function exportExcel($select) + { + $data = [[ + '录取院校', + '名称', + '所属院校', + '图片', + '排序' + ]]; + foreach ($select as $key => $val) { + $data[] = [ + $val['school_category_name'], + $val['school_leaders_name'], + $val['school_leaders_school'], + Excel::ExportImgFiled($val['school_leaders_img']), + $val['school_leaders_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} 【{$model->school_category_name}】的{$model->school_leaders_name} 新增成功!
"; + } 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_name = $value['school_category_name']; + $school_leaders_name = $value['school_leaders_name']; + $school_leaders_school = $value['school_leaders_school']; + $school_leaders_sort = $value['school_leaders_sort']; + + // 录取院校 + $school_category = ModelSchoolCategory::where('school_category_name',$school_category_name)->find(); + if(!$school_category) throwErrorMsg( $school_category_name . " 录取院校不存在!"); + else $school_category_guid = $school_category->school_category_guid; + + $model = self::create([ + 'school_category_guid' => $school_category_guid, + 'school_leaders_name' => $school_leaders_name, + 'school_leaders_school' => $school_leaders_school, + 'school_leaders_sort' => $school_leaders_sort, + ]); + + $model['school_category_name'] = $school_category_name; + return $model; + } +} diff --git a/public/excel/产品.xlsx b/public/excel/产品.xlsx deleted file mode 100644 index 28d5a65..0000000 Binary files a/public/excel/产品.xlsx and /dev/null differ diff --git a/public/excel/产品导入模板 (2).xlsx b/public/excel/产品导入模板 (2).xlsx deleted file mode 100644 index 7858fcf..0000000 Binary files a/public/excel/产品导入模板 (2).xlsx and /dev/null differ diff --git a/public/excel/产品类型导入模板 (3).xlsx b/public/excel/产品类型导入模板 (3).xlsx deleted file mode 100644 index 6fec9ed..0000000 Binary files a/public/excel/产品类型导入模板 (3).xlsx and /dev/null differ diff --git a/public/excel/产品类型导入模板.xlsx b/public/excel/产品类型导入模板.xlsx deleted file mode 100644 index c3117c3..0000000 Binary files a/public/excel/产品类型导入模板.xlsx and /dev/null differ diff --git a/public/excel/关键词导入模板 (2).xlsx b/public/excel/关键词导入模板 (2).xlsx deleted file mode 100644 index 0eca5b8..0000000 Binary files a/public/excel/关键词导入模板 (2).xlsx and /dev/null differ diff --git a/public/excel/关键词导入模板.xlsx b/public/excel/关键词导入模板.xlsx deleted file mode 100644 index 403715d..0000000 Binary files a/public/excel/关键词导入模板.xlsx and /dev/null differ diff --git a/public/excel/字典导入模板.xlsx b/public/excel/字典导入模板.xlsx deleted file mode 100644 index fcdc213..0000000 Binary files a/public/excel/字典导入模板.xlsx and /dev/null differ diff --git a/public/excel/学生导入模板 (3).xlsx b/public/excel/学生导入模板 (3).xlsx deleted file mode 100644 index f50ebbc..0000000 Binary files a/public/excel/学生导入模板 (3).xlsx and /dev/null differ diff --git a/public/excel/学生导入模板 (6).xlsx b/public/excel/学生导入模板 (6).xlsx deleted file mode 100644 index bd0c11f..0000000 Binary files a/public/excel/学生导入模板 (6).xlsx and /dev/null differ diff --git a/public/excel/用户导入模板.xlsx b/public/excel/用户导入模板.xlsx deleted file mode 100644 index 4b453f9..0000000 Binary files a/public/excel/用户导入模板.xlsx and /dev/null differ diff --git a/public/excel/荣誉成绩/录取学院领军者导入模板.xlsx b/public/excel/荣誉成绩/录取学院领军者导入模板.xlsx new file mode 100644 index 0000000..3f7f108 Binary files /dev/null and b/public/excel/荣誉成绩/录取学院领军者导入模板.xlsx differ diff --git a/public/excel/用户导入模板 (1).xlsx b/public/excel/荣誉成绩/录取院校成绩导入模板.xlsx similarity index 54% rename from public/excel/用户导入模板 (1).xlsx rename to public/excel/荣誉成绩/录取院校成绩导入模板.xlsx index e65a20e..5403d01 100644 Binary files a/public/excel/用户导入模板 (1).xlsx and b/public/excel/荣誉成绩/录取院校成绩导入模板.xlsx differ