1. 程式人生 > 實用技巧 >微信掃碼支付6-更新課程銷量

微信掃碼支付6-更新課程銷量

一、修改課程銷量

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、controller層

ApiCourseController

@ApiOperation("根據課程id更改銷售量")
@GetMapping("inner/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 中EduCourseService

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

2、熔斷器

EduCourseServiceFallBack

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

3、RPC呼叫

OrderServiceImpl

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

    //更新訂單狀態
    ......
    
    //記錄支付日誌
    ......
    
    //更新課程銷量:有問題直接熔斷
    eduCourseService.updateBuyCountById(order.getCourseId());
}