From 28e6d52fbcb5a58cd88cf7e3306897ca796152d2 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 23 Apr 2021 18:23:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=A3=E7=A0=81=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StatsAchievementServiceImpl.java | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java index 75eda59a4b..ecb1c8d3f5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java @@ -77,9 +77,9 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService case TOPIC: //查询话题数 QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(ResiTopicEntity::getCustomerId,customerId) - .eq(ResiTopicEntity::getGroupId,groupId) - .eq(ResiTopicEntity::getDelFlag,NumConstant.ZERO); + queryWrapper.lambda().eq(ResiTopicEntity::getCustomerId, customerId) + .eq(ResiTopicEntity::getGroupId, groupId) + .eq(ResiTopicEntity::getDelFlag, NumConstant.ZERO); currentValue = resiTopicDao.selectCount(queryWrapper); break; case MEMBER: @@ -88,49 +88,50 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService case TOISSUE: //查询已经转议题的话题数 queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(ResiTopicEntity::getCustomerId,customerId) - .eq(ResiTopicEntity::getGroupId,groupId) + queryWrapper.lambda().eq(ResiTopicEntity::getCustomerId, customerId) + .eq(ResiTopicEntity::getGroupId, groupId) .eq(ResiTopicEntity::getShiftIssue, NumConstant.ONE) - .eq(ResiTopicEntity::getDelFlag,NumConstant.ZERO); + .eq(ResiTopicEntity::getDelFlag, NumConstant.ZERO); currentValue = resiTopicDao.selectCount(queryWrapper); break; case RESOVLE_TOPIC: //查询已经关闭且为已解决的话题数 queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(ResiTopicEntity::getCustomerId,customerId) - .eq(ResiTopicEntity::getGroupId,groupId) + queryWrapper.lambda().eq(ResiTopicEntity::getCustomerId, customerId) + .eq(ResiTopicEntity::getGroupId, groupId) .eq(ResiTopicEntity::getStatus, TopicConstant.CLOSED) .eq(ResiTopicEntity::getClosedStatus, TopicConstant.RESOLVED) .eq(ResiTopicEntity::getShiftIssue, NumConstant.ONE) - .eq(ResiTopicEntity::getDelFlag,NumConstant.ZERO); + .eq(ResiTopicEntity::getDelFlag, NumConstant.ZERO); currentValue = resiTopicDao.selectCount(queryWrapper); break; default: log.info("calculateAcm error"); } - if(currentValue == 0){ + if (currentValue == 0) { return true; } - log.info("calculateAcm achievementType:{},groupId:{},currentValue:{}",groupId,currentValue,achievementType); + log.info("calculateAcm achievementType:{},groupId:{},currentValue:{}", groupId, currentValue, achievementType); calculateGroupAchievement(customerId, groupId, currentValue, achievementType); return true; } /** - * desc: 计算小组的人数等级 + * desc: 计算小组成就 * * @param customerId * @param groupId */ private void calculateGroupAchievement(String customerId, String groupId, int currentValue, String achievementType) { - + //根据成就类型获取小组未实现成就 数据库正常只会有一条 ResiGroupAchievementStatsEntity one = super.achievementStatsService.selectLastUnAchieved(customerId, groupId, achievementType); List haveArrive = new ArrayList<>(); - //如果没有实现的额成就则说明是初始化 + //如果没有实现的成就则说明是初始化 if (one == null) { initAchievementStat(customerId, groupId, achievementType, currentValue, haveArrive); - super.achievementStatsService.saveOrUpdate(haveArrive,false); + //初始化如果记录存在 只更新修改时间 + super.achievementStatsService.saveOrUpdate(haveArrive, false); return; } @@ -144,13 +145,13 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService int pageNum = NumConstant.ONE; int pageSize = NumConstant.TEN; do { - List list = getConfigByType(achievementType,pageNum++,pageSize); + List list = getConfigByType(achievementType, pageNum++, pageSize); isContinue = buildArriveList(customerId, groupId, achievementType, currentValue, one.getTargetValue(), haveArrive, list); - }while (isContinue); + } while (isContinue); } if (isBatch) { - super.achievementStatsService.saveOrUpdate(haveArrive,true); + super.achievementStatsService.saveOrUpdate(haveArrive, true); } else { //未实现 只更新当前值 ResiGroupAchievementStatsDTO newStat = new ResiGroupAchievementStatsDTO(); @@ -160,20 +161,27 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService } } + /** + * desc: 初始化成就 + * + * @return void + * @author LiuJanJun + * @date 2021/4/23 6:20 下午 + */ private void initAchievementStat(String customerId, String groupId, String achievementType, int currentValue, List haveArrive) { boolean isContinue; int pageNum = NumConstant.ONE; int pageSize = NumConstant.TEN; do { //没有任何数据说明是初始化 - List list = getConfigByType(achievementType,pageNum++,pageSize); + List list = getConfigByType(achievementType, pageNum++, pageSize); //查询和初始化都失败啦 if (CollectionUtils.isEmpty(list)) { log.error("calculateMember get config fail"); throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode()); } isContinue = buildArriveList(customerId, groupId, achievementType, currentValue, null, haveArrive, list); - }while (isContinue); + } while (isContinue); if (CollectionUtils.isEmpty(haveArrive)) { throw new RenException("小组达成成就失败"); } @@ -184,7 +192,7 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService for (ResiGroupAchievementConfigEntity configEntity : list) { if (targetValue != null) { //筛选出已经完成的成就 - if (configEntity.getTargetValue() getConfigByType(String achievementType,int pageNum,int pageSize) { + private List getConfigByType(String achievementType, int pageNum, int pageSize) { List list = super.getAchievemnetConfigPage(pageNum, pageSize, achievementType); if (CollectionUtils.isEmpty(list)) { log.warn("获取小组成就配置错误,{} 开始进行初始化规则", achievementType);