getDetail(ResiWarmGetDetailFormDTO formDTO) {
+ return resiPartymemberFeignClient.getDetail(formDTO);
+ }
+
}
diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java
index 03283c179a..943a096740 100644
--- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java
+++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedController.java
@@ -43,6 +43,7 @@ public class ResiWarmheartedController {
**/
@PostMapping("submit")
public Result submit(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmheartedSubmitFormDTO formDTO) {
+ formDTO.setApp(tokenDTO.getApp());
ValidatorUtils.validateEntity(formDTO);
return resiWarmheartedService.submit(tokenDTO, formDTO);
}
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditApproveFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditApproveFormDTO.java
new file mode 100644
index 0000000000..058627678a
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditApproveFormDTO.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.resi.partymember.dto.warmhearted.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+
+/**
+ * 政府端-人工审核热心居民申请-审核通过-入参配置
+ * @author sun
+ */
+@Data
+public class ResiWarmAuditApproveFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 热心居民申请id
+ */
+ @NotBlank(message = "申请ID不能为空")
+ private String applyId;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 所属端 app
+ */
+ private String app;
+
+}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditFormDTO.java
new file mode 100644
index 0000000000..844fdee598
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditFormDTO.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.resi.partymember.dto.warmhearted.form;
+
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+
+/**
+ * 政府端-获取待审核的热心居民申请列表-入参配置
+ *
+ * @author sun
+ */
+@Data
+public class ResiWarmAuditFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户当前所在网格所属客户id
+ */
+ @NotBlank(message = "客户id不能为空")
+ private String customerId;
+
+ /**
+ * 用户当前所在网格id
+ */
+ @NotBlank(message = "网格id不能为空")
+ private String gridId;
+
+ /**
+ * 页码
+ */
+ @Min(1)
+ private Integer pageNo;
+
+ /**
+ * 每页显示条数
+ */
+ private Integer pageSize = 10;
+
+ /**
+ * 审核状态 【key:audit_status,value:(under_auditting:待审核,approved:通过,rejected :未通过)】
+ */
+ private String auditStatus;
+
+}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditRejectFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditRejectFormDTO.java
new file mode 100644
index 0000000000..6f19739bcc
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmAuditRejectFormDTO.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.resi.partymember.dto.warmhearted.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+
+/**
+ * 政府端-人工审核热心居民申请-审核驳回-入参配置
+ * @author sun
+ */
+@Data
+public class ResiWarmAuditRejectFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 热心居民申请id
+ */
+ @NotBlank(message = "申请ID不能为空")
+ private String applyId;
+
+ /**
+ * 驳回理由
+ */
+ @NotBlank(message = "驳回理由不能为空")
+ private String refuseReason;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 所属端 app
+ */
+ private String app;
+
+}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmGetDetailFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmGetDetailFormDTO.java
new file mode 100644
index 0000000000..97bb2b4f44
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmGetDetailFormDTO.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.resi.partymember.dto.warmhearted.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+
+/**
+ * 政府端-热心居民申请详情信息-入参配置
+ *
+ * @author sun
+ */
+@Data
+public class ResiWarmGetDetailFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 热心居民申请id
+ */
+ @NotBlank(message = "申请ID不能为空")
+ private String applyId;
+
+}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java
index 38adf78eae..15dc390b39 100644
--- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/form/ResiWarmheartedSubmitFormDTO.java
@@ -61,4 +61,9 @@ public class ResiWarmheartedSubmitFormDTO implements Serializable {
*/
private String userId;
+ /**
+ * 所属端 app
+ */
+ private String app;
+
}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmAuditResultDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmAuditResultDTO.java
new file mode 100644
index 0000000000..ed9b877be7
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/warmhearted/result/ResiWarmAuditResultDTO.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.resi.partymember.dto.warmhearted.result;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 政府端-获取待审核的热心居民申请列表-返参配置
+ *
+ * @author sun
+ */
+@Data
+public class ResiWarmAuditResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -1L;
+
+ /**
+ * 申请单Id
+ */
+ private String applyId;
+
+ /**
+ * 客户Id (customer.id)
+ */
+ private String customerId;
+
+ /**
+ * 网格Id (customer_grid.id)
+ */
+ private String gridId;
+
+ /**
+ * 申请用户id
+ */
+ private String userId;
+
+ /**
+ * 热心居民申请理由 (300字)
+ */
+ private String reason;
+
+ /**
+ * 审核状态 【key:audit_status,value:(under_auditting:待审核,approved:通过,rejected :未通过)】
+ */
+ private String auditStatus;
+
+ /**
+ * 拒绝理由
+ */
+ private String refuseReason;
+
+ /**
+ * 申请用户头像
+ */
+ private String userHeadPhoto;
+
+ /**
+ * 申请用户的显示昵称
+ */
+ private String userNickName;
+
+ /**
+ * 阅读标记 未读unread 界面显示红点,已读read不显示红点
+ */
+ private String readFlag;
+
+ /**
+ * 消息通知内容
+ */
+ private String messageText;
+
+ /**
+ * 热心居民申请行为记录表Id (resi_warmhearted_visit.id)
+ */
+ private String resiWarmVisitId;
+
+ /**
+ * 申请时间
+ */
+ private Date applyTime;
+
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml
index 2efab5acff..54f4aefc46 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml
+++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml
@@ -81,6 +81,24 @@
RELEASE
compile
+
+ com.epmet
+ epmet-message-client
+ 2.0.0
+ compile
+
+
+ com.epmet
+ epmet-message-client
+ 2.0.0
+ compile
+
+
+ com.epmet
+ gov-org-client
+ 2.0.0
+ compile
+
@@ -118,7 +136,7 @@
-
+
epmet
elink@833066
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java
index b39f6bbea2..50b8cf9bb5 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java
@@ -2,10 +2,13 @@ package com.epmet.modules.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.modules.feign.fallback.EpmetMessageFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
/**
* @author kamui
@@ -21,4 +24,13 @@ public interface EpmetMessageFeignClient {
@GetMapping(value = "message/sms/captcha/{mobile}")
Result sendSmsCaptcha(@PathVariable String mobile);
+ /**
+ * @param formDto
+ * @return com.epmet.commons.tools.utils.Result
+ * @Author sun
+ * @Description 新增未读消息
+ **/
+ @PostMapping(value = "message/usermessage/saveusermessage", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
+ Result saveUserMessage(UserMessageFormDTO formDto);
+
}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/GovOrgFeignClient.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/GovOrgFeignClient.java
new file mode 100644
index 0000000000..620bd1feaf
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/GovOrgFeignClient.java
@@ -0,0 +1,35 @@
+package com.epmet.modules.feign;
+
+
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.CustomerGridDTO;
+import com.epmet.dto.form.CustomerGridFormDTO;
+import com.epmet.dto.form.ListCustomerGridFormDTO;
+import com.epmet.modules.feign.fallback.GovOrgFeignClientFallBack;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+
+/**
+ * @Description Feign调用gov-org-server模块
+ * @ClassName GovOrgFeginFallBack
+ * @Author sun
+ */
+@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class)
+public interface GovOrgFeignClient {
+
+ /**
+ * 根据网格Id查询网格信息
+ * @param customerGridFormDTO
+ * @return
+ */
+ @PostMapping("/gov/org/customergrid/getcustomergridbygridid")
+ Result getCustomerGridByGridId(@RequestBody CustomerGridFormDTO customerGridFormDTO);
+
+
+
+
+
+}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java
index e87f27e4d3..f588f55781 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java
@@ -3,6 +3,7 @@ package com.epmet.modules.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.modules.feign.EpmetMessageFeignClient;
import org.springframework.stereotype.Component;
@@ -18,4 +19,9 @@ public class EpmetMessageFeignClientFallback implements EpmetMessageFeignClient
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendSmsCaptcha", mobile);
}
+ @Override
+ public Result saveUserMessage(UserMessageFormDTO formDto) {
+ return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "saveUserMessage", formDto);
+ }
+
}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/GovOrgFeignClientFallBack.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/GovOrgFeignClientFallBack.java
new file mode 100644
index 0000000000..f1f0195374
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/GovOrgFeignClientFallBack.java
@@ -0,0 +1,28 @@
+package com.epmet.modules.feign.fallback;
+
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.ModuleUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.CustomerGridDTO;
+import com.epmet.dto.form.CustomerGridFormDTO;
+import com.epmet.modules.feign.GovOrgFeignClient;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description Feign
+ * @ClassName GovOrgFeginFallBack
+ * @Author sun
+ */
+@Component
+public class GovOrgFeignClientFallBack implements GovOrgFeignClient {
+
+ /**
+ * 根据网格Id查询网格信息
+ * @param customerGridFormDTO
+ * @return
+ */
+ @Override
+ public Result getCustomerGridByGridId(CustomerGridFormDTO customerGridFormDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getCustomerGridByGridId",customerGridFormDTO);
+ }
+}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmUserMessageConstant.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmUserMessageConstant.java
new file mode 100644
index 0000000000..dbb6990310
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmUserMessageConstant.java
@@ -0,0 +1,29 @@
+package com.epmet.modules.warmhearted.constant;
+
+/**
+ * @Description 热心居民模块消息通知
+ * @Author sun
+ */
+public interface ResiWarmUserMessageConstant {
+
+ /**
+ * 消息标题
+ */
+ String GROUP_TITLE = "您有一条小组消息";
+
+ /**
+ * 热心居民提交申请时给网格长发送消息:XX街道-XX先生/女士申请成为热心居民,请审核。
+ */
+ String RESIWARM_APPLY_MSG = "%s申请成为热心居民,请审核。";
+
+ /**
+ * 热心居民申请审核通过给申请人发送消息:您好,您申请的第三网格热心居民已审核通过,请查看。
+ */
+ String AUDIT_APPROVE_MSG = "您好,您申请的%s热心居民已审核通过,请查看。";
+
+ /**
+ * 热心居民申请审核驳回给申请人发送消息:您好,您申请的第三网格热心居民,由于不符合条件的原因,已被驳回。
+ */
+ String AUDIT_REJECT_MSG = "您好,您申请的%s热心居民,由于不符合条件的原因,已被驳回。";
+
+}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java
index c2bdf566af..c22b701ee5 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmheartedVisitConstant.java
@@ -46,6 +46,16 @@ public interface ResiWarmheartedVisitConstant {
*/
String REJECTED = "rejected";
+ /**
+ * 未读
+ */
+ String UN_READ="unread";
+
+ /**
+ * 已读
+ */
+ String READ="read";
+
String RESI_WARM_INIT = "您的信息已提交成功,请等待后台审核。";
String RESI_WARM_SUBMIT = "热心居民信息已提交成功,请等待后台审核。";
@@ -59,4 +69,8 @@ public interface ResiWarmheartedVisitConstant {
* 数据库操作异常
*/
String REPEAT_EXCEPTION = "已存在待审核的申请,不能重复申请";
+
+ String UPDATE_EXCEPTION = "热心居民申请数据更新失败,热心居民角色添加失败";
+
+ String SELECT_EXCEPTION = "根据申请Id未查询到热心居民申请详情信息";
}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java
index bfa5504390..cd81f768d6 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/controller/ResiWarmheartedApplyController.java
@@ -17,7 +17,9 @@
package com.epmet.modules.warmhearted.controller;
+import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@@ -28,10 +30,8 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.modules.warmhearted.excel.ResiWarmheartedApplyExcel;
import com.epmet.modules.warmhearted.service.ResiWarmheartedApplyService;
import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditFormDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditedFromDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO;
+import com.epmet.resi.partymember.dto.warmhearted.form.*;
+import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmAuditResultDTO;
import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedAuditedResultDTO;
import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -123,4 +123,48 @@ public class ResiWarmheartedApplyController {
return resiWarmheartedApplyService.audited(formDTO);
}
+ /**
+ * @param
+ * @Author sun
+ * @Description 政府端-获取待审核的热心居民申请列表
+ **/
+ @PostMapping("auditing")
+ public Result> auditing(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmAuditFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO);
+ return resiWarmheartedApplyService.auditing(formDTO);
+ }
+
+ /**
+ * @param
+ * @Author sun
+ * @Description 政府端-热心居民申请-审核通过
+ **/
+ @PostMapping("approve")
+ public Result approve(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmAuditApproveFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO);
+ return resiWarmheartedApplyService.approve(formDTO);
+ }
+
+ /**
+ * @param
+ * @Author sun
+ * @Description 政府端-热心居民申请-审核驳回
+ **/
+ @PostMapping("reject")
+ public Result reject(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmAuditRejectFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO);
+ return resiWarmheartedApplyService.reject(formDTO);
+ }
+
+ /**
+ * @param
+ * @Author sun
+ * @Description 政府端-热心居民申请详情信息
+ **/
+ @PostMapping("getdetail")
+ public Result getDetail(@LoginUser TokenDto tokenDTO, @RequestBody ResiWarmGetDetailFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO);
+ return resiWarmheartedApplyService.getDetail(formDTO);
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java
index a8378b6f4f..5467173db1 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/dao/ResiWarmheartedApplyDao.java
@@ -20,8 +20,10 @@ package com.epmet.modules.warmhearted.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.warmhearted.entity.ResiWarmheartedApplyEntity;
import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO;
+import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmAuditFormDTO;
import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditedFromDTO;
import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO;
+import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmAuditResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -44,4 +46,10 @@ public interface ResiWarmheartedApplyDao extends BaseDao selectAuditedApplyList(ResiWarmheartedAuditedFromDTO params);
+ /**
+ * 查询待审核状态的热心居民申请
+ * @param formDTO
+ * @return
+ */
+ List selectResiWarmAuditList(ResiWarmAuditFormDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java
index 6ff41edb09..94f05bf528 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/ResiWarmheartedApplyService.java
@@ -22,10 +22,8 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.warmhearted.entity.ResiWarmheartedApplyEntity;
import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditFormDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditedFromDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO;
+import com.epmet.resi.partymember.dto.warmhearted.form.*;
+import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmAuditResultDTO;
import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedAuditedResultDTO;
import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO;
@@ -133,4 +131,40 @@ public interface ResiWarmheartedApplyService extends BaseService> audited(ResiWarmheartedAuditedFromDTO formDTO);
+
+ /**
+ * 政府端-获取待审核的热心居民申请列表
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ Result> auditing(ResiWarmAuditFormDTO formDTO);
+
+ /**
+ * 政府端-热心居民申请-审核通过
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ Result approve(ResiWarmAuditApproveFormDTO formDTO);
+
+ /**
+ * 政府端-热心居民申请-审核驳回
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ Result reject(ResiWarmAuditRejectFormDTO formDTO);
+
+ /**
+ * 政府端-热心居民申请详情信息
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ Result getDetail(ResiWarmGetDetailFormDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java
index d605c690af..e99414f98d 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java
@@ -30,11 +30,18 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.PartyMemberConstant;
+import com.epmet.constant.ReadFlagConstant;
+import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.UserRoleDTO;
+import com.epmet.dto.form.CustomerGridFormDTO;
+import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
+import com.epmet.modules.feign.EpmetMessageFeignClient;
import com.epmet.modules.feign.EpmetUserFeignClient;
+import com.epmet.modules.feign.GovOrgFeignClient;
+import com.epmet.modules.warmhearted.constant.ResiWarmUserMessageConstant;
import com.epmet.modules.warmhearted.constant.ResiWarmheartedVisitConstant;
import com.epmet.modules.warmhearted.dao.ResiWarmheartedApplyDao;
import com.epmet.modules.warmhearted.entity.ResiWarmheartedApplyEntity;
@@ -42,10 +49,8 @@ import com.epmet.modules.warmhearted.redis.ResiWarmheartedApplyRedis;
import com.epmet.modules.warmhearted.service.ResiWarmheartedApplyService;
import com.epmet.modules.warmhearted.service.ResiWarmheartedVisitService;
import com.epmet.resi.partymember.dto.warmhearted.ResiWarmheartedApplyDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditFormDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedAuditedFromDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO;
-import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO;
+import com.epmet.resi.partymember.dto.warmhearted.form.*;
+import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmAuditResultDTO;
import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedAuditedResultDTO;
import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO;
import org.apache.commons.lang3.StringUtils;
@@ -79,6 +84,10 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl page(Map params) {
@@ -279,4 +288,171 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl> auditing(ResiWarmAuditFormDTO formDTO) {
+ Result> result = new Result<>();
+ List applyList = new ArrayList<>();
+ //1:查询待审核状态的热心居民申请
+ formDTO.setAuditStatus(PartyMemberConstant.UNDER_AUDITTING);
+ applyList = baseDao.selectResiWarmAuditList(formDTO);
+ if (null == applyList || applyList.size() < NumConstant.ONE) {
+ return result.ok(applyList);
+ }
+ //2:调用epmet-user服务 获取用户头像 昵称
+ //遍历获取所有的userId
+ List userIds = applyList.stream().map(ResiWarmAuditResultDTO::getUserId).collect(Collectors.toList());
+ //获取所有用户的头像 昵称
+ UserResiInfoListFormDTO userResiInfoListFormDTO = new UserResiInfoListFormDTO();
+ userResiInfoListFormDTO.setUserIdList(userIds);
+ List userResiInfoList = epmetUserFeignClient.getUserResiInfoList(userResiInfoListFormDTO).getData();
+ if (null == userResiInfoList || userResiInfoList.size() < NumConstant.ONE) {
+ return result.ok(applyList);
+ }
+ //3:将每个用户的头像 昵称放到对应实体中返回给前台
+ List resultList = applyList.stream().flatMap(apply -> userResiInfoList.stream().filter(user ->
+ apply.getUserId().equals(user.getUserId())).map(userInfo -> {
+ ResiWarmAuditResultDTO resultDTO = ConvertUtils.sourceToTarget(apply, ResiWarmAuditResultDTO.class);
+ resultDTO.setUserNickName(null == userInfo.getShowName() ? "" : userInfo.getShowName());
+ resultDTO.setUserHeadPhoto(null == userInfo.getHeadPhoto() ? "" : userInfo.getHeadPhoto());
+ return resultDTO;
+ })).collect(Collectors.toList());
+
+ return result.ok(resultList);
+ }
+
+ /**
+ * 政府端-热心居民申请-审核通过
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result approve(ResiWarmAuditApproveFormDTO formDTO) {
+ Result result = new Result();
+ //1:更新热心居民申请表数据
+ ResiWarmheartedApplyEntity entity = new ResiWarmheartedApplyEntity();
+ entity.setId(formDTO.getApplyId());
+ //审核状态-通过
+ entity.setAuditStatus(PartyMemberConstant.APPROVED);
+ int num = baseDao.updateById(entity);
+ //2:审核通过的添加热心居民的角色
+ if (num < NumConstant.ONE) {
+ result.error(ResiWarmheartedVisitConstant.UPDATE_EXCEPTION);
+ return result;
+ }
+ //查询需要添加热心居民角色的userId
+ ResiWarmheartedApplyEntity resiWarmheartedApplyEntity = baseDao.selectById(formDTO.getApplyId());
+ UserRoleDTO dto = new UserRoleDTO();
+ dto.setCustomerId(resiWarmheartedApplyEntity.getCustomerId());
+ dto.setUserId(resiWarmheartedApplyEntity.getUserId());
+ //所属端-居民端
+ dto.setApp(AppClientConstant.APP_RESI);
+ //角色-热心居民
+ dto.setRoleKey(EpmetRoleKeyConstant.WARMHEARTED);
+ //角色表新增网格Id
+ dto.setGridId(resiWarmheartedApplyEntity.getGridId());
+ result = epmetUserFeignClient.saveUserRole(dto);
+ //3:为申请人发送审核通过消息提示
+ auditMessage(resiWarmheartedApplyEntity, ResiWarmUserMessageConstant.AUDIT_APPROVE_MSG);
+ return result;
+ }
+ /**
+ * 热心居民申请审核通过向申请人发送消息
+ * @Author sun
+ * @param formDTO
+ * @param userMsg 消息模板
+ */
+ private void auditMessage(ResiWarmheartedApplyEntity formDTO, String userMsg) {
+ UserMessageFormDTO userMessageFormDTO = new UserMessageFormDTO();
+ userMessageFormDTO.setCustomerId(formDTO.getCustomerId());
+ userMessageFormDTO.setGridId(formDTO.getGridId());
+ userMessageFormDTO.setUserId(formDTO.getUserId());
+ userMessageFormDTO.setApp(AppClientConstant.APP_RESI);
+ userMessageFormDTO.setTitle(ResiWarmUserMessageConstant.GROUP_TITLE);
+ //调用gov-org服务查询网格信息
+ CustomerGridFormDTO customerGridFormDTO = new CustomerGridFormDTO();
+ customerGridFormDTO.setGridId(formDTO.getGridId());
+ Result result = govOrgFeignClient.getCustomerGridByGridId(customerGridFormDTO);
+ String gridName = null;
+ if (result.success() && null != result.getData()) {
+ gridName = result.getData().getGridName();
+ }
+ String messageContent = String.format(userMsg, gridName);
+ userMessageFormDTO.setMessageContent(messageContent);
+ userMessageFormDTO.setReadFlag(ReadFlagConstant.UN_READ);
+ //保存消息
+ epmetMessageFeignClient.saveUserMessage(userMessageFormDTO);
+ }
+ /**
+ * 政府端-热心居民申请-审核驳回
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result reject(ResiWarmAuditRejectFormDTO formDTO) {
+ Result result = new Result();
+ //1:更新热心居民申请表数据
+ ResiWarmheartedApplyEntity entity = new ResiWarmheartedApplyEntity();
+ entity.setId(formDTO.getApplyId());
+ //审核状态-未通过
+ entity.setAuditStatus(PartyMemberConstant.REJECTED);
+ entity.setRefuseReason(formDTO.getRefuseReason());
+ baseDao.updateById(entity);
+ //2:为申请人发送审核驳回消息提示
+ //查询申请信息
+ ResiWarmheartedApplyEntity resiWarmheartedApplyEntity = baseDao.selectById(formDTO.getApplyId());
+ auditMessage(resiWarmheartedApplyEntity, ResiWarmUserMessageConstant.AUDIT_REJECT_MSG);
+ return result;
+ }
+
+ /**
+ * 政府端-热心居民申请详情信息
+ *
+ * @param
+ * @return void
+ * @author sun
+ */
+ @Override
+ public Result getDetail(ResiWarmGetDetailFormDTO formDTO) {
+ Result result = new Result<>();
+ //1:根据申请Id查询热心居民申请审核详情
+ ResiWarmheartedApplyEntity entity = baseDao.selectById(formDTO.getApplyId());
+ if (null == entity) {
+ result.error(ResiWarmheartedVisitConstant.SELECT_EXCEPTION);
+ return result;
+ }
+ //2:修改申请数据状态为已读
+ if(!ResiWarmheartedVisitConstant.READ.equals(entity.getReadFlag())){
+ entity.setReadFlag(ResiWarmheartedVisitConstant.READ);
+ baseDao.updateById(entity);
+ }
+ //3:调用epmet-user服务查询用户头像 昵称信息
+ UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO();
+ userResiInfoFormDTO.setCustomerId(entity.getCustomerId());
+ userResiInfoFormDTO.setUserId(entity.getUserId());
+ Result resultUserInfo = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO);
+ if (!resultUserInfo.success() || null == resultUserInfo.getData()) {
+ result.error(ResiWarmheartedVisitConstant.SELECT_EXCEPTION);
+ return result;
+ }
+ UserResiInfoResultDTO userInfo = resultUserInfo.getData();
+ ResiWarmAuditResultDTO resultDTO = ConvertUtils.sourceToTarget(entity, ResiWarmAuditResultDTO.class);
+ resultDTO.setApplyTime(entity.getUpdatedTime());
+ resultDTO.setUserNickName(null == userInfo.getShowName() ? "" : userInfo.getShowName());
+ resultDTO.setUserHeadPhoto(null == userInfo.getHeadPhoto() ? "" : userInfo.getHeadPhoto());
+ return result.ok(resultDTO);
+ }
}
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/warmhearted/ResiWarmheartedApplyDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/warmhearted/ResiWarmheartedApplyDao.xml
index a89bddb810..7056d086e8 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/warmhearted/ResiWarmheartedApplyDao.xml
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/warmhearted/ResiWarmheartedApplyDao.xml
@@ -71,5 +71,33 @@
LIMIT #{pageNo}, #{pageSize}
+
+ SELECT
+ id AS 'applyId',
+ customer_id AS 'customerId',
+ grid_id AS 'gridId',
+ user_id AS 'userId',
+ reason AS 'reason',
+ audit_status AS 'auditStatus',
+ refuse_reason AS 'refuseReason',
+ read_flag AS 'readFlag',
+ message_text AS 'messageText',
+ resi_warm_visit_id AS 'resiWarmVisitId',
+ created_time AS 'applyTime'
+ FROM resi_warmhearted_apply
+ WHERE del_flag = '0'
+
+ AND customer_id = #{customerId}
+
+
+ AND grid_id = #{gridId}
+
+
+ AND audit_status = #{auditStatus}
+
+ ORDER BY CREATED_TIME DESC
+ LIMIT #{pageNo}, #{pageSize}
+
\ No newline at end of file
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/redis/migration/db.sql b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/redis/migration/db.sql
new file mode 100644
index 0000000000..a60097daac
--- /dev/null
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/redis/migration/db.sql
@@ -0,0 +1,5 @@
+#epmet_resi_partymember数据库-热心居民申请表新增字段
+ALTER TABLE resi_warmhearted_apply ADD (
+ READ_FLAG VARCHAR (255) DEFAULT NULL COMMENT '审核人员已读未读标识(未读:unread 界面显示红点; 已读:read 不显示红点)',
+ MESSAGE_TEXT VARCHAR (500) DEFAULT NULL COMMENT '消息通知内容'
+);
\ No newline at end of file