开始
当商家发货后,订单的状态就变成了商家已发货。用户就可以点击确认收货。
确认收货,触发的事件
传入用户id和订单id
重新渲染数据
超时未付款就是交易关闭
如果订单超时就会处于交易关闭的状态。用户可以点击后面的删除订单。
交易关闭的就可以删除订单
删除订单
后端-确认收货
先从controller往下写
@ApiOperation(value = "商家发货",notes = "商家发货",httpMethod ="GET" )
@GetMapping("/confirmReceive")
public IMOOCJSONResult confirmReceive(
@ApiParam(name = "orderId",value = "订单id",required = true)
@RequestParam String orderId,
@ApiParam(name = "userId",value = "订单id",required = true)
@RequestParam("userId") String userId
) throws Exception{
return IMOOCJSONResult.ok();
}
要判断用户的userid和订单id是否有关联关系
/**
* 查询我的订单
* @param userId
* @param orderId
* @return
*/
public Orders queryMyOrder(String userId,String orderId);
实现类,订单是不能被删除的,查询订单状态是不是删除的状态
@Override
public Orders queryMyOrder(String userId, String orderId) {
Orders orders=new Orders();
orders.setUserId(userId);
orders.setId(orderId);
orders.setIsDelete(YesOrNo.NO.type);
return null;
}
@Autowired
private OrdersMapper ordersMapper;
@Override
public Orders queryMyOrder(String userId, String orderId) {
Orders orders=new Orders();
orders.setUserId(userId);
orders.setId(orderId);
orders.setIsDelete(YesOrNo.NO.type);
return ordersMapper.selectOne(orders);
}
MyOrdersController内增加方法checkUserOrder
public IMOOCJSONResult checkUserOrder(String orderId, String userId) throws Exception{
Orders order =myOrderService.queryMyOrder(userId, orderId);
if(order==null){
return IMOOCJSONResult.errorMsg("订单不存在!");
}
return IMOOCJSONResult.ok();
}
先来验证订单和用户id的关系。
@ApiOperation(value = "商家发货",notes = "商家发货",httpMethod ="GET" )
@GetMapping("/confirmReceive")
public IMOOCJSONResult confirmReceive(
@ApiParam(name = "orderId",value = "订单id",required = true)
@RequestParam String orderId,
@ApiParam(name = "userId",value = "订单id",required = true)
@RequestParam("userId") String userId
) throws Exception{
IMOOCJSONResult checkResult = checkUserOrder(userid, orderId);
if(checkResult.getStatus()!= HttpStatus.OK.value()) {
return checkResult;
}
return IMOOCJSONResult.ok();
}
删除订单
用户删除的controller。代码和上面的确定收货的代码 基本一致。其实可以合成一个接口。但是不建议这么去做。这样代码的耦合度增加了。如果后续在确认收货和订单删除他们各自有自己的业务的话,这样代码会越来越多。耦合度也会越来越大。
@ApiOperation(value = "用户订单删除",notes = "用户订单删除",httpMethod ="POST" )
@PostMapping("/delete")
public IMOOCJSONResult delete(
@ApiParam(name = "orderId",value = "订单id",required = true)
@RequestParam String orderId,
@ApiParam(name = "userId",value = "订单id",required = true)
@RequestParam("userId") String userId
) throws Exception{
IMOOCJSONResult checkResult = checkUserOrder(userId, orderId);
if(checkResult.getStatus()!= HttpStatus.OK.value()) {
return checkResult;
}
return IMOOCJSONResult.ok();
}