| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.context.annotation.Lazy;
|
| | | import org.springframework.core.task.TaskExecutor;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserActiveLog;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.exception.ThreeSaleException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
|
| | | import com.yeshi.fanli.service.inter.hongbao.ThreeSaleExtraInfoSerivce;
|
| | | import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.service.inter.integral.IntegralGetService;
|
| | | import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService;
|
| | | import com.yeshi.fanli.service.inter.msg.UserInviteMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
|
| | |
| | |
|
| | | @Resource
|
| | | private MsgInviteDetailService msgInviteDetailService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserTaoLiJinOriginService userTaoLiJinOriginService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserActiveLogService userActiveLogService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleExtraInfoSerivce threeSaleExtraInfoSerivce;
|
| | |
|
| | |
|
| | | @Lazy
|
| | | @Resource
|
| | | private IntegralGetService integralGetService;
|
| | |
|
| | | @Resource(name = "taskExecutor")
|
| | | private TaskExecutor executor;
|
| | | |
| | | |
| | |
|
| | | public UserInfo getBoss(final long uid) {
|
| | | return threeSaleMapper.selectBoss(uid);
|
| | |
| | | return threeSaleMapper.countSuperiorQuery(state, uid);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public long countFirstTeam(Long uid, Integer state) {
|
| | | return threeSaleMapper.countFirstTeam(uid, state);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public long countSecondTeam(Long uid, Integer state) {
|
| | |
| | |
|
| | | long countTotal = threeSaleMapper.countFirstTeam(uid, state);
|
| | |
|
| | | return organizeTeam(countTotal, list, uid);
|
| | | return organizeTeam(countTotal, list);
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | |
|
| | | long countTotal = threeSaleMapper.countSecondTeam(uid, state);
|
| | |
|
| | | return organizeTeam(countTotal, list, uid);
|
| | | return organizeTeam(countTotal, list);
|
| | | }
|
| | |
|
| | | public JSONObject organizeTeam(long count, List<ThreeSale> list, Long uid) {
|
| | | public JSONObject organizeTeam(long count, List<ThreeSale> list) {
|
| | |
|
| | | JSONObject result = new JSONObject();
|
| | |
|
| | |
| | | object.put("memoName", memoName);
|
| | |
|
| | | String nickName = "";
|
| | | Long workerId= null;
|
| | | String portrait = "";
|
| | | Long lastLoginTime = null;
|
| | |
|
| | | UserInfo worker = threeSale.getWorker();
|
| | | if (worker != null) {
|
| | | workerId = worker.getId();
|
| | | portrait = worker.getPortrait();
|
| | | lastLoginTime = worker.getLastLoginTime();
|
| | | nickName = worker.getNickName();
|
| | | }
|
| | | object.put("workerId", workerId);
|
| | | object.put("nickName", nickName);
|
| | | object.put("portrait", portrait);
|
| | |
|
| | |
| | | // 往年
|
| | | contentJson.put("content", "最近登录 " + format.format(lastLoginTime));
|
| | | }
|
| | |
|
| | | array.add(contentJson);
|
| | | |
| | | |
| | | if (workerId != null) {
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(workerId);
|
| | | if (userInfoExtra != null) |
| | | object.put("weiXin", userInfoExtra.getWeiXin());
|
| | | }
|
| | | |
| | |
|
| | | } else if (threeSale.getExpire() != null
|
| | | && (threeSale.getExpire() == 1 || threeSale.getExpire().equals(1))) {
|
| | |
| | | resultArray.add(object);
|
| | | }
|
| | |
|
| | | boolean bdWeiXin = false;
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
| | | if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) |
| | | bdWeiXin = true;
|
| | | |
| | | result.put("bdWeiXin", bdWeiXin);
|
| | | result.put("count", count);
|
| | | result.put("result_list", resultArray);
|
| | |
|
| | |
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public void bindRelationshipByInviteCode(UserInfo invitee, UserInfo inviter, String platform, String version) throws ThreeSaleException {
|
| | | public void bindRelationshipByInviteCode(UserInfo invitee, UserInfo inviter) throws ThreeSaleException {
|
| | |
|
| | | if (invitee == null || inviter == null) |
| | | if (invitee == null || inviter == null)
|
| | | throw new ThreeSaleException(1, "用户信息为空");
|
| | | |
| | |
|
| | | // 获取有效的邀请关系
|
| | | ThreeSale threeSale = threeSaleMapper.getRelationshipByBossIdAndWorkerId(inviter.getId(), invitee.getId());
|
| | |
|
| | | if (threeSale != null) {
|
| | | // 有效关系--生效
|
| | | threeSale.setBoss(inviter);
|
| | | threeSale.setWorker(invitee);
|
| | | threeSale.setState(true);
|
| | | threeSale.setExpire(ThreeSale.EXPIRE_NORMAL);
|
| | | threeSale.setSucceedTime(java.lang.System.currentTimeMillis());
|
| | |
| | |
|
| | | // 邀请消息
|
| | | userInviteMsgNotificationService.inviteSuccess(inviter.getId(), threeSale);
|
| | | |
| | |
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | |
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviter.getId());
|
| | | try {
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviter.getId());
|
| | | if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode()) ) {
|
| | | if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode())) {
|
| | | String versionCode = activeLog.getVersionCode();
|
| | | String channel = activeLog.getChannel();
|
| | | |
| | |
|
| | | boolean result = false;
|
| | | // 渠道是appstore 判断为IOS
|
| | | if (!StringUtil.isNullOrEmpty(channel) && "appstore".equalsIgnoreCase(channel)) {
|
| | |
| | | } else {
|
| | | result = VersionUtil.greaterThan_1_5_60("android", versionCode);
|
| | | }
|
| | | |
| | |
|
| | | if (result) {
|
| | | // 被邀请名称
|
| | | String inviteName= invitee.getNickName();
|
| | | String inviteName = invitee.getNickName();
|
| | | if (StringUtil.isNullOrEmpty(inviteName)) {
|
| | | UserInfo userInfo = userInfoService.selectByPKey(invitee.getId());
|
| | | if (userInfo != null) {
|
| | | inviteName= userInfo.getNickName();
|
| | | inviteName = userInfo.getNickName();
|
| | | }
|
| | | }
|
| | | // 奖励邀请红包(淘礼金)
|
| | |
| | | } catch (Exception e) {
|
| | | LogHelper.errorDetailInfo(e);
|
| | | }
|
| | |
|
| | | // 邀请金币
|
| | | integralGetService.addInviteLevelOne(inviter.getId(), invitee.getId());
|
| | | }
|
| | | });
|
| | | |
| | | |
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public void bindRelationshipByWX(UserInfo invitee, Long inviterId, ThreeSale threeSaleOld, String platform, String version) throws ThreeSaleException {
|
| | | public void bindRelationshipByWX(UserInfo invitee, Long inviterId, ThreeSale threeSaleOld)
|
| | | throws ThreeSaleException {
|
| | |
|
| | | if (invitee == null || (inviterId == null && threeSaleOld == null))
|
| | | throw new ThreeSaleException(1, "用户信息为空");
|
| | | |
| | |
|
| | | ThreeSale threeSale = null;
|
| | | if (inviterId != null ) {
|
| | | if (inviterId != null) {
|
| | | // 新建立确定关系
|
| | | threeSale = new ThreeSale();
|
| | | threeSale = new ThreeSale();
|
| | | threeSale.setBoss(new UserInfo(inviterId));
|
| | | threeSale.setWorker(invitee);
|
| | | threeSale.setState(true);
|
| | |
| | | threeSale.setCreateTime(java.lang.System.currentTimeMillis());
|
| | | threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
|
| | | threeSaleMapper.insertSelective(threeSale);
|
| | | |
| | | // 邀请关系失效 1.5.3 之前失效
|
| | |
|
| | | // 邀请关系失效 1.5.3 之前失效
|
| | | if (threeSaleOld != null) {
|
| | | ThreeSale three = new ThreeSale();
|
| | | ThreeSale three = new ThreeSale();
|
| | | three.setId(threeSaleOld.getId());
|
| | | three.setExpire(ThreeSale.EXPIRE_OUTOFDATE);
|
| | | three.setUpdateTime(java.lang.System.currentTimeMillis());
|
| | |
| | | threeSaleOld.setSucceedTime(java.lang.System.currentTimeMillis());
|
| | | threeSaleOld.setUpdateTime(java.lang.System.currentTimeMillis());
|
| | | threeSaleMapper.updateByPrimaryKeySelective(threeSaleOld);
|
| | | |
| | |
|
| | | threeSale = threeSaleOld;
|
| | | }
|
| | |
|
| | | if (threeSale == null) {
|
| | | throw new ThreeSaleException(1, "关系绑定失败");
|
| | | }
|
| | | |
| | |
|
| | | UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId());
|
| | | threeSale.setBoss(boss);
|
| | | |
| | | threeSale.setWorker(invitee);
|
| | |
|
| | | // 添加到队列
|
| | | ThreeSaleCMQManager.getInstance().addThreeSaleMsg(threeSale);
|
| | | |
| | |
|
| | | // 邀请消息
|
| | | userInviteMsgNotificationService.inviteSuccess(threeSale.getBoss().getId(), threeSale);
|
| | | |
| | | |
| | |
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | try {
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviterId);
|
| | | if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode()) ) {
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviterId);
|
| | | if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode())) {
|
| | | boolean result = false;
|
| | | String versionCode = activeLog.getVersionCode();
|
| | | String channel = activeLog.getChannel();
|
| | | |
| | |
|
| | | // 渠道是appstore 判断为IOS
|
| | | if (!StringUtil.isNullOrEmpty(channel) && "appstore".equalsIgnoreCase(channel)) {
|
| | | result = VersionUtil.greaterThan_1_5_60("ios", versionCode);
|
| | | } else {
|
| | | result = VersionUtil.greaterThan_1_5_60("android", versionCode);
|
| | | }
|
| | | |
| | |
|
| | | if (result) {
|
| | | // 被邀请名称
|
| | | String inviteName= invitee.getNickName();
|
| | | String inviteName = invitee.getNickName();
|
| | | if (StringUtil.isNullOrEmpty(inviteName)) {
|
| | | UserInfo userInfo = userInfoService.selectByPKey(invitee.getId());
|
| | | if (userInfo != null) {
|
| | | inviteName= userInfo.getNickName();
|
| | | inviteName = userInfo.getNickName();
|
| | | }
|
| | | }
|
| | | // 奖励邀请红包(淘礼金)
|
| | |
| | | }
|
| | | });
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 根据邀请者查询关系
|
| | | *
|
| | |
| | | public ThreeSale getByWorkerId(Long workerId) {
|
| | | return threeSaleMapper.getByWorkerId(workerId);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public long countSuccessFirstTeam(Long uid) {
|
| | | return threeSaleMapper.countFirstTeam(uid, 1);
|
| | |
| | | public ThreeSale selectByWorkerId(Long workerId) {
|
| | | return threeSaleMapper.selectSuccessByWorkerId(workerId);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public List<ThreeSale> getSuccessByDate(Long bossId, Long minTime, Long maxTime){
|
| | | public List<ThreeSale> getSuccessByDate(Long bossId, Long minTime, Long maxTime) {
|
| | | return threeSaleMapper.getSuccessByDate(bossId, minTime, maxTime);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listFirstTeam(long start, int count, Long uid, Integer state) {
|
| | | return threeSaleMapper.listFirstTeam(start, count, uid, state);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listSecondTeam(long start, int count, Long uid, Integer state) {
|
| | | return threeSaleMapper.listSecondTeam(start, count, uid, state);
|
| | | }
|
| | |
|
| | | }
|