bug fix
This commit is contained in:
@@ -107,6 +107,12 @@ public class BuyOrderController {
|
||||
return R.ok().put("result", page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单详情
|
||||
*
|
||||
* @param orderSn 订单号
|
||||
* @return R
|
||||
*/
|
||||
@RequestMapping(path = "/orderDetail", method = RequestMethod.GET)
|
||||
public R orderDetail(@RequestParam("orderSn") String orderSn) {
|
||||
BuyOrderResponseVo buyOrderResponseVo = buyOrderService.orderDetail(orderSn);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.peanut.modules.book.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.peanut.common.utils.PageUtils;
|
||||
|
||||
@@ -313,6 +313,73 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
buyOrderQueryWrapper.lt(requestVo.getEndTime() != null, "create_time", requestVo.getStartTime());
|
||||
List<BuyOrder> buyOrderList = list(buyOrderQueryWrapper);
|
||||
for (BuyOrder buyOrder : buyOrderList) {
|
||||
BuyOrderResponseVo responseVo = setBuyOrderInfo(buyOrder);
|
||||
result.add(responseVo);
|
||||
}
|
||||
return new PageUtils(result, buyOrderList.size(), requestVo.getPageSize(), requestVo.getPageIndex());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delivery(String expressCompanyCode, List<Integer> buyOrderDetailId) {
|
||||
QueryWrapper<BuyOrderDetail> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("id", buyOrderDetailId);
|
||||
List<BuyOrderDetail> buyOrderDetailList = buyOrderDetailService.list(queryWrapper);
|
||||
BigDecimal totalWeight = new BigDecimal(0);
|
||||
List<ExpressCommodity> commodityList = new ArrayList<>();
|
||||
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
|
||||
ExpressCommodity commodity = new ExpressCommodity();
|
||||
commodity.setGoodsName(buyOrderDetail.getProductName());
|
||||
commodity.setGoodsquantity(buyOrderDetail.getQuantity());
|
||||
commodity.setGoodsWeight(buyOrderDetail.getWeight().doubleValue());
|
||||
totalWeight = totalWeight.add(
|
||||
BigDecimal.valueOf(buyOrderDetail.getWeight().doubleValue()).multiply(new BigDecimal(buyOrderDetail.getQuantity()))
|
||||
);
|
||||
totalWeight = totalWeight.setScale(0, RoundingMode.UP);
|
||||
commodityList.add(commodity);
|
||||
}
|
||||
|
||||
// 获取用户地址
|
||||
Integer orderId = buyOrderDetailList.get(0).getOrderId();
|
||||
BuyOrder buyOrder = getById(orderId);
|
||||
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
|
||||
countyQueryWrapper.eq("county_name", buyOrder.getDistrict());
|
||||
County county = countyService.getOne(countyQueryWrapper);
|
||||
// 计算快递费用
|
||||
BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, county.getRegionCode());
|
||||
ExpressOrder expressOrder = new ExpressOrder();
|
||||
expressOrder.setExpressFee(expressFee);
|
||||
expressOrder.setCreateTime(new Date());
|
||||
expressOrder.setTotalWeight(totalWeight);
|
||||
expressOrder.setCommodity(commodityList);
|
||||
expressOrder.setExpressCompanyCode(expressCompanyCode);
|
||||
expressOrder.setConsigneeName(buyOrder.getShippingUser());
|
||||
expressOrder.setConsigneeMobile(buyOrder.getUserPhone());
|
||||
expressOrder.setProvince(buyOrder.getProvince());
|
||||
expressOrder.setCity(buyOrder.getCity());
|
||||
expressOrder.setCounty(buyOrder.getDistrict());
|
||||
expressOrder.setAddress(buyOrder.getAddress());
|
||||
// 生成快递面单
|
||||
ExpressOrderResponseVo response = expressOrderService.placeExpressOrder(expressOrder);
|
||||
String expressBillNo = response.getOrder().getLogisticCode();
|
||||
String expressBillTemplate = response.getPrintTemplate();
|
||||
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
|
||||
buyOrderDetail.setExpressBillNo(expressBillNo);
|
||||
buyOrderDetail.setExpressBillTemplate(expressBillTemplate);
|
||||
buyOrderDetail.setExpressCompanyCode(expressCompanyCode);
|
||||
}
|
||||
buyOrderDetailService.saveBatch(buyOrderDetailList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BuyOrderResponseVo orderDetail(String orderSn) {
|
||||
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
|
||||
buyOrderQueryWrapper.eq("order_sn", orderSn);
|
||||
BuyOrder buyOrder = getOne(buyOrderQueryWrapper);
|
||||
return setBuyOrderInfo(buyOrder);
|
||||
}
|
||||
|
||||
private BuyOrderResponseVo setBuyOrderInfo(BuyOrder buyOrder) {
|
||||
BuyOrderResponseVo responseVo = new BuyOrderResponseVo();
|
||||
Integer userId = buyOrder.getUserId();
|
||||
QueryWrapper<MyUserEntity> userEntityQueryWrapper = new QueryWrapper<>();
|
||||
@@ -355,102 +422,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
||||
goodsResponseVoList.add(goodsResponseVo);
|
||||
}
|
||||
responseVo.setGoodsList(goodsResponseVoList);
|
||||
result.add(responseVo);
|
||||
}
|
||||
return new PageUtils(result, buyOrderList.size(), requestVo.getPageSize(), requestVo.getPageIndex());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delivery(String expressCompanyCode, List<Integer> buyOrderDetailId) {
|
||||
QueryWrapper<BuyOrderDetail> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("id", buyOrderDetailId);
|
||||
List<BuyOrderDetail> buyOrderDetailList = buyOrderDetailService.list(queryWrapper);
|
||||
BigDecimal totalWeight = new BigDecimal(0);
|
||||
List<ExpressCommodity> commodityList = new ArrayList<>();
|
||||
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
|
||||
ExpressCommodity commodity = new ExpressCommodity();
|
||||
commodity.setGoodsName(buyOrderDetail.getProductName());
|
||||
commodity.setGoodsquantity(buyOrderDetail.getQuantity());
|
||||
commodity.setGoodsWeight(buyOrderDetail.getWeight().doubleValue());
|
||||
totalWeight = totalWeight.add(
|
||||
BigDecimal.valueOf(buyOrderDetail.getWeight().doubleValue()).multiply(new BigDecimal(buyOrderDetail.getQuantity()))
|
||||
);
|
||||
totalWeight = totalWeight.setScale(0, RoundingMode.UP);
|
||||
commodityList.add(commodity);
|
||||
}
|
||||
|
||||
// 获取用户地址
|
||||
Integer orderId = buyOrderDetailList.get(0).getOrderId();
|
||||
BuyOrder buyOrder = getById(orderId);
|
||||
QueryWrapper<County> countyQueryWrapper = new QueryWrapper<>();
|
||||
countyQueryWrapper.eq("county_name", buyOrder.getDistrict());
|
||||
County county = countyService.getOne(countyQueryWrapper);
|
||||
// 计算快递费用
|
||||
BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, county.getRegionCode());
|
||||
ExpressOrder expressOrder = new ExpressOrder();
|
||||
// expressOrder.setOrderId(buyOrderDetailList.get(0).getOrderId());
|
||||
expressOrder.setExpressFee(expressFee);
|
||||
expressOrder.setCreateTime(new Date());
|
||||
expressOrder.setTotalWeight(totalWeight);
|
||||
expressOrder.setCommodity(commodityList);
|
||||
expressOrder.setExpressCompanyCode(expressCompanyCode);
|
||||
expressOrder.setConsigneeName(buyOrder.getShippingUser());
|
||||
expressOrder.setConsigneeMobile(buyOrder.getUserPhone());
|
||||
expressOrder.setProvince(buyOrder.getProvince());
|
||||
expressOrder.setCity(buyOrder.getCity());
|
||||
expressOrder.setCounty(buyOrder.getDistrict());
|
||||
expressOrder.setAddress(buyOrder.getAddress());
|
||||
// 生成快递面单
|
||||
ExpressOrderResponseVo response = expressOrderService.placeExpressOrder(expressOrder);
|
||||
String expressBillNo = response.getOrder().getLogisticCode();
|
||||
String expressBillTemplate = response.getPrintTemplate();
|
||||
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
|
||||
buyOrderDetail.setExpressBillNo(expressBillNo);
|
||||
buyOrderDetail.setExpressBillTemplate(expressBillTemplate);
|
||||
buyOrderDetail.setExpressCompanyCode(expressCompanyCode);
|
||||
}
|
||||
buyOrderDetailService.saveBatch(buyOrderDetailList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BuyOrderResponseVo orderDetail(String orderSn) {
|
||||
QueryWrapper<BuyOrder> buyOrderQueryWrapper = new QueryWrapper<>();
|
||||
buyOrderQueryWrapper.eq("order_sn", orderSn);
|
||||
BuyOrder buyOrder = getOne(buyOrderQueryWrapper);
|
||||
BuyOrderResponseVo responseVo = new BuyOrderResponseVo();
|
||||
BeanUtil.copyProperties(buyOrder, responseVo);
|
||||
ConsigneeVo consigneeVo = new ConsigneeVo();
|
||||
consigneeVo.setConsigneeName(buyOrder.getShippingUser());
|
||||
consigneeVo.setConsigneeMobile(buyOrder.getUserPhone());
|
||||
consigneeVo.setProvince(buyOrder.getProvince());
|
||||
consigneeVo.setCity(buyOrder.getCity());
|
||||
consigneeVo.setCounty(buyOrder.getDistrict());
|
||||
consigneeVo.setAddress(buyOrder.getAddress());
|
||||
responseVo.setConsignee(consigneeVo);
|
||||
QueryWrapper<BuyOrderProduct> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("order_id", buyOrder.getOrderId());
|
||||
List<BuyOrderProduct> buyOrderProductList = buyOrderProductService.list(queryWrapper);
|
||||
List<GoodsResponseVo> goodsResponseVoList = new ArrayList<>();
|
||||
for (BuyOrderProduct buyOrderProduct : buyOrderProductList) {
|
||||
GoodsResponseVo goodsResponseVo = new GoodsResponseVo();
|
||||
QueryWrapper<ShopProduct> shopProductQueryWrapper = new QueryWrapper<>();
|
||||
shopProductQueryWrapper.eq("product_id", buyOrderProduct.getProductId());
|
||||
ShopProduct shopProduct = shopProductService.getOne(shopProductQueryWrapper);
|
||||
goodsResponseVo.setProductName(shopProduct.getProductName());
|
||||
goodsResponseVo.setProductImage(shopProduct.getProductImages());
|
||||
goodsResponseVo.setProductPrice(shopProduct.getPrice());
|
||||
QueryWrapper<ExpressOrder> expressOrderQueryWrapper = new QueryWrapper<>();
|
||||
expressOrderQueryWrapper.eq("id", buyOrderProduct.getExpressOrderId());
|
||||
ExpressOrder expressOrder = expressOrderService.getOne(expressOrderQueryWrapper);
|
||||
ExpressResponseVo expressResponseVo = new ExpressResponseVo();
|
||||
expressResponseVo.setExpressCompany(expressOrder.getExpressCompanyCode());
|
||||
expressResponseVo.setExpressOrderSn(expressOrder.getExpressOrderSn());
|
||||
expressResponseVo.setPrintTemplate(expressOrder.getPrintTemplate());
|
||||
goodsResponseVo.setExpressInfo(expressResponseVo);
|
||||
goodsResponseVoList.add(goodsResponseVo);
|
||||
}
|
||||
responseVo.setGoodsList(goodsResponseVoList);
|
||||
return responseVo;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user