diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java index 665cdd72..aa248c2c 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -227,6 +227,7 @@ public class BuyOrderController { * @throws IOException */ @RequestMapping(value = "/placeOrder", method = RequestMethod.POST) + @Transactional public R placeOrder(@RequestBody BuyOrder buyOrder) throws IOException { List buyOrderProductList = buyOrder.getProductList(); // 订单总金额 @@ -241,13 +242,6 @@ public class BuyOrderController { return R.error(500, "库存不足"); } totalPrice = totalPrice.add(price.multiply(BigDecimal.valueOf(quantity))); - int originWeight = product.getWeight(); - int originWeightIntValue = originWeight / 100; - int originWeightDecimalValue = originWeightIntValue % 100; - //buyOrderProduct.setWeight(BigDecimal.valueOf(originWeightIntValue).add(BigDecimal.valueOf(originWeightDecimalValue).divide(new BigDecimal(100), - //MathContext.DECIMAL64))); -// buyOrderDetail.setProductUrl(product.getProductImages()); -// buyOrderDetail.setOrderStatus(Constants.ORDER_STATUS_TO_BE_PAID); } totalPrice = totalPrice.subtract(useCouponAmount(buyOrder)); @@ -268,12 +262,10 @@ public class BuyOrderController { for (BuyOrderProduct buyOrderDetail : buyOrderProductList) { buyOrderDetail.setOrderId(buyOrder.getId()); - //buyOrderDetail.setUserId(buyOrder.getUserId()); if (Constants.BUY_TYPE_CART.equals(buyOrder.getBuyType())) { handleBuyCart(buyOrder, buyOrderDetail); } } -// buyOrderDetailService.saveBatch(buyOrderDetails); buyOrderProductService.saveBatch(buyOrderProductList); // 1. 虚拟币支付 if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) { @@ -364,7 +356,7 @@ public class BuyOrderController { } // 库存回滚 QueryWrapper buyOrderProductQueryWrapper = new QueryWrapper<>(); - buyOrderProductQueryWrapper.eq("order_id",buyOrder.getId()); + buyOrderProductQueryWrapper.eq("order_id", buyOrder.getId()); List buyOrderProductList = buyOrderProductService.list(buyOrderProductQueryWrapper); for (BuyOrderProduct buyOrderProduct : buyOrderProductList) { Integer productId = buyOrderProduct.getProductId(); @@ -626,7 +618,7 @@ public class BuyOrderController { * 分包发货 * * @param expressCompanyCode 快递公司编码 - * @param buyOrderProductId 订单商品 + * @param buyOrderProductId 订单商品 * @return R */ @RequestMapping(value = "/delivery", method = RequestMethod.POST) diff --git a/src/main/java/com/peanut/modules/book/controller/ExpressController.java b/src/main/java/com/peanut/modules/book/controller/ExpressController.java index cc2fb519..952009f1 100644 --- a/src/main/java/com/peanut/modules/book/controller/ExpressController.java +++ b/src/main/java/com/peanut/modules/book/controller/ExpressController.java @@ -67,8 +67,10 @@ public class ExpressController { List data = new ArrayList<>(); for (ExpressOrder expressOrder : expressOrderList) { PrintTemplateVo vo = new PrintTemplateVo(); + vo.setExpressCompanyCode(expressOrder.getExpressCompanyCode()); vo.setPrintTemplate(expressOrder.getPrintTemplate()); vo.setExpressOrderSn(expressOrder.getExpressOrderSn()); + vo.setTemplatedPrinted(vo.getTemplatedPrinted()); data.add(vo); } Map result = new HashMap<>(); diff --git a/src/main/java/com/peanut/modules/book/entity/BuyOrderProduct.java b/src/main/java/com/peanut/modules/book/entity/BuyOrderProduct.java index a586ea77..014471f3 100644 --- a/src/main/java/com/peanut/modules/book/entity/BuyOrderProduct.java +++ b/src/main/java/com/peanut/modules/book/entity/BuyOrderProduct.java @@ -32,7 +32,7 @@ public class BuyOrderProduct { /** * 商品价格 */ - private BigDecimal realPrice; +// private BigDecimal realPrice; /** * 快递订单 ID */ diff --git a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java index 1ec4539b..939041f1 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/BuyOrderServiceImpl.java @@ -54,6 +54,12 @@ public class BuyOrderServiceImpl extends ServiceImpl impl @Autowired private BuyOrderProductService buyOrderProductService; + @Autowired + private ProvinceService provinceService; + + @Autowired + private CityService cityService; + protected Logger logger = LoggerFactory.getLogger(BuyOrderServiceImpl.class); @@ -423,6 +429,29 @@ public class BuyOrderServiceImpl extends ServiceImpl impl consigneeVo.setCity(buyOrder.getCity()); consigneeVo.setCounty(buyOrder.getDistrict()); consigneeVo.setAddress(buyOrder.getAddress()); + QueryWrapper provinceQueryWrapper = new QueryWrapper<>(); + provinceQueryWrapper.eq("prov_name", buyOrder.getProvince()); + Province province = provinceService.getOne(provinceQueryWrapper); + if (province != null) { + consigneeVo.setProvinceCode(province.getRegionCode()); + } + QueryWrapper cityQueryWrapper = new QueryWrapper<>(); + cityQueryWrapper.eq("city_name", buyOrder.getCity()); + City city = cityService.getOne(cityQueryWrapper); + Long cityId = null; + if (city != null) { + consigneeVo.setCityCode(city.getRegionCode()); + cityId = city.getCityId(); + } + QueryWrapper countyQueryWrapper = new QueryWrapper<>(); + countyQueryWrapper.eq("county_name", buyOrder.getDistrict()); + if (countyService.count(countyQueryWrapper) > 1) { + countyQueryWrapper.eq("city_id", cityId); + } + County county = countyService.getOne(countyQueryWrapper); + if (county != null) { + consigneeVo.setCountyCode(county.getRegionCode()); + } responseVo.setConsignee(consigneeVo); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("order_id", buyOrder.getId()); diff --git a/src/main/java/com/peanut/modules/book/vo/response/ConsigneeVo.java b/src/main/java/com/peanut/modules/book/vo/response/ConsigneeVo.java index 11268b02..8593eb65 100644 --- a/src/main/java/com/peanut/modules/book/vo/response/ConsigneeVo.java +++ b/src/main/java/com/peanut/modules/book/vo/response/ConsigneeVo.java @@ -33,5 +33,17 @@ public class ConsigneeVo { * 详细地址 */ private String address; + /** + * 省份代码 + */ + private String provinceCode; + /** + * 城市代码 + */ + private String cityCode; + /** + * 区县代码 + */ + private String countyCode; } diff --git a/src/main/java/com/peanut/modules/book/vo/response/PrintTemplateVo.java b/src/main/java/com/peanut/modules/book/vo/response/PrintTemplateVo.java index 3ed8c897..3cd21386 100644 --- a/src/main/java/com/peanut/modules/book/vo/response/PrintTemplateVo.java +++ b/src/main/java/com/peanut/modules/book/vo/response/PrintTemplateVo.java @@ -17,4 +17,12 @@ public class PrintTemplateVo { * 面单 */ private String printTemplate; + /** + * 快递公司代码 + */ + private String expressCompanyCode; + /** + * 是否打印过 + */ + private int templatedPrinted; }