diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/ResultDataResolver.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/ResultDataResolver.java
index 1e44b924c2..5b56e64b1a 100644
--- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/ResultDataResolver.java
+++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/feign/ResultDataResolver.java
@@ -30,8 +30,11 @@ public interface ResultDataResolver {
//}
/**
- * @Description 获取Result种的data,如果失败(返回result为null或者result.success为false),那么抛出异常
+ * @Description
* @return
+ * @param targetServiceName 目标service名称
+ * @param errorCode 错误码,可以为空,为空则使用上游服务抛出的错误码
+ * @param errorInternalMsg 错误信息,可以为空,为空则使用上游服务抛出的异常信息
* @author wxz
* @date 2021.06.07 22:45
*/
diff --git a/epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/form/ResiEventNpcListFormDTO.java b/epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/form/ResiEventNpcListFormDTO.java
new file mode 100644
index 0000000000..97b856a8e6
--- /dev/null
+++ b/epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/form/ResiEventNpcListFormDTO.java
@@ -0,0 +1,13 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+/**
+ * @Description 我要报事人大代表列表
+ * @author wxz
+ * @date 2021.08.03 09:16:59
+*/
+@Data
+public class ResiEventNpcListFormDTO {
+ private String gridId;
+}
diff --git a/epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/result/ResiEventNpcResultDTO.java b/epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/result/ResiEventNpcResultDTO.java
new file mode 100644
index 0000000000..6f285807ce
--- /dev/null
+++ b/epmet-module/resi-home/resi-home-client/src/main/java/com/epmet/dto/result/ResiEventNpcResultDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.dto.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description 我要报事-人大代表列表
+ * @author wxz
+ * @date 2021.08.03 09:12:57
+*/
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResiEventNpcResultDTO {
+
+ private String userId;
+
+ private String gridId;
+
+ private String displayName;
+
+ private String headImgUrl;
+
+ private String agencyId;
+}
diff --git a/epmet-module/resi-home/resi-home-server/pom.xml b/epmet-module/resi-home/resi-home-server/pom.xml
index 5bfd93548c..041357ea74 100644
--- a/epmet-module/resi-home/resi-home-server/pom.xml
+++ b/epmet-module/resi-home/resi-home-server/pom.xml
@@ -68,6 +68,16 @@
2.0.0
compile
+
+ com.epmet
+ gov-org-client
+ 2.0.0
+
+
+ com.epmet
+ epmet-user-client
+ 2.0.0
+
diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/controller/ResiEventController.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/controller/ResiEventController.java
index c0a20d039a..fd316f0475 100644
--- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/controller/ResiEventController.java
+++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/controller/ResiEventController.java
@@ -1,8 +1,18 @@
package com.epmet.controller;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dto.form.ResiEventNpcListFormDTO;
+import com.epmet.dto.result.ResiEventNpcResultDTO;
+import com.epmet.service.ResiEventService;
+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;
+
/**
* @Description 群众直报/报事controller
* @author wxz
@@ -12,6 +22,21 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("resi-event")
public class ResiEventController {
+ @Autowired
+ private ResiEventService resiEventService;
+ /**
+ * @Description 查询人大代表列表
+ * @return
+ * @author wxz
+ * @date 2021.08.03 09:17
+ */
+ @PostMapping("/npc-list-ingrid")
+ public Result> listNpc(@RequestBody ResiEventNpcListFormDTO input) {
+ ValidatorUtils.validateEntity(input);
+ String gridId = input.getGridId();
+ List npcs = resiEventService.listNpcByGrid(gridId);
+ return new Result>().ok(npcs);
+ }
}
diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/ResiEventService.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/ResiEventService.java
index 3a426d3326..ec30ef44e8 100644
--- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/ResiEventService.java
+++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/ResiEventService.java
@@ -1,9 +1,20 @@
package com.epmet.service;
+import com.epmet.dto.result.ResiEventNpcResultDTO;
+
+import java.util.List;
+
/**
* @Description 报事service
* @author wxz
* @date 2021.08.02 09:59:16
*/
public interface ResiEventService {
+ /**
+ * @Description 查询网格的人大代表列表
+ * @return
+ * @author wxz
+ * @date 2021.08.03 09:29
+ */
+ List listNpcByGrid(String gridId);
}
diff --git a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java
index 2d8be957f7..b1871afb51 100644
--- a/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java
+++ b/epmet-module/resi-home/resi-home-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java
@@ -1,13 +1,54 @@
package com.epmet.service.impl;
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.exception.EpmetErrorCode;
+import com.epmet.commons.tools.feign.ResultDataResolver;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.constant.BadgeConstant;
+import com.epmet.dto.form.ListUserByBadgeFormDTO;
+import com.epmet.dto.result.GridInfoResultDTO;
+import com.epmet.dto.result.ListUserByBadgeResultDTO;
+import com.epmet.dto.result.ResiEventNpcResultDTO;
+import com.epmet.feign.EpmetUserOpenFeignClient;
+import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.ResiEventService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
- * @Description 报事service
* @author wxz
+ * @Description 报事service
* @date 2021.08.02 09:59:36
-*/
+ */
@Service
-public class ResiEventServiceImpl implements ResiEventService {
+public class ResiEventServiceImpl implements ResiEventService, ResultDataResolver {
+
+ @Autowired
+ GovOrgOpenFeignClient govOrgOpenFeignClient;
+
+ @Autowired
+ private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
+
+ @Override
+ public List listNpcByGrid(String gridId) {
+
+ // 查询网格所属的组织信息
+ Result gridInfoResult = govOrgOpenFeignClient.queryGridInfo(gridId);
+ GridInfoResultDTO gridInfoData = getResultDataOrThrowsException(gridInfoResult, ServiceConstant.GOV_ORG_SERVER, null, null);
+ String parentAgencyId = gridInfoData.getParentAgencyId();
+
+ //查询人大代表列表
+ ListUserByBadgeFormDTO npcForm = new ListUserByBadgeFormDTO(gridId, BadgeConstant.BADGE_KEY_NPC);
+ Result> npcResult = epmetUserOpenFeignClient.listUsersByBadge(npcForm);
+ List npcData = getResultDataOrThrowsException(npcResult, ServiceConstant.EPMET_USER_SERVER, null, null);
+
+ List npcResultList = npcData.stream()
+ .map(npc -> new ResiEventNpcResultDTO(npc.getUserId(), gridId, "人大代表-".concat(npc.getRealName()), npc.getHeadImgUrl(), parentAgencyId))
+ .collect(Collectors.toList());
+
+ return npcResultList;
+ }
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/constant/BadgeConstant.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/constant/BadgeConstant.java
index 3be3ce02c3..c8b52524f2 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/constant/BadgeConstant.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/constant/BadgeConstant.java
@@ -42,4 +42,7 @@ public interface BadgeConstant {
String DEFAULT = "default";
+ // 人大代表徽章KEY
+ String BADGE_KEY_NPC = "NPC";
+
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListUserByBadgeFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListUserByBadgeFormDTO.java
new file mode 100644
index 0000000000..8d616bacf3
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListUserByBadgeFormDTO.java
@@ -0,0 +1,20 @@
+package com.epmet.dto.form;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ListUserByBadgeFormDTO {
+
+ @NotBlank(message = "网格ID不能为空")
+ private String gridId;
+
+ @NotBlank(message = "徽章key不能为空")
+ private String badgeKey;
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ListUserByBadgeResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ListUserByBadgeResultDTO.java
new file mode 100644
index 0000000000..24139d4161
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ListUserByBadgeResultDTO.java
@@ -0,0 +1,20 @@
+package com.epmet.dto.result;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author wxz
+ * @Description 根据徽章查询用户结果集
+ * @date 2021.08.02 10:23:37
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ListUserByBadgeResultDTO {
+ private String userId;
+ private String gridId;
+ private String realName;
+ private String headImgUrl;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
index e111a8fb6c..059ced9e35 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
@@ -605,4 +605,13 @@ public interface EpmetUserOpenFeignClient {
*/
@PostMapping("/epmetuser/staffpatrol/endpatrolJob")
Result endPatrolJob(@RequestBody StartPatrolFormDTO formDTO);
+
+ /**
+ * @Description 根据徽章查询用户列表
+ * @return
+ * @author wxz
+ * @date 2021.08.02 10:27
+ */
+ @PostMapping("/epmetuser/badge/list-users-by-badge")
+ Result> listUsersByBadge(ListUserByBadgeFormDTO input);
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
index 7398ecb56c..31c82beb05 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
@@ -422,4 +422,14 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "endPatrolJob", formDTO);
}
+ /**
+ * @Description 根据徽章查询用户列表
+ * @return
+ * @author wxz
+ * @date 2021.08.03 09:03
+ */
+ @Override
+ public Result> listUsersByBadge(ListUserByBadgeFormDTO input) {
+ return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "listUsersByBadge", input);
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java
index a5d13c581f..192fc3c5d3 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java
@@ -10,11 +10,9 @@ import com.epmet.dto.result.*;
import com.epmet.redis.UserBadgeRedis;
import com.epmet.service.BadgeService;
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 org.springframework.web.bind.annotation.*;
+import javax.validation.constraints.NotBlank;
import java.util.List;
import java.util.Map;
@@ -190,4 +188,21 @@ public class BadgeController {
public Result> userBadges(@RequestBody UserBadgesFormDTO formDTO){
return new Result>().ok(badgeService.userBadges(formDTO));
}
+
+ /**
+ * @Description
+ * @return
+ * @author wxz
+ * @date 2021.08.02 10:27
+ */
+ @PostMapping("list-users-by-badge")
+ public Result> listUsersByBadge(@RequestBody ListUserByBadgeFormDTO input) {
+ ValidatorUtils.validateEntity(input);
+
+ String gridId = input.getGridId();
+ String badgeKey = input.getBadgeKey();
+
+ List users = badgeService.listUsersByBadge(gridId, badgeKey);
+ return new Result>().ok(users);
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java
index a9dc7ee49a..5c4aab8dcb 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/BadgeDao.java
@@ -196,4 +196,12 @@ public interface BadgeDao extends BaseDao {
* @date 2020/11/19 10:18 上午
*/
int selectNextSort(@Param("customerId") String customerId);
+
+ /**
+ * @Description 根据徽章查询人列表
+ * @return
+ * @author wxz
+ * @date 2021.08.02 10:40
+ */
+ List listUsersByBadge(@Param("gridId") String gridId, @Param("badgeKey") String badgeKey);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java
index f89f180458..fad619e87b 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java
@@ -192,4 +192,12 @@ public interface BadgeService extends BaseService {
* @date 2021/4/22 下午4:17
*/
List userBadges(UserBadgesFormDTO formDTO);
+
+ /**
+ * @Description 根据徽章查询用户列表
+ * @return
+ * @author wxz
+ * @date 2021.08.02 10:39
+ */
+ List listUsersByBadge(String gridId, String badgeKey);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java
index dcdd39d4f1..985dd00c46 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java
@@ -480,4 +480,8 @@ public class BadgeServiceImpl extends BaseServiceImpl imp
return result;
}
+ @Override
+ public List listUsersByBadge(String gridId, String badgeKey) {
+ return baseDao.listUsersByBadge(gridId, badgeKey);
+ }
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml
index c9be676412..560867c932 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/BadgeDao.xml
@@ -310,4 +310,24 @@
ORDER BY CREATED_TIME DESC
LIMIT 1
+
+
+
\ No newline at end of file