admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/money/msg/UserMoneyMsgNotificationServiceImpl.java
@@ -1,301 +1,285 @@
package com.yeshi.fanli.service.impl.money.msg;
import java.math.BigDecimal;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.push.PushContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
import com.yeshi.fanli.entity.bus.user.Extract;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.config.push.PushMsgFactory;
import com.yeshi.fanli.exception.msg.MsgMoneyDetailException;
import com.yeshi.fanli.exception.push.PushException;
import com.yeshi.fanli.service.inter.money.msg.MsgMoneyDetailService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.msg.MsgExtraService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.factory.msg.MsgMoneyDetailFactory;
@Service
public class UserMoneyMsgNotificationServiceImpl implements UserMoneyMsgNotificationService {
   @Resource
   private MsgMoneyDetailService msgMoneyDetailService;
   @Resource
   private PushService pushService;
   @Resource
   private MsgExtraService msgExtraService;
   @Override
   public void extractApplay(Extract extract) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createExtractMsg("人工审核中", extract.getUserInfo().getId(),
            extract, null, null);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void extractFail(Extract extract, String reason) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createExtractMsg("提现失败", extract.getUserInfo().getId(),
            extract, reason, null);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createmoneyExtractFail(new Date(extract.getExtractTime()),
            extract.getMoney(), extract.getAccount());
      try {
         pushService.pushZNX(extract.getUserInfo().getId(), dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void extractSuccess(Extract extract, String alipayNo) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createExtractMsg("提现成功", extract.getUserInfo().getId(),
            extract, null, alipayNo);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createMoneyExtractSuccess(new Date(extract.getExtractTime()),
            extract.getMoney(), extract.getAccount());
      try {
         pushService.pushZNX(extract.getUserInfo().getId(), dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void alipayAccountValid(AlipayAccountValidNormalHistory history, String limitDay, boolean change) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createAlipayAccountValidMsg(history, history.getUid(),
            Constant.alipayConfig.getAccountName(), new BigDecimal("0.1"), limitDay, change);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createAlipayAccountValid(history.getAccount(), new BigDecimal("0.1"));
      try {
         pushService.pushZNX(history.getUid(), dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void alipayAccountValidFail(AlipayAccountValidNormalHistory history, int limitDay, boolean change) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createAlipayAccountValidFail(history, history.getUid(),
            Constant.systemCommonConfig.getProjectChineseName(), new BigDecimal("0.1"), limitDay, change);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void fanliOrderReceived(Long uid, String orderId, int orderType, int goodsCount, BigDecimal money,
         BigDecimal balance, Date downTime) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.fanLiOrderReceivedMsg(money, balance, orderId, orderType, goodsCount,
            uid, downTime, false);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createMoneyFanliRecieved(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 rewardCounponReceived(Long uid, String orderId, int orderType, int goodsCount, BigDecimal money,
         BigDecimal balance, Date downTime) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.fanLiOrderReceivedMsg(money, balance, orderId, orderType, goodsCount,
            uid, downTime, true);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createMoneyFanliRecieved(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 fanliOrderWeiQuan(Long uid, String orderId, int orderType, BigDecimal money, BigDecimal fanliMoney,
         int goodsCount, Date downTime) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createOrderWeiQuanMsg(uid, orderId, orderType, money, fanliMoney,
            goodsCount, downTime, Constant.TYPE_REBATE);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      // TODO 需要传入是否部分维权
      PushContentDTO dto = PushMsgFactory.createMoneyOrderFanLiWeiquan(orderType, orderId, false, money);
      try {
         pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void shareOrderReceived(Long uid, int orderType, int orderCount, int goodsCount, BigDecimal money,
         BigDecimal balance, String orderId, Date downTime) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.shareOrderReceivedMsg(money, balance, orderType, uid);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createMoneyShareRecieved(orderType, money);
      try {
         pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void shareOrderWeiQuan(Long uid, String orderId, int orderType, BigDecimal money, BigDecimal fanliMoney,
         int goodsCount, Date downTime) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createOrderWeiQuanMsg(uid, orderId, orderType, money, fanliMoney,
            goodsCount, downTime, Constant.TYPE_SHAER);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
      PushContentDTO dto = PushMsgFactory.createMoneyOrderShareOrInviteWeiquan(orderType, orderId, false, money);
      try {
         pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
      } catch (NumberFormatException e) {
         e.printStackTrace();
      } catch (PushException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void systemEqualize(Long uid, String reason, BigDecimal money, BigDecimal balance) {
//      MsgMoneyDetail detail = MsgMoneyDetailFactory.createSystemEqualizeMsg(uid, reason, money, balance, null);
//      try {
//         msgMoneyDetailService.addMsgMoneyDetail(detail);
//      } catch (MsgMoneyDetailException e) {
//         e.printStackTrace();
//      }
//
//      PushContentDTO dto = PushMsgFactory.createMoneySystemCompensate(reason, money);
//      try {
//         pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null);
//      } catch (NumberFormatException e) {
//         e.printStackTrace();
//      } catch (PushException e) {
//         e.printStackTrace();
//      }
   }
   @Override
   public void redPackMsg(Long uid, MsgTypeMoneyTypeEnum type, String content, String beiZhu) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createRedPackMsg(uid, type, content, beiZhu);
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void teamRedPackRewardMsg(Long uid, MsgTypeMoneyTypeEnum type, BigDecimal money, String stateDesc,
         String content) {
      MsgMoneyDetail detail = new MsgMoneyDetail();
      detail.setRead(false);
      detail.setMoney(money);
      detail.setMsgType(type);
      detail.setContent(content);
      detail.setStateDesc(stateDesc);
      detail.setUser(new UserInfo(uid));
      detail.setBeiZhu("系统已下发到“我的-红包”中");
      detail.setCreateTime(new Date());
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void teamReceive(Long uid, BigDecimal money, BigDecimal balance, Date receivedDate) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createTeamReceivedMsg(uid, money, balance, receivedDate, "团队收益");
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
   }
   @Override
   public void teamDividend(Long uid, BigDecimal money, BigDecimal balance, Date receivedDate) {
      MsgMoneyDetail detail = MsgMoneyDetailFactory.createTeamReceivedMsg(uid, money, balance, receivedDate, "团队分红");
      try {
         msgMoneyDetailService.addMsgMoneyDetail(detail);
      } catch (MsgMoneyDetailException e) {
         e.printStackTrace();
      }
   }
}
package com.yeshi.fanli.service.impl.money.msg;
import java.math.BigDecimal;
import java.util.Date;
import javax.annotation.Resource;
import com.yeshi.fanli.entity.SystemEnum;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dto.push.PushContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
import com.yeshi.fanli.entity.bus.user.AlipayAccountValidNormalHistory;
import com.yeshi.fanli.entity.bus.user.Extract;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.config.push.PushMsgFactory;
import com.yeshi.fanli.exception.msg.MsgMoneyDetailException;
import com.yeshi.fanli.exception.push.PushException;
import com.yeshi.fanli.service.inter.money.msg.MsgMoneyDetailService;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
import com.yeshi.fanli.service.inter.msg.MsgExtraService;
import com.yeshi.fanli.service.inter.push.PushService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.factory.msg.MsgMoneyDetailFactory;
@Service
public class UserMoneyMsgNotificationServiceImpl implements UserMoneyMsgNotificationService {
    @Resource
    private MsgMoneyDetailService msgMoneyDetailService;
    @Resource
    private PushService pushService;
    @Resource
    private MsgExtraService msgExtraService;
    @Resource
    private UserInfoService userInfoService;
    @Override
    public void extractApplay(Extract extract) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createExtractMsg("人工审核中", extract.getUserInfo().getId(), extract,
                null, null, "审核将会在24小时内完成");
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void extractFail(Extract extract, String reason) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createExtractMsg("提现失败", extract.getUserInfo().getId(), extract,
                reason, null, "如有疑问请联系人工客服");
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void extractSuccess(Extract extract, String alipayNo) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createExtractMsg("提现成功", extract.getUserInfo().getId(), extract,
                null, alipayNo, "如有疑问请联系人工客服");
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
        SystemEnum system = userInfoService.getUserSystem(extract.getUserInfo().getId());
        PushContentDTO dto = PushMsgFactory.createMoneyExtractSuccess(new Date(extract.getExtractTime()),
                extract.getMoney(), extract.getAccount());
        try {
            pushService.pushZNX(extract.getUserInfo().getId(), dto.getTitle(), dto.getContent(), null, null,system);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (PushException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void alipayAccountValid(AlipayAccountValidNormalHistory history, String limitDay, boolean change) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createAlipayAccountValidMsg(history, history.getUid(),
                Constant.alipayConfig.getAccountName(), new BigDecimal("0.1"), limitDay, change);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void alipayAccountValidFail(AlipayAccountValidNormalHistory history, int limitDay, boolean change) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createAlipayAccountValidFail(history, history.getUid(),
                Constant.systemCommonConfig.getProjectChineseName(), new BigDecimal("0.1"), limitDay, change);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void fanliOrderReceived(Long uid, String orderId, int orderType, int goodsCount, BigDecimal money,
                                   BigDecimal balance, Date downTime) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.fanLiOrderReceivedMsg(money, balance, orderId, orderType,
                goodsCount, uid, downTime, false);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
        SystemEnum system = userInfoService.getUserSystem(uid);
        PushContentDTO dto = PushMsgFactory.createMoneyFanliRecieved(orderType, orderId, money);
        try {
            pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null,system);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (PushException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void rewardCounponReceived(Long uid, String orderId, int orderType, int goodsCount, BigDecimal money,
                                      BigDecimal balance, Date downTime) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.fanLiOrderReceivedMsg(money, balance, orderId, orderType,
                goodsCount, uid, downTime, true);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
        SystemEnum system = userInfoService.getUserSystem(uid);
        PushContentDTO dto = PushMsgFactory.createMoneyFanliRecieved(orderType, orderId, money);
        try {
            pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null,system);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (PushException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void fanliOrderWeiQuan(Long uid, String orderId, int orderType, BigDecimal money, BigDecimal fanliMoney,
                                  int goodsCount, Date downTime) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createOrderWeiQuanMsg(uid, orderId, orderType, money, fanliMoney,
                goodsCount, downTime, Constant.TYPE_REBATE);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void shareOrderReceived(Long uid, int orderType, BigDecimal money, BigDecimal balance, Date receivedDate) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.shareOrderReceivedMsg(money, balance, orderType, uid,
                receivedDate);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
        SystemEnum system = userInfoService.getUserSystem(uid);
        PushContentDTO dto = PushMsgFactory.createMoneyShareRecieved(orderType, money);
        try {
            pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null,system);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (PushException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void shareOrderWeiQuan(Long uid, String orderId, int orderType, BigDecimal money, BigDecimal fanliMoney,
                                  int goodsCount, Date downTime) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createOrderWeiQuanMsg(uid, orderId, orderType, money, fanliMoney,
                goodsCount, downTime, Constant.TYPE_SHAER);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void systemEqualize(Long uid, String reason, BigDecimal money, BigDecimal balance) {
        // MsgMoneyDetail detail =
        // MsgMoneyDetailFactory.createSystemEqualizeMsg(uid, reason, money,
        // balance, null);
        // try {
        // msgMoneyDetailService.addMsgMoneyDetail(detail);
        // } catch (MsgMoneyDetailException e) {
        // e.printStackTrace();
        // }
        //
        // PushContentDTO dto =
        // PushMsgFactory.createMoneySystemCompensate(reason, money);
        // try {
        // pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null,
        // null);
        // } catch (NumberFormatException e) {
        // e.printStackTrace();
        // } catch (PushException e) {
        // e.printStackTrace();
        // }
    }
    @Override
    public void redPackMsg(Long uid, MsgTypeMoneyTypeEnum type, String content, String beiZhu) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createRedPackMsg(uid, type, content, beiZhu);
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void teamRedPackRewardMsg(Long uid, MsgTypeMoneyTypeEnum type, BigDecimal money, String stateDesc,
                                     String content) {
        MsgMoneyDetail detail = new MsgMoneyDetail();
        detail.setRead(false);
        detail.setMoney(money);
        detail.setMsgType(type);
        detail.setContent(content);
        detail.setStateDesc(stateDesc);
        detail.setUser(new UserInfo(uid));
        detail.setBeiZhu("系统已下发到“我的-红包”中");
        detail.setCreateTime(new Date());
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void teamRewardReceive(Long uid, BigDecimal money, BigDecimal balance, Date receivedDate) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createTeamReceivedMsg(uid, money, balance, receivedDate, "团队奖金");
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
    }
    @Override
    public void teamDividend(Long uid, BigDecimal money, BigDecimal balance, Date receivedDate) {
        MsgMoneyDetail detail = MsgMoneyDetailFactory.createTeamReceivedMsg(uid, money, balance, receivedDate, "团队分红");
        try {
            msgMoneyDetailService.addMsgMoneyDetail(detail);
        } catch (MsgMoneyDetailException e) {
            e.printStackTrace();
        }
        SystemEnum system = userInfoService.getUserSystem(uid);
        // 推送消息
        PushContentDTO dto = PushMsgFactory.createMoneyTeamDividents(money);
        try {
            pushService.pushZNX(uid, dto.getTitle(), dto.getContent(), null, null,system);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        } catch (PushException e) {
            e.printStackTrace();
        }
    }
}