(134)Part35-微信支付-06-更新课程销量

一、修改课程销量

1、service层

接口:service-edu中CourseService

void updateBuyCountById(String id);

实现:CourseServiceImpl

@Override
public void updateBuyCountById(String id) {
    Course course = baseMapper.selectById(id);
    course.setBuyCount(course.getBuyCount() + 1);
    this.updateById(course);
}

2、web层

ApiCourseController

@ApiOperation("根据课程id更改销售量")
@GetMapping("update-buy-count/{id}")
public R updateBuyCountById(
    @ApiParam(value = "课程id", required = true)
    @PathVariable String id){
    courseService.updateBuyCountById(id);
    return R.ok();
}

二、远程调用接口

1、Feign接口

接口:service-trade 中 feign.EduCourseService

@GetMapping("/api/edu/course/update-buy-count/{id}")
R updateBuyCountById(@PathVariable("id") String id);

2、熔断器

EduCourseServiceFallBack

@Override
public R updateBuyCountById(String id) {
    log.warn("熔断器被执行");
    return R.error();
}

3、调用

OrderServiceImpl

@Transactional(rollbackFor = Exception.class)
@Override
public void updateOrderStatus(Map<String, String> map) {

    //更新订单状态
    ......

    //记录支付日志
    ......

    //更新课程销量:有问题直接熔断
    eduCourseService.updateBuyCountById(order.getCourseId());
}

你可能感兴趣的:(在线教育)