发表于: 2018-01-31 21:45:33

1 556


今天完成的事情:

1. 完成接口:

前台–解锁课时--课时展示

前台–解锁课时--学习星解锁


前台–解锁教材--价格的展示

前台–解锁教材--学习星解锁

学习星支付代码:

@RequestMapping(value = "/a/u/lessonPeriod/star", method = RequestMethod.POST)
public String lockLessonPeriodByStar(HttpServletRequest request,
                          HttpServletResponse response, ModelMap model,Long lessonPeriodId){
log.info("/a/u/lessonPeriod/money/ begin:   get data : lessonPeriodId= " + lessonPeriodId);
   if(DataUtils.isNullOrEmpty(lessonPeriodId)){
     log.info("参数为空!!");
     model.addAttribute("code", -1000);
     return "common/fail";
  }
  try {
  //获取课时详情
    LessonPeriod lessonPeriod = lessonPeriodService.getObjectById(lessonPeriodId);
     log.info("lessonPeriod is : " + lessonPeriod);
     if(DataUtils.isNullOrEmpty(lessonPeriod)){
        log.info("课时不存在!!");
        model.addAttribute("code", -11501);
        return "common/fail";
     }
        //判断课时是否需要收费
   if(lessonPeriod.getNeedPay().equals(Constant.UN_NEED_PAY)){
        log.info(" lessonPeriod  is  UN_NEED_PAY , id is " + lessonPeriodId);
        model.addAttribute("code", -11502);
        return "common/fail";
     }
      //判断该课时是否上架
   if(lessonPeriod.getStatus().equals(Constant.SHELEVE_DOWN)){
        log.info(" lessonPeriod  is  SHELEVE_DOWN , id is" + lessonPeriodId);
        model.addAttribute("code", -11503);
        return "common/fail";
     }
     //TODO 根据cookies获得userid
     Long userId = userUtil.getUserIdFromRequest(request,response);
     log.info("userId is "+ userId);
     //根据课时Id查询解锁表,看是否已解锁
    Map<String,Object> param =DynamicUtil.getLockLessonPeriodIdsByBook(userId,lessonPeriodId.toString());
     List<Long> lockIds = lockstitchService.getIdsByDynamicCondition(Lockstitch.class,param,0,Integer.MAX_VALUE);
     log.info("lockIds : " + lockIds);
     if(lockIds.size()!=0){
        log.info(" lessonPeriod  is  unlock , id is " + lessonPeriodId);
        model.addAttribute("code", -11504);
        return "common/fail";
     }
     //获得用户资料
     User user = userService.getObjectById(userId);
     if(DataUtils.isNullOrEmpty(user)){
        log.info("用户不存在!!");
        model.addAttribute("code", -1000);
        return "common/fail";
     }
       //学习星是否足够
   if(user.getStudyStar()<lessonPeriod.getStatus()){
        log.info("user star lack userId " + userId);
        model.addAttribute("code", -11001);
        return "common/fail";
     }
     //订单
   Order order = new Order();
     order.setUserId(userId);
     order.setStatus(Constant.PAY_STATUS_NO);
     order.setPayType(Constant.PAY_STAR);
     order.setOrderType(Constant.PAY_LESSON_PERIOD);
     order.setOrderTypeId(lessonPeriod.getId());
     order.setMoney(BigDecimal.valueOf(lessonPeriod.getStatus()));
     order.setCreateBy(userId);
     order.setUpdateBy(userId);
     Long orderId = orderService.insert(order);
     //用户支付学习星
    user.setStudyStar(user.getStudyStar()-lessonPeriod.getStatus());
     user.setUpdateBy(userId);
     boolean message = userService.update(user);
     //支付成功
    //修改订单状态和code
    Integer orderStatus = null;
     Integer code = null;
     Long lockId = null;
     if(message){
        log.info("user pay success , userId is : " + userId);
        orderStatus = Constant.PAY_STATUS_SUCCESS;
        code = 0;
        //添加解锁信息
      Lockstitch lockstitch = new Lockstitch();
        lockstitch.setUserId(userId);
        lockstitch.setOrderId(orderId);
        lockstitch.setBookId(lessonPeriod.getBookId());
        lockstitch.setCourseId(lessonPeriod.getCourseId());
        lockstitch.setLessonPeriodId(lessonPeriod.getId());
        lockstitch.setCreateBy(userId);
        lockstitch.setUpdateBy(userId);

        //添加解锁表和更新点订单信息
      lockId = lockstitchService.insert(lockstitch);
     }
      //支付失败
   if(!message){
        log.info("user pay fail , userId is : " + userId);
        orderStatus = Constant.PAY_STATUS_FAIL;
        code = -5;
        //还原支付的学习星
      user.setStatus(user.getStudyStar()+lessonPeriod.getStatus());
        user.setCreateBy(userId);
        userService.update(user);
     }
     //修改订单状态
   order.setStatus(orderStatus);
     order.setUpdateBy(userId);
     orderService.update(order);
     //拼接数据
    List<HashMap<String,Object>> payListMap = new ArrayList<HashMap<String,Object>>(1);
     HashMap<String , Object> payMap = new HashMap<String , Object>(2);
     payMap.put("orderId",orderId);
     payMap.put("lockstitchId",lockId);
     payListMap.add(payMap);
     model.addAttribute("code", code);
     model.addAttribute("payListMap", payListMap);
  }catch (Throwable e) {
     e.printStackTrace();
     e.printStackTrace();
     log.info("getCourseMoney () error: "+e.getMessage());
     model.addAttribute("code",-1);
     return "/common/fail";
  }
  return "pay/pay";
}


明天计划的事情

1. 前台 -–资料列表

 前台 -- 已购资料详情

 前台-- 购买课程资料

 前台- -购买教材资料

遇到的问题:


收获:




明天计划:

 前台 -–资料列表

 前台 -- 已购资料详情

 前台-- 购买课程资料

 前台- -购买教材资料


预计完成时间:2018.02.01

DOME时间:2018-2-9










返回列表 返回列表
评论

    分享到