fix: 完善荣誉成绩录取院校模块

This commit is contained in:
lwh 2023-04-23 20:00:31 +08:00
parent fb0127e90d
commit 23d73d3502
19 changed files with 515 additions and 73 deletions

View File

@ -25,7 +25,11 @@ class Achievement extends BaseController
$params = $request->param(); $params = $request->param();
$con = []; $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) $query = ModelAchievement::where($con)
->field([ ->field([
@ -39,7 +43,7 @@ class Achievement extends BaseController
'a.achievement_sort' 'a.achievement_sort'
]) ])
->alias('a') ->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'); ->order('achievement_sort', 'asc');
return msg("获取录取院校成绩列表成功!", $query); return msg("获取录取院校成绩列表成功!", $query);
@ -50,25 +54,32 @@ class Achievement extends BaseController
*/ */
public function editAchievement(Request $request): array public function editAchievement(Request $request): array
{ {
$params = $request->param(); Db::startTrans();
$this->validate($params, [ try {
'school_category_guid|录取院校' => 'require', $params = $request->param();
'achievement_title|标题' => 'require', $this->validate($params, [
'achievement_content|内容' => 'require', 'school_category_guid|录取院校' => 'require',
'achievement_sub_content|副内容' => 'require', 'achievement_title|标题' => 'require',
'achievement_sort|排序' => 'require' 'achievement_content|内容' => 'require',
]); 'achievement_sub_content|副内容' => 'require',
$model = ModelAchievement::where('achievement_guid', $params['achievement_guid'])->find(); 'achievement_sort|排序' => 'require'
if (!$model) throwErrorMsg("该录取院校成绩不存在", 1); ]);
$model->allowField([ $model = ModelAchievement::where('achievement_guid', $params['achievement_guid'])->find();
'achievement_update_user_guid', if (!$model) throwErrorMsg("该录取院校成绩不存在", 1);
'school_category_guid', $model->allowField([
'achievement_title', 'achievement_update_user_guid',
'achievement_content', 'school_category_guid',
'achievement_sub_content', 'achievement_title',
'achievement_sort' 'achievement_content',
])->save($params); 'achievement_sub_content',
return msg('编辑成功!'); '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 public function addAchievement(Request $request): array
{ {
$params = $request->param(); Db::startTrans();
$this->validate($params, [ try {
'school_category_guid|录取院校' => 'require', $params = $request->param();
'achievement_title|标题' => 'require', $this->validate($params, [
'achievement_content|内容' => 'require', 'school_category_guid|录取院校' => 'require',
'achievement_sub_content|副内容' => 'require', 'achievement_title|标题' => 'require',
'achievement_sort|排序' => 'require' 'achievement_content|内容' => 'require',
]); 'achievement_sub_content|副内容' => 'require',
$model = ModelAchievement::create($params, [ 'achievement_sort|排序' => 'require'
'achievement_guid', ]);
'achievement_create_user_guid', $model = ModelAchievement::create($params, [
'achievement_update_user_guid', 'achievement_guid',
'school_category_guid', 'achievement_create_user_guid',
'achievement_title', 'achievement_update_user_guid',
'achievement_content', 'school_category_guid',
'achievement_sub_content', 'achievement_title',
'achievement_sort' 'achievement_content',
]); 'achievement_sub_content',
return msg('添加成功!'); '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 public function deleteAchievement(Request $request): array
{ {
$params = $request->param(); Db::startTrans();
$this->validate($params, [ try {
'achievement_guid' => 'require', $params = $request->param();
]); $this->validate($params, [
$achievement = ModelAchievement::where([ 'achievement_guid' => 'require',
'achievement_guid' => explode(',', $params['achievement_guid']) ]);
])->select(); $achievement = ModelAchievement::where([
$achievement->delete(); 'achievement_guid' => explode(',', $params['achievement_guid'])
return msg('删除成功!'); ])->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) public function exportExcel(Request $request)
{ {
$params = $request->param(); $params = $request->param();
$select = ModelAchievement::field([ $params['limit'] = 10000;
'school_category_guid', // if (isset($params['signup_guids']) && $params['signup_guids']) {
'achievement_title', // $con['signup.signup_guid'] = explode(',', $params['signup_guids']);
'achievement_content', // }
'achievement_sub_content', $select = self::getAchievementList($request)['data'];
'achievement_sort'
])
->order('achievement_sort', 'asc')
->select();
return ModelAchievement::exportExcel($select); return ModelAchievement::exportExcel($select);
} }
@ -137,7 +158,10 @@ class Achievement extends BaseController
public function downloadTemplate(Request $request) public function downloadTemplate(Request $request)
{ {
$params = $request->param(); $params = $request->param();
$data = array_values(ModelAchievement::EXCELFIELD); $data = [
array_values(ModelAchievement::EXCELFIELD),
['清华大学美术学院', '2016年', '刘畅、潘欣玥', '录取清华大学', "1"]
];
$excel = (new Excel())->exporTsheet($data); $excel = (new Excel())->exporTsheet($data);
$excel->save('录取院校成绩导入模板.xlsx'); $excel->save('录取院校成绩导入模板.xlsx');
} }

View File

@ -0,0 +1,177 @@
<?php
namespace app\admin\controller\HonoraryAchievement;
use app\BaseController;
use app\common\model\HonoraryAchievement\SchoolLeaders as ModelSchoolLeaders;
use app\Request;
use think\Validate;
use think\exception\ValidateException;
use think\facade\Filesystem;
use app\common\arw\adjfut\src\Excel;
use app\common\arw\adjfut\src\UploadFile;
use app\common\exception\Tool;
use think\facade\Db;
use think\facade\Env;
class SchoolLeaders extends BaseController
{
/**
* 获取录取学院领军者列表
*/
public function getSchoolLeadersList(Request $request): array
{
$params = $request->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
];
}
}

View File

@ -268,4 +268,23 @@ class Dictionary extends BaseModel
}; };
return $dictionary_name; 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;
}
} }

View File

@ -9,6 +9,7 @@ use app\common\arw\adjfut\src\Excel;
use app\Request; use app\Request;
use app\common\exception\Tool; use app\common\exception\Tool;
use think\facade\Db; use think\facade\Db;
use app\common\model\Dictionary\Dictionary as ModelDictionary;
class EnrolAq extends BaseModel class EnrolAq extends BaseModel
{ {
@ -115,6 +116,13 @@ class EnrolAq extends BaseModel
'回答状态' '回答状态'
]]; ]];
foreach ($select as $key => $val) { 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[] = [ $data[] = [
$val['enrol_aq_question'], $val['enrol_aq_question'],
$val['enrol_aq_answer'], $val['enrol_aq_answer'],
@ -127,10 +135,4 @@ class EnrolAq extends BaseModel
$excel->save('招生问答.xlsx'); $excel->save('招生问答.xlsx');
} }
// public function getEnrolAqStatusBoolAttr($value)
// {
// return $value == 1 ? false : true;
// }
} }

View File

@ -8,7 +8,9 @@ use think\model\concern\SoftDelete;
use app\common\arw\adjfut\src\Excel; use app\common\arw\adjfut\src\Excel;
use app\Request; use app\Request;
use app\common\exception\Tool; use app\common\exception\Tool;
use PSpell\Dictionary;
use think\facade\Db; use think\facade\Db;
use app\common\model\HonoraryAchievement\SchoolCategory as ModelSchoolCategory;
class Achievement extends BaseModel class Achievement extends BaseModel
{ {
@ -61,21 +63,26 @@ class Achievement extends BaseModel
// excel导入/下载模板表头 // excel导入/下载模板表头
public const EXCELFIELD = [ public const EXCELFIELD = [
'school_category_guid' => '录取院校', 'school_category_name' => '录取院校',
'achievement_title' => '标题', 'achievement_title' => '标题',
'achievement_content' => '内容', 'achievement_content' => '内容',
'achievement_sub_content' => '副内容', 'achievement_sub_content' => '副内容',
'achievement_sort' => '排序', 'achievement_sort' => '排序',
]; ];
//排序字段
public $order_field = 'achievement_sort';
/** /**
* 新增前 * 新增前
*/ */
public static function onBeforeInsert(self $model): void 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(); $model->completeCreateField();
} }
@ -84,7 +91,12 @@ class Achievement extends BaseModel
*/ */
public static function onBeforeUpdate(self $model): void 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(); $model->completeUpdateField();
} }
@ -93,9 +105,11 @@ class Achievement extends BaseModel
*/ */
public static function onBeforeDelete(self $model): void public static function onBeforeDelete(self $model): void
{ {
Tool::sortDeleteProc(self::class, $model->school_category_guid);
$model->completeDeleteField(); $model->completeDeleteField();
} }
/** /**
* 导出Excel * 导出Excel
*/ */
@ -110,7 +124,7 @@ class Achievement extends BaseModel
]]; ]];
foreach ($select as $key => $val) { foreach ($select as $key => $val) {
$data[] = [ $data[] = [
$val['school_category_guid'], $val['school_category_name'],
$val['achievement_title'], $val['achievement_title'],
$val['achievement_content'], $val['achievement_content'],
$val['achievement_sub_content'], $val['achievement_sub_content'],
@ -142,7 +156,7 @@ class Achievement extends BaseModel
foreach ($data as $line => $value) { foreach ($data as $line => $value) {
try { try {
$model = self::importExcelInit($value); $model = self::importExcelInit($value);
$msg[] = "{$line} <span style='color:#27af49'>新增成功!</span><br>"; $msg[] = "{$line} <span style='color:#27af49'>{$model->school_category_name}】的{$model->achievement_title}数据 新增成功!</span><br>";
} catch (\Throwable $th) { } catch (\Throwable $th) {
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>"; $msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
} }
@ -160,17 +174,26 @@ class Achievement extends BaseModel
*/ */
public static function importExcelInit($value) 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_title = $value['achievement_title'];
$achievement_content = $value['achievement_content']; $achievement_content = $value['achievement_content'];
$achievement_sub_content = $value['achievement_sub_content']; $achievement_sub_content = $value['achievement_sub_content'];
$achievement_sort = $value['achievement_sort']; $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, 'school_category_guid' => $school_category_guid,
'achievement_title' => $achievement_title, 'achievement_title' => $achievement_title,
'achievement_content' => $achievement_content, 'achievement_content' => $achievement_content,
'achievement_sub_content' => $achievement_sub_content, 'achievement_sub_content' => $achievement_sub_content,
'achievement_sort' => $achievement_sort, 'achievement_sort' => $achievement_sort,
]); ]);
$model['school_category_name'] = $school_category_name;
return $model;
} }
} }

View File

@ -9,6 +9,7 @@ use app\common\arw\adjfut\src\Excel;
use app\Request; use app\Request;
use app\common\exception\Tool; use app\common\exception\Tool;
use think\facade\Db; use think\facade\Db;
use app\common\model\HonoraryAchievement\SchoolCategory as ModelSchoolCategory;
class SchoolCategory extends BaseModel class SchoolCategory extends BaseModel
{ {

View File

@ -0,0 +1,196 @@
<?php
namespace app\common\model\HonoraryAchievement;
use app\common\arw\adjfut\src\Validate;
use app\BaseModel;
use think\model\concern\SoftDelete;
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 SchoolLeaders extends BaseModel
{
use SoftDelete;
// 删除字段
protected $deleteTime = 'school_leaders_delete_time';
// 设置主键名
protected $pk = 'school_leaders_guid';
// 设置废弃字段
protected $disuse = [];
// 设置字段信息
protected $schema = [
"school_leaders_id" => "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} <span style='color:#27af49'>【{$model->school_category_name}】的{$model->school_leaders_name} 新增成功!</span><br>";
} catch (\Throwable $th) {
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
}
}
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;
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.