package com.sang.subjectcompetition.service.impl;
import com.sang.subjectcompetition.entity.*;
import com.sang.subjectcompetition.entity.resultInfo.ProResult;
import com.sang.subjectcompetition.entity.resultInfo.UserInfo;
import com.sang.subjectcompetition.respository.Student_ProjectRepository;
import com.sang.subjectcompetition.respository.TeacherRepository;
import com.sang.subjectcompetition.respository.Teacher_ProjectRepository;
import com.sang.subjectcompetition.service.*;
import com.sang.subjectcompetition.service.util.UpdateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.*;
@Service
@Transactional
public class TeacherServiceImpl implements TeacherService {
@Autowired
private TeacherRepository teacherRepository;
@Autowired
private Teacher_ProjectRepository teacher_projectRepository;
@Autowired
private Student_ProjectRepository student_projectRepository;
@Autowired
private Teacher_ProjectService teacher_projectService;
@Autowired
private CompService compService;
@Autowired
private ProjectService projectService;
@Autowired
private Student_ProjectService student_projectService;
@Autowired
private College_CompService college_compService;
@Autowired
private StudentService studentService;
@Autowired
private MessageService messageService;
//基本操作--------------------------------------------------------
@Override
public Teacher save(Teacher teacher) {
return teacherRepository.save(teacher);
}
@Override
public Teacher getTeacherById(Integer id) {
return teacherRepository.findById(id).orElse(null);
}
//业务逻辑--------------------------------------------------------
/**
* 更新老师信息
* @param teacher
* @return
*/
@Override
public UserInfo updateTeacher(Teacher teacher) {
UserInfo userInfo=new UserInfo();
Teacher teacher_db=getTeacherById(teacher.getId());
UpdateUtil.copyNullProperties(teacher,teacher_db);
Teacher save = this.save(teacher_db);
if (save!=null){
userInfo.setCode(200);
userInfo.setMessage("信息更改成功!");
userInfo.setData(save);
return userInfo;
}else {
userInfo.setCode(400);
userInfo.setMessage("信息更改失败!");
return userInfo;
}
}
/**
* 获得本院系所有老师
* @param collegeId
* @return
*/
@Override
public List<Teacher> getAllTeachersByCollegeId(Integer collegeId) {
List<Teacher> teacherList = teacherRepository.getTeachersByCollege_Id(collegeId);
return teacherList;
}
//----------------------------面向学院--------------------------
/**
* 老师向学院申请参加比赛,并创建自己的项目
* @param teacherId
* @param compId
* @param project
* @return
*/
@Override
public ProResult applyJoinComp(Integer teacherId, Integer compId,Project project) {
Teacher teacher = getTeacherById(teacherId);
College college = teacher.getCollege();
ProResult proResult=new ProResult();
Comp comp = compService.findCompById(compId);
/* if(comp.getMaxCountProject()<=comp.getCountProject()){//判断是否已满名额限制
proResult.setCode(400);
proResult.setMessage("比赛队伍满额!");
return proResult;
}*/
if (comp.getCompState()==0){
proResult.setCode(401);
proResult.setMessage("比赛正在规划中,无法申请!");
return proResult;
}else if(comp.getCompState()==2){
proResult.setCode(401);
proResult.setMessage("比赛已截止报名,无法申请!");
return proResult;
}else if(comp.getCompState()==3){
proResult.setCode(401);
proResult.setMessage("比赛正在进行中,无法申请!");
return proResult;
}else if(comp.getCompState()!=1){
proResult.setCode(401);
proResult.setMessage("比赛已结束,无法申请!");
return proResult;
}
//判断申请人是否已经申请过此项目 0默认 1申请 2驳回 3同意 4重新申请
if(project.getId()!=null){//如果是重新申请
Integer projectId = project.getId();
Teacher_Project teacher_project = teacher_projectService.findTeacher_ProjectByTeacherIdAndProjectIdAndIsCreator(teacherId, projectId, true);
Integer applyOrJoinState = teacher_project.getApplyOrJoin();
if (applyOrJoinState==1|applyOrJoinState==4){//已经申请过 重新点击申请按钮
proResult.setMessage("您已申请过该比赛,请耐心等待");
proResult.setCode(400);
return proResult;
}else if (applyOrJoinState==3){//已经同意了的项目
proResult.setMessage("您的项目申请已经通过,请勿重复点击");
proResult.setCode(400);
return proResult;
}else if (applyOrJoinState==0){
proResult.setMessage("状态异常,请联系管理员");
proResult.setCode(400);
return proResult;
}else{//-------------------------------2是驳回 代表重新申请此项目
teacher_project.setApplyOrJoin(4);//重复申请
teacher_project.setUpdateApplyDate(new Date());//重复申请
Project project_db = projectService.getProjectById(projectId);
UpdateUtil.copyNullProperties(project,project_db);
proResult.setMessage("已发起重复申请");
proResult.setCode(200);
Message message=new Message();
message.setReceiver(college.getTargetId());
message.setSender(teacher.getTargetId());
message.setSenderRole(1);
message.setReceiverRole(2);
message.setTitle("你有新的项目申请");
message.setContent(teacher.getNickname()+"老师,用户名:"+teacher.getUsername()
+"重新发出项目申请"+" 项目名:"+project.getProjectName()+",所属比赛为:"+project.getComp().getCompName()
+"请尽快处理!");
message.setType(0);
message.setMsgDate(new Date());
messageService.save(message);
return proResult;
}
}
Teacher_Project teacher_project =new Teacher_Project();
project.setCreateByTeacher(getTeacherById(teacherId));//设置项目创建者的老师
project.setApplyState(0);//未审核
project.setComp(comp);
project = projectService.save(project);
teacher_project.setTeacher(getTeacherById(teacherId));
teacher_project.setProject(project);
teacher_project.setApplyDate(new Date());
teacher_project.setUpdateApplyDate(new Date());
teacher_project.setApplyOrJoin(1);//申请
teacher_project.setIsCreator(true);//设置创建者标志
Teacher_Project teacherProject = teacher_projectService.save(teacher_project);
if (teacherProject!=null){
proResult.setCode(200);
proResult.setMessage("申请已发出!");
Message message=new Message();
message.setReceiver(college.getTargetId());
message.setSender(teacher.getTargetId());
message.setSenderRole(1);
message.setReceiverRole(2);
message.setTitle("你有新的项目申请");
message.setContent(teacher.getNickname()+"老师,用户名:"+teacher.getUsername()
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于springboot+vue+mysql学科竞赛管理系统(高分毕业设计)已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 一、系统介绍 系统主要功能: 学生:个人中心、首页、项目管理、竞赛列表、我的申请管理、信息管理 教师:个人中心、首页、项目管理、竞赛列表、我的申请管理、信息管理 学院管理:个人中心、首页、项目管理、作品管理、竞赛列表、学院端申请管理、信息管理、信息统计 系统管理员:个人中心、首页、竞赛管理、项目查看、竞赛申请、公告管理、通知管理、信息统计 运行环境:idea、mysql8、maven、vue 详见:https://blog.csdn.net/Timi2019/article/details/128351908
资源推荐
资源详情
资源评论
收起资源包目录
基于springboot+vue+mysql学科竞赛管理系统(高分毕业设计) (754个子文件)
.browserslistrc 21B
TeacherServiceImpl.class 28KB
DateServiceImpl.class 21KB
CollegeServiceImpl.class 18KB
DataController.class 17KB
StudentServiceImpl.class 12KB
StudentController.class 12KB
CollegeController.class 12KB
WxAwardsController.class 9KB
ProjectServiceImpl.class 9KB
UploadFileUtils.class 9KB
Teacher_ProjectServiceImpl.class 9KB
TeacherController.class 9KB
WxCompController.class 9KB
CompServiceImpl.class 8KB
AdminController.class 7KB
Comp.class 6KB
AwardsServiceImpl.class 6KB
MessageController.class 6KB
Notice.class 6KB
HttpClientUtil.class 6KB
Project.class 5KB
ProjectController.class 5KB
College_CompServiceImpl.class 5KB
DataControllerPlus.class 5KB
Student.class 5KB
TimeTask.class 5KB
WxController.class 4KB
AdminServiceImpl.class 4KB
UserServiceImpl.class 4KB
Awards.class 4KB
Student_ProjectServiceImpl.class 4KB
FileController.class 4KB
AwardsController.class 4KB
College.class 4KB
CompController.class 4KB
Message.class 3KB
AwardsServiceImpl$1.class 3KB
Teacher_Project.class 3KB
Work.class 3KB
Teacher.class 3KB
WechatUtil.class 3KB
Teacher_ProjectServiceImpl$1.class 3KB
Student_ProjectServiceImpl$1.class 3KB
MessageServiceImpl.class 3KB
College_CompServiceImpl$1.class 3KB
Student_Project.class 3KB
NoticeServiceImpl.class 3KB
MessageResult.class 3KB
LoginResult.class 3KB
CompResult.class 3KB
ProResult.class 3KB
UserInfo.class 3KB
College_Comp.class 3KB
User.class 3KB
WxResult.class 3KB
TeacherService.class 3KB
Admin.class 3KB
NoticeController.class 3KB
DateUtils.class 2KB
CollegeService.class 2KB
SubjectcompetitionApplicationTests.class 2KB
Teacher_ProjectRepository.class 2KB
ServletConfig.class 2KB
ProjectService.class 2KB
Teacher_ProjectService.class 2KB
Level.class 2KB
UpdateUtil.class 2KB
Type.class 2KB
TeacherServiceImpl$1.class 2KB
WorkFile.class 2KB
StudentService.class 2KB
Student_ProjectRepository.class 2KB
WxAwardsController$1.class 2KB
WorkServiceImpl.class 2KB
WorkFileServiceImpl.class 2KB
CompService.class 2KB
College_CompRepository.class 1KB
ProjectRepository.class 1KB
CollegeController$1.class 1KB
CorsConfig.class 1KB
CompRepository.class 1KB
DateService.class 1KB
College_CompService.class 1KB
LoginController.class 1KB
Student_ProjectService.class 1KB
WxSelfController.class 1KB
ColorUtils.class 1KB
AwardsService.class 1024B
ScoreUtil.class 975B
UUIDUtil.class 955B
StudentRepository.class 917B
AdminService.class 882B
TeacherRepository.class 866B
SubjectcompetitionApplication.class 864B
MessageService.class 694B
CollegeRepository.class 682B
AdminRepository.class 671B
NoticeService.class 656B
MessageRepository.class 641B
共 754 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
小码叔
- 粉丝: 4188
- 资源: 1197
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功