fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java
@@ -470,6 +470,7 @@ continue; RedPackWinProgressVO progressVO = new RedPackWinProgressVO(); progressVO.setUid(userInfo.getId()); progressVO.setName(userInfo.getNickName()); progressVO.setPortrait(userInfo.getPortrait()); progressVO.setMoney(win.getMoney().setScale(2).toString()); fanli/src/main/java/com/yeshi/fanli/dao/mybatis/user/UserInviteSeparateMapper.java
@@ -1,5 +1,7 @@ package com.yeshi.fanli.dao.mybatis.user; import java.util.List; import org.apache.ibatis.annotations.Param; import com.yeshi.fanli.dao.BaseMapper; @@ -27,4 +29,11 @@ */ UserInviteSeparate selectByWorkerIdAndBossId(@Param("workerId") Long workerId, @Param("bossId") Long bossId); /** * 查询已超时代处理的记录 * @param start * @param count * @return */ List<UserInviteSeparate> getHandleOverdue(@Param("start") int start, @Param("count") int count); } fanli/src/main/java/com/yeshi/fanli/job/UpdateThreeSaleJob.java
@@ -1,6 +1,5 @@ package com.yeshi.fanli.job; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -8,55 +7,46 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import com.yeshi.fanli.entity.bus.user.ThreeSale; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService; import com.yeshi.fanli.entity.bus.user.UserInviteSeparate; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.user.UserInviteSeparateService; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.util.Constant; @Component public class UpdateThreeSaleJob { @Resource private ThreeSaleSerivce ThreeSaleSerivce; @Resource private UserInviteMsgNotificationService userInviteMsgNotificationService; @Resource private UserInfoService userInfoService; private UserVIPInfoService userVIPInfoService; // 每天00点20执行 过期邀请筛选 @Scheduled(cron = "0 20 0 * * ? ") public void updateReward() { @Resource private UserInviteSeparateService userInviteSeparateService; // 邀请关系脱离 @Scheduled(cron = "0 0/10 * * * ? ") public void inviteSeparate() { if (!Constant.IS_TASK) { return; } try { List<Long> list = new ArrayList<Long>(); // 发出邀请未成功 超过60天 List<Long> listFailed = ThreeSaleSerivce.queryLongTimeFailed(60); if (listFailed != null && listFailed.size() > 0) { list.addAll(listFailed); } // 更新邀请过期: 60天未被邀请成功、60天未登陆系统 if (list.size() > 0) { ThreeSaleSerivce.updateExpire(list); for (Long id : listFailed) { // 通知 ThreeSale ts = ThreeSaleSerivce.selectByPrimaryKey(id); if (ts != null) userInviteMsgNotificationService.inviteFail(ts.getBoss().getId(), ts); int count = 100; for (int i = 0; i < 1000; i++) { List<UserInviteSeparate> list = userInviteSeparateService.getHandleOverdue(i, count); if (list == null || list.size() == 0) break; for (UserInviteSeparate separate: list) { try { userVIPInfoService.inviteSeparate(separate.getWorkerId(), separate.getBossId()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } } catch (Exception e) { e.printStackTrace(); if (list.size() < count) { break; } } } } fanli/src/main/java/com/yeshi/fanli/mapping/user/UserInviteSeparateMapper.xml
@@ -66,4 +66,11 @@ LIMIT 1 </select> <select id="getHandleOverdue" resultMap="BaseResultMap"> SELECT * FROM yeshi_ec_user_invite_separate d WHERE d.`uis_state` = 0 AND uis_end_time <![CDATA[<=]]> NOW() LIMIT #{start},#{count} </select> </mapper> fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
@@ -368,7 +368,7 @@ continue; } if (win.getType() == RedPackWinInviteTypeEnum.twoStageReward) { if (win.getType() == RedPackWinInviteTypeEnum.threeStageReward) { listVO.add(new RedPackWinProgressVO("第三阶段第" + month + "个月", time, money.toString())); month ++; continue; fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteSeparateServiceImpl.java
@@ -1,5 +1,7 @@ package com.yeshi.fanli.service.impl.user.invite; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; @@ -30,10 +32,14 @@ userInviteSeparateMapper.updateStateByWorkerIdAndBossId(workerId, bossId, state); } @Override public UserInviteSeparate selectByWorkerIdAndBossId(Long workerId, Long bossId) { return userInviteSeparateMapper.selectByWorkerIdAndBossId(workerId, bossId); } @Override public List<UserInviteSeparate> getHandleOverdue(int start, int count) { return userInviteSeparateMapper.getHandleOverdue(start, count); } } fanli/src/main/java/com/yeshi/fanli/service/inter/user/UserInviteSeparateService.java
@@ -1,5 +1,7 @@ package com.yeshi.fanli.service.inter.user; import java.util.List; import com.yeshi.fanli.entity.bus.user.UserInviteSeparate; public interface UserInviteSeparateService { @@ -25,4 +27,12 @@ public void updateStateByWorkerIdAndBossId(Long workerId, Long bossId, int state); /** * 查询要过期的 * @param start * @param count * @return */ public List<UserInviteSeparate> getHandleOverdue(int start, int count); } fanli/src/main/java/com/yeshi/fanli/vo/redpack/RedPackWinProgressVO.java
@@ -12,6 +12,8 @@ private static final long serialVersionUID = 1L; @Expose private Long uid; @Expose private String name; @Expose private String portrait; @@ -67,4 +69,12 @@ this.time = time; } public Long getUid() { return uid; } public void setUid(Long uid) { this.uid = uid; } }