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