发表于: 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



返回列表 返回列表
评论

    分享到