bug fix
This commit is contained in:
@@ -107,6 +107,12 @@ public class BuyOrderController {
|
|||||||
return R.ok().put("result", page);
|
return R.ok().put("result", page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单详情
|
||||||
|
*
|
||||||
|
* @param orderSn 订单号
|
||||||
|
* @return R
|
||||||
|
*/
|
||||||
@RequestMapping(path = "/orderDetail", method = RequestMethod.GET)
|
@RequestMapping(path = "/orderDetail", method = RequestMethod.GET)
|
||||||
public R orderDetail(@RequestParam("orderSn") String orderSn) {
|
public R orderDetail(@RequestParam("orderSn") String orderSn) {
|
||||||
BuyOrderResponseVo buyOrderResponseVo = buyOrderService.orderDetail(orderSn);
|
BuyOrderResponseVo buyOrderResponseVo = buyOrderService.orderDetail(orderSn);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.peanut.modules.book.service;
|
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.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.peanut.common.utils.PageUtils;
|
import com.peanut.common.utils.PageUtils;
|
||||||
|
|||||||
@@ -313,10 +313,77 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
|||||||
buyOrderQueryWrapper.lt(requestVo.getEndTime() != null, "create_time", requestVo.getStartTime());
|
buyOrderQueryWrapper.lt(requestVo.getEndTime() != null, "create_time", requestVo.getStartTime());
|
||||||
List<BuyOrder> buyOrderList = list(buyOrderQueryWrapper);
|
List<BuyOrder> buyOrderList = list(buyOrderQueryWrapper);
|
||||||
for (BuyOrder buyOrder : buyOrderList) {
|
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();
|
BuyOrderResponseVo responseVo = new BuyOrderResponseVo();
|
||||||
Integer userId = buyOrder.getUserId();
|
Integer userId = buyOrder.getUserId();
|
||||||
QueryWrapper<MyUserEntity> userEntityQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<MyUserEntity> userEntityQueryWrapper = new QueryWrapper<>();
|
||||||
userEntityQueryWrapper.eq("id",userId);
|
userEntityQueryWrapper.eq("id", userId);
|
||||||
MyUserEntity user = myUserService.getOne(userEntityQueryWrapper);
|
MyUserEntity user = myUserService.getOne(userEntityQueryWrapper);
|
||||||
UserResponseVo userResponseVo = new UserResponseVo();
|
UserResponseVo userResponseVo = new UserResponseVo();
|
||||||
userResponseVo.setUserPhone(user.getTel());
|
userResponseVo.setUserPhone(user.getTel());
|
||||||
@@ -355,102 +422,6 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
|||||||
goodsResponseVoList.add(goodsResponseVo);
|
goodsResponseVoList.add(goodsResponseVo);
|
||||||
}
|
}
|
||||||
responseVo.setGoodsList(goodsResponseVoList);
|
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;
|
return responseVo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user