fix:TOOL类缩表方法优化、各导入模块接口修改

This commit is contained in:
USER-20220207MB\Administrator 2023-05-12 22:01:02 +08:00
parent e5139d95b2
commit 3ddf42c795
12 changed files with 169 additions and 161 deletions

View File

@ -167,7 +167,7 @@ class Classes extends BaseController
public function importExcel(Request $request)
{
Db::startTrans();
Tool::adminLockTableWrite('classes');
Tool::adminLockTableWrite(['classes','dictionary']);
try {
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('classes');

View File

@ -185,7 +185,7 @@ class InfoArticle extends BaseController
public function importExcel(Request $request)
{
Db::startTrans();
Tool::adminLockTableWrite('info_article');
Tool::adminLockTableWrite(['info_article','dictionary']);
try {
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('info_article');

View File

@ -173,7 +173,7 @@ class Achievement extends BaseController
public function importExcel(Request $request)
{
Db::startTrans();
Tool::adminLockTableWrite('teacher');
Tool::adminLockTableWrite(['teacher','school_category']);
try {
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('achievement');

View File

@ -25,7 +25,7 @@ class SchoolLeaders extends BaseController
$params = $request->param();
$con = [];
$con = Tool::getOptionalQuery(['a.school_category_guid', '='], ['school_leaders_name', 'LIKE'],['school_leaders_school', 'LIKE'],);
$con = Tool::getOptionalQuery(['a.school_category_guid', '='], ['school_leaders_name', 'LIKE'], ['school_leaders_school', 'LIKE'], );
$query = ModelSchoolLeaders::where($con)
->field([
@ -61,7 +61,8 @@ class SchoolLeaders extends BaseController
'school_leaders_img|图片' => 'require'
]);
$model = ModelSchoolLeaders::where('school_leaders_guid', $params['school_leaders_guid'])->find();
if (!$model) throwErrorMsg("该录取学院领军者不存在", 1);
if (!$model)
throwErrorMsg("该录取学院领军者不存在", 1);
$model->allowField([
'school_leaders_update_user_guid',
'school_category_guid',
@ -76,7 +77,7 @@ class SchoolLeaders extends BaseController
} catch (\Throwable $th) {
Tool::unlockTable();
Db::rollback();
throw $th;
throw $th;
}
}
@ -111,7 +112,7 @@ class SchoolLeaders extends BaseController
} catch (\Throwable $th) {
Tool::unlockTable();
Db::rollback();
throw $th;
throw $th;
}
}
@ -137,7 +138,7 @@ class SchoolLeaders extends BaseController
} catch (\Throwable $th) {
Tool::unlockTable();
Db::rollback();
throw $th;
throw $th;
}
}
@ -168,13 +169,23 @@ class SchoolLeaders extends BaseController
*/
public function importExcel(Request $request)
{
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('school_leaders');
Db::startTrans();
Tool::adminLockTableWrite(['teacher','school_category']);
try {
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('school_leaders');
$msg = ModelSchoolLeaders::importExcel($file);
return [
'code' => 0,
'msg' => $msg
];
$msg = ModelSchoolLeaders::importExcel($file);
Db::commit();
Tool::unlockTable();
return [
'code' => 0,
'msg' => $msg
];
} catch (\Throwable $th) {
Db::rollback();
Tool::unlockTable();
throw $th;
}
}
}
}

View File

@ -187,7 +187,7 @@ class Teacher extends BaseController
public function importExcel(Request $request)
{
Db::startTrans();
Tool::adminLockTableWrite('teacher');
Tool::adminLockTableWrite(['teacher','subject']);
try {
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('info_article');

View File

@ -209,7 +209,7 @@ class Works extends BaseController
public function importExcel(Request $request)
{
Db::startTrans();
Tool::adminLockTableWrite('works');
Tool::adminLockTableWrite(['works','works_type']);
try {
$file = new UploadFile('uploads', 'fileExt:xlsx');
$file->putFile('works');

View File

@ -374,11 +374,22 @@ class Tool
/**
* 后台接口锁表(排他锁/写锁/独占锁)操作
*
* @param string $table 被锁表名
* @param string|array $table 被锁表名(可批量)
*/
public static function adminLockTableWrite(string $table)
public static function adminLockTableWrite($table)
{
Db::execute("LOCK TABLES {$table} WRITE,token WRITE,user WRITE");
if(is_string($table)){
$table = [$table];
}
$lock_table =[];
foreach ($table as $table_name)
{
$lock_table[] = "{$table_name} WRITE";
};
$lock_table = implode(',',$lock_table);
Db::execute("LOCK TABLES {$lock_table},token WRITE,user WRITE");
}
/**

View File

@ -106,13 +106,15 @@ class Achievement extends BaseModel
*/
public static function exportExcel($select)
{
$data = [[
'录取院校',
'标题',
'内容',
'副内容',
'排序'
]];
$data = [
[
'录取院校',
'标题',
'内容',
'副内容',
'排序'
]
];
foreach ($select as $key => $val) {
$data[] = [
$val['school_category_name'],
@ -133,31 +135,26 @@ class Achievement extends BaseModel
{
$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->achievement_title}数据 新增成功!</span><br>";
} catch (\Throwable $th) {
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
}
$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->achievement_title}数据 新增成功!</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;
}
return implode(', ', $msg);
}
/**
@ -173,8 +170,10 @@ class Achievement extends BaseModel
// 录取院校
$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;
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,
@ -184,7 +183,7 @@ class Achievement extends BaseModel
'achievement_sort' => $achievement_sort,
]);
$model['school_category_name'] = $school_category_name;
return $model;
$model['school_category_name'] = $school_category_name;
return $model;
}
}
}

View File

@ -105,19 +105,21 @@ class SchoolLeaders extends BaseModel
Tool::dataDeleteSortProc($model);
$model->completeDeleteField();
}
/**
* 导出Excel
*/
public static function exportExcel($select)
{
$data = [[
'录取院校',
'名称',
'所属院校',
'图片',
'排序'
]];
$data = [
[
'录取院校',
'名称',
'所属院校',
'图片',
'排序'
]
];
foreach ($select as $key => $val) {
$data[] = [
$val['school_category_name'],
@ -137,32 +139,25 @@ class SchoolLeaders extends BaseModel
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>";
}
$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;
}
return implode(', ', $msg);
}
/**
@ -177,8 +172,10 @@ class SchoolLeaders extends BaseModel
// 录取院校
$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;
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,
@ -187,7 +184,7 @@ class SchoolLeaders extends BaseModel
'school_leaders_sort' => $school_leaders_sort,
]);
$model['school_category_name'] = $school_category_name;
return $model;
$model['school_category_name'] = $school_category_name;
return $model;
}
}
}

View File

@ -100,10 +100,12 @@ class Subject extends BaseModel
*/
public static function exportExcel($select)
{
$data = [[
'科目名字',
'排序'
]];
$data = [
[
'科目名字',
'排序'
]
];
foreach ($select as $key => $val) {
$data[] = [
$val['subject_name'],
@ -120,32 +122,26 @@ class Subject extends BaseModel
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'>{$value->subject_name}新增成功!</span><br>";
} catch (\Throwable $th) {
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
}
$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'>{$value->subject_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;
}
return implode(', ', $msg);
}
/**
@ -160,4 +156,4 @@ class Subject extends BaseModel
'subject_sort' => $subject_sort,
]);
}
}
}

View File

@ -119,14 +119,16 @@ class Teacher extends BaseModel
*/
public static function exportExcel($select)
{
$data = [[
'授教科目',
'教师名称',
'教师职位',
'教师图片',
'教师简介',
'教师排序'
]];
$data = [
[
'授教科目',
'教师名称',
'教师职位',
'教师图片',
'教师简介',
'教师排序'
]
];
foreach ($select as $key => $val) {
$data[] = [
$val['subject_name'],
@ -147,32 +149,25 @@ class Teacher extends BaseModel
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->subject_name}{$model->teacher_name}新增成功!</span><br>";
} catch (\Throwable $th) {
$msg[] = "{$line} <span style='color:red'>{$th->getMessage()}</span><br>";
}
$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->subject_name}{$model->teacher_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;
}
return implode(', ', $msg);
}
/**
@ -188,8 +183,10 @@ class Teacher extends BaseModel
// 授教科目
$subject = ModelSubject::where('subject_name', $subject_name)->find();
if (!$subject) throwErrorMsg($subject_name . " 授教科目不存在!");
else $subject_guid = $subject->subject_guid;
if (!$subject)
throwErrorMsg($subject_name . " 授教科目不存在!");
else
$subject_guid = $subject->subject_guid;
$model = self::create([
'teacher_name' => $teacher_name,
@ -206,7 +203,7 @@ class Teacher extends BaseModel
// 获取器 - 中文转拼音(全部大写)
public function getTeacherEngNameAttr($value, $data)
{
$teacher_name = $data['teacher_name'];
$teacher_name = $data['teacher_name'];
// 实例化拼音转换库
$pinyin = new Pinyin();
@ -219,4 +216,4 @@ class Teacher extends BaseModel
return $teacher_eng_name;
}
}
}

View File

@ -170,12 +170,9 @@ class Works extends BaseModel
$works_type = ModelWorksType::where("works_type_name", $works_type_name)->find();
if (!$works_type) throwErrorMsg("作品类型不存在!");
$classes = ModelClasses::where("classes_name", $classes_name)->find();
if (!$classes) throwErrorMsg("班型不存在!");
self::create([
'works_type_guid' => $works_type->works_type_guid,
'classes_guid' => $classes->classes_guid,
'works_name' => $works_name,
'works_author' => $works_author,
'works_likes_count' => $works_likes_count,