Browse Source

【新增】1.完成网格内小组排名接口

dev_shibei_match
wxz 4 years ago
parent
commit
41f73d4253
  1. 10
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/GroupPointFormDTO.java
  2. 8
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/GroupPointRankingResultDTO.java
  3. 23
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java
  4. 13
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java
  5. 128
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
  6. 95
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/GroupFormDTO.java
  7. 3
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupDetailResultDTO.java
  8. 22
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
  9. 10
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
  10. 37
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
  11. 26
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
  12. 59
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

10
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/GroupPointFormDTO.java

@ -1,6 +1,7 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.sun.webkit.LoadListenerClient;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ -17,8 +18,15 @@ public class GroupPointFormDTO implements Serializable {
public interface GroupPoint extends CustomerClientShowGroup {}
public interface GridRank extends CustomerClientShowGroup {}
public interface GridScopeRank extends CustomerClientShowGroup {}
@NotBlank(message = "小组Id不能为空", groups = {GroupPoint.class, GridRank.class})
private String groupId;
@NotBlank(message = "网格Id不能为空", groups = {GridRank.class})
@NotBlank(message = "网格Id不能为空", groups = {GridRank.class, GridScopeRank.class})
private String gridId;
/** 页码 */
private Integer pageNo = 1;
/** 单页条数 */
private Integer pageSize = 10;
}

8
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/GroupPointRankingResultDTO.java

@ -35,4 +35,12 @@ public class GroupPointRankingResultDTO implements Serializable {
* 小组ID
*/
private String groupId;
/** 头像 */
private String groupHeadPhoto;
/** 类型 branch 支部小组;o */
private String groupType;
}

23
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java

@ -1,6 +1,7 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -14,12 +15,15 @@ import com.epmet.service.BizPointTotalDetailService;
import com.epmet.service.BizPointUserTotalDetailService;
import com.epmet.service.PointRuleService;
import com.epmet.utils.ModuleConstant;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.lang.management.MemoryManagerMXBean;
import java.util.List;
/**
@ -113,4 +117,23 @@ public class GroupPointController {
return new Result<BizPointTotalDetailDTO>().ok(result);
}
/**
* @description 小组排名- 网格范围内
*
* @param formDTO
* @return
* @author wxz
* @date 2021.09.07 13:35:45
*/
@PostMapping("grouppointranking/gridscope")
public Result<PageData<GroupPointRankingResultDTO>> listGroupPointRandingInGridScope(@RequestBody GroupPointFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GroupPointFormDTO.GridScopeRank.class);
String gridId = formDTO.getGridId();
Integer pageNo = formDTO.getPageNo();
Integer pageSize = formDTO.getPageSize();
PageData<GroupPointRankingResultDTO> page = bizPointTotalDetailService.listGroupPointRandingInGridScope(gridId, pageNo, pageSize);
return new Result<PageData<GroupPointRankingResultDTO>>().ok(page);
}
}

13
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java

@ -24,6 +24,7 @@ import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO;
import com.epmet.dto.result.GroupPointRankingResultDTO;
import com.epmet.entity.BizPointTotalDetailEntity;
import com.github.pagehelper.PageInfo;
import java.util.List;
import java.util.Map;
@ -135,4 +136,16 @@ public interface BizPointTotalDetailService extends BaseService<BizPointTotalDet
* @return com.epmet.dto.BizPointTotalDetailDTO
*/
BizPointTotalDetailDTO getGroupPoint(GroupPointFormDTO formDTO);
/**
* @description 网格范围内查询小组排名
*
* @param gridId 网格id
* @param pageNo 页码默认0
* @param pageSize 单页条数默认10
* @return
* @author wxz
* @date 2021.09.07 14:18:08
*/
PageData<GroupPointRankingResultDTO> listGroupPointRandingInGridScope(String gridId, Integer pageNo, Integer pageSize);
}

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

@ -22,7 +22,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
@ -30,7 +33,9 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.BizPointTotalDetailDao;
import com.epmet.dto.BizPointTotalDetailDTO;
import com.epmet.dto.form.GroupPointFormDTO;
import com.epmet.resi.group.dto.group.form.GroupFormDTO;
import com.epmet.resi.group.dto.group.form.GroupPointDetailFormDTO;
import com.epmet.resi.group.dto.group.result.GroupDetailResultDTO;
import com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO;
import com.epmet.dto.result.GroupPointRankingResultDTO;
import com.epmet.entity.BizPointTotalDetailEntity;
@ -39,6 +44,9 @@ import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.service.BizPointTotalDetailService;
import com.epmet.service.BizPointUserTotalDetailService;
import com.epmet.service.UserPointActionLogService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -57,7 +65,7 @@ import java.util.stream.Collectors;
* @since v1.0.0 2021-04-20
*/
@Service
public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTotalDetailDao, BizPointTotalDetailEntity> implements BizPointTotalDetailService {
public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTotalDetailDao, BizPointTotalDetailEntity> implements BizPointTotalDetailService, ResultDataResolver {
@Autowired
private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
@ -239,4 +247,122 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl<BizPointTota
return ConvertUtils.sourceToTarget(entity, BizPointTotalDetailDTO.class);
}
@Override
public PageData<GroupPointRankingResultDTO> listGroupPointRandingInGridScope(String gridId, Integer pageNo, Integer pageSize) {
// 1.查询有积分的小组得分排名
PageInfo<BizPointTotalDetailEntity> entityPageInfo = PageHelper.startPage(pageNo, pageSize).doSelectPageInfo(() -> {
LambdaQueryWrapper<BizPointTotalDetailEntity> query = new LambdaQueryWrapper<>();
query.eq(BizPointTotalDetailEntity::getGridId, gridId);
query.eq(BizPointTotalDetailEntity::getBizType, "group");
//query.eq(BizPointTotalDetailEntity::getDelFlag, 0); #用mybatis plus不需要手动指定,框架会自动指定
query.orderByDesc(BizPointTotalDetailEntity::getTotalPoint);
baseDao.selectList(query);
});
List<BizPointTotalDetailEntity> groupList = entityPageInfo.getList();
List<String> groupIds = groupList.stream().map(g -> g.getObjectId()).collect(Collectors.toList());
// 2.将列表填充基本信息并且转换为dto
List<GroupPointRankingResultDTO> rankingInfoDTOs = convertGroupRankingInfoEntity2DTOs(groupIds, groupList);
Page page = new Page(pageNo, pageSize);
// 3.如果不满一页,则填充分数为0的
if (pageSize > groupIds.size()) {
// 查出网格下已有积分的小组id
LambdaQueryWrapper<BizPointTotalDetailEntity> query = new LambdaQueryWrapper<>();
query.eq(BizPointTotalDetailEntity::getGridId, gridId);
query.eq(BizPointTotalDetailEntity::getBizType, "group");
query.select(BizPointTotalDetailEntity::getObjectId);
List<String> existingGroupIds = baseDao.selectObjs(query).stream().map(obj -> obj.toString()).collect(Collectors.toList());
int startRow = page.getStartRow() - existingGroupIds.size();
// 不足0的从0开始
startRow = Math.max(startRow, 0);
List<GroupPointRankingResultDTO> gap;
gap = fillGroupPageGap(existingGroupIds, gridId, startRow, pageSize - groupList.size());
rankingInfoDTOs.addAll(gap);
}
// 4.排名填充
Integer ranking = page.getStartRow() + 1;
for (GroupPointRankingResultDTO g : rankingInfoDTOs) {
g.setRanking(String.valueOf(ranking));
ranking ++;
}
PageData<GroupPointRankingResultDTO> pageData = new PageData<>(rankingInfoDTOs, entityPageInfo.getTotal());
return pageData;
}
/**
* @description 获取分页缺口group ranking信息
*
* @param startRow
* @param rowCount
* @return
* @author wxz
* @date 2021.09.07 16:30:28
*/
private List<GroupPointRankingResultDTO> fillGroupPageGap(List<String> existingGroupIds,String searchScopeObjectId, Integer startRow, Integer rowCount) {
GroupFormDTO form = new GroupFormDTO();
form.setExcludeGroupIds(existingGroupIds);
form.setOrder(GroupFormDTO.OrderTypeEnum.DESC);
form.setSort(GroupFormDTO.SortTypeEnum.CREATE_TIME);
form.setStartRow(startRow);
form.setRowCount(rowCount);
form.setSearchScopeType(GroupFormDTO.SearchScopeTypeEnum.GRID);
form.setSearchScopeObjectId(searchScopeObjectId);
Result<List<GroupDetailResultDTO>> result = resiGroupOpenFeignClient.listGroupDetailsExcludeGroupIds(form);
List<GroupDetailResultDTO> groups = getResultDataOrThrowsException(result, ServiceConstant.RESI_GROUP_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【小组排名】网格内排名:查询积分为0的小组列表失败");
if (CollectionUtils.isEmpty(groups)) {
return new ArrayList<>();
}
return groups.stream().map(g -> {
GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO();
dto.setGroupType(g.getGroupType());
dto.setPoint("0");
dto.setGroupHeadPhoto(g.getGroupHeadPhoto());
dto.setGroupName(g.getGroupName());
dto.setGroupId(g.getGroupId());
return dto;
}).collect(Collectors.toList());
}
/**
* @description 将小组排名信息Entity转化为dto
*
* @param groupList
* @return
* @author wxz
* @date 2021.09.07 15:52:17
*/
private List<GroupPointRankingResultDTO> convertGroupRankingInfoEntity2DTOs(List<String> groupIds, List<BizPointTotalDetailEntity> groupList) {
if (CollectionUtils.isEmpty(groupIds)) {
return new ArrayList<>();
}
// 查询这些小组的基本信息
Result<List<GroupDetailResultDTO>> listResult = resiGroupOpenFeignClient.listGroupDetailsByGroupIds(groupIds);
List<GroupDetailResultDTO> groupInfos = getResultDataOrThrowsException(listResult, ServiceConstant.RESI_GROUP_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【小组排行】批量查询小组信息出错");
// 将小组基本信息转化为map
HashMap<String, GroupDetailResultDTO> groupMap = new HashMap<>();
groupInfos.stream().forEach(g -> groupMap.put(g.getGroupId(), g));
// 将小组信息填充到排名列表中
List<GroupPointRankingResultDTO> rankingDTOs = groupList.stream().map(g -> {
GroupDetailResultDTO groupInfo = groupMap.get(g.getObjectId());
GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO();
dto.setGroupId(g.getObjectId());
dto.setGroupName(groupInfo.getGroupName());
dto.setGroupType(groupInfo.getGroupType());
dto.setPoint(g.getTotalPoint().toString());
dto.setGroupHeadPhoto(groupInfo.getGroupHeadPhoto());
return dto;
}).collect(Collectors.toList());
return rankingDTOs;
}
}

95
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/form/GroupFormDTO.java

@ -1,8 +1,14 @@
package com.epmet.resi.group.dto.group.form;
import lombok.Data;
import sun.security.provider.PolicySpiFile;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.PrimitiveIterator;
/**
* @author zhaoqifeng
@ -11,7 +17,96 @@ import java.io.Serializable;
*/
@Data
public class GroupFormDTO implements Serializable {
private static final long serialVersionUID = 5330629771935235995L;
/** 排除某些指定id之外的组列表 */
public interface GroupDetailsExcludeGroupIds {}
private String groupId;
private String gridId;
/** 小组所属范围:grid网格,customer客户 */
@NotNull(message = "搜索范围类型不能为空", groups = { GroupDetailsExcludeGroupIds.class })
private SearchScopeTypeEnum searchScopeType;
@NotNull(message = "搜索范围对象的ID不能为空", groups = { GroupDetailsExcludeGroupIds.class })
private String searchScopeObjectId;
private List<String> excludeGroupIds;
/** 从第几条开始取 */
private Integer startRow = 0;
/** 取几条数据 */
private Integer rowCount = 10;
@NotNull(message = "排序字段不能为空", groups = { GroupDetailsExcludeGroupIds.class })
private SortTypeEnum sort;
@NotNull(message = "排序方式不能为空", groups = { GroupDetailsExcludeGroupIds.class })
private OrderTypeEnum order;
/**
* @Description 排序类型
* @author wxz
* @date 2021.09.07 17:00:24
*/
public enum SortTypeEnum {
CREATE_TIME("create_time");
private String sortField;
SortTypeEnum(String sortField) {
this.sortField = sortField;
}
public String getSortField() {
return sortField;
}
}
/**
* @Description 排序方式
* @author wxz
* @date 2021.09.07 17:02:05
*/
public enum OrderTypeEnum {
ASC("asc"),
DESC("desc");
private String orderType;
OrderTypeEnum(String orderType) {
this.orderType = orderType;
}
public String getOrderType() {
return orderType;
}
}
/**
* @Description 搜索范围类型枚举
* @author wxz
* @date 2021.09.07 20:14:21
*/
public enum SearchScopeTypeEnum {
CUSTOMER("customer"),
GRID("grid");
private String scopeType;
SearchScopeTypeEnum(String scopeType) {
this.scopeType = scopeType;
}
public String getScopeType() {
return scopeType;
}
}
}

3
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupDetailResultDTO.java

@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
public class GroupDetailResultDTO {
private String groupHeadPhoto;
private String groupId;
private String groupName;
private String groupIntroduction;
private Integer editNumLimit;
@ -17,5 +18,7 @@ public class GroupDetailResultDTO {
private String auditStatus;
private Boolean editable;
private String remark;
/** 群组类型:branch:支部小组,ordinary:楼院小组 */
private String groupType;
}

22
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java

@ -289,4 +289,26 @@ public interface ResiGroupOpenFeignClient {
@PostMapping("resi/group/topic/gettopicinfos")
Result<List<TopicInfoResultDTO>> getTopicInfos(@RequestBody List<String> issueIds);
/**
* @description 根据组id列表批量查询组信息列表
*
* @param groupIds
* @return
* @author wxz
* @date 2021.09.07 15:33:58
*/
@PostMapping("/resi/group/group/list-groupinfos-by-groupids")
Result<List<GroupDetailResultDTO>> listGroupDetailsByGroupIds(@RequestBody List<String> groupIds);
/**
* @description 排除指定的组id之后按照指定顺序取指定个数的组信息
*
* @param form
* @return
* @author wxz
* @date 2021.09.07 17:15:55
*/
@PostMapping("/resi/group/group/list-groupinfos-exclude-groupids")
Result<List<GroupDetailResultDTO>> listGroupDetailsExcludeGroupIds(@RequestBody GroupFormDTO form);
}

10
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java

@ -220,4 +220,14 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
public Result<List<TopicInfoResultDTO>> getTopicInfos(List<String> issueIds) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getTopicInfos", issueIds);
}
@Override
public Result<List<GroupDetailResultDTO>> listGroupDetailsByGroupIds(List<String> groupIds) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listGroupDetailsByGroupIds", groupIds);
}
@Override
public Result<List<GroupDetailResultDTO>> listGroupDetailsExcludeGroupIds(GroupFormDTO form) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "listGroupDetailsExcludeGroupIds", form);
}
}

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

@ -599,4 +599,41 @@ public class ResiGroupController {
public Result<Boolean> initAchievement(@RequestParam String customerId) {
return new Result<Boolean>().ok(statsAchievementService.initAllGroupAchievement(customerId));
}
/**
* @description 根据组id列表批量查询组信息列表
*
* @param groupIds
* @return
* @author wxz
* @date 2021.09.07 15:33:58
*/
@PostMapping("list-groupinfos-by-groupids")
public Result<List<GroupDetailResultDTO>> listGroupDetailsByGroupIds(@RequestBody List<String> groupIds) {
List<GroupDetailResultDTO> groupDetails = resiGroupService.listGroupsByGroupIds(groupIds);
return new Result<List<GroupDetailResultDTO>>().ok(groupDetails);
}
/**
* @description 排除指定的组id之后按照指定顺序取指定个数的组信息
*
* @param form
* @return
* @author wxz
* @date 2021.09.07 17:15:55
*/
@PostMapping("list-groupinfos-exclude-groupids")
public Result<List<GroupDetailResultDTO>> listGroupDetailsExcludeGroupIds(@RequestBody GroupFormDTO form) {
ValidatorUtils.validateEntity(form, GroupFormDTO.GroupDetailsExcludeGroupIds.class);
Integer startRow = form.getStartRow();
Integer rowCount = form.getRowCount();
List<String> excludeGroupIds = form.getExcludeGroupIds();
GroupFormDTO.SortTypeEnum sort = form.getSort();
GroupFormDTO.OrderTypeEnum order = form.getOrder();
GroupFormDTO.SearchScopeTypeEnum searchScopeType = form.getSearchScopeType();
String searchScopeObjectId = form.getSearchScopeObjectId();
List<GroupDetailResultDTO> groups = resiGroupService.listGroupDetailsExcludeGroupIds(excludeGroupIds, startRow, rowCount, searchScopeType.getScopeType(), searchScopeObjectId, sort.getSortField(), order.getOrderType());
return new Result<List<GroupDetailResultDTO>>().ok(groups);
}
}

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

@ -435,4 +435,30 @@ public interface ResiGroupService extends BaseService<ResiGroupEntity> {
* @return com.epmet.resi.group.dto.group.ResiGroupDTO
*/
ResiGroupDTO getGroupInfoAndGroupMember(String groupId);
/**
* @description 根据id列表查询组信息
*
* @param groupIds
* @return
* @author wxz
* @date 2021.09.07 15:27:35
*/
List<GroupDetailResultDTO> listGroupsByGroupIds(List<String> groupIds);
/**
* @description 排除指定的组id之后按照指定顺序取指定个数的组信息
*
* @param excludeGroupIds 排序的组id列表
* @param startRow
* @param rowCount
* @param searchScopeObjectId 小组所属的范围对象id如果是网格那就是网格id如果是客户那就是客户id
* @param searchScopeType 小组所属的范围grid网格customer客户
* @param sortType 排序字段
* @param orderType 排序类型
* @return
* @author wxz
* @date 2021.09.07 17:17:09
*/
List<GroupDetailResultDTO> listGroupDetailsExcludeGroupIds(List<String> excludeGroupIds, Integer startRow, Integer rowCount, String searchScopeType,String searchScopeObjectId, String sortType, String orderType);
}

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

@ -18,8 +18,10 @@
package com.epmet.modules.group.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.messages.GroupAchievementMQMsg;
import com.epmet.commons.tools.constant.*;
@ -80,7 +82,9 @@ import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO;
import com.epmet.resi.group.dto.member.result.AchievementResultDTO;
import com.epmet.resi.group.dto.member.result.GroupAchievementDTO;
import com.epmet.send.SendMqMsgUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import kotlin.jvm.internal.Lambda;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@ -1772,4 +1776,59 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
return resultList;
}
@Override
public List<GroupDetailResultDTO> listGroupsByGroupIds(List<String> groupIds) {
LambdaQueryWrapper<ResiGroupEntity> query = new LambdaQueryWrapper<>();
query.in(ResiGroupEntity::getId, groupIds);
query.orderByDesc(ResiGroupEntity::getCreatedTime);
query.eq(ResiGroupEntity::getDelFlag, 0);
List<ResiGroupEntity> groupEntities = baseDao.selectList(query);
List<GroupDetailResultDTO> groupDtos = groupEntities.stream().map(ge -> {
GroupDetailResultDTO dto = new GroupDetailResultDTO();
dto.setGroupId(ge.getId());
dto.setGroupName(ge.getGroupName());
dto.setGroupHeadPhoto(ge.getGroupHeadPhoto());
dto.setGroupIntroduction(ge.getGroupIntroduction());
dto.setGroupType(ge.getGroupType());
return dto;
}).collect(Collectors.toList());
return groupDtos;
}
@Override
public List<GroupDetailResultDTO> listGroupDetailsExcludeGroupIds(List<String> excludeGroupIds, Integer startRow, Integer rowCount, String searchScopeType, String searchScopeObjectId, String sortType, String orderType) {
LambdaQueryWrapper<ResiGroupEntity> query = new LambdaQueryWrapper<>();
if (CollectionUtils.isNotEmpty(excludeGroupIds)) {
query.notIn(ResiGroupEntity::getId, excludeGroupIds);
}
// 利用pagehelper计算起始条数
query.last(String.format("limit %s, %s", startRow, rowCount));
SFunction<ResiGroupEntity, ?> sortFieldFun = null;
if (GroupFormDTO.SortTypeEnum.CREATE_TIME.getSortField().equals(sortType)) {
sortFieldFun = ResiGroupEntity::getCreatedTime;
}
if (GroupFormDTO.SearchScopeTypeEnum.GRID.getScopeType().equals(searchScopeType)) {
query.eq(ResiGroupEntity::getGridId, searchScopeObjectId);
} else if (GroupFormDTO.SearchScopeTypeEnum.CUSTOMER.getScopeType().equals(searchScopeType)) {
query.eq(ResiGroupEntity::getCustomerId, searchScopeObjectId);
}
if (GroupFormDTO.OrderTypeEnum.ASC.getOrderType().equals(orderType)) {
query.orderByAsc(sortFieldFun);
} else {
query.orderByDesc(sortFieldFun);
}
List<ResiGroupEntity> groupList = baseDao.selectList(query);
return groupList.stream().map(ge -> {
GroupDetailResultDTO dto = new GroupDetailResultDTO();
dto.setGroupId(ge.getId());
dto.setGroupName(ge.getGroupName());
dto.setGroupHeadPhoto(ge.getGroupHeadPhoto());
dto.setGroupIntroduction(ge.getGroupIntroduction());
dto.setGroupType(ge.getGroupType());
return dto;
}).collect(Collectors.toList());
}
}

Loading…
Cancel
Save