发表于: 2019-11-17 23:25:41

1 1042


今天完成的事情:

写代码,又妥协了。一个接口本来只要一个查询的,现在变成两个查询,还多了一次判断。加上上次排序非要传0,这里一共两个判断。不爽归不爽,还是要做啊,像师兄说的,你这个方案再不好,老板要你做,你做不做!先经历一遍,以后就习惯了.

现在这个这么长,

@GetMapping("/a/list/study")
public Map<String, Object> studySelectList(HttpServletRequest request,StudyObject studyObject,
                                          @RequestParam(value = "status", defaultValue = "1") Integer status,
                                          @RequestParam(value = "sort", defaultValue = "0") Integer sort,
                                          @RequestParam(value = "page", defaultValue = "1") Integer page,
                                          @RequestParam(value = "size", defaultValue = "10") Integer size) {
   HashMap<String, Object> result = new HashMap<>(16);
   log.info("获取第{}页共{}行学习对象信息{}按照{}排序", page, size, studyObject, sort);
   try {
       /*前台默认查询上架的学习对象*/
       studyObject.setStatus(status);

       /*如果传年级为0,查询时不添加当前用户年级为查询条件,反之从cookie中获取用户ID*/
       if (new Integer(0).equals(studyObject.getGrade())) {
           studyObject.setGrade(null);
       } else  if (studyObject.getGrade()==null){
           long userId = JWTUtil.getUserIdFromToken(request);
           User user = userServer.selectByUserIdAllInfo(userId);
           int grade=user.getUserClass();
           studyObject.setGrade(grade);
       }

       /*如果传科目为0,将返回全部科目学习对象*/
       if (new Integer(0).equals(studyObject.getCourse())) {
           studyObject.setCourse(null);
       }

       /*排序方式*/
       if (sort == 1) {
           PageHelper.startPage(page, size, "browse_count desc,create_at desc");
       } else if (sort == 2) {
           PageHelper.startPage(page, size, "buy_count desc,create_at desc");
       } else if (sort == 3) {
           studyObject.setPrice(BigDecimal.valueOf(0));
           PageHelper.startPage(page, size, "create_at desc");
       } else if (sort == 0) {
           /*按照创建时间倒序*/
           PageHelper.startPage(page, size, "create_at desc");
       }
       List<StudyObject> studyObjectList = studyObjectServer.selectSelective(studyObject);
       PageInfo<StudyObject> pageInfo = new PageInfo<>(studyObjectList);
       /*获取总数据量*/
       Long total = pageInfo.getTotal();
       if (!studyObjectList.isEmpty()) {
           result.put("code", SUCCESS.getCode());
           result.put("msg", SUCCESS.getMsg());
           result.put("total", total);
           result.put("data", studyObjectList);
           /*查询到的id集合*/
           List<Long> selectStudyObjectIdList = new ArrayList();
           for (StudyObject studyObject1 : studyObjectList) {
               selectStudyObjectIdList.add(studyObject1.getId());
           }
           log.info("查到的学习对象ID是{}", selectStudyObjectIdList);
       } else {
           result.put("code", SUCCESS.getCode());
           result.put("msg", SUCCESS.getMsg());
           result.put("data", studyObjectList);
           log.info("未查询到此学习对象信息");
       }
       return result;
   } catch (Exception e) {
       e.printStackTrace();
       result.put("code", REQUEST_FAILED.getCode());
       result.put("msg", REQUEST_FAILED.getMsg());
       return result;
   }
}


不过最有收获的,还是知道了在测试的时候,填什么样的数据就够了。

只要那表现出当前功能的完整性,就行,比如首页的课程列表,在我选择任意年级,科目时,返回的数据可以表示对应条件,,比如我点了高一,就返回所以高一课程,展示出来的标题不一样,比如高一语文1,高一英语1,高一数学1,然后点击对应科目,可以返回的数据如:高一语文1,高一语文20,高一语文100,这样。每个标题都是不一样的。是一个可用且正确的列表查询。



明天计划的事情:

和组员讨论了下,先把支付的代码写了,到时候用不用在说吧。


遇到的问题:

或许可以尝试用测试号做支付测试


收获:




返回列表 返回列表
评论

    分享到