校企联盟平台是一款专为高校与企业搭建的数字化协作桥梁,旨在打破传统校企合作中的信息壁垒,促进人才培养、科研合作、实习就业等多维度深度融合。
本平台通过整合双方资源,提供高效的项目对接、人才交流、成果转化等服务,实现教育链、人才链与产业链、创新链的有机衔接。系统采用模块化设计,结合严格的权限管理和完善的日志审计体系,确保不同角色用户能够安全、便捷地使用各项功能,推动校企合作向规范化、智能化方向发展。
- 后端框架:Spring Boot 3.4.7
- 安全框架:Spring Security
- 数据访问:MyBatis-Plus 3.5.12
- 数据库:MySQL
- 数据库版本控制:Flyway
- 接口文档:SpringDoc OpenAPI
- JWT认证:JJWT 0.11.5
- 构建工具:Maven
-
权限管理系统
- 多角色权限模型
- 权限分级控制
- 动态权限调整
- 单点登录
-
校企信息管理
- 学校信息展示
- 企业信息展示
- 信息审核机制
-
项目合作管理
- 项目发布与对接
- 项目全周期管理
- 经费管理
-
人才培养与交流
- 实习就业管理
- 双师课堂
- 学生成果展示
-
资源共享中心
- 科研资源共享
- 课程资源库
- 知识产权交易
-
日志审计系统
- 操作日志记录
- 系统日志监控
- 审计报表生成
-
在线交流社区
- 社区板块管理
- 话题与帖子
- 问答系统
- 资源共享
- 活动发布与报名
- 私信与通知
- 积分与激励
- 内容审核与举报
unicorp-api/
├── docs/ # 文档目录
├── src/ # 源代码目录
│ ├── main/ # 主代码
│ │ ├── java/ # Java代码
│ │ │ └── com/csu/unicorp/
│ │ │ ├── common/ # 通用工具和配置
│ │ │ │ ├── annotation/ # 自定义注解
│ │ │ │ ├── aspect/ # AOP切面
│ │ │ │ ├── constants/ # 常量定义
│ │ │ │ ├── exception/ # 异常处理
│ │ │ │ └── utils/ # 工具类,包含验证码工具
│ │ │ ├── config/ # 配置类
│ │ │ │ └── security/ # 安全相关配置
│ │ │ ├── controller/ # 控制器层
│ │ │ │ ├── achievement/ # 成果相关控制器
│ │ │ │ ├── community/ # 社区相关控制器
│ │ │ │ ├── course/ # 课程相关控制器
│ │ │ │ ├── job/ # 工作相关控制器
│ │ │ │ └── log/ # 日志相关控制器
│ │ │ ├── dto/ # 数据传输对象
│ │ │ ├── entity/ # 实体类
│ │ │ ├── interceptor/ # 拦截器
│ │ │ ├── mapper/ # MyBatis Mapper接口
│ │ │ ├── service/ # 服务层接口
│ │ │ │ └── impl/ # 服务层实现类,包含邮件服务和验证码服务
│ │ │ └── vo/ # 视图对象
│ │ ├── resources/ # 资源文件
│ │ │ ├── db/ # 数据库迁移脚本
│ │ │ ├── mapper/ # MyBatis XML映射文件
│ │ │ ├── static/ # 静态资源
│ │ │ └── templates/ # 模板文件
│ └── test/ # 测试代码
├── upload/ # 上传文件存储目录
├── docker-compose.yml # Docker容器编排配置
├── mvnw # Maven包装器(Unix/Linux)
├── mvnw.cmd # Maven包装器(Windows)
├── pom.xml # Maven项目配置
└── README.md # 项目说明文档
项目采用以下数据库命名规范:
- 表名:使用蛇形命名法(snake_case),如
organizations,user_roles - 字段名:使用蛇形命名法,如
organization_id,created_at - 主键:所有表主键统一命名为
id(除关联表外)
平台实现了账户与实名信息分离的设计:
- 用户账户 (User):存储登录账号、密码、昵称等基本信息
- 实名认证 (UserVerification):隔离存储用户实名信息,提高数据安全性
- 简历 (Resume):存储学生特有的专业、教育水平、简历URL等信息
- 用户登录注册体系(基于Spring Security + JWT)
- 组织管理(学校/企业)
- 角色权限管理
- 用户实名认证模型
- 企业发布招聘信息
- 学生浏览招聘信息
- 学生申请职位
- 企业查看申请并处理
- 校企双方发布合作项目
- 校企双方管理合作项目
- 公开浏览合作项目
- 学生申请参与项目
- 文件上传与管理
- 教师/企业导师上传共享资源
- 公开浏览资源列表
- 资源详情查看与下载
- 资源所有者更新和删除资源
- 用户个人主页的展示与编辑
- 学生作品集管理(创建、更新、删除)
- 个人档案信息维护
- 用户头像和个人简介管理
- 教师和企业导师联合开设双师课程
- 学生浏览和报名课程
- 课程全生命周期管理(规划、开放报名、进行中、完成)
- 课程名额限制和报名管理
- 支持在线/线下/混合模式的课程设置
- 课程资源管理(上传、下载、查询)
- 课程评价系统(学生评分、评价)
- 学生用户收藏招聘岗位
- 学生用户取消收藏岗位
- 学生用户查看已收藏岗位列表
- 岗位收藏权限控制
- 添加了岗位具体要求(
job_requirements)和工作福利描述(job_benefits)字段 - 更新了JobVO和JobCreationDTO,添加了相应字段
- 修复了application.yml中的重复paths-to-match配置错误
- 调整了岗位与分类的关系,一个岗位只对应一个三级分类
- 修改了JobCreationDTO,添加categoryId字段表示三级分类ID
- 将JobVO中的categories列表改为单一的category字段
- 修改了JobServiceImpl中的相关方法,确保岗位只关联一个三级分类
- 更新了API文档,明确说明岗位需要指定一个三级分类ID
- 在岗位申请表中添加简历ID字段,关联到学生档案
- 更新了ApplicationCreationDTO,要求提交岗位申请时必须指定简历ID
- 修改了岗位申请相关VO,添加简历ID字段
- 企业导师可以通过岗位申请直接查看学生简历
- 将student_profiles表重命名为resumes,使命名更加直观
- 更新了相关实体类、Mapper和VO,使用Resume替代StudentProfile
- 调整了ApplicationMapper中的SQL查询,使用简历ID直接关联简历表
- 简化了申请与简历的关系,提高了系统灵活性
- 重构了原有的个人主页控制器,创建专门的简历管理控制器
- 支持用户创建多份简历,满足不同岗位申请需求
- 提供简历的增删改查完整功能
- 优化了简历与岗位申请的关联关系
- 移除了resumes表中user_id的唯一约束,使一个用户可以拥有多份简历
- 实现了基于用户特征和岗位特征的智能推荐系统
- 添加了岗位自动特征提取功能,企业发布岗位时自动分析提取关键词和技能要求
- 支持用户设置个人特征(技能、兴趣、专业等)
- 基于特征匹配推荐合适的岗位给用户
- 支持用户行为分析,根据浏览、收藏、申请等行为优化推荐结果
- 添加了通过电话号码或邮箱搜索用户的功能
- 实现了基于安全认证的用户搜索接口
- 只有已登录用户才能使用搜索功能
- 搜索结果包含用户基本信息(不包含敏感数据)
- 学生作品集管理(创建、更新、删除、展示)
- 竞赛获奖管理(创建、更新、删除、展示、认证)
- 科研成果管理(创建、更新、删除、展示、认证)
- 成果访问统计与分析
- 教师认证学生成果
- 企业查看学生成果
- 社区板块管理(分类、权限设置、置顶与精华)
- 话题与帖子(发布、编辑、互动、标签系统)
- 问答系统(提问、回答、最佳答案、悬赏机制)
- 资源共享(上传、评价、分类管理)
- 活动发布与报名(线上/线下活动、报名管理)
- 私信与通知(私信系统、消息通知、订阅功能)
- 积分与激励(积分规则、等级体系、荣誉徽章)
- 内容审核与举报(自动审核、人工审核、违规处理)
- 岗位推荐(基于学生特征和行为数据推荐合适岗位)
- 人才推荐(基于企业需求推荐匹配的学生人才)
- 用户行为分析(记录和分析用户浏览、搜索、申请等行为)
- 用户特征提取(从简历、作品集、成就等数据中提取用户特征)
- 岗位特征提取(从岗位描述、要求等信息中提取岗位特征)
- 推荐算法实现(基于内容的推荐和协同过滤推荐)
- 支持使用GitHub账号登录系统
- 自动创建关联用户账号
- 实现无缝的OAuth2认证流程
- 优化数据库结构支持第三方登录(密码字段允许为NULL)
已实现API:
- 用户登录 - POST
/v1/auth/login - 学生注册 - POST
/v1/auth/register/student - 获取岗位推荐列表 - GET
/v1/recommendations/jobs - 获取人才推荐列表 - GET
/v1/recommendations/talents - 更新岗位推荐状态 - PATCH
/v1/recommendations/jobs/{id} - 更新人才推荐状态 - PATCH
/v1/recommendations/talents/{id} - 记录用户行为 - POST
/v1/recommendations/behaviors - 获取个人特征 - GET
/v1/recommendations/features/me - 更新个人特征 - PUT
/v1/recommendations/features/me - 获取行为统计 - GET
/v1/recommendations/statistics/behaviors - 生成岗位推荐 - POST
/v1/recommendations/jobs/generate - 生成人才推荐 - POST
/v1/recommendations/talents/generate - 文件上传 - POST
/v1/files/upload - 获取资源列表 - GET
/v1/resources - 获取资源详情 - GET
/v1/resources/{id} - 创建资源 - POST
/v1/resources - 更新资源 - PUT
/v1/resources/{id} - 删除资源 - DELETE
/v1/resources/{id} - 获取用户简历 - GET
/v1/resumes/{userId} - 获取我的简历 - GET
/v1/me/resume - 获取我的所有简历列表 - GET
/v1/me/resumes - 创建简历 - POST
/v1/me/resume - 更新简历 - PUT
/v1/me/resume/{resumeId} - 删除简历 - DELETE
/v1/me/resume/{resumeId} - 获取作品集列表 - GET
/v1/me/portfolio - 添加作品集项目 - POST
/v1/me/portfolio - 更新作品集项目 - PUT
/v1/me/portfolio/{itemId} - 删除作品集项目 - DELETE
/v1/me/portfolio/{itemId} - 获取收藏岗位列表 - GET
/v1/me/favorites/jobs - 收藏岗位 - POST
/v1/jobs/{id}/favorite - 取消收藏岗位 - DELETE
/v1/jobs/{id}/favorite - 更新用户个人信息 - PUT
/v1/auth/profile - 修改用户密码 - PUT
/v1/auth/password - 获取所有顶级岗位分类 - GET
/v1/admin/job-categories/root - 获取指定分类的子分类 - GET
/v1/admin/job-categories/{id}/children - 获取所有岗位分类 - GET
/v1/admin/job-categories - 获取岗位分类详情 - GET
/v1/admin/job-categories/{id} - 创建岗位分类 - POST
/v1/admin/job-categories - 更新岗位分类 - PUT
/v1/admin/job-categories/{id} - 删除岗位分类 - DELETE
/v1/admin/job-categories/{id} - 创建双师课堂课程 - POST
/v1/dual-courses - 更新课程信息 - PUT
/v1/dual-courses/{id} - 获取课程详情 - GET
/v1/dual-courses/{id} - 删除课程 - DELETE
/v1/dual-courses/{id} - 获取教师创建的课程列表 - GET
/v1/dual-courses/teacher - 获取企业导师参与的课程列表 - GET
/v1/dual-courses/mentor - 获取可报名课程列表 - GET
/v1/dual-courses/enrollable - 学生报名课程 - POST
/v1/dual-courses/enroll - 学生取消报名 - DELETE
/v1/dual-courses/enroll/{courseId} - 获取学生已报名的课程列表 - GET
/v1/dual-courses/enrolled - 更新课程状态 - PATCH
/v1/dual-courses/{id}/status - 上传课程资源 - POST
/v1/course-resources - 删除课程资源 - DELETE
/v1/course-resources/{resourceId} - 获取课程资源详情 - GET
/v1/course-resources/{resourceId} - 获取课程资源列表 - GET
/v1/course-resources/course/{courseId} - 下载课程资源 - GET
/v1/course-resources/download/{resourceId} - 提交课程评价 - POST
/v1/course-ratings - 更新课程评价 - PUT
/v1/course-ratings/{ratingId} - 删除课程评价 - DELETE
/v1/course-ratings/{ratingId} - 获取课程评价详情 - GET
/v1/course-ratings/{ratingId} - 获取课程评价列表 - GET
/v1/course-ratings/course/{courseId} - 获取课程平均评分 - GET
/v1/course-ratings/average/{courseId} - 检查学生是否已评价课程 - GET
/v1/course-ratings/check/{courseId} - 搜索用户 - GET
/v1/auth/search