教师端毕业申请-毕业申请
1、.xml文件中的SQL语句
<select id="selectCommittedAllByTeacherIdAndState" resultMap="BaseResultMap">
select
*
from graduate_request
where
tea_id = #{teaId,jdbcType=INTEGER} and state = #{state,jdbcType=VARCHAR}
</select>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="com.sdu.postgraduate.entity.GraduateRequest" >
select
<include refid="Base_Column_List" />
from graduate_request
where graduate_apply_id = #{graduateApplyId,jdbcType=INTEGER}
</select>
<update id="updateByPrimaryKeySelective" parameterType="com.sdu.postgraduate.entity.GraduateRequest" >
update graduate_request
<set >
<if test="state != null" >
state = #{state},
</if>
<if test="traingUnit != null" >
traing_unit = #{traingUnit,jdbcType=VARCHAR},
</if>
<if test="subjectCategory != null" >
subject_category = #{subjectCategory,jdbcType=VARCHAR},
</if>
<if test="researchDirection != null" >
research_direction = #{researchDirection,jdbcType=VARCHAR},
</if>
<if test="grapaperTittle != null" >
grapaper_tittle = #{grapaperTittle,jdbcType=VARCHAR},
</if>
<if test="mainAchievement != null" >
main_achievement = #{mainAchievement,jdbcType=VARCHAR},
</if>
<if test="studyandexam != null" >
studyandexam = #{studyandexam,jdbcType=VARCHAR},
</if>
</set>
where graduate_apply_id = #{graduateApplyId,jdbcType=INTEGER}
and stu_id = #{stuId,jdbcType=INTEGER}
and tea_id = #{teaId,jdbcType=INTEGER}
</update>
2、mapper接口中的方法定义
GraduateRequest selectByPrimaryKey(GraduateRequest key);
int updateByPrimaryKeySelective(GraduateRequest record);
List<GraduateRequest> selectCommittedAllByTeacherIdAndState(GraduateRequest record);
3、service层中的方法定义
public List<GraduateRequest> loadGraduateRequestByTeacherIdAndState(GraduateRequest gr){
return graduateRequestDao.selectCommittedAllByTeacherIdAndState(gr);
}
public GraduateRequest selectGraduateRequestById(GraduateRequest gr){
return graduateRequestDao.selectByPrimaryKey(gr);
}
public int updateGraduateRequestState(GraduateRequest gr){
return graduateRequestDao.updateByPrimaryKeySelective(gr);
}
public int updateGraduateRelationshipByRequestId(GraduateRelationship gr){
return graduateRelationshipDao.updateByGraduateRequestId(gr);
}
public GraduateRelationship selectGraduateRelationByRequestId(GraduateRelationship gr){
return graduateRelationshipDao.selectByRequestId(gr);
}
4、controller层业务逻辑
/**
* 毕业申请:
* 根据teacherID加载所有毕业申请
* 状态不包括未提交
* @param request
* @return
*/
@RequestMapping("/loadGraduateRequestByTeacherId")
@Transactional(rollbackFor = {RuntimeException.class, Error.class})
public Result loadGraduateRequestByTeacherId(@RequestBody Map<String, Object> request) {
// Integer tea_id = (int) request.get("tea_id");
Integer tea_id = Integer.valueOf(request.get("tea_id").toString());
List<String> state = Arrays.asList("审核中", "审核成功", "审核失败");
List<String> kind = Arrays.asList("notExamineInfo", "passInfo", "forbidInfo");
HashMap<String,ArrayList> state_request = new HashMap<>();
GraduateRequest apply = new GraduateRequest();
apply.setTeaId(tea_id);
for(int j = 0 ; j < state.size() ; j++){
ArrayList fullList = new ArrayList();
apply.setState(state.get(j));
List<GraduateRequest> origin_request = teacherService.loadGraduateRequestByTeacherIdAndState(apply);
for(int i = 0;i < origin_request.size();i++){
LinkedHashMap<String,Object> full_request = new LinkedHashMap<>();
GraduateRequest gr = origin_request.get(i);
Student stu = teacherService.selectStudentByPrimaryKey(gr.getStuId());
full_request.put("stuName",stu.getStuName());
full_request.put("GraduateRequest",gr);
fullList.add(full_request);
}
state_request.put(kind.get(j),fullList);
}
return Result.succ(state_request);
}
/**
* 毕业申请审核:
* 教师对申请状态为审核中的申请进行审核
* 状态可更改为审核成功or审核失败
* 同时修改graduateRelationship表
* @param request
* @return
*/
@RequestMapping("/updateGraduateRequestStateById")
@Transactional(rollbackFor = {RuntimeException.class, Error.class})
public Result updateGraduateRequestStateById(@RequestBody Map<String, Object> request){
Integer apply_id = (int) request.get("apply_id");
String state = (String) request.get("state");
GraduateRequest gr = new GraduateRequest();
gr.setGraduateApplyId(apply_id);
System.out.println(gr.getGraduateApplyId());
gr = teacherService.selectGraduateRequestById(gr);
if(teacherService.selectGraduateRequestById(gr)==null){
return Result.fail("不存在毕业申请信息");
}
GraduateRelationship ship = new GraduateRelationship();
ship.setGraduateApplyId(apply_id);
if(teacherService.selectGraduateRelationByRequestId(ship)==null){
return Result.fail("不存在毕业关系信息");
}
ship = teacherService.selectGraduateRelationByRequestId(ship);
gr.setState(state);
if(state.equals("审核成功")){
ship.setState("毕业申请审核成功");
if(teacherService.updateGraduateRequestState(gr)==1&&teacherService.updateGraduateRelationshipByRequestId(ship)==1){
return Result.succ("操作成功1!");
}else{
return Result.fail("操作失败!");
}
}else if(state.equals("审核失败")){
ship.setState("毕业申请审核失败");
if(teacherService.updateGraduateRequestState(gr)==1&&teacherService.updateGraduateRelationshipByRequestId(ship)==1){
return Result.succ("操作成功2!");
}else{
return Result.fail("操作失败!");
}
}else if(state.equals("取消审核")){
gr.setState("未提交");
ship.setState("毕业申请未提交");
if(teacherService.updateGraduateRequestState(gr)==1&&teacherService.updateGraduateRelationshipByRequestId(ship)==1){
return Result.succ("操作成功3!");
}else{
return Result.fail("操作失败!");
}
}else{
return Result.succ("参数不匹配!");
}
}