Browse Source

小组成就相关接口

master
zhaoqifeng 5 years ago
parent
commit
9bbd4a6534
  1. 61
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
  2. 44
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java
  3. 4
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java
  4. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
  5. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
  6. 21
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

61
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java

@ -41,10 +41,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays; import java.util.concurrent.atomic.AtomicInteger;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -147,12 +145,18 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
.eq("OBJECT_ID", formDTO.getGroupId()) .eq("OBJECT_ID", formDTO.getGroupId())
.eq("DEL_FLAG", NumConstant.ZERO_STR); .eq("DEL_FLAG", NumConstant.ZERO_STR);
BizPointTotalDetailEntity entity = baseDao.selectOne(wrapper); BizPointTotalDetailEntity entity = baseDao.selectOne(wrapper);
int toUpgrade = Integer.parseInt(detail.getNextLevelPoint()) - entity.getTotalPoint();
detail.setToUpgrade(Integer.toString(toUpgrade));
Integer increase = bizPointUserTotalDetailService.getIncrease("group", formDTO.getGroupId()); Integer increase = bizPointUserTotalDetailService.getIncrease("group", formDTO.getGroupId());
detail.setIncrease(increase.toString()); detail.setIncrease(increase.toString());
detail.setTotal(entity.getTotalPoint().toString()); if (null == entity) {
detail.setCurrentPoint(entity.getTotalPoint().toString()); detail.setToUpgrade(detail.getNextLevelPoint());
detail.setTotal(NumConstant.ZERO_STR);
detail.setCurrentPoint(NumConstant.ZERO_STR);
} else {
int toUpgrade = Integer.parseInt(detail.getNextLevelPoint()) - entity.getTotalPoint();
detail.setToUpgrade(Integer.toString(toUpgrade));
detail.setTotal(entity.getTotalPoint().toString());
detail.setCurrentPoint(entity.getTotalPoint().toString());
}
return detail; return detail;
} }
@ -166,7 +170,7 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
*/ */
@Override @Override
public List<GroupPointRankingResultDTO> groupPointRanking(GroupPointFormDTO formDTO) { public List<GroupPointRankingResultDTO> groupPointRanking(GroupPointFormDTO formDTO) {
List<GroupPointRankingResultDTO> list = new ArrayList<>(); List<GroupPointRankingResultDTO> list;
QueryWrapper<BizPointTotalDetailEntity> wrapper = new QueryWrapper<>(); QueryWrapper<BizPointTotalDetailEntity> wrapper = new QueryWrapper<>();
wrapper.eq("BIZ_TYPE", "group") wrapper.eq("BIZ_TYPE", "group")
.eq("GRID_ID", formDTO.getGridId()) .eq("GRID_ID", formDTO.getGridId())
@ -174,24 +178,29 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
.orderByDesc("TOTAL_POINT"); .orderByDesc("TOTAL_POINT");
List<BizPointTotalDetailEntity> totalDetailList = baseDao.selectList(wrapper); List<BizPointTotalDetailEntity> totalDetailList = baseDao.selectList(wrapper);
Result<List<ResiGroupDTO>> groupList = resiGroupOpenFeignClient.getGroupListByGrid(formDTO.getGridId()); Result<List<ResiGroupDTO>> groupList = resiGroupOpenFeignClient.getGroupListByGrid(formDTO.getGridId());
list = groupList.getData().stream().map(item -> {
GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO();
dto.setGroupId(item.getId());
dto.setGroupName(item.getGroupName());
dto.setPoint(NumConstant.ZERO_STR);
if (formDTO.getGroupId().equals(item.getId())) {
dto.setIsMine(NumConstant.ONE_STR);
} else {
dto.setIsMine(NumConstant.ZERO_STR);
}
return dto;
}).collect(Collectors.toList());
list.forEach(item -> totalDetailList.stream().filter(detail -> item.getGroupId().equals(detail.getObjectId())).forEach(total -> {
item.setPoint(total.getTotalPoint().toString());
}));
list = list =
totalDetailList.stream().flatMap(detail -> groupList.getData().stream().filter(item -> item.getId().equals(detail.getObjectId())).map(group -> { list.stream().sorted(Comparator.comparing(GroupPointRankingResultDTO :: getPoint, Comparator.comparingInt(Integer::parseInt)).reversed().thenComparing(GroupPointRankingResultDTO::getGroupName))
GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO(); .collect(Collectors.toList());
dto.setGroupId(group.getId()); AtomicInteger i = new AtomicInteger(1);
dto.setGroupName(group.getGroupName()); list.forEach(dto -> {
dto.setPoint(detail.getTotalPoint().toString()); dto.setRanking(String.valueOf(i.getAndIncrement()));
if (formDTO.getGroupId().equals(group.getId())) { });
dto.setIsMine(NumConstant.ONE_STR);
} else {
dto.setIsMine(NumConstant.ZERO_STR);
}
return dto;
})).collect(Collectors.toList());
int i = 1;
for (GroupPointRankingResultDTO dto : list) {
dto.setRanking(String.valueOf(i));
i++;
}
return list; return list;
} }

44
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java

@ -35,6 +35,7 @@ import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.entity.BizPointUserTotalDetailEntity; import com.epmet.entity.BizPointUserTotalDetailEntity;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.resi.group.dto.group.ResiGroupDTO; import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.service.BizPointUserTotalDetailService; import com.epmet.service.BizPointUserTotalDetailService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -42,10 +43,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.text.Collator;
import java.util.Arrays; import java.util.*;
import java.util.List; import java.util.concurrent.atomic.AtomicInteger;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -176,30 +176,30 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl<BizPoint
.eq("DEL_FLAG", NumConstant.ZERO_STR) .eq("DEL_FLAG", NumConstant.ZERO_STR)
.orderByDesc("TOTAL_POINT"); .orderByDesc("TOTAL_POINT");
List<BizPointUserTotalDetailEntity> userTotalList = baseDao.selectList(wrapper); List<BizPointUserTotalDetailEntity> userTotalList = baseDao.selectList(wrapper);
int i = 1; AtomicInteger i = new AtomicInteger(1);
list = userTotalList.stream().map(item -> {
//获取小组信息
Result<ResiGroupDTO> group = resiGroupOpenFeignClient.getGroupDetail(formDTO.getGroupId());
if (!group.success() || null == group.getData()) {
throw new RenException(group.getCode(), group.getMsg());
}
List<ResiGroupMemberDTO> memberList = group.getData().getMemberList();
list = memberList.stream().map(item -> {
PointRankingResultDTO dto = new PointRankingResultDTO(); PointRankingResultDTO dto = new PointRankingResultDTO();
dto.setUserId(item.getUserId()); dto.setUserId(item.getCustomerUserId());
dto.setPoint(item.getTotalPoint().toString()); dto.setPoint(NumConstant.ZERO_STR);
if (tokenDto.getUserId().equals(item.getUserId())) { if (tokenDto.getUserId().equals(item.getCustomerUserId())) {
dto.setIsMine(NumConstant.ONE_STR); dto.setIsMine(NumConstant.ONE_STR);
} else { } else {
dto.setIsMine(NumConstant.ZERO_STR); dto.setIsMine(NumConstant.ZERO_STR);
} }
return dto; return dto;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
for (PointRankingResultDTO dto : list) { list.forEach(item -> userTotalList.stream().filter(user -> user.getUserId().equals(item.getUserId())).forEach(total -> {
dto.setRanking(String.valueOf(i)); item.setPoint(total.getTotalPoint().toString());
i++; }));
}
//获取小组信息
Result<ResiGroupDTO> group = resiGroupOpenFeignClient.getGroupDetail(formDTO.getGroupId());
if (!group.success() || null == group.getData()) {
throw new RenException(group.getCode(), group.getMsg());
}
//获取用户信息 //获取用户信息
List<String> userIds = userTotalList.stream().map(BizPointUserTotalDetailEntity :: getUserId).collect(Collectors.toList()); List<String> userIds = memberList.stream().map(ResiGroupMemberDTO :: getCustomerUserId).collect(Collectors.toList());
Result<List<UserBaseInfoResultDTO>> userInfoListResult = epmetUserOpenFeignClient.queryUserBaseInfo(userIds); Result<List<UserBaseInfoResultDTO>> userInfoListResult = epmetUserOpenFeignClient.queryUserBaseInfo(userIds);
if (!userInfoListResult.success() || null == userInfoListResult.getData()) { if (!userInfoListResult.success() || null == userInfoListResult.getData()) {
throw new RenException(userInfoListResult.getCode(), userInfoListResult.getMsg()); throw new RenException(userInfoListResult.getCode(), userInfoListResult.getMsg());
@ -215,6 +215,10 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl<BizPoint
item.setHeadPhoto(user.getHeadImgUrl()); item.setHeadPhoto(user.getHeadImgUrl());
} }
)); ));
list = list.stream().sorted(Comparator.comparing(PointRankingResultDTO :: getPoint, Comparator.comparingInt(Integer::parseInt)).reversed()
.thenComparing(PointRankingResultDTO::getName, Collator.getInstance(Locale.CHINA)))
.collect(Collectors.toList());
list.forEach(item -> item.setRanking(String.valueOf(i.getAndIncrement())));
return list; return list;
} }

4
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java

@ -17,10 +17,12 @@
package com.epmet.resi.group.dto.group; package com.epmet.resi.group.dto.group;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
@ -125,4 +127,6 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审
*/ */
private Date updatedTime; private Date updatedTime;
private List<ResiGroupMemberDTO> memberList;
} }

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java

@ -522,7 +522,7 @@ public class ResiGroupController {
*/ */
@PostMapping("groupDetail/{groupId}") @PostMapping("groupDetail/{groupId}")
public Result<ResiGroupDTO> getGroupDetail(@PathVariable String groupId) { public Result<ResiGroupDTO> getGroupDetail(@PathVariable String groupId) {
ResiGroupDTO groupDTO = resiGroupService.get(groupId); ResiGroupDTO groupDTO = resiGroupService.getGroupInfoAndGroupMember(groupId);
return new Result<ResiGroupDTO>().ok(groupDTO); return new Result<ResiGroupDTO>().ok(groupDTO);
} }

9
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java

@ -409,4 +409,13 @@ public interface ResiGroupService extends BaseService<ResiGroupEntity> {
* @return com.epmet.resi.group.dto.member.result.AchievementResultDTO * @return com.epmet.resi.group.dto.member.result.AchievementResultDTO
*/ */
AchievementResultDTO achievement(TokenDto tokenDto); AchievementResultDTO achievement(TokenDto tokenDto);
/**
* 获取小组信息及小组成员
* @author zhaoqifeng
* @date 2021/4/23 14:56
* @param groupId
* @return com.epmet.resi.group.dto.group.ResiGroupDTO
*/
ResiGroupDTO getGroupInfoAndGroupMember(String groupId);
} }

21
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -57,6 +57,7 @@ import com.epmet.modules.group.redis.ResiGroupRedis;
import com.epmet.modules.group.service.*; import com.epmet.modules.group.service.*;
import com.epmet.modules.member.dao.GroupMemeberOperationDao; import com.epmet.modules.member.dao.GroupMemeberOperationDao;
import com.epmet.modules.member.dao.ResiGroupMemberDao; import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.entity.ResiGroupMemberEntity;
import com.epmet.modules.member.redis.ResiGroupMemberRedis; import com.epmet.modules.member.redis.ResiGroupMemberRedis;
import com.epmet.modules.member.service.GroupMemeberOperationService; import com.epmet.modules.member.service.GroupMemeberOperationService;
import com.epmet.modules.member.service.ResiGroupMemberService; import com.epmet.modules.member.service.ResiGroupMemberService;
@ -1282,6 +1283,26 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
return result; return result;
} }
/**
* 获取小组信息及小组成员
*
* @param groupId
* @return com.epmet.resi.group.dto.group.ResiGroupDTO
* @author zhaoqifeng
* @date 2021/4/23 14:56
*/
@Override
public ResiGroupDTO getGroupInfoAndGroupMember(String groupId) {
ResiGroupDTO group = this.get(groupId);
QueryWrapper<ResiGroupMemberEntity> wrapper = new QueryWrapper<>();
wrapper.eq("RESI_GROUP_ID", groupId)
.eq("STATUS", GroupStateConstant.GROUP_APPROVED)
.eq("DEL_FLAG", NumConstant.ZERO_STR);
List<ResiGroupMemberEntity> memberList = resiGroupMemberDao.selectList(wrapper);
group.setMemberList(ConvertUtils.sourceToTarget(memberList, ResiGroupMemberDTO.class));
return group;
}
@Override @Override
public GroupDetailResultDTO getGroupDetail(String groupId) { public GroupDetailResultDTO getGroupDetail(String groupId) {
GroupDetailResultDTO groupDetail = new GroupDetailResultDTO(); GroupDetailResultDTO groupDetail = new GroupDetailResultDTO();

Loading…
Cancel
Save