admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/util/factory/msg/MsgInviteDetailFactory.java
@@ -1,148 +1,127 @@
package com.yeshi.fanli.util.factory.msg;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.google.gson.Gson;
import com.yeshi.fanli.dto.msg.MsgInviteContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail;
import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail.MsgTypeInviteTypeEnum;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.msg.CommonMsgItemVO;
import com.yeshi.fanli.vo.msg.CommonMsgItemVOFactory;
public class MsgInviteDetailFactory {
   /**
    * 邀请成功
    *
    * @param threeSale
    * 直接粉丝邀请提醒
    * @param uid
    * @param nickName
    * @param portrait
    * @param time
    * @return
    */
   public static MsgInviteDetail createInviteSuccess(ThreeSale threeSale, Long uid, String beiZhu) {
      if (threeSale == null || uid == null)
   public static MsgInviteDetail directInviteSuccess(Long uid, String nickName, String portrait, Date time) {
      if (nickName == null || uid == null || portrait == null || time == null)
         return null;
      MsgInviteDetail detail = new MsgInviteDetail();
      if (StringUtil.isNullOrEmpty(beiZhu))
         detail.setBeiZhu("无");
      else
         detail.setBeiZhu(beiZhu);
      detail.setCreateTime(new Date());
      detail.setDesc("恭喜你,成功邀请一个队员");
      detail.setInviteUser(threeSale);
      detail.setMsgType(MsgTypeInviteTypeEnum.invite);
      detail.setRead(false);
      detail.setUser(new UserInfo(uid));
      return detail;
   }
   /**
    *   邀请成功
    *
    * @param threeSale
    * @param uid
    * @return
    */
   public static MsgInviteDetail createInviteSuccess2_0_2(Long uid, ThreeSale threeSale) {
      if (threeSale == null || uid == null)
         return null;
      MsgInviteContentDTO content = new MsgInviteContentDTO();
      content.setMode("必要条件+选择条件(三选一) ");
      content.setCode("队员绑定电话号码+授权淘宝 ");
      content.setState("成功邀请一个队员,队员熟练使用App还可获得红包 ");
      content.setInviter("1.产生累计≥200金币/2.任意订单/3.成功邀请一个队员");
      List<CommonMsgItemVO> listMsg = new ArrayList<>();
      List<ClientTextStyleVO> contentList = new ArrayList<>();
      contentList.add(new ClientTextStyleVO("",ClientTextStyleVO.COLOR_CONTENT, portrait));
      contentList.add(new ClientTextStyleVO("&" + nickName, ClientTextStyleVO.COLOR_CONTENT));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("粉丝信息", ClientTextStyleVO.COLOR_TITLE),contentList));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("粉丝类别", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO("直接粉丝", ClientTextStyleVO.COLOR_CONTENT)));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("加入时间", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO("无", ClientTextStyleVO.COLOR_CONTENT)));
      
      MsgInviteDetail detail = new MsgInviteDetail();
      detail.setBeiZhu("满足获得红包条件后系统将自动下发到“我的-红包”中");
      detail.setInviteUser(threeSale);
      detail.setCreateTime(new Date());
      detail.setUpdateTime(new Date());
      detail.setDesc(new Gson().toJson(content));
      detail.setMsgType(MsgTypeInviteTypeEnum.inviteNew);
      detail.setMsgType(MsgTypeInviteTypeEnum.inviteSucceed);
      detail.setRead(false);
      detail.setUser(new UserInfo(uid));
      detail.setExtraInfo(new Gson().toJson(listMsg));
      return detail;
   }
   
   /**
    * 扫描邀请二维码成功,但是未登录
    *
    * @param threeSale
    * 间接邀请
    * @param uid
    * @param inviteName
    * @param nickName
    * @param portrait
    * @param time
    * @return
    */
   public static MsgInviteDetail createInviteScanSuccess(ThreeSale threeSale, Long uid, String beiZhu) {
      if (threeSale == null || uid == null)
   public static MsgInviteDetail indirectInviteSuccess(Long uid, String inviteName, String nickName, String portrait, Date time) {
      if (nickName == null || uid == null || portrait == null || time == null)
         return null;
      MsgInviteDetail detail = new MsgInviteDetail();
      if (StringUtil.isNullOrEmpty(beiZhu))
         detail.setBeiZhu("无");
      else
         detail.setBeiZhu(beiZhu);
      detail.setCreateTime(new Date());
      detail.setDesc("恭喜你,有新队员加入你的队列,若对方60天内未激活将会与你脱离邀请关系");
      detail.setInviteUser(threeSale);
      detail.setMsgType(MsgTypeInviteTypeEnum.invite);
      detail.setRead(false);
      detail.setUser(new UserInfo(uid));
      return detail;
   }
   /**
    * 邀请失败
    *
    * @param threeSale
    * @param uid
    * @return
    */
   public static MsgInviteDetail createInviteFail(ThreeSale threeSale, Long uid, String beiZhu) {
      if (threeSale == null || uid == null)
         return null;
      MsgInviteDetail detail = new MsgInviteDetail();
      if (StringUtil.isNullOrEmpty(beiZhu))
         detail.setBeiZhu("无");
      else
         detail.setBeiZhu(beiZhu);
      detail.setCreateTime(new Date());
      detail.setDesc("抱歉,该队员因60天内未激活,已脱离了你的队列,可以试着重新邀请");
      detail.setInviteUser(threeSale);
      detail.setMsgType(MsgTypeInviteTypeEnum.invite);
      detail.setRead(false);
      detail.setUser(new UserInfo(uid));
      return detail;
   }
   /**
    *  领取信息激活邀请关系
    *
    * @param threeSale
    * @param uid
    * @return
    */
   public static MsgInviteDetail receiveGift(Long uid, String beiZhu, MsgInviteContentDTO content) {
      if (content == null || uid == null)
         return null;
      MsgInviteDetail detail = new MsgInviteDetail();
      if (StringUtil.isNullOrEmpty(beiZhu))
         detail.setBeiZhu("无");
      else
         detail.setBeiZhu(beiZhu);
      List<CommonMsgItemVO> listMsg = new ArrayList<>();
      List<ClientTextStyleVO> contentList = new ArrayList<>();
      contentList.add(new ClientTextStyleVO("",ClientTextStyleVO.COLOR_CONTENT, portrait));
      contentList.add(new ClientTextStyleVO("&" + nickName, ClientTextStyleVO.COLOR_CONTENT));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("粉丝信息", ClientTextStyleVO.COLOR_TITLE),contentList));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("粉丝类别", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO("间接粉丝", ClientTextStyleVO.COLOR_CONTENT)));
      List<ClientTextStyleVO> contentList2 = new ArrayList<>();
      contentList2.add(new ClientTextStyleVO("由直接粉丝", ClientTextStyleVO.COLOR_CONTENT));
      contentList2.add(new ClientTextStyleVO(inviteName,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
      contentList2.add(new ClientTextStyleVO("邀请", ClientTextStyleVO.COLOR_CONTENT));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("邀请人", ClientTextStyleVO.COLOR_TITLE),contentList2));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("加入时间", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO("无", ClientTextStyleVO.COLOR_CONTENT)));
      
      MsgInviteDetail detail = new MsgInviteDetail();
      detail.setCreateTime(new Date());
      detail.setUpdateTime(new Date());
      detail.setDesc(new Gson().toJson(content));
      detail.setMsgType(MsgTypeInviteTypeEnum.receiveGift);
      detail.setMsgType(MsgTypeInviteTypeEnum.inviteSucceed);
      detail.setRead(false);
      detail.setUser(new UserInfo(uid));
      detail.setExtraInfo(new Gson().toJson(listMsg));
      return detail;
   }
   /**
    * 粉丝升级
    * @param uid
    * @param rankName
    * @param nickName
    * @param item
    * @param time
    * @return
    */
   public static MsgInviteDetail fansUpgrade(Long uid, String rankName, String nickName, String item, Date time) {
      if (nickName == null || uid == null || item == null || time == null)
         return null;
      List<CommonMsgItemVO> listMsg = new ArrayList<>();
      List<ClientTextStyleVO> contentList = new ArrayList<>();
      contentList.add(new ClientTextStyleVO("恭喜你!你的直接粉丝:", ClientTextStyleVO.COLOR_CONTENT));
      contentList.add(new ClientTextStyleVO(nickName ,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
      contentList.add(new ClientTextStyleVO("已升级为", ClientTextStyleVO.COLOR_CONTENT));
      contentList.add(new ClientTextStyleVO(rankName, ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("升级说明", ClientTextStyleVO.COLOR_TITLE),contentList));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("升级时间", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("升级方式", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO(String.format("满足%s条件后完成的升级", item), ClientTextStyleVO.COLOR_CONTENT)));
      listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
            new ClientTextStyleVO("如有疑问请联系人工客服", ClientTextStyleVO.COLOR_CONTENT)));
      MsgInviteDetail detail = new MsgInviteDetail();
      detail.setCreateTime(new Date());
      detail.setMsgType(MsgTypeInviteTypeEnum.fansUpgrade);
      detail.setRead(false);
      detail.setUser(new UserInfo(uid));
      detail.setExtraInfo(new Gson().toJson(listMsg));
      return detail;
   }
}