yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/service/impl/tlj/UserTaoLiJinOriginServiceImpl.java
@@ -1,45 +1,23 @@
package com.yeshi.fanli.service.impl.tlj;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.DateUtil;
import com.yeshi.fanli.dao.mybatis.tlj.UserTaoLiJinOriginMapper;
import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO;
import com.yeshi.fanli.dto.msg.MsgOtherTaoLiJinContentDTO;
import com.yeshi.fanli.entity.bus.tlj.DeviceTaoLiJinRecord;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinGiveRecord;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin.TaoLiJinOriginEnum;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinRecord;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinReport;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.DeviceTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinReportService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.StringUtil;
@Service
public class UserTaoLiJinOriginServiceImpl implements UserTaoLiJinOriginService{
@@ -58,9 +36,6 @@
   
   @Resource
   private UserTaoLiJinDetailService userTaoLiJinDetailService;
   @Resource
   private DeviceTaoLiJinRecordService deviceTaoLiJinRecordService;
   
   @Resource
   private UserOtherMsgNotificationService userOtherMsgNotificationService;
@@ -99,561 +74,14 @@
   public UserTaoLiJinOrigin getRankByThisMonth(long uid, String type) {
      return userTaoLiJinOriginMapper.getRankByThisMonth(uid, type);
   }
   @Override
   public boolean hasRankHongBao(long uid) {
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
      if (userInfoExtra == null) {
         return false;
      }
      // 等级验证
      UserRank userRank = userInfoExtra.getUserRank();
      if (userRank == null || userRank.getId() <= 1) {
         return false;
      }
      // 是否已领取
      long countRan = userTaoLiJinOriginMapper.countRankByThisMonth(uid);
      if (countRan > 0) {
         return false;
      }
      return true;
   }
   @Override
   public void synchDeviceHongbao(long uid, String device) {
      // 是否已领取
      long count = userTaoLiJinOriginMapper.countByUidAndType(uid, TaoLiJinOriginEnum.newbiesWin.name());
      if (count > 0) {
         return;
      }
      // 设备是否已领取
      DeviceTaoLiJinRecord record = deviceTaoLiJinRecordService.getByDevice(device);
      if (record == null) {
         return;
      }
      try {
         addNewbiesWinMoney(uid);
      } catch (UserTaoLiJinOriginException e) {
         LogHelper.errorDetailInfo(e);
      }
   }
   @Override
   @Transactional
   public UserTaoLiJinOrigin addNewbiesWinMoney(Long uid) throws UserTaoLiJinOriginException{
      if (uid == null) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      String value = configTaoLiJinService.getValueByKey("hongbao_newbies",null);
      if (StringUtil.isNullOrEmpty(value)) {
         throw new UserTaoLiJinOriginException(1, "系统红包不存在");
      }
      BigDecimal money = new BigDecimal(value);
      // 是否可以自购
      boolean canSelfBuy = userInfoExtraService.isNewUser(uid);
      // 添加用户红包
      userMoneyExtraService.addTaoLiJin(uid, money, canSelfBuy);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, canSelfBuy?2:1, money, TaoLiJinOriginEnum.newbiesWin);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
      // 消息
      executor.execute(new Runnable() {
         @Override
         public void run() {
            try {
               String source = "";
               if(canSelfBuy) {
                  source = "新人红包";
               } else {
                  source = "分享红包";
               }
               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
               content.setState("红包增加");
               content.setSource(source);
               content.setMoney(money);
               userOtherMsgNotificationService.taoLiJinMsg(uid, "", content);
            } catch (Exception e) {
               LogHelper.errorDetailInfo(e);
            }
         }
      });
      return origin;
   }
   @Override
   @Transactional
   public UserTaoLiJinOrigin  addRankWinMoney(Long uid, UserRank userRank) throws UserTaoLiJinOriginException{
      if (uid == null || userRank == null) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      String key = "";
      if (userRank.getId() == 2) {
         key = "hongbao_rank_silver";
      } else if (userRank.getId() == 3) {
         key = "hongbao_rank_gold";
      } else if (userRank.getId() == 4) {
         key = "hongbao_rank_platinum";
      } else {
         throw new UserTaoLiJinOriginException(2, "用户等级不足");
      }
      String value = configTaoLiJinService.getValueByKey(key,null);
      if (StringUtil.isNullOrEmpty(value)) {
         throw new UserTaoLiJinOriginException(1, "系统红包不存在");
      }
      BigDecimal money = new BigDecimal(value);
      // 添加红包余额
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.rankWin);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
      // 消息
      executor.execute(new Runnable() {
         @Override
         public void run() {
            try {
               String beizhu = "上月账户等级" + userRank.getName();
               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
               content.setState("红包增加");
               content.setSource("账户等级福利");
               content.setMoney(money);
               userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
            } catch (Exception e) {
               LogHelper.errorDetailInfo(e);
            }
         }
      });
      return origin;
   }
   @Override
   @Transactional
   public UserTaoLiJinOrigin addInviteWinMoney(Long uid, String inviteName) throws UserTaoLiJinOriginException{
      if (uid == null || StringUtil.isNullOrEmpty(inviteName)) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      String value = configTaoLiJinService.getValueByKey("hongbao_invite",null);
      if (StringUtil.isNullOrEmpty(value)) {
         throw new UserTaoLiJinOriginException(1, "系统红包不存在");
      }
      BigDecimal money = new BigDecimal(value);
      // 添加用户红包
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.inviteWin);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
      // 消息
      executor.execute(new Runnable() {
         @Override
         public void run() {
            try {
               String beizhu = "成功邀请队员" + inviteName;
               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
               content.setState("红包增加");
               content.setSource("邀请队员奖励");
               content.setMoney(money);
               userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
            } catch (Exception e) {
               LogHelper.errorDetailInfo(e);
            }
         }
      });
      return origin;
   }
   @Override
   @Transactional
   public UserTaoLiJinOrigin addShareWinMoney(Long uid) throws UserTaoLiJinOriginException{
      if (uid == null) {
         throw new UserTaoLiJinOriginException(1, "用户未登录");
      }
      String value = configTaoLiJinService.getValueByKey("hongbao_share",null);
      if (StringUtil.isNullOrEmpty(value)) {
         throw new UserTaoLiJinOriginException(1, "系统红包不存在");
      }
      BigDecimal money = new BigDecimal(value);
      // 添加用户红包
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.shareWin);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
//      // 消息
//      executor.execute(new Runnable() {
//         @Override
//         public void run() {
//            try {
//               String beizhu = "近30天产生过分享(仅一次奖励)";
//               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
//               content.setState("红包增加");
//               content.setSource("分享订单奖励");
//               content.setMoney(money);
//               userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
//            } catch (Exception e) {
//               LogHelper.errorDetailInfo(e);
//            }
//         }
//      });
      return origin;
   }
   // 添加新增记录
   public UserTaoLiJinOrigin saveOrigin(Long uid, int type, BigDecimal money, TaoLiJinOriginEnum originEnum) {
      UserTaoLiJinOrigin taoLiJinOrigin = new UserTaoLiJinOrigin();
      taoLiJinOrigin.setUid(uid);
      taoLiJinOrigin.setType(type);
      taoLiJinOrigin.setOrigin(originEnum);
      taoLiJinOrigin.setMoney(money);
      taoLiJinOrigin.setMoneySurplus(money);
      taoLiJinOrigin.setCreateTime(new Date());
      taoLiJinOrigin.setUpdateTime(new Date());
      taoLiJinOrigin.setRemark(originEnum.getDesc());
      userTaoLiJinOriginMapper.insertSelective(taoLiJinOrigin);
      return taoLiJinOrigin;
   }
   @Override
   @Transactional
   public void  refundMoney(UserTaoLiJinReport report) throws UserTaoLiJinOriginException{
      if (report == null) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      String rightsId = report.getId();
      BigDecimal refundAmount = report.getRefundAmount();
      // 已退回的金额
      BigDecimal moneyOrigin = userTaoLiJinOriginMapper.countMoneyByOrigin(rightsId, TaoLiJinOriginEnum.refund.name());
      if (refundAmount.compareTo(moneyOrigin) < 1) {
         return;
      }
      // 查询用户信息
      UserTaoLiJinRecord record = userTaoLiJinRecordService.getByRightsId(rightsId);
      if (record == null) {
         return;
      }
      Long uid = record.getUid();
      // 计算本次退回的金额
      BigDecimal money = MoneyBigDecimalUtil.sub(refundAmount, moneyOrigin);
      // 添加用户红包
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin taoLiJinOrigin = new UserTaoLiJinOrigin();
      taoLiJinOrigin.setUid(uid);
      taoLiJinOrigin.setType(1);
      taoLiJinOrigin.setRightsId(rightsId);
      taoLiJinOrigin.setMoney(money);
      taoLiJinOrigin.setMoneySurplus(money);
      taoLiJinOrigin.setOrigin(TaoLiJinOriginEnum.refund);
      taoLiJinOrigin.setRemark(TaoLiJinOriginEnum.refund.getDesc());
      taoLiJinOrigin.setCreateTime(new Date());
      taoLiJinOrigin.setUpdateTime(new Date());
      userTaoLiJinOriginMapper.insertSelective(taoLiJinOrigin);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(taoLiJinOrigin);
      // 消息
      executor.execute(new Runnable() {
         @Override
         public void run() {
            try {
               String beizhu = "共创建:" + record.getTotalNum() + "个,已领取"+report.getWinNum()+"个,剩余"+report.getRefundNum()+ "个退回";
               SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd hh.mm");
               String time = sd.format(record.getCreateTime());
               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
               content.setState("红包退回");
               content.setSource(time + " 创建的分享记录");
               content.setMoney(money);
               userOtherMsgNotificationService.taoLiJinMsg(uid, beizhu, content);
            } catch (Exception e) {
               LogHelper.errorDetailInfo(e);
            }
         }
      });
   }
   @Override
   public void overdueHongBao(Long uid) {
      if (uid == null) {
         return;
      }
      // 15天前过期- 非等级红包
      try {
         Date date = DateUtil.reduceDay(14, new Date());
         List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJin(uid, date);
         executeOverdueHongBao(uid, date, list);
      } catch (ParseException e) {
         e.printStackTrace();
      }
      // 30天前过期 - 等级红包
      try {
         Date date = DateUtil.reduceDay(29, new Date());
         List<UserTaoLiJinOrigin> list = userTaoLiJinOriginMapper.getOverdueTaoLiJinByRank(uid, date);
         executeOverdueHongBao(uid, date, list);
      } catch (ParseException e) {
         e.printStackTrace();
      }
   }
   public void executeOverdueHongBao(Long uid, Date date, List<UserTaoLiJinOrigin> list) {
      if (list == null || list.size() == 0) {
         return;
      }
      BigDecimal total = new BigDecimal(0);
      for (UserTaoLiJinOrigin userTaoLiJinOrigin : list) {
         SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
         String time = sd.format(userTaoLiJinOrigin.getCreateTime());
         BigDecimal moneySurplus = userTaoLiJinOrigin.getMoneySurplus();
         total = MoneyBigDecimalUtil.add(total, moneySurplus);
         String rightsId = null;
         boolean refund = false;
         TaoLiJinOriginEnum originEnum = userTaoLiJinOrigin.getOrigin();
         if (TaoLiJinOriginEnum.refund.equals(originEnum)) {
            refund = true;
            rightsId = userTaoLiJinOrigin.getRightsId();
         }
         UserTaoLiJinOrigin origin = new UserTaoLiJinOrigin();
         origin.setId(userTaoLiJinOrigin.getId());
         origin.setMoneySurplus(new BigDecimal(0));
         origin.setUpdateTime(new Date());
         userTaoLiJinOriginMapper.updateByPrimaryKeySelective(origin);
         if (refund) {
            UserTaoLiJinReport report = userTaoLiJinReportService.selectByPrimaryKey(rightsId);
            Date shareTime = null;
            if (report == null) {
               shareTime = date;
            } else {
               shareTime = report.getCreateTime();
            }
            // 消息
            MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
            content.setState("红包收回");
            content.setSource("于[" + sd.format(shareTime) + "]创建的分享未被领取部分");
            content.setTimeDesc("退回于" + time);
            content.setMoney(moneySurplus);
            content.setReason("本笔退回推广红包从退回日起至今并未产生分享记录");
            content.setResult("长期未使用收回");
            userOtherMsgNotificationService.taoLiJinMsg(uid, "如有疑问请联系人工客服", content);
         } else {
            // 消息
            MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
            content.setState("红包收回");
            content.setSource(originEnum.getDesc());
            content.setTimeDesc("获得于" + time);
            content.setMoney(moneySurplus);
            content.setReason("本笔推广红包从获得日起至今并未产生分享记录");
            content.setResult("长期未使用收回");
            userOtherMsgNotificationService.taoLiJinMsg(uid, "如有疑问请联系人工客服", content);
         }
      }
      // 用户剩余淘礼金
      UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
      if (userMoneyExtra == null || userMoneyExtra.getTlj() == null) {
         return;
      }
      UserMoneyExtra updateExtra = new UserMoneyExtra();
      updateExtra.setUid(uid);
      BigDecimal tljSelf = userMoneyExtra.getTljSelf();
      if (tljSelf != null && tljSelf.compareTo(new BigDecimal(0)) > 0) { // 剩余淘礼金-- 自购
         BigDecimal sub = MoneyBigDecimalUtil.sub(tljSelf, total);
         if (sub.compareTo(new BigDecimal(0)) > 0) {
            updateExtra.setTljSelf(sub);
         } else {
            updateExtra.setTljSelf(new BigDecimal(0));
         }
      }
      updateExtra.setTlj(MoneyBigDecimalUtil.sub(userMoneyExtra.getTlj(), total));
      updateExtra.setUpdateTime(new Date());
      userMoneyExtraService.updateByPrimaryKeySelective(updateExtra);
      // 插入明细
      UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
      detail.setUid(uid);
      detail.setMoney(new BigDecimal("-" + total.toString()));
      detail.setTitle(TaoLiJinDetailTypeEnum.sendBack.getDesc());
      detail.setType(TaoLiJinDetailTypeEnum.sendBack);
      detail.setCreateTime(new Date());
      userTaoLiJinDetailService.insertSelective(detail);
   }
   
   @Override
   public List<UserTaoLiJinOrigin> getSurplusLiJin(long uid) {
      return userTaoLiJinOriginMapper.getSurplusLiJin(uid);
   }
   @Override
   @Transactional
   public void addInviteWinMoneyByHand(Long uid, String inviteName, Date date) throws UserTaoLiJinOriginException {
      if (uid == null || StringUtil.isNullOrEmpty(inviteName)) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      String value = configTaoLiJinService.getValueByKey("hongbao_invite",null);
      if (StringUtil.isNullOrEmpty(value)) {
         throw new UserTaoLiJinOriginException(1, "系统红包不存在");
      }
      BigDecimal money = new BigDecimal(value);
      // 添加用户红包
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin taoLiJinOrigin = new UserTaoLiJinOrigin();
      taoLiJinOrigin.setUid(uid);
      taoLiJinOrigin.setType(1);
      taoLiJinOrigin.setOrigin(TaoLiJinOriginEnum.inviteWin);
      taoLiJinOrigin.setMoney(money);
      taoLiJinOrigin.setMoneySurplus(money);
      taoLiJinOrigin.setCreateTime(date);
      taoLiJinOrigin.setUpdateTime(date);
      taoLiJinOrigin.setRemark(TaoLiJinOriginEnum.inviteWin.getDesc());
      userTaoLiJinOriginMapper.insertSelective(taoLiJinOrigin);
      // 明细
      UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
      detail.setUid(uid);
      detail.setMoney(money);
      detail.setType(TaoLiJinDetailTypeEnum.add);
      detail.setTitle(TaoLiJinDetailTypeEnum.add.getDesc());
      detail.setDescInfo("来源:" + TaoLiJinOriginEnum.inviteWin.getDesc());
      detail.setCreateTime(date);
      userTaoLiJinDetailService.insertSelective(detail);
   }
   
   @Override
   @Transactional
   public void exchangeMoney(Long uid, BigDecimal money) throws UserTaoLiJinOriginException{
      if (uid == null || money == null) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      // 添加用户红包
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.exchange);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
   }
   @Override
   @Transactional
   public UserTaoLiJinOrigin  receiveFriendsGive(Long uid, BigDecimal money) throws UserTaoLiJinOriginException{
      if (uid == null || money == null) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      // 添加红包余额
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.friendsGive);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
      // 消息
      executor.execute(new Runnable() {
         @Override
         public void run() {
            try {
               MsgOtherTaoLiJinContentDTO content = new MsgOtherTaoLiJinContentDTO();
               content.setState("红包增加");
               content.setSource("好友赠送");
               content.setMoney(money);
               userOtherMsgNotificationService.taoLiJinMsg(uid, "", content);
            } catch (Exception e) {
               LogHelper.errorDetailInfo(e);
            }
         }
      });
      return origin;
   }
   @Override
   @Transactional
   public void  giveSendBack(Long uid, UserTaoLiJinGiveRecord record) throws UserTaoLiJinOriginException{
      if (uid == null || record == null) {
         throw new UserTaoLiJinOriginException(1, "参数不能为空");
      }
      BigDecimal money = record.getAmount();
      // 添加红包余额
      userMoneyExtraService.addTaoLiJin(uid, money, false);
      // 添加新增记录
      UserTaoLiJinOrigin origin = saveOrigin(uid, 1, money, TaoLiJinOriginEnum.giveSendBack);
      // 红包明细
      userTaoLiJinDetailService.createAddDetail(origin);
      UserTaoLiJinDetail detail = new UserTaoLiJinDetail();
      detail.setUid(uid);
      detail.setMoney(money);
      detail.setType(TaoLiJinDetailTypeEnum.giveBack);
      detail.setTitle(TaoLiJinDetailTypeEnum.giveBack.getDesc());
      detail.setCreateTime(new Date());
      userTaoLiJinDetailService.insertSelective(detail);
      executor.execute(new Runnable() {
         @Override
         public void run() {
            // 退回消息
            String beiZhu = "请到我的-推广红包查看";
            SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd HH:mm");
            MsgOtherGiveContentDTO msgOther = new MsgOtherGiveContentDTO();
            msgOther.setType(MsgOtherGiveContentDTO.TYEP_TLJ);
            msgOther.setTitle("赠送推广红包退回");
            msgOther.setGiveType("你赠送的"+ money + "推广红包未被成功领取");
            msgOther.setGiveTime(sd.format(record.getGiveTime()));
            msgOther.setReturnTime(sd.format(new Date()));
            userOtherMsgNotificationService.tokenGiveMsg(record.getGiveUid(), beiZhu, msgOther);
         }
      });
   }
   
}