Browse Source

Merge branch 'dev'

master
sunyuchao 5 years ago
parent
commit
a4ae1e1ef8
  1. 1
      epmet-gateway/src/main/resources/bootstrap.yml
  2. 126
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java
  3. 101
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpResiUserSubscribeDTO.java
  4. 106
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpTemplateMsgSubscribeStatusDTO.java
  5. 106
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpUserSubscribeRecordDTO.java
  6. 101
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpWorkUserSubscribeDTO.java
  7. 31
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/TemplateListFormDTO.java
  8. 24
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxMsgAuthInfoFormDTO.java
  9. 51
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java
  10. 41
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/WxMsgAuthInfoResultDTO.java
  11. 10
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java
  12. 6
      epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java
  13. 11
      epmet-module/epmet-message/epmet-message-server/pom.xml
  14. 61
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java
  15. 2
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java
  16. 92
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java
  17. 94
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMsgSendRecordController.java
  18. 94
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpResiUserSubscribeController.java
  19. 94
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpTemplateMsgSubscribeStatusController.java
  20. 94
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpUserSubscribeRecordController.java
  21. 94
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpWorkUserSubscribeController.java
  22. 34
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpMsgSendRecordDao.java
  23. 77
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java
  24. 42
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpTemplateMsgSubscribeStatusDao.java
  25. 33
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpUserSubscribeRecordDao.java
  26. 78
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java
  27. 96
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java
  28. 71
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpResiUserSubscribeEntity.java
  29. 76
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpTemplateMsgSubscribeStatusEntity.java
  30. 76
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpUserSubscribeRecordEntity.java
  31. 71
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpWorkUserSubscribeEntity.java
  32. 89
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java
  33. 74
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpResiUserSubscribeExcel.java
  34. 77
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpTemplateMsgSubscribeStatusExcel.java
  35. 77
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpUserSubscribeRecordExcel.java
  36. 74
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpWorkUserSubscribeExcel.java
  37. 43
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/exception/WxSubscribeException.java
  38. 30
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpMessageRedis.java
  39. 47
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpMsgSendRecordRedis.java
  40. 47
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpResiUserSubscribeRedis.java
  41. 47
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpTemplateMsgSubscribeStatusRedis.java
  42. 47
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpUserSubscribeRecordRedis.java
  43. 47
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpWorkUserSubscribeRedis.java
  44. 51
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMessageService.java
  45. 105
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMsgSendRecordService.java
  46. 95
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpResiUserSubscribeService.java
  47. 95
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpTemplateMsgSubscribeStatusService.java
  48. 95
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpUserSubscribeRecordService.java
  49. 95
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpWorkUserSubscribeService.java
  50. 322
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java
  51. 109
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMsgSendRecordServiceImpl.java
  52. 104
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpResiUserSubscribeServiceImpl.java
  53. 104
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpTemplateMsgSubscribeStatusServiceImpl.java
  54. 104
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpUserSubscribeRecordServiceImpl.java
  55. 104
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpWorkUserSubscribeServiceImpl.java
  56. 48
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpMsgSendRecordDao.xml
  57. 53
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpResiUserSubscribeDao.xml
  58. 47
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpTemplateMsgSubscribeStatusDao.xml
  59. 8
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpUserSubscribeRecordDao.xml
  60. 49
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml
  61. 31
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/GetTemplateListFormDTO.java
  62. 25
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/GetTemplateListResultDTO.java
  63. 37
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PersonalTemplateController.java
  64. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PersonalTemplateDao.java
  65. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PersonalTemplateService.java
  66. 13
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PersonalTemplateServiceImpl.java
  67. 13
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PersonalTemplateDao.xml
  68. 5
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java
  69. 25
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  70. 12
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
  71. 5
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmUserMessageConstant.java
  72. 15
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java
  73. 23
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/StaffBasicInfoFormDTO.java
  74. 22
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserBasicInfoFormDTO.java
  75. 39
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffBasicInfo.java
  76. 24
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBasicInfo.java
  77. 14
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  78. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
  79. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffAgencyVisitedController.java
  80. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java
  81. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffAgencyVisitedDao.java
  82. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserDao.java
  83. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffAgencyVisitedService.java
  84. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java
  85. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffAgencyVisitedServiceImpl.java
  86. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java
  87. 22
      epmet-user/epmet-user-server/src/main/resources/mapper/StaffAgencyVisitedDao.xml
  88. 15
      epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml

1
epmet-gateway/src/main/resources/bootstrap.yml

@ -61,6 +61,7 @@ spring:
- Path=${server.servlet.context-path}/message/**
filters:
- StripPrefix=1
- CpAuth=true
#工作流服务
- id: epmet-activiti-server
uri: @gateway.routes.epmet-activiti-server.uri@

126
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpMsgSendRecordDTO.java

@ -0,0 +1,126 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpMsgSendRecordDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 所属端类型 居民端:resi 工作端:work
*/
private String clientType;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* 行为类型(存title字段的中间值) 入组申请党员认证等
*/
private String behaviorType;
/**
* 消息标题 消息标题
*/
private String title;
/**
* 消息内容 消息内容
*/
private String messageContent;
/**
* 消息时间 消息时间
*/
private Date messageTime;
/**
* 发送结果(成功success 失败error)
*/
private String result;
/**
* 发送失败的原因成功可以不记录
*/
private String reason;
/**
* 删除标识
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

101
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpResiUserSubscribeDTO.java

@ -0,0 +1,101 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpResiUserSubscribeDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
/**
* 可用推送次数 可用推送次数
*/
private Integer count;
/**
* 删除标识
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

106
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpTemplateMsgSubscribeStatusDTO.java

@ -0,0 +1,106 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpTemplateMsgSubscribeStatusDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 所属端类型 居民端:resi 工作端:work
*/
private String clientType;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* 是否总是访问 :yes :no
*/
private String alwaysVisit;
/**
* 订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String subscribeStatus;
/**
* wx是否总是访问 :yes :no
*/
private String wxAlwaysVisit;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
/**
* 删除标识
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

106
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpUserSubscribeRecordDTO.java

@ -0,0 +1,106 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpUserSubscribeRecordDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* 行为类型(存title字段的中间值) 入组申请党员认证等
*/
private String behaviorType;
/**
* wx是否总是访问 :yes :no
*/
private String wxAlwaysVisit;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
/**
* 删除标识
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

101
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/WxmpWorkUserSubscribeDTO.java

@ -0,0 +1,101 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpWorkUserSubscribeDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
/**
* 可用推送次数 可用推送次数
*/
private Integer count;
/**
* 删除标识
*/
private Integer delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

31
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/TemplateListFormDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 获取客户小程序模板列表-接口入参
* @Author sun
*/
@Data
public class TemplateListFormDTO implements Serializable {
/**
* 客户Id
*/
@NotBlank(message="客户Id不能为空", groups = {TemplateListFormDTO.AddUserInternalGroup.class})
private String customerId;
/**
* 小程序Id
*/
@NotBlank(message="小程序appId不能为空", groups = {TemplateListFormDTO.AddUserInternalGroup.class})
private String appId;
/**
* 模板类型(站内信提醒)
*/
private String templateType;
public interface AddUserInternalGroup {}
}

24
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxMsgAuthInfoFormDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class WxMsgAuthInfoFormDTO {
public interface SaveSysAuthInfoGroup {}
@NotBlank(message = "客户id不能为空", groups = { SaveSysAuthInfoGroup.class })
private String customerId;
@NotBlank(message = "客户端类型不能为空", groups = { SaveSysAuthInfoGroup.class })
private String clientType;
@NotBlank(message = "是否总是字段不能为空", groups = { SaveSysAuthInfoGroup.class })
private String alwaysVisit;
@NotBlank(message = "是否去订阅字段不能为空", groups = { SaveSysAuthInfoGroup.class })
private String subscribeStatus;
}

51
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/WxSubscribeMessageFormDTO.java

@ -0,0 +1,51 @@
package com.epmet.dto.form;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @description: 微信订阅消息FormDTO
* @author: liushaowen
* @date: 2020/10/21 14:29
*/
@Data
public class WxSubscribeMessageFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 客户id
*/
@NotBlank(message = "客户id不能为空")
private String customerId;
/**
* 客户端类型 居民端:resi 工作端:work
*/
@NotBlank(message = "客户端类型不能为空")
private String clientType;
/**
* 接收者用户 userId
*/
@NotBlank(message = "接收用户id不能为空")
private String userId;
/**
* 行为类型(存title字段的中间值) 入组申请党员认证等
*/
@NotBlank(message = "行为类型不能为空")
private String behaviorType;
/**
* 消息内容
*/
@NotBlank(message = "消息内容不能为空")
private String messageContent;
}

41
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/WxMsgAuthInfoResultDTO.java

@ -0,0 +1,41 @@
package com.epmet.dto.result;
import lombok.Data;
@Data
public class WxMsgAuthInfoResultDTO {
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 所属端类型 居民端:resi 工作端:work
*/
private String clientType;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* 是否总是访问 :yes :no
*/
private String alwaysVisit;
/**
* 订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String subscribeStatus;
/**
* wx是否总是访问 :yes :no
*/
private String wxAlwaysVisit;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
}

10
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.feign.fallback.EpmetMessageOpenFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
@ -67,4 +68,13 @@ public interface EpmetMessageOpenFeignClient {
**/
@PostMapping(value = "message/usermessage/saveusermessagelist", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result saveUserMessageList(List<UserMessageFormDTO> msgList);
/**
* @param msgList
* @return com.epmet.commons.tools.utils.Result
* @Author liushaowen
* @Description 发送微信订阅消息
**/
@PostMapping(value = "message/wxmpmessage/sendwxsubscribemessage", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
Result sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList);
}

6
epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java

@ -6,6 +6,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.SysSmsDTO;
import com.epmet.dto.form.SendVerificationCodeFormDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.SendVerificationCodeResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import org.springframework.stereotype.Component;
@ -45,4 +46,9 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig
public Result saveUserMessageList(List<UserMessageFormDTO> msgList) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "saveUserMessageList", msgList);
}
@Override
public Result sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendWxSubscribeMessage", msgList);
}
}

11
epmet-module/epmet-message/epmet-message-server/pom.xml

@ -96,6 +96,17 @@
<artifactId>flyway-core</artifactId>
<!--<version>5.1.1</version>-->
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-user-client</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-third-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

61
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/constant/WxmpMessageConstant.java

@ -0,0 +1,61 @@
package com.epmet.constant;
import java.util.HashMap;
import java.util.Map;
/**
* @description: 微信订阅消息常量
* @author: liushaowen
* @date: 2020/10/21 17:45
*/
public interface WxmpMessageConstant {
String SEND_MESSAGE = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
String ERR_CODE = "errcode";
String ERR_MSG = "errmsg";
int USER_REFUSED = 43101;
String AUTHORIZER_ACCESS_TOKEN = "authorizerAccessToken";
String RESI = "resi";
String WORK = "work";
String ACCESS_TOKEN = "access_token";
String TOUSER = "touser";
String TEMPLATE_ID = "template_id";
String PAGE = "page";
String TITLE = "title";
int TITLE_LIMIT = 20;
String MESSAGE_CONTENT = "message_content";
int MESSAGE_CONTENT_LIMIT = 20;
String MESSAGE_TIME = "message_time";
String DATA = "data";
String MINIPROGRAM_STATE = "miniprogram_state";
String SUCCESS = "success";
String ERROR = "error";
String PAGE_RESI = "";
String PAGE_WORK = "";
String STATE_DEV = "developer";
String STATE_TEST = "trial";
}

2
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/UserMessageController.java

@ -162,4 +162,4 @@ public class UserMessageController {
List<StaffMessageResultDTO> list = userMessageService.queryStaffMessage(formDTO);
return new Result<List<StaffMessageResultDTO>>().ok(list);
}
}
}

92
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMessageController.java

@ -0,0 +1,92 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
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.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 java.util.List;
/**
* 微信消息订阅controller
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@RestController
@RequestMapping("wxmpmessage")
public class WxmpMessageController {
@Autowired
private WxmpMessageService wxmpMessageService;
@Autowired
private LoginUserUtil loginUserUtil;
/**
* @Description 保存系统自身的弹框授权信息
* @return com.epmet.commons.tools.utils.Result
* @author wxz
* @date 2020.10.21 17:32
*/
@PostMapping("save-sys-authorizeinfo")
public Result saveSysAuthorizationInfo(@RequestBody WxMsgAuthInfoFormDTO form) {
ValidatorUtils.validateEntity(form, WxMsgAuthInfoFormDTO.SaveSysAuthInfoGroup.class);
String alwaysVisit = form.getAlwaysVisit();
String clientType = form.getClientType();
String customerId = form.getCustomerId();
String subscribeStatus = form.getSubscribeStatus();
wxmpMessageService.saveSysAuthorizeInfo(customerId, clientType, alwaysVisit, subscribeStatus, loginUserUtil.getLoginUserId());
return new Result();
}
@PostMapping("sendwxsubscribemessage")
public Result sendWxSubscribeMessage(@RequestBody List<WxSubscribeMessageFormDTO> msgList){
for (WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO : msgList) {
ValidatorUtils.validateEntity(wxSubscribeMessageFormDTO);
}
wxmpMessageService.sendWxSubscribeMessage(msgList);
return new Result();
}
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
@PostMapping("templatelist")
public Result<List<GetTemplateListResultDTO>> templateList(@RequestBody GetTemplateListFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GetTemplateListFormDTO.AddUserInternalGroup.class);
return new Result<List<GetTemplateListResultDTO>>().ok(wxmpMessageService.templateList(formDTO));
}
}

94
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpMsgSendRecordController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.WxmpMsgSendRecordDTO;
import com.epmet.excel.WxmpMsgSendRecordExcel;
import com.epmet.service.WxmpMsgSendRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@RestController
@RequestMapping("wxmpmsgsendrecord")
public class WxmpMsgSendRecordController {
@Autowired
private WxmpMsgSendRecordService wxmpMsgSendRecordService;
@GetMapping("page")
public Result<PageData<WxmpMsgSendRecordDTO>> page(@RequestParam Map<String, Object> params){
PageData<WxmpMsgSendRecordDTO> page = wxmpMsgSendRecordService.page(params);
return new Result<PageData<WxmpMsgSendRecordDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<WxmpMsgSendRecordDTO> get(@PathVariable("id") String id){
WxmpMsgSendRecordDTO data = wxmpMsgSendRecordService.get(id);
return new Result<WxmpMsgSendRecordDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody WxmpMsgSendRecordDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
wxmpMsgSendRecordService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody WxmpMsgSendRecordDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
wxmpMsgSendRecordService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
wxmpMsgSendRecordService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<WxmpMsgSendRecordDTO> list = wxmpMsgSendRecordService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, WxmpMsgSendRecordExcel.class);
}
}

94
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpResiUserSubscribeController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.WxmpResiUserSubscribeDTO;
import com.epmet.excel.WxmpResiUserSubscribeExcel;
import com.epmet.service.WxmpResiUserSubscribeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@RestController
@RequestMapping("wxmpresiusersubscribe")
public class WxmpResiUserSubscribeController {
@Autowired
private WxmpResiUserSubscribeService wxmpResiUserSubscribeService;
@GetMapping("page")
public Result<PageData<WxmpResiUserSubscribeDTO>> page(@RequestParam Map<String, Object> params){
PageData<WxmpResiUserSubscribeDTO> page = wxmpResiUserSubscribeService.page(params);
return new Result<PageData<WxmpResiUserSubscribeDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<WxmpResiUserSubscribeDTO> get(@PathVariable("id") String id){
WxmpResiUserSubscribeDTO data = wxmpResiUserSubscribeService.get(id);
return new Result<WxmpResiUserSubscribeDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody WxmpResiUserSubscribeDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
wxmpResiUserSubscribeService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody WxmpResiUserSubscribeDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
wxmpResiUserSubscribeService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
wxmpResiUserSubscribeService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<WxmpResiUserSubscribeDTO> list = wxmpResiUserSubscribeService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, WxmpResiUserSubscribeExcel.class);
}
}

94
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpTemplateMsgSubscribeStatusController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.WxmpTemplateMsgSubscribeStatusDTO;
import com.epmet.excel.WxmpTemplateMsgSubscribeStatusExcel;
import com.epmet.service.WxmpTemplateMsgSubscribeStatusService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@RestController
@RequestMapping("wxmptemplatemsgsubscribestatus")
public class WxmpTemplateMsgSubscribeStatusController {
@Autowired
private WxmpTemplateMsgSubscribeStatusService wxmpTemplateMsgSubscribeStatusService;
@GetMapping("page")
public Result<PageData<WxmpTemplateMsgSubscribeStatusDTO>> page(@RequestParam Map<String, Object> params){
PageData<WxmpTemplateMsgSubscribeStatusDTO> page = wxmpTemplateMsgSubscribeStatusService.page(params);
return new Result<PageData<WxmpTemplateMsgSubscribeStatusDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<WxmpTemplateMsgSubscribeStatusDTO> get(@PathVariable("id") String id){
WxmpTemplateMsgSubscribeStatusDTO data = wxmpTemplateMsgSubscribeStatusService.get(id);
return new Result<WxmpTemplateMsgSubscribeStatusDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody WxmpTemplateMsgSubscribeStatusDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
wxmpTemplateMsgSubscribeStatusService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody WxmpTemplateMsgSubscribeStatusDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
wxmpTemplateMsgSubscribeStatusService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
wxmpTemplateMsgSubscribeStatusService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<WxmpTemplateMsgSubscribeStatusDTO> list = wxmpTemplateMsgSubscribeStatusService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, WxmpTemplateMsgSubscribeStatusExcel.class);
}
}

94
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpUserSubscribeRecordController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.WxmpUserSubscribeRecordDTO;
import com.epmet.excel.WxmpUserSubscribeRecordExcel;
import com.epmet.service.WxmpUserSubscribeRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@RestController
@RequestMapping("wxmpusersubscriberecord")
public class WxmpUserSubscribeRecordController {
@Autowired
private WxmpUserSubscribeRecordService wxmpUserSubscribeRecordService;
@GetMapping("page")
public Result<PageData<WxmpUserSubscribeRecordDTO>> page(@RequestParam Map<String, Object> params){
PageData<WxmpUserSubscribeRecordDTO> page = wxmpUserSubscribeRecordService.page(params);
return new Result<PageData<WxmpUserSubscribeRecordDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<WxmpUserSubscribeRecordDTO> get(@PathVariable("id") String id){
WxmpUserSubscribeRecordDTO data = wxmpUserSubscribeRecordService.get(id);
return new Result<WxmpUserSubscribeRecordDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody WxmpUserSubscribeRecordDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
wxmpUserSubscribeRecordService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody WxmpUserSubscribeRecordDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
wxmpUserSubscribeRecordService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
wxmpUserSubscribeRecordService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<WxmpUserSubscribeRecordDTO> list = wxmpUserSubscribeRecordService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, WxmpUserSubscribeRecordExcel.class);
}
}

94
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/WxmpWorkUserSubscribeController.java

@ -0,0 +1,94 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.WxmpWorkUserSubscribeDTO;
import com.epmet.excel.WxmpWorkUserSubscribeExcel;
import com.epmet.service.WxmpWorkUserSubscribeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@RestController
@RequestMapping("wxmpworkusersubscribe")
public class WxmpWorkUserSubscribeController {
@Autowired
private WxmpWorkUserSubscribeService wxmpWorkUserSubscribeService;
@GetMapping("page")
public Result<PageData<WxmpWorkUserSubscribeDTO>> page(@RequestParam Map<String, Object> params){
PageData<WxmpWorkUserSubscribeDTO> page = wxmpWorkUserSubscribeService.page(params);
return new Result<PageData<WxmpWorkUserSubscribeDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<WxmpWorkUserSubscribeDTO> get(@PathVariable("id") String id){
WxmpWorkUserSubscribeDTO data = wxmpWorkUserSubscribeService.get(id);
return new Result<WxmpWorkUserSubscribeDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody WxmpWorkUserSubscribeDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
wxmpWorkUserSubscribeService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody WxmpWorkUserSubscribeDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
wxmpWorkUserSubscribeService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
wxmpWorkUserSubscribeService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<WxmpWorkUserSubscribeDTO> list = wxmpWorkUserSubscribeService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, WxmpWorkUserSubscribeExcel.class);
}
}

34
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpMsgSendRecordDao.java

@ -0,0 +1,34 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.WxmpMsgSendRecordEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Mapper
public interface WxmpMsgSendRecordDao extends BaseDao<WxmpMsgSendRecordEntity> {
int saveRecord(WxmpMsgSendRecordEntity entity);
}

77
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpResiUserSubscribeDao.java

@ -0,0 +1,77 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.WxmpResiUserSubscribeEntity;
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
*/
@Mapper
public interface WxmpResiUserSubscribeDao extends BaseDao<WxmpResiUserSubscribeEntity> {
/**
* @Description 根据openId获取剩余订阅条数
* @param openId
* @param templateId
* @param customerId
* @return java.lang.Integer
* @Author liushaowen
* @Date 2020/10/22 9:30
*/
Integer getResiSubscribeInfo(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId);
/**
* @Description 减少订阅条数
* @param openId
* @param customerId
* @param templateId
* @param i 减少的数量
* @return int
* @Author liushaowen
* @Date 2020/10/22 9:38
*/
int decreaseResiSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId,@Param("num") int i);
/**
* @Description 清空订阅条数修改订阅状态
* @param openId
* @param customerId
* @param templateId
* @return int
* @Author liushaowen
* @Date 2020/10/22 13:23
*/
int clearResiSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId);
/**
* @Description 获取模板id
* @param openId
* @param templateId
* @param customerId
* @return java.lang.Integer
* @Author liushaowen
* @Date 2020/10/23 10:53
*/
String getResiSubscribeTemplateId(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId);
}

42
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpTemplateMsgSubscribeStatusDao.java

@ -0,0 +1,42 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.WxMsgAuthInfoResultDTO;
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity;
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
*/
@Mapper
public interface WxmpTemplateMsgSubscribeStatusDao extends BaseDao<WxmpTemplateMsgSubscribeStatusEntity> {
WxMsgAuthInfoResultDTO getUserSubscribeStatusDTO(@Param("userId") String userId,
@Param("customerId") String customerId,
@Param("clientType") String clientType);
WxmpTemplateMsgSubscribeStatusEntity getUserSubscribeStatusEntity(@Param("userId") String userId,
@Param("customerId") String customerId,
@Param("clientType") String clientType);
}

33
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpUserSubscribeRecordDao.java

@ -0,0 +1,33 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.WxmpUserSubscribeRecordEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Mapper
public interface WxmpUserSubscribeRecordDao extends BaseDao<WxmpUserSubscribeRecordEntity> {
}

78
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/WxmpWorkUserSubscribeDao.java

@ -0,0 +1,78 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.WxmpWorkUserSubscribeEntity;
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
*/
@Mapper
public interface WxmpWorkUserSubscribeDao extends BaseDao<WxmpWorkUserSubscribeEntity> {
/**
* @Description 根据openId获取剩余订阅条数
* @param openId
* @param templateId
* @param customerId
* @return java.lang.Integer
* @Author liushaowen
* @Date 2020/10/22 9:31
*/
Integer getWorkSubscribeInfo(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId);
/**
* @Description 减少订阅条数
* @param openId
* @param templateId
* @param customerId
* @param i 减少的数量
* @return int
* @Author liushaowen
* @Date 2020/10/22 9:38
*/
int decreaseWorkSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId, @Param("num") int i);
/**
* @Description 清空订阅数修改订阅状态
* @param openId
* @param customerId
* @param templateId
* @return int
* @Author liushaowen
* @Date 2020/10/22 13:22
*/
int clearWorkSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId);
/**
* @Description 获取模板id
* @param openId
* @param templateId
* @param customerId
* @return java.lang.String
* @Author liushaowen
* @Date 2020/10/23 10:54
*/
String getWorkSubscribeTemplateId(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId);
}

96
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpMsgSendRecordEntity.java

@ -0,0 +1,96 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("wxmp_msg_send_record")
public class WxmpMsgSendRecordEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 所属端类型 居民端:resi 工作端:work
*/
private String clientType;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* 行为类型(存title字段的中间值) 入组申请党员认证等
*/
private String behaviorType;
/**
* 消息标题 消息标题
*/
private String title;
/**
* 消息内容 消息内容
*/
private String messageContent;
/**
* 消息时间 消息时间
*/
private Date messageTime;
/**
* 发送结果(成功success 失败error)
*/
private String result;
/**
* 发送失败的原因成功可以不记录
*/
private String reason;
}

71
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpResiUserSubscribeEntity.java

@ -0,0 +1,71 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("wxmp_resi_user_subscribe")
public class WxmpResiUserSubscribeEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
/**
* 可用推送次数 可用推送次数
*/
private Integer count;
}

76
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpTemplateMsgSubscribeStatusEntity.java

@ -0,0 +1,76 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("wxmp_template_msg_subscribe_status")
public class WxmpTemplateMsgSubscribeStatusEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 所属端类型 居民端:resi 工作端:work
*/
private String clientType;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* 是否总是访问 :yes :no
*/
private String alwaysVisit;
/**
* 订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String subscribeStatus;
/**
* wx是否总是访问 :yes :no
*/
private String wxAlwaysVisit;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
}

76
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpUserSubscribeRecordEntity.java

@ -0,0 +1,76 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("wxmp_user_subscribe_record")
public class WxmpUserSubscribeRecordEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* 行为类型(存title字段的中间值) 入组申请党员认证等
*/
private String behaviorType;
/**
* wx是否总是访问 :yes :no
*/
private String wxAlwaysVisit;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
}

71
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/entity/WxmpWorkUserSubscribeEntity.java

@ -0,0 +1,71 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("wxmp_work_user_subscribe")
public class WxmpWorkUserSubscribeEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户Id 客户Id
*/
private String customerId;
/**
* 消息模板Id 消息模板Id
*/
private String templateId;
/**
* 用户Id 用户Id
*/
private String userId;
/**
* openId openId
*/
private String wxOpenId;
/**
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)
*/
private String wxSubscribeStatus;
/**
* 可用推送次数 可用推送次数
*/
private Integer count;
}

89
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpMsgSendRecordExcel.java

@ -0,0 +1,89 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpMsgSendRecordExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id 客户Id")
private String customerId;
@Excel(name = "所属端类型 居民端:resi 工作端:work")
private String clientType;
@Excel(name = "消息模板Id 消息模板Id")
private String templateId;
@Excel(name = "用户Id 用户Id")
private String userId;
@Excel(name = "openId openId")
private String wxOpenId;
@Excel(name = "行为类型(存title字段的中间值) 入组申请、党员认证等")
private String behaviorType;
@Excel(name = "消息标题 消息标题")
private String title;
@Excel(name = "消息内容 消息内容")
private String messageContent;
@Excel(name = "消息时间 消息时间")
private Date messageTime;
@Excel(name = "发送结果")
private String result;
@Excel(name = "发送失败的原因")
private String reason;
@Excel(name = "删除标识")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

74
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpResiUserSubscribeExcel.java

@ -0,0 +1,74 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpResiUserSubscribeExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id 客户Id")
private String customerId;
@Excel(name = "消息模板Id 消息模板Id")
private String templateId;
@Excel(name = "用户Id 用户Id")
private String userId;
@Excel(name = "openId openId")
private String wxOpenId;
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)")
private String wxSubscribeStatus;
@Excel(name = "可用推送次数 可用推送次数")
private Integer count;
@Excel(name = "删除标识")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

77
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpTemplateMsgSubscribeStatusExcel.java

@ -0,0 +1,77 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpTemplateMsgSubscribeStatusExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id 客户Id")
private String customerId;
@Excel(name = "所属端类型 居民端:resi 工作端:work")
private String clientType;
@Excel(name = "用户Id 用户Id")
private String userId;
@Excel(name = "是否总是访问 是:yes 否:no")
private String alwaysVisit;
@Excel(name = "订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)")
private String subscribeStatus;
@Excel(name = "wx是否总是访问 是:yes 否:no")
private String wxAlwaysVisit;
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)")
private String wxSubscribeStatus;
@Excel(name = "删除标识")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

77
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpUserSubscribeRecordExcel.java

@ -0,0 +1,77 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpUserSubscribeRecordExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id 客户Id")
private String customerId;
@Excel(name = "消息模板Id 消息模板Id")
private String templateId;
@Excel(name = "用户Id 用户Id")
private String userId;
@Excel(name = "openId openId")
private String wxOpenId;
@Excel(name = "行为类型(存title字段的中间值) 入组申请、党员认证等")
private String behaviorType;
@Excel(name = "wx是否总是访问 是:yes 否:no")
private String wxAlwaysVisit;
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)")
private String wxSubscribeStatus;
@Excel(name = "删除标识")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

74
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/excel/WxmpWorkUserSubscribeExcel.java

@ -0,0 +1,74 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.Date;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Data
public class WxmpWorkUserSubscribeExcel {
@Excel(name = "主键")
private String id;
@Excel(name = "客户Id 客户Id")
private String customerId;
@Excel(name = "消息模板Id 消息模板Id")
private String templateId;
@Excel(name = "用户Id 用户Id")
private String userId;
@Excel(name = "openId openId")
private String wxOpenId;
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)")
private String wxSubscribeStatus;
@Excel(name = "可用推送次数 可用推送次数")
private Integer count;
@Excel(name = "删除标识")
private Integer delFlag;
@Excel(name = "乐观锁")
private Integer revision;
@Excel(name = "创建人")
private String createdBy;
@Excel(name = "创建时间")
private Date createdTime;
@Excel(name = "更新人")
private String updatedBy;
@Excel(name = "更新时间")
private Date updatedTime;
}

43
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/exception/WxSubscribeException.java

@ -0,0 +1,43 @@
package com.epmet.exception;
/**
* @description:
* @author: liushaowen
* @date: 2020/10/22 11:07
*/
public class WxSubscribeException extends Exception {
private String openId;
private String templateId;
/**
* Constructs a new exception with the specified detail message. The
* cause is not initialized, and may subsequently be initialized by
* a call to {@link #initCause}.
*
* @param message the detail message. The detail message is saved for
* later retrieval by the {@link #getMessage()} method.
*/
public WxSubscribeException(String message, String templateId, String openId) {
super(message);
this.openId = openId;
this.templateId = templateId;
}
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
}

30
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpMessageRedis.java

@ -0,0 +1,30 @@
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* @description: 微信订阅Redis
* @author: liushaowen
* @date: 2020/10/21 15:28
*/
@Slf4j
@Component
public class WxmpMessageRedis {
@Autowired
private RedisUtils redisUtils;
/**
* @Description 获取刷新
* @param key = epmet:wechartthird:authorizerrefreshtoken:customerId:clientType 前缀+客户ID+客户端类型
* @author zxc
*/
public Map<String,Object> getAuthorizerRefreshToken(String key){
Map<String, Object> result = redisUtils.hGetAll("epmet:wechartthird:authorizerrefreshtoken:" + key);
return result;
}
}

47
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpMsgSendRecordRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Component
public class WxmpMsgSendRecordRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

47
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpResiUserSubscribeRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Component
public class WxmpResiUserSubscribeRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

47
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpTemplateMsgSubscribeStatusRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Component
public class WxmpTemplateMsgSubscribeStatusRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

47
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpUserSubscribeRecordRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Component
public class WxmpUserSubscribeRecordRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

47
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/redis/WxmpWorkUserSubscribeRedis.java

@ -0,0 +1,47 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Component
public class WxmpWorkUserSubscribeRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

51
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMessageService.java

@ -0,0 +1,51 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
import java.util.List;
/**
* 微信消息订阅Service
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
public interface WxmpMessageService {
void saveSysAuthorizeInfo(String customerId, String clientType, String alwaysVisit, String subscribeStatus, String userId);
/**
* @Description 发送订阅消息
* @param msgList
* @return void
* @Author liushaowen
* @Date 2020/10/21 15:34
*/
void sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList);
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
List<GetTemplateListResultDTO> templateList(GetTemplateListFormDTO formDTO);
}

105
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpMsgSendRecordService.java

@ -0,0 +1,105 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.WxmpMsgSendRecordDTO;
import com.epmet.entity.WxmpMsgSendRecordEntity;
import java.util.List;
import java.util.Map;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
public interface WxmpMsgSendRecordService extends BaseService<WxmpMsgSendRecordEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<WxmpMsgSendRecordDTO>
* @author generator
* @date 2020-10-21
*/
PageData<WxmpMsgSendRecordDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<WxmpMsgSendRecordDTO>
* @author generator
* @date 2020-10-21
*/
List<WxmpMsgSendRecordDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return WxmpMsgSendRecordDTO
* @author generator
* @date 2020-10-21
*/
WxmpMsgSendRecordDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void save(WxmpMsgSendRecordDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void update(WxmpMsgSendRecordDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-10-21
*/
void delete(String[] ids);
/**
* 保存
*
* @param entity
* @return int
* @author liushaowen
* @date 2020-10-22
*/
int saveRecord(WxmpMsgSendRecordEntity entity);
}

95
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpResiUserSubscribeService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.WxmpResiUserSubscribeDTO;
import com.epmet.entity.WxmpResiUserSubscribeEntity;
import java.util.List;
import java.util.Map;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
public interface WxmpResiUserSubscribeService extends BaseService<WxmpResiUserSubscribeEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<WxmpResiUserSubscribeDTO>
* @author generator
* @date 2020-10-21
*/
PageData<WxmpResiUserSubscribeDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<WxmpResiUserSubscribeDTO>
* @author generator
* @date 2020-10-21
*/
List<WxmpResiUserSubscribeDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return WxmpResiUserSubscribeDTO
* @author generator
* @date 2020-10-21
*/
WxmpResiUserSubscribeDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void save(WxmpResiUserSubscribeDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void update(WxmpResiUserSubscribeDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-10-21
*/
void delete(String[] ids);
}

95
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpTemplateMsgSubscribeStatusService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.WxmpTemplateMsgSubscribeStatusDTO;
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity;
import java.util.List;
import java.util.Map;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
public interface WxmpTemplateMsgSubscribeStatusService extends BaseService<WxmpTemplateMsgSubscribeStatusEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<WxmpTemplateMsgSubscribeStatusDTO>
* @author generator
* @date 2020-10-21
*/
PageData<WxmpTemplateMsgSubscribeStatusDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<WxmpTemplateMsgSubscribeStatusDTO>
* @author generator
* @date 2020-10-21
*/
List<WxmpTemplateMsgSubscribeStatusDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return WxmpTemplateMsgSubscribeStatusDTO
* @author generator
* @date 2020-10-21
*/
WxmpTemplateMsgSubscribeStatusDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void save(WxmpTemplateMsgSubscribeStatusDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void update(WxmpTemplateMsgSubscribeStatusDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-10-21
*/
void delete(String[] ids);
}

95
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpUserSubscribeRecordService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.WxmpUserSubscribeRecordDTO;
import com.epmet.entity.WxmpUserSubscribeRecordEntity;
import java.util.List;
import java.util.Map;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
public interface WxmpUserSubscribeRecordService extends BaseService<WxmpUserSubscribeRecordEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<WxmpUserSubscribeRecordDTO>
* @author generator
* @date 2020-10-21
*/
PageData<WxmpUserSubscribeRecordDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<WxmpUserSubscribeRecordDTO>
* @author generator
* @date 2020-10-21
*/
List<WxmpUserSubscribeRecordDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return WxmpUserSubscribeRecordDTO
* @author generator
* @date 2020-10-21
*/
WxmpUserSubscribeRecordDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void save(WxmpUserSubscribeRecordDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void update(WxmpUserSubscribeRecordDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-10-21
*/
void delete(String[] ids);
}

95
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/WxmpWorkUserSubscribeService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.WxmpWorkUserSubscribeDTO;
import com.epmet.entity.WxmpWorkUserSubscribeEntity;
import java.util.List;
import java.util.Map;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
public interface WxmpWorkUserSubscribeService extends BaseService<WxmpWorkUserSubscribeEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<WxmpWorkUserSubscribeDTO>
* @author generator
* @date 2020-10-21
*/
PageData<WxmpWorkUserSubscribeDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<WxmpWorkUserSubscribeDTO>
* @author generator
* @date 2020-10-21
*/
List<WxmpWorkUserSubscribeDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return WxmpWorkUserSubscribeDTO
* @author generator
* @date 2020-10-21
*/
WxmpWorkUserSubscribeDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void save(WxmpWorkUserSubscribeDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-10-21
*/
void update(WxmpWorkUserSubscribeDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-10-21
*/
void delete(String[] ids);
}

322
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMessageServiceImpl.java

@ -0,0 +1,322 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.EnvEnum;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.WxmpMessageConstant;
import com.epmet.dao.WxmpResiUserSubscribeDao;
import com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao;
import com.epmet.dao.WxmpWorkUserSubscribeDao;
import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.form.StaffBasicInfoFormDTO;
import com.epmet.dto.form.UserBasicInfoFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
import com.epmet.entity.WxmpMsgSendRecordEntity;
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity;
import com.epmet.exception.WxSubscribeException;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.redis.WxmpMessageRedis;
import com.epmet.service.WxmpMessageService;
import com.epmet.service.WxmpMsgSendRecordService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 微信消息订阅Service
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Service
public class WxmpMessageServiceImpl implements WxmpMessageService {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private WxmpTemplateMsgSubscribeStatusDao msgSubscribeStatusDao;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private WxmpMessageRedis wxmpMessageRedis;
@Resource
private WxmpResiUserSubscribeDao wxmpResiUserSubscribeDao;
@Resource
private WxmpWorkUserSubscribeDao wxmpWorkUserSubscribeDao;
@Autowired
private WxmpMsgSendRecordService wxmpMsgSendRecordService;
/**
* @return void
* @Description 保存系统授权信息
* @author wxz
* @date 2020.10.21 17:29
*/
@Override
public void saveSysAuthorizeInfo(String customerId, String clientType, String alwaysVisit, String subscribeStatus, String userId) {
WxmpTemplateMsgSubscribeStatusEntity userSubscribeStatusEntity = msgSubscribeStatusDao.getUserSubscribeStatusEntity(userId, customerId, clientType);
if (userSubscribeStatusEntity != null) {
userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit);
userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus);
msgSubscribeStatusDao.updateById(userSubscribeStatusEntity);
return;
}
userSubscribeStatusEntity = new WxmpTemplateMsgSubscribeStatusEntity();
userSubscribeStatusEntity.setCustomerId(customerId);
userSubscribeStatusEntity.setClientType(clientType);
userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit);
userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus);
userSubscribeStatusEntity.setUserId(userId);
msgSubscribeStatusDao.insert(userSubscribeStatusEntity);
}
/**
* @param msgList
* @return void
* @Description 发送订阅消息
* @Author liushaowen
* @Date 2020/10/21 15:34
*/
@Override
public void sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList) {
logger.info("待发送订阅消息数量:{}", msgList.size());
int succecssCount = 0;
for (WxSubscribeMessageFormDTO msg : msgList) {
try {
String userId = msg.getUserId();
String clientType = msg.getClientType();
String customerId = msg.getCustomerId();
String templateId = null;
String openId = null;
//通过userId获取openId
try {
if (WxmpMessageConstant.RESI.equals(clientType)) {
UserBasicInfoFormDTO userBasicInfoFormDTO = new UserBasicInfoFormDTO();
userBasicInfoFormDTO.setUserId(userId);
openId = epmetUserOpenFeignClient.getUserBasicInfo(userBasicInfoFormDTO).getData().getOpenId();
} else if (WxmpMessageConstant.WORK.equals(clientType)) {
StaffBasicInfoFormDTO staffBasicInfoFormDTO = new StaffBasicInfoFormDTO();
staffBasicInfoFormDTO.setStaffId(userId);
openId = epmetUserOpenFeignClient.getStaffBasicInfo(staffBasicInfoFormDTO).getData().getOpenId();
} else {
throw new WxSubscribeException("clientType有误", "", openId);
}
} catch (Exception e) {
throw new WxSubscribeException("连接User服务失败", "", "");
}
if (StringUtils.isBlank(openId)) {
throw new WxSubscribeException("openId获取失败", "", "");
}
//获取accessToken
StringBuilder key = new StringBuilder(msg.getCustomerId()).append(":").append(msg.getClientType());
Map<String, Object> authorizerRefreshToken = new HashMap<>();
try {
authorizerRefreshToken = wxmpMessageRedis.getAuthorizerRefreshToken(key.toString());
} catch (Exception e) {
throw new WxSubscribeException("连接缓存服务器失败", "", openId);
}
String accessToken = (String) authorizerRefreshToken.get(WxmpMessageConstant.AUTHORIZER_ACCESS_TOKEN);
if (StringUtils.isBlank(accessToken)) {
throw new WxSubscribeException("accessToken获取失败", "", openId);
}
//获取模板id
if (WxmpMessageConstant.RESI.equals(clientType)) {
templateId = wxmpResiUserSubscribeDao.getResiSubscribeTemplateId(openId, templateId, customerId);
} else if (WxmpMessageConstant.WORK.equals(clientType)) {
templateId = wxmpWorkUserSubscribeDao.getWorkSubscribeTemplateId(openId, templateId, customerId);
}
if (StringUtils.isBlank(templateId)) {
throw new WxSubscribeException("获取模板id失败", "", openId);
}
//判断用户是否有次数
Integer count = null;
if (WxmpMessageConstant.RESI.equals(clientType)) {
count = wxmpResiUserSubscribeDao.getResiSubscribeInfo(openId, templateId, customerId);
} else if (WxmpMessageConstant.WORK.equals(clientType)) {
count = wxmpWorkUserSubscribeDao.getWorkSubscribeInfo(openId, templateId, customerId);
}
if (count == null) {
//用户未订阅
throw new WxSubscribeException("用户未订阅", templateId, openId);
}
if (count == 0) {
throw new WxSubscribeException("用户可用额度不足", templateId, openId);
}
//发送消息
JSONObject jsonObject = new JSONObject();
JSONObject data = new JSONObject();
//必填项
jsonObject.put(WxmpMessageConstant.ACCESS_TOKEN, accessToken);
jsonObject.put(WxmpMessageConstant.TOUSER, openId);
jsonObject.put(WxmpMessageConstant.TEMPLATE_ID, templateId);
data.put(WxmpMessageConstant.TITLE, new JSONObject().put("value", ("您有一条" + msg.getBehaviorType()).substring(0, WxmpMessageConstant.TITLE_LIMIT)));
data.put(WxmpMessageConstant.MESSAGE_CONTENT, new JSONObject().put("value", msg.getMessageContent().substring(0, WxmpMessageConstant.MESSAGE_CONTENT_LIMIT)));
data.put(WxmpMessageConstant.MESSAGE_TIME, new JSONObject().put("value", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date())));
jsonObject.put(WxmpMessageConstant.DATA, data);
EnvEnum envEnum = EnvEnum.getCurrentEnv();
//选填项
if (WxmpMessageConstant.RESI.equals(clientType)) {
jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_RESI);
} else if (WxmpMessageConstant.WORK.equals(clientType)) {
jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_WORK);
}
//开发环境
if ("dev".equals(envEnum.getCode())) {
jsonObject.put(WxmpMessageConstant.MINIPROGRAM_STATE, WxmpMessageConstant.STATE_DEV);
}
//测试环境
if ("test".equals(envEnum.getCode())) {
jsonObject.put(WxmpMessageConstant.MINIPROGRAM_STATE, WxmpMessageConstant.STATE_TEST);
}
String resultStr = HttpClientManager.getInstance().sendPostByJSON(WxmpMessageConstant.SEND_MESSAGE + accessToken, JSON.toJSONString(jsonObject)).getData();
Map<String, Object> resultMap = JSON.parseObject(resultStr, Map.class);
Object errcode = resultMap.get(WxmpMessageConstant.ERR_CODE);
if (errcode.equals(NumConstant.ZERO)) {
//发送成功
//订阅条数-1
int decrease = 0;
if (WxmpMessageConstant.RESI.equals(clientType)) {
decrease = wxmpResiUserSubscribeDao.decreaseResiSubscribeCount(openId, templateId, customerId, 1);
} else if (WxmpMessageConstant.WORK.equals(clientType)) {
decrease = wxmpWorkUserSubscribeDao.decreaseWorkSubscribeCount(openId, templateId, customerId, 1);
}
if (decrease == 0) {
logger.error("消息{}发送成功但订阅条数-1失败", JSON.toJSONString(msg));
}
//存表
int saveRes = wxmpMsgSendRecordService.saveRecord(initRecord(msg, templateId, openId, WxmpMessageConstant.SUCCESS));
if (saveRes == 0) {
logger.error("消息{}发送成功但存入记录表失败", JSON.toJSONString(msg));
}
} else {
//发送失败
//用户拒绝,需清空订阅表条数,修改订阅状态
if (errcode.equals(WxmpMessageConstant.USER_REFUSED)) {
int clear = 0;
if (WxmpMessageConstant.RESI.equals(clientType)) {
clear = wxmpResiUserSubscribeDao.clearResiSubscribeCount(openId, templateId, customerId);
} else if (WxmpMessageConstant.WORK.equals(clientType)) {
clear = wxmpWorkUserSubscribeDao.clearWorkSubscribeCount(openId, templateId, customerId);
}
if (clear == 0) {
logger.error("消息{}发送失败且清空订阅条数失败", JSON.toJSONString(msg));
}
}
//抛出错误
throw new WxSubscribeException(String.valueOf(resultMap.get(WxmpMessageConstant.ERR_MSG)),templateId, openId);
}
succecssCount++;
} catch (Exception e) {
String errMsg = e.getMessage();
//ValidateException错误信息为getMsg
// if (StringUtils.isBlank(errMsg) && e instanceof ValidateException) {
// errMsg = ((ValidateException) e).getMsg();
// }
if (e instanceof WxSubscribeException) {
//存表
WxmpMsgSendRecordEntity wxmpMsgSendRecordEntity = initRecord(msg, ((WxSubscribeException) e).getTemplateId(), ((WxSubscribeException) e).getOpenId(), WxmpMessageConstant.ERROR);
wxmpMsgSendRecordEntity.setReason(errMsg);
int saveRes = wxmpMsgSendRecordService.saveRecord(wxmpMsgSendRecordEntity);
if (saveRes == 0) {
logger.error("消息{}发送失败且存入记录表失败", JSON.toJSONString(msg));
}
}
logger.error("消息:{}发送失败,原因是:{}", JSON.toJSONString(msg), errMsg);
continue;
}
}
logger.info("{}条消息中的{}条发送成功", msgList.size(), succecssCount);
}
//初始化记录对象
private WxmpMsgSendRecordEntity initRecord(WxSubscribeMessageFormDTO msg, String templateId, String openId, String status) {
WxmpMsgSendRecordEntity wxmpMsgSendRecordEntity = new WxmpMsgSendRecordEntity();
wxmpMsgSendRecordEntity.setCustomerId(msg.getCustomerId());
wxmpMsgSendRecordEntity.setClientType(msg.getClientType());
wxmpMsgSendRecordEntity.setTemplateId(templateId);
wxmpMsgSendRecordEntity.setUserId(msg.getUserId());
wxmpMsgSendRecordEntity.setWxOpenId(openId);
wxmpMsgSendRecordEntity.setBehaviorType(msg.getBehaviorType());
wxmpMsgSendRecordEntity.setTitle("您有一条" + msg.getBehaviorType());
wxmpMsgSendRecordEntity.setMessageContent(msg.getMessageContent());
wxmpMsgSendRecordEntity.setMessageTime(new Date());
wxmpMsgSendRecordEntity.setResult(status);
return wxmpMsgSendRecordEntity;
}
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
@Override
public List<GetTemplateListResultDTO> templateList(GetTemplateListFormDTO formDTO) {
GetTemplateListFormDTO dto = ConvertUtils.sourceToTarget(formDTO, GetTemplateListFormDTO.class);
String url = "https://epmet-cloud.elinkservice.cn/api/third/personaltemplate/templatelist";
//String url = "http://localhost:8080/api/third/personaltemplate/templatelist";
String data = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)).getData();
logger.info("ThirdLoginServiceImpl.getUserWeChat:httpclient->url:"+url+",结果->"+data);
JSONObject toResult = JSON.parseObject(data);
Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class);
if (null != toResult.get("code")) {
mapToResult.setCode(((Integer) toResult.get("code")).intValue());
}
if (!mapToResult.success()) {
logger.error("调用epmet_third服务获取小程序消息订阅模板数据失败");
throw new RenException(mapToResult.getCode());
}
List<GetTemplateListResultDTO> resultList = (List<GetTemplateListResultDTO>) mapToResult.getData();
return resultList;
}
}

109
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpMsgSendRecordServiceImpl.java

@ -0,0 +1,109 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.WxmpMsgSendRecordDao;
import com.epmet.dto.WxmpMsgSendRecordDTO;
import com.epmet.entity.WxmpMsgSendRecordEntity;
import com.epmet.redis.WxmpMsgSendRecordRedis;
import com.epmet.service.WxmpMsgSendRecordService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 消息发送记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Service
public class WxmpMsgSendRecordServiceImpl extends BaseServiceImpl<WxmpMsgSendRecordDao, WxmpMsgSendRecordEntity> implements WxmpMsgSendRecordService {
@Autowired
private WxmpMsgSendRecordRedis wxmpMsgSendRecordRedis;
@Override
public PageData<WxmpMsgSendRecordDTO> page(Map<String, Object> params) {
IPage<WxmpMsgSendRecordEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, WxmpMsgSendRecordDTO.class);
}
@Override
public List<WxmpMsgSendRecordDTO> list(Map<String, Object> params) {
List<WxmpMsgSendRecordEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, WxmpMsgSendRecordDTO.class);
}
private QueryWrapper<WxmpMsgSendRecordEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<WxmpMsgSendRecordEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public WxmpMsgSendRecordDTO get(String id) {
WxmpMsgSendRecordEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, WxmpMsgSendRecordDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(WxmpMsgSendRecordDTO dto) {
WxmpMsgSendRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpMsgSendRecordEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(WxmpMsgSendRecordDTO dto) {
WxmpMsgSendRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpMsgSendRecordEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
@Transactional(rollbackFor = Exception.class)
public int saveRecord(WxmpMsgSendRecordEntity entity) {
return baseDao.saveRecord(entity);
}
}

104
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpResiUserSubscribeServiceImpl.java

@ -0,0 +1,104 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.WxmpResiUserSubscribeDao;
import com.epmet.dto.WxmpResiUserSubscribeDTO;
import com.epmet.entity.WxmpResiUserSubscribeEntity;
import com.epmet.redis.WxmpResiUserSubscribeRedis;
import com.epmet.service.WxmpResiUserSubscribeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 居民端用户订阅模板消息次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Service
public class WxmpResiUserSubscribeServiceImpl extends BaseServiceImpl<WxmpResiUserSubscribeDao, WxmpResiUserSubscribeEntity> implements WxmpResiUserSubscribeService {
@Autowired
private WxmpResiUserSubscribeRedis wxmpResiUserSubscribeRedis;
@Override
public PageData<WxmpResiUserSubscribeDTO> page(Map<String, Object> params) {
IPage<WxmpResiUserSubscribeEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, WxmpResiUserSubscribeDTO.class);
}
@Override
public List<WxmpResiUserSubscribeDTO> list(Map<String, Object> params) {
List<WxmpResiUserSubscribeEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, WxmpResiUserSubscribeDTO.class);
}
private QueryWrapper<WxmpResiUserSubscribeEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<WxmpResiUserSubscribeEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public WxmpResiUserSubscribeDTO get(String id) {
WxmpResiUserSubscribeEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, WxmpResiUserSubscribeDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(WxmpResiUserSubscribeDTO dto) {
WxmpResiUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpResiUserSubscribeEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(WxmpResiUserSubscribeDTO dto) {
WxmpResiUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpResiUserSubscribeEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

104
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpTemplateMsgSubscribeStatusServiceImpl.java

@ -0,0 +1,104 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao;
import com.epmet.dto.WxmpTemplateMsgSubscribeStatusDTO;
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity;
import com.epmet.redis.WxmpTemplateMsgSubscribeStatusRedis;
import com.epmet.service.WxmpTemplateMsgSubscribeStatusService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 用户模板消息订阅授权状态表记录我们自己和微信的授权页用户勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Service
public class WxmpTemplateMsgSubscribeStatusServiceImpl extends BaseServiceImpl<WxmpTemplateMsgSubscribeStatusDao, WxmpTemplateMsgSubscribeStatusEntity> implements WxmpTemplateMsgSubscribeStatusService {
@Autowired
private WxmpTemplateMsgSubscribeStatusRedis wxmpTemplateMsgSubscribeStatusRedis;
@Override
public PageData<WxmpTemplateMsgSubscribeStatusDTO> page(Map<String, Object> params) {
IPage<WxmpTemplateMsgSubscribeStatusEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, WxmpTemplateMsgSubscribeStatusDTO.class);
}
@Override
public List<WxmpTemplateMsgSubscribeStatusDTO> list(Map<String, Object> params) {
List<WxmpTemplateMsgSubscribeStatusEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, WxmpTemplateMsgSubscribeStatusDTO.class);
}
private QueryWrapper<WxmpTemplateMsgSubscribeStatusEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<WxmpTemplateMsgSubscribeStatusEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public WxmpTemplateMsgSubscribeStatusDTO get(String id) {
WxmpTemplateMsgSubscribeStatusEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, WxmpTemplateMsgSubscribeStatusDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(WxmpTemplateMsgSubscribeStatusDTO dto) {
WxmpTemplateMsgSubscribeStatusEntity entity = ConvertUtils.sourceToTarget(dto, WxmpTemplateMsgSubscribeStatusEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(WxmpTemplateMsgSubscribeStatusDTO dto) {
WxmpTemplateMsgSubscribeStatusEntity entity = ConvertUtils.sourceToTarget(dto, WxmpTemplateMsgSubscribeStatusEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

104
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpUserSubscribeRecordServiceImpl.java

@ -0,0 +1,104 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.WxmpUserSubscribeRecordDao;
import com.epmet.dto.WxmpUserSubscribeRecordDTO;
import com.epmet.entity.WxmpUserSubscribeRecordEntity;
import com.epmet.redis.WxmpUserSubscribeRecordRedis;
import com.epmet.service.WxmpUserSubscribeRecordService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 用户触发订阅的行为记录表同时记录微信授权页每次勾选的状态
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Service
public class WxmpUserSubscribeRecordServiceImpl extends BaseServiceImpl<WxmpUserSubscribeRecordDao, WxmpUserSubscribeRecordEntity> implements WxmpUserSubscribeRecordService {
@Autowired
private WxmpUserSubscribeRecordRedis wxmpUserSubscribeRecordRedis;
@Override
public PageData<WxmpUserSubscribeRecordDTO> page(Map<String, Object> params) {
IPage<WxmpUserSubscribeRecordEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, WxmpUserSubscribeRecordDTO.class);
}
@Override
public List<WxmpUserSubscribeRecordDTO> list(Map<String, Object> params) {
List<WxmpUserSubscribeRecordEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, WxmpUserSubscribeRecordDTO.class);
}
private QueryWrapper<WxmpUserSubscribeRecordEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<WxmpUserSubscribeRecordEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public WxmpUserSubscribeRecordDTO get(String id) {
WxmpUserSubscribeRecordEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, WxmpUserSubscribeRecordDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(WxmpUserSubscribeRecordDTO dto) {
WxmpUserSubscribeRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpUserSubscribeRecordEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(WxmpUserSubscribeRecordDTO dto) {
WxmpUserSubscribeRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpUserSubscribeRecordEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

104
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/WxmpWorkUserSubscribeServiceImpl.java

@ -0,0 +1,104 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.WxmpWorkUserSubscribeDao;
import com.epmet.dto.WxmpWorkUserSubscribeDTO;
import com.epmet.entity.WxmpWorkUserSubscribeEntity;
import com.epmet.redis.WxmpWorkUserSubscribeRedis;
import com.epmet.service.WxmpWorkUserSubscribeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 工作端用户订阅模板消息有效次数记录表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-10-21
*/
@Service
public class WxmpWorkUserSubscribeServiceImpl extends BaseServiceImpl<WxmpWorkUserSubscribeDao, WxmpWorkUserSubscribeEntity> implements WxmpWorkUserSubscribeService {
@Autowired
private WxmpWorkUserSubscribeRedis wxmpWorkUserSubscribeRedis;
@Override
public PageData<WxmpWorkUserSubscribeDTO> page(Map<String, Object> params) {
IPage<WxmpWorkUserSubscribeEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, WxmpWorkUserSubscribeDTO.class);
}
@Override
public List<WxmpWorkUserSubscribeDTO> list(Map<String, Object> params) {
List<WxmpWorkUserSubscribeEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, WxmpWorkUserSubscribeDTO.class);
}
private QueryWrapper<WxmpWorkUserSubscribeEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<WxmpWorkUserSubscribeEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public WxmpWorkUserSubscribeDTO get(String id) {
WxmpWorkUserSubscribeEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, WxmpWorkUserSubscribeDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(WxmpWorkUserSubscribeDTO dto) {
WxmpWorkUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpWorkUserSubscribeEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(WxmpWorkUserSubscribeDTO dto) {
WxmpWorkUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpWorkUserSubscribeEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

48
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpMsgSendRecordDao.xml

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.WxmpMsgSendRecordDao">
<insert id="saveRecord" parameterType="com.epmet.entity.WxmpMsgSendRecordEntity">
insert into wxmp_msg_send_record
(id,
customer_id,
client_type,
template_id,
user_id,
wx_open_id,
behavior_type,
title,
message_content,
message_time,
result,
reason,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time)
values
(MD5(replace(UUID(),'-','')),
#{customerId},
#{clientType},
#{templateId},
#{userId},
#{wxOpenId},
#{behaviorType},
#{title},
#{messageContent},
#{messageTime},
#{result},
#{reason},
0,
0,
'sys',
now(),
'sys',
now()
)
</insert>
</mapper>

53
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpResiUserSubscribeDao.xml

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.WxmpResiUserSubscribeDao">
<select id="getResiSubscribeInfo" parameterType="String" resultType="java.lang.Integer">
select
count
from Wxmp_Resi_User_Subscribe
where
del_flag = 0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
and wx_subscribe_status = 'subscribe'
</select>
<update id="decreaseResiSubscribeCount">
update Wxmp_Resi_User_Subscribe
set count = if(count <![CDATA[<]]> 1, 0, count - ${num} )
where
del_flag = 0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
and wx_subscribe_status = 'subscribe'
</update>
<update id="clearResiSubscribeCount" parameterType="String">
update Wxmp_Resi_User_Subscribe
set count = 0,
wx_subscribe_status = 'unsubscribe'
where
del_flag = 0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
</update>
<select id="getResiSubscribeTemplateId" resultType="String">
select
template_id
from Wxmp_Resi_User_Subscribe
where
del_flag = 0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
and wx_subscribe_status = 'subscribe'
limit 1
</select>
</mapper>

47
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpTemplateMsgSubscribeStatusDao.xml

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao">
<select id="getUserSubscribeStatusDTO" resultType="com.epmet.dto.result.WxMsgAuthInfoResultDTO">
select id,
customer_id,
client_type,
user_id,
always_visit,
subscribe_status,
wx_always_visit,
wx_subscribe_status,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
from wxmp_template_msg_subscribe_status status
where USER_ID = #{userId}
and CUSTOMER_ID = #{customerId}
and CLIENT_TYPE = #{clientType}
</select>
<select id="getUserSubscribeStatusEntity" resultType="com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity">
select id,
customer_id,
client_type,
user_id,
always_visit,
subscribe_status,
wx_always_visit,
wx_subscribe_status,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
from wxmp_template_msg_subscribe_status status
where USER_ID = #{userId}
and CUSTOMER_ID = #{customerId}
and CLIENT_TYPE = #{clientType}
</select>
</mapper>

8
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpUserSubscribeRecordDao.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.WxmpUserSubscribeRecordDao">
</mapper>

49
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/WxmpWorkUserSubscribeDao.xml

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.WxmpWorkUserSubscribeDao">
<select id="getWorkSubscribeInfo" parameterType="String" resultType="Integer">
select
`count`
from Wxmp_Work_User_Subscribe
where
del_flag =0
and template_id = #{templateId}
and wx_open_id = #{openId}
and wx_subscribe_status = 'subscribe'
</select>
<update id="decreaseWorkSubscribeCount">
update Wxmp_Work_User_Subscribe
set count = if(count &lt; 1, 0, count - ${num} )
where
del_flag =0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
and wx_subscribe_status = 'subscribe'
</update>
<update id="clearWorkSubscribeCount" parameterType="String">
update Wxmp_Work_User_Subscribe
set count = 0,
wx_subscribe_status = 'unsubscribe'
where
del_flag =0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
</update>
<select id="getWorkSubscribeTemplateId" resultType="String">
select
template_id
from Wxmp_Work_User_Subscribe
where
del_flag = 0
and customer_id = #{customerId}
and template_id = #{templateId}
and wx_open_id = #{openId}
and wx_subscribe_status = 'subscribe'
limit 1
</select>
</mapper>

31
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/GetTemplateListFormDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 获取客户小程序模板列表-接口入参
* @Author sun
*/
@Data
public class GetTemplateListFormDTO implements Serializable {
/**
* 客户Id
*/
@NotBlank(message="客户Id不能为空", groups = {AddUserInternalGroup.class})
private String customerId;
/**
* 小程序Id
*/
@NotBlank(message="小程序appId不能为空", groups = {AddUserInternalGroup.class})
private String appId;
/**
* 模板类型(站内信提醒)
*/
private String templateType;
public interface AddUserInternalGroup {}
}

25
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/GetTemplateListResultDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 获取客户小程序模板列表-接口返参
* @Author sun
*/
@Data
public class GetTemplateListResultDTO implements Serializable {
private static final long serialVersionUID = 6856602932571839314L;
/**
* 模板Id
*/
private String templateId;
/**
* 模板类型站内信提醒
*/
private String templateType;
}

37
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/PersonalTemplateController.java

@ -0,0 +1,37 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
import com.epmet.service.PersonalTemplateService;
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;
/**
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-09
*/
@RestController
@RequestMapping("personaltemplate")
public class PersonalTemplateController {
@Autowired
private PersonalTemplateService personalTemplateService;
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
@PostMapping("templatelist")
public Result<List<GetTemplateListResultDTO>> templateList(@RequestBody GetTemplateListFormDTO formDTO) {
return new Result<List<GetTemplateListResultDTO>>().ok(personalTemplateService.templateList(formDTO));
}
}

9
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PersonalTemplateDao.java

@ -19,7 +19,9 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.PersonalTemplateDTO;
import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.result.CustomerTempResultDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
import com.epmet.dto.result.TemplateDTO;
import com.epmet.entity.PersonalTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
@ -76,4 +78,11 @@ public interface PersonalTemplateDao extends BaseDao<PersonalTemplateEntity> {
*/
List<TemplateDTO> selectListByCustomerId(@Param("appId") String appId, @Param("customerId") String customerId,
@Param("clientType") String clientType);
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
List<GetTemplateListResultDTO> selectTemplateList(GetTemplateListFormDTO formDTO);
}

9
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PersonalTemplateService.java

@ -20,6 +20,8 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.PersonalTemplateDTO;
import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
import com.epmet.dto.result.TemplateDTO;
import com.epmet.entity.PersonalTemplateEntity;
@ -123,4 +125,11 @@ public interface PersonalTemplateService extends BaseService<PersonalTemplateEnt
* @date 2020/9/11 14:43
*/
List<TemplateDTO> getListByCustomer(String appId, String customerId, String clientType);
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
List<GetTemplateListResultDTO> templateList(GetTemplateListFormDTO formDTO);
}

13
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PersonalTemplateServiceImpl.java

@ -25,6 +25,8 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.PersonalTemplateDao;
import com.epmet.dto.PersonalTemplateDTO;
import com.epmet.dto.form.GetTemplateListFormDTO;
import com.epmet.dto.result.GetTemplateListResultDTO;
import com.epmet.dto.result.TemplateDTO;
import com.epmet.entity.PersonalTemplateEntity;
import com.epmet.service.PersonalTemplateService;
@ -116,4 +118,15 @@ public class PersonalTemplateServiceImpl extends BaseServiceImpl<PersonalTemplat
return baseDao.selectListByCustomerId(appId, customerId, clientType);
}
/**
* @return
* @Description 居民端工作端-获取客户小程序模板列表
* @author sun
*/
@Override
public List<GetTemplateListResultDTO> templateList(GetTemplateListFormDTO formDTO) {
//根据客户Id、appId、模板类型查询小程序订阅消息模板列表
return baseDao.selectTemplateList(formDTO);
}
}

13
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PersonalTemplateDao.xml

@ -75,5 +75,18 @@
ON t1.PRI_TMPL_ID = t2.PID
</select>
<select id="selectTemplateList" resultType="com.epmet.dto.result.GetTemplateListResultDTO">
SELECT
title AS "templateType",
pri_tmpl_id AS "templateId"
FROM
personal_template
WHERE
del_flag = '0'
AND customer_id = #{customerId}
AND app_id = #{appId}
AND title = #{templateType}
ORDER BY CREATED_TIME DESC
</select>
</mapper>

5
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/constant/UserMessageConstant.java

@ -59,4 +59,9 @@ public interface UserMessageConstant {
*/
String CREATION_OF_GROUP_MESSAGE_TEMPLATE = "%s%s申请创建小组【%s】,请审核。";
/**
* 组长审核入组申请时的微信订阅behavior
*/
String WX_APPLY_GROUP_BEHAVIOR = "小组消息";
}

25
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -34,6 +34,7 @@ import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.UserResiInfoListFormDTO;
import com.epmet.dto.form.WxSubscribeMessageFormDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.modules.constant.GroupMemberConstant;
@ -435,7 +436,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
* @return void
* @param resiGroupMemberDTO
* @Author yinzuomei
* @Description 用户会收到您有一条小组消息 您加入的组名已通过审核请查看
* @Description 用户会收到您有一条小组消息 您加入的组名已通过审核请查看发送微信订阅通知
* @Date 2020/4/7 15:39
**/
private void sendUserApprovedMessage(ResiGroupMemberDTO resiGroupMemberDTO) {
@ -452,6 +453,16 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
//通知群主
userMessage.setUserId(resiGroupMemberDTO.getCustomerUserId());
epmetMessageOpenFeignClient.saveUserMessage(userMessage);
//2 给用户发送微信订阅
WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO();
wxSubscribeMessageFormDTO.setCustomerId(resiGroupMemberDTO.getCustomerId());
wxSubscribeMessageFormDTO.setUserId(resiGroupMemberDTO.getCustomerUserId());
wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI);
wxSubscribeMessageFormDTO.setBehaviorType(UserMessageConstant.WX_APPLY_GROUP_BEHAVIOR);
wxSubscribeMessageFormDTO.setMessageContent(messageContent);
List<WxSubscribeMessageFormDTO> msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
}
/**
@ -500,7 +511,7 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
* @param groupMemeberOperationDTO
* @param disagreeApplyFormDTO
* @Author yinzuomei
* @Description 您在组名的入组申请被拒绝原因组长拒绝审核时输入的备注
* @Description 您在组名的入组申请被拒绝原因组长拒绝审核时输入的备注 发送微信订阅
* @Date 2020/4/7 15:39
**/
private void sendUserRejectedMessage(GroupMemeberOperationDTO groupMemeberOperationDTO,DisagreeApplyFormDTO disagreeApplyFormDTO) {
@ -517,6 +528,16 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
//通知群主
userMessage.setUserId(groupMemeberOperationDTO.getCustomerUserId());
epmetMessageOpenFeignClient.saveUserMessage(userMessage);
//2 给用户发送微信订阅
WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO();
wxSubscribeMessageFormDTO.setCustomerId(resiGroupDTO.getCustomerId());
wxSubscribeMessageFormDTO.setUserId(groupMemeberOperationDTO.getCustomerUserId());
wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI);
wxSubscribeMessageFormDTO.setBehaviorType(UserMessageConstant.WX_APPLY_GROUP_BEHAVIOR);
wxSubscribeMessageFormDTO.setMessageContent(messageContent);
List<WxSubscribeMessageFormDTO> msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
}
/**

12
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java

@ -23,6 +23,7 @@ import com.epmet.modules.feign.ResiGroupFeignClient;
import com.epmet.modules.partymember.entity.*;
import com.epmet.modules.partymember.redis.PartymemberInfoRedis;
import com.epmet.modules.partymember.service.*;
import com.epmet.modules.warmhearted.constant.ResiWarmUserMessageConstant;
import com.epmet.modules.warmhearted.constant.ResiWarmheartedConstant;
import com.epmet.modules.warmhearted.constant.ResiWarmheartedVisitConstant;
import com.epmet.redis.ResiPartyMemberRedis;
@ -644,6 +645,17 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
String messageContent = String.format(userMsg, gridName);
userMessageFormDTO.setMessageContent(messageContent);
userMessageFormDTO.setReadFlag(ReadFlagConstant.UN_READ);
//发送微信订阅消息
WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO();
wxSubscribeMessageFormDTO.setCustomerId(formDTO.getCustomerId());
wxSubscribeMessageFormDTO.setUserId(formDTO.getUserId());
wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI);
wxSubscribeMessageFormDTO.setBehaviorType(ResiWarmUserMessageConstant.WX_WARMHEARTED_BEHAVIOR);
wxSubscribeMessageFormDTO.setMessageContent(messageContent);
List<WxSubscribeMessageFormDTO> msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
//保存消息
return epmetMessageOpenFeignClient.saveUserMessage(userMessageFormDTO);
}

5
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/constant/ResiWarmUserMessageConstant.java

@ -26,4 +26,9 @@ public interface ResiWarmUserMessageConstant {
*/
String AUDIT_REJECT_MSG = "您好,您申请的%s热心居民,已被驳回,原因:%s";
/**
* 热心居民申请-微信订阅behavior
*/
String WX_WARMHEARTED_BEHAVIOR = "热心居民申请消息";
}

15
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/warmhearted/service/impl/ResiWarmheartedApplyServiceImpl.java

@ -39,6 +39,7 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.AgencyAndStaffsResultDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.modules.feign.EpmetMessageFeignClient;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.feign.GovOrgFeignClient;
@ -90,6 +91,8 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl<ResiWarmhea
@Autowired
private EpmetMessageFeignClient epmetMessageFeignClient;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private ResiPartyMemberRedis resiPartyMemberRedis;
@ -438,6 +441,18 @@ public class ResiWarmheartedApplyServiceImpl extends BaseServiceImpl<ResiWarmhea
String messageContent = String.format(userMsg, gridName,formDTO.getRefuseReason());
userMessageFormDTO.setMessageContent(messageContent);
userMessageFormDTO.setReadFlag(ReadFlagConstant.UN_READ);
//发送微信订阅
WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO = new WxSubscribeMessageFormDTO();
wxSubscribeMessageFormDTO.setCustomerId(formDTO.getCustomerId());
wxSubscribeMessageFormDTO.setUserId(formDTO.getUserId());
wxSubscribeMessageFormDTO.setClientType(AppClientConstant.APP_RESI);
wxSubscribeMessageFormDTO.setBehaviorType(ResiWarmUserMessageConstant.WX_WARMHEARTED_BEHAVIOR);
wxSubscribeMessageFormDTO.setMessageContent(messageContent);
List<WxSubscribeMessageFormDTO> msgList = new ArrayList<>();
msgList.add(wxSubscribeMessageFormDTO);
epmetMessageOpenFeignClient.sendWxSubscribeMessage(msgList);
//保存消息
return epmetMessageFeignClient.saveUserMessage(userMessageFormDTO);
}

23
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/StaffBasicInfoFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author sun
* @Description 工作端-查询用户基础信息-接口入参
**/
@Data
public class StaffBasicInfoFormDTO implements Serializable{
private static final long serialVersionUID = -7994579456530273809L;
/**
* 用户Id
* */
@NotBlank(message = "用户Id不能为空" , groups = { StaffBasicInfoGroup.class })
private String staffId;
public interface StaffBasicInfoGroup {}
}

22
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserBasicInfoFormDTO.java

@ -0,0 +1,22 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Author sun
* @Description 居民端-查询用户基础信息-接口入参
**/
@Data
public class UserBasicInfoFormDTO implements Serializable{
private static final long serialVersionUID = -7994579456530273809L;
/**
* 用户Id
* */
@NotBlank(message = "用户Id不能为空" , groups = { UserBasicInfoGroup.class })
private String userId;
public interface UserBasicInfoGroup {}
}

39
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffBasicInfo.java

@ -0,0 +1,39 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author sun
* @Description 工作端-查询用户基础信息-接口返参
**/
@Data
public class StaffBasicInfo implements Serializable {
/**
* 客户Id
*/
private String customerId;
/**
* 用户Id
*/
private String staffId;
/**
* wx_open_id
*/
private String openId;
/**
* 是否禁用未禁用enable,已禁用disabled
*/
private String enableFlag;
/**
* 手机号
*/
private String mobile;
}

24
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBasicInfo.java

@ -0,0 +1,24 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author sun
* @Description 居民端-查询用户基础信息-接口返参
**/
@Data
public class UserBasicInfo implements Serializable {
/**
* 用户Id
*/
private String userId;
/**
* wx_open_id
*/
private String openId;
}

14
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -313,4 +313,18 @@ public interface EpmetUserOpenFeignClient {
**/
@PostMapping("epmetuser/role/getuserrolekeylist")
Result<List<String>> getUserRoleKeyList(@RequestBody GetRoleKeyListFormDTO dto);
/**
* @Author sun
* @Description 居民端-查询用户基础信息
**/
@PostMapping(value = "epmetuser/user/getuserbasicinfo")
Result<UserBasicInfo> getUserBasicInfo(@RequestBody UserBasicInfoFormDTO formDTO);
/**
* @Author sun
* @Description 工作端-查询用户基础信息
**/
@PostMapping(value = "epmetuser/staffagencyvisited/getstaffbasicinfo")
Result<StaffBasicInfo> getStaffBasicInfo(@RequestBody StaffBasicInfoFormDTO formDTO);
}

10
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java

@ -210,4 +210,14 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result<List<String>> getUserRoleKeyList(GetRoleKeyListFormDTO dto) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserRoleKeyList", dto);
}
@Override
public Result<UserBasicInfo> getUserBasicInfo(UserBasicInfoFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserBasicInfo", formDTO);
}
@Override
public Result<StaffBasicInfo> getStaffBasicInfo(StaffBasicInfoFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffBasicInfo", formDTO);
}
}

14
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/StaffAgencyVisitedController.java

@ -18,8 +18,13 @@
package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.StaffBasicInfoFormDTO;
import com.epmet.dto.form.StaffLoginAgencyRecordFormDTO;
import com.epmet.dto.form.WxMsgAuthInfoFormDTO;
import com.epmet.dto.result.StaffBasicInfo;
import com.epmet.dto.result.StaffLatestAgencyResultDTO;
import com.epmet.dto.result.UserBasicInfo;
import com.epmet.service.StaffAgencyVisitedService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -62,5 +67,14 @@ public class StaffAgencyVisitedController {
return staffAgencyVisitedService.saveStaffLoginRecord(formDTO);
}
/**
* @Author sun
* @Description 工作端-查询用户基础信息
**/
@PostMapping(value = "getstaffbasicinfo")
public Result<StaffBasicInfo> getStaffBasicInfo(@RequestBody StaffBasicInfoFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffBasicInfoFormDTO.StaffBasicInfoGroup.class);
return new Result<StaffBasicInfo>().ok(staffAgencyVisitedService.getStaffBasicInfo(formDTO));
}
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java

@ -143,4 +143,15 @@ public class UserController {
ValidatorUtils.validateEntity(wxUserInfoFormDTO);
return userService.updateWxUserInfo(wxUserInfoFormDTO);
}
/**
* @Author sun
* @Description 居民端-查询用户基础信息
**/
@PostMapping("getuserbasicinfo")
public Result<UserBasicInfo> getUserBasicInfo(@RequestBody UserBasicInfoFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, UserBasicInfoFormDTO.UserBasicInfoGroup.class);
return new Result<UserBasicInfo>().ok(userService.getUserBasicInfo(formDTO));
}
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffAgencyVisitedDao.java

@ -18,6 +18,8 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.StaffBasicInfoFormDTO;
import com.epmet.dto.result.StaffBasicInfo;
import com.epmet.dto.result.StaffLatestAgencyResultDTO;
import com.epmet.entity.StaffAgencyVisitedEntity;
import org.apache.ibatis.annotations.Mapper;
@ -39,5 +41,9 @@ public interface StaffAgencyVisitedDao extends BaseDao<StaffAgencyVisitedEntity>
**/
StaffLatestAgencyResultDTO selectLatestStaffWechatLoginRecord(String openId);
/**
* @Author sun
* @Description 工作端-查询用户基础信息
**/
StaffBasicInfo selectStaffBasicInfo(StaffBasicInfoFormDTO formDTO);
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserDao.java

@ -2,9 +2,11 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.CreatedTimeByUserIdFormDTO;
import com.epmet.dto.form.UserBasicInfoFormDTO;
import com.epmet.dto.result.CreatedTimeByUserIdResultDTO;
import com.epmet.dto.result.MyselfMsgResultDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.dto.result.UserBasicInfo;
import com.epmet.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -44,4 +46,10 @@ public interface UserDao extends BaseDao<UserEntity> {
* @date 2020.05.22 19:19
**/
MyselfMsgResultDTO getMyselfMsg(@Param("userId")String userId);
/**
* @Author sun
* @Description 居民端-查询用户基础信息
**/
UserBasicInfo selectUserBasicInfo(UserBasicInfoFormDTO formDTO);
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/StaffAgencyVisitedService.java

@ -21,7 +21,9 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.StaffAgencyVisitedDTO;
import com.epmet.dto.form.StaffBasicInfoFormDTO;
import com.epmet.dto.form.StaffLoginAgencyRecordFormDTO;
import com.epmet.dto.result.StaffBasicInfo;
import com.epmet.dto.result.StaffLatestAgencyResultDTO;
import com.epmet.entity.StaffAgencyVisitedEntity;
@ -114,5 +116,9 @@ public interface StaffAgencyVisitedService extends BaseService<StaffAgencyVisite
**/
Result saveStaffLoginRecord(StaffLoginAgencyRecordFormDTO formDTO);
/**
* @Author sun
* @Description 工作端-查询用户基础信息
**/
StaffBasicInfo getStaffBasicInfo(StaffBasicInfoFormDTO formDTO);
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java

@ -5,10 +5,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CreatedTimeByUserIdResultDTO;
import com.epmet.dto.result.LoginUserDetailsResultDTO;
import com.epmet.dto.result.MyResiUserInfoResultDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.UserEntity;
/**
@ -83,4 +80,10 @@ public interface UserService extends BaseService<UserEntity> {
* @Description 小程序微信用户登陆新增或更新用户信息
**/
UserDTO saveWxUser(WxUserFormDTO formDTO);
/**
* @Author sun
* @Description 居民端-查询用户基础信息
**/
UserBasicInfo getUserBasicInfo(UserBasicInfoFormDTO formDTO);
}

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffAgencyVisitedServiceImpl.java

@ -26,7 +26,9 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.StaffAgencyVisitedDao;
import com.epmet.dto.StaffAgencyVisitedDTO;
import com.epmet.dto.form.StaffBasicInfoFormDTO;
import com.epmet.dto.form.StaffLoginAgencyRecordFormDTO;
import com.epmet.dto.result.StaffBasicInfo;
import com.epmet.dto.result.StaffLatestAgencyResultDTO;
import com.epmet.entity.StaffAgencyVisitedEntity;
import com.epmet.feign.OperCrmFeignClient;
@ -127,6 +129,14 @@ public class StaffAgencyVisitedServiceImpl extends BaseServiceImpl<StaffAgencyVi
return new Result();
}
/**
* @Author sun
* @Description 工作端-查询用户基础信息
**/
@Override
public StaffBasicInfo getStaffBasicInfo(StaffBasicInfoFormDTO formDTO) {
return baseDao.selectStaffBasicInfo(formDTO);
}
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java

@ -270,4 +270,13 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return resultDTO;
}
/**
* @Author sun
* @Description 居民端-查询用户基础信息
**/
@Override
public UserBasicInfo getUserBasicInfo(UserBasicInfoFormDTO formDTO) {
return baseDao.selectUserBasicInfo(formDTO);
}
}

22
epmet-user/epmet-user-server/src/main/resources/mapper/StaffAgencyVisitedDao.xml

@ -36,4 +36,26 @@
LIMIT 1
</select>
<select id="selectStaffBasicInfo" resultType="com.epmet.dto.result.StaffBasicInfo">
SELECT
sav.staff_id AS "staffId",
sav.customer_id AS "customerId",
sav.wx_open_id AS "openId",
cs.enable_flag AS "enableFlag",
sav.mobile AS "mobile"
FROM
staff_agency_visited sav
LEFT JOIN USER u ON sav.staff_id = u.id
LEFT JOIN customer_staff cs ON sav.staff_id = cs.user_id
WHERE
sav.del_flag = '0'
AND u.del_flag = '0'
AND cs.del_flag = '0'
AND u.from_app = 'gov'
AND sav.staff_id = #{staffId}
ORDER BY
sav.created_time DESC
LIMIT 1
</select>
</mapper>

15
epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml

@ -52,4 +52,19 @@
AND
user.FROM_APP = 'resi'
</select>
<select id="selectUserBasicInfo" resultType="com.epmet.dto.result.UserBasicInfo">
SELECT
u.id AS "userId",
uw.wx_open_id AS "openId"
FROM
`user` u
INNER JOIN user_wechat uw ON u.id = uw.user_id
WHERE
u.del_flag = '0'
AND uw.del_flag = '0'
AND u.from_app = 'resi'
AND u.id = #{userId}
LIMIT 1
</select>
</mapper>

Loading…
Cancel
Save