From 62ea0482a3177b0716d5a0cb7a34bbdd6162cc9c Mon Sep 17 00:00:00 2001 From: Cauchy Date: Fri, 20 Oct 2023 14:14:20 +0800 Subject: [PATCH] order list order detail print template template list --- .gitignore | 1 + .../book/controller/BuyOrderController.java | 24 ++-- .../book/controller/ExpressController.java | 60 ++++++++- .../peanut/modules/book/dao/BuyOrderDao.java | 1 - .../modules/book/entity/BuyOrderProduct.java | 2 +- .../modules/book/entity/ExpressOrder.java | 10 +- .../modules/book/service/BuyOrderService.java | 14 +- .../service/impl/BuyOrderServiceImpl.java | 120 ++++++++---------- .../service/impl/ExpressOrderServiceImpl.java | 6 +- ...esponseVo.java => BuyOrderResponseVo.java} | 7 +- src/main/resources/application-dev-wcl.yml | 76 +++++++++++ src/main/resources/application-dev.yml | 4 +- src/main/resources/application.yml | 2 +- 13 files changed, 222 insertions(+), 105 deletions(-) rename src/main/java/com/peanut/modules/book/vo/response/{BuyOrderListResponseVo.java => BuyOrderResponseVo.java} (83%) create mode 100644 src/main/resources/application-dev-wcl.yml diff --git a/.gitignore b/.gitignore index 195ffc9f..4ccc0ab2 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ buildNumber.properties /src/test/ peanut_book.iml weChatConfig.properties +/src/main/resources/application-dev-wcl.yml 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 e57b8955..0321b6f5 100644 --- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java +++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java @@ -13,7 +13,7 @@ import com.peanut.modules.book.service.*; import com.peanut.modules.book.vo.request.BuyOrderListRequestVo; import com.peanut.modules.book.vo.request.ProductRequestVo; import com.peanut.modules.book.vo.request.ProductTransportVo; -import com.peanut.modules.book.vo.response.BuyOrderListResponseVo; +import com.peanut.modules.book.vo.response.BuyOrderResponseVo; import com.peanut.modules.book.vo.response.ExpressQueryResponseVo; import com.peanut.modules.book.vo.ShippingAddressRequestVo; import com.peanut.modules.book.vo.UserAddressVo; @@ -80,18 +80,6 @@ public class BuyOrderController { @Autowired private SysConfigService sysConfigService; - /** - * 订单列表 - * - * @param params - * @return - * @throws Exception - */ - @RequestMapping("/list") - public R list(@RequestParam Map params) throws Exception { - PageUtils page = buyOrderService.list(params); - return R.ok().put("page", page); - } /** * 订单列表 @@ -101,8 +89,14 @@ public class BuyOrderController { */ @RequestMapping(path = "/orderList", method = RequestMethod.POST) public R orderList(@RequestBody BuyOrderListRequestVo requestVo) { - List response = buyOrderService.orderList(requestVo); - return R.ok().put("result", response); + PageUtils page = buyOrderService.orderList(requestVo); + return R.ok().put("result", page); + } + + @RequestMapping(path = "/orderDetail", method = RequestMethod.GET) + public R orderDetail(@RequestParam("orderSn") String orderSn) { + BuyOrderResponseVo buyOrderResponseVo = buyOrderService.orderDetail(orderSn); + return R.ok().put("result", buyOrderResponseVo); } /** 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 bee10721..13620d8a 100644 --- a/src/main/java/com/peanut/modules/book/controller/ExpressController.java +++ b/src/main/java/com/peanut/modules/book/controller/ExpressController.java @@ -1,12 +1,23 @@ package com.peanut.modules.book.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.peanut.common.utils.R; +import com.peanut.modules.book.entity.BuyOrder; +import com.peanut.modules.book.entity.BuyOrderProduct; +import com.peanut.modules.book.entity.ExpressOrder; +import com.peanut.modules.book.service.BuyOrderProductService; +import com.peanut.modules.book.service.BuyOrderService; import com.peanut.modules.book.service.ExpressCompanyService; +import com.peanut.modules.book.service.ExpressOrderService; import com.peanut.modules.book.vo.ExpressCompanyVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.List; /** @@ -18,22 +29,61 @@ import java.util.List; @RequestMapping("/express") public class ExpressController { - private final ExpressCompanyService expressCompanyService; + @Autowired + private ExpressCompanyService expressCompanyService; + @Autowired + private BuyOrderService buyOrderService; + @Autowired + private BuyOrderProductService buyOrderProductService; + @Autowired + private ExpressOrderService expressOrderService; + /** * 获取快递公司列表 * * @return R */ - @RequestMapping(path = "/getExpressCompanyList") + @RequestMapping(path = "/getExpressCompanyList", method = RequestMethod.GET) public R getExpressCompanyList() { List expressCompanyList = expressCompanyService.getExpressCompanyList(); return R.ok().put("result", expressCompanyList); } - @Autowired - ExpressController(ExpressCompanyService expressCompanyService) { - this.expressCompanyService = expressCompanyService; + /** + * 获取快递面单列表 + * + * @return + */ + @RequestMapping(path = "/getPrintTemplateList", method = RequestMethod.GET) + public R getPrintTemplate(String orderSn) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_sn", orderSn); + BuyOrder buyOrder = buyOrderService.getOne(queryWrapper); + QueryWrapper buyOrderProductQueryWrapper = new QueryWrapper<>(); + buyOrderProductQueryWrapper.eq("order_id", buyOrder.getOrderId()); + List buyOrderProductList = buyOrderProductService.list(buyOrderProductQueryWrapper); + List expressOrderIdList = new ArrayList<>(); + for (BuyOrderProduct buyOrderProduct : buyOrderProductList) { + expressOrderIdList.add(buyOrderProduct.getExpressOrderId()); + } + QueryWrapper expressOrderQueryWrapper = new QueryWrapper<>(); + expressOrderQueryWrapper.in("id", expressOrderIdList); + expressOrderQueryWrapper.select("print_template"); + List expressOrderList = expressOrderService.list(expressOrderQueryWrapper); + List result = new ArrayList<>(); + for (ExpressOrder expressOrder : expressOrderList) { + result.add(expressOrder.getPrintTemplate()); + } + return R.ok().put("result", result); } + @RequestMapping(value = "/printTemplate", method = RequestMethod.GET) + public R printTemplate(@RequestParam("expressOrderId") Integer expressOrderId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("template_printed", 1); + updateWrapper.eq("id", expressOrderId); + expressOrderService.update(updateWrapper); + return R.ok(); + } } diff --git a/src/main/java/com/peanut/modules/book/dao/BuyOrderDao.java b/src/main/java/com/peanut/modules/book/dao/BuyOrderDao.java index a28f8a9b..a668c317 100644 --- a/src/main/java/com/peanut/modules/book/dao/BuyOrderDao.java +++ b/src/main/java/com/peanut/modules/book/dao/BuyOrderDao.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.peanut.modules.book.entity.BuyOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.peanut.modules.book.vo.request.BuyOrderListRequestVo; -import com.peanut.modules.book.vo.response.BuyOrderListResponseVo; import org.apache.ibatis.annotations.Mapper; import java.util.List; 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 74c6a97d..129d8ce9 100644 --- a/src/main/java/com/peanut/modules/book/entity/BuyOrderProduct.java +++ b/src/main/java/com/peanut/modules/book/entity/BuyOrderProduct.java @@ -36,7 +36,7 @@ public class BuyOrderProduct { /** * 快递订单 ID */ - private int express_order_id; + private int expressOrderId; /** * 删除标识 */ diff --git a/src/main/java/com/peanut/modules/book/entity/ExpressOrder.java b/src/main/java/com/peanut/modules/book/entity/ExpressOrder.java index cd7f85fc..afd915fd 100644 --- a/src/main/java/com/peanut/modules/book/entity/ExpressOrder.java +++ b/src/main/java/com/peanut/modules/book/entity/ExpressOrder.java @@ -1,5 +1,6 @@ package com.peanut.modules.book.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -34,19 +35,15 @@ public class ExpressOrder { /** * 收件人姓名 */ - private String name; + private String consigneeName; /** * 收件人电话 */ - private String mobile; + private String consigneeMobile; /** * 收件人详细地址 */ private String address; - /** - * 订单号 - */ - private Integer orderId; /** * 快递公司代码 */ @@ -74,6 +71,7 @@ public class ExpressOrder { /** * 物品信息 */ + @TableField(exist = false) private List Commodity; /** * 快递单号 diff --git a/src/main/java/com/peanut/modules/book/service/BuyOrderService.java b/src/main/java/com/peanut/modules/book/service/BuyOrderService.java index 091af498..ae6c1158 100644 --- a/src/main/java/com/peanut/modules/book/service/BuyOrderService.java +++ b/src/main/java/com/peanut/modules/book/service/BuyOrderService.java @@ -6,7 +6,7 @@ import com.peanut.common.utils.PageUtils; import com.peanut.modules.book.entity.BuyOrder; import com.peanut.modules.book.vo.UserOrderVo; import com.peanut.modules.book.vo.request.BuyOrderListRequestVo; -import com.peanut.modules.book.vo.response.BuyOrderListResponseVo; +import com.peanut.modules.book.vo.response.BuyOrderResponseVo; import java.util.List; import java.util.Map; @@ -20,8 +20,6 @@ import java.util.Map; */ public interface BuyOrderService extends IService { - PageUtils list(Map params) throws Exception; - PageUtils getMyOrderList(Map params); //更新订单状态 @@ -33,7 +31,13 @@ public interface BuyOrderService extends IService { // 查询所有订单是否有可合并 Page checkOrder(Map params); - List orderList(BuyOrderListRequestVo requestVo); + /** + * 订单列表 + * + * @param requestVo + * @return + */ + PageUtils orderList(BuyOrderListRequestVo requestVo); /** * 订单拆分发货 @@ -43,5 +47,7 @@ public interface BuyOrderService extends IService { */ void delivery(String expressCompanyCode, List buyOrderDetailId); + BuyOrderResponseVo orderDetail(String orderSn); + } \ No newline at end of file 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 f1027164..fad44846 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 @@ -3,22 +3,19 @@ package com.peanut.modules.book.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.peanut.common.utils.ExcludeEmptyQueryWrapper; import com.peanut.common.utils.PageUtils; import com.peanut.common.utils.Query; import com.peanut.config.Constants; import com.peanut.modules.book.dao.BuyOrderDao; import com.peanut.modules.book.entity.*; import com.peanut.modules.book.service.*; -import com.peanut.modules.book.entity.ExpressCommodity; import com.peanut.modules.book.vo.ExpressOrderResponseVo; import com.peanut.modules.book.vo.UserOrderVo; import com.peanut.modules.book.vo.request.BuyOrderListRequestVo; -import com.peanut.modules.book.vo.response.BuyOrderListResponseVo; +import com.peanut.modules.book.vo.response.BuyOrderResponseVo; import com.peanut.modules.book.vo.response.ConsigneeVo; import com.peanut.modules.book.vo.response.ExpressResponseVo; import com.peanut.modules.book.vo.response.GoodsResponseVo; @@ -30,7 +27,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; -import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -61,55 +57,6 @@ public class BuyOrderServiceImpl extends ServiceImpl impl protected Logger logger = LoggerFactory.getLogger(BuyOrderServiceImpl.class); - public BuyOrderServiceImpl() { - } - - @Override - public PageUtils list(Map params) throws Exception { - - IPage page; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String startTime = null; - String endTime = null; - if (params.containsKey("startTime")) { - startTime = sdf.format(Long.parseLong(params.get("startTime").toString())); - endTime = sdf.format(Long.parseLong(params.get("endTime").toString())); - } - if (ObjectUtils.isEmpty(params.get("orderStatus"))) { - ExcludeEmptyQueryWrapper queryWrapper = new ExcludeEmptyQueryWrapper<>(); - Query query = new Query<>(); - page = query.getPage(params); - queryWrapper.eq("user_phone", params.get("key")); - queryWrapper.or().like("order_sn", params.get("key")); - queryWrapper.or().like("shipping_user", params.get("key")); - queryWrapper.apply(startTime != null, "date_format (create_time,'%Y-%m-%d') >= date_format ({0},'%Y-%m-%d')", startTime); - queryWrapper.apply(endTime != null, "date_format (create_time,'%Y-%m-%d') <= date_format ({0},'%Y-%m-%d')", endTime).orderByDesc("create_time"); - page = this.page(page, queryWrapper); - } else { - page = this.page( - new Query().getPage(params), - new ExcludeEmptyQueryWrapper().eq("order_status", params.get("orderStatus")).eq("user_phone", params.get("key")) - .or().like("order_sn", params.get("key")).or().like("shipping_user", params.get("key")) - .apply(startTime != null, "date_format (create_time,'%Y-%m-%d') >= date_format ({0},'%Y-%m-%d')", startTime) - .apply(endTime != null, "date_format (create_time,'%Y-%m-%d') <= date_format ({0},'%Y-%m-%d')", endTime).orderByDesc("create_time") - ); - } - - - List records = page.getRecords(); - for (BuyOrder record : records) { - Integer userId = record.getUserId(); - MyUserEntity myUserEntity = myUserService.getById(userId); - if (!ObjectUtils.isEmpty(myUserEntity)) { - record.setUserName(myUserEntity.getName()); - record.setProducts(buyOrderDetailService.list(new QueryWrapper() - .eq("order_id", record.getOrderId()))); - } - - } - - return new PageUtils(page); - } @Override public PageUtils getMyOrderList(Map params) { @@ -291,18 +238,17 @@ public class BuyOrderServiceImpl extends ServiceImpl impl } @Override - public List orderList(BuyOrderListRequestVo requestVo) { - Page userPage = new Page<>(requestVo.getPageIndex(), requestVo.getPageSize()); + public PageUtils orderList(BuyOrderListRequestVo requestVo) { + List result = new ArrayList<>(); QueryWrapper buyOrderQueryWrapper = new QueryWrapper<>(); buyOrderQueryWrapper.like(StringUtils.isNotBlank(requestVo.getSearchKeyWord()), "order_sn", requestVo.getSearchKeyWord()); buyOrderQueryWrapper.eq(StringUtils.isNotBlank(requestVo.getOrderStatus()), "order_status", requestVo.getOrderStatus()); buyOrderQueryWrapper.gt(requestVo.getStartTime() != null, "create_time", requestVo.getStartTime()); buyOrderQueryWrapper.lt(requestVo.getEndTime() != null, "create_time", requestVo.getStartTime()); - IPage page = page(userPage, buyOrderQueryWrapper); - List buyOrderList = page.getRecords(); - List result = new ArrayList<>(); + List buyOrderList = list(buyOrderQueryWrapper); for (BuyOrder buyOrder : buyOrderList) { - BuyOrderListResponseVo responseVo = new BuyOrderListResponseVo(); + BuyOrderResponseVo responseVo = new BuyOrderResponseVo(); + responseVo.setOrderPrice(buyOrder.getOrderMoney()); BeanUtil.copyProperties(buyOrder, responseVo); ConsigneeVo consigneeVo = new ConsigneeVo(); consigneeVo.setConsigneeName(buyOrder.getShippingUser()); @@ -319,13 +265,13 @@ public class BuyOrderServiceImpl extends ServiceImpl impl for (BuyOrderProduct buyOrderProduct : buyOrderProductList) { GoodsResponseVo goodsResponseVo = new GoodsResponseVo(); QueryWrapper shopProductQueryWrapper = new QueryWrapper<>(); - shopProductQueryWrapper.eq("id", buyOrderProduct.getProductId()); + shopProductQueryWrapper.eq("product_id", buyOrderProduct.getProductId()); ShopProduct shopProduct = shopProductService.getOne(shopProductQueryWrapper); goodsResponseVo.setProductName(shopProduct.getProductName()); goodsResponseVo.setProductImage(shopProduct.getProductImages()); goodsResponseVo.setProductPrice(shopProduct.getPrice()); QueryWrapper expressOrderQueryWrapper = new QueryWrapper<>(); - expressOrderQueryWrapper.eq("id", buyOrderProduct.getExpress_order_id()); + expressOrderQueryWrapper.eq("id", buyOrderProduct.getExpressOrderId()); ExpressOrder expressOrder = expressOrderService.getOne(expressOrderQueryWrapper); ExpressResponseVo expressResponseVo = new ExpressResponseVo(); expressResponseVo.setExpressCompany(expressOrder.getExpressCompanyCode()); @@ -337,9 +283,10 @@ public class BuyOrderServiceImpl extends ServiceImpl impl responseVo.setGoodsList(goodsResponseVoList); result.add(responseVo); } - return result; + return new PageUtils(result, buyOrderList.size(), requestVo.getPageSize(), requestVo.getPageIndex()); } + @Override public void delivery(String expressCompanyCode, List buyOrderDetailId) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -368,14 +315,14 @@ public class BuyOrderServiceImpl extends ServiceImpl impl // 计算快递费用 BigDecimal expressFee = expressFeeService.calculateExpressFee(expressCompanyCode, totalWeight, county.getRegionCode()); ExpressOrder expressOrder = new ExpressOrder(); - expressOrder.setOrderId(buyOrderDetailList.get(0).getOrderId()); +// expressOrder.setOrderId(buyOrderDetailList.get(0).getOrderId()); expressOrder.setExpressFee(expressFee); expressOrder.setCreateTime(new Date()); expressOrder.setTotalWeight(totalWeight); expressOrder.setCommodity(commodityList); expressOrder.setExpressCompanyCode(expressCompanyCode); - expressOrder.setName(buyOrder.getShippingUser()); - expressOrder.setMobile(buyOrder.getUserPhone()); + expressOrder.setConsigneeName(buyOrder.getShippingUser()); + expressOrder.setConsigneeMobile(buyOrder.getUserPhone()); expressOrder.setProvince(buyOrder.getProvince()); expressOrder.setCity(buyOrder.getCity()); expressOrder.setCounty(buyOrder.getDistrict()); @@ -391,4 +338,45 @@ public class BuyOrderServiceImpl extends ServiceImpl impl } buyOrderDetailService.saveBatch(buyOrderDetailList); } + + @Override + public BuyOrderResponseVo orderDetail(String orderSn) { + QueryWrapper 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 queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("order_id", buyOrder.getOrderId()); + List buyOrderProductList = buyOrderProductService.list(queryWrapper); + List goodsResponseVoList = new ArrayList<>(); + for (BuyOrderProduct buyOrderProduct : buyOrderProductList) { + GoodsResponseVo goodsResponseVo = new GoodsResponseVo(); + QueryWrapper 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 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; + } } \ No newline at end of file diff --git a/src/main/java/com/peanut/modules/book/service/impl/ExpressOrderServiceImpl.java b/src/main/java/com/peanut/modules/book/service/impl/ExpressOrderServiceImpl.java index 45e36d27..74e1ce29 100644 --- a/src/main/java/com/peanut/modules/book/service/impl/ExpressOrderServiceImpl.java +++ b/src/main/java/com/peanut/modules/book/service/impl/ExpressOrderServiceImpl.java @@ -43,7 +43,7 @@ public class ExpressOrderServiceImpl extends ServiceImpl