From 1b1fba4e788995cf711adfa5ef3ee9855fb70f69 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 27 May 2020 16:51:46 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=85=9A=E5=BB=BA=E5=9B=AD=E5=9C=B0-?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E8=AE=AE=E9=A2=98=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9(=E8=AF=9D=E9=A2=98=E5=86=85=E5=AE=B9=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E8=AE=AE=E9=A2=98=E5=BB=BA=E8=AE=AE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/LatestIssueListResultDTO.java | 4 ++-- .../java/com/epmet/constant/IssueConstant.java | 1 - .../com/epmet/feign/ResiGroupFeignClient.java | 8 -------- .../fallback/ResiGroupFeignClientFallBack.java | 5 ----- .../epmet/service/impl/IssueServiceImpl.java | 17 ++--------------- .../topic/controller/ResiTopicController.java | 11 ----------- .../epmet/modules/topic/dao/ResiTopicDao.java | 7 ------- .../modules/topic/service/ResiTopicService.java | 7 ------- .../service/impl/ResiTopicServiceImpl.java | 11 ----------- .../resources/mapper/topic/ResiTopicDao.xml | 12 ------------ 10 files changed, 4 insertions(+), 79 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/LatestIssueListResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/LatestIssueListResultDTO.java index 4a7efdb5ce..9d87df97a8 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/LatestIssueListResultDTO.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/LatestIssueListResultDTO.java @@ -22,9 +22,9 @@ public class LatestIssueListResultDTO implements Serializable { */ private String issueTitle = ""; /** - * 话题内容 + * 话题转议题组长输入的建议 */ - private String topicContent = ""; + private String suggestion = ""; /** * 用户头像 */ diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java index e16fbaaf6b..632d72b70e 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/constant/IssueConstant.java @@ -66,7 +66,6 @@ public interface IssueConstant { String REDIS_KEY = "epmet:issue:"; String SELECT_ISSUEPROJECTRELATION_EXCEPTION = "获取议题项目关系数据失败"; - String SELECT_RESI_GROUP_EXCEPTION = "获取话题数据失败"; /** * 议题表决缓存属性值 supportAmount diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java index e58bb4eb81..26a4e01d16 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java @@ -62,14 +62,6 @@ public interface ResiGroupFeignClient { @PostMapping("/resi/group/topic/checktopicpublisher") Result checkTopicPublisher(@RequestBody CheckTopicPublisherFormDTO formDTO); - /** - * @param topicIdList - * @Author sun - * @Description 批量查询话题信息 - **/ - @PostMapping("/resi/group/topic/gettopiclist/{topicIdList}") - Result> getTopicList(@PathVariable("topicIdList") List topicIdList); - /** * @Description 得到一个网格下的应表数 * @param gridIdFormDTO diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java index b2e646ae20..93191c3b9b 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/fallback/ResiGroupFeignClientFallBack.java @@ -45,11 +45,6 @@ public class ResiGroupFeignClientFallBack implements ResiGroupFeignClient { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "checkTopicPublisher", formDTO); } - @Override - public Result> getTopicList(List topicIdList) { - return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "getTopicList", topicIdList); - } - @Override public Result votableCount(CommonGridIdFormDTO gridIdFormDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "votableCount", gridIdFormDTO); diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 64908c6f3c..07eabdef4d 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -659,19 +659,12 @@ public class IssueServiceImpl extends BaseServiceImpl imp } List userInfoList = listResult.getData(); - //3:调用resi-group服务,批量查询话题内容 - List topicIdList = entityList.stream().map(IssueEntity::getSourceId).collect(Collectors.toList()); - Result> resultTopicList = resiGroupFeignClient.getTopicList(topicIdList); - if (!resultTopicList.success() || null == resultTopicList.getData()) { - throw new RenException(IssueConstant.SELECT_RESI_GROUP_EXCEPTION); - } - List topicList = resultTopicList.getData(); - - //4:遍历组装对象 + //3:遍历组装对象 entityList.forEach(issue -> { LatestIssueListResultDTO resultDTO = new LatestIssueListResultDTO(); resultDTO.setIssueId(issue.getId()); resultDTO.setIssueTitle(issue.getIssueTitle()); + resultDTO.setSuggestion(issue.getSuggestion()); resultDTO.setCreateIssueTime(issue.getCreatedTime().getTime()/1000); userInfoList.forEach(user -> { if (issue.getCreatedBy().equals(user.getUserId())) { @@ -680,12 +673,6 @@ public class IssueServiceImpl extends BaseServiceImpl imp resultDTO.setIssuePublisherName(user.getShowName()); } }); - topicList.forEach(topic -> { - if (issue.getSourceId().equals(topic.getId())) { - //话题内容 - resultDTO.setTopicContent(topic.getTopicContent()); - } - }); returnList.add(resultDTO); }); diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 2ed9de8661..bae7b455c8 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -259,15 +259,4 @@ public class ResiTopicController { ValidatorUtils.validateEntity(formDTO); return new Result().ok(topicService.checkTopicPublisher(formDTO)); } - - /** - * @param topicIdList - * @return - * @Author sun - * @Description 批量查询话题信息 - **/ - @PostMapping(value = "gettopiclist/{topicIdList}") - public Result> getTopicList(@PathVariable("topicIdList") List topicIdList){ - return new Result>().ok(topicService.getTopicList(topicIdList)); - } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java index f09e2b6d3f..9c3b87d48f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java @@ -153,11 +153,4 @@ public interface ResiTopicDao extends BaseDao { */ CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); - /** - * @param topicIdList - * @return - * @Author sun - * @Description 批量查询话题信息 - **/ - List selectTopicListById(@Param("topicIdList") List topicIdList); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index 4fc298ad81..08b8e89fd9 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -264,11 +264,4 @@ public interface ResiTopicService extends BaseService { */ CheckTopicPublisherResultDTO checkTopicPublisher(CheckTopicPublisherFormDTO formDTO); - /** - * @param topicIdList - * @return - * @Author sun - * @Description 批量查询话题信息 - **/ - List getTopicList(List topicIdList); } \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index 9c6ecbc007..718fe179a5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -1167,17 +1167,6 @@ public class ResiTopicServiceImpl extends BaseServiceImpl getTopicList(List topicIdList) { - return baseDao.selectTopicListById(topicIdList); - } - } diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml index e557f84fb5..c8420f242f 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml @@ -446,17 +446,5 @@ AND created_by = #{createdBy} AND id = #{topicId} - - From 26a386738e56e1c6176f1d603d7f7b51c2e96a93 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Wed, 27 May 2020 16:54:50 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gov-issue/gov-issue-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/gov-issue/gov-issue-server/pom.xml | 2 +- .../resi-group/resi-group-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/resi-group/resi-group-server/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml index 3e2c80f07f..7ef2f4d737 100644 --- a/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml +++ b/epmet-module/gov-issue/gov-issue-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: gov-issue-server: container_name: gov-issue-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.35 + image: 192.168.1.130:10080/epmet-cloud-dev/gov-issue-server:0.3.36 ports: - "8101:8101" network_mode: host # 使用现有网络 diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml index eb41c4b3d2..cfbc8f8b8d 100644 --- a/epmet-module/gov-issue/gov-issue-server/pom.xml +++ b/epmet-module/gov-issue/gov-issue-server/pom.xml @@ -2,7 +2,7 @@ - 0.3.35 + 0.3.36 gov-issue com.epmet diff --git a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml index b07c33f2f7..4763a9daa2 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-group-server: container_name: resi-group-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.43 + image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.44 ports: - "8095:8095" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-group/resi-group-server/pom.xml b/epmet-module/resi-group/resi-group-server/pom.xml index 334f1cffde..8152d7931b 100644 --- a/epmet-module/resi-group/resi-group-server/pom.xml +++ b/epmet-module/resi-group/resi-group-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.43 + 0.3.44 com.epmet resi-group From 3fa60cda31a392457e04905300711819b52fdce7 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 27 May 2020 17:06:07 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=B0=8F=E7=BB=84=EF=BC=8C=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E7=BB=99=E7=BB=84=E9=95=BF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/constant/UserMessageConstant.java | 5 ++- .../impl/ResiGroupMemberServiceImpl.java | 42 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java index aae42ec1b6..71bef9e2d4 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java @@ -10,7 +10,10 @@ public interface UserMessageConstant { * 消息标题 */ String GROUP_TITLE = "您有一条小组消息"; - + /** + * 居民申请入群,组长收到的消息通知内容如下: + */ + String APPLY_JOIN_GROUP="居民%s申请加入小组【%s】,请审核"; /** * 组长同意入群申请,用户会收到:您有一条小组消息。 您加入的【组名】已通过审核,请查看。 */ diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java index 6504aec8b9..b0a3192d2c 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.modules.member.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -38,6 +39,7 @@ import com.epmet.feign.MessageFeignClient; import com.epmet.modules.constant.GroupMemberConstant; import com.epmet.modules.constant.UserMessageConstant; import com.epmet.modules.feign.EpmetUserFeignClient; +import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.entity.ResiGroupEntity; import com.epmet.modules.group.redis.ResiGroupRedis; import com.epmet.modules.group.service.ResiGroupService; @@ -114,6 +116,8 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl page(Map params) { @@ -232,8 +236,46 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl resultUserInfo = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); + if (!resultUserInfo.success() || null == resultUserInfo.getData()) { + logger.error(String.format("居民申请入群,给组长发送消息通知错误,调用%s服务查询申请用户名称失败,入参%s", ServiceConstant.EPMET_USER_SERVER, JSON.toJSONString(userResiInfoFormDTO))); + } else { + currentUserName = resultUserInfo.getData().getShowName(); + } + String messageContent = String.format(UserMessageConstant.APPLY_JOIN_GROUP, currentUserName, resiGroupDTO.getGroupName()); + userMessage.setMessageContent(messageContent); + userMessage.setReadFlag(ReadFlagConstant.UN_READ); + userMessage.setTitle(UserMessageConstant.GROUP_TITLE); + //通知群主 + userMessage.setUserId(groupLeader.getCustomerUserId()); + messageFeignClient.saveUserMessage(userMessage); + } catch (Exception e) { + logger.error("居民申请入群,给组长发送消息通知异常"); + e.printStackTrace(); + } + } /** * @param groupMemberListFormDTO * @return com.epmet.commons.tools.utils.Result From 9bf9186f5a5cf9190b4eeb49b35c9cbc7faaa4c2 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 27 May 2020 17:19:13 +0800 Subject: [PATCH 4/4] =?UTF-8?q?130=E6=9C=8D=E5=8A=A1=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=EF=BC=9A=EF=BC=881=EF=BC=89resigroup=E5=B1=85=E6=B0=91?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E5=8A=A0=E5=85=A5=E5=B0=8F=E7=BB=84=EF=BC=8C?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=88=90=E5=8A=9F=E5=90=8E=EF=BC=8C=E7=BB=99?= =?UTF-8?q?=E7=BB=84=E9=95=BF=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=EF=BC=882=EF=BC=89resihome=E6=9C=80=E6=96=B0=E8=AE=AE?= =?UTF-8?q?=E9=A2=98=E6=98=BE=E7=A4=BA=E5=BB=BA=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resi-group/resi-group-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/resi-group/resi-group-server/pom.xml | 2 +- .../resi-home/resi-home-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/resi-home/resi-home-server/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml index 4763a9daa2..9c6ea2001a 100644 --- a/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-group/resi-group-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-group-server: container_name: resi-group-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.44 + image: 192.168.1.130:10080/epmet-cloud-dev/resi-group-server:0.3.45 ports: - "8095:8095" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-group/resi-group-server/pom.xml b/epmet-module/resi-group/resi-group-server/pom.xml index 8152d7931b..f540d28b91 100644 --- a/epmet-module/resi-group/resi-group-server/pom.xml +++ b/epmet-module/resi-group/resi-group-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.44 + 0.3.45 com.epmet resi-group diff --git a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml index 307d893f51..f18ec75211 100644 --- a/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-home/resi-home-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-home-server: container_name: resi-home-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/resi-home-server:0.3.10 + image: 192.168.1.130:10080/epmet-cloud-dev/resi-home-server:0.3.11 ports: - "8104:8104" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-home/resi-home-server/pom.xml b/epmet-module/resi-home/resi-home-server/pom.xml index fe513d928c..2bfa494d1d 100644 --- a/epmet-module/resi-home/resi-home-server/pom.xml +++ b/epmet-module/resi-home/resi-home-server/pom.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - 0.3.10 + 0.3.11 resi-home