diff --git a/app/admin/controller/HonoraryAchievement/JointAchievement.php b/app/admin/controller/HonoraryAchievement/JointAchievement.php new file mode 100644 index 0000000..b079866 --- /dev/null +++ b/app/admin/controller/HonoraryAchievement/JointAchievement.php @@ -0,0 +1,144 @@ +param(); + $con = []; + + $con = Tool::getOptionalQuery(['joint_achievement_title', 'LIKE'],); + + $query = ModelJointAchievement::where($con) + ->field([ + 'joint_achievement_id', + 'joint_achievement_guid', + 'joint_achievement_title', + 'joint_achievement_cover', + 'joint_achievement_sort', + 'joint_achievement_content' + ]) + ->order('joint_achievement_sort', 'asc'); + + return msg("获取联考成绩列表成功!", $query); + } + + /** + * 编辑联考成绩 + */ + public function editJointAchievement(Request $request): array + { + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'joint_achievement_title|标题' => 'require', + 'joint_achievement_cover|封面' => 'require', + 'joint_achievement_sort|排序' => 'require' + ]); + $model = ModelJointAchievement::where('joint_achievement_guid', $params['joint_achievement_guid'])->find(); + if (!$model) throwErrorMsg("该联考成绩不存在", 1); + $model->allowField([ + 'joint_achievement_update_user_guid', + 'joint_achievement_title', + 'joint_achievement_cover', + 'joint_achievement_sort', + 'joint_achievement_content' + ])->save($params); + Db::commit(); + return msg('编辑成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** + * 添加联考成绩 + */ + public function addJointAchievement(Request $request): array + { + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'joint_achievement_title|标题' => 'require', + 'joint_achievement_cover|封面' => 'require', + 'joint_achievement_sort|排序' => 'require' + ]); + $model = ModelJointAchievement::create($params, [ + 'joint_achievement_guid', + 'joint_achievement_create_user_guid', + 'joint_achievement_update_user_guid', + 'joint_achievement_title', + 'joint_achievement_cover', + 'joint_achievement_sort', + 'joint_achievement_content' + ]); + Db::commit(); + return msg('添加成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** + * 删除联考成绩 + */ + public function deleteJointAchievement(Request $request): array + { + Db::startTrans(); + try { + $params = $request->param(); + $this->validate($params, [ + 'joint_achievement_guid' => 'require', + ]); + $joint_achievement = ModelJointAchievement::where([ + 'joint_achievement_guid' => explode(',', $params['joint_achievement_guid']) + ])->select(); + $joint_achievement->delete(); + return msg('删除成功!'); + Db::commit(); + return msg('删除成功!'); + } catch (\Throwable $th) { + Db::rollback(); + throw $th; + } + } + + /** + * 导出Excel + */ + public function exportExcel(Request $request) + { + $params = $request->param(); + $select = ModelJointAchievement::field([ + 'joint_achievement_title', + 'joint_achievement_cover', + 'joint_achievement_sort', + 'joint_achievement_content' + ]) + ->order('joint_achievement_sort', 'asc') + ->select(); + return ModelJointAchievement::exportExcel($select); + } +} diff --git a/app/common/model/HonoraryAchievement/Achievement.php b/app/common/model/HonoraryAchievement/Achievement.php index dc736f4..0e3eb33 100644 --- a/app/common/model/HonoraryAchievement/Achievement.php +++ b/app/common/model/HonoraryAchievement/Achievement.php @@ -105,7 +105,7 @@ class Achievement extends BaseModel */ public static function onBeforeDelete(self $model): void { - Tool::sortDeleteProc(self::class, $model->school_category_guid); + Tool::sortDeleteProc(self::class, $model->achievement_guid); $model->completeDeleteField(); } diff --git a/app/common/model/HonoraryAchievement/JointAchievement.php b/app/common/model/HonoraryAchievement/JointAchievement.php new file mode 100644 index 0000000..7cb5a60 --- /dev/null +++ b/app/common/model/HonoraryAchievement/JointAchievement.php @@ -0,0 +1,119 @@ + "int", + + "joint_achievement_guid" => "string", + + "joint_achievement_title" => "string", + + "joint_achievement_cover" => "string", + + "joint_achievement_sort" => "int", + + "joint_achievement_content" => "string", + + "joint_achievement_create_time" => "datetime", + + "joint_achievement_create_user_guid" => "string", + + "joint_achievement_update_time" => "datetime", + + "joint_achievement_update_user_guid" => "string", + + "joint_achievement_delete_time" => "datetime", + + "joint_achievement_delete_user_guid" => "string", + + ]; + // 设置json类型字段 + protected $json = ['']; + // 开启自动写入时间戳字段 + protected $autoWriteTimestamp = 'datetime'; + // 创建时间 + protected $createTime = 'joint_achievement_create_time'; + // 修改时间 + protected $updateTime = 'joint_achievement_update_time'; + + + + //排序字段 + public $order_field = 'joint_achievement_sort'; + + /** + * 新增前 + */ + public static function onBeforeInsert(self $model): void + { + Tool::sortInsertProc( + self::class, + $model->joint_achievement_sort, + ); + $model->completeCreateField(); + } + + /** + * 更新前 + */ + public static function onBeforeUpdate(self $model): void + { + Tool::sortEditProc( + self::class, + $model->joint_achievement_guid, + $model->joint_achievement_sort, + ); + $model->completeUpdateField(); + } + + /** + * 删除前 + */ + public static function onBeforeDelete(self $model): void + { + Tool::sortDeleteProc(self::class, $model->joint_achievement_guid); + $model->completeDeleteField(); + } + + + /** + * 导出Excel + */ + public static function exportExcel($select) + { + $data = [[ + '标题', + '封面', + '排序', + ]]; + foreach ($select as $key => $val) { + $data[] = [ + $val['joint_achievement_title'], + Excel::ExportImgFiled($val['joint_achievement_cover']), + $val['joint_achievement_sort'], + ]; + } + $excel = (new Excel())->exporTsheet($data); + $excel->save('联考成绩.xlsx'); + } +}