use of com.doodl6.springboot.seata.common.entity.Order in project SpringBoot-Project by MartinDai.
the class TradeService method checkData.
public StorageWithOrderData checkData(String goodsCode) {
StorageWithOrderData storageWithOrderData = new StorageWithOrderData();
Storage storage = storageService.selectByCode(goodsCode);
List<Order> orders = orderService.selectOrderByCode(goodsCode);
storageWithOrderData.setStorage(storage);
storageWithOrderData.setOrders(orders);
return storageWithOrderData;
}
use of com.doodl6.springboot.seata.common.entity.Order in project SpringBoot-Project by MartinDai.
the class TradeService method createOrder.
/**
* 创建订单
*/
@GlobalTransactional(timeoutMills = 30000)
public void createOrder(String goodsCode, int stockNum, boolean mockException) {
String xid = RootContext.getXID();
System.out.println("createOrder 当前正在执行的事务xid:" + xid);
String result = storageService.reduceStock(goodsCode, stockNum);
if (!SUCCESS_RESPONSE.equals(result)) {
throw new IllegalStateException("库存扣减失败! xid:" + xid);
}
Order order = new Order().setGoodsCode(goodsCode).setStockNum(stockNum).setMoney(stockNum * 100).setUserId(1);
result = orderService.createOrder(order);
if (!SUCCESS_RESPONSE.equals(result)) {
throw new IllegalStateException("创建订单失败! xid:" + xid);
}
if (mockException) {
throw new IllegalStateException("模拟用户业务异常! xid:" + xid);
}
}
Aggregations