package com.course.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.course.entity.ReportCard;
import com.course.vo.ReportCardVo;
import com.goal.entity.AcademicGoal;
import com.goal.vo.AcademicGoalVo;
import com.sys.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
@Mapper
public interface ReportCardMapper extends BaseMapper<ReportCard> {
@Select({"<script>",
"SELECT\n" +
" r.*, u.`name` AS username,\n" +
" c.`name` AS courseName,\n" +
" t.`name` AS theClassName\n" +
"FROM\n" +
" report_card r\n" +
"LEFT JOIN sys_user u ON u.`id` = r.`user_id`\n" +
"LEFT JOIN course c ON c.`id` = r.`course_id`\n" +
"LEFT JOIN the_class t ON t.`id` = u.`the_class_id`\n" +
"WHERE\n" +
" 1 = 1\n" +
"<when test='reportCardVo.userId !=null'>",
"AND r.`user_id` = #{reportCardVo.userId}",
"</when>",
"<when test='reportCardVo.theClassName!=null'>",
"AND t.`name` like CONCAT('%',#{reportCardVo.theClassName},'%')",
"</when>",
"<when test='reportCardVo.username!=null'>",
"AND u.`name` like CONCAT('%',#{reportCardVo.username},'%')",
"</when>",
"<when test='reportCardVo.courseName!=null'>",
"AND c.`name` = #{reportCardVo.courseName}",
//"AND c.`name` like CONCAT('%',#{reportCardVo.courseName},'%')",
"</when>",
"</script>"})
IPage<ReportCard> pageList(IPage<ReportCard> page, @Param("reportCardVo") ReportCardVo reportCardVo);
@Update({"<script>","UPDATE report_card a SET a.`grade` = #{reportCard.grade} WHERE a.`id` =#{reportCard.id} ","</script>"})
void updateGreatById(@Param("reportCard")ReportCard reportCard);
}
package com.course.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.course.entity.Course;
import com.course.service.CourseService;
import com.course.vo.CourseVo;
import com.goal.entity.TheClass;
import com.goal.service.TheClassService;
import com.sys.common.DataGridView;
import com.sys.common.ResultObj;
import com.sys.entity.User;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/course/iCourse")
public class ICourseController {
@Autowired
private CourseService courseService;
@Autowired
private TheClassService theClassService;
@RequestMapping("list")
public DataGridView list(CourseVo courseVo){
IPage<Course> page = new Page<Course>(courseVo.getPage(),courseVo.getLimit());
QueryWrapper<Course> queryWrapper = new QueryWrapper<Course>();
queryWrapper.like(StringUtils.isNotBlank(courseVo.getName()),"name",courseVo.getName());
queryWrapper.orderByAsc("id");
courseService.page(page,queryWrapper);
return new DataGridView(page.getTotal(),page.getRecords());
}
@RequestMapping("add")
public ResultObj add(Course course){
try {
course.setCreatetime(new Date());
courseService.save(course);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
@RequestMapping("update")
public ResultObj update(Course course){
try {
courseService.updateById(course);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
@RequestMapping("delete/{id}")
public ResultObj delete(@PathVariable("id") Integer id){
try {
courseService.removeById(id);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
@RequestMapping("getById/{id}")
public DataGridView getById(@PathVariable("id") Integer id){
Course course = courseService.getById(id);
return new DataGridView(course);
}
/**
* 根据用户id查询角色并选中已拥有的角色
* @param id 用户id
* @return
*/
@RequestMapping("initCourseClassId")
public DataGridView initCourseClassId(Integer id){
//1.查询所有可用的角色
QueryWrapper<TheClass> queryWrapper = new QueryWrapper<>();
List<Map<String, Object>> listMaps = theClassService.listMaps(queryWrapper);
//2.查询当前用户拥有的角色ID集合
List<Integer> ClassIds = courseService.queryCourseClassIdsByCid(id);
for (Map<String, Object> map : listMaps) {
Boolean LAY_CHECKED=false;
Integer cId = (Integer) map.get("id");
for (Integer cid : ClassIds) {
//如果当前用户已有该角色,则让LAY_CHECKED为true。LAY_CHECKED为true时,复选框选中
if (cid.equals(cId)){
LAY_CHECKED=true;
break;
}
}
map.put("LAY_CHECKED",LAY_CHECKED);
}
return new DataGridView(Long.valueOf(listMaps.size()),listMaps);
}
/**
* 保存用户和角色的关系
* @param cid 用户的ID
* @param ids 用户拥有的角色的ID的数组
* @return
*/
@RequestMapping("saveCourseClass")
public ResultObj saveUserRole(Integer cid,Integer[] ids){
try {
courseService.saveCourseClass(cid,ids);
return ResultObj.DISPATCH_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DISPATCH_ERROR;
}
}
/**
* 加载所有课程的下拉列表
* @return
*/
@RequestMapping("loadAllTheClassSelect")
public DataGridView loadAllTheClassSelect(){
QueryWrapper<Course> queryWrapper = new QueryWrapper<Course>();
List<Course> list = courseService.list(queryWrapper);
return new DataGridView(list);
}
}