From e4cdfe7a09e6bf431965359e319e671f1f17b24e Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期一, 03 六月 2024 11:18:40 +0800
Subject: [PATCH] 花城 议事投票评论删除 评论数不正确2
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java | 713 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 489 insertions(+), 224 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 95fe246..17e2145 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,23 +1,34 @@
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.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;
@@ -25,12 +36,12 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
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.isNull;
import static java.util.Objects.nonNull;
/**
@@ -41,7 +52,7 @@
@Slf4j
@Service
public class ComShopFlowerOrderServiceImpl extends ServiceImpl<ComShopFlowerOrderDAO, ComShopFlowerOrderDO>
- implements ComShopFlowerOrderService {
+ implements ComShopFlowerOrderService {
@Resource
private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO;
@@ -65,24 +76,33 @@
private ConvenientElevatingPointDAO convenientElevatingPointDAO;
@Resource
private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
+ @Resource
+ private ComShopFlowerRefundOrderDAO comShopFlowerRefundOrderDAO;
+ @Resource
+ private ComShopFlowerOrderDeliveryDAO comShopFlowerOrderDeliveryDAO;
+ @Resource
+ private WxMaConfiguration wxMaConfiguration;
+ @Resource
+ private UserService userService;
+ @Resource
+ private RabbitTemplate rabbitTemplate;
- @Value("${hc_min.app.isTest}")
+ @Value("${hcMin.app.isTest}")
private Boolean isTest;
- @Value("${hc_min.app.appid}")
+ @Value("${hcMin.app.appid}")
private String appid;
- @Value("${hc_min.app.payKey}")
+ @Value("${hcMin.app.payKey}")
private String payKey;
- @Value("${hc_min.app.mchId}")
+ @Value("${hcMin.app.mchId}")
private String mchId;
- @Value("${hc_min.app.notifyUrl}")
+ @Value("${hcMin.app.notifyUrl}")
private String notifyUrl;
/**
* 订单预览
*
- * @param orderPreviewDTO
- * 请求参数
+ * @param orderPreviewDTO 请求参数
* @return 订单预览数据
*/
@Override
@@ -99,8 +119,8 @@
if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.details)) {// 详情页提交
// 查询商品信息
ComShopFlowerGoodsDO goodsDO =
- comShopFlowerGoodsDAO.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("商品已下架或已删除");
}
@@ -112,7 +132,7 @@
if (goodsAttrDO == null) {
return R.fail("商品规格不存在");
}
- if (goodsAttrDO.getSale() < orderPreviewDTO.getBuyNum()){
+ if (goodsAttrDO.getSale() < orderPreviewDTO.getBuyNum()) {
return R.fail("该规格库存不足,无法下单");
}
@@ -168,8 +188,8 @@
// 查询默认收货地址
ComShopFlowerUserAddressDO userDefaultAddressDO =
- comShopFlowerUserAddressDAO.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) {
@@ -180,10 +200,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 =
- comShopFlowerUserAddressDAO.selectById(shopOrders.get(0).getReceiverId());
+ comShopFlowerUserAddressDAO.selectById(shopOrders.get(0).getReceiverId());
if (userAddressDO != null) {
ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
BeanUtils.copyProperties(userAddressDO, userAddressVO);
@@ -198,8 +218,7 @@
/**
* 创建订单
*
- * @param orderCreateDTO
- * 创建订单请求参数
+ * @param orderCreateDTO 创建订单请求参数
* @return 创建结果
*/
@Transactional(rollbackFor = Exception.class)
@@ -217,9 +236,9 @@
// 店铺id
Long storeId = 0L;
// 生成订单号
- String orderNo = OrderNoUtils.NextOrderNo(userId);
+ String orderNo = OrderNoUtils.NextOrderNoFlower(userId);
// 配送方式
- Integer deliveryType = 0;
+ Integer deliveryType = 1;
// 订单总金额
BigDecimal orderTotal = BigDecimal.ZERO;
// 创建订单商品信息
@@ -228,17 +247,18 @@
for (ComShopOrderCreateGoodsDTO createGoodsDTO : orderCreateDTO.getOrderGoodsList()) {
// 查询当前商品信息
ComShopFlowerGoodsDO goodsDO =
- comShopFlowerGoodsDAO.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;
}
storeId = goodsDO.getStoreId();
- deliveryType = goodsDO.getDeliveryType();
+ deliveryType = orderCreateDTO.getDeliveryType();
ComShopFlowerOrderGoodsDO orderGoodsDO = new ComShopFlowerOrderGoodsDO();
orderGoodsDO.setGoodsId(goodsDO.getId());
orderGoodsDO.setGoodsName(goodsDO.getName());
+
orderGoodsDO.setStoreId(storeId);
orderGoodsDO.setUserId(userId);
orderGoodsDO.setAmount(createGoodsDTO.getNum());
@@ -247,15 +267,16 @@
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()){
+ if (goodsAttrDO.getStock() < createGoodsDTO.getNum()) {
return R.fail("该规格库存不足,无法下单");
}
+ orderGoodsDO.setGoodsAttrName(goodsAttrDO.getGoodsAttrName());
orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId());
- orderGoodsDO.setGoodsAttrPrice(goodsAttrDO.getPrice());
+ orderGoodsDO.setGoodsAttrPrice(createGoodsDTO.getPrice());
orderGoodsDO.setPrice(goodsAttrDO.getPrice());
orderGoodsDO.setCollatePrice(goodsAttrDO.getCollatePrice());
orderGoodsDO.setFreeShippingPrice(goodsAttrDO.getFreeShippingPrice());
@@ -263,18 +284,15 @@
orderGoodsDOList.add(orderGoodsDO);
// 将商品金额计算到订单总金额
orderTotal = orderTotal
- .add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount())));
+ .add(createGoodsDTO.getPrice().multiply(BigDecimal.valueOf(createGoodsDTO.getNum())));
}
}
- // 如果是购物车提交,需要将购物车内商品移除
- /*if (orderCreateDTO.getSubmitType().equals(ComShopOrderCreateDTO.submitType.cart)) {
- comShopCartDAO.deleteBatchIds(orderCreateDTO.getCartIds());
- }*/
// 创建订单信息
ComShopFlowerOrderDO shopOrderDO = new ComShopFlowerOrderDO();
shopOrderDO.setOrderNo(orderNo);
shopOrderDO.setStoreId(storeId);
shopOrderDO.setUserId(userId);
+ //TODO
shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dfk);
shopOrderDO.setPayStatus(ComShopFlowerOrderDO.payStatus.no);
shopOrderDO.setReceiverId(orderCreateDTO.getReceiverId());
@@ -317,20 +335,25 @@
}
// 调用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) {
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);
}
/**
* 分页查询用户订单列表
*
- * @param comOrderListDTO
- * 请求参数
+ * @param comOrderListDTO 请求参数
* @return 查询结果
*/
@Override
@@ -342,21 +365,22 @@
List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
// 查询订单下商品信息
List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
- .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", orderVo.getOrderNo()));
+ .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 = 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);
@@ -367,6 +391,31 @@
BeanUtils.copyProperties(convenientMerchantDO, shopStoreVO);
}
orderVo.setConvenientMerchantVO(shopStoreVO);
+ //已完成、已退款才有评论
+ 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);
@@ -375,22 +424,33 @@
/**
* 根据订单id查询订单详情
*
- * @param orderId
- * 订单id
+ * @param orderId 订单id
* @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("未查询到订单");
}
BeanUtils.copyProperties(shopOrderDO, orderVO);
orderVO.setOrderTotal(shopOrderDO.getTotalAmount());
-
+ orderVO.setOrderId(orderId);
ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
// 查询店铺信息
ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId());
@@ -402,7 +462,7 @@
List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
// 查询订单下商品信息
List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
- .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo()));
+ .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo()));
StringBuilder sbr = new StringBuilder();
if (!orderGoodsDOList.isEmpty()) {
orderGoodsDOList.forEach(orderGoods -> {
@@ -412,25 +472,26 @@
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)) {
+ || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) {
orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc);
} else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.lower)) {
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() + " ");
+ sbr.append(orderGoods.getGoodsName()).append(" ");
});
+ orderVO.setGoodsAttrPic(orderGoodsDOList.get(0).getGoodsAttrPic());
+ orderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName());
}
+
orderVO.setOrderGoodsVOList(orderGoodsVOS);
orderVO.setGoodsName(sbr.toString());
@@ -443,28 +504,54 @@
}
// 操作日志
- List<ComShopFlowerOrderOperateDO> listOperLog =
- comShopFlowerOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>()
- .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo()));
+/* List<ComShopFlowerOrderOperateDO> listOperLog =
+ comShopFlowerOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>()
+ .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo()));
List<ComShopFlowerOrderOperateVO> listOperLogVO = new ArrayList<>(listOperLog.size());
listOperLog.forEach(logDO -> {
ComShopFlowerOrderOperateVO copyVO = new ComShopFlowerOrderOperateVO();
BeanUtils.copyProperties(logDO, copyVO);
listOperLogVO.add(copyVO);
});
- orderVO.setLogs(listOperLogVO);
+ orderVO.setLogs(listOperLogVO);*/
Long pointId = shopOrderDO.getPointId();
- if (null!= pointId){
+ if (null != pointId) {
ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
- BeanUtils.copyProperties(convenientElevatingPointVO,convenientElevatingPointDO);
+ BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO);
orderVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
}
//已完成、已退款才有评论
- if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()){
- ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(shopOrderDO.getOrderNo());
- if (nonNull(comShopFlowerEvaluateVO)){
+ 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.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);
+ }
}
}
@@ -476,8 +563,7 @@
/**
* 根据订单id取消订单
*
- * @param comShopOrderQueryDTO
- * 订单信息
+ * @param comShopOrderQueryDTO 订单信息
* @return 取消结果
*/
@Transactional(rollbackFor = Exception.class)
@@ -488,40 +574,82 @@
if (shopOrderDO == null) {
return R.fail("未查询到订单");
}
- if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ddps)) {
- return R.fail("已配送订单不可取消");
- }
- // 取消订单
- shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx);
- 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("用户");
+ 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);
+
+ } 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();
+ return R.fail("取消订单失败");
}
- comShopFlowerOrderOperateDAO.insert(orderOperateDO);
- return R.ok();
- } else {
- 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());
+ } else {
+ orderOperateDO.setOperationContent("用户取消订单");
+ orderOperateDO.setOperationBy("用户");
+ }
+ comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+ return R.ok();
+ } else {
+ return R.fail("取消订单失败");
+ }
+ }else {
+ return R.fail("该订单不可取消");
}
+
}
/**
* 根据订单id删除订单
*
- * @param orderId
- * 订单id
+ * @param orderId 订单id
* @return 删除结果
*/
@Override
+ @Transactional(rollbackFor = Exception.class)
public R orderDelete(Long orderId) {
// 查询订单
ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
@@ -529,7 +657,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("该订单状态不可删除");
}
@@ -544,10 +672,8 @@
/**
* 根据订单id确认收货
*
- * @param orderId
- * 订单id
- * @param phone
- * 手机号
+ * @param orderId 订单id
+ * @param phone 手机号
* @return 确认结果
*/
@Transactional(rollbackFor = Exception.class)
@@ -562,7 +688,7 @@
return R.fail("该订单状态不可确认收货");
}
// 订单确认收货
- shopOrderDO.setStatus(ComShopOrderDO.status.ywc);
+ shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dpj);
shopOrderDO.setReceivingTime(new Date());
if (this.baseMapper.updateById(shopOrderDO) > 0) {
// 添加订单操作记录
@@ -578,53 +704,25 @@
orderOperateDO.setOperationBy("用户");
}
comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+
+ //一个自提订单算一个货
+ if (ComShopFlowerOrderDO.deliveryType.store == shopOrderDO.getDeliveryType()){
+ 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("确认收货失败");
}
}
- /**
- * 统计用户订单数量
- *
- * @param userId
- * 用户id
- * @return 统计结果
- */
- @Override
- public R orderStatistics(Long userId) {
- /*OrderStatisticsVO orderStatisticsVO = new OrderStatisticsVO();
- // 待付款订单数
- Integer paymentNum = 0;
- // 待发货订单数
- Integer deliverNum = 0;
- // 待收货订单数
- Integer receivingNum = 0;
- List<ComShopOrderDO> shopOrderList = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>()
- .eq("user_id", userId).eq("delete_status", ComShopOrderDO.deleteStatus.no));
- if (!shopOrderList.isEmpty()) {
- for (ComShopOrderDO orderDO : shopOrderList) {
- if (orderDO.getStatus().equals(ComShopOrderDO.status.dfk)) {
- paymentNum++;
- } else if (orderDO.getStatus().equals(ComShopOrderDO.status.dfh)) {
- deliverNum++;
- } else if (orderDO.getStatus().equals(ComShopOrderDO.status.dsh)) {
- receivingNum++;
- }
- }
- }
- orderStatisticsVO.setPaymentNum(paymentNum);
- orderStatisticsVO.setDeliverNum(deliverNum);
- orderStatisticsVO.setReceivingNum(receivingNum);
- return R.ok(orderStatisticsVO);*/
- return R.ok();
- }
/**
* 订单发货
*
- * @param orderShipDTO
- * 订单发货信息
+ * @param orderShipDTO 订单发货信息
* @return 发货结果
*/
@Override
@@ -633,7 +731,7 @@
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("订单发货失败,订单状态不允许发货");
}
@@ -654,16 +752,23 @@
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("发货成功");
}
@@ -679,10 +784,7 @@
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);
@@ -724,7 +826,7 @@
return R.fail("订单还未发货");
}
// comShopOrderDO.setStatus(4);
- comShopOrderDO.setDeliveryStatus(5);
+ comShopOrderDO.setDeliveryStatus(2);
int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
if (updated == 1) {
// 创建订单操作记录
@@ -748,53 +850,6 @@
return R.fail("操作失败!");
}
- @Override
- public R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO) {
-// Page page = new Page();
-// page.setSize(10000);
-// page.setCurrent(1);
-// IPage<ExcelShopOrderDTO> excelShopOrderDTO = comShopOrderDAO.selectOrderExport(page, comShopOrderExportDTO);
- return R.ok();
- }
-
- @Override
- public R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO) {
-// Page page = new Page();
-// page.setSize(10000);
-// page.setCurrent(1);
-// IPage<ExcelShopFundsDTO> excelShopFundsDTO = comShopOrderDAO.selectFundsExport(page, comShopFundsExportDTO);
- return R.ok(null);
- }
-
- @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();
- }
-
- @Override
- public R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
- /*Long pageNum = pageComShopFundsSearchDTO.getPageNum();
- Long pageSize = pageComShopFundsSearchDTO.getPageSize();
- Page page = new Page();
- if (pageNum == null || 0 == pageNum.longValue()) {
- pageNum = 1l;
- }
- if (pageSize == null || 0 == pageSize.longValue()) {
- pageSize = 10l;
- }
- page.setCurrent(pageNum);
- page.setSize(pageSize);
- IPage<ComShopFundsOrderVO> comShopFundsOrderVOIPage =
- comShopOrderDAO.pageShopFunds(page, pageComShopFundsSearchDTO);*/
- return R.ok();
- }
@Override
public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
@@ -815,20 +870,10 @@
return R.ok(ipage);
}
- @Override
- public R capitalDetailByStore(Long id) {
- /*if (id == null) {
- R.fail("订单号不能为空!");
- }
- CapitalDetailVO vo = this.baseMapper.capitalDetailByStore(id);*/
- return R.ok();
- }
-
/**
* 微信支付订单回调
*
- * @param wxPayNotifyOrderDTO
- * 订单支付回调参数
+ * @param wxPayNotifyOrderDTO 订单支付回调参数
*/
@Transactional(rollbackFor = Exception.class)
@Override
@@ -842,24 +887,32 @@
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;
}
- shopOrderDO.setStatus(ComShopFlowerOrderDO.status.ddps);
+ if (ComShopFlowerOrderDO.deliveryType.store == shopOrderDO.getDeliveryType()) {
+ shopOrderDO.setStatus(ComShopFlowerOrderDO.status.ddps);
+ } else {
+ shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dfh);
+ }
+
shopOrderDO.setPayType(ComShopFlowerOrderDO.payType.wx);
shopOrderDO.setPayStatus(ComShopFlowerOrderDO.payStatus.yes);
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 =
- comShopFlowerOrderGoodsDAO.selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().lambda()
- .eq(ComShopFlowerOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo()));
+ 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) {
@@ -882,7 +935,6 @@
}
// 更新店铺销量以及销售额
- ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId());
if (storeDO != null) {
storeDO.setSale(storeDO.getSale() + goodsNub);
storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount()));
@@ -907,22 +959,44 @@
orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
orderPayDO.setPayAmount(shopOrderDO.getPayAmount());
orderPayDO.setPayTime(shopOrderDO.getPayTime());
+ orderPayDO.setStoreId(shopOrderDO.getStoreId());
+ orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType());
+ 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 {
+ DecimalFormat df = new DecimalFormat("#.00");
+ WxUtil.sendNewOrderNotice(sysUserVO.getOpenid(),maService.getAccessToken(),shopOrderDO.getOrderNo(),
+ shopOrderDO.getDeliveryType()==1?"拼单订单":"快递订单",orderGoodsList.get(0).getGoodsName(),
+ df.format(shopOrderDO.getTotalAmount()),
+ DateUtil.format(shopOrderDO.getCreateAt(),"yyyy-MM-dd HH:mm"));
+ } catch (WxErrorException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
}
/**
* 订单去支付
*
- * @param orderPayDTO
- * 请求参数
+ * @param orderPayDTO 请求参数
* @return 支付对象
*/
+ @Override
+ @Transactional(rollbackFor = Exception.class)
public R wxPay(OrderPayDTO orderPayDTO) {
// 创建返回参数
ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO();
// 查询订单
ComShopFlowerOrderDO orderDO = comShopFlowerOrderDAO.selectOne(
- new QueryWrapper<ComShopFlowerOrderDO>().lambda().eq(ComShopFlowerOrderDO::getOrderNo, orderPayDTO.getOrderNo()));
+ new QueryWrapper<ComShopFlowerOrderDO>().lambda().eq(ComShopFlowerOrderDO::getOrderNo, orderPayDTO.getOrderNo()));
if (orderDO == null) {
return R.fail("订单不存在");
}
@@ -933,7 +1007,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) {
@@ -947,10 +1021,201 @@
@Override
public R pageOrderByStoreId(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+ Page page = new Page(pageComFlowerOrderListDTO.getPageNum(), pageComFlowerOrderListDTO.getPageSize());
+ IPage<ComShopFlowerOrderStoreListVO> orderPageVOIPage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO);
+ if (!orderPageVOIPage.getRecords().isEmpty()) {
+ orderPageVOIPage.getRecords().forEach(orderVo -> {
+ if (null != orderVo.getPointId()) {
+ ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(orderVo.getPointId());
+ ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+ BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO);
+ orderVo.setConvenientElevatingPointVO(convenientElevatingPointVO);
- Page page = new Page(pageComFlowerOrderListDTO.getPageNum(),pageComFlowerOrderListDTO.getPageSize());
-
- IPage<ComShopFlowerOrderStoreListVO> ipage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO);
- return R.ok(ipage);
+ }
+ });
+ }
+ return R.ok(orderPageVOIPage);
}
+
+ @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", "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+1)) {
+ Integer amount = collect.get(i+1);
+ amountTotal = amountTotal + amount;
+ retMap.put(statusStr[i], amount);
+ } else {
+ retMap.put(statusStr[i], 0);
+ }
+ }
+ retMap.put("zdd", amountTotal);
+
+ return R.ok(retMap);
+ }
+
+ @Override
+ public R selectCountByUserId(Long userId) {
+ ConvenientMerchantVO convenientMerchantVO = convenientMerchantDAO.selectMerchantByUserId(userId);
+ Long storeId = convenientMerchantVO.getId();
+ Map<String, Object> retMap = new HashMap<>();
+ //查询我的店铺订单量
+ List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectCountByStoreId(storeId, null);
+ Map<String, Integer> zddlMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+ retMap.put("zddl", zddlMap);
+ //查询我的店铺拼单订单
+ List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS1 = this.baseMapper.selectCountByStoreId(storeId, ComShopFlowerOrderDO.deliveryType.store);
+ Map<String, Integer> pdddMap = comShopOrderStoreIdCountVOS1.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+ retMap.put("pddd", pdddMap);
+ //查询我的店铺快递订单
+ List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS2 = this.baseMapper.selectCountByStoreId(storeId, ComShopFlowerOrderDO.deliveryType.express);
+ Map<String, Integer> kdddMap = comShopOrderStoreIdCountVOS2.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+ retMap.put("kddd", kdddMap);
+
+ //拼单订单各状态
+ R r = this.selectCountByDeliveryType(ComShopFlowerOrderDO.deliveryType.store, userId);
+ retMap.put("pdddStatus", r.getData());
+
+ //快递订单各状态
+ R r1 = this.selectCountByDeliveryType(ComShopFlowerOrderDO.deliveryType.express, userId);
+ retMap.put("kdddStatus", r1.getData());
+ //营业额
+ 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);
+ retMap.put("countSale", countSale);
+ //退款申请
+ Integer refundOrder = comShopFlowerRefundOrderDAO.selectCountByStoreId(storeId);
+ retMap.put("refundOrder", refundOrder);
+ return R.ok(retMap);
+ }
+
+
+ /**
+ * 获取商家的营业额和可结算金额
+ *
+ * @param storeId
+ * @return
+ */
+ @Override
+ public R getQuota(Long storeId) {
+ //营业额
+ BigDecimal turnover = this.baseMapper.selectTurnover(storeId);
+ //可结算
+ BigDecimal settlement = this.baseMapper.selectSettlement(storeId);
+
+ Map<String, Object> retMap = new HashMap<>();
+ retMap.put("turnover", turnover);
+ retMap.put("settlement", settlement);
+ return R.ok(retMap);
+
+ }
+
+
+ @Override
+ public R selectSumOrderAndAmountByStoreId(Long storeId) {
+ List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectSumOrderAndAmountByStoreId(storeId);
+ Map<String, Object> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+ return R.ok(retMap);
+ }
+
+ public R selectOrderLineChart(Long storeId, Integer type, Integer tab) {
+ if (tab == 1) {
+ if (1 == type) {
+ //近15天的订单量
+ int days = 15;
+ return getCountByStoreIdAndDays(storeId, days);
+ } else if (2 == type) {
+ //近30天的订单量
+ int days = 30;
+ return getCountByStoreIdAndDays(storeId, days);
+ } else {
+ //今年所有月份订单量
+ List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectCountOrderMonthByStoreId(storeId);
+ Map<String, Integer> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+ List<String> yearMonths = DateUtils.getYearMonths();
+ for (String yearMonth : yearMonths) {
+ if (!retMap.containsKey(yearMonth)) {
+ retMap.put(yearMonth, 0);
+ }
+ }
+ return R.ok(retMap);
+ }
+ } else if (2 == tab) {
+ if (1 == type) {
+ //近15天的营收
+ int days = 15;
+ return getSumByStoreIdAndDays(storeId, days);
+ } else if (2 == type) {
+ //近30天的营收
+ int days = 30;
+ return getSumByStoreIdAndDays(storeId, days);
+ } else {
+ //今年所有月份订单量
+ List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectOrderSumMonthByStoreId(storeId);
+ Map<String, BigDecimal> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+ List<String> yearMonths = DateUtils.getYearMonths();
+ for (String yearMonth : yearMonths) {
+ if (!retMap.containsKey(yearMonth)) {
+ retMap.put(yearMonth, BigDecimal.ZERO);
+ }
+ }
+ return R.ok(retMap);
+ }
+ }
+ return R.ok();
+
+ }
+
+ private R getCountByStoreIdAndDays(Long storeId, int days) {
+ List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectCountOrderDayByStoreId(storeId, days);
+ Map<String, Integer> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+ List<String> beforeDays = DateUtils.getBeforeDays(days);
+ for (String beforeDay : beforeDays) {
+ if (!retMap.containsKey(beforeDay)) {
+ retMap.put(beforeDay, 0);
+ }
+ }
+ return R.ok(retMap);
+ }
+
+ private R getSumByStoreIdAndDays(Long storeId, int days) {
+ List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdNumVOS = this.baseMapper.selectOrderSumPayDayByStoreId(storeId, days);
+ Map<String, BigDecimal> retMap = comShopOrderStoreIdNumVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+ List<String> beforeDays = DateUtils.getBeforeDays(days);
+ for (String beforeDay : beforeDays) {
+ if (!retMap.containsKey(beforeDay)) {
+ retMap.put(beforeDay, BigDecimal.ZERO);
+ }
+ }
+ return R.ok(retMap);
+ }
+
+ @Override
+ public R pageOrderByDeliveryNo(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+ Page page = new Page(pageComFlowerOrderListDTO.getPageNum(), pageComFlowerOrderListDTO.getPageSize());
+ IPage<ComShopFlowerOrderStoreListVO> orderPageVOIPage = this.baseMapper.pageOrderByDeliveryNo(page, pageComFlowerOrderListDTO);
+ ComShopFlowerOrderDeliveryNoListVO comShopFlowerOrderDeliveryNoListVO = new ComShopFlowerOrderDeliveryNoListVO();
+ ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = comShopFlowerOrderDeliveryDAO.selectById(pageComFlowerOrderListDTO.getDeliveryId());
+ ComShopFlowerOrderDeliveryVO comShopFlowerOrderDeliveryVO = new ComShopFlowerOrderDeliveryVO();
+ BeanUtils.copyProperties(comShopFlowerOrderDeliveryDO, comShopFlowerOrderDeliveryVO);
+
+ Long pointId = comShopFlowerOrderDeliveryDO.getPointId();
+ ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
+ ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+ BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO);
+ comShopFlowerOrderDeliveryVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
+ comShopFlowerOrderDeliveryNoListVO.setComShopFlowerOrderDeliveryVO(comShopFlowerOrderDeliveryVO);
+ comShopFlowerOrderDeliveryNoListVO.setPage(orderPageVOIPage);
+ return R.ok(comShopFlowerOrderDeliveryNoListVO);
+ }
+
}
--
Gitblit v1.7.1