| | |
| | | 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.DateUnit; |
| | | 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.config.RabbitmqConfig; |
| | | 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.amqp.rabbit.core.RabbitTemplate; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static java.util.Objects.isNull; |
| | | import static java.util.Objects.nonNull; |
| | | |
| | | /** |
| | |
| | | private ComShopFlowerRefundOrderDAO comShopFlowerRefundOrderDAO; |
| | | @Resource |
| | | private ComShopFlowerOrderDeliveryDAO comShopFlowerOrderDeliveryDAO; |
| | | @Resource |
| | | private WxMaConfiguration wxMaConfiguration; |
| | | @Resource |
| | | private UserService userService; |
| | | @Resource |
| | | private RabbitTemplate rabbitTemplate; |
| | | |
| | | |
| | | @Value("${hcMin.app.isTest}") |
| | |
| | | ComShopFlowerOrderGoodsDO orderGoodsDO = new ComShopFlowerOrderGoodsDO(); |
| | | orderGoodsDO.setGoodsId(goodsDO.getId()); |
| | | orderGoodsDO.setGoodsName(goodsDO.getName()); |
| | | |
| | | orderGoodsDO.setStoreId(storeId); |
| | | orderGoodsDO.setUserId(userId); |
| | | orderGoodsDO.setAmount(createGoodsDTO.getNum()); |
| | |
| | | if (goodsAttrDO.getStock() < createGoodsDTO.getNum()) { |
| | | return R.fail("该规格库存不足,无法下单"); |
| | | } |
| | | orderGoodsDO.setGoodsAttrName(goodsAttrDO.getGoodsAttrName()); |
| | | orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId()); |
| | | orderGoodsDO.setGoodsAttrPrice(createGoodsDTO.getPrice()); |
| | | orderGoodsDO.setPrice(goodsAttrDO.getPrice()); |
| | |
| | | } catch (Exception e) { |
| | | log.error("调用微信支付异常,异常原因:" + e.getMessage()); |
| | | } |
| | | //发送消息到mq |
| | | rabbitTemplate.convertAndSend("huacheng.shop.order.exchange", "huacheng.shop.order.key", shopOrderVO, message -> { |
| | | //30分钟后 |
| | | message.getMessageProperties().setHeader("x-delay", 1800*1000); |
| | | return message; |
| | | }); |
| | | return R.ok(shopOrderVO); |
| | | } |
| | | |
| | |
| | | ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO(); |
| | | BeanUtils.copyProperties(orderGoods, orderGoodsVO); |
| | | // 根据商品规格id查询商品规格 |
| | | ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); |
| | | if (goodsAttrDO != null) { |
| | | orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName()); |
| | | } |
| | | // ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); |
| | | // if (goodsAttrDO != null) { |
| | | orderGoodsVO.setGoodsAttr(orderGoods.getGoodsAttrName()); |
| | | // } |
| | | orderGoodsVO.setNum(orderGoods.getAmount()); |
| | | orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); |
| | | orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); |
| | | orderGoodsVOS.add(orderGoodsVO); |
| | | }); |
| | | orderVo.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName()); |
| | | } |
| | | orderVo.setOrderGoodsVOList(orderGoodsVOS); |
| | | |
| | |
| | | BeanUtils.copyProperties(convenientMerchantDO, shopStoreVO); |
| | | } |
| | | orderVo.setConvenientMerchantVO(shopStoreVO); |
| | | //已完成、已退款才有评论 TODO |
| | | // if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()) { |
| | | ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(orderVo.getOrderNo()); |
| | | if (nonNull(comShopFlowerEvaluateVO)) { |
| | | orderVo.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO); |
| | | //已完成、已退款才有评论 |
| | | if (ComShopFlowerOrderDO.status.ywc == orderVo.getStatus() || ComShopFlowerOrderDO.status.ytk == orderVo.getStatus()) { |
| | | ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(orderVo.getOrderNo()); |
| | | if (nonNull(comShopFlowerEvaluateVO)) { |
| | | 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); |
| | |
| | | * @return 订单详情 |
| | | */ |
| | | @Override |
| | | public R orderDetail(Long orderId) { |
| | | |
| | | public R orderDetail(Long orderId, String phone) { |
| | | ComShopFlowerOrderPageVO orderVO = new ComShopFlowerOrderPageVO(); |
| | | // 查询订单信息 |
| | | ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId); |
| | | ComShopFlowerOrderDO shopOrderDO = null; |
| | | if (StrUtil.isEmpty(phone)) { |
| | | // 查询订单信息 |
| | | shopOrderDO = this.baseMapper.selectById(orderId); |
| | | } else { |
| | | //查询自提点信息 |
| | | ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectOne(new LambdaQueryWrapper<ConvenientElevatingPointDO>().eq(ConvenientElevatingPointDO::getWechatAccount, phone)); |
| | | if (isNull(convenientElevatingPointDO)) { |
| | | return R.ok("订单不在该自提点"); |
| | | } |
| | | Long pointDOId = convenientElevatingPointDO.getId(); |
| | | shopOrderDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopFlowerOrderDO>().eq(ComShopFlowerOrderDO::getId, orderId).eq(ComShopFlowerOrderDO::getPointId, pointDOId)); |
| | | } |
| | | |
| | | |
| | | if (shopOrderDO == null) { |
| | | return R.fail("未查询到订单"); |
| | | } |
| | |
| | | orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); |
| | | orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); |
| | | // 查询商品信息判断商品状态 |
| | | ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId()); |
| | | /* ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId()); |
| | | if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes) |
| | | || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) { |
| | | orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc); |
| | |
| | | orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.yxj); |
| | | } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) { |
| | | orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.csz); |
| | | } |
| | | }*/ |
| | | |
| | | // 根据商品规格id查询商品规格 |
| | | ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); |
| | | if (goodsAttrDO != null) { |
| | | orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName()); |
| | | } |
| | | // ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); |
| | | orderGoodsVO.setGoodsAttr(orderGoods.getGoodsAttrName()); |
| | | 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()); |
| | | |
| | |
| | | } |
| | | |
| | | // 操作日志 |
| | | List<ComShopFlowerOrderOperateDO> listOperLog = |
| | | /* List<ComShopFlowerOrderOperateDO> listOperLog = |
| | | comShopFlowerOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>() |
| | | .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo())); |
| | | List<ComShopFlowerOrderOperateVO> listOperLogVO = new ArrayList<>(listOperLog.size()); |
| | |
| | | BeanUtils.copyProperties(logDO, copyVO); |
| | | listOperLogVO.add(copyVO); |
| | | }); |
| | | orderVO.setLogs(listOperLogVO); |
| | | orderVO.setLogs(listOperLogVO);*/ |
| | | Long pointId = shopOrderDO.getPointId(); |
| | | if (null != pointId) { |
| | | ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId); |
| | |
| | | BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO); |
| | | orderVO.setConvenientElevatingPointVO(convenientElevatingPointVO); |
| | | } |
| | | //已完成、已退款才有评论 TODO |
| | | // if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()) { |
| | | //已完成、已退款才有评论 |
| | | if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()) { |
| | | ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(shopOrderDO.getOrderNo()); |
| | | if (nonNull(comShopFlowerEvaluateVO)) { |
| | | orderVO.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO); |
| | | } |
| | | // } |
| | | //设置退款金额 |
| | | ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = comShopFlowerRefundOrderDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerRefundOrderDO>().eq(ComShopFlowerRefundOrderDO::getOrderId, shopOrderDO.getOrderNo())); |
| | | if (nonNull(comShopFlowerRefundOrderDO)){ |
| | | orderVO.setRefundAmount(comShopFlowerRefundOrderDO.getRefundAmount()); |
| | | } |
| | | //设置退款金额 |
| | | 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); |
| | | } |
| | |
| | | if (shopOrderDO == null) { |
| | | return R.fail("未查询到订单"); |
| | | } |
| | | if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ddps)) { |
| | | return R.fail("已配送订单不可取消"); |
| | | } |
| | | // 取消订单 |
| | | shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx); |
| | | //退款 |
| | | String refundNo = WXPayUtil.generateNonceStr(); |
| | | try { |
| | | String refundStr = WxPayUtils.refund(appid, mchId, shopOrderDO.getOrderNo(), shopOrderDO.getPayAmount(), |
| | | shopOrderDO.getPayAmount(), refundNo, isTest); |
| | | log.info("退款请求接口返回参数:{}", refundStr); |
| | | Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr); |
| | | if (CollUtil.isNotEmpty(mapResult)) { |
| | | String return_code = (String) mapResult.get("return_code"); |
| | | String result_code = (String) mapResult.get("result_code"); |
| | | String return_msg = mapResult.get("return_msg"); |
| | | ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO(); |
| | | if (shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ddps)||shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.dfh)) { |
| | | // 取消订单 |
| | | shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx); |
| | | //退款 |
| | | String refundNo = WXPayUtil.generateNonceStr(); |
| | | try { |
| | | String refundStr = WxPayUtils.refund(appid, mchId, shopOrderDO.getOrderNo(), shopOrderDO.getPayAmount(), |
| | | shopOrderDO.getPayAmount(), refundNo, isTest); |
| | | log.info("退款请求接口返回参数:{}", refundStr); |
| | | Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr); |
| | | if (CollUtil.isNotEmpty(mapResult)) { |
| | | String return_code = (String) mapResult.get("return_code"); |
| | | String result_code = (String) mapResult.get("result_code"); |
| | | String return_msg = mapResult.get("return_msg"); |
| | | ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO(); |
| | | |
| | | orderPayDO.setOrderNo(shopOrderDO.getOrderNo()); |
| | | orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount()); |
| | | orderPayDO.setPayTime(new Date()); |
| | | orderPayDO.setStoreId(shopOrderDO.getStoreId()); |
| | | orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType()); |
| | | orderPayDO.setOrderId(shopOrderDO.getId()); |
| | | orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.qx); |
| | | if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) { |
| | | //退款成功 |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg); |
| | | orderPayDO.setOrderNo(shopOrderDO.getOrderNo()); |
| | | orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount()); |
| | | orderPayDO.setPayTime(new Date()); |
| | | orderPayDO.setStoreId(shopOrderDO.getStoreId()); |
| | | orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType()); |
| | | orderPayDO.setOrderId(shopOrderDO.getId()); |
| | | orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.qx); |
| | | if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) { |
| | | //退款成功 |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg); |
| | | |
| | | } else { |
| | | //退款失败 |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); |
| | | shopOrderDO.setRemark(shopOrderDO.getRemark() + "_" + return_msg); |
| | | } else { |
| | | //退款失败 |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); |
| | | shopOrderDO.setRemark(shopOrderDO.getRemark() + "_" + return_msg); |
| | | } |
| | | comShopFlowerOrderPayDAO.insert(orderPayDO); |
| | | } |
| | | comShopFlowerOrderPayDAO.insert(orderPayDO); |
| | | } catch (Exception e) { |
| | | log.error("申请退款失败," + e.getMessage()); |
| | | e.printStackTrace(); |
| | | return R.fail("取消订单失败"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("申请退款失败," + e.getMessage()); |
| | | e.printStackTrace(); |
| | | return R.fail("取消订单失败"); |
| | | } |
| | | if (this.baseMapper.updateById(shopOrderDO) > 0) { |
| | | // 添加订单操作记录 |
| | | ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO(); |
| | | orderOperateDO.setOrderNo(shopOrderDO.getOrderNo()); |
| | | orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel); |
| | | orderOperateDO.setOperationTime(new Date()); |
| | | if (comShopOrderQueryDTO.getIsAdmin()) { |
| | | orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单"); |
| | | orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount()); |
| | | if (this.baseMapper.updateById(shopOrderDO) > 0) { |
| | | // 添加订单操作记录 |
| | | ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO(); |
| | | orderOperateDO.setOrderNo(shopOrderDO.getOrderNo()); |
| | | orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel); |
| | | orderOperateDO.setOperationTime(new Date()); |
| | | if (comShopOrderQueryDTO.getIsAdmin()) { |
| | | orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单"); |
| | | orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount()); |
| | | } else { |
| | | orderOperateDO.setOperationContent("用户取消订单"); |
| | | orderOperateDO.setOperationBy("用户"); |
| | | } |
| | | comShopFlowerOrderOperateDAO.insert(orderOperateDO); |
| | | return R.ok(); |
| | | } else { |
| | | orderOperateDO.setOperationContent("用户取消订单"); |
| | | orderOperateDO.setOperationBy("用户"); |
| | | return R.fail("取消订单失败"); |
| | | } |
| | | comShopFlowerOrderOperateDAO.insert(orderOperateDO); |
| | | return R.ok(); |
| | | } else { |
| | | return R.fail("取消订单失败"); |
| | | }else { |
| | | return R.fail("该订单不可取消"); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | 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("确认收货失败"); |
| | |
| | | if (comShopOrderDO == null) { |
| | | return R.fail("订单不存在"); |
| | | } |
| | | if (!(comShopOrderDO.getStatus() == 1) || !(comShopOrderDO.getDeliveryStatus() == 1)) { |
| | | if (!(comShopOrderDO.getStatus() == ComShopFlowerOrderDO.status.dfh) || (comShopOrderDO.getDeliveryStatus() == ComShopFlowerOrderDO.deliveryStatus.yes)) { |
| | | return R.fail("订单发货失败,订单状态不允许发货"); |
| | | } |
| | | |
| | |
| | | orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); |
| | | orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.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()); |
| | | } |
| | | |
| | | orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货"); |
| | | orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount()); |
| | | 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("发货成功"); |
| | | } |
| | |
| | | log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo()); |
| | | return; |
| | | } |
| | | if (ComShopFlowerOrderDO.deliveryType.store == shopOrderDO.getDeliveryType()){ |
| | | if (ComShopFlowerOrderDO.deliveryType.store == shopOrderDO.getDeliveryType()) { |
| | | shopOrderDO.setStatus(ComShopFlowerOrderDO.status.ddps); |
| | | }else { |
| | | } else { |
| | | shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dfh); |
| | | } |
| | | |
| | |
| | | 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) { |
| | |
| | | } |
| | | |
| | | // 更新店铺销量以及销售额 |
| | | ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId()); |
| | | if (storeDO != null) { |
| | | storeDO.setSale(storeDO.getSale() + goodsNub); |
| | | storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount())); |
| | |
| | | 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(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | IPage<ComShopFlowerOrderStoreListVO> orderPageVOIPage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO); |
| | | if (!orderPageVOIPage.getRecords().isEmpty()) { |
| | | orderPageVOIPage.getRecords().forEach(orderVo -> { |
| | | if (null!=orderVo.getPointId()){ |
| | | if (null != orderVo.getPointId()) { |
| | | ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(orderVo.getPointId()); |
| | | ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO(); |
| | | BeanUtils.copyProperties(convenientElevatingPointDO,convenientElevatingPointVO); |
| | | BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO); |
| | | orderVo.setConvenientElevatingPointVO(convenientElevatingPointVO); |
| | | |
| | | } |
| | | }); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R selectCountByDeliveryType(Integer deliveryType, Long userId) { |
| | | //1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款 8.总订单 |
| | | String[] statusStr = {"ddps", "psz", "dsh", "dpj", "ywc", "yqx", "ytk"}; |
| | | //1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款 8.待发货 |
| | | String[] statusStr = {"ddps", "psz", "dsh", "dpj", "ywc", "yqx", "ytk", "dfh"}; |
| | | ConvenientMerchantVO convenientMerchantVO = convenientMerchantDAO.selectMerchantByUserId(userId); |
| | | List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountByDeliveryType(deliveryType, convenientMerchantVO.getId()); |
| | | Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount)); |
| | | 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 { |
| | |
| | | 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); |
| | |
| | | //退款申请 |
| | | Integer refundOrder = comShopFlowerRefundOrderDAO.selectCountByStoreId(storeId); |
| | | retMap.put("refundOrder", refundOrder); |
| | | |
| | | return R.ok(retMap); |
| | | } |
| | | |
| | |
| | | return R.ok(retMap); |
| | | } |
| | | |
| | | public R selectOrderLineChart(Long storeId, Integer type,Integer tab) { |
| | | if (tab == 1){ |
| | | public R selectOrderLineChart(Long storeId, Integer type, Integer tab) { |
| | | if (tab == 1) { |
| | | if (1 == type) { |
| | | //近15天的订单量 |
| | | int days = 15; |
| | |
| | | } |
| | | return R.ok(retMap); |
| | | } |
| | | }else if (2==tab){ |
| | | } else if (2 == tab) { |
| | | if (1 == type) { |
| | | //近15天的营收 |
| | | int days = 15; |
| | |
| | | ComShopFlowerOrderDeliveryNoListVO comShopFlowerOrderDeliveryNoListVO = new ComShopFlowerOrderDeliveryNoListVO(); |
| | | ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = comShopFlowerOrderDeliveryDAO.selectById(pageComFlowerOrderListDTO.getDeliveryId()); |
| | | ComShopFlowerOrderDeliveryVO comShopFlowerOrderDeliveryVO = new ComShopFlowerOrderDeliveryVO(); |
| | | BeanUtils.copyProperties(comShopFlowerOrderDeliveryDO,comShopFlowerOrderDeliveryVO); |
| | | BeanUtils.copyProperties(comShopFlowerOrderDeliveryDO, comShopFlowerOrderDeliveryVO); |
| | | |
| | | Long pointId = comShopFlowerOrderDeliveryDO.getPointId(); |
| | | ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId); |
| | | ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO(); |
| | | BeanUtils.copyProperties(convenientElevatingPointDO,convenientElevatingPointVO); |
| | | BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO); |
| | | comShopFlowerOrderDeliveryVO.setConvenientElevatingPointVO(convenientElevatingPointVO); |
| | | comShopFlowerOrderDeliveryNoListVO.setComShopFlowerOrderDeliveryVO(comShopFlowerOrderDeliveryVO); |
| | | comShopFlowerOrderDeliveryNoListVO.setPage(orderPageVOIPage); |
| | | return R.ok(comShopFlowerOrderDeliveryNoListVO); |
| | | } |
| | | |
| | | } |