From 95d89cb6458deb0162b74bef2e577e2e5eda0623 Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期四, 01 十二月 2022 17:13:38 +0800 Subject: [PATCH] #feat 1 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 98 insertions(+), 12 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java index 1afacce..b24ecbd 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java @@ -1,26 +1,32 @@ package com.panzhihua.service_community.service.impl; +import cn.binarywang.wx.miniapp.api.WxMaService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.constants.Constants; import com.panzhihua.common.model.dtos.shop.*; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO; import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO; import com.panzhihua.common.model.vos.shop.*; -import com.panzhihua.common.utlis.DateUtils; -import com.panzhihua.common.utlis.OrderNoUtils; -import com.panzhihua.common.utlis.StringUtils; -import com.panzhihua.common.utlis.WxPayUtils; +import com.panzhihua.common.model.vos.user.SysUserVO; +import com.panzhihua.common.service.user.UserService; +import com.panzhihua.common.utlis.*; import com.panzhihua.common.utlis.wx.WXPayUtil; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComShopFlowerOrderService; +import com.panzhihua.service_community.util.WxMaConfiguration; import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -71,6 +77,10 @@ private ComShopFlowerRefundOrderDAO comShopFlowerRefundOrderDAO; @Resource private ComShopFlowerOrderDeliveryDAO comShopFlowerOrderDeliveryDAO; + @Resource + private WxMaConfiguration wxMaConfiguration; + @Resource + private UserService userService; @Value("${hcMin.app.isTest}") @@ -243,6 +253,7 @@ ComShopFlowerOrderGoodsDO orderGoodsDO = new ComShopFlowerOrderGoodsDO(); orderGoodsDO.setGoodsId(goodsDO.getId()); orderGoodsDO.setGoodsName(goodsDO.getName()); + orderGoodsDO.setStoreId(storeId); orderGoodsDO.setUserId(userId); orderGoodsDO.setAmount(createGoodsDTO.getNum()); @@ -258,6 +269,7 @@ if (goodsAttrDO.getStock() < createGoodsDTO.getNum()) { return R.fail("该规格库存不足,无法下单"); } + orderGoodsDO.setGoodsAttrName(goodsAttrDO.getGoodsAttrName()); orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId()); orderGoodsDO.setGoodsAttrPrice(createGoodsDTO.getPrice()); orderGoodsDO.setPrice(goodsAttrDO.getPrice()); @@ -357,6 +369,7 @@ orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); orderGoodsVOS.add(orderGoodsVO); }); + orderVo.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName()); } orderVo.setOrderGoodsVOList(orderGoodsVOS); @@ -374,6 +387,24 @@ orderVo.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO); } } + + //判断是否可以退款 订单是否已超过15天 是否已有退款订单 + int count = comShopFlowerRefundOrderDAO.selectCountRefundNowByOrderId(orderVo.getOrderId()); + if (count > 0){ + orderVo.setRefundable(2); + }else { + if (null == orderVo.getReceivingTime()){ + orderVo.setRefundable(2); + }else { + //收货时间往前推15天和当前时间做比较 + Date date = DateUtils.addDay(orderVo.getReceivingTime(), 15); + if(date.before(new Date())){ + orderVo.setRefundable(2); + } + } + } + + }); } return R.ok(orderPageVOIPage); @@ -396,7 +427,7 @@ //查询自提点信息 ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectOne(new LambdaQueryWrapper<ConvenientElevatingPointDO>().eq(ConvenientElevatingPointDO::getWechatAccount, phone)); if (isNull(convenientElevatingPointDO)) { - return R.fail("自提点不存在"); + return R.ok("订单不在该自提点"); } Long pointDOId = convenientElevatingPointDO.getId(); shopOrderDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopFlowerOrderDO>().eq(ComShopFlowerOrderDO::getId, orderId).eq(ComShopFlowerOrderDO::getPointId, pointDOId)); @@ -448,7 +479,10 @@ orderGoodsVOS.add(orderGoodsVO); sbr.append(orderGoods.getGoodsName()).append(" "); }); + orderVO.setGoodsAttrPic(orderGoodsDOList.get(0).getGoodsAttrPic()); + orderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName()); } + orderVO.setOrderGoodsVOList(orderGoodsVOS); orderVO.setGoodsName(sbr.toString()); @@ -486,15 +520,33 @@ } } //设置退款金额 - ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = comShopFlowerRefundOrderDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerRefundOrderDO>().eq(ComShopFlowerRefundOrderDO::getOrderId, shopOrderDO.getOrderNo())); + ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = comShopFlowerRefundOrderDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerRefundOrderDO>().eq(ComShopFlowerRefundOrderDO::getOrderId, shopOrderDO.getId())); if (nonNull(comShopFlowerRefundOrderDO)) { orderVO.setRefundAmount(comShopFlowerRefundOrderDO.getRefundAmount()); + orderVO.setRefundTime(comShopFlowerRefundOrderDO.getRefundTime()); } //如果状态时取消状态,更新时间为去取消时间 if (shopOrderDO.getStatus() == ComShopFlowerOrderDO.status.yqx) { orderVO.setCancelTime(shopOrderDO.getUpdateAt()); } + //判断是否可以退款 订单是否已超过15天 是否已有退款订单 + int count = comShopFlowerRefundOrderDAO.selectCountRefundNowByOrderId(orderId); + if (count > 0){ + orderVO.setRefundable(2); + }else { + if (null == orderVO.getReceivingTime()){ + orderVO.setRefundable(2); + }else { + //收货时间往前推15天和当前时间做比较 + Date date = DateUtils.addDay(orderVO.getReceivingTime(), 15); + if(date.before(new Date())){ + orderVO.setRefundable(2); + } + } + } + + return R.ok(orderVO); } @@ -643,6 +695,12 @@ orderOperateDO.setOperationBy("用户"); } comShopFlowerOrderOperateDAO.insert(orderOperateDO); + + //一个自提订单算一个货 + ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(shopOrderDO.getPointId()); + convenientElevatingPointDO.setPrepareGoodsNum(convenientElevatingPointDO.getPrepareGoodsNum() - 1); + convenientElevatingPointDO.setAlreadyGoodsNum(convenientElevatingPointDO.getAlreadyGoodsNum() + 1); + convenientElevatingPointDAO.updateById(convenientElevatingPointDO); return R.ok(); } else { return R.fail("确认收货失败"); @@ -689,6 +747,17 @@ int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO); if (inserted != 1) { log.error("订单发货日志保存错误"); + } + //发货通知 + WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID); + R userOpenId = userService.getUserOpenId(comShopOrderDO.getUserId()); + if (R.isOk(userOpenId)) { + String openid = userOpenId.getData().toString(); + try { + WxUtil.sendDeliverGoodsNotice(openid,maService.getAccessToken(),orderShipDTO.getLogisticsCompany(),orderShipDTO.getLogisticsNo(),comShopOrderDO.getOrderNo(), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm")); + } catch (WxErrorException e) { + e.printStackTrace(); + } } return R.ok("发货成功"); } @@ -830,6 +899,9 @@ List<ComShopFlowerOrderGoodsDO> orderGoodsList = comShopFlowerOrderGoodsDAO.selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().lambda() .eq(ComShopFlowerOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo())); + + ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId()); + if (!orderGoodsList.isEmpty()) { int goodsNub = 0; for (ComShopFlowerOrderGoodsDO orderGood : orderGoodsList) { @@ -852,7 +924,6 @@ } // 更新店铺销量以及销售额 - ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId()); if (storeDO != null) { storeDO.setSale(storeDO.getSale() + goodsNub); storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount())); @@ -882,6 +953,21 @@ orderPayDO.setOrderId(shopOrderDO.getId()); orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.zf); comShopFlowerOrderPayDAO.insert(orderPayDO); + if (nonNull(storeDO)){ + WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID); + R sysUserVOR = userService.getSysUserVOByPhone(storeDO.getMobilePhone()); + if (R.isOk(sysUserVOR)) { + SysUserVO sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class); + try { + WxUtil.sendNewOrderNotice(sysUserVO.getOpenid(),maService.getAccessToken(),shopOrderDO.getOrderNo(), + shopOrderDO.getDeliveryType()==1?"拼单订单":"快递订单",orderGoodsList.get(0).getGoodsName(), + shopOrderDO.getTotalAmount().toString(),DateUtil.format(shopOrderDO.getCreateAt(),"yyyy-MM-dd HH:mm")); + } catch (WxErrorException e) { + e.printStackTrace(); + } + } + } + } /** @@ -931,6 +1017,7 @@ ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO(); BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO); orderVo.setConvenientElevatingPointVO(convenientElevatingPointVO); + } }); } @@ -947,8 +1034,8 @@ Map<String, Integer> retMap = new HashMap<>(); int amountTotal = 0; for (int i = 0; i < statusStr.length; i++) { - if (collect.containsKey(i)) { - Integer amount = collect.get(i); + if (collect.containsKey(i+1)) { + Integer amount = collect.get(i+1); amountTotal = amountTotal + amount; retMap.put(statusStr[i], amount); } else { @@ -986,8 +1073,8 @@ R r1 = this.selectCountByDeliveryType(ComShopFlowerOrderDO.deliveryType.express, userId); retMap.put("kdddStatus", r1.getData()); //营业额 - List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS3 = this.baseMapper.selectSumAmountByStoreId(storeId); - Map<String, Integer> yyeMap = comShopOrderStoreIdCountVOS3.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum)); + List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdCountVOS3 = this.baseMapper.selectSumAmountByStoreId(storeId); + Map<String, BigDecimal> yyeMap = comShopOrderStoreIdCountVOS3.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum)); retMap.put("yye", yyeMap); //在售商品 Integer countSale = comShopFlowerGoodsDAO.selectCountSaleByStoreId(storeId); @@ -995,7 +1082,6 @@ //退款申请 Integer refundOrder = comShopFlowerRefundOrderDAO.selectCountByStoreId(storeId); retMap.put("refundOrder", refundOrder); - return R.ok(retMap); } -- Gitblit v1.7.1