admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/UserOtherMsgNotificationServiceImpl.java
@@ -1,22 +1,16 @@
package com.yeshi.fanli.service.impl.msg;
import java.math.BigDecimal;
import java.util.Date;
import javax.annotation.Resource;
import org.omg.CORBA.PERSIST_STORE;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dto.msg.MsgOtherCouponContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail.MsgTypeOtherTypeEnum;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail;
import com.yeshi.fanli.exception.msg.MsgOtherDetailException;
import com.yeshi.fanli.service.inter.msg.MsgOtherDetailService;
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.msg.MsgOtherCouponContentDTOFactory;
import com.yeshi.fanli.util.factory.msg.MsgOtherDetailFactory;
@Service
@@ -24,255 +18,64 @@
   @Resource
   private MsgOtherDetailService msgOtherDetailService;
   private Integer getLeftDay(UserSystemCoupon coupon) {
      if (coupon != null && coupon.getEndTime() != null) {
         int cha = TimeUtil.getDayDifferenceCount(new Date(), coupon.getEndTime());
         if (cha < 0)
            return 0;
         else
            return cha + 1;
      } else
         return null;
   }
   @Override
   public void welfareCouponGet(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponGet(getLeftDay(coupon),
            coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
   @Transactional(rollbackFor = Exception.class)
   private void saveMsgDetail(MsgOtherDetail detail) {
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "至少成功邀请1个队员后可激活"));
         msgOtherDetailService.addMsgOtherDetail(detail);
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void welfareCouponActive(UserSystemCoupon coupon, UserInfo worker) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponActive(getLeftDay(coupon),
            "成功邀请队员:" + worker.getNickName(), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "可在首页-免单商品-选择商品-使用"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void freeCouponWinMsg(Long uid, String name, String source, int num, String stateDesc, Date startTime, Date endTime) {
      saveMsgDetail(MsgOtherDetailFactory.freeCouponMsg(uid, name, source, num, stateDesc, startTime, endTime));
   }
   @Override
   public void welfareCouponUsing(UserSystemCoupon coupon, String orderId, BigDecimal money) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsing(orderId, money,
            coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "实付款-返利=0元购(免单)"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void freeCouponEndMsg(Long uid, String name, String source, int num, String stateDesc) {
      saveMsgDetail(MsgOtherDetailFactory.freeCouponMsg(uid, name, source, num, stateDesc, null, null));
   }
   @Override
   public void welfareCouponUsed(UserSystemCoupon coupon, String orderId) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsed(orderId,
            "实付款-返利=0元购(免单)", coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "参与其他活动可获得更多免单券"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void rewardCouponWinMsg(Long uid, String source, int num, String stateDesc, Date startTime, Date endTime) {
      saveMsgDetail(MsgOtherDetailFactory.rewardCouponMsg(uid, source, num, stateDesc, startTime, endTime));
   }
   @Override
   public void welfareCouponWillOutOfDate(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
            .createWelfareCouponWillOutOfDate(getLeftDay(coupon), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "至少成功邀请1个队员后可激活"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void rewardCouponEndMsg(Long uid, String source, int num, String stateDesc) {
      saveMsgDetail(MsgOtherDetailFactory.rewardCouponMsg(uid, source, num, stateDesc, null, null));
   }
   @Override
   public void welfareCouponAlreadyOutOfDate(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
            .createWelfareCouponAlreadyOutOfDate(coupon.getSource(),coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "参与其他活动可获得更多免单券"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void goldCoinSystemGiveMsg(Long uid, int num, int banlce) {
      saveMsgDetail(MsgOtherDetailFactory.goldCoinSystemGiveMsg(uid, num, banlce));
   }
   @Override
   public void welfareCouponDrawBack(UserSystemCoupon coupon, String orderId) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponDrawBack(getLeftDay(coupon),
            orderId, coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponWelfareMianDan, "退回后依然可在有效期内使用"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void goldCoinRewardInviteSucceedMsg(Long uid, int num, int banlce, boolean directFans) {
      saveMsgDetail(MsgOtherDetailFactory.goldCoinRewardInviteSucceedMsg(uid, num, banlce, directFans));
   }
   @Override
   public void freeSheetCouponGet(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createCouponGet(getLeftDay(coupon),
            coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "可在首页-免单商品-选择商品-使用"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void  goldCoinOrderSubsidyMsg(Long uid, int num, int banlce, boolean directFans) {
      saveMsgDetail(MsgOtherDetailFactory.goldCoinOrderSubsidyMsg(uid, num, banlce, directFans));
   }
   @Override
   public void freeSheetCouponUsing(UserSystemCoupon coupon, String orderId, BigDecimal money) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createCouponUsing(orderId, money,
            coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "实付款-返利=0元购(免单)"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   @Transactional(rollbackFor = Exception.class)
   public void goldCoinExChangeMsg(Long uid, int num, int banlce, String name, String exNum) {
      saveMsgDetail(MsgOtherDetailFactory.goldCoinExChangeMsg(uid, num, banlce, name, exNum));
   }
   @Override
   public void freeSheetCouponUsed(UserSystemCoupon coupon, String orderId) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponUsed(orderId,
            "实付款-返利=0元购(免单)", coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "参与其他活动可获得更多免单券"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void freeSheetCouponWillOutOfDate(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
            .createWelfareCouponWillOutOfDate(getLeftDay(coupon), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "至少成功邀请1个队员后可激活"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void freeSheetCouponAlreadyOutOfDate(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
            .createWelfareCouponAlreadyOutOfDate(coupon.getSource(),coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "参与其他活动可获得更多免单券"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void freeSheetCouponDrawBack(UserSystemCoupon coupon, String orderId) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createWelfareCouponDrawBack(getLeftDay(coupon),
            orderId, coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponMianDan, "退回后依然可在有效期内使用"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void rewardCouponGet(UserSystemCoupon coupon, int percent) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createRewardCouponGet(getLeftDay(coupon),
            coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "返利已到账后再奖励返利的" + percent + "%"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void rewardCouponUsed(UserSystemCoupon coupon, BigDecimal oldFanLiMoney, BigDecimal rewardMoney,
         String orderId) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createRewardCouponUsed(oldFanLiMoney,
            rewardMoney, orderId);
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "参与活动可获取更多奖励券"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void rewardCouponWillOutOfDate(UserSystemCoupon coupon, int percent) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory.createRewardCouponWillOutOfDate(
            getLeftDay(coupon), coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "返利已到账后再奖励返利的" + percent + "%"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void rewardCouponAlreadyOutOfDate(UserSystemCoupon coupon) {
      if (coupon == null || coupon.getUid() == null)
         return;
      MsgOtherCouponContentDTO dto = MsgOtherCouponContentDTOFactory
            .createRewardCouponAlreadyOutOfDate(coupon.getSource(), coupon.getStartTime(), coupon.getEndTime());
      try {
         msgOtherDetailService.addMsgOtherDetail(MsgOtherDetailFactory.createCouponMsg(coupon.getUid(),
               coupon.getId(), dto, MsgTypeOtherTypeEnum.couponReward, "参与活动可获取更多奖励券"));
      } catch (MsgOtherDetailException e) {
         e.printStackTrace();
      }
   }
}