发表于: 2018-01-19 23:30:22
1 516
今天完成的事情:
完成用户浏览记录接口. 里面牵扯到的业务逻辑比较复杂 service也比较多. 最后将所有东西组合在一起.
@RequestMapping(value = "/a/u/user/course/record", method = RequestMethod.GET)
public String getUserCourseRecord(HttpServletRequest request, HttpServletResponse response, ModelMap model, Integer page, Integer size) throws Exception {
Long userId = userUtil.getUserIdFromRequest(request, response);
if (userId.equals(null)) {
log.info(" user id = " + userId);
model.addAttribute("code", "-5021");
}
if (null == page) {
page = 1;
}
if (null == size) {
size = 5;
}
// 当页开始数目
int firstNmuber = (page - 1) * size;
if (firstNmuber < 0) {
firstNmuber = 0;
}
List<Long> totalIds = new ArrayList<>();
// 根据所有id数判断总数
totalIds = userCourseService.getIdsCoursesByUserId(userId, 0, Integer.MAX_VALUE);
Integer total = totalIds.size();
log.info(" total = " + total);
List<HashMap<String, Object>> realUserCourse = new ArrayList<>();
HashMap<String, Object> userCourseMap = new HashMap<>();
try {
// 根据用户id 根据更新时间降序 获取用户浏览ids, 获取整个浏览List
List<Long> getIdsCoursesByUserId = userCourseService.getIdsCoursesByUserId(userId, firstNmuber, page * size);
List<UserCourse> userCourseList = userCourseService.getObjectsByIds(getIdsCoursesByUserId);
for (UserCourse userCourse : userCourseList) {
Long userCourseId = userCourse.getCourseId();
// 获取多少人已学
Long learnPeople = userCourseService.countIdsByCourseId(userCourseId).get(0);
// 获取该课程下面多少课时,获取用户当前进度
Long countLessonPeriodIdByCourse = lessonPeriodService.getCountLessonPeriodByCourseId(userCourseId).get(0);
Integer userStudyLessonPeriod = userCourse.getCourseProgress();
// 根据课程id获取课程
Course course = courseService.getObjectById(userCourseId);
// 获取科目年级,名称,推荐状态
Integer courseGrade = course.getGrade();
String courseName = course.getName();
Integer courseRecommend = course.getRecommend();
// 获取用户收藏id若为空则没有收藏
Integer userKeepCourse = 1;
Long userKeepId = keepService.getKeepIdByUserIdAndCourseId(userId, userCourseId);
if (userKeepId.equals(null)) {
userKeepCourse = 0;
}
// 根据课程 id 获取下面所有加锁状态 的课时ids 若为空则该课程没有加锁
List<Long> lockLessonPeriodids = lockstitchService.getLockLessonPeriodByCourseId(userCourseId);
Integer lockLessonPeriodidsSunm = lockLessonPeriodids.size();
Integer lockCourseStatus = 1;
if (lockLessonPeriodids.equals(0)) {
lockCourseStatus = 0;
}
// 获取解锁表里面所有解锁课时的 总数与加锁的课时ids总数做对比
Integer unlockLessonPeriod = lockstitchService.getlockIdByLessonPeriodId(lockLessonPeriodids).size();
if (lockLessonPeriodidsSunm.equals(unlockLessonPeriod)) {
lockCourseStatus = 0;
}
userCourseMap.put("courseName", courseName);
userCourseMap.put("lockCourseStatus", lockCourseStatus);
userCourseMap.put("courseRecommend", courseRecommend);
userCourseMap.put("userKeepCourse", userKeepCourse);
userCourseMap.put("courseGrade", courseGrade);
userCourseMap.put("learnPeople", learnPeople);
userCourseMap.put("countLessonPeriodIdByCourse", countLessonPeriodIdByCourse);
userCourseMap.put("userStudyLessonPeriod", userStudyLessonPeriod);
realUserCourse.add(userCourseMap);
}
log.info("get course data is " + realUserCourse);
model.addAttribute("code", 0);
model.addAttribute("total", total);
model.addAttribute("size", size);
model.addAttribute("reslUserCourse", realUserCourse);
} catch (Throwable t) {
log.error(t.getMessage());
log.error("get course error,id is ");
model.addAttribute("code", -1);
}
return "userCourse/json/userCourseRecord";
}
}
明天计划的事情:
把这个接口测通,
写前台用户推荐接口.
遇到的困难:
暂无.
任务进度:接口编写
任务开始时间:2017-12-12
预计demo时间:2017-02-09
是否有延期风险:暂无
禅道地址:http://task.ptteng.com/zentao/task-view-17095.html
评论