发表于: 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,修改为用数值接收,新增一个方法。
收获:(通过今天的学习,学到了什么知识)
评论