From ab2879bbcb846256cc182198b9c04e50fbc276c1 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 26 Jan 2021 14:15:42 +0800
Subject: [PATCH] 1、新增消息推送提醒 2、修改业绩计算bug

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |   67 ++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 19 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 21f8bde..2bc34e5 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1,5 +1,6 @@
 package com.matrix.system.hive.service.imp;
 
+import com.matrix.component.rabbitmq.RabiitMqTemplate;
 import com.matrix.core.constance.MatrixConstance;
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.pojo.PaginationVO;
@@ -27,8 +28,11 @@
 import com.matrix.system.hive.pojo.ShoppingCarItem;
 import com.matrix.system.hive.pojo.ShoppingCarItemsVo;
 import com.matrix.system.hive.service.*;
+import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
+import com.matrix.system.wechart.templateMsg.UniformMsgParam;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -108,6 +112,13 @@
     private SysInstoreInfoService sysInstoreInfoService;
 
 
+    @Value("${evn}")
+    private  String evn;
+
+    @Autowired
+    private RabiitMqTemplate rabiitMqTemplate;
+
+
     @Override
     public int add(SysOrder sysOrder) {
         return sysOrderDao.insert(sysOrder);
@@ -167,6 +178,10 @@
     @Override
     public SysOrder checkAndSaveOrder(SysOrder sysOrder) {
         // 收款改变订单状态
+        SysOrder source = null;
+        if (sysOrder.getId() != null) {
+            source = sysOrderDao.selectById(sysOrder.getId());
+        }
 
         // 计算订单折扣金额,收款情况下 计算订单总额
         double zkTotal = 0.0;
@@ -203,8 +218,8 @@
         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
         sysOrder.setZkTotal(zkTotal);
         sysOrder.setStatu(orderStatus);
-        sysOrder.setStaffId(user.getSuId());
-        sysOrder.setCompanyId(user.getCompanyId());
+        sysOrder.setStaffId(source != null ? source.getStaffId() : user.getSuId());
+        sysOrder.setCompanyId(source != null ? source.getCompanyId() : user.getCompanyId());
 
         sysOrder.setPayTime(new Date());
         if(sysOrder.getId()==null){
@@ -221,11 +236,16 @@
 
         sysOrder.getItems().forEach(sysOrderItem -> {
             sysOrderItem.setOrderId(sysOrder.getId());
-            // 取负数
-            sysOrderItem.setCount(-sysOrderItem.getCount());
-            orderItemDao.insert(sysOrderItem);
-            // 调整回来
-            sysOrderItem.setCount(-sysOrderItem.getCount());
+            if (sysOrder.getStatu().equals(Dictionary.ORDER_STATU_TK)) {
+                // 取负数
+                sysOrderItem.setCount(-sysOrderItem.getCount());
+                orderItemDao.insert(sysOrderItem);
+                // 调整回来
+                sysOrderItem.setCount(-sysOrderItem.getCount());
+            } else {
+                orderItemDao.insert(sysOrderItem);
+            }
+
         });
 
         return sysOrder;
@@ -247,6 +267,12 @@
 
             order.setStatu(Dictionary.ORDER_STATU_YQX);
             order.setArrears(0D);
+
+            //发送微信公众号提醒
+            UniformMsgParam uniformMsgParam=new UniformMsgParam(order.getCompanyId(),UniformMsgParam.GZH_DDQX);
+            uniformMsgParam.put("orderId",order.getId());
+            rabiitMqTemplate.sendMsg(MQTaskRouting.SEND_UNIFORM_TEMPLATE_MSG+evn,uniformMsgParam.toJSONString());
+
             return sysOrderDao.update(order);
 
         } else {
@@ -342,8 +368,11 @@
             achieveNewService.removeByModel(achieveNew);
             // 取消订单
             order.setStatu(Dictionary.ORDER_STATU_YQX);
+
+
             return sysOrderDao.update(order);
         }
+
     }
 
 
@@ -428,7 +457,6 @@
         // 设置订单总价与折后价
         order.setTotal(total);
         order.setZkTotal(zkTotal);
-        order.setArrears(zkTotal);
         sysOrderDao.update(order);
         return i;
     }
@@ -565,8 +593,7 @@
             Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId());
             buyNum = (buyNum == null ? 0 : buyNum);
             if ((buyNum + carItem.getCount()) > maxNum) {
-
-                throw new GlobleException(shopGoods.getName() + "已超过最大销售数量,还剩【" + (maxNum - buyNum) + "】件");
+                throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
             }
             if ((buyNum + carItem.getCount()) == maxNum) {
                 if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
@@ -798,6 +825,8 @@
             }
 
             refundTotal += flow.getAmount().doubleValue();
+            flow.setShopId(sourceOrder.getShopId());
+            flow.setCompanyId(sourceOrder.getCompanyId());
             sysOrderFlowDao.insert(flow);
             i++;
         }
@@ -1126,11 +1155,11 @@
     public SysOrder updateAddCardMoney(CzXkVo czVo) {
         SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
 
-        SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER);
-        czVo.setVipId(vip.getId());
+//        SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER);
+//        czVo.setVipId(vip.getId());
 
         //更新会员会员卡金额
-        MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(vip.getId());
+        MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId());
         cardUser.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney()));
         cardUser.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney()));
         moneyCardUseDao.update(cardUser);
@@ -1161,6 +1190,7 @@
         order.setStaffId(user.getSuId());
         order.setIsCross(2 + "");
         order.setStatu(Dictionary.ORDER_STATU_YFK);
+        order.setCompanyId(user.getCompanyId());
         sysOrderDao.insert(order);
 
         SysOrderItem orderItem = new SysOrderItem();
@@ -1180,6 +1210,9 @@
         orderItem.setStatus(Dictionary.ORDER_STATU_YFK);
         orderItem.setAchaeveList(czVo.getAchaeveList());
         orderItemDao.insert(orderItem);
+        List<SysOrderItem> items = new ArrayList<>();
+        items.add(orderItem);
+        order.setItems(items);
 
 
         //设置卡项使用流水
@@ -1195,7 +1228,8 @@
         moneyCardUseFlow.setBalance(cardUser.getGiftMoney()+cardUser.getRealMoney());
         moneyCardUseFlowDao.insert(moneyCardUseFlow);
 
-
+        order.setFlows(czVo.getFlows());
+        changeOrderStatu(order);
         // 添加员工业绩
         achieveNewService.addAchaeveByOrder(order);
         return order;
@@ -1241,11 +1275,6 @@
     @Override
     public List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder) {
         return sysOrderDao.selectShopAchieveRanking(sysOrder);
-    }
-
-    @Override
-    public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) {
-        return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder);
     }
 
     @Transactional(rollbackFor = Exception.class)

--
Gitblit v1.9.1