From fe879975a3e8a0a1aa280fb839e02d159bfbcff8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 27 八月 2019 18:04:38 +0800 Subject: [PATCH] 金币任务多次获取bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java | 216 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 198 insertions(+), 18 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java index a289caa..d4c47ac 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java @@ -8,6 +8,8 @@ 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; @@ -15,16 +17,24 @@ import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.entity.bus.user.ThreeSale; 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.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; +import com.yeshi.fanli.service.inter.user.UserActiveLogService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.ThreeSaleCMQManager; +import com.yeshi.fanli.util.VersionUtil; +import com.yeshi.fanli.util.cmq.ThreeSaleCMQManager; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -50,7 +60,28 @@ @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) { + //TODO 鏈塨ug return threeSaleMapper.selectBoss(uid); } @@ -298,18 +329,8 @@ } @Override - public List<ThreeSale> listFirstTeam(long start, int count, Long uid) { - return threeSaleMapper.listFirstTeam(start, count, uid); - } - - @Override public long countFirstTeam(Long uid, Integer state) { return threeSaleMapper.countFirstTeam(uid, state); - } - - @Override - public List<ThreeSale> listSecondTeam(long start, int count, Long uid) { - return threeSaleMapper.listSecondTeam(start, count, uid); } @Override @@ -333,26 +354,26 @@ } @Override - public JSONObject getMyFirstTeam(long start, int count, Long uid) { + public JSONObject getMyFirstTeam(long start, int count, Long uid, Integer state) { - List<ThreeSale> list = threeSaleMapper.listFirstTeam(start, count, uid); + List<ThreeSale> list = threeSaleMapper.listFirstTeam(start, count, uid, state); if (list == null) { list = new ArrayList<ThreeSale>(); } - long countTotal = threeSaleMapper.countFirstTeam(uid, null); + long countTotal = threeSaleMapper.countFirstTeam(uid, state); return organizeTeam(countTotal, list); } @Override - public JSONObject getMySecondTeam(long start, int count, Long uid) { - List<ThreeSale> list = threeSaleMapper.listSecondTeam(start, count, uid); + public JSONObject getMySecondTeam(long start, int count, Long uid, Integer state) { + List<ThreeSale> list = threeSaleMapper.listSecondTeam(start, count, uid, state); if (list == null) { list = new ArrayList<ThreeSale>(); } - long countTotal = threeSaleMapper.countSecondTeam(uid, null); + long countTotal = threeSaleMapper.countSecondTeam(uid, state); return organizeTeam(countTotal, list); } @@ -494,6 +515,8 @@ if (threeSale != null) { // 鏈夋晥鍏崇郴--鐢熸晥 + threeSale.setBoss(inviter); + threeSale.setWorker(invitee); threeSale.setState(true); threeSale.setExpire(ThreeSale.EXPIRE_NORMAL); threeSale.setSucceedTime(java.lang.System.currentTimeMillis()); @@ -510,7 +533,6 @@ threeSale.setCreateTime(java.lang.System.currentTimeMillis()); threeSale.setUpdateTime(java.lang.System.currentTimeMillis()); threeSaleMapper.insertSelective(threeSale); - } List<ThreeSale> listExpire = threeSaleMapper.getExpireRecord(inviter.getId(), invitee.getId()); @@ -528,6 +550,149 @@ // 閭�璇锋秷鎭� userInviteMsgNotificationService.inviteSuccess(inviter.getId(), threeSale); + + executor.execute(new Runnable() { + @Override + public void run() { + + UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviter.getId()); + try { + if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode())) { + String versionCode = activeLog.getVersionCode(); + String channel = activeLog.getChannel(); + + boolean result = false; + // 娓犻亾鏄痑ppstore 鍒ゆ柇涓篒OS + 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(); + if (StringUtil.isNullOrEmpty(inviteName)) { + UserInfo userInfo = userInfoService.selectByPKey(invitee.getId()); + if (userInfo != null) { + inviteName = userInfo.getNickName(); + } + } + // 濂栧姳閭�璇风孩鍖咃紙娣樼ぜ閲戯級 + userTaoLiJinOriginService.addInviteWinMoney(inviter.getId(), inviteName); + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + + // 閭�璇烽噾甯� + integralGetService.addInviteLevelOne(inviter.getId(), invitee.getId()); + } + }); + + } + + @Override + @Transactional + 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) { + // 鏂板缓绔嬬‘瀹氬叧绯� + threeSale = new ThreeSale(); + threeSale.setBoss(new UserInfo(inviterId)); + threeSale.setWorker(invitee); + threeSale.setState(true); + threeSale.setExpire(ThreeSale.EXPIRE_NORMAL); + threeSale.setSucceedTime(java.lang.System.currentTimeMillis()); + threeSale.setCreateTime(java.lang.System.currentTimeMillis()); + threeSale.setUpdateTime(java.lang.System.currentTimeMillis()); + threeSaleMapper.insertSelective(threeSale); + + // 閭�璇峰叧绯诲け鏁� 1.5.3 涔嬪墠澶辨晥 + if (threeSaleOld != null) { + ThreeSale three = new ThreeSale(); + three.setId(threeSaleOld.getId()); + three.setExpire(ThreeSale.EXPIRE_OUTOFDATE); + three.setUpdateTime(java.lang.System.currentTimeMillis()); + threeSaleMapper.updateByPrimaryKeySelective(three); + } + } else if (threeSaleOld != null && inviterId == null) { + // 1.5.3 涔嬪墠鐢熸晥 + threeSaleOld.setState(true); + threeSaleOld.setExpire(ThreeSale.EXPIRE_NORMAL); + 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())) { + boolean result = false; + String versionCode = activeLog.getVersionCode(); + String channel = activeLog.getChannel(); + + // 娓犻亾鏄痑ppstore 鍒ゆ柇涓篒OS + 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(); + if (StringUtil.isNullOrEmpty(inviteName)) { + UserInfo userInfo = userInfoService.selectByPKey(invitee.getId()); + if (userInfo != null) { + inviteName = userInfo.getNickName(); + } + } + // 濂栧姳閭�璇风孩鍖咃紙娣樼ぜ閲戯級 + userTaoLiJinOriginService.addInviteWinMoney(inviterId, inviteName); + } + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + }); + } + + /** + * 鏍规嵁閭�璇疯�呮煡璇㈠叧绯� + * + * @param workerId + * @return + */ + @Override + public ThreeSale getByWorkerId(Long workerId) { + return threeSaleMapper.getByWorkerId(workerId); } @Override @@ -540,4 +705,19 @@ return threeSaleMapper.selectSuccessByWorkerId(workerId); } + @Override + 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); + } + } -- Gitblit v1.8.0