diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/GroupPointFormDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/GroupPointFormDTO.java
new file mode 100644
index 0000000000..8da5ab5729
--- /dev/null
+++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/GroupPointFormDTO.java
@@ -0,0 +1,17 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2021/4/21 9:50
+ */
+@Data
+public class GroupPointFormDTO implements Serializable {
+ private static final long serialVersionUID = -3231073030413434313L;
+ private String groupId;
+ private String gridId;
+}
diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/GroupPointRankingResultDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/GroupPointRankingResultDTO.java
new file mode 100644
index 0000000000..275a5917ba
--- /dev/null
+++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/GroupPointRankingResultDTO.java
@@ -0,0 +1,38 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2021/4/21 10:34
+ */
+@NoArgsConstructor
+@Data
+public class GroupPointRankingResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -9215609608003827403L;
+ /**
+ * 排名
+ */
+ private String ranking;
+ /**
+ * 小组名
+ */
+ private String groupName;
+ /**
+ * 小组积分
+ */
+ private String point;
+ /**
+ * 是否本小组
+ */
+ private String isMine;
+ /**
+ * 小组ID
+ */
+ private String groupId;
+}
diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointRankingResultDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointRankingResultDTO.java
new file mode 100644
index 0000000000..c063eb8286
--- /dev/null
+++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointRankingResultDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2021/4/21 10:05
+ */
+@NoArgsConstructor
+@Data
+public class PointRankingResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -5383837225811609227L;
+ /**
+ * 头像
+ */
+ private String headPhoto;
+ /**
+ * 支部小组-姓名/普通小组-昵称
+ */
+ private String name;
+ /**
+ * 积分
+ */
+ private String point;
+ /**
+ * 排名
+ */
+ private String ranking;
+ /**
+ * 是否本人
+ */
+ private String isMine;
+ /**
+ * 用户ID
+ */
+ @JsonIgnore
+ private String userId;
+}
diff --git a/epmet-module/epmet-point/epmet-point-server/pom.xml b/epmet-module/epmet-point/epmet-point-server/pom.xml
index d582216f11..8669a27eb7 100644
--- a/epmet-module/epmet-point/epmet-point-server/pom.xml
+++ b/epmet-module/epmet-point/epmet-point-server/pom.xml
@@ -87,6 +87,12 @@
2.0.0
compile
+
+ com.epmet
+ resi-group-client
+ 2.0.0
+ compile
+
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java
new file mode 100644
index 0000000000..0715bb6c8e
--- /dev/null
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/GroupPointController.java
@@ -0,0 +1,76 @@
+package com.epmet.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.GroupPointFormDTO;
+import com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO;
+import com.epmet.dto.result.GroupPointRankingResultDTO;
+import com.epmet.dto.result.PointRankingResultDTO;
+import com.epmet.service.BizPointTotalDetailService;
+import com.epmet.service.BizPointUserTotalDetailService;
+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 java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * 小组积分
+ * @date 2021/4/21 9:45
+ */
+@RestController
+@RequestMapping("group/point")
+public class GroupPointController {
+
+ @Autowired
+ private BizPointUserTotalDetailService bizPointUserTotalDetailService;
+ @Autowired
+ private BizPointTotalDetailService bizPointTotalDetailService;
+
+ /**
+ * 小组积分贡献榜
+ *
+ * @param tokenDto
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:02
+ */
+ @PostMapping("pointranking")
+ public Result> pointRanking(@LoginUser TokenDto tokenDto, @RequestBody GroupPointFormDTO formDTO) {
+ List list = bizPointUserTotalDetailService.pointRanking(tokenDto, formDTO);
+ return new Result>().ok(list);
+ }
+
+ /**
+ * 网格小组积分排行
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:02
+ */
+ @PostMapping("grouppointranking")
+ public Result> groupPointRanking(@RequestBody GroupPointFormDTO formDTO) {
+ List list = bizPointTotalDetailService.groupPointRanking(formDTO);
+ return new Result>().ok(list);
+ }
+
+ /**
+ * 小组积分详情
+ *
+ * @param formDTO
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:02
+ */
+ @PostMapping("pointdetail")
+ public Result pointDetail(@RequestBody GroupPointFormDTO formDTO) {
+ GroupPointDetailResultDTO result = bizPointTotalDetailService.pointDetail(formDTO);
+ return new Result().ok(result);
+ }
+}
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/BizPointUserTotalDetailDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/BizPointUserTotalDetailDao.java
index f195ab4c82..0813114d27 100644
--- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/BizPointUserTotalDetailDao.java
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/BizPointUserTotalDetailDao.java
@@ -20,6 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.BizPointUserTotalDetailEntity;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
/**
* 按业务类型积分总计
@@ -29,5 +30,15 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface BizPointUserTotalDetailDao extends BaseDao {
-
+
+ /**
+ * 获取今日积分增量
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:56
+ * @param type
+ * @param objectId
+ * @return java.lang.Integer
+ */
+ Integer selectIncrease(@Param("type")String type, @Param("objectId")String objectId);
+
}
\ No newline at end of file
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java
index 5b0c12f479..f72e49ba39 100644
--- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointTotalDetailService.java
@@ -20,6 +20,9 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.BizPointTotalDetailDTO;
+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 java.util.List;
@@ -33,73 +36,94 @@ import java.util.Map;
*/
public interface BizPointTotalDetailService extends BaseService {
- /**
- * 默认分页
- *
- * @param params
- * @return PageData
- * @author generator
- * @date 2021-04-20
- */
- PageData page(Map params);
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-04-20
+ */
+ PageData page(Map params);
- /**
- * 默认查询
- *
- * @param params
- * @return java.util.List
- * @author generator
- * @date 2021-04-20
- */
- List list(Map params);
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-04-20
+ */
+ List list(Map params);
- /**
- * 单条查询
- *
- * @param id
- * @return BizPointTotalDetailDTO
- * @author generator
- * @date 2021-04-20
- */
- BizPointTotalDetailDTO get(String id);
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return BizPointTotalDetailDTO
+ * @author generator
+ * @date 2021-04-20
+ */
+ BizPointTotalDetailDTO get(String id);
- /**
- * 默认保存
- *
- * @param dto
- * @return void
- * @author generator
- * @date 2021-04-20
- */
- void save(BizPointTotalDetailDTO dto);
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-04-20
+ */
+ void save(BizPointTotalDetailDTO dto);
- /**
- * 默认更新
- *
- * @param dto
- * @return void
- * @author generator
- * @date 2021-04-20
- */
- void update(BizPointTotalDetailDTO dto);
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-04-20
+ */
+ void update(BizPointTotalDetailDTO dto);
- /**
- * 批量删除
- *
- * @param ids
- * @return void
- * @author generator
- * @date 2021-04-20
- */
- void delete(String[] ids);
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-04-20
+ */
+ void delete(String[] ids);
- /**
- * 根据业务类型查找数据
- * @author zhaoqifeng
- * @date 2021/4/20 16:53
- * @param type
- * @param objectId
- * @return com.epmet.dto.BizPointTotalDetailDTO
- */
- BizPointTotalDetailDTO getDataByObject(String type, String objectId);
+ /**
+ * 根据业务类型查找数据
+ *
+ * @param type
+ * @param objectId
+ * @return com.epmet.dto.BizPointTotalDetailDTO
+ * @author zhaoqifeng
+ * @date 2021/4/20 16:53
+ */
+ BizPointTotalDetailDTO getDataByObject(String type, String objectId);
+
+ /**
+ * 小组积分详情
+ *
+ * @param formDTO
+ * @return com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:05
+ */
+ GroupPointDetailResultDTO pointDetail(GroupPointFormDTO formDTO);
+
+ /**
+ * 网格小组积分排行
+ *
+ * @param formDTO
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:05
+ */
+ List groupPointRanking(GroupPointFormDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointUserTotalDetailService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointUserTotalDetailService.java
index a57b72223a..51e8172f7c 100644
--- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointUserTotalDetailService.java
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/BizPointUserTotalDetailService.java
@@ -19,7 +19,10 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.BizPointUserTotalDetailDTO;
+import com.epmet.dto.form.GroupPointFormDTO;
+import com.epmet.dto.result.PointRankingResultDTO;
import com.epmet.entity.BizPointUserTotalDetailEntity;
import java.util.List;
@@ -33,85 +36,108 @@ import java.util.Map;
*/
public interface BizPointUserTotalDetailService extends BaseService {
- /**
- * 默认分页
- *
- * @param params
- * @return PageData
- * @author generator
- * @date 2021-04-20
- */
- PageData page(Map params);
+ /**
+ * 默认分页
+ *
+ * @param params
+ * @return PageData
+ * @author generator
+ * @date 2021-04-20
+ */
+ PageData page(Map params);
- /**
- * 默认查询
- *
- * @param params
- * @return java.util.List
- * @author generator
- * @date 2021-04-20
- */
- List list(Map params);
+ /**
+ * 默认查询
+ *
+ * @param params
+ * @return java.util.List
+ * @author generator
+ * @date 2021-04-20
+ */
+ List list(Map params);
- /**
- * 单条查询
- *
- * @param id
- * @return BizPointUserTotalDetailDTO
- * @author generator
- * @date 2021-04-20
- */
- BizPointUserTotalDetailDTO get(String id);
+ /**
+ * 单条查询
+ *
+ * @param id
+ * @return BizPointUserTotalDetailDTO
+ * @author generator
+ * @date 2021-04-20
+ */
+ BizPointUserTotalDetailDTO get(String id);
- /**
- * 默认保存
- *
- * @param dto
- * @return void
- * @author generator
- * @date 2021-04-20
- */
- void save(BizPointUserTotalDetailDTO dto);
+ /**
+ * 默认保存
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-04-20
+ */
+ void save(BizPointUserTotalDetailDTO dto);
- /**
- * 默认更新
- *
- * @param dto
- * @return void
- * @author generator
- * @date 2021-04-20
- */
- void update(BizPointUserTotalDetailDTO dto);
+ /**
+ * 默认更新
+ *
+ * @param dto
+ * @return void
+ * @author generator
+ * @date 2021-04-20
+ */
+ void update(BizPointUserTotalDetailDTO dto);
- /**
- * 批量删除
- *
- * @param ids
- * @return void
- * @author generator
- * @date 2021-04-20
- */
- void delete(String[] ids);
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return void
+ * @author generator
+ * @date 2021-04-20
+ */
+ void delete(String[] ids);
- /**
- * 根据业务类型查找用户数据
- * @author zhaoqifeng
- * @date 2021/4/20 16:53
- * @param type
- * @param objectId
- * @param userId
- * @return com.epmet.dto.BizPointTotalDetailDTO
- */
- BizPointUserTotalDetailDTO getDataByObject(String type, String objectId, String userId);
+ /**
+ * 根据业务类型查找用户数据
+ *
+ * @param type
+ * @param objectId
+ * @param userId
+ * @return com.epmet.dto.BizPointTotalDetailDTO
+ * @author zhaoqifeng
+ * @date 2021/4/20 16:53
+ */
+ BizPointUserTotalDetailDTO getDataByObject(String type, String objectId, String userId);
- /**
- * 根据业务类型查找积分总和
- * @author zhaoqifeng
- * @date 2021/4/20 17:21
- * @param type
- * @param objectId
- * @return java.lang.Integer
- */
- Integer getTotalByObject(String type, String objectId);
+ /**
+ * 根据业务类型查找积分总和
+ *
+ * @param type
+ * @param objectId
+ * @return java.lang.Integer
+ * @author zhaoqifeng
+ * @date 2021/4/20 17:21
+ */
+ Integer getTotalByObject(String type, String objectId);
+
+ /**
+ * 小组积分贡献榜
+ *
+ * @param tokenDto
+ * @param formDTO
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:06
+ */
+ List pointRanking(TokenDto tokenDto, GroupPointFormDTO formDTO);
+
+ /**
+ * 获取今日增量
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:41
+ * @param type
+ * @param objectId
+ * @return java.lang.Integer
+ */
+ Integer getIncrease(String type, String objectId);
}
\ No newline at end of file
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
index b48c131c73..e0a03fe667 100644
--- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointTotalDetailServiceImpl.java
@@ -20,21 +20,32 @@ package com.epmet.service.impl;
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.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
+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.result.GroupPointDetailResultDTO;
+import com.epmet.dto.result.GroupPointRankingResultDTO;
import com.epmet.entity.BizPointTotalDetailEntity;
+import com.epmet.resi.group.dto.group.ResiGroupDTO;
+import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.service.BizPointTotalDetailService;
+import com.epmet.service.BizPointUserTotalDetailService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 按业务类型积分总计
@@ -45,6 +56,10 @@ import java.util.Map;
@Service
public class BizPointTotalDetailServiceImpl extends BaseServiceImpl implements BizPointTotalDetailService {
+ @Autowired
+ private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
+ @Autowired
+ private BizPointUserTotalDetailService bizPointUserTotalDetailService;
@Override
public PageData page(Map params) {
@@ -112,4 +127,72 @@ public class BizPointTotalDetailServiceImpl extends BaseServiceImpl result = resiGroupOpenFeignClient.groupPointDetail(formDTO.getGroupId());
+ if (!result.success() || null == result.getData()) {
+ throw new RenException(result.getCode(), result.getMsg());
+ }
+ GroupPointDetailResultDTO detail = result.getData();
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("BIZ_TYPE", "group")
+ .eq("OBJECT_ID", formDTO.getGroupId())
+ .eq("DEL_FLAG", NumConstant.ZERO_STR);
+ 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());
+ detail.setIncrease(increase.toString());
+ detail.setTotal(entity.getTotalPoint().toString());
+ detail.setCurrentPoint(entity.getTotalPoint().toString());
+ return detail;
+ }
+
+ /**
+ * 网格小组积分排行
+ *
+ * @param formDTO
+ * @return java.util.List
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:05
+ */
+ @Override
+ public List groupPointRanking(GroupPointFormDTO formDTO) {
+ List list = new ArrayList<>();
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("BIZ_TYPE", "group")
+ .eq("GRID_ID", formDTO.getGridId())
+ .eq("DEL_FLAG", NumConstant.ZERO_STR)
+ .orderByDesc("TOTAL_POINT");
+ List totalDetailList = baseDao.selectList(wrapper);
+ Result> groupList = resiGroupOpenFeignClient.getGroupListByGrid(formDTO.getGridId());
+ list =
+ totalDetailList.stream().flatMap(detail -> groupList.getData().stream().filter(item -> item.getId().equals(detail.getObjectId())).map(group -> {
+ GroupPointRankingResultDTO dto = new GroupPointRankingResultDTO();
+ dto.setGroupId(group.getId());
+ dto.setGroupName(group.getGroupName());
+ dto.setPoint(detail.getTotalPoint().toString());
+ 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;
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java
index e071670bd0..e6fc360f26 100644
--- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/BizPointUserTotalDetailServiceImpl.java
@@ -21,20 +21,32 @@ 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.exception.RenException;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.BizPointUserTotalDetailDao;
import com.epmet.dto.BizPointUserTotalDetailDTO;
+import com.epmet.dto.form.GroupPointFormDTO;
+import com.epmet.dto.result.PointRankingResultDTO;
+import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.entity.BizPointUserTotalDetailEntity;
+import com.epmet.feign.EpmetUserOpenFeignClient;
+import com.epmet.resi.group.dto.group.ResiGroupDTO;
+import com.epmet.resi.group.feign.ResiGroupOpenFeignClient;
import com.epmet.service.BizPointUserTotalDetailService;
import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 按业务类型积分总计
@@ -45,6 +57,10 @@ import java.util.Map;
@Service
public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl implements BizPointUserTotalDetailService {
+ @Autowired
+ private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
+ @Autowired
+ private ResiGroupOpenFeignClient resiGroupOpenFeignClient;
@Override
public PageData page(Map params) {
@@ -113,7 +129,8 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>();
wrapper.eq("BIZ_TYPE", type)
.eq("OBJECT_ID", objectId)
- .eq("USER_ID", userId);
+ .eq("USER_ID", userId)
+ .eq("DEL_FLAG", NumConstant.ZERO_STR);
BizPointUserTotalDetailEntity entity = baseDao.selectOne(wrapper);
return ConvertUtils.sourceToTarget(entity, BizPointUserTotalDetailDTO.class);
}
@@ -130,8 +147,10 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl wrapper = new QueryWrapper<>();
- wrapper.select("sum(TOTAL_POINT) as TOTAL_POINT").eq("BIZ_TYPE", type)
- .eq("OBJECT_ID", objectId);
+ wrapper.select("IFNULL(SUM(TOTAL_POINT), 0) as TOTAL_POINT")
+ .eq("BIZ_TYPE", type)
+ .eq("OBJECT_ID", objectId)
+ .eq("DEL_FLAG", NumConstant.ZERO_STR);
BizPointUserTotalDetailEntity entity = baseDao.selectOne(wrapper);
if (null == entity) {
return NumConstant.ZERO;
@@ -139,4 +158,78 @@ public class BizPointUserTotalDetailServiceImpl extends BaseServiceImpl
+ * @author zhaoqifeng
+ * @date 2021/4/21 14:06
+ */
+ @Override
+ public List pointRanking(TokenDto tokenDto, GroupPointFormDTO formDTO) {
+ List list = new ArrayList<>();
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("BIZ_TYPE", "group")
+ .eq("OBJECT_ID", formDTO.getGroupId())
+ .eq("DEL_FLAG", NumConstant.ZERO_STR)
+ .orderByDesc("TOTAL_POINT");
+ List userTotalList = baseDao.selectList(wrapper);
+ int i = 1;
+ list = userTotalList.stream().map(item -> {
+ PointRankingResultDTO dto = new PointRankingResultDTO();
+ dto.setUserId(item.getUserId());
+ dto.setPoint(item.getTotalPoint().toString());
+ if (tokenDto.getUserId().equals(item.getUserId())) {
+ dto.setIsMine(NumConstant.ONE_STR);
+ } else {
+ dto.setIsMine(NumConstant.ZERO_STR);
+ }
+ return dto;
+ }).collect(Collectors.toList());
+ for (PointRankingResultDTO dto : list) {
+ dto.setRanking(String.valueOf(i));
+ i++;
+ }
+
+ //获取小组信息
+ Result group = resiGroupOpenFeignClient.getGroupDetail(formDTO.getGroupId());
+ if (!group.success() || null == group.getData()) {
+ throw new RenException(group.getCode(), group.getMsg());
+ }
+ //获取用户信息
+ List userIds = userTotalList.stream().map(BizPointUserTotalDetailEntity :: getUserId).collect(Collectors.toList());
+ Result> userInfoListResult = epmetUserOpenFeignClient.queryUserBaseInfo(userIds);
+ if (!userInfoListResult.success() || null == userInfoListResult.getData()) {
+ throw new RenException(userInfoListResult.getCode(), userInfoListResult.getMsg());
+ }
+ list.forEach(item -> userInfoListResult.getData().stream().filter(baseInfo -> item.getUserId().equals(baseInfo.getUserId())).forEach(
+ user -> {
+ //楼院小组显示昵称,支部小组显示姓名
+ if (("ordinary").equals(group.getData().getGroupType())) {
+ item.setName(user.getNickname());
+ } else {
+ item.setName(user.getName());
+ }
+ item.setHeadPhoto(user.getHeadImgUrl());
+ }
+ ));
+ return list;
+ }
+
+ /**
+ * 获取今日增量
+ *
+ * @param type
+ * @param objectId
+ * @return java.lang.Integer
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:41
+ */
+ @Override
+ public Integer getIncrease(String type, String objectId) {
+ return baseDao.selectIncrease(type, objectId);
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/BizPointUserTotalDetailDao.xml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/BizPointUserTotalDetailDao.xml
index 1ecd690a58..a846469881 100644
--- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/BizPointUserTotalDetailDao.xml
+++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/BizPointUserTotalDetailDao.xml
@@ -19,6 +19,14 @@
+
\ No newline at end of file
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java
index b2d57ecc1d..3153903240 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/ResiGroupDTO.java
@@ -85,6 +85,16 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审
*/
private String visitSwitch;
+ /**
+ * 小组类型(ordinary:楼院小组 branch:支部小组)
+ */
+ private String groupType;
+
+ /**
+ * 小组等级
+ */
+ private Integer level;
+
/**
* 删除标记 0:未删除,1:已删除
*/
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupPointDetailResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupPointDetailResultDTO.java
new file mode 100644
index 0000000000..bc98f16da2
--- /dev/null
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/group/result/GroupPointDetailResultDTO.java
@@ -0,0 +1,46 @@
+package com.epmet.resi.group.dto.group.result;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2021/4/21 10:37
+ */
+@NoArgsConstructor
+@Data
+public class GroupPointDetailResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -1158521486690554498L;
+ /**
+ * 小组当前等级
+ */
+ private String level;
+ /**
+ * 总积分
+ */
+ private String total;
+ /**
+ * 今日增长
+ */
+ private String increase;
+ /**
+ * 距离升级所需积分
+ */
+ private String toUpgrade;
+ /**
+ * 下一等级积分
+ */
+ private String nextLevelPoint;
+ /**
+ * 下一等级
+ */
+ private String nextLevel;
+ /**
+ * 当前积分
+ */
+ private String currentPoint;
+}
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/AchievementResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/AchievementResultDTO.java
new file mode 100644
index 0000000000..f8daf7af21
--- /dev/null
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/AchievementResultDTO.java
@@ -0,0 +1,17 @@
+package com.epmet.resi.group.dto.member.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2021/4/22 9:24
+ */
+@Data
+public class AchievementResultDTO implements Serializable {
+ private static final long serialVersionUID = 8079550501852632061L;
+ private List achievement;
+}
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupAchievementDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupAchievementDTO.java
new file mode 100644
index 0000000000..312a5759c2
--- /dev/null
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/GroupAchievementDTO.java
@@ -0,0 +1,17 @@
+package com.epmet.resi.group.dto.member.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhaoqifeng
+ * @dscription
+ * @date 2021/4/22 9:42
+ */
+@Data
+public class GroupAchievementDTO implements Serializable {
+ private static final long serialVersionUID = 2195790168656351743L;
+ private String groupName;
+ private String achievementName;
+}
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
index d604e0abc6..ff0039c9d9 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java
@@ -5,10 +5,7 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.group.form.*;
-import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO;
-import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO;
-import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO;
-import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
+import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.*;
@@ -216,4 +213,34 @@ public interface ResiGroupOpenFeignClient {
**/
@PostMapping(value = "/resi/group/topic/topicattachmentlist")
Result topicAttachmentList(@RequestBody TopicAttachmentFormDTO formDTO);
+
+ /**
+ * 获取小组详情
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:20
+ * @param groupId
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("resi/group/group/groupDetail/{groupId}")
+ Result getGroupDetail(@PathVariable String groupId);
+
+ /**
+ * 获取网格下小组
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:57
+ * @param gridId
+ * @return com.epmet.commons.tools.utils.Result>
+ */
+ @PostMapping("resi/group/group/groupList/{gridId}")
+ Result> getGroupListByGrid(@PathVariable String gridId);
+
+ /**
+ * 小组积分详情
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:30
+ * @param groupId
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("resi/group/group/groupPointDetail/{groupId}")
+ Result groupPointDetail(@PathVariable String groupId);
}
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
index b53570bfa8..5b7dec1ffe 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java
@@ -5,10 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.group.form.*;
-import com.epmet.resi.group.dto.group.result.ApplicationDetailCopyResultDTO;
-import com.epmet.resi.group.dto.group.result.ApplyingGroupResultDTO;
-import com.epmet.resi.group.dto.group.result.GroupEditionDetailResultDTO;
-import com.epmet.resi.group.dto.group.result.GroupInfoResultDTO;
+import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.topic.MyCreateTopicsFormDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.*;
@@ -157,4 +154,43 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien
public Result topicAttachmentList(TopicAttachmentFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicAttachmentList", formDTO);
}
+
+ /**
+ * 获取小组详情
+ *
+ * @param groupId
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:20
+ */
+ @Override
+ public Result getGroupDetail(String groupId) {
+ return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getGroupDetail", groupId);
+ }
+
+ /**
+ * 获取网格下小组
+ *
+ * @param gridId
+ * @return com.epmet.commons.tools.utils.Result>
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:57
+ */
+ @Override
+ public Result> getGroupListByGrid(String gridId) {
+ return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getGroupListByGrid", gridId);
+ }
+
+ /**
+ * 小组积分详情
+ *
+ * @param groupId
+ * @return com.epmet.commons.tools.utils.Result
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:30
+ */
+ @Override
+ public Result groupPointDetail(String groupId) {
+ return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "groupPointDetail", groupId);
+ }
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
index fb867c8a72..c168a3453d 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/controller/ResiGroupController.java
@@ -31,13 +31,11 @@ import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO;
import com.epmet.resi.group.dto.member.form.ResiIdentityFormDTO;
+import com.epmet.resi.group.dto.member.result.AchievementResultDTO;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
-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 org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -515,4 +513,53 @@ public class ResiGroupController {
return new Result().ok(resiGroupService.achievementDetail(formDTO));
}
+ /**
+ * 获取小组详情
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:17
+ * @param groupId
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("groupDetail/{groupId}")
+ public Result getGroupDetail(@PathVariable String groupId) {
+ ResiGroupDTO groupDTO = resiGroupService.get(groupId);
+ return new Result().ok(groupDTO);
+ }
+
+ /**
+ * 获取网格下小组
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:57
+ * @param gridId
+ * @return com.epmet.commons.tools.utils.Result>
+ */
+ @PostMapping("groupList/{gridId}")
+ public Result> getGroupListByGrid(@PathVariable String gridId) {
+ List list = resiGroupService.getGroupListByGrid(gridId);
+ return new Result>().ok(list);
+ }
+
+ /**
+ * 小组积分详情
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:22
+ * @param groupId
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("groupPointDetail/{groupId}")
+ public Result groupPointDetail(@PathVariable String groupId) {
+ return new Result().ok(resiGroupService.groupPointDetail(groupId));
+ }
+
+ /**
+ * 小组近段时间实现的成就列表
+ * @author zhaoqifeng
+ * @date 2021/4/22 9:27
+ * @param tokenDto
+ * @return com.epmet.commons.tools.utils.Result
+ */
+ @PostMapping("achievement")
+ public Result achievement(@LoginUser TokenDto tokenDto) {
+ return new Result().ok(resiGroupService.achievement(tokenDto));
+ }
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java
index 9a11aa39c2..e1d346eae0 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/dao/ResiGroupDao.java
@@ -24,6 +24,7 @@ import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
+import com.epmet.resi.group.dto.member.result.GroupAchievementDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -236,4 +237,13 @@ public interface ResiGroupDao extends BaseDao {
* @Date 2020/12/25 13:18
**/
List queryGroupProcessingCount(@Param("gridIdList") List gridIdList);
+
+ /**
+ * 我所在小组最近完成的成就
+ * @author zhaoqifeng
+ * @date 2021/4/22 9:47
+ * @param userId
+ * @return java.util.List
+ */
+ List selectRecentGroupAchievements(@Param("userId") String userId);
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java
index 1c80c117eb..b50f50a417 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/entity/ResiGroupEntity.java
@@ -83,4 +83,14 @@ Ps: 如果一个小组被拒绝,当前小组的状态将永久停留在“审
* VISIT_SWITCH 小组是否允许参观:允许:open;不允许:closed
*/
private String visitSwitch;
+
+ /**
+ * 小组类型(ordinary:楼院小组 branch:支部小组)
+ */
+ private String groupType;
+
+ /**
+ * 小组等级
+ */
+ private Integer level;
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
index c335dfe438..197fd98692 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/ResiGroupService.java
@@ -20,6 +20,7 @@ package com.epmet.modules.group.service;
import com.epmet.commons.mybatis.service.BaseService;
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.modules.group.entity.ResiGroupEntity;
import com.epmet.resi.group.dto.UserRoleDTO;
@@ -28,6 +29,8 @@ import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.form.EditAuditSwitchFormDTO;
+import com.epmet.resi.group.dto.member.result.AchievementResultDTO;
+import jdk.nashorn.internal.parser.Token;
import java.util.HashMap;
import java.util.List;
@@ -379,4 +382,31 @@ public interface ResiGroupService extends BaseService {
* @return com.epmet.resi.group.dto.group.result.AchievementDetailResultDTO
*/
AchievementDetailResultDTO achievementDetail(GroupFormDTO formDTO);
+
+ /**
+ * 获取网格下小组列表
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:42
+ * @param gridId
+ * @return java.util.List
+ */
+ List getGroupListByGrid(String gridId);
+
+ /**
+ * 小组积分详情
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:22
+ * @param groupId
+ * @return com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO
+ */
+ GroupPointDetailResultDTO groupPointDetail(String groupId);
+
+ /**
+ * 小组近段时间实现的成就列表
+ * @author zhaoqifeng
+ * @date 2021/4/22 9:27
+ * @param tokenDto
+ * @return com.epmet.resi.group.dto.member.result.AchievementResultDTO
+ */
+ AchievementResultDTO achievement(TokenDto tokenDto);
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
index 7ea4720a69..1235f88966 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
@@ -30,6 +30,7 @@ import com.epmet.commons.tools.scan.param.ImgTaskDTO;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
import com.epmet.commons.tools.scan.param.TextTaskDTO;
import com.epmet.commons.tools.scan.result.SyncScanResult;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
@@ -40,6 +41,7 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
+import com.epmet.group.constant.GroupConstant;
import com.epmet.modules.constant.UserMessageConstant;
import com.epmet.modules.feign.EpmetMessageFeignClient;
import com.epmet.modules.feign.EpmetUserFeignClient;
@@ -57,6 +59,7 @@ import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.redis.ResiGroupMemberRedis;
import com.epmet.modules.member.service.GroupMemeberOperationService;
import com.epmet.modules.member.service.ResiGroupMemberService;
+import com.epmet.modules.support.GroupLevelUtils;
import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.*;
import com.epmet.resi.group.dto.UserRoleDTO;
@@ -69,6 +72,8 @@ import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberInfoRedisDTO;
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.github.pagehelper.PageHelper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -1209,6 +1214,66 @@ public class ResiGroupServiceImpl extends BaseServiceImpl
+ * @author zhaoqifeng
+ * @date 2021/4/21 15:42
+ */
+ @Override
+ public List getGroupListByGrid(String gridId) {
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("GRID_ID", gridId)
+ .eq("STATE", GroupStateConstant.GROUP_APPROVED)
+ .eq("DEL_FLAG", NumConstant.ZERO_STR);
+ List list = baseDao.selectList(wrapper);
+ return ConvertUtils.sourceToTarget(list, ResiGroupDTO.class);
+ }
+
+ /**
+ * 小组积分详情
+ *
+ * @param groupId
+ * @return com.epmet.resi.group.dto.group.result.GroupPointDetailResultDTO
+ * @author zhaoqifeng
+ * @date 2021/4/21 16:22
+ */
+ @Override
+ public GroupPointDetailResultDTO groupPointDetail(String groupId) {
+ GroupPointDetailResultDTO result = new GroupPointDetailResultDTO();
+ ResiGroupEntity group = baseDao.selectById(groupId);
+ Integer nextLevel = group.getLevel() + 1;
+ Integer nextLevelPoint = GroupLevelUtils.getPoint(nextLevel);
+ result.setLevel("LV" + group.getLevel().toString());
+ result.setNextLevel("LV" + nextLevel.toString());
+ result.setNextLevelPoint(nextLevelPoint.toString());
+ return result;
+ }
+
+ /**
+ * 小组近段时间实现的成就列表
+ *
+ * @param tokenDto
+ * @return com.epmet.resi.group.dto.member.result.AchievementResultDTO
+ * @author zhaoqifeng
+ * @date 2021/4/22 9:27
+ */
+ @Override
+ public AchievementResultDTO achievement(TokenDto tokenDto) {
+ AchievementResultDTO result = new AchievementResultDTO();
+ List achievements = new ArrayList<>();
+ List list = baseDao.selectRecentGroupAchievements(tokenDto.getUserId());
+ if (CollectionUtils.isNotEmpty(list)) {
+ achievements = list.stream().map(item -> {
+ return item.getGroupName() + ":" + "达成“" + item.getAchievementName() + "”" + "成就";
+ }).collect(Collectors.toList());
+ }
+ result.setAchievement(achievements);
+ return result;
+ }
+
@Override
public GroupDetailResultDTO getGroupDetail(String groupId) {
GroupDetailResultDTO groupDetail = new GroupDetailResultDTO();
diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
index 760a420020..7e3964af2f 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
+++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/group/ResiGroupDao.xml
@@ -523,4 +523,19 @@
GROUP BY
temp.gridId
+