微信掃碼支付6-更新課程銷量
阿新 • • 發佈:2020-11-01
一、修改課程銷量
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()); }