yujian
2019-11-11 3ce9e928e082ff8abf697dba560cbfbb412e89f8
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
@@ -13,8 +13,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.aliyun.openservices.ons.api.Message;
import com.aliyun.openservices.ons.api.Producer;
import com.google.gson.Gson;
import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -30,7 +35,7 @@
import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.cmq.ThreeSaleCMQManager;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -71,6 +76,9 @@
   @Resource(name = "taskExecutor")
   private TaskExecutor executor;
   @Resource(name = "producer")
   private Producer producer;
   public UserInfo getBoss(final long uid) {
      return threeSaleMapper.selectBoss(uid);
@@ -185,8 +193,7 @@
               ts.setSucceedTime(System.currentTimeMillis());
               ts.setWorker(worker);
               threeSaleMapper.insertSelective(ts);
               ThreeSaleCMQManager.getInstance().addThreeSaleMsg(ts);
               userInviteMsgNotificationService.inviteSuccess(inviter.getId(), ts);
               inviteSuccess(inviter.getId(), worker.getId(), ts);
            } else {
               if (!list.get(0).getState() && list.get(0).getExpire() == ThreeSale.EXPIRE_NORMAL
                     && list.get(0).getBoss().getId() == inviter.getId().longValue()) {// 未生效的上级和现在上级一样就生效
@@ -194,8 +201,7 @@
                  update.setState(true);
                  update.setSucceedTime(System.currentTimeMillis());
                  threeSaleMapper.updateByPrimaryKeySelective(update);
                  ThreeSaleCMQManager.getInstance().addThreeSaleMsg(list.get(0));// 添加通知
                  userInviteMsgNotificationService.inviteSuccess(inviter.getId(), list.get(0));
                  inviteSuccess(list.get(0).getBoss().getId(), list.get(0).getWorker().getId(), list.get(0));
               }
            }
         }
@@ -226,14 +232,11 @@
         oldSale.setState(update.getState());
         oldSale.setSucceedTime(update.getSucceedTime());
         UserInfo inviter = list.get(0).getBoss();
         // 不以邀请人数计算等级
         // if (inviter != null)
         // reComputeUserRank(inviter.getId());
         // 添加到队列
         ThreeSaleCMQManager.getInstance().addThreeSaleMsg(oldSale);
         // 通知
         userInviteMsgNotificationService.inviteSuccess(inviter.getId(), oldSale);
         inviteSuccess(oldSale.getBoss().getId(), oldSale.getWorker().getId(), oldSale);
      }
   }
@@ -536,20 +539,7 @@
         threeSaleMapper.deleteExpireRecord(inviter.getId(), invitee.getId());
      }
      // 添加到队列
      ThreeSaleCMQManager.getInstance().addThreeSaleMsg(threeSale);
      // 邀请消息
      userInviteMsgNotificationService.inviteSuccess(inviter.getId(), threeSale);
      executor.execute(new Runnable() {
         @Override
         public void run() {
            // 邀请金币
            integralGetService.addInviteLevelOne(inviter.getId(), invitee.getId());
         }
      });
      inviteSuccess(inviter.getId(), invitee.getId(), threeSale);
   }
   @Override
@@ -600,19 +590,28 @@
      threeSale.setBoss(boss);
      threeSale.setWorker(invitee);
      // 添加到队列
      ThreeSaleCMQManager.getInstance().addThreeSaleMsg(threeSale);
      inviteSuccess(boss.getId(), invitee.getId(), threeSale);
   }
   /**
    * 邀请成功
    */
   @Transactional
   private void inviteSuccess(Long bossId, Long workerId, ThreeSale threeSale) {
      // 邀请消息
      userInviteMsgNotificationService.inviteSuccess(threeSale.getBoss().getId(), threeSale);
      executor.execute(new Runnable() {
         @Override
         public void run() {
            // 邀请金币
            integralGetService.addInviteLevelOne(boss.getId(), invitee.getId());
            integralGetService.addInviteLevelOne(bossId, workerId);
         }
      });
      UserInviteMQMsg msg = new UserInviteMQMsg(bossId, workerId, null, new Date(), UserInviteMQMsg.STATE_SUCCESS);
      Message message = new Message(MQTopicName.TOPIC_USER.name(), UserTopicTagEnum.inviteSuccess.name(),
            new Gson().toJson(msg).getBytes());
      producer.send(message);
   }
   /**