admin
2020-04-21 0b57cfd62e842b309d03467b96a331c673ecad7c
fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/UserOrderMsgNotificationServiceImpl.java
@@ -6,6 +6,7 @@
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dto.push.PushContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
@@ -15,6 +16,7 @@
import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
import com.yeshi.fanli.service.inter.order.msg.UserOrderMsgNotificationService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.factory.msg.MsgOrderDetailFactory;
@Service
@@ -25,20 +27,17 @@
   @Resource
   private PushService pushService;
   @Override
   public void orderFanLiStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int goodsCount, int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createFanLiOrder(uid, orderId, orderType, goodsCount, orderState,
            payMoney, money, null);
      try {
         msgOrderDetailService.addMsgOrderDetail(detail,
               (payMoney == null || payMoney.compareTo(new BigDecimal(0)) <= 0) ? false : true);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
      if (payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0) {
         int goodsCount, int orderState, Date downTime) {
      // 是否通知
      boolean needNotify = (payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0) ? true : false;
      // 保存消息明细消息
      addOrderStatistics(uid, orderId, orderType, Constant.TYPE_REBATE, goodsCount, payMoney, money, downTime, null, needNotify);
      if (needNotify) {
         PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money);
         try {
            pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
@@ -50,33 +49,17 @@
      }
   }
   @Override
   public void orderFanLiStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createFanLiOrder(uid, orderId, orderType, 0, orderState, payMoney,
            money, null);
      // 暂时不推送
      try {
         msgOrderDetailService.updateMsgOrderDetail(detail, false);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void orderShareStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int goodsCount, int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createShareOrder(uid, orderId, orderType, goodsCount, orderState,
            payMoney, money, null);
      try {
         msgOrderDetailService.addMsgOrderDetail(detail,
               (payMoney == null || payMoney.compareTo(new BigDecimal(0)) <= 0) ? false : true);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
         int goodsCount, int orderState, Date downTime) {
      // 是否通知
      boolean needNotify = (payMoney != null && payMoney.compareTo(new BigDecimal(0)) > 0) ? true : false;
      // 保存消息明细消息
      addOrderStatistics(uid, orderId, orderType, Constant.TYPE_SHAER, goodsCount, payMoney, money, downTime, null, needNotify);
      PushContentDTO dto = PushMsgFactory.createFanLiOrderStatisticed(orderType, orderId, money);
      PushContentDTO dto = PushMsgFactory.createShareOrderStatisticed(orderType, orderId, money);
      try {
         pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
@@ -87,31 +70,24 @@
   }
   @Override
   public void orderShareStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createShareOrder(uid, orderId, orderType, 0, orderState, payMoney,
            money, null);
      // 暂时不推送
      // try {
      // msgOrderDetailService.updateMsgOrderDetail(detail, false);
      // } catch (MsgOrderDetailException e) {
      // e.printStackTrace();
      // }
   }
   @Override
   public void orderInviteStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int goodsCount, int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, goodsCount, orderState,
            payMoney, money, null);
      try {
         msgOrderDetailService.addMsgOrderDetail(detail,
               (money == null || money.compareTo(new BigDecimal(0)) <= 0) ? false : true);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
         BigDecimal subsidy, int goodsCount, int orderState, Date downTime) {
      BigDecimal totalMoney = new BigDecimal(0);
      if (money != null) {
         totalMoney = totalMoney.add(money);
      }
      if (subsidy != null) {
         totalMoney = totalMoney.add(subsidy);
      }
      if (totalMoney.compareTo(new BigDecimal(0)) <= 0) {
         return;
      }
      // 保存消息明细消息
      addOrderStatistics(uid, orderId, orderType, Constant.TYPE_INVITE, goodsCount, payMoney, totalMoney, downTime, null, true);
      PushContentDTO dto = PushMsgFactory.createInviteOrderStatisticed(orderType, orderId, money);
      try {
@@ -122,107 +98,53 @@
         e.printStackTrace();
      }
   }
   @Override
   public void orderInviteStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, 0, orderState,
            payMoney, money, null);
      // 暂时不推送
      // try {
      // msgOrderDetailService.updateMsgOrderDetail(detail, false);
      // } catch (MsgOrderDetailException e) {
      // e.printStackTrace();
      // }
   }
   private String getShortName(String name) {
      if (name != null && name.length() > 2) {
         return name.charAt(0) + "**" + name.charAt(name.length() - 1);
      }
      return name;
   }
   @Override
   public void orderShareFirstLevelStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney,
         BigDecimal money, int goodsCount, int orderState, String sourceUserName) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, goodsCount, orderState,
            payMoney, money, String.format("由一级队员【%s】分享", getShortName(sourceUserName)));
   /**
    * 创建订单被统计消息
    * @param uid
    * @param orderId 订单号
    * @param source  订单来源:淘宝、京东、天猫
    * @param type    订单类型:自购、分享、团队
    * @param goodsCount 商品数量
    * @param payMoney  付款金额
    * @param money     返利金额
    * @param downTime  下单时间
    * @param beiZhu 备注信息 - 非必填
    * @return
    */
   @Transactional(rollbackFor = Exception.class)
   private void addOrderStatistics(Long uid, String orderId, int source, int type, int goodsCount,
      BigDecimal payMoney, BigDecimal money, Date downTime, String beiZhu, boolean needNotify) {
      try {
         msgOrderDetailService.addMsgOrderDetail(detail,
               (money == null || money.compareTo(new BigDecimal(0)) <= 0) ? false : true);
         MsgOrderDetail detail = MsgOrderDetailFactory.createOrderStatistics(uid, orderId, source, type, goodsCount, payMoney, money, downTime, beiZhu);
         // 消息
         msgOrderDetailService.addMsgOrderDetail(detail, needNotify);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createInviteOrderStatisticed(orderType, orderId, money);
      try {
         pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void orderShareFirstLevelStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney,
         BigDecimal money, int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createInviteOrder(uid, orderId, orderType, 0, orderState,
            payMoney, money, null);
      // 暂时不推送
      // try {
      // msgOrderDetailService.updateMsgOrderDetail(detail, false);
      // } catch (MsgOrderDetailException e) {
      // e.printStackTrace();
      // }
   }
   @Override
   public void orderFoundSuccess(Long uid, String orderId, BigDecimal payMoney, int orderType, Date happendDate) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createFoundOrder(uid, orderId, true, payMoney, orderType,
            happendDate, "如有疑问请联系人工客服");
   @Transactional(rollbackFor = Exception.class)
   public void orderFoundSuccess(Long uid, String orderId, int orderSource, int type, BigDecimal payMoney, BigDecimal money, int goodsCount, Date submitTime) {
      try {
         MsgOrderDetail detail = MsgOrderDetailFactory.createOrderFoundSuccess(uid, orderId, orderSource, type, goodsCount, payMoney, money, submitTime, "");
         // 消息
         msgOrderDetailService.addMsgOrderDetail(detail, true);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void orderFoundFail(Long uid, String orderId, BigDecimal payMoney, int orderType, Date happendDate) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createFoundOrder(uid, orderId, false, payMoney, orderType,
            happendDate, "如有疑问请联系人工客服");
   public void orderFoundFail(Long uid, String orderId) {
      try {
         MsgOrderDetail detail = MsgOrderDetailFactory.createOrderFoundFail(uid, orderId, "");
         // 消息
         msgOrderDetailService.addMsgOrderDetail(detail, true);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void orderElmeStatistic(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createElmeOrder(uid, orderId, orderType, orderState, payMoney,
            money, null);
      try {
         msgOrderDetailService.addMsgOrderDetail(detail,
               (payMoney == null || payMoney.compareTo(new BigDecimal(0)) <= 0) ? false : true);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void orderElmeStateChanged(Long uid, String orderId, int orderType, BigDecimal payMoney, BigDecimal money,
         int orderState) {
      MsgOrderDetail detail = MsgOrderDetailFactory.createElmeOrder(uid, orderId, orderType, orderState, payMoney,
            money, null);
      // 暂时不推送
      try {
         msgOrderDetailService.updateMsgOrderDetail(detail, false);
      } catch (MsgOrderDetailException e) {
         e.printStackTrace();
      }