From 0bf174be571c53b8af796eca4b51fcd3edec1657 Mon Sep 17 00:00:00 2001 From: DESKTOP-71BH0QO\L、ming <172680469@qq.com> Date: 星期日, 25 四月 2021 21:55:43 +0800 Subject: [PATCH] no --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java | 127 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 109 insertions(+), 18 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java index 6b120cf..5bb465f 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java @@ -8,6 +8,7 @@ import com.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.shop.*; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.WxPayUtils; import com.panzhihua.service_community.dao.ComShopOrderDAO; import com.panzhihua.service_community.model.dos.ComShopOrderDO; @@ -286,6 +287,7 @@ comShopOrderOperateDAO.insert(orderOperateDO); shopOrderVO.setOrderNo(orderNo); shopOrderVO.setOrderTotal(orderTotal); + shopOrderVO.setOrderId(shopOrderDO.getId()); try { BigDecimal money = orderTotal; @@ -321,6 +323,11 @@ orderGoodsDOList.forEach(orderGoods -> { ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO(); BeanUtils.copyProperties(orderGoods,orderGoodsVO); + //根据商品规格id查询商品规格 + ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); + if(goodsAttrDO != null){ + orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttr()); + } orderGoodsVO.setNum(orderGoods.getAmount()); orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); @@ -378,6 +385,11 @@ orderGoodsVO.setNum(orderGoods.getAmount()); orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); + //根据商品规格id查询商品规格 + ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); + if(goodsAttrDO != null){ + orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttr()); + } orderGoodsVOS.add(orderGoodsVO); sbr.append(orderGoods.getGoodsName() + " " ); }); @@ -407,15 +419,14 @@ /** * 根据订单id取消订单 - * @param orderId 订单id - * @param phone 操作用户手机号 + * @param comShopOrderQueryDTO 订单信息 * @return 取消结果 */ @Transactional(rollbackFor = Exception.class) @Override - public R orderCancel(Long orderId,String phone){ + public R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO){ //查询订单 - ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId); + ComShopOrderDO shopOrderDO = this.baseMapper.selectById(comShopOrderQueryDTO.getOrderId()); if(shopOrderDO == null){ return R.fail("未查询到订单"); } @@ -430,9 +441,9 @@ orderOperateDO.setOrderNo(shopOrderDO.getOrderNo()); orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel); orderOperateDO.setOperationTime(new Date()); - if(StringUtils.isNotEmpty(phone)){ - orderOperateDO.setOperationContent("用户" + phone + "取消订单"); - orderOperateDO.setOperationBy("用户" + phone); + if(comShopOrderQueryDTO.getIsAdmin()){ + orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单"); + orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount()); }else { orderOperateDO.setOperationContent("用户取消订单"); orderOperateDO.setOperationBy("用户"); @@ -548,8 +559,13 @@ return R.fail("订单不存在"); } if(!(comShopOrderDO.getStatus()==2) - || !(comShopOrderDO.getDeleteStatus()==1)){ + || !(comShopOrderDO.getDeliveryStatus()==1)){ return R.fail("订单发货失败,订单状态不允许发货"); + } + + ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId()); + if(storeDO.getDeliveryType()!=2){ + return R.fail("该商家不支持通过快递物流发货"); } comShopOrderDO.setDeliveryStatus(2); comShopOrderDO.setDeliveryType(2); @@ -558,41 +574,100 @@ comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo()); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ + //创建订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver); + orderOperateDO.setOperationTime(new Date()); + if(orderShipDTO.getIsAdmin()){ + orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount()+"已发货"); + orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount()); + }else { + orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货"); + orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount()); + } + int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + if(inserted!=1){ + log.error("订单发货日志保存错误"); + } return R.ok("发货成功"); } return R.fail("发货失败!"); } @Override - public R deliverOrder(Long orderId) { - ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderId); + public R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) { + ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId()); if(comShopOrderDO==null){ return R.fail("订单不存在"); } - if(!(comShopOrderDO.getStatus()==2)){ + if(!(comShopOrderDO.getStatus()==2) + || !(comShopOrderDO.getDeliveryStatus()==1)){ return R.fail("当前订单不能配送"); + } + ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId()); + if(storeDO.getDeliveryType()!=1){ + return R.fail("该商家不支持通过商家配送"); } comShopOrderDO.setDeliveryStatus(4); comShopOrderDO.setDeliveryType(1); + comShopOrderDO.setStatus(3); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ + + //创建订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver); + orderOperateDO.setOperationTime(new Date()); + if(orderDeliverDTO.getIsAdmin()){ + orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + }else { + orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + } + int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + if(inserted!=1){ + log.error("订单发货日志保存错误"); + } return R.ok("开始配送"); } return R.fail("操作失败!"); } @Override - public R finishDeliverOrder(Long orderId) { - ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderId); + public R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) { + ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId()); if(comShopOrderDO==null){ return R.fail("订单不存在"); } - if(!(comShopOrderDO.getDeliveryStatus() == 4)){ + if(comShopOrderDO.getDeliveryStatus() != 4 && comShopOrderDO.getDeliveryStatus() != 3){ return R.fail("订单还未开始配送"); } + if(!(comShopOrderDO.getStatus() == 3)){ + return R.fail("订单还未发货"); + } + //comShopOrderDO.setStatus(4); comShopOrderDO.setDeliveryStatus(5); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ + //创建订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete); + orderOperateDO.setOperationTime(new Date()); + if(orderDeliverDTO.getIsAdmin()){ + orderOperateDO.setOperationContent("订单已完成"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + }else { + orderOperateDO.setOperationContent("订单已完成"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + } + int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + if(inserted!=1){ + log.error("订单发货日志保存错误"); + } return R.ok("配送完成"); } return R.fail("操作失败!"); @@ -601,7 +676,7 @@ @Override public R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO) { Page page = new Page(); - page.setSize(1000); + page.setSize(10000); page.setCurrent(1); IPage<ExcelShopOrderDTO> excelShopOrderDTO = comShopOrderDAO.selectOrderExport(page, comShopOrderExportDTO); return R.ok(excelShopOrderDTO.getRecords()); @@ -610,7 +685,7 @@ @Override public R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO) { Page page = new Page(); - page.setSize(1000); + page.setSize(10000); page.setCurrent(1); IPage<ExcelShopFundsDTO> excelShopFundsDTO = comShopOrderDAO.selectFundsExport(page, comShopFundsExportDTO); return R.ok(excelShopFundsDTO.getRecords()); @@ -619,6 +694,12 @@ @Override public R getFundsStat(Long userId) { ComShopFundsVO comShopFundsVO = comShopOrderDAO.queryStatis(userId); + if(comShopFundsVO==null){ + comShopFundsVO = new ComShopFundsVO(); + comShopFundsVO.setMonthTotal(new BigDecimal(0)); + comShopFundsVO.setTodayTotal(new BigDecimal(0)); + comShopFundsVO.setWeekTotal(new BigDecimal(0)); + } return R.ok(comShopFundsVO); } @@ -674,11 +755,13 @@ @Transactional(rollbackFor = Exception.class) @Override public void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO){ + log.info("微信订单支付回调开始处理逻辑"); if(StringUtils.isEmpty(wxPayNotifyOrderDTO.getOrderTradeNo())){ log.error("微信支付回调失败,订单号为空"); return; } + log.info("微信订单支付回调开始查询订单"); //查询订单 ComShopOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopOrderDO>().lambda().eq(ComShopOrderDO::getOrderNo,wxPayNotifyOrderDTO.getOrderTradeNo())); if(shopOrderDO == null){ @@ -688,9 +771,9 @@ shopOrderDO.setStatus(ComShopOrderDO.status.dfh); shopOrderDO.setPayType(ComShopOrderDO.payType.wx); shopOrderDO.setPayStatus(ComShopOrderDO.payStatus.yes); - shopOrderDO.setPayAmount(BigDecimal.valueOf(Integer.parseInt(wxPayNotifyOrderDTO.getCashFee()) / 100)); + shopOrderDO.setPayAmount(BigDecimal.valueOf(Double.valueOf(wxPayNotifyOrderDTO.getCashFee()) / 100)); shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo()); - shopOrderDO.setPayTime(new Date(Long.parseLong(wxPayNotifyOrderDTO.getPayTime() + "000"))); + shopOrderDO.setPayTime(DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(),new SimpleDateFormat("yyyyMMddHHmmss"))); this.baseMapper.updateById(shopOrderDO); //查询订单商品 @@ -768,6 +851,14 @@ }catch (Exception e){ log.error("调用微信支付异常,异常原因:" + e.getMessage()); } + shopOrderVO.setOrderId(orderDO.getId()); + shopOrderVO.setOrderNo(orderDO.getOrderNo()); + shopOrderVO.setOrderTotal(orderDO.getTotalAmount()); return R.ok(shopOrderVO); } + + public static void main(String[] args) { + BigDecimal one = BigDecimal.valueOf(Double.valueOf("1") / 100); + System.out.println(); + } } -- Gitblit v1.7.1