发表于: 2019-10-23 18:42:36

1 1087


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)

一:修改修改管理员页面提交的信息。

由原来的角色名提交改为角色id提交。

二:发现一个问题;通过角色列表删除的角色,但是管理员-角色关系表还没有删除。

在角色删除里面加了一个删除管理员-角色关系。

三:完成管理员模糊搜索修改;

四:开始前台积分支付接口

完成

//课程支付
@PostMapping("/course/pay")
public ResponseData CoursePay(@RequestParam() Long userId,
                                    @RequestParam() Long courseId) {
   LOG.info("入参用户id"+userId+"课程id"+courseId);
   //首先判断课程是否已经支付
   //在用户课程关系里面找到了记录说明已经支付
   int result=userCourseService.UserCourseAdd(userId,courseId);
   if (result==0){
       LOG.error("传入的userId错误,该用户不存在!!!!!!!!");
       return  ResponseDataUtil.buildError("传入的userId错误,该用户不存在!!!!!!!!");
   }

   if (result==2){
       LOG.error("传入的courseId错误,该课程不存在!!!!!!!!");
       return  ResponseDataUtil.buildError("传入的courseId错误,该课程不存在!!!!!!!!");
   }
   if (result==3){
       LOG.error("用户积分不足,支付失败!!!!!!");
       return  ResponseDataUtil.buildError("用户积分不足,支付失败!!!!!!");
   }
   if (result==4){
       LOG.error("扣除积分失败!!!!!!!");
       return  ResponseDataUtil.buildError("扣除积分失败!!!!!!!");
   }
   if (result==5){
       LOG.error("新增用户课程失败!!!!!!!");
       return  ResponseDataUtil.buildError("新增用户课程失败!!!!!!!");
   }
   if (result==6){
       LOG.error("该课程已经购买过,不能再购买!!!!!!!!!");
       return  ResponseDataUtil.buildError("该课程已经购买过,不能再购买!!!!!!!!!");
   }

   return ResponseDataUtil.buildSuccess("支付成功");

}
/**
* 增加一条userCourse记录
* 从前台来说表现为:积分支付功能
* */
@Override
public int UserCourseAdd(Long userId, Long courseId) {
   //根据课程id查询出该课程的信息
   Course course=courseMapper.selectCourseById(courseId);
   //根据用户id找出用户的详细信息
   User user=userService.getUserInfoById(userId);
   if (user==null){
      logger.error("传入的userId错误,该用户不存在!!!!!!!!");
      return 0;
   }
   if (course==null){
       logger.error("传入的courseId错误,该课程不存在!!!!!!!!");
       return 2;
   }
   //先判断是否已经支付
   UserCourseExample userCourseExample=new UserCourseExample();
   userCourseExample.createCriteria().andUserIdEqualTo(Math.toIntExact(userId)).andCourseIdEqualTo(Math.toIntExact(courseId));
   Long n=userCourseMapper.countByExample(userCourseExample);
   if (n!=0){
       //记录已经存在,说明购买过,就不能再购买了
       logger.error("该课程已经购买过,不能再购买!!!!!!!!!");
       return 6;
   }
   //确保传进来的信息正确之后,开始支付逻辑
   //1.调用UserService进行扣积分,扣之前判断积分是否足够
   //这里首先先判断用户的积分是否足够购买
   if (user.getCredit()<course.getPrice()){
       //如果积分不够,支付失败。
       logger.error("用户积分不足,支付失败!!!!!!");
       return 3;
   }
   //2.如果用户积分足够,进行积分扣除,扣除之后,进行判断,判定成功,即可进行添加课程
   //积分扣除
   String num= String.valueOf(course.getPrice());
   String str = num.substring(0, num.indexOf("."));
   int price = Integer.parseInt(str);
   //扣除积分
   user.setCredit(user.getCredit()-price);
   user.setUpdateAt(new Date().getTime());
   //判断是否更新,用户积分扣除成功
   if(!userService.updateUserInfo(user)){
       logger.error("扣除积分失败!!!!!!!");
       return 4;
   }
   //积分扣除成功,进行下一步添加课程
   UserCourse userCourse=new UserCourse();
   userCourse.setCourseId(Math.toIntExact(course.getId()));
   //设置userId
   userCourse.setUserId(Math.toIntExact(userId));
   //设置时间:秒数
   userCourse.setCreateAt(new Date().getTime());
   //进行新增
   int result=userCourseMapper.insertSelective(userCourse);
   if (result!=1){
       logger.error("新增用户课程失败!!!!!!!");
       return 5;
   }

   return result;
}


五:学习quartz,为明天的小课堂准备。




明天计划的事情:(一定要写非常细致的内容)
遇到的问题:(遇到什么困难,怎么解决的)



没有报错,逻辑问题,这里我用的数组接收的更新的roleId,修改为用数值接收,新增一个方法。


收获:(通过今天的学习,学到了什么知识)


返回列表 返回列表
评论

    分享到