前言:
今天完成了用户下单和微信支付两个任务,既有自己写代码操作,又有一个看视频学习的过程,主要是学习了用户下单的业务逻辑以及微信支付的具体流程,感觉收获还是挺多的。
今日完成任务:
- 导入地址簿相关代码
- 实现用户下单接口
- 学习微信支付流程
今日收获:
1.用户下单接口
用户下单的话整体来看是比较简单的,就是业务逻辑部分有一些复杂,需要考虑到一些异常:比如地址簿为空、购物车数据为空等情况。这些地方虽然前端已经做了校验,如果地址簿为空、购物车为空无法发起下单,然后调用对应的api接口,但是这里后端再次进行校验,主要是为了防止有人携带自己的token,使用postman、apifox等接口测试工具,跳过前端的逻辑检验,直接向后端发送请求把,造成无地址、无商品的下单的情况吧。
然后就是实现对于下单的业务逻辑,这里考虑的地方还挺多的,一些字段的填充,以及数据库表的设计也挺漂亮的,同时设置一些冗余字段,防止使用逻辑外键地址簿,导致用户修改地址时,订单的地址也随之改变。
下面是具体的业务逻辑实现:
/**
* 用户下单 业务逻辑
* @param ordersSubmitDTO
* @return
*/
@Override
@Transactional
public OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO) {
//地址簿填写异常
AddressBook adress = addressBookMapper.getById(ordersSubmitDTO.getAddressBookId());
if(adress == null){
throw new AddressBookBusinessException(MessageConstant.ADDRESS_BOOK_IS_NULL);
}
//购物车为空异常
ShoppingCart shoppingCart = new ShoppingCart();
shoppingCart.setUserId(BaseContext.getCurrentId());
List<ShoppingCart> shoppingCartList = shoppingCartMapper.getById(shoppingCart);
if

最低0.47元/天 解锁文章
867

被折叠的 条评论
为什么被折叠?



