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/integral/IntegralExchangeRecordServiceImpl.java | 122 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 108 insertions(+), 14 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java index c878197..588a874 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralExchangeRecordServiceImpl.java @@ -1,19 +1,23 @@ package com.yeshi.fanli.service.impl.integral; -import java.util.ArrayList; +import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; -import org.yeshi.utils.JsonUtil; import com.yeshi.fanli.dao.mybatis.integral.IntegralExchangeRecordMapper; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.integral.IntegralExchange; +import com.yeshi.fanli.entity.integral.IntegralExchange.ExchangeTypeEnum; +import com.yeshi.fanli.entity.integral.IntegralExchangeRecord; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.integral.CodePublishRecordService; import com.yeshi.fanli.service.inter.integral.IntegralExchangeRecordService; import com.yeshi.fanli.service.inter.integral.IntegralExchangeService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.vo.user.UserInfoExtraVO; @Service public class IntegralExchangeRecordServiceImpl implements IntegralExchangeRecordService { @@ -24,6 +28,14 @@ @Resource private IntegralExchangeService integralExchangeService; + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private CodePublishRecordService codePublishRecordService; + + + @Override public List<IntegralExchange> listExchange(long start, int count, Long uid){ List<IntegralExchange> listValid = integralExchangeService.listValidCache(start, count); @@ -31,24 +43,106 @@ return listValid; } - List<Long> listId = new ArrayList<Long>(); - for(IntegralExchange integralExchange: listValid) { - listId.add(integralExchange.getId()); + boolean hasCode = false; + try { + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) { + hasCode = true; + } + } catch (Exception e) { + LogHelper.errorDetailInfo(e); } - List<Long> listRecord = integralExchangeRecordMapper.listRecordByExchangeIds(listId); - for(IntegralExchange integralExchange: listValid) { - String progress = integralExchange.getProgress(); + for(int i = 0; i < listValid.size(); i++) { + IntegralExchange exchange = listValid.get(i); + + ExchangeTypeEnum type = exchange.getType(); + if (type == null) { + listValid.remove(i); + i --; + continue; + } + + Long id = exchange.getId(); + if (type == ExchangeTypeEnum.freeCouponBuy) { + // 娉細鍥犺嚜璐厤鍗曞埜锛屼竴涓敤鎴峰彧鑳藉厬鎹竴娆★紝鍒欏綋鍓嶇敤鎴蜂竴鏃﹀厬鎹㈡垚鍔燂紝鑷喘鍏嶅崟鍒稿厬鎹㈠叆鍙f案涔呭湪褰撳墠鐢ㄦ埛閲戝竵鍏戞崲鍒楄〃涓秷澶便�� + long num = integralExchangeRecordMapper.countRecordByUid(id, uid, null); + if (num >= 1) { + listValid.remove(i); + i --; + continue; + } + } + + // 閭�璇风爜婵�娲诲崱锛屽厬鎹㈤」锛屽鏋滃綋鍓嶇敤鎴峰凡缁忔縺娲讳簡閭�璇峰姛鑳斤紝鍒欎笉闇�瑕佹樉绀鸿鍏戞崲椤广�� + if (type == ExchangeTypeEnum.inviteCodeActivate) { + if (hasCode) { + listValid.remove(i); + i --; + continue; + } + + // 鍏戞崲涓�娆′箣鍚庨殣钘� + long num = integralExchangeRecordMapper.countRecordByUid(id, uid, null); + if (num >= 1) { + listValid.remove(i); + i --; + continue; + } + } + + // 閭�璇风爜鍙戝竷鍗★紝鍏戞崲椤癸紝濡傛灉褰撳墠鐢ㄦ埛鏈縺娲婚個璇峰姛鑳斤紝鍒欎笉闇�瑕佹樉绀鸿鍏戞崲椤广�� + if (type == ExchangeTypeEnum.inviteCodePublish) { + if (!hasCode) { + listValid.remove(i); + i --; + continue; + } + + if(codePublishRecordService.countValidRecord(uid) > 0) { + exchange.setBtnName("鍘绘煡鐪�"); + exchange.setNeedJump(true); + } + } + + String progress = exchange.getProgress(); if (StringUtil.isNullOrEmpty(progress)) continue; - int exchange = 0; - if (listRecord != null && listRecord.size() >0 && listRecord.contains(integralExchange.getId())) - exchange = 1; + // 鑷喘鍏嶅崟鍒�-鍙兘鍏戞崲涓�娆� + if (type == ExchangeTypeEnum.freeCouponBuy) { + long num = integralExchangeRecordMapper.countRecordByUid(id, uid, null); + if (num >= 1) { + listValid.remove(i); + i --; + continue; + } + } - progress = progress.replace("{宸插厬鎹", exchange + "").replace("{涓婇檺鏁皚", integralExchange.getUpperLimit() + ""); - integralExchange.setProgress(progress); + // 浠婃棩鍏戞崲鎯呭喌 + long num = integralExchangeRecordMapper.countRecordByUid(id, uid, 1); + Integer upperLimit = exchange.getUpperLimit(); + if (upperLimit == null) { + progress = progress.replace("{宸插厬鎹", num + "").replace("/{涓婇檺鏁皚", ""); + } else { + progress = progress.replace("{宸插厬鎹", num + "").replace("{涓婇檺鏁皚", exchange.getUpperLimit() + ""); + } + exchange.setProgress(progress); } return listValid; } + + @Override + public long countRecordByUid(long exchangeid, Long uid, Integer today){ + return integralExchangeRecordMapper.countRecordByUid(exchangeid, uid, today); + } + + @Override + public void addExchangeRecord(long exchangeid, Long uid){ + IntegralExchangeRecord record = new IntegralExchangeRecord(); + record.setExchangeId(exchangeid); + record.setUid(uid); + record.setCreateTime(new Date()); + integralExchangeRecordMapper.insertSelective(record); + } } -- Gitblit v1.8.0