diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/WxMsgTemplateSubscribeStatus.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/WxMsgTemplateSubscribeStatus.java
new file mode 100644
index 0000000000..9ea7e585ae
--- /dev/null
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/WxMsgTemplateSubscribeStatus.java
@@ -0,0 +1,7 @@
+package com.epmet.constant;
+
+public interface WxMsgTemplateSubscribeStatus {
+ //wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
+ String SUBSCRIBE = "subscribe";
+ String UNSUBSCRIBE = "unsubscribe";
+}
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpTemplateMsgSubscribeStatusDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpTemplateMsgSubscribeStatusDTO.java
index 00dc07a199..59ad254400 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpTemplateMsgSubscribeStatusDTO.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpTemplateMsgSubscribeStatusDTO.java
@@ -103,4 +103,6 @@ public class WxmpTemplateMsgSubscribeStatusDTO implements Serializable {
*/
private Date updatedTime;
+ private Date templateId;
+
}
\ No newline at end of file
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxMsgAuthInfoFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxMsgAuthInfoFormDTO.java
index 11d70e506d..c8dde831d2 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxMsgAuthInfoFormDTO.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxMsgAuthInfoFormDTO.java
@@ -8,17 +8,35 @@ import javax.validation.constraints.NotBlank;
public class WxMsgAuthInfoFormDTO {
public interface SaveSysAuthInfoGroup {}
+ public interface GetAuthInfoGroup {}
+ public interface SaveWxSubscribeInfoGroup {}
- @NotBlank(message = "客户id不能为空", groups = { SaveSysAuthInfoGroup.class })
+ @NotBlank(message = "客户id不能为空", groups = { SaveSysAuthInfoGroup.class, GetAuthInfoGroup.class, SaveWxSubscribeInfoGroup.class })
private String customerId;
- @NotBlank(message = "客户端类型不能为空", groups = { SaveSysAuthInfoGroup.class })
+ @NotBlank(message = "客户端类型不能为空", groups = { SaveSysAuthInfoGroup.class, GetAuthInfoGroup.class, SaveWxSubscribeInfoGroup.class })
private String clientType;
- @NotBlank(message = "是否总是字段不能为空", groups = { SaveSysAuthInfoGroup.class })
+ @NotBlank(message = "'是否总是允许'选项不能为空", groups = { SaveSysAuthInfoGroup.class })
private String alwaysVisit;
@NotBlank(message = "是否去订阅字段不能为空", groups = { SaveSysAuthInfoGroup.class })
private String subscribeStatus;
+ @NotBlank(message = "模板ID不能为空", groups = { SaveWxSubscribeInfoGroup.class, GetAuthInfoGroup.class, SaveSysAuthInfoGroup.class })
+ private String templateId;
+
+ @NotBlank(message = "微信'是否总是允许'选项不能为空", groups = { SaveWxSubscribeInfoGroup.class })
+ private String wxAlwaysVisit;
+
+ @NotBlank(message = "微信'是否订阅字段不能为空'", groups = { SaveWxSubscribeInfoGroup.class })
+ private String wxSubscribeStatus;
+
+ @NotBlank(message = "动作类型不能为空", groups = { SaveWxSubscribeInfoGroup.class })
+ private String behaviorType;
+
+
+
+
+
}
diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java
index 1dc30e2f8c..84ec028cc5 100644
--- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java
+++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java
@@ -48,4 +48,10 @@ public class WxSubscribeMessageFormDTO implements Serializable {
@NotBlank(message = "消息内容不能为空")
private String messageContent;
+ /**
+ * 消息时间
+ */
+ @NotNull(message = "消息时间不能为空")
+ private Date messageTime;
+
}
diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml
index 2742c226fa..16ebfb8fbe 100644
--- a/epmet-module/epmet-message/epmet-message-server/pom.xml
+++ b/epmet-module/epmet-message/epmet-message-server/pom.xml
@@ -25,6 +25,11 @@
epmet-message-client
2.0.0
+
+ com.epmet
+ epmet-user-client
+ 2.0.0
+
com.epmet
epmet-admin-client
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java
index 7e06c80b0a..15e8e81d0e 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java
@@ -24,12 +24,10 @@ import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.form.WxMsgAuthInfoFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
+import com.epmet.dto.result.WxMsgAuthInfoResultDTO;
import com.epmet.service.WxmpMessageService;
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 java.util.List;
@@ -64,11 +62,13 @@ public class WxmpMessageController {
String clientType = form.getClientType();
String customerId = form.getCustomerId();
String subscribeStatus = form.getSubscribeStatus();
+ String templateId = form.getTemplateId();
- wxmpMessageService.saveSysAuthorizeInfo(customerId, clientType, alwaysVisit, subscribeStatus, loginUserUtil.getLoginUserId());
+ wxmpMessageService.saveSysAuthorizeInfo(customerId, clientType, alwaysVisit, subscribeStatus, loginUserUtil.getLoginUserId(), templateId);
return new Result();
}
+
@PostMapping("sendwxsubscribemessage")
public Result sendWxSubscribeMessage(@RequestBody List msgList){
for (WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO : msgList) {
@@ -89,4 +89,39 @@ public class WxmpMessageController {
return new Result>().ok(wxmpMessageService.templateList(formDTO));
}
-}
+ /**
+ * @Description 查询用户授权信息
+ * @return
+ * @author wxz
+ * @date 2020.10.21 18:15
+ */
+ @PostMapping("get-authorizeinfo")
+ public Result getAuthorizationInfo(@RequestBody WxMsgAuthInfoFormDTO form) {
+ ValidatorUtils.validateEntity(form, WxMsgAuthInfoFormDTO.GetAuthInfoGroup.class);
+ WxMsgAuthInfoResultDTO authorizationInfo = wxmpMessageService.getAuthorizationInfo(
+ form.getCustomerId(), form.getClientType(),
+ loginUserUtil.getLoginUserId(), form.getTemplateId());
+ return new Result().ok(authorizationInfo);
+ }
+
+ /**
+ * 保存微信订阅的授权信息
+ * @param form
+ * @return
+ */
+ @PostMapping("save-wxsubscribe")
+ public Result saveWxSubscribe(@RequestBody WxMsgAuthInfoFormDTO form) {
+ ValidatorUtils.validateEntity(form, WxMsgAuthInfoFormDTO.SaveWxSubscribeInfoGroup.class);
+ String customerId = form.getCustomerId();
+ String clientType = form.getClientType();
+ String templateId = form.getTemplateId();
+ String wxAlwaysVisit = form.getWxAlwaysVisit();
+ String wxSubscribeStatus = form.getWxSubscribeStatus();
+ String behaviorType = form.getBehaviorType();
+
+ wxmpMessageService.saveWxSubscribe(customerId, clientType, templateId, wxAlwaysVisit, wxSubscribeStatus, behaviorType, loginUserUtil.getLoginUserId());
+
+ return new Result();
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java
index c1a6e83d2f..28080d66e7 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java
@@ -74,4 +74,15 @@ public interface WxmpResiUserSubscribeDao extends BaseDao {
WxMsgAuthInfoResultDTO getUserSubscribeStatusDTO(@Param("userId") String userId,
- @Param("customerId") String customerId,
- @Param("clientType") String clientType);
+ @Param("customerId") String customerId,
+ @Param("clientType") String clientType,
+ @Param("templateId") String templateId);
WxmpTemplateMsgSubscribeStatusEntity getUserSubscribeStatusEntity(@Param("userId") String userId,
- @Param("customerId") String customerId,
- @Param("clientType") String clientType);
+ @Param("customerId") String customerId,
+ @Param("clientType") String clientType,
+ @Param("templateId") String templateId);
}
\ No newline at end of file
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java
index 0638e2bfc4..eb33773c8f 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java
@@ -23,7 +23,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
- * 工作端用户订阅模板消息有效次数记录表
+ * 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
@@ -75,4 +75,16 @@ public interface WxmpWorkUserSubscribeDao extends BaseDao result = epmetUserOpenFeignClient.getUserBasicInfo(bif);
+ if (!result.success()) {
+ throw new RenException(String.format("查询居民OpenId失败,userId:%s,错误信息:%s",userId , result.getInternalMsg()));
+ }
+ UserBasicInfo userBasicInfo = result.getData();
+ if (userBasicInfo == null) {
+ throw new RenException(String.format("根据userId:%s,没有查询到居民OpenId",userId));
+ }
+ return userBasicInfo.getOpenId();
+ }
+
+ /**
+ * @Description 查询工作人员openId
+ * @return java.lang.String
+ * @author wxz
+ * @date 2020.10.22 14:46
+ */
+ public String getWorkOpenId(String userId) {
+ StaffBasicInfoFormDTO form = new StaffBasicInfoFormDTO();
+ form.setStaffId(userId);
+ Result result = epmetUserOpenFeignClient.getStaffBasicInfo(form);
+ if (!result.success()) {
+ throw new RenException(String.format("查询工作人员OpenId失败,userId:%s,错误信息:%s",userId , result.getInternalMsg()));
+ }
+ StaffBasicInfo staffBasicInfo = result.getData();
+ if (staffBasicInfo == null) {
+ throw new RenException(String.format("根据userId:%s,没有查询到工作人员OpenId",userId));
+ }
+ return staffBasicInfo.getOpenId();
+ }
+}
\ No newline at end of file
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpResiUserSubscribeDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpResiUserSubscribeDao.xml
index 2a1df8a057..099108d016 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpResiUserSubscribeDao.xml
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpResiUserSubscribeDao.xml
@@ -50,4 +50,46 @@
limit 1
+
+
+ update wxmp_resi_user_subscribe
+ set COUNT=COUNT + #{incr},
+ WX_SUBSCRIBE_STATUS = 'subscribe'
+ where USER_ID = #{userId}
+ and CUSTOMER_ID = #{customerId}
+ and TEMPLATE_ID = #{templateId}
+ and WX_OPEN_ID = #{resiOpenId}
+
+
+
+
+ update wxmp_resi_user_subscribe
+ set WX_SUBSCRIBE_STATUS = 'unsubscribe',
+ COUNT = 0
+ where USER_ID = #{userId}
+ and CUSTOMER_ID = #{customerId}
+ and TEMPLATE_ID = #{templateId}
+ and WX_OPEN_ID = #{resiOpenId}
+
+
+
+
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpTemplateMsgSubscribeStatusDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpTemplateMsgSubscribeStatusDao.xml
index d1fde2360a..fd51895084 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpTemplateMsgSubscribeStatusDao.xml
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpTemplateMsgSubscribeStatusDao.xml
@@ -22,6 +22,7 @@
where USER_ID = #{userId}
and CUSTOMER_ID = #{customerId}
and CLIENT_TYPE = #{clientType}
+ and TEMPLATE_ID = #{templateId}
\ No newline at end of file
diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml
index efa31174f9..7c9e547118 100644
--- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml
+++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml
@@ -2,6 +2,15 @@
+
+ update wxmp_work_user_subscribe
+ set COUNT=COUNT + #{incr},
+ WX_SUBSCRIBE_STATUS = 'subscribe'
+ where USER_ID = #{userId}
+ and CUSTOMER_ID = #{customerId}
+ and TEMPLATE_ID = #{templateId}
+ and WX_OPEN_ID = #{openId}
+
+
+
+ update wxmp_work_user_subscribe
+ set WX_SUBSCRIBE_STATUS = 'unsubscribe',
+ COUNT = 0
+ where USER_ID = #{userId}
+ and CUSTOMER_ID = #{customerId}
+ and TEMPLATE_ID = #{templateId}
+ and WX_OPEN_ID = #{resiOpenId}
+
+
+
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 db6422eee4..bd92d6b14a 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
@@ -460,6 +460,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
index 72dd1e18ed..ea761610fc 100644
--- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
+++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
@@ -653,6 +653,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI);
wxSubscribeMessageFormDTO.setBehaviorType(ResiWarmUserMessageConstant.WX_WARMHEARTED_BEHAVIOR);
wxSubscribeMessageFormDTO.setMessageContent(messageContent);
+ wxSubscribeMessageFormDTO.setMessageTime(new Date());
List msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
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 26beee052c..901bf4e1cc 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
@@ -66,10 +66,7 @@ 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.*;
import java.util.stream.Collectors;
/**
@@ -449,6 +446,7 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);