From b30e1a48f2bc5f65a0efd2e69e090fed2d7a627c Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期四, 17 十一月 2022 15:56:43 +0800 Subject: [PATCH] #feat 订单退款和查询 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java | 307 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 198 insertions(+), 109 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 fd57fed..b79f608 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,5 +1,6 @@ package com.panzhihua.service_community.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -7,16 +8,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.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.service.ComShopOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; @@ -26,10 +28,10 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static java.util.Objects.nonNull; /** * @auther lyq @@ -39,49 +41,47 @@ @Slf4j @Service public class ComShopFlowerOrderServiceImpl extends ServiceImpl<ComShopFlowerOrderDAO, ComShopFlowerOrderDO> - implements ComShopFlowerOrderService { + implements ComShopFlowerOrderService { @Resource - private ComShopFlowerGoodsDAO comShopGoodsDAO; + private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO; @Resource - private ComShopFlowerGoodsAttrDAO comShopGoodsAttrDAO; + private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO; @Resource private ComShopCartDAO comShopCartDAO; @Resource - private ComShopStoreDAO comShopStoreDAO; - @Resource private ConvenientMerchantDAO convenientMerchantDAO; @Resource - private ComShopFlowerUserAddressDAO comShopUserAddressDAO; + private ComShopFlowerUserAddressDAO comShopFlowerUserAddressDAO; @Resource - private ComShopFlowerOrderOperateDAO comShopOrderOperateDAO; + private ComShopFlowerOrderOperateDAO comShopFlowerOrderOperateDAO; @Resource - private ComShopFlowerOrderGoodsDAO comShopOrderGoodsDAO; + private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO; @Resource - private ComShopFlowerOrderDAO comShopOrderDAO; + private ComShopFlowerOrderDAO comShopFlowerOrderDAO; @Resource - private ComShopFlowerOrderPayDAO comShopOrderPayDAO; - @Value("${min.app.isTest}") - private Boolean isTest; - @Value("${min.app.appid}") - private String appid; - @Value("${min.app.payKey}") - private String payKey; - @Value("${min.app.mchId}") - private String mchId; - @Value("${min.app.notifyUrl}") - private String notifyUrl; + private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO; + @Resource + private ConvenientElevatingPointDAO convenientElevatingPointDAO; + @Resource + private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO; - public static void main(String[] args) { - BigDecimal one = BigDecimal.valueOf(Double.valueOf("1") / 100); - System.out.println(); - } + + @Value("${hcMin.app.isTest}") + private Boolean isTest; + @Value("${hcMin.app.appid}") + private String appid; + @Value("${hcMin.app.payKey}") + private String payKey; + @Value("${hcMin.app.mchId}") + private String mchId; + @Value("${hcMin.app.notifyUrl}") + private String notifyUrl; /** * 订单预览 * - * @param orderPreviewDTO - * 请求参数 + * @param orderPreviewDTO 请求参数 * @return 订单预览数据 */ @Override @@ -98,8 +98,8 @@ if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.details)) {// 详情页提交 // 查询商品信息 ComShopFlowerGoodsDO goodsDO = - comShopGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", orderPreviewDTO.getGoodsId()) - .eq("status", ComShopGoodsDO.status.sell).eq("delete_status", ComShopGoodsDO.deleteStatus.no)); + comShopFlowerGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", orderPreviewDTO.getGoodsId()) + .eq("status", ComShopGoodsDO.status.sell).eq("delete_status", ComShopGoodsDO.deleteStatus.no)); if (goodsDO == null) { return R.fail("商品已下架或已删除"); } @@ -107,9 +107,12 @@ storeId = goodsDO.getStoreId(); // 查询商品规格信息 - ComShopFlowerGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderPreviewDTO.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderPreviewDTO.getGoodsAttrId()); if (goodsAttrDO == null) { return R.fail("商品规格不存在"); + } + if (goodsAttrDO.getSale() < orderPreviewDTO.getBuyNum()) { + return R.fail("该规格库存不足,无法下单"); } orderTotal = goodsAttrDO.getPrice().multiply(BigDecimal.valueOf(orderPreviewDTO.getBuyNum())); @@ -140,7 +143,7 @@ orderGoodsVO.setNum(cartDO.getAmount()); orderGoodsVO.setGoodsName(cartDO.getGoodsName()); // 查询商品规格 - ComShopFlowerGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(cartDO.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(cartDO.getGoodsAttrId()); if (goodsAttrDO != null) { orderGoodsVO.setPrice(goodsAttrDO.getPrice()); } else { @@ -164,8 +167,8 @@ // 查询默认收货地址 ComShopFlowerUserAddressDO userDefaultAddressDO = - comShopUserAddressDAO.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>().eq("delete_status", 2) - .eq("user_id", orderPreviewDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes)); + comShopFlowerUserAddressDAO.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>().eq("delete_status", 2) + .eq("user_id", orderPreviewDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes)); // 查询用户收货地址中的默认地址 if (userDefaultAddressDO != null) { @@ -176,10 +179,10 @@ // 查询上次购买记录的收货地址 // 查询到用户上一笔订单 List<ComShopFlowerOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopFlowerOrderDO>() - .eq("delete_status", 2).eq("user_id", orderPreviewDTO.getUserId()).orderByDesc("create_at")); + .eq("delete_status", 2).eq("user_id", orderPreviewDTO.getUserId()).orderByDesc("create_at")); if (shopOrders != null && shopOrders.size() > 0) { ComShopFlowerUserAddressDO userAddressDO = - comShopUserAddressDAO.selectById(shopOrders.get(0).getReceiverId()); + comShopFlowerUserAddressDAO.selectById(shopOrders.get(0).getReceiverId()); if (userAddressDO != null) { ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO(); BeanUtils.copyProperties(userAddressDO, userAddressVO); @@ -194,8 +197,7 @@ /** * 创建订单 * - * @param orderCreateDTO - * 创建订单请求参数 + * @param orderCreateDTO 创建订单请求参数 * @return 创建结果 */ @Transactional(rollbackFor = Exception.class) @@ -204,7 +206,7 @@ // 创建返回参数 ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO(); // 查询用户收货地址 - ComShopFlowerUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(orderCreateDTO.getReceiverId()); + ComShopFlowerUserAddressDO userAddressDO = comShopFlowerUserAddressDAO.selectById(orderCreateDTO.getReceiverId()); if (userAddressDO == null || userAddressDO.getDeleteStatus() != 2) { return R.fail("收货地址不存在"); } @@ -224,8 +226,8 @@ for (ComShopOrderCreateGoodsDTO createGoodsDTO : orderCreateDTO.getOrderGoodsList()) { // 查询当前商品信息 ComShopFlowerGoodsDO goodsDO = - comShopGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", createGoodsDTO.getGoodsId()) - .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell)); + comShopFlowerGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", createGoodsDTO.getGoodsId()) + .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell)); if (goodsDO == null) { log.error("未查询到商品信息,商品已下架活已删除,商品id" + createGoodsDTO.getGoodsId()); continue; @@ -240,11 +242,15 @@ orderGoodsDO.setAmount(createGoodsDTO.getNum()); orderGoodsDO.setOrderNo(orderNo); // 查询当前商品规格 - ComShopFlowerGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(createGoodsDTO.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(createGoodsDTO.getGoodsAttrId()); if (goodsAttrDO == null) { log.error( - "未查询到商品规格信息,商品id" + createGoodsDTO.getGoodsId() + "商品规格id:" + createGoodsDTO.getGoodsAttrId()); + "未查询到商品规格信息,商品id" + createGoodsDTO.getGoodsId() + "商品规格id:" + createGoodsDTO.getGoodsAttrId()); continue; + } + + if (goodsAttrDO.getSale() < createGoodsDTO.getNum()) { + return R.fail("该规格库存不足,无法下单"); } orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId()); orderGoodsDO.setGoodsAttrPrice(goodsAttrDO.getPrice()); @@ -255,7 +261,7 @@ orderGoodsDOList.add(orderGoodsDO); // 将商品金额计算到订单总金额 orderTotal = orderTotal - .add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount()))); + .add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount()))); } } // 如果是购物车提交,需要将购物车内商品移除 @@ -274,6 +280,7 @@ shopOrderDO.setTotalAmount(orderTotal); shopOrderDO.setDiscountAmount(BigDecimal.ZERO); shopOrderDO.setDeliveryType(deliveryType); + shopOrderDO.setPointId(orderCreateDTO.getPointId()); if (StringUtils.isNotEmpty(orderCreateDTO.getRemark())) { shopOrderDO.setRemark(orderCreateDTO.getRemark()); } @@ -281,7 +288,7 @@ if (!orderGoodsDOList.isEmpty()) { orderGoodsDOList.forEach(orderGoods -> { orderGoods.setOrderId(shopOrderDO.getId()); - comShopOrderGoodsDAO.insert(orderGoods); + comShopFlowerOrderGoodsDAO.insert(orderGoods); }); } // 创建订单操作记录 @@ -296,7 +303,7 @@ orderOperateDO.setOperationContent("用户下单"); orderOperateDO.setOperationBy("用户"); } - comShopOrderOperateDAO.insert(orderOperateDO); + comShopFlowerOrderOperateDAO.insert(orderOperateDO); shopOrderVO.setOrderNo(orderNo); shopOrderVO.setOrderTotal(orderTotal); shopOrderVO.setOrderId(shopOrderDO.getId()); @@ -308,7 +315,7 @@ } // 调用wx支付 String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderCreateDTO.getOpenId(), - orderNo, money,null); + orderNo, money, null); log.info("微信支付返回参数:" + xml); shopOrderVO.setPayResult(xml); } catch (Exception e) { @@ -320,8 +327,7 @@ /** * 分页查询用户订单列表 * - * @param comOrderListDTO - * 请求参数 + * @param comOrderListDTO 请求参数 * @return 查询结果 */ @Override @@ -332,14 +338,14 @@ orderPageVOIPage.getRecords().forEach(orderVo -> { List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>(); // 查询订单下商品信息 - List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopOrderGoodsDAO - .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", orderVo.getOrderNo())); + List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO + .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", orderVo.getOrderNo())); if (!orderGoodsDOList.isEmpty()) { orderGoodsDOList.forEach(orderGoods -> { ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO(); BeanUtils.copyProperties(orderGoods, orderGoodsVO); // 根据商品规格id查询商品规格 - ComShopFlowerGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); if (goodsAttrDO != null) { orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName()); } @@ -366,8 +372,7 @@ /** * 根据订单id查询订单详情 * - * @param orderId - * 订单id + * @param orderId 订单id * @return 订单详情 */ @Override @@ -392,8 +397,8 @@ List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>(); // 查询订单下商品信息 - List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopOrderGoodsDAO - .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo())); + List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO + .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo())); StringBuilder sbr = new StringBuilder(); if (!orderGoodsDOList.isEmpty()) { orderGoodsDOList.forEach(orderGoods -> { @@ -403,9 +408,9 @@ orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); // 查询商品信息判断商品状态 - ComShopFlowerGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGoods.getGoodsId()); + ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId()); if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes) - || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) { + || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) { orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc); } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.lower)) { orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.yxj); @@ -414,12 +419,12 @@ } // 根据商品规格id查询商品规格 - ComShopFlowerGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); if (goodsAttrDO != null) { orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName()); } orderGoodsVOS.add(orderGoodsVO); - sbr.append(orderGoods.getGoodsName() + " "); + sbr.append(orderGoods.getGoodsName()).append(" "); }); } orderVO.setOrderGoodsVOList(orderGoodsVOS); @@ -427,7 +432,7 @@ ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO(); // 查询用户收货地址 - ComShopFlowerUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(shopOrderDO.getReceiverId()); + ComShopFlowerUserAddressDO userAddressDO = comShopFlowerUserAddressDAO.selectById(shopOrderDO.getReceiverId()); if (userAddressDO != null) { BeanUtils.copyProperties(userAddressDO, userAddressVO); orderVO.setUserAddressVO(userAddressVO); @@ -435,8 +440,8 @@ // 操作日志 List<ComShopFlowerOrderOperateDO> listOperLog = - comShopOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>() - .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo())); + comShopFlowerOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>() + .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo())); List<ComShopFlowerOrderOperateVO> listOperLogVO = new ArrayList<>(listOperLog.size()); listOperLog.forEach(logDO -> { ComShopFlowerOrderOperateVO copyVO = new ComShopFlowerOrderOperateVO(); @@ -444,14 +449,29 @@ listOperLogVO.add(copyVO); }); orderVO.setLogs(listOperLogVO); + Long pointId = shopOrderDO.getPointId(); + if (null != pointId) { + ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId); + ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO(); + BeanUtils.copyProperties(convenientElevatingPointVO, convenientElevatingPointDO); + orderVO.setConvenientElevatingPointVO(convenientElevatingPointVO); + } + //已完成、已退款才有评论 + if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()) { + ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(shopOrderDO.getOrderNo()); + if (nonNull(comShopFlowerEvaluateVO)) { + orderVO.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO); + } + } + + return R.ok(orderVO); } /** * 根据订单id取消订单 * - * @param comShopOrderQueryDTO - * 订单信息 + * @param comShopOrderQueryDTO 订单信息 * @return 取消结果 */ @Transactional(rollbackFor = Exception.class) @@ -467,6 +487,45 @@ } // 取消订单 shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx); + //退款 + String refundNo = WXPayUtil.generateNonceStr(); + try { + String refundStr = WxPayUtils.refund(appid, mchId, shopOrderDO.getWxTardeNo(), 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); + + } else { + //退款失败 + // 添加订单支付记录表 + orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); + orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); + shopOrderDO.setRemark(shopOrderDO.getRemark() + "_" + return_msg); + } + comShopFlowerOrderPayDAO.insert(orderPayDO); + } + } catch (Exception e) { + log.error("申请退款失败," + e.getMessage()); + e.printStackTrace(); + } if (this.baseMapper.updateById(shopOrderDO) > 0) { // 添加订单操作记录 ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO(); @@ -480,7 +539,7 @@ orderOperateDO.setOperationContent("用户取消订单"); orderOperateDO.setOperationBy("用户"); } - comShopOrderOperateDAO.insert(orderOperateDO); + comShopFlowerOrderOperateDAO.insert(orderOperateDO); return R.ok(); } else { return R.fail("取消订单失败"); @@ -491,8 +550,7 @@ /** * 根据订单id删除订单 * - * @param orderId - * 订单id + * @param orderId 订单id * @return 删除结果 */ @Override @@ -503,7 +561,7 @@ return R.fail("未查询到订单"); } if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ywc) - && !shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.yqx)) { + && !shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.yqx)) { return R.fail("该订单状态不可删除"); } @@ -518,10 +576,8 @@ /** * 根据订单id确认收货 * - * @param orderId - * 订单id - * @param phone - * 手机号 + * @param orderId 订单id + * @param phone 手机号 * @return 确认结果 */ @Transactional(rollbackFor = Exception.class) @@ -551,7 +607,7 @@ orderOperateDO.setOperationContent("用户确认收货"); orderOperateDO.setOperationBy("用户"); } - comShopOrderOperateDAO.insert(orderOperateDO); + comShopFlowerOrderOperateDAO.insert(orderOperateDO); return R.ok(); } else { return R.fail("确认收货失败"); @@ -561,8 +617,7 @@ /** * 统计用户订单数量 * - * @param userId - * 用户id + * @param userId 用户id * @return 统计结果 */ @Override @@ -597,13 +652,12 @@ /** * 订单发货 * - * @param orderShipDTO - * 订单发货信息 + * @param orderShipDTO 订单发货信息 * @return 发货结果 */ @Override public R shipOrder(ComShopOrderShipDTO orderShipDTO) { - ComShopFlowerOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderShipDTO.getOrderId()); + ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderShipDTO.getOrderId()); if (comShopOrderDO == null) { return R.fail("订单不存在"); } @@ -621,7 +675,7 @@ comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime()); comShopOrderDO.setLogisticsCompany(orderShipDTO.getLogisticsCompany()); comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo()); - int updated = comShopOrderDAO.updateById(comShopOrderDO); + int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO); if (updated == 1) { // 创建订单操作记录 ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO(); @@ -635,7 +689,7 @@ orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货"); orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount()); } - int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO); if (inserted != 1) { log.error("订单发货日志保存错误"); } @@ -646,7 +700,7 @@ @Override public R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) { - ComShopFlowerOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId()); + ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderDeliverDTO.getOrderId()); if (comShopOrderDO == null) { return R.fail("订单不存在"); } @@ -661,7 +715,7 @@ comShopOrderDO.setDeliveryType(1); comShopOrderDO.setStatus(3); comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime()); - int updated = comShopOrderDAO.updateById(comShopOrderDO); + int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO); if (updated == 1) { // 创建订单操作记录 @@ -676,7 +730,7 @@ orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货"); orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); } - int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO); if (inserted != 1) { log.error("订单发货日志保存错误"); } @@ -687,7 +741,7 @@ @Override public R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) { - ComShopFlowerOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId()); + ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderDeliverDTO.getOrderId()); if (comShopOrderDO == null) { return R.fail("订单不存在"); } @@ -699,7 +753,7 @@ } // comShopOrderDO.setStatus(4); comShopOrderDO.setDeliveryStatus(5); - int updated = comShopOrderDAO.updateById(comShopOrderDO); + int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO); if (updated == 1) { // 创建订单操作记录 ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO(); @@ -713,7 +767,7 @@ orderOperateDO.setOperationContent("订单已完成"); orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); } - int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO); if (inserted != 1) { log.error("订单发货日志保存错误"); } @@ -801,8 +855,7 @@ /** * 微信支付订单回调 * - * @param wxPayNotifyOrderDTO - * 订单支付回调参数 + * @param wxPayNotifyOrderDTO 订单支付回调参数 */ @Transactional(rollbackFor = Exception.class) @Override @@ -816,7 +869,7 @@ log.info("微信订单支付回调开始查询订单"); // 查询订单 ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerOrderDO>().lambda() - .eq(ComShopFlowerOrderDO::getOrderNo, wxPayNotifyOrderDTO.getOrderTradeNo())); + .eq(ComShopFlowerOrderDO::getOrderNo, wxPayNotifyOrderDTO.getOrderTradeNo())); if (shopOrderDO == null) { log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo()); return; @@ -827,38 +880,40 @@ shopOrderDO.setPayAmount(BigDecimal.valueOf(Double.valueOf(wxPayNotifyOrderDTO.getCashFee()) / 100)); shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo()); shopOrderDO.setPayTime( - DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss"))); + DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss"))); this.baseMapper.updateById(shopOrderDO); // 查询订单商品 List<ComShopFlowerOrderGoodsDO> orderGoodsList = - comShopOrderGoodsDAO.selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().lambda() - .eq(ComShopFlowerOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo())); + comShopFlowerOrderGoodsDAO.selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().lambda() + .eq(ComShopFlowerOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo())); if (!orderGoodsList.isEmpty()) { int goodsNub = 0; for (ComShopFlowerOrderGoodsDO orderGood : orderGoodsList) { goodsNub += orderGood.getAmount(); // 更新商品信息 - ComShopFlowerGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGood.getGoodsId()); + ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGood.getGoodsId()); if (goodsDO != null) { goodsDO.setSale(goodsDO.getSale() + orderGood.getAmount()); - comShopGoodsDAO.updateById(goodsDO); + comShopFlowerGoodsDAO.updateById(goodsDO); } // 更新商品规格 - ComShopFlowerGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGood.getGoodsAttrId()); + ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGood.getGoodsAttrId()); if (goodsAttrDO != null) { goodsAttrDO.setSale(goodsAttrDO.getSale() + orderGood.getAmount()); - comShopGoodsAttrDAO.updateById(goodsAttrDO); + //减库存 + goodsAttrDO.setStock(goodsAttrDO.getStock() - orderGood.getAmount()); + comShopFlowerGoodsAttrDAO.updateById(goodsAttrDO); } } // 更新店铺销量以及销售额 - ComShopStoreDO storeDO = comShopStoreDAO.selectById(shopOrderDO.getStoreId()); + ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId()); if (storeDO != null) { storeDO.setSale(storeDO.getSale() + goodsNub); storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount())); - comShopStoreDAO.updateById(storeDO); + convenientMerchantDAO.updateById(storeDO); } } @@ -869,7 +924,7 @@ orderOperateDO.setOperationTime(new Date()); orderOperateDO.setOperationContent("用户支付订单"); orderOperateDO.setOperationBy("用户"); - comShopOrderOperateDAO.insert(orderOperateDO); + comShopFlowerOrderOperateDAO.insert(orderOperateDO); // 添加订单支付记录表 ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO(); @@ -879,22 +934,25 @@ orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes); orderPayDO.setPayAmount(shopOrderDO.getPayAmount()); orderPayDO.setPayTime(shopOrderDO.getPayTime()); - comShopOrderPayDAO.insert(orderPayDO); + orderPayDO.setStoreId(shopOrderDO.getStoreId()); + orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType()); + orderPayDO.setOrderId(shopOrderDO.getId()); + orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.zf); + comShopFlowerOrderPayDAO.insert(orderPayDO); } /** * 订单去支付 * - * @param orderPayDTO - * 请求参数 + * @param orderPayDTO 请求参数 * @return 支付对象 */ public R wxPay(OrderPayDTO orderPayDTO) { // 创建返回参数 ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO(); // 查询订单 - ComShopFlowerOrderDO orderDO = comShopOrderDAO.selectOne( - new QueryWrapper<ComShopFlowerOrderDO>().lambda().eq(ComShopFlowerOrderDO::getOrderNo, orderPayDTO.getOrderNo())); + ComShopFlowerOrderDO orderDO = comShopFlowerOrderDAO.selectOne( + new QueryWrapper<ComShopFlowerOrderDO>().lambda().eq(ComShopFlowerOrderDO::getOrderNo, orderPayDTO.getOrderNo())); if (orderDO == null) { return R.fail("订单不存在"); } @@ -905,7 +963,7 @@ } // 调用wx支付 String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderPayDTO.getOpenId(), - orderDO.getOrderNo(), money,null); + orderDO.getOrderNo(), money, null); log.info("微信支付返回参数:" + xml); shopOrderVO.setPayResult(xml); } catch (Exception e) { @@ -916,4 +974,35 @@ shopOrderVO.setOrderTotal(orderDO.getTotalAmount()); return R.ok(shopOrderVO); } + + @Override + public R pageOrderByStoreId(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) { + + Page page = new Page(pageComFlowerOrderListDTO.getPageNum(), pageComFlowerOrderListDTO.getPageSize()); + + IPage<ComShopFlowerOrderStoreListVO> ipage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO); + return R.ok(ipage); + } + + @Override + public R selectCountByDeliveryType(Integer deliveryType) { + List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountByDeliveryType(deliveryType); + Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount)); + ComShopOrderCountVO comShopOrderCountVO = new ComShopOrderCountVO(); + comShopOrderCountVO.setStatus(8); + comShopOrderCountVO.setAmount(0); + for (int i = 1; i < 8; i++) { + if (collect.containsKey(i)) { + Integer amount = collect.get(i); + comShopOrderCountVO.setAmount(amount + comShopOrderCountVO.getAmount()); + }else { + collect.put(i,0); + } + } + collect.put(comShopOrderCountVO.getStatus(),comShopOrderCountVO.getAmount()); + + return R.ok(collect); + } + + } -- Gitblit v1.7.1