Browse Source

Merge remote-tracking branch 'remotes/origin/dev' into dev_screen_data

master
jianjun 5 years ago
parent
commit
ceca855441
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java
  2. 2
      epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml
  3. 2
      epmet-module/data-report/data-report-server/pom.xml
  4. 2
      epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml
  5. 2
      epmet-module/data-statistical/data-statistical-server/pom.xml
  6. 2
      epmet-module/epmet-common-service/common-service-server/pom.xml
  7. 8
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActDetailResultDTO.java
  8. 12
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java
  9. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointTotalServiceImpl.java
  10. 5
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AuthorizationInfoDTO.java
  11. 126
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PersonalTemplateDTO.java
  12. 91
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PublicTemplateDTO.java
  13. 51
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddTemplateFormDTO.java
  14. 17
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DelTemplateFormDTO.java
  15. 39
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/InitFormDTO.java
  16. 26
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PubTemplateFormDTO.java
  17. 19
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubscribeFormDTO.java
  18. 18
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerTempResultDTO.java
  19. 47
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/GetTemplateResultDTO.java
  20. 34
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/KeyWordsResultDTO.java
  21. 39
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PubTemplateResultDTO.java
  22. 17
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/SubscribeCategoryResultDTO.java
  23. 31
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDTO.java
  24. 149
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SubscribeController.java
  25. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java
  26. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java
  27. 79
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PersonalTemplateDao.java
  28. 56
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PublicTemplateDao.java
  29. 96
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PersonalTemplateEntity.java
  30. 61
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PublicTemplateEntity.java
  31. 9
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java
  32. 126
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PersonalTemplateService.java
  33. 115
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PublicTemplateService.java
  34. 105
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SubscribeService.java
  35. 25
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
  36. 5
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java
  37. 119
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PersonalTemplateServiceImpl.java
  38. 112
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PublicTemplateServiceImpl.java
  39. 445
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SubscribeServiceImpl.java
  40. 38
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxSubscribeConstant.java
  41. 20
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java
  42. 31
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddTemplateReq.java
  43. 22
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDelTemplateReq.java
  44. 16
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxExtJson.java
  45. 30
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxSubTemplateReq.java
  46. 41
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetCategoryResult.java
  47. 56
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetTemplateResult.java
  48. 52
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxKeyWordsResult.java
  49. 56
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxSubTemplateResult.java
  50. 78
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSubscribeService.java
  51. 146
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSubscribeServiceImpl.java
  52. 36
      epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.10__thirdUpdate.sql
  53. 11
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml
  54. 12
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml
  55. 79
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PersonalTemplateDao.xml
  56. 41
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PublicTemplateDao.xml
  57. 2
      epmet-module/gov-project/gov-project-server/Dockerfile

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DingdingMsgSender.java

@ -38,7 +38,7 @@ public class DingdingMsgSender {
/**
* 默认10
*/
private static Integer maxQueueSize = 10;
private static Integer maxQueueSize = 8;
/**
* 有序队列

2
epmet-module/data-report/data-report-server/deploy/docker-compose-prod.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-report-server:
container_name: data-report-server-prod
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-report-server:0.3.36
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-report-server:0.3.37
ports:
- "8108:8108"
network_mode: host # 使用现有网络

2
epmet-module/data-report/data-report-server/pom.xml

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.36</version>
<version>0.3.37</version>
<artifactId>data-report-server</artifactId>
<parent>

2
epmet-module/data-statistical/data-statistical-server/deploy/docker-compose-prod.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
data-statistical-server:
container_name: data-statistical-server-prod
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-statistical-server:0.3.48
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-master/data-statistical-server:0.3.49
ports:
- "8108:8108"
network_mode: host # 使用现有网络

2
epmet-module/data-statistical/data-statistical-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<version>0.3.48</version>
<version>0.3.49</version>
<parent>
<artifactId>data-statistical</artifactId>
<groupId>com.epmet</groupId>

2
epmet-module/epmet-common-service/common-service-server/pom.xml

@ -178,7 +178,7 @@
</activation>-->
<properties>
<server.port>8103</server.port>
<spring.profiles.active>dev</spring.profiles.active>
<spring.profiles.active>test</spring.profiles.active>
<!-- 数据库配置-->
<spring.datasource.druid.url>

8
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActDetailResultDTO.java

@ -139,9 +139,13 @@ public class ResiActDetailResultDTO implements Serializable {
private Boolean isSignUp;
/**
* 用户是否已报名该活动 true用户已报名false用户未报名
* 用户报名活动后当前状态
* --已报名/待审核auditing
* -- 审核通过passed
* -- 未报名(审核不通过 取消报名)canceled
* --
*/
private Boolean isRegistration;
private String isRegistration;
/**
* 打卡开始时间yyyy-MM-dd HH:mm

12
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java

@ -221,12 +221,18 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
// 查询用户是否已报名活动
String status = actUserRelationDao.selectUserStatusByActIdAndUserId(formDto.getActId(), formDto.getUserId());
detailResultDTO.setIsRegistration(false);
// 默认用户 未报名活动
detailResultDTO.setIsRegistration(ActConstant.ACT_USER_LOG_OPER_CANCELD);
if (null != status){
if (ActConstant.ACT_USER_STATUS_PASSED.equals(status) || ActConstant.ACT_USER_STATUS_AUDITING.equals(status)){
detailResultDTO.setIsRegistration(true);
if (ActConstant.ACT_USER_STATUS_PASSED.equals(status)){
// 用户报名活动审核通过,赋值 审核通过
detailResultDTO.setIsRegistration(status);
} else if ( ActConstant.ACT_USER_STATUS_AUDITING.equals(status)){
// 用户报名活动未审核,赋值 已报名/待审核
detailResultDTO.setIsRegistration(status);
}
}
// 获取用户报名状态
String currentUserStatus = getCurrentUserStatus(formDto.getActId(), formDto.getUserId());
detailResultDTO.setCurrentUserStatus(currentUserStatus);

2
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointTotalServiceImpl.java

@ -260,7 +260,7 @@ public class UserPointTotalServiceImpl extends BaseServiceImpl<UserPointTotalDao
**/
@Override
public ResiPointDetailResultDTO getMyPointGroupByCustomer(CommonUserFormDTO customerUserParam) {
ResiPointDetailResultDTO result = baseDao.selectPointByUserId(customerUserParam.getUserId());
ResiPointDetailResultDTO result = baseDao.selectPointByCustomerUserId(customerUserParam.getUserId(),customerUserParam.getCustomerId());
if(null == result) return new ResiPointDetailResultDTO();
if(null == result.getUsablePoint() || null == result.getAccumulatedPoint()) return new ResiPointDetailResultDTO();
return result;

5
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AuthorizationInfoDTO.java

@ -63,6 +63,11 @@ public class AuthorizationInfoDTO implements Serializable {
*/
private String authorizerRefreshToken;
/**
* 客户端类型 resi居民端work工作端
*/
private String clientType;
/**
*
*/

126
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PersonalTemplateDTO.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-09-09
*/
@Data
public class PersonalTemplateDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 小程序类型 居民端resi,工作端work
*/
private String clientType;
/**
* APPID
*/
private String appId;
/**
* 主模板ID
*/
private String pid;
/**
* 添加至帐号下的模板id
*/
private String priTmplId;
/**
* 模板类型2 代表一次性订阅3 代表长期订阅
*/
private String type;
/**
* 模板ID
*/
private String tid;
/**
* 模板标题
*/
private String title;
/**
* 关键词ID
*/
private String keyIds;
/**
* 关键词
*/
private String keyWords;
/**
* 服务场景描述15个字以内
*/
private String sceneDesc;
/**
* 乐观锁
*/
private Integer revision;
/**
* 是否删除
*/
private String delFlag;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

91
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PublicTemplateDTO.java

@ -0,0 +1,91 @@
/**
* 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-09-11
*/
@Data
public class PublicTemplateDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String id;
/**
*
*/
private String tid;
/**
*
*/
private String title;
/**
*
*/
private String type;
/**
*
*/
private String categoryId;
/**
*
*/
private Integer revision;
/**
*
*/
private String delFlag;
/**
*
*/
private String createdBy;
/**
*
*/
private Date createdTime;
/**
*
*/
private String updatedBy;
/**
*
*/
private Date updatedTime;
}

51
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddTemplateFormDTO.java

@ -0,0 +1,51 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:20
*/
@NoArgsConstructor
@Data
public class AddTemplateFormDTO implements Serializable {
private static final long serialVersionUID = 8721859887464107897L;
/**
* appId
*/
private String appId;
/**
* 公共模板标题 id
*/
private String tid;
/**
* 公共模板标题
*/
private String title;
/**
* 服务场景描述15个字以内
*/
private String sceneDesc;
/**
* 工作端(gov)居民端(resi)
*/
private String clientType;
/**
* 模板类型2 代表一次性订阅3 代表长期订阅
*/
private String type;
/**
* 关键词id最多支持5个最少2个关键词组合
*/
private List<Integer> kidList;
/**
* 关键字名称
*/
private List<String> nameList;
}

17
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DelTemplateFormDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:23
*/
@Data
public class DelTemplateFormDTO implements Serializable {
private static final long serialVersionUID = -3468604475671634840L;
private String appId;
private String priTmplId;
}

39
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/InitFormDTO.java

@ -0,0 +1,39 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/10 16:22
*/
@NoArgsConstructor
@Data
public class InitFormDTO implements Serializable {
private static final long serialVersionUID = -7120483520014483199L;
/**
* 客户ID
*/
private String customerId;
/**
* 居民端测试号AppID
*/
private String resiAppId;
/**
* 工作端测试号AppID
*/
private String workAppId;
/**
* 居民端需要同步的模板id数组
*/
private List<String> resiTempIdList;
/**
* 工作端需要同步的模板id数组
*/
private List<String> workTempIdList;
}

26
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PubTemplateFormDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:58
*/
@NoArgsConstructor
@Data
public class PubTemplateFormDTO implements Serializable {
private static final long serialVersionUID = 9023183147998651076L;
private String appId;
/**
* 类目 id多个用逗号隔开
*/
private String ids;
private String title;
private Integer pageNo;
private Integer pageSize;
}

19
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubscribeFormDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.form;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:19
*/
@NoArgsConstructor
@Data
public class SubscribeFormDTO implements Serializable {
private static final long serialVersionUID = -4637357527979131441L;
private String appId;
private String titleId;
}

18
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerTempResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/11 14:02
*/
@NoArgsConstructor
@Data
public class CustomerTempResultDTO {
private List<TemplateDTO> workList;
private List<TemplateDTO> resiList;
}

47
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/GetTemplateResultDTO.java

@ -0,0 +1,47 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:36
*/
@NoArgsConstructor
@Data
public class GetTemplateResultDTO implements Serializable {
private static final long serialVersionUID = -3558254681242362668L;
/**
* 添加至帐号下的模板 id发送小程序订阅消息时所需
*/
private String priTmplId;
/**
* 模板标题
*/
private String title;
/**
* 模板内容
*/
private String content;
/**
* 模板内容示例
*/
private String example;
/**
* 模板类型2 代表一次性订阅3 代表长期订阅
*/
private String type;
/**
* 关键词名称逗号隔开
*/
private String kidNames;
/**
* 场景说明
*/
private String sceneDesc;
}

34
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/KeyWordsResultDTO.java

@ -0,0 +1,34 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:34
*/
@NoArgsConstructor
@Data
public class KeyWordsResultDTO implements Serializable {
private static final long serialVersionUID = 3082505411447366845L;
/**
* 关键词 id
*/
private Integer kid;
/**
* 关键词内容
*/
private String name;
/**
* 关键词内容对应的示例
*/
private String example;
/**
* 参数类型
*/
private String rule;
}

39
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PubTemplateResultDTO.java

@ -0,0 +1,39 @@
package com.epmet.dto.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:27
*/
@NoArgsConstructor
@Data
public class PubTemplateResultDTO implements Serializable {
private static final long serialVersionUID = -1563615907119995448L;
/**
* 模板标题 id
*/
private Integer tid;
/**
* 模板标题
*/
private String title;
/**
* 模板类型2 为一次性订阅3 为长期订阅
*/
private Integer type;
/**
* 模板所属类目 id
*/
private String categoryId;
/**
* 关键词
*/
private List<String> keywords;
}

17
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/SubscribeCategoryResultDTO.java

@ -0,0 +1,17 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 14:25
*/
@Data
public class SubscribeCategoryResultDTO implements Serializable {
private static final long serialVersionUID = -2539495405169212998L;
private Integer id;
private String name;
}

31
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDTO.java

@ -0,0 +1,31 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/11 14:38
*/
@Data
public class TemplateDTO implements Serializable {
private static final long serialVersionUID = 1709155656984339643L;
/**
* 模板ID
*/
private String id;
/**
* 模板ID
*/
private String tmplId;
/**
* 标题
*/
private String title;
/**
* 同步状态 0未同步 1同步
*/
private String state;
}

149
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SubscribeController.java

@ -0,0 +1,149 @@
package com.epmet.controller;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CustomerTempResultDTO;
import com.epmet.dto.result.GetTemplateResultDTO;
import com.epmet.dto.result.KeyWordsResultDTO;
import com.epmet.dto.result.SubscribeCategoryResultDTO;
import com.epmet.service.SubscribeService;
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 zhaoqifeng
* @dscription
* @date 2020/9/10 13:44
*/
@RestController
@RequestMapping("subscribe")
public class SubscribeController {
@Autowired
private SubscribeService subscribeService;
/**
* 获取当前帐号所设置的类目信息
*
* @param formDTO
* @return com.epmet.dto.result.SubscribeCategoryResultDTO
* @author zhaoqifeng
* @date 2020/9/9 14:57
*/
@PostMapping("getcategory")
public Result<List<SubscribeCategoryResultDTO>> getCategory(@RequestBody SubscribeFormDTO formDTO) {
List<SubscribeCategoryResultDTO> result = subscribeService.getCategory(formDTO);
return new Result<List<SubscribeCategoryResultDTO>>().ok(result);
}
/**
* 获取模板标题列表
*
* @param formDTO
* @return com.epmet.dto.result.PubTemplateResultDTO
* @author zhaoqifeng
* @date 2020/9/9 15:00
*/
@PostMapping("getpubtemplatetitles")
public Result<PageData> getPubTemplateTitles(@RequestBody PubTemplateFormDTO formDTO) {
PageData result = subscribeService.getPubTemplateTitles(formDTO);
return new Result<PageData>().ok(result);
}
/**
* 同步微信公共模板
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/9/11 16:11
*/
@PostMapping("syncpubtemplatetitles")
public Result syncPubTemplateTitles(@RequestBody PubTemplateFormDTO formDTO) {
subscribeService.syncPubTemplateTitles(formDTO);
return new Result();
}
/**
* 获取模板标题下的关键词库
*
* @param formDTO
* @return com.epmet.dto.result.KeyWordsResultDTO
* @author zhaoqifeng
* @date 2020/9/9 15:10
*/
@PostMapping("getkeywords")
public Result<List<KeyWordsResultDTO>> getKeyWords(@RequestBody SubscribeFormDTO formDTO) {
List<KeyWordsResultDTO> result = subscribeService.getKeyWords(formDTO);
return new Result<List<KeyWordsResultDTO>>().ok(result);
}
/**
* 获取帐号下的模板列表
*
* @param formDTO
* @return com.epmet.dto.result.GetTemplateResultDTO
* @author zhaoqifeng
* @date 2020/9/9 15:12
*/
@PostMapping("gettemplate")
public Result<List<GetTemplateResultDTO>> getTemplate(@RequestBody SubscribeFormDTO formDTO) {
List<GetTemplateResultDTO> result = subscribeService.getTemplate(formDTO);
return new Result<List<GetTemplateResultDTO>>().ok(result);
}
/**
* 添加个人模板
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/9/9 15:13
*/
@PostMapping("addtemplate")
public Result addTemplate(@RequestBody AddTemplateFormDTO formDTO) {
subscribeService.addTemplate(formDTO);
return new Result();
}
/**
* 删除账号下模板
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/9/9 15:13
*/
@PostMapping("deltemplate")
public Result delTemplate(@RequestBody DelTemplateFormDTO formDTO) {
subscribeService.delTemplate(formDTO);
return new Result();
}
/**
* 客户初始化
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @author zhaoqifeng
* @date 2020/9/11 9:25
*/
@PostMapping("init")
public Result init(@RequestBody InitFormDTO formDTO) {
subscribeService.init(formDTO);
return new Result();
}
@PostMapping("getcustomerlist")
public Result<CustomerTempResultDTO> getCustomerTemplate(@RequestBody InitFormDTO formDTO) {
CustomerTempResultDTO result = subscribeService.getCustomerTemplate(formDTO);
return new Result<CustomerTempResultDTO>().ok(result);
}
}

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

@ -118,4 +118,13 @@ public interface AuthorizationInfoDao extends BaseDao<AuthorizationInfoEntity> {
* @date 2020.08.25 15:24
**/
List<AuthAccessTokenClientResultDTO> selectClientToken(@Param("customerId") String customerId);
/**
* 根据APPID获取auth信息
* @author zhaoqifeng
* @date 2020/9/9 15:23
* @param appId
* @return com.epmet.dto.AuthorizationInfoDTO
*/
AuthorizationInfoDTO selectInfoByAppId(@Param("appId") String appId);
}

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

@ -120,4 +120,13 @@ public interface PaCustomerDao extends BaseDao<PaCustomerEntity> {
* @date 2020.08.26 10:59
**/
String selectSourceById(@Param("customerId") String customerId,@Param("source") String source);
/**
* 根据测试号查询同源的客户列表
* @author zhaoqifeng
* @date 2020/9/9 17:23
* @param customerId
* @return java.util.List<com.epmet.dto.PaCustomerDTO>
*/
List<PaCustomerDTO> selectCustomerListByTestId(@Param("customerId") String customerId);
}

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

@ -0,0 +1,79 @@
/**
* 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.PersonalTemplateDTO;
import com.epmet.dto.result.CustomerTempResultDTO;
import com.epmet.dto.result.TemplateDTO;
import com.epmet.entity.PersonalTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-09
*/
@Mapper
public interface PersonalTemplateDao extends BaseDao<PersonalTemplateEntity> {
/**
* 获取个人模板列表
*
* @param pid
* @return java.util.List<com.epmet.dto.PersonalTemplateDTO>
* @author zhaoqifeng
* @date 2020/9/9 17:56
*/
List<PersonalTemplateDTO> selectListByPid(@Param("pid") String pid);
/**
* 根据AppID获取模板列表
*
* @param appId
* @return java.util.List<com.epmet.dto.PersonalTemplateDTO>
* @author zhaoqifeng
* @date 2020/9/10 10:49
*/
List<PersonalTemplateDTO> selectListByAppId(@Param("appId") String appId);
/**
* 获取已配置的模板
*
* @param customerId
* @param pid
* @return com.epmet.dto.PersonalTemplateDTO
* @author zhaoqifeng
* @date 2020/9/11 9:42
*/
PersonalTemplateDTO selectSetTemp(@Param("customerId") String customerId, @Param("pid") String pid);
/**
* 根据客户Id获取模板列表
*
* @param appId
* @param customerId
* @param clientType
* @return java.util.List<com.epmet.dto.PersonalTemplateDTO>
* @author zhaoqifeng
* @date 2020/9/11 14:35
*/
List<TemplateDTO> selectListByCustomerId(@Param("appId") String appId, @Param("customerId") String customerId,
@Param("clientType") String clientType);
}

56
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PublicTemplateDao.java

@ -0,0 +1,56 @@
/**
* 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.form.PubTemplateFormDTO;
import com.epmet.dto.result.PubTemplateResultDTO;
import com.epmet.entity.PublicTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-11
*/
@Mapper
public interface PublicTemplateDao extends BaseDao<PublicTemplateEntity> {
/**
* 根据类目Id删除模板
* @author zhaoqifeng
* @date 2020/9/11 16:22
* @param list
* @return void
*/
void deleteTempByCategoryId(List<String> list);
/**
* 获取公共模板列表
* @author zhaoqifeng
* @date 2020/9/11 16:57
* @param dto
* @return java.util.List<com.epmet.dto.result.PubTemplateResultDTO>
*/
List<PubTemplateResultDTO> getPubTempList(PubTemplateFormDTO dto);
}

96
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PersonalTemplateEntity.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-09-09
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("personal_template")
public class PersonalTemplateEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 小程序类型 居民端resi,工作端work
*/
private String clientType;
/**
* APPID
*/
private String appId;
/**
* 主模板ID
*/
private String pid;
/**
* 添加至帐号下的模板id
*/
private String priTmplId;
/**
* 模板类型2 代表一次性订阅3 代表长期订阅
*/
private String type;
/**
* 模板ID
*/
private String tid;
/**
* 模板标题
*/
private String title;
/**
* 关键词ID
*/
private String keyIds;
/**
* 关键词
*/
private String keyWords;
/**
* 服务场景描述15个字以内
*/
private String sceneDesc;
}

61
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PublicTemplateEntity.java

@ -0,0 +1,61 @@
/**
* 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-09-11
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("public_template")
public class PublicTemplateEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private String tid;
/**
*
*/
private String title;
/**
*
*/
private String type;
/**
*
*/
private String categoryId;
}

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

@ -233,4 +233,13 @@ public interface PaCustomerService extends BaseService<PaCustomerEntity> {
* @date 2020.08.25 15:46
**/
void clearPublicCustomer(CommonCustomerIdAndSrcFormDTO param);
/**
* 根据测试号查询同源的客户列表
* @author zhaoqifeng
* @date 2020/9/9 17:32
* @param customerId
* @return java.util.List<com.epmet.dto.PaCustomerDTO>
*/
List<PaCustomerDTO> getCustomerListByTestId(String customerId);
}

126
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PersonalTemplateService.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.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.PersonalTemplateDTO;
import com.epmet.dto.result.TemplateDTO;
import com.epmet.entity.PersonalTemplateEntity;
import java.util.List;
import java.util.Map;
/**
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-09
*/
public interface PersonalTemplateService extends BaseService<PersonalTemplateEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<PersonalTemplateDTO>
* @author generator
* @date 2020-09-09
*/
PageData<PersonalTemplateDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<PersonalTemplateDTO>
* @author generator
* @date 2020-09-09
*/
List<PersonalTemplateDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return PersonalTemplateDTO
* @author generator
* @date 2020-09-09
*/
PersonalTemplateDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-09-09
*/
void save(PersonalTemplateDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-09-09
*/
void update(PersonalTemplateDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-09-09
*/
void delete(String[] ids);
/**
* 获取个人模板列表
*
* @param pid
* @return java.util.List<com.epmet.dto.PersonalTemplateDTO>
* @author zhaoqifeng
* @date 2020/9/9 17:59
*/
List<PersonalTemplateDTO> getListByPid(String pid);
/**
* 根据AppID获取模板列表
*
* @param appId
* @return java.util.List<com.epmet.dto.PersonalTemplateDTO>
* @author zhaoqifeng
* @date 2020/9/10 10:48
*/
List<PersonalTemplateDTO> getListByAppId(String appId);
/**
* 根据客户Id获取模板列表
*
* @param appId
* @param customerId
* @param clientType
* @return java.util.List<com.epmet.dto.result.TemplateDTO>
* @author zhaoqifeng
* @date 2020/9/11 14:43
*/
List<TemplateDTO> getListByCustomer(String appId, String customerId, String clientType);
}

115
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PublicTemplateService.java

@ -0,0 +1,115 @@
/**
* 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.PublicTemplateDTO;
import com.epmet.dto.form.PubTemplateFormDTO;
import com.epmet.dto.result.PubTemplateResultDTO;
import com.epmet.entity.PublicTemplateEntity;
import java.util.List;
import java.util.Map;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-11
*/
public interface PublicTemplateService extends BaseService<PublicTemplateEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<PublicTemplateDTO>
* @author generator
* @date 2020-09-11
*/
PageData<PublicTemplateDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<PublicTemplateDTO>
* @author generator
* @date 2020-09-11
*/
List<PublicTemplateDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return PublicTemplateDTO
* @author generator
* @date 2020-09-11
*/
PublicTemplateDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-09-11
*/
void save(PublicTemplateDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-09-11
*/
void update(PublicTemplateDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-09-11
*/
void delete(String[] ids);
/**
* 根据类目Id删除模板
* @author zhaoqifeng
* @date 2020/9/11 16:29
* @param categoryIds
* @return void
*/
void deleteTempByCategoryId(List<String> categoryIds);
/**
* 获取公共模板列表
* @author zhaoqifeng
* @date 2020/9/11 17:01
* @param dto
* @return java.util.List<com.epmet.dto.result.PubTemplateResultDTO>
*/
List<PubTemplateResultDTO> getPubTempList(PubTemplateFormDTO dto);
}

105
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SubscribeService.java

@ -0,0 +1,105 @@
package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 11:02
*/
public interface SubscribeService {
/**
* 获取当前帐号所设置的类目信息
*
* @param formDTO
* @return com.epmet.dto.result.SubscribeCategoryResultDTO
* @author zhaoqifeng
* @date 2020/9/9 14:57
*/
List<SubscribeCategoryResultDTO> getCategory(SubscribeFormDTO formDTO);
/**
* 获取模板标题列表
*
* @param formDTO
* @return com.epmet.dto.result.PubTemplateResultDTO
* @author zhaoqifeng
* @date 2020/9/9 15:00
*/
PageData getPubTemplateTitles(PubTemplateFormDTO formDTO);
/**
* 同步微信公共模板
* @author zhaoqifeng
* @date 2020/9/11 15:26
* @param formDTO
* @return void
*/
void syncPubTemplateTitles(PubTemplateFormDTO formDTO);
/**
* 获取模板标题下的关键词库
*
* @param formDTO
* @return com.epmet.dto.result.KeyWordsResultDTO
* @author zhaoqifeng
* @date 2020/9/9 15:10
*/
List<KeyWordsResultDTO> getKeyWords(SubscribeFormDTO formDTO);
/**
* 获取帐号下的模板列表
*
* @param formDTO
* @return com.epmet.dto.result.GetTemplateResultDTO
* @author zhaoqifeng
* @date 2020/9/9 15:12
*/
List<GetTemplateResultDTO> getTemplate(SubscribeFormDTO formDTO);
/**
* 添加个人模板
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/9/9 15:13
*/
void addTemplate(AddTemplateFormDTO formDTO);
/**
* 删除账号下模板
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/9/9 15:13
*/
void delTemplate(DelTemplateFormDTO formDTO);
/**
* 客户初始化
*
* @param formDTO
* @return void
* @author zhaoqifeng
* @date 2020/9/10 16:25
*/
void init(InitFormDTO formDTO);
/**
* 获取客户模板列表
*
* @param formDTO
* @return com.epmet.dto.result.CustomerTempResultDTO
* @author zhaoqifeng
* @date 2020/9/11 14:04
*/
CustomerTempResultDTO getCustomerTemplate(InitFormDTO formDTO);
}

25
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java

@ -15,6 +15,7 @@ import com.epmet.dao.MiniInfoDao;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.feign.OperCrmOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.*;
import com.epmet.wxapi.param.*;
@ -68,6 +69,8 @@ public class CodeServiceImpl implements CodeService {
private PaCustomerService paCustomerService;
@Autowired
private MiniInfoDao miniInfoDao;
@Autowired
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Override
public List<TemplateListResultDTO> templateList() {
@ -97,11 +100,7 @@ public class CodeServiceImpl implements CodeService {
@Override
public String getExtJson(CodeUploadFormDTO formDTO) {
CodeExtDTO codeExtDTO = codeExtService.getExtByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
if (null == codeExtDTO) {
return codeExtService.getExtTemplate(formDTO.getClientType());
}
return codeExtDTO.getExtJson();
return codeExtService.getExtTemplate(formDTO.getClientType());
}
@ -118,15 +117,27 @@ public class CodeServiceImpl implements CodeService {
if (null == authInfo) {
throw new RenException("未授权");
}
CustomerDTO customerFormDTO = new CustomerDTO();
customerFormDTO.setId(formDTO.getCustomerId());
Result<CustomerDTO> result = operCrmOpenFeignClient.getCustomerInfo(customerFormDTO);
if (!result.success()) {
throw new RenException(result.getCode(), result.getMsg());
}
//获取小程序居民端与工作端名称
String resiName = miniInfoDao.getNickName(formDTO.getCustomerId(), "resi");
String workName = miniInfoDao.getNickName(formDTO.getCustomerId(), "work");
String resiName = miniInfoDao.getNickName(formDTO.getCustomerId(), CodeConstant.RESI);
String workName = miniInfoDao.getNickName(formDTO.getCustomerId(), CodeConstant.WORK);
String extJson = getExtJson(formDTO);
WxExtJson wxExtJson = JSONObject.parseObject(extJson, WxExtJson.class);
wxExtJson.setExtAppid(authInfo.getAuthorizerAppid());
wxExtJson.getExt().setExtAppid(authInfo.getAuthorizerAppid());
wxExtJson.getExt().setResiName(resiName);
wxExtJson.getExt().setWorkName(workName);
wxExtJson.getExt().setCustomerName(null == result.getData().getCustomerName()?"":result.getData().getCustomerName());
if (CodeConstant.RESI.equals(formDTO.getClientType())) {
wxExtJson.getWindow().setNavigationBarTitleText(resiName);
} else {
wxExtJson.getWindow().setNavigationBarTitleText(workName);
}
extJson = JSON.toJSONString(wxExtJson);
CodeExtDTO codeExtDTO = codeExtService.getExtByCustomer(formDTO.getCustomerId(), formDTO.getClientType());
if (null == codeExtDTO) {

5
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java

@ -697,4 +697,9 @@ public class PaCustomerServiceImpl extends BaseServiceImpl<PaCustomerDao, PaCust
baseDao.clearCustomerInfo(param.getCustomerId());
}
@Override
public List<PaCustomerDTO> getCustomerListByTestId(String customerId) {
return baseDao.selectCustomerListByTestId(customerId);
}
}

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

@ -0,0 +1,119 @@
/**
* 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.constant.FieldConstant;
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.result.TemplateDTO;
import com.epmet.entity.PersonalTemplateEntity;
import com.epmet.service.PersonalTemplateService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
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-09-09
*/
@Service
public class PersonalTemplateServiceImpl extends BaseServiceImpl<PersonalTemplateDao, PersonalTemplateEntity> implements PersonalTemplateService {
@Override
public PageData<PersonalTemplateDTO> page(Map<String, Object> params) {
IPage<PersonalTemplateEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, PersonalTemplateDTO.class);
}
@Override
public List<PersonalTemplateDTO> list(Map<String, Object> params) {
List<PersonalTemplateEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, PersonalTemplateDTO.class);
}
private QueryWrapper<PersonalTemplateEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<PersonalTemplateEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public PersonalTemplateDTO get(String id) {
PersonalTemplateEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, PersonalTemplateDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(PersonalTemplateDTO dto) {
PersonalTemplateEntity entity = ConvertUtils.sourceToTarget(dto, PersonalTemplateEntity.class);
insert(entity);
//copy主键值到dto
BeanUtils.copyProperties(entity, dto);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(PersonalTemplateDTO dto) {
PersonalTemplateEntity entity = ConvertUtils.sourceToTarget(dto, PersonalTemplateEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public List<PersonalTemplateDTO> getListByPid(String pid) {
return baseDao.selectListByPid(pid);
}
@Override
public List<PersonalTemplateDTO> getListByAppId(String appId) {
return baseDao.selectListByAppId(appId);
}
@Override
public List<TemplateDTO> getListByCustomer(String appId, String customerId, String clientType) {
return baseDao.selectListByCustomerId(appId, customerId, clientType);
}
}

112
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PublicTemplateServiceImpl.java

@ -0,0 +1,112 @@
/**
* 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.constant.FieldConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.PublicTemplateDao;
import com.epmet.dto.PublicTemplateDTO;
import com.epmet.dto.form.PubTemplateFormDTO;
import com.epmet.dto.result.PubTemplateResultDTO;
import com.epmet.entity.PublicTemplateEntity;
import com.epmet.service.PublicTemplateService;
import org.apache.commons.lang3.StringUtils;
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-09-11
*/
@Service
public class PublicTemplateServiceImpl extends BaseServiceImpl<PublicTemplateDao, PublicTemplateEntity> implements PublicTemplateService {
@Override
public PageData<PublicTemplateDTO> page(Map<String, Object> params) {
IPage<PublicTemplateEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, PublicTemplateDTO.class);
}
@Override
public List<PublicTemplateDTO> list(Map<String, Object> params) {
List<PublicTemplateEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, PublicTemplateDTO.class);
}
private QueryWrapper<PublicTemplateEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<PublicTemplateEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public PublicTemplateDTO get(String id) {
PublicTemplateEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, PublicTemplateDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(PublicTemplateDTO dto) {
PublicTemplateEntity entity = ConvertUtils.sourceToTarget(dto, PublicTemplateEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(PublicTemplateDTO dto) {
PublicTemplateEntity entity = ConvertUtils.sourceToTarget(dto, PublicTemplateEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Override
public void deleteTempByCategoryId(List<String> categoryIds) {
baseDao.deleteTempByCategoryId(categoryIds);
}
@Override
public List<PubTemplateResultDTO> getPubTempList(PubTemplateFormDTO formDTO) {
return baseDao.getPubTempList(formDTO);
}
}

445
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SubscribeServiceImpl.java

@ -0,0 +1,445 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.dao.AuthorizationInfoDao;
import com.epmet.dto.AuthorizationInfoDTO;
import com.epmet.dto.PaCustomerDTO;
import com.epmet.dto.PersonalTemplateDTO;
import com.epmet.dto.PublicTemplateDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.PublicTemplateEntity;
import com.epmet.service.PaCustomerService;
import com.epmet.service.PersonalTemplateService;
import com.epmet.service.PublicTemplateService;
import com.epmet.service.SubscribeService;
import com.epmet.wxapi.param.WxAddTemplateReq;
import com.epmet.wxapi.param.WxDelTemplateReq;
import com.epmet.wxapi.param.WxSubTemplateReq;
import com.epmet.wxapi.result.*;
import com.epmet.wxapi.service.WxMaSubscribeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 11:02
*/
@Slf4j
@Service
public class SubscribeServiceImpl implements SubscribeService {
@Autowired
private AuthorizationInfoDao authorizationInfoDao;
@Autowired
private WxMaSubscribeService wxMaSubscribeService;
@Autowired
private PersonalTemplateService personalTemplateService;
@Autowired
private PaCustomerService paCustomerService;
@Autowired
private PublicTemplateService publicTemplateService;
@Override
public List<SubscribeCategoryResultDTO> getCategory(SubscribeFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId());
WxGetCategoryResult wxResult = getCategoryResult(authInfo.getAuthorizerAccessToken());
List<SubscribeCategoryResultDTO> list = wxResult.getData().stream().map(category -> {
SubscribeCategoryResultDTO resultDTO = new SubscribeCategoryResultDTO();
resultDTO.setId(category.getId());
resultDTO.setName(category.getName());
return resultDTO;
}).collect(Collectors.toList());
return list;
}
@Override
public PageData getPubTemplateTitles(PubTemplateFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
List<PubTemplateResultDTO> list = publicTemplateService.getPubTempList(formDTO);
PageInfo<PubTemplateResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
@Override
public void syncPubTemplateTitles(PubTemplateFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId());
//获取类目ID
WxGetCategoryResult wxGetCategoryResult = getCategoryResult(authInfo.getAuthorizerAccessToken());
List<String> idList = wxGetCategoryResult.getData().stream().map(a -> a.getId().toString()).collect(Collectors.toList());
publicTemplateService.deleteTempByCategoryId(idList);
String ids = String.join(",", idList);
WxSubTemplateReq request = new WxSubTemplateReq();
request.setIds(ids);
request.setLimit(NumConstant.THIRTY);
request.setStart(NumConstant.ZERO);
WxResult<WxSubTemplateResult> wxResult = wxMaSubscribeService.getPubTemplateTitles(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
Integer total = wxResult.getData().getCount();
List<PublicTemplateDTO> list = wxResult.getData().getData().stream().map(template -> {
PublicTemplateDTO dto = new PublicTemplateDTO();
dto.setTid(template.getTid().toString());
dto.setTitle(template.getTitle());
dto.setCategoryId(template.getCategoryId());
dto.setType(template.getType().toString());
return dto;
}).collect(Collectors.toList());
if (total > NumConstant.THIRTY) {
for (int i = NumConstant.THIRTY; i < total; i= i + NumConstant.THIRTY) {
request.setStart(i);
wxResult = wxMaSubscribeService.getPubTemplateTitles(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
List<PublicTemplateDTO> pubList = wxResult.getData().getData().stream().map(template -> {
PublicTemplateDTO dto = new PublicTemplateDTO();
dto.setTid(template.getTid().toString());
dto.setTitle(template.getTitle());
dto.setCategoryId(template.getCategoryId());
dto.setType(template.getType().toString());
return dto;
}).collect(Collectors.toList());
list.addAll(pubList);
}
}
publicTemplateService.insertBatch(ConvertUtils.sourceToTarget(list, PublicTemplateEntity.class));
}
@Override
public List<KeyWordsResultDTO> getKeyWords(SubscribeFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId());
WxKeyWordsResult keyWordsResult = getTitleKeyWords(authInfo.getAuthorizerAccessToken(), formDTO.getTitleId());
List<KeyWordsResultDTO> list = keyWordsResult.getData().stream().map(keyWord -> {
KeyWordsResultDTO dto = new KeyWordsResultDTO();
dto.setExample(keyWord.getExample());
dto.setKid(keyWord.getKid());
dto.setName(keyWord.getName());
dto.setRule(keyWord.getRule());
return dto;
}).collect(Collectors.toList());
return list;
}
@Override
public List<GetTemplateResultDTO> getTemplate(SubscribeFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId());
List<PersonalTemplateDTO> list = personalTemplateService.getListByAppId(formDTO.getAppId());
WxResult<WxGetTemplateResult> wxResult = wxMaSubscribeService.getTemplate(authInfo.getAuthorizerAccessToken());
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
List<GetTemplateResultDTO> resultList = new ArrayList<>();
if (null != list && list.size() > 0) {
resultList =
list.stream().flatMap(dto -> wxResult.getData().getData().stream().filter(bean ->
dto.getPriTmplId().equals(bean.getPriTmplId())).map(template -> {
GetTemplateResultDTO tempDTO = new GetTemplateResultDTO();
tempDTO.setPriTmplId(dto.getPriTmplId());
tempDTO.setTitle(dto.getTitle());
tempDTO.setType(dto.getType());
tempDTO.setKidNames(dto.getKeyWords());
tempDTO.setSceneDesc(dto.getSceneDesc());
tempDTO.setContent(template.getContent());
tempDTO.setExample(template.getExample());
return tempDTO;
})).collect(Collectors.toList());
}
return resultList;
}
@Override
public void addTemplate(AddTemplateFormDTO formDTO) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId());
WxAddTemplateReq request = new WxAddTemplateReq();
request.setTid(formDTO.getTid());
request.setKidList(formDTO.getKidList());
request.setSceneDesc(formDTO.getSceneDesc());
WxResult<String> wxResult = wxMaSubscribeService.addTemplate(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
String priTmplId = wxResult.getData();
String keywords = String.join(",", formDTO.getNameList());
List<String> keyIdList = formDTO.getKidList().stream().map(Object::toString).collect(Collectors.toList());
String keyIds = String.join(",", keyIdList);
//将公共模板存入数据库
PersonalTemplateDTO personalTemplateDTO = new PersonalTemplateDTO();
personalTemplateDTO.setCustomerId(authInfo.getCustomerId());
personalTemplateDTO.setClientType(authInfo.getClientType());
personalTemplateDTO.setAppId(formDTO.getAppId());
personalTemplateDTO.setPid(priTmplId);
personalTemplateDTO.setPriTmplId(priTmplId);
personalTemplateDTO.setTid(formDTO.getTid());
personalTemplateDTO.setKeyIds(keyIds);
personalTemplateDTO.setTitle(formDTO.getTitle());
personalTemplateDTO.setSceneDesc(formDTO.getSceneDesc());
personalTemplateDTO.setKeyWords(keywords);
personalTemplateDTO.setType(formDTO.getType());
personalTemplateService.save(personalTemplateDTO);
//获取客户列表
List<PaCustomerDTO> customerList = paCustomerService.getCustomerListByTestId(authInfo.getCustomerId());
List<String> customerNames = new ArrayList<>();
if (null != customerList && customerList.size() > NumConstant.ZERO) {
for (PaCustomerDTO paCustomerDTO : customerList) {
//获取小程序调用令牌
AuthorizationInfoDTO authDTO = authorizationInfoDao.getAuthInfoByCustomer(paCustomerDTO.getId(), authInfo.getClientType());
if (null == authDTO) {
log.error("客户[" + paCustomerDTO.getCustomerName() + "]未授权");
customerNames.add(paCustomerDTO.getCustomerName());
continue;
}
WxResult<String> wxResult1 = wxMaSubscribeService.addTemplate(authDTO.getAuthorizerAccessToken(), request);
if (!wxResult1.success()) {
log.error("客户[" + paCustomerDTO.getCustomerName() + "]添加模板失败,原因:" + wxResult1.getErrorCode() + wxResult1.getErrorMsg());
customerNames.add(paCustomerDTO.getCustomerName());
continue;
}
String tmplId = wxResult1.getData();
PersonalTemplateDTO templateDTO = new PersonalTemplateDTO();
templateDTO.setCustomerId(paCustomerDTO.getId());
templateDTO.setClientType(authInfo.getClientType());
templateDTO.setAppId(authDTO.getAuthorizerAppid());
templateDTO.setPid(priTmplId);
templateDTO.setPriTmplId(tmplId);
templateDTO.setTid(formDTO.getTid());
templateDTO.setKeyIds(keyIds);
templateDTO.setTitle(formDTO.getTitle());
templateDTO.setSceneDesc(formDTO.getSceneDesc());
templateDTO.setKeyWords(keywords);
templateDTO.setType(formDTO.getType());
personalTemplateService.save(templateDTO);
}
}
if (customerNames.size() > NumConstant.ZERO) {
String names = String.join(",", customerNames);
throw new RenException("客户[" + names + "]添加模板失败");
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delTemplate(DelTemplateFormDTO formDTO) {
List<PersonalTemplateDTO> list = personalTemplateService.getListByPid(formDTO.getPriTmplId());
for (PersonalTemplateDTO dto : list) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(dto.getCustomerId(), dto.getClientType());
if (null == authInfo) {
log.error("客户[" + dto.getCustomerId() + "]未授权");
continue;
}
WxDelTemplateReq request = new WxDelTemplateReq();
request.setPriTmplId(dto.getPriTmplId());
WxResult wxResult = wxMaSubscribeService.delTemplate(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
personalTemplateService.deleteById(dto.getId());
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void init(InitFormDTO formDTO) {
if (null != formDTO.getResiTempIdList() && !formDTO.getResiTempIdList().isEmpty()) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), "resi");
if (null == authInfo) {
throw new RenException("居民端未授权或token已过期");
}
formDTO.getResiTempIdList().forEach(tempId -> {
PersonalTemplateDTO templateDTO = personalTemplateService.get(tempId);
List<String> keyIds = Arrays.asList(templateDTO.getKeyIds().split(","));
List<Integer> keyIdList = keyIds.stream().map(Integer::parseInt).collect(Collectors.toList());
WxAddTemplateReq request = new WxAddTemplateReq();
request.setTid(templateDTO.getTid());
request.setKidList(keyIdList);
request.setSceneDesc(templateDTO.getSceneDesc());
WxResult<String> wxResult = wxMaSubscribeService.addTemplate(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
log.error("居民端添加模板失败,原因:" + wxResult.getErrorCode() + wxResult.getErrorMsg());
return;
}
String tmplId = wxResult.getData();
PersonalTemplateDTO personalTemplate = ConvertUtils.sourceToTarget(templateDTO, PersonalTemplateDTO.class);
personalTemplate.setPriTmplId(tmplId);
personalTemplate.setCustomerId(formDTO.getCustomerId());
personalTemplate.setClientType("resi");
personalTemplate.setAppId(authInfo.getAuthorizerAppid());
personalTemplateService.save(personalTemplate);
});
}
if (null != formDTO.getWorkTempIdList() && !formDTO.getWorkTempIdList().isEmpty()) {
AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), "work");
if (null == authInfo) {
throw new RenException("工作端未授权或token已过期");
}
formDTO.getWorkTempIdList().forEach(tempId -> {
PersonalTemplateDTO templateDTO = personalTemplateService.get(tempId);
List<String> keyIds = Arrays.asList(templateDTO.getKeyIds().split(","));
List<Integer> keyIdList = keyIds.stream().map(Integer::parseInt).collect(Collectors.toList());
WxAddTemplateReq request = new WxAddTemplateReq();
request.setTid(templateDTO.getTid());
request.setKidList(keyIdList);
request.setSceneDesc(templateDTO.getSceneDesc());
WxResult<String> wxResult = wxMaSubscribeService.addTemplate(authInfo.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
log.error("工作端添加模板失败,原因:" + wxResult.getErrorCode() + wxResult.getErrorMsg());
return;
}
String tmplId = wxResult.getData();
PersonalTemplateDTO personalTemplate = ConvertUtils.sourceToTarget(templateDTO, PersonalTemplateDTO.class);
personalTemplate.setPriTmplId(tmplId);
personalTemplate.setCustomerId(formDTO.getCustomerId());
personalTemplate.setClientType("resi");
personalTemplate.setAppId(authInfo.getAuthorizerAppid());
personalTemplateService.save(personalTemplate);
});
}
}
@Override
public CustomerTempResultDTO getCustomerTemplate(InitFormDTO formDTO) {
CustomerTempResultDTO resultDTO = new CustomerTempResultDTO();
AuthorizationInfoDTO resiAuthDTO = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), "resi");
if (null == resiAuthDTO) {
throw new RenException("居民端未授权");
}
WxResult<WxGetTemplateResult> wxResiResult = wxMaSubscribeService.getTemplate(resiAuthDTO.getAuthorizerAccessToken());
if (!wxResiResult.success()) {
throw new RenException(wxResiResult.getErrorCode(), wxResiResult.getErrorMsg());
}
List<String> resiPubTmplIds =
wxResiResult.getData().getData().stream().map(WxGetTemplateResult.DataBean::getPriTmplId).collect(Collectors.toList());
List<TemplateDTO> resiList = personalTemplateService.getListByCustomer(formDTO.getResiAppId(), formDTO.getCustomerId(), "resi");
List<String> resiTmplIds = resiList.stream().map(TemplateDTO::getTmplId).collect(Collectors.toList());
List<String> resiReduce = resiPubTmplIds.stream().filter(item -> !resiTmplIds.contains(item)).collect(Collectors.toList());
resiReduce.forEach(tmplId -> {
WxDelTemplateReq request = new WxDelTemplateReq();
request.setPriTmplId(tmplId);
WxResult wxResult = wxMaSubscribeService.delTemplate(resiAuthDTO.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
log.error("居民端同步失败:" + wxResult.getErrorCode() + wxResult.getErrorMsg());
}
});
resultDTO.setResiList(resiList);
AuthorizationInfoDTO workAuthDTO = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), "work");
if (null == workAuthDTO) {
throw new RenException("工作端未授权");
}
WxResult<WxGetTemplateResult> wxWorkResult = wxMaSubscribeService.getTemplate(workAuthDTO.getAuthorizerAccessToken());
if (!wxWorkResult.success()) {
throw new RenException(wxWorkResult.getErrorCode(), wxWorkResult.getErrorMsg());
}
List<String> workPubTmplIds =
wxWorkResult.getData().getData().stream().map(WxGetTemplateResult.DataBean::getPriTmplId).collect(Collectors.toList());
List<TemplateDTO> workList = personalTemplateService.getListByCustomer(formDTO.getWorkAppId(), formDTO.getCustomerId(), "work");
List<String> workTmplIds = workList.stream().map(TemplateDTO::getTmplId).collect(Collectors.toList());
List<String> workReduce = workPubTmplIds.stream().filter(item -> !workTmplIds.contains(item)).collect(Collectors.toList());
workReduce.forEach(tmplId -> {
WxDelTemplateReq request = new WxDelTemplateReq();
request.setPriTmplId(tmplId);
WxResult wxResult = wxMaSubscribeService.delTemplate(resiAuthDTO.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
log.error("工作端同步失败:" + wxResult.getErrorCode() + wxResult.getErrorMsg());
}
});
resultDTO.setWorkList(workList);
return resultDTO;
}
private WxGetCategoryResult getCategoryResult(String accessToken) {
WxResult<WxGetCategoryResult> wxResult = wxMaSubscribeService.getCategory(accessToken);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
return wxResult.getData();
}
private WxKeyWordsResult getTitleKeyWords(String accessToken, String tId) {
WxResult<WxKeyWordsResult> wxResult = wxMaSubscribeService.getPubTemplateKeywords(accessToken, tId);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
return wxResult.getData();
}
public void sync(InitFormDTO formDTO) {
AuthorizationInfoDTO resiAuthDTO = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), "resi");
if (null == resiAuthDTO) {
throw new RenException("居民端未授权");
}
AuthorizationInfoDTO workAuthDTO = authorizationInfoDao.getAuthInfoByCustomer(formDTO.getCustomerId(), "work");
if (null == workAuthDTO) {
throw new RenException("工作端未授权");
}
//居民端初始化
List<PersonalTemplateDTO> resiList = personalTemplateService.getListByAppId(formDTO.getResiAppId());
if (null != resiList && resiList.size() > 0) {
resiList.forEach(templateDTO -> {
List<String> keyIds = Arrays.asList(templateDTO.getKeyIds().split(","));
List<Integer> keyIdList = keyIds.stream().map(Integer::parseInt).collect(Collectors.toList());
WxAddTemplateReq request = new WxAddTemplateReq();
request.setTid(templateDTO.getTid());
request.setKidList(keyIdList);
request.setSceneDesc(templateDTO.getSceneDesc());
WxResult<String> wxResult = wxMaSubscribeService.addTemplate(resiAuthDTO.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
String tmplId = wxResult.getData();
PersonalTemplateDTO personalTemplate = ConvertUtils.sourceToTarget(templateDTO, PersonalTemplateDTO.class);
personalTemplate.setPriTmplId(tmplId);
personalTemplate.setCustomerId(formDTO.getCustomerId());
personalTemplate.setClientType("resi");
personalTemplate.setAppId(resiAuthDTO.getAuthorizerAppid());
personalTemplateService.save(personalTemplate);
});
}
//工作端初始化
List<PersonalTemplateDTO> workList = personalTemplateService.getListByAppId(formDTO.getWorkAppId());
if (null != workList && workList.size() > 0) {
workList.forEach(templateDTO -> {
List<String> keyIds = Arrays.asList(templateDTO.getKeyIds().split(","));
List<Integer> keyIdList = keyIds.stream().map(Integer::parseInt).collect(Collectors.toList());
WxAddTemplateReq request = new WxAddTemplateReq();
request.setTid(templateDTO.getTid());
request.setKidList(keyIdList);
request.setSceneDesc(templateDTO.getSceneDesc());
WxResult<String> wxResult = wxMaSubscribeService.addTemplate(workAuthDTO.getAuthorizerAccessToken(), request);
if (!wxResult.success()) {
throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg());
}
String tmplId = wxResult.getData();
PersonalTemplateDTO personalTemplate = ConvertUtils.sourceToTarget(templateDTO, PersonalTemplateDTO.class);
personalTemplate.setPriTmplId(tmplId);
personalTemplate.setCustomerId(formDTO.getCustomerId());
personalTemplate.setClientType("work");
personalTemplate.setAppId(workAuthDTO.getAuthorizerAppid());
personalTemplateService.save(personalTemplate);
});
}
}
}

38
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxSubscribeConstant.java

@ -0,0 +1,38 @@
package com.epmet.wxapi.constant;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 10:34
*/
public interface WxSubscribeConstant {
/**
* 获取当前帐号所设置的类目信息
*/
String GET_CATEGORY_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getcategory";
/**
* 获取模板标题列表
*/
String GET_PUB_TEMPLATE_TITLES_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatetitles";
/**
* 获取模板标题下的关键词库
*/
String GET_KEY_WORDS_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatekeywords";
/**
* 组合模板并添加到个人模板库
*/
String ADD_TEMPLATE_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate";
/**
* 获取帐号下的模板列表
*/
String GET_TEMPLATE_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate";
/**
* 删除帐号下的某个模板
*/
String DEL_TEMPLATE_URL = "https://api.weixin.qq.com/wxaapi/newtmpl/deltemplate";
}

20
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java

@ -519,6 +519,26 @@ public enum WxMaErrorMsgEnum {
CODE_43101(43101, "用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系"),
CODE_47003(47003, "模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错"),
CODE_200011(200011, "此账号已被封禁,无法操作"),
CODE_200012(200012, "个人模板数已达上限,上限25个"),
CODE_200013(200013, "此模板已被封禁,无法选用"),
CODE_200014(200014, "模板 tid 参数错误"),
CODE_200016(200016, "start 参数错误"),
CODE_200017(200017, "limit 参数错误"),
CODE_200018(200018, "类目 ids 缺失"),
CODE_200019(200019, "类目 ids 不合法"),
CODE_200020(200020, "关键词列表 kidList 参数错误"),
CODE_200021(200021, "场景描述 sceneDesc 参数错误"),
;
private int code;

31
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddTemplateReq.java

@ -0,0 +1,31 @@
package com.epmet.wxapi.param;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 9:33
*/
@NoArgsConstructor
@Data
public class WxAddTemplateReq implements Serializable {
private static final long serialVersionUID = -9163397048982502051L;
/**
* 模板标题 id
*/
private String tid;
/**
* 关键词id
*/
private String sceneDesc;
/**
* 服务场景描述15个字以内
*/
private List<Integer> kidList;
}

22
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDelTemplateReq.java

@ -0,0 +1,22 @@
package com.epmet.wxapi.param;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 9:43
*/
@NoArgsConstructor
@Data
public class WxDelTemplateReq implements Serializable {
private static final long serialVersionUID = 195634574947498628L;
/**
* 要删除的模板id
*/
private String priTmplId;
}

16
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxExtJson.java

@ -24,6 +24,8 @@ public class WxExtJson implements Serializable {
private boolean directCommit;
@JSONField(ordinal = 4)
private ExtBean ext;
@JSONField(ordinal = 5)
private WindowBean window;
@NoArgsConstructor
@Data
@ -31,10 +33,12 @@ public class WxExtJson implements Serializable {
@JSONField(ordinal = 1)
private String extAppid;
@JSONField(ordinal = 2)
private String resiName;
private String customerName;
@JSONField(ordinal = 3)
private String workName;
private String resiName;
@JSONField(ordinal = 4)
private String workName;
@JSONField(ordinal = 5)
private FootbarBean footbar;
@NoArgsConstructor
@Data
@ -119,4 +123,12 @@ public class WxExtJson implements Serializable {
}
}
}
@NoArgsConstructor
@Data
public static class WindowBean {
@JSONField(ordinal = 1)
private String navigationBarTitleText;
}
}

30
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxSubTemplateReq.java

@ -0,0 +1,30 @@
package com.epmet.wxapi.param;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/8 16:30
*/
@NoArgsConstructor
@Data
public class WxSubTemplateReq implements Serializable {
private static final long serialVersionUID = 4133480686759651875L;
/**
* 类目 id多个用逗号隔开
*/
private String ids;
/**
* 用于分页表示从 start 开始 0 开始计数
*/
private Integer start;
/**
* 用于分页表示拉取 limit 条记录最大为 30
*/
private Integer limit;
}

41
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetCategoryResult.java

@ -0,0 +1,41 @@
package com.epmet.wxapi.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/8 16:03
*/
@NoArgsConstructor
@Data
public class WxGetCategoryResult implements Serializable {
private static final long serialVersionUID = 6785111976796640604L;
/**
* 错误码
*/
private Integer errcode;
/**
* 错误信息
*/
private String errmsg;
/**
* 类目列表
*/
private List<DataBean> data;
@NoArgsConstructor
@Data
public static class DataBean {
/**
* id : 616
*/
private Integer id;
private String name;
}
}

56
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetTemplateResult.java

@ -0,0 +1,56 @@
package com.epmet.wxapi.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/9 9:36
*/
@NoArgsConstructor
@Data
public class WxGetTemplateResult implements Serializable {
private static final long serialVersionUID = 1796638032203448934L;
/**
* 错误码
*/
private Integer errcode;
/**
* 错误信息
*/
private String errmsg;
/**
* 个人模板列表
*/
private List<DataBean> data;
@NoArgsConstructor
@Data
public static class DataBean {
/**
* 添加至帐号下的模板 id
*/
private String priTmplId;
/**
* 模板标题
*/
private String title;
/**
* 模板内容
*/
private String content;
/**
* 模板内容示例
*/
private String example;
/**
* 模板类型2 代表一次性订阅3 代表长期订阅
*/
private Integer type;
}
}

52
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxKeyWordsResult.java

@ -0,0 +1,52 @@
package com.epmet.wxapi.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/8 16:42
*/
@NoArgsConstructor
@Data
public class WxKeyWordsResult implements Serializable {
private static final long serialVersionUID = -7867379425609113193L;
/**
* 错误码
*/
private Integer errcode;
/**
* 错误信息
*/
private String errmsg;
/**
* 关键词列表
*/
private List<DataBean> data;
@NoArgsConstructor
@Data
public static class DataBean {
/**
* 关键词 id
*/
private Integer kid;
/**
* 关键词内容
*/
private String name;
/**
* 关键词内容对应的示例
*/
private String example;
/**
* 参数类型
*/
private String rule;
}
}

56
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxSubTemplateResult.java

@ -0,0 +1,56 @@
package com.epmet.wxapi.result;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/8 16:12
*/
@NoArgsConstructor
@Data
public class WxSubTemplateResult implements Serializable {
private static final long serialVersionUID = 5581168509440371239L;
/**
* 错误码
*/
private Integer errcode;
/**
* 错误信息
*/
private String errmsg;
/**
* 列表总数
*/
private Integer count;
/**
* 标题列表
*/
private List<DataBean> data;
@NoArgsConstructor
@Data
public static class DataBean {
/**
* 模板标题 id
*/
private Integer tid;
/**
* 模板标题
*/
private String title;
/**
* 模板类型2 为一次性订阅3 为长期订阅
*/
private Integer type;
/**
* 模板所属类目 id
*/
private String categoryId;
}
}

78
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSubscribeService.java

@ -0,0 +1,78 @@
package com.epmet.wxapi.service;
import com.epmet.wxapi.param.WxAddTemplateReq;
import com.epmet.wxapi.param.WxDelTemplateReq;
import com.epmet.wxapi.param.WxSubTemplateReq;
import com.epmet.wxapi.result.*;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/8 15:55
*/
public interface WxMaSubscribeService {
/**
* 获取当前帐号所设置的类目信息
*
* @param accessToken
* @return com.epmet.wxapi.result.WxResult<com.epmet.wxapi.result.WxGetCategoryResult>
* @author zhaoqifeng
* @date 2020/9/8 16:06
*/
WxResult<WxGetCategoryResult> getCategory(String accessToken);
/**
* 获取模板标题列表
*
* @param accessToken
* @param request
* @return com.epmet.wxapi.result.WxSubTemplateResult
* @author zhaoqifeng
* @date 2020/9/8 16:34
*/
WxResult<WxSubTemplateResult> getPubTemplateTitles(String accessToken, WxSubTemplateReq request);
/**
* 获取模板标题下的关键词库
*
* @param accessToken
* @param tId
* @return com.epmet.wxapi.result.WxResult<com.epmet.wxapi.result.WxKeyWordsResult>
* @author zhaoqifeng
* @date 2020/9/8 16:45
*/
WxResult<WxKeyWordsResult> getPubTemplateKeywords(String accessToken, String tId);
/**
* 组合模板并添加到个人模板库
*
* @param accessToken
* @param request
* @return com.epmet.wxapi.result.WxResult<java.lang.String>
* @author zhaoqifeng
* @date 2020/9/9 9:35
*/
WxResult<String> addTemplate(String accessToken, WxAddTemplateReq request);
/**
* 获取帐号下的模板列表
*
* @param accessToken
* @return com.epmet.wxapi.result.WxResult<com.epmet.wxapi.result.WxGetTemplateResult>
* @author zhaoqifeng
* @date 2020/9/9 9:42
*/
WxResult<WxGetTemplateResult> getTemplate(String accessToken);
/**
* 删除帐号下的某个模板
*
* @param accessToken
* @param request
* @return com.epmet.wxapi.result.WxResult
* @author zhaoqifeng
* @date 2020/9/9 9:44
*/
WxResult delTemplate(String accessToken, WxDelTemplateReq request);
}

146
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSubscribeServiceImpl.java

@ -0,0 +1,146 @@
package com.epmet.wxapi.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.commons.tools.utils.Result;
import com.epmet.wxapi.constant.WxSubscribeConstant;
import com.epmet.wxapi.enums.WxMaErrorMsgEnum;
import com.epmet.wxapi.param.WxAddTemplateReq;
import com.epmet.wxapi.param.WxDelTemplateReq;
import com.epmet.wxapi.param.WxSubTemplateReq;
import com.epmet.wxapi.result.*;
import com.epmet.wxapi.service.WxMaSubscribeService;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.springframework.stereotype.Service;
/**
* @author zhaoqifeng
* @dscription
* @date 2020/9/8 15:56
*/
@Service
public class WxMaSubscribeServiceImpl implements WxMaSubscribeService {
private static final String ERR_CODE = "errcode";
private static final String ERR_MSG = "errmsg";
@Override
public WxResult<WxGetCategoryResult> getCategory(String accessToken) {
WxResult<WxGetCategoryResult> result = new WxResult<>();
String url = WxSubscribeConstant.GET_CATEGORY_URL + "?" + "access_token=" + accessToken;
Result<String> httpResult = HttpClientManager.getInstance().sendGet(url, null);
if (!httpResult.success()) {
result.setErrorCode(httpResult.getCode());
result.setErrorMsg(httpResult.getMsg());
return result;
}
Gson gson = new Gson();
WxGetCategoryResult getCategoryResult = gson.fromJson(httpResult.getData(), WxGetCategoryResult.class);
result.setErrorCode(getCategoryResult.getErrcode());
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(getCategoryResult.getErrcode()));
result.setData(getCategoryResult);
return result;
}
@Override
public WxResult<WxSubTemplateResult> getPubTemplateTitles(String accessToken, WxSubTemplateReq request) {
WxResult<WxSubTemplateResult> result = new WxResult<>();
String url = WxSubscribeConstant.GET_PUB_TEMPLATE_TITLES_URL + "?" + "access_token=" + accessToken + "&ids=" + request.getIds()
+ "&start=" + request.getStart() + "&limit=" + request.getLimit();
Result<String> httpResult = HttpClientManager.getInstance().sendGet(url, null);
if (!httpResult.success()) {
result.setErrorCode(httpResult.getCode());
result.setErrorMsg(httpResult.getMsg());
return result;
}
Gson gson = new Gson();
WxSubTemplateResult subTemplateResult = gson.fromJson(httpResult.getData(), WxSubTemplateResult.class);
result.setErrorCode(subTemplateResult.getErrcode());
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(subTemplateResult.getErrcode()));
result.setData(subTemplateResult);
return result;
}
@Override
public WxResult<WxKeyWordsResult> getPubTemplateKeywords(String accessToken, String tId) {
WxResult<WxKeyWordsResult> result = new WxResult<>();
String url = WxSubscribeConstant.GET_KEY_WORDS_URL + "?" + "access_token=" + accessToken + "&tid=" + tId;
Result<String> httpResult = HttpClientManager.getInstance().sendGet(url, null);
if (!httpResult.success()) {
result.setErrorCode(httpResult.getCode());
result.setErrorMsg(httpResult.getMsg());
return result;
}
Gson gson = new Gson();
WxKeyWordsResult keyWordsResult = gson.fromJson(httpResult.getData(), WxKeyWordsResult.class);
result.setErrorCode(keyWordsResult.getErrcode());
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(keyWordsResult.getErrcode()));
result.setData(keyWordsResult);
return result;
}
@Override
public WxResult<String> addTemplate(String accessToken, WxAddTemplateReq request) {
WxResult<String> result = new WxResult<>();
String url = WxSubscribeConstant.ADD_TEMPLATE_URL + "?" + "access_token=" + accessToken;
Result<String> httpResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
if (!httpResult.success()) {
result.setErrorCode(httpResult.getCode());
result.setErrorMsg(httpResult.getMsg());
return result;
}
JSONObject jsonObject = JSONObject.parseObject(httpResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
result.setData(jsonObject.getString("priTmplId"));
return result;
}
@Override
public WxResult<WxGetTemplateResult> getTemplate(String accessToken) {
WxResult<WxGetTemplateResult> result = new WxResult<>();
String url = WxSubscribeConstant.GET_TEMPLATE_URL + "?" + "access_token=" + accessToken;
Result<String> httpResult = HttpClientManager.getInstance().sendGet(url, null);
if (!httpResult.success()) {
result.setErrorCode(httpResult.getCode());
result.setErrorMsg(httpResult.getMsg());
return result;
}
Gson gson = new Gson();
WxGetTemplateResult templateResult = gson.fromJson(httpResult.getData(), WxGetTemplateResult.class);
result.setErrorCode(templateResult.getErrcode());
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(templateResult.getErrcode()));
result.setData(templateResult);
return result;
}
@Override
public WxResult delTemplate(String accessToken, WxDelTemplateReq request) {
WxResult result = new WxResult<>();
String url = WxSubscribeConstant.DEL_TEMPLATE_URL + "?" + "access_token=" + accessToken;
Result<String> httpResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
if (!httpResult.success()) {
result.setErrorCode(httpResult.getCode());
result.setErrorMsg(httpResult.getMsg());
return result;
}
JSONObject jsonObject = JSONObject.parseObject(httpResult.getData());
result.setErrorCode(jsonObject.getInteger(ERR_CODE));
result.setErrorMsg(WxMaErrorMsgEnum.findMsgByCode(jsonObject.getInteger(ERR_CODE)));
return result;
}
private String toJson(Object object) {
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setPrettyPrinting();
Gson gson = gsonBuilder.create();
return gson.toJson(object);
}
}

36
epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.10__thirdUpdate.sql

@ -0,0 +1,36 @@
CREATE TABLE `personal_template` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`CLIENT_TYPE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`APP_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`PRI_TMPL_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`TYPE` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`TID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`TITLE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`KEY_IDS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`KEY_WORDS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`SCENE_DESC` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`REVISION` int(11) NULL DEFAULT NULL,
`DEL_FLAG` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`CREATED_TIME` datetime(0) NULL DEFAULT NULL,
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`UPDATED_TIME` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
CREATE TABLE `public_template` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`TITLE` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`TYPE` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`CATEGORY_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`REVISION` int(11) NULL DEFAULT NULL,
`DEL_FLAG` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`CREATED_TIME` datetime(0) NULL DEFAULT NULL,
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`UPDATED_TIME` datetime(0) NULL DEFAULT NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

11
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml

@ -132,5 +132,16 @@
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
</select>
<select id="selectInfoByAppId" resultType="com.epmet.dto.AuthorizationInfoDTO">
SELECT
CUSTOMER_ID,
CLIENT_TYPE,
AUTHORIZER_ACCESS_TOKEN
FROM
authorization_info
WHERE
DEL_FLAG = 0
AND AUTHORIZER_APPID = #{appId}
</select>
</mapper>

12
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml

@ -196,4 +196,16 @@
AND
SOURCE = #{source}
</select>
<select id="selectCustomerListByTestId" resultType="com.epmet.dto.PaCustomerDTO">
SELECT
pc.ID,
pc.CUSTOMER_NAME
FROM
pa_customer pc
INNER JOIN ( SELECT SOURCE FROM pa_customer WHERE ID = #{customerId} ) t ON pc.SOURCE = t.SOURCE
WHERE
pc.DEL_FLAG = 0
AND IS_INITIALIZE = 1
AND pc.ID != #{customerId}
</select>
</mapper>

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

@ -0,0 +1,79 @@
<?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.PersonalTemplateDao">
<resultMap type="com.epmet.entity.PersonalTemplateEntity" id="personalTemplateMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="clientType" column="CLIENT_TYPE"/>
<result property="appId" column="APP_ID"/>
<result property="pid" column="PID"/>
<result property="priTmplId" column="PRI_TMPL_ID"/>
<result property="type" column="TYPE"/>
<result property="title" column="TITLE"/>
<result property="keyWords" column="KEY_WORDS"/>
<result property="sceneDesc" column="SCENE_DESC"/>
<result property="revision" column="REVISION"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectListByPid" resultType="com.epmet.dto.PersonalTemplateDTO">
SELECT ID,
CUSTOMER_ID,
CLIENT_TYPE,
PRI_TMPL_ID
FROM personal_template
WHERE DEL_FLAG = '0'
AND PID = #{pid}
</select>
<select id="selectListByAppId" resultType="com.epmet.dto.PersonalTemplateDTO">
SELECT *
FROM personal_template
WHERE DEL_FLAG = '0'
AND APP_ID = #{appId}
</select>
<select id="selectSetTemp" resultType="com.epmet.dto.PersonalTemplateDTO">
SELECT ID,
TITLE
FROM personal_template
WHERE DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND PID = #{pid}
</select>
<select id="selectListByCustomerId" resultType="com.epmet.dto.result.TemplateDTO">
SELECT
t1.ID AS id,
t1.PRI_TMPL_ID AS tmplId,
t1.TITLE AS title,
IF(ISNULL(t2.ID),'0','1') AS state
FROM
(SELECT
ID,
TITLE,
PRI_TMPL_ID
FROM
personal_template
WHERE
DEL_FLAG = '0'
AND APP_ID = #{appId}) t1
LEFT JOIN
(SELECT
ID,
TITLE,
PID,
PRI_TMPL_ID
FROM
personal_template
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND CLIENT_TYPE = #{clientType}) t2
ON t1.PRI_TMPL_ID = t2.PID
</select>
</mapper>

41
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PublicTemplateDao.xml

@ -0,0 +1,41 @@
<?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.PublicTemplateDao">
<resultMap type="com.epmet.entity.PublicTemplateEntity" id="publicTemplateMap">
<result property="id" column="ID"/>
<result property="tid" column="TID"/>
<result property="title" column="TITLE"/>
<result property="type" column="TYPE"/>
<result property="categoryId" column="CATEGORY_ID"/>
<result property="revision" column="REVISION"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<delete id="deleteTempByCategoryId" parameterType="list">
DELETE FROM public_template WHERE 1=1
<foreach collection="list" item="item" open="AND( " separator=" OR " index="index" close=")">
CATEGORY_ID = #{item}
</foreach>
</delete>
<select id="getPubTempList" resultType="com.epmet.dto.result.PubTemplateResultDTO" parameterType="com.epmet.dto.form.PubTemplateFormDTO">
select TID,
TITLE,
TYPE,
CATEGORY_ID
from public_template
where 1=1
<if test="title != null and title.trim() != ''">
AND TITLE LIKE CONCAT('%',#{title},'%')
</if>
<if test="ids != null and ids.trim() != ''">
AND CATEGORY_ID = #{ids}
</if>
</select>
</mapper>

2
epmet-module/gov-project/gov-project-server/Dockerfile

@ -4,7 +4,7 @@ RUN export LANG="zh_CN.UTF-8"
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
COPY ./target/*.jar ./app.jar
COPY ./target/*.jar ./gov-project.jar
EXPOSE 8102

Loading…
Cancel
Save