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