diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index 323b2a7fca..9748b1ca26 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -442,7 +442,7 @@ epmet: urlWhiteList: - /data/report/test/test - /data/report/screen/** - - /data/report/screenkc/** + - /data/report/kcscreen/** - /epmetuser/customerstaff/customerlist swaggerUrls: diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/PageFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/PageFormDTO.java new file mode 100644 index 0000000000..c3da303f4d --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/PageFormDTO.java @@ -0,0 +1,9 @@ +package com.epmet.dto; + +import lombok.Data; + +@Data +public class PageFormDTO { + private Integer pageNo = 1; + private Integer pageSize = 10; +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/issue/KcPartiTrendResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/issue/KcPartiTrendResultDTO.java index 5b7db61bbb..ee831f9761 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/issue/KcPartiTrendResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/issue/KcPartiTrendResultDTO.java @@ -1,11 +1,9 @@ package com.epmet.dto.result.issue; -import lombok.Data; import java.util.ArrayList; import java.util.List; -@Data public class KcPartiTrendResultDTO { private String monthId; @@ -13,4 +11,36 @@ public class KcPartiTrendResultDTO { private List xAxis = new ArrayList<>(); private List reportCountDataList = new ArrayList<>(); + + public String getMonthId() { + return monthId; + } + + public void setMonthId(String monthId) { + this.monthId = monthId; + } + + public Integer getReportCount() { + return reportCount; + } + + public void setReportCount(Integer reportCount) { + this.reportCount = reportCount; + } + + public List getxAxis() { + return xAxis; + } + + public void setxAxis(List xAxis) { + this.xAxis = xAxis; + } + + public List getReportCountDataList() { + return reportCountDataList; + } + + public void setReportCountDataList(List reportCountDataList) { + this.reportCountDataList = reportCountDataList; + } } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/ProjectSatisfaction.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/ProjectSatisfaction.java deleted file mode 100644 index 03d1c9bded..0000000000 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/ProjectSatisfaction.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.epmet.dto.result.project; - -import lombok.Data; - -import java.util.List; - -@Data -public class ProjectSatisfaction { - - private List xAxis; - private List greatSatisDataList; - private List goodStatisDataList; - private List disStatisDataList; - - private String monthId; - private String monthName; - // 满意 - private Integer goodSatis; - // 非常满意 - private Integer greatSatis; - // 不满意 - private Integer disSatis; -} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/ProjectSatisfactionResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/ProjectSatisfactionResultDTO.java new file mode 100644 index 0000000000..717fc32c23 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/ProjectSatisfactionResultDTO.java @@ -0,0 +1,87 @@ +package com.epmet.dto.result.project; + +import java.util.ArrayList; +import java.util.List; + +/** + * xAxis 被lombok生成后是XAxis,与nei不符,所以使用手动生成getter/setter方法 + */ +public class ProjectSatisfactionResultDTO { + + private List xAxis = new ArrayList<>(); + private List greatSatisDataList = new ArrayList<>(); + private List goodSatisDataList = new ArrayList<>(); + private List disSatisDataList = new ArrayList<>(); + + private String monthId; + // 满意 + private Integer goodSatis; + // 非常满意 + private Integer greatSatis; + // 不满意 + private Integer disSatis; + + public List getxAxis() { + return xAxis; + } + + public void setxAxis(List xAxis) { + this.xAxis = xAxis; + } + + public List getGreatSatisDataList() { + return greatSatisDataList; + } + + public void setGreatSatisDataList(List greatSatisDataList) { + this.greatSatisDataList = greatSatisDataList; + } + + public List getGoodSatisDataList() { + return goodSatisDataList; + } + + public void setGoodSatisDataList(List goodSatisDataList) { + this.goodSatisDataList = goodSatisDataList; + } + + public List getDisSatisDataList() { + return disSatisDataList; + } + + public void setDisSatisDataList(List disSatisDataList) { + this.disSatisDataList = disSatisDataList; + } + + public String getMonthId() { + return monthId; + } + + public void setMonthId(String monthId) { + this.monthId = monthId; + } + + public Integer getGoodSatis() { + return goodSatis; + } + + public void setGoodSatis(Integer goodSatis) { + this.goodSatis = goodSatis; + } + + public Integer getGreatSatis() { + return greatSatis; + } + + public void setGreatSatis(Integer greatSatis) { + this.greatSatis = greatSatis; + } + + public Integer getDisSatis() { + return disSatis; + } + + public void setDisSatis(Integer disSatis) { + this.disSatis = disSatis; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/UserSummaryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/UserSummaryResultDTO.java new file mode 100644 index 0000000000..926310a31d --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/project/UserSummaryResultDTO.java @@ -0,0 +1,13 @@ +package com.epmet.dto.result.project; + +import lombok.Data; + +@Data +public class UserSummaryResultDTO { + + private String dateId; + private Integer vistorCount; + private Integer regUserCount; + private Integer partyUserCount; + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserPointRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserPointRankResultDTO.java new file mode 100644 index 0000000000..51d156b993 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserPointRankResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class KcUserPointRankResultDTO { + + private List userNameDataList = new ArrayList<>(); + private List pointsDataList = new ArrayList<>(); + + @Data + public static class KcUserPoint { + private String userId; + private String userName; + private Integer pointTotal; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserPortrayalResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserPortrayalResultDTO.java new file mode 100644 index 0000000000..c87ddbc2cd --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserPortrayalResultDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +@Data +public class KcUserPortrayalResultDTO { + + // 年龄分布 + private AgeDistribution ageDistribution; + // 性别分布 + private GenderDistribution genderDistribution; + + @Data + public static class AgeDistribution { + private Integer ageLevel1; + private Integer ageLevel2; + private Integer ageLevel3; + private Integer ageLevel4; + private Integer ageLevel5; + private Integer ageLevel6; + } + + @Data + public static class GenderDistribution { + private Integer malePartyUserCount; + private Integer femalePartyUserCount; + } + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserRankResultDTO.java new file mode 100644 index 0000000000..f29c9e3124 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserRankResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class KcUserRankResultDTO { + + // 网格名称 + private String gridName; + // 浏览用户数 + private Integer viewUserCount; + + private List gridNameDataList = new ArrayList<>(); + private List totalUserDataList = new ArrayList<>(); + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserTrendResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserTrendResultDTO.java new file mode 100644 index 0000000000..5c2ef112d7 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/KcUserTrendResultDTO.java @@ -0,0 +1,63 @@ +package com.epmet.dto.result.user; + +import java.util.ArrayList; +import java.util.List; + +public class KcUserTrendResultDTO { + + private String monthId; + private Integer regUserCount; + private Integer partyUserCount; + + private List xAxis = new ArrayList<>(); + private List userDataList = new ArrayList<>(); + private List partyUserDataList = new ArrayList<>(); + + public String getMonthId() { + return monthId; + } + + public void setMonthId(String monthId) { + this.monthId = monthId; + } + + public Integer getRegUserCount() { + return regUserCount; + } + + public void setRegUserCount(Integer regUserCount) { + this.regUserCount = regUserCount; + } + + public Integer getPartyUserCount() { + return partyUserCount; + } + + public void setPartyUserCount(Integer partyUserCount) { + this.partyUserCount = partyUserCount; + } + + public List getxAxis() { + return xAxis; + } + + public void setxAxis(List xAxis) { + this.xAxis = xAxis; + } + + public List getUserDataList() { + return userDataList; + } + + public void setUserDataList(List userDataList) { + this.userDataList = userDataList; + } + + public List getPartyUserDataList() { + return partyUserDataList; + } + + public void setPartyUserDataList(List partyUserDataList) { + this.partyUserDataList = partyUserDataList; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcCategoryNewsCountResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcCategoryNewsCountResultDTO.java new file mode 100644 index 0000000000..09d2fb8584 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcCategoryNewsCountResultDTO.java @@ -0,0 +1,12 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +@Data +public class ScreenKcCategoryNewsCountResultDTO { + + private String categoryName; + private Integer newsCount; + private Integer partiCount; + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcCategoryNewsRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcCategoryNewsRankResultDTO.java new file mode 100644 index 0000000000..1d2d60f98d --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcCategoryNewsRankResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result.user; + +import java.util.ArrayList; +import java.util.List; + +public class ScreenKcCategoryNewsRankResultDTO { + + private List xAxis = new ArrayList<>(); + private List partiCountDataList = new ArrayList<>(); + + public List getxAxis() { + return xAxis; + } + + public void setxAxis(List xAxis) { + this.xAxis = xAxis; + } + + public List getPartiCountDataList() { + return partiCountDataList; + } + + public void setPartiCountDataList(List partiCountDataList) { + this.partiCountDataList = partiCountDataList; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsHotRankResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsHotRankResultDTO.java new file mode 100644 index 0000000000..2fe7201164 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsHotRankResultDTO.java @@ -0,0 +1,12 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +@Data +public class ScreenKcNewsHotRankResultDTO { + + private String newsId; + private String newsTitle; + private Integer hotCount; + +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsPartiTrendResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsPartiTrendResultDTO.java new file mode 100644 index 0000000000..c240f7da10 --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsPartiTrendResultDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +public class ScreenKcNewsPartiTrendResultDTO { + + private List xAxis = new ArrayList<>(); + + private List partiCountDataList = new ArrayList<>(); + + @Data + public static class ScreenKcNewsPartyCount { + + private String monthId; + private Integer partiCount; + + } + + public List getxAxis() { + return xAxis; + } + + public void setxAxis(List xAxis) { + this.xAxis = xAxis; + } + + public List getPartiCountDataList() { + return partiCountDataList; + } + + public void setPartiCountDataList(List partiCountDataList) { + this.partiCountDataList = partiCountDataList; + } +} diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsSummaryResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsSummaryResultDTO.java new file mode 100644 index 0000000000..0cf7fab7cd --- /dev/null +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/dto/result/user/ScreenKcNewsSummaryResultDTO.java @@ -0,0 +1,14 @@ +package com.epmet.dto.result.user; + +import lombok.Data; + +@Data +public class ScreenKcNewsSummaryResultDTO { + + private String dateId; + private Integer newsCount; + private Integer readCount; + private Integer likeCount; + private Integer commentCount; + +} diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java index d6d3c8bcbf..db794ca26b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/screen/KcScreenController.java @@ -5,8 +5,9 @@ import com.epmet.commons.extappauth.bean.ExternalAppRequestParam; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.datareport.service.evaluationindex.screen.KcScreenService; -import com.epmet.dto.result.issue.IssueGridTotalRankDTO; +import com.epmet.dto.PageFormDTO; import com.epmet.dto.result.project.*; +import com.epmet.dto.result.user.*; import com.epmet.evaluationindex.screen.dto.form.GroupTopicShiftIssueRatioRankFormDTO; import com.epmet.evaluationindex.screen.dto.form.GroupUserCountRankFormDTO; import com.epmet.evaluationindex.screen.dto.form.HeartVolunteerrankFormDTO; @@ -97,7 +98,7 @@ public class KcScreenController { } /** - * 按照议题总数排名 + * 按照议题数量排名 * @param externalAppRequestParam * @return */ @@ -123,7 +124,7 @@ public class KcScreenController { } /** - * 议题分析-审核效率 + * 议题分析-议题效率 * @param externalAppRequestParam * @return */ @@ -277,14 +278,135 @@ public class KcScreenController { * @param externalAppRequestParam * @return */ - //@ExternalAppRequestAuth + @ExternalAppRequestAuth @PostMapping("project/statis") - public Result getProjectSatisfactionAnalyze(ExternalAppRequestParam externalAppRequestParam){ - String customerId = "2fe0065f70ca0e23ce4c26fca5f1d933"; - //String customerId = externalAppRequestParam.getCustomerId(); - return new Result().ok(kcScreenService.getProjectSatisfactionAnalyze(customerId)); + public Result getProjectSatisfactionAnalyze(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getProjectSatisfactionAnalyze(customerId)); + } + + /** + * 用户-summary + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("user/summary") + public Result getUserSummary(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + //String customerId = "2fe0065f70ca0e23ce4c26fca5f1d933"; + return new Result().ok(kcScreenService.getUserSummary(customerId)); + } + + /** + * 用户量趋势 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("user/trend") + public Result getUserTrend(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getUserTrend(customerId)); + } + + /** + * 网格用户数量排名 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("user/griduserrank") + public Result getUserRank(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getUserRank(customerId)); + } + + /** + * 用户画像 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("user/userportrayal") + public Result getUserPortrayal(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getUserPortrayal(customerId)); + } + + /** + * 用户积分排名 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("user/pointsrank") + public Result getUserPointsRank(ExternalAppRequestParam externalAppRequestParam, + @RequestBody PageFormDTO form) { + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getUserPointsRank(customerId, form.getPageNo(), form.getPageSize())); } + /** + * 党建声音-各类总数 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("news/summary") + public Result getNewsSummary(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getNewsSummary(customerId)); + } + + /** + * 新闻阅读参与趋势 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("news/partitrend") + public Result getNewsPartiTrend(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getNewsPartiTrend(customerId)); + } + + /** + * 党建声音-分类的news数量 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("news/category") + public Result> getNewsCountGroupByCategory(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result>().ok(kcScreenService.getNewsCountOfCategory(customerId)); + } + + /** + * 党建声音-分类的用户参与数排行 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("news/userparticategoryrank") + public Result getNewsPartiCategoryRank(ExternalAppRequestParam externalAppRequestParam){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result().ok(kcScreenService.getNewsPartiCategoryRank(customerId)); + } + + /** + * 党建声音-热点新闻排行 + * @param externalAppRequestParam + * @return + */ + @ExternalAppRequestAuth + @PostMapping("news/hotrank") + public Result> listNewsHotRank(ExternalAppRequestParam externalAppRequestParam, + @RequestBody PageFormDTO form){ + String customerId = externalAppRequestParam.getCustomerId(); + return new Result>().ok(kcScreenService.getNewsHotRank(customerId, form.getPageNo(), form.getPageSize())); + } } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java index 2c4358ce15..bc15ca191f 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screen/ScreenPartyUserRankDataDao.java @@ -17,6 +17,7 @@ package com.epmet.datareport.dao.evaluationindex.screen; +import com.epmet.dto.result.user.KcUserPointRankResultDTO; import com.epmet.evaluationindex.screen.dto.result.PartyUserPointResultDTO; import com.epmet.evaluationindex.screen.dto.result.UserPointResultDTO; import org.apache.ibatis.annotations.Mapper; @@ -51,4 +52,5 @@ public interface ScreenPartyUserRankDataDao{ **/ List selectPartymemberPointOrder(@Param("agencyId")String agencyId); + List listUserPoints(String customerId); } \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsCategoryAnalysisDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsCategoryAnalysisDao.java index 6a779fb248..ce34407ab0 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsCategoryAnalysisDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsCategoryAnalysisDao.java @@ -17,8 +17,11 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.user.ScreenKcCategoryNewsCountResultDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * KC-新闻-按类别统计(先根据customerId+dateId删除) * @@ -28,4 +31,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcNewsCategoryAnalysisDao { + List getNewsCountOfCategory(String customerId); + + List listNewsPartiCategoryRank(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsRankDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsRankDao.java index 6a03be5485..bf42d979df 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsRankDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsRankDao.java @@ -17,8 +17,11 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.user.ScreenKcNewsHotRankResultDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * KC-热点新闻排行-(先根据customerId删除) * @@ -28,4 +31,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcNewsRankDao { + List getNewsHotRank(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsSummaryDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsSummaryDailyDao.java index ec9d49c5c2..16b215f5f2 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsSummaryDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsSummaryDailyDao.java @@ -17,6 +17,7 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.user.ScreenKcNewsSummaryResultDTO; import org.apache.ibatis.annotations.Mapper; /** @@ -28,4 +29,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcNewsSummaryDailyDao { + ScreenKcNewsSummaryResultDTO getNewsSummary(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsTrendMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsTrendMonthlyDao.java index c3d60f0b83..92422cf436 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsTrendMonthlyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcNewsTrendMonthlyDao.java @@ -17,8 +17,11 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.user.ScreenKcNewsPartiTrendResultDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * KC-新闻参与趋势-(先根据customerId+monthId删除) * @@ -28,4 +31,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcNewsTrendMonthlyDao { + List getNewsPartiTrend(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcProjectSatisGridMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcProjectSatisGridMonthlyDao.java index 324bc723c5..1a204bc242 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcProjectSatisGridMonthlyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcProjectSatisGridMonthlyDao.java @@ -17,8 +17,11 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.project.ProjectSatisfactionResultDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * KC-项目满意度分析(customerId+monthId先删除记录,再插入) * @@ -28,4 +31,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcProjectSatisGridMonthlyDao { + List getProjectSatisfactionAnalyze(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserSummaryDailyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserSummaryDailyDao.java index ff33f78b39..40bb9f7ae3 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserSummaryDailyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserSummaryDailyDao.java @@ -17,8 +17,13 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.project.UserSummaryResultDTO; +import com.epmet.dto.result.user.KcUserPortrayalResultDTO; +import com.epmet.dto.result.user.KcUserRankResultDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * KC-用户分析(先根据customerId+dateId删除,后插入) * @@ -28,4 +33,11 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcUserSummaryDailyDao { + UserSummaryResultDTO getUserSummary(String customerId); + + List getUserRank(String customerId); + + KcUserPortrayalResultDTO.AgeDistribution getAgeDistribution(String customerId); + + KcUserPortrayalResultDTO.GenderDistribution getGenderDistribution(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserTrendGridMonthlyDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserTrendGridMonthlyDao.java index 92bb3dce0f..c4010379cd 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserTrendGridMonthlyDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/evaluationindex/screenkc/ScreenKcUserTrendGridMonthlyDao.java @@ -17,8 +17,11 @@ package com.epmet.datareport.dao.evaluationindex.screenkc; +import com.epmet.dto.result.user.KcUserTrendResultDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * KC-用户趋势分析(根据monthId+customerId先删后增) * @@ -28,4 +31,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ScreenKcUserTrendGridMonthlyDao { + List getUserTrend(String customerId); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java index bbce62b9c9..f40e8517ae 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/KcScreenService.java @@ -3,6 +3,7 @@ package com.epmet.datareport.service.evaluationindex.screen; import com.epmet.commons.extappauth.bean.ExternalAppRequestParam; import com.epmet.dto.result.issue.*; import com.epmet.dto.result.project.*; +import com.epmet.dto.result.user.*; import com.epmet.evaluationindex.screen.dto.form.GroupTopicShiftIssueRatioRankFormDTO; import com.epmet.evaluationindex.screen.dto.form.GroupUserCountRankFormDTO; import com.epmet.evaluationindex.screen.dto.form.HeartVolunteerrankFormDTO; @@ -112,5 +113,25 @@ public interface KcScreenService { List getGridProjectAvgClosedTimeAnalysis(String customerId); - ProjectSatisfaction getProjectSatisfactionAnalyze(String customerId); + ProjectSatisfactionResultDTO getProjectSatisfactionAnalyze(String customerId); + + UserSummaryResultDTO getUserSummary(String customerId); + + KcUserTrendResultDTO getUserTrend(String customerId); + + KcUserRankResultDTO getUserRank(String customerId); + + KcUserPortrayalResultDTO getUserPortrayal(String customerId); + + KcUserPointRankResultDTO getUserPointsRank(String customerId, Integer pageNo, Integer pageSize); + + ScreenKcNewsSummaryResultDTO getNewsSummary(String customerId); + + ScreenKcNewsPartiTrendResultDTO getNewsPartiTrend(String customerId); + + List getNewsCountOfCategory(String customerId); + + ScreenKcCategoryNewsRankResultDTO getNewsPartiCategoryRank(String customerId); + + List getNewsHotRank(String customerId, Integer pageNo, Integer pageSize); } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java index aa49430859..661a43306a 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/screen/impl/KcScreenServiceImpl.java @@ -4,11 +4,13 @@ import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.extappauth.bean.ExternalAppRequestParam; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.constant.DataSourceConstant; +import com.epmet.datareport.dao.evaluationindex.screen.ScreenPartyUserRankDataDao; import com.epmet.datareport.dao.evaluationindex.screenkc.*; import com.epmet.datareport.service.evaluationindex.screen.KcScreenService; import com.epmet.datareport.utils.DateUtils; import com.epmet.dto.result.issue.*; import com.epmet.dto.result.project.*; +import com.epmet.dto.result.user.*; import com.epmet.evaluationindex.screen.dto.form.GroupTopicShiftIssueRatioRankFormDTO; import com.epmet.evaluationindex.screen.dto.form.GroupUserCountRankFormDTO; import com.epmet.evaluationindex.screen.dto.form.HeartVolunteerrankFormDTO; @@ -16,6 +18,7 @@ import com.epmet.evaluationindex.screen.dto.result.*; import com.epmet.evaluationindex.screen.dto.result.HomepageSummaryResultDTO; import com.epmet.dto.result.issue.KcIssueSummary; import com.epmet.dto.result.issue.KcPartiTrendResultDTO; +import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -71,6 +74,30 @@ public class KcScreenServiceImpl implements KcScreenService { @Autowired private ScreenKcProjectSummaryGridDailyDao projectSummaryGridDailyDao; + @Autowired + private ScreenKcProjectSatisGridMonthlyDao projectSatisGridMonthlyDao; + + @Autowired + private ScreenKcUserSummaryDailyDao kcUserSummaryDailyDao; + + @Autowired + private ScreenKcUserTrendGridMonthlyDao userTrendGridMonthlyDao; + + @Autowired + private ScreenPartyUserRankDataDao partyUserRankDataDao; + + @Autowired + private ScreenKcNewsSummaryDailyDao screenKcNewsSummaryDailyDao; + + @Autowired + private ScreenKcNewsTrendMonthlyDao screenKcNewsTrendMonthlyDao; + + @Autowired + private ScreenKcNewsCategoryAnalysisDao screenKcNewsCategoryAnalysisDao; + + @Autowired + private ScreenKcNewsRankDao screenKcNewsRankDao; + /** * @param externalAppRequestParam * @Description 首页-平台各类总数 @@ -162,7 +189,7 @@ public class KcScreenServiceImpl implements KcScreenService { KcPartiTrendResultDTO result = new KcPartiTrendResultDTO(); trend.stream().forEach(t -> { String month = t.getMonthId().substring(4); - result.getXAxis().add(new Integer(month).toString().concat("月")); + result.getxAxis().add(new Integer(month).toString().concat("月")); result.getReportCountDataList().add(t.getReportCount()); }); return result; @@ -319,8 +346,119 @@ public class KcScreenServiceImpl implements KcScreenService { } @Override - public ProjectSatisfaction getProjectSatisfactionAnalyze(String customerId) { + public ProjectSatisfactionResultDTO getProjectSatisfactionAnalyze(String customerId) { + List pss = projectSatisGridMonthlyDao.getProjectSatisfactionAnalyze(customerId); + + ProjectSatisfactionResultDTO resultDTO = new ProjectSatisfactionResultDTO(); + pss.stream().forEach(ps -> { + String monthNo = ps.getMonthId().substring(4); + resultDTO.getxAxis().add(new Integer(monthNo).toString().concat("月")); + resultDTO.getGreatSatisDataList().add(ps.getGreatSatis()); + resultDTO.getGoodSatisDataList().add(ps.getGoodSatis()); + resultDTO.getDisSatisDataList().add(ps.getDisSatis()); + }); + return resultDTO; + } + + @Override + public UserSummaryResultDTO getUserSummary(String customerId) { + return kcUserSummaryDailyDao.getUserSummary(customerId); + } + + @Override + public KcUserTrendResultDTO getUserTrend(String customerId) { + List userSomeNums = userTrendGridMonthlyDao.getUserTrend(customerId); + KcUserTrendResultDTO trend = new KcUserTrendResultDTO(); + userSomeNums.stream().forEach(usm -> { + String monthStr = usm.getMonthId().substring(4); + trend.getxAxis().add(new Integer(monthStr).toString().concat("月")); + trend.getUserDataList().add(usm.getRegUserCount()); + trend.getPartyUserDataList().add(usm.getPartyUserCount()); + }); + + return trend; + } + + @Override + public KcUserRankResultDTO getUserRank(String customerId) { + List list = kcUserSummaryDailyDao.getUserRank(customerId); + + KcUserRankResultDTO rank = new KcUserRankResultDTO(); + list.stream().forEach(i -> { + rank.getGridNameDataList().add(i.getGridName()); + rank.getTotalUserDataList().add(i.getViewUserCount()); + }); + + return rank; + } + + @Override + public KcUserPortrayalResultDTO getUserPortrayal(String customerId) { + KcUserPortrayalResultDTO.AgeDistribution ageDistribution = kcUserSummaryDailyDao.getAgeDistribution(customerId); + KcUserPortrayalResultDTO.GenderDistribution genderDistribution = kcUserSummaryDailyDao.getGenderDistribution(customerId); + + KcUserPortrayalResultDTO portrayal = new KcUserPortrayalResultDTO(); + portrayal.setAgeDistribution(ageDistribution); + portrayal.setGenderDistribution(genderDistribution); + + return portrayal; + } + + @Override + public KcUserPointRankResultDTO getUserPointsRank(String customerId, Integer pageNo, Integer pageSize) { + if (pageNo != null && pageSize != null) { + PageHelper.startPage(pageNo, pageSize); + } + List userPoints = partyUserRankDataDao.listUserPoints(customerId); + KcUserPointRankResultDTO rank = new KcUserPointRankResultDTO(); + userPoints.stream().forEach(p -> { + rank.getUserNameDataList().add(p.getUserName()); + rank.getPointsDataList().add(p.getPointTotal()); + }); + return rank; + } + + @Override + public ScreenKcNewsSummaryResultDTO getNewsSummary(String customerId) { + return screenKcNewsSummaryDailyDao.getNewsSummary(customerId); + } + + @Override + public ScreenKcNewsPartiTrendResultDTO getNewsPartiTrend(String customerId) { + List partyCounts = + screenKcNewsTrendMonthlyDao.getNewsPartiTrend(customerId); + + ScreenKcNewsPartiTrendResultDTO trend = new ScreenKcNewsPartiTrendResultDTO(); + partyCounts.stream().forEach(pc -> { + String monthId = pc.getMonthId(); + trend.getxAxis().add(new Integer(monthId.substring(4)).toString().concat("月")); + trend.getPartiCountDataList().add(pc.getPartiCount()); + }); - return null; + return trend; + } + + @Override + public List getNewsCountOfCategory(String customerId) { + return screenKcNewsCategoryAnalysisDao.getNewsCountOfCategory(customerId); + } + + @Override + public ScreenKcCategoryNewsRankResultDTO getNewsPartiCategoryRank(String customerId) { + List partiCounts = screenKcNewsCategoryAnalysisDao.listNewsPartiCategoryRank(customerId); + ScreenKcCategoryNewsRankResultDTO rank = new ScreenKcCategoryNewsRankResultDTO(); + partiCounts.stream().forEach(pc -> { + rank.getxAxis().add(pc.getCategoryName()); + rank.getPartiCountDataList().add(pc.getPartiCount()); + }); + return rank; + } + + @Override + public List getNewsHotRank(String customerId, Integer pageNo, Integer pageSize) { + if (pageNo != null && pageSize != null) { + PageHelper.startPage(pageNo, pageSize); + } + return screenKcNewsRankDao.getNewsHotRank(customerId); } } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml index 8d865b6341..9366bc90f7 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screen/ScreenPartyUserRankDataDao.xml @@ -35,4 +35,13 @@ ORDER BY POINT_TOTAL DESC + + \ No newline at end of file diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcIssueSummaryGridDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcIssueSummaryGridDailyDao.xml index 1c12b7c53c..57c743144f 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcIssueSummaryGridDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcIssueSummaryGridDailyDao.xml @@ -31,6 +31,7 @@ where t21.CUSTOMER_ID = #{customerId}) latest on (isd.CUSTOMER_ID = latest.customerId and isd.DATE_ID = latest.max_date_id) order by isd.ISSUE_COUNT desc + limit 7 + select pcd.CATEGORY_ID categoryId, + pcd.CATEGORY_NAME categoryName, + pcd.NEWS_COUNT newsCount + from screen_kc_news_category_analysis pcd + inner join ( + select CUSTOMER_ID, max(DATE_ID) MAX_DATE_ID + from screen_kc_news_category_analysis + where CUSTOMER_ID = #{customerId} + and DEL_FLAG = 0 + ) latest on (pcd.CUSTOMER_ID = latest.CUSTOMER_ID and pcd.DATE_ID = latest.MAX_DATE_ID) + where pcd.DEL_FLAG = 0 + order by pcd.NEWS_COUNT asc + + + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsRankDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsRankDao.xml index 49fb7817e0..ff51305086 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsRankDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsRankDao.xml @@ -3,6 +3,18 @@ - - + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsSummaryDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsSummaryDailyDao.xml index 715ce1f038..1094a408a4 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsSummaryDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsSummaryDailyDao.xml @@ -3,6 +3,20 @@ - - + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsTrendMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsTrendMonthlyDao.xml index 71d977bd38..06d6826cbb 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsTrendMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcNewsTrendMonthlyDao.xml @@ -3,6 +3,13 @@ - - + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSatisGridMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSatisGridMonthlyDao.xml index 0155931631..0727b6fbb2 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSatisGridMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSatisGridMonthlyDao.xml @@ -3,6 +3,19 @@ - - + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSummaryGridDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSummaryGridDailyDao.xml index fff84de166..7c79e5da1c 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSummaryGridDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcProjectSummaryGridDailyDao.xml @@ -36,6 +36,7 @@ ) latest on (psd.CUSTOMER_ID = latest.CUSTOMER_ID and psd.DATE_ID = latest.MAX_DATE_ID) where DEL_FLAG = 0 order by psd.PROJECT_COUNT desc + limit 7 diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserSummaryDailyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserSummaryDailyDao.xml index 7ccf73a888..5e27540bb9 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserSummaryDailyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserSummaryDailyDao.xml @@ -3,6 +3,62 @@ + + + + + diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserTrendGridMonthlyDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserTrendGridMonthlyDao.xml index 39f0f5a0fc..f86c96af36 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserTrendGridMonthlyDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/screenkc/ScreenKcUserTrendGridMonthlyDao.xml @@ -3,6 +3,15 @@ - - + diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java index 4d44af0d47..c6e24b6893 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/IndexCalculateController.java @@ -115,6 +115,7 @@ public class IndexCalculateController { /** * 指标计算 + * * @param formDTO */ private void indexCalculate(CalculateCommonFormDTO formDTO) { @@ -137,29 +138,34 @@ public class IndexCalculateController { /** * 提交异步计算 + * * @param formDTO * @return */ private void submitCalculate(CalculateCommonFormDTO formDTO) { Future future = singleThreadPool.submit(() -> { - long start = System.currentTimeMillis(); - Boolean aBoolean = indexCalculateService.indexCalculate(formDTO); - if (aBoolean) { - log.error("客户Id:{},全部指标计算完成,总耗时:{}秒", formDTO.getCustomerId(), (System.currentTimeMillis() - start) / 1000); - } + try { + long start = System.currentTimeMillis(); + Boolean aBoolean = indexCalculateService.indexCalculate(formDTO); + if (aBoolean) { + log.error("客户Id:{},全部指标计算完成,总耗时:{}秒", formDTO.getCustomerId(), (System.currentTimeMillis() - start) / 1000); + } - redisUtils.delete(RedisKeys.getCustomerStatsCalFlag(formDTO.getCustomerId())); - futureMap.remove(formDTO.getCustomerId()); + redisUtils.delete(RedisKeys.getCustomerStatsCalFlag(formDTO.getCustomerId())); + futureMap.remove(formDTO.getCustomerId()); - //测试代码 - //try { - // Thread.sleep(20000l); - // System.out.println(System.currentTimeMillis()); - //} catch (InterruptedException e) { - // e.printStackTrace(); - //} - //redisUtils.delete(RedisKeys.getCustomerStatsCalFlag(formDTO.getCustomerId())); - //futureMap.remove(formDTO.getCustomerId()); + //测试代码 + //try { + // Thread.sleep(20000l); + // System.out.println(System.currentTimeMillis()); + //} catch (InterruptedException e) { + // e.printStackTrace(); + //} + //redisUtils.delete(RedisKeys.getCustomerStatsCalFlag(formDTO.getCustomerId())); + //futureMap.remove(formDTO.getCustomerId()); + } catch (Exception e) { + log.warn("submitCalculate exception", e); + } }); futureMap.put(formDTO.getCustomerId(), future); @@ -172,6 +178,7 @@ public class IndexCalculateController { /** * 终止计算 + * * @param form * @return */ @@ -194,10 +201,14 @@ public class IndexCalculateController { @PostMapping("reAll") public Result calculateAll(@RequestBody CalculateCommonFormDTO formDTO) { long start = System.currentTimeMillis(); - Boolean aBoolean = indexCalculateService.indexCalculate(formDTO); - HttpClientManager.getInstance().sendAlarmMsg(EnvEnum.getCurrentEnv().getName() + "客户Id:" + formDTO.getCustomerId() + ",calculateAll全部指标计算完成,是否成功:" + aBoolean + ",总耗时:" + (System.currentTimeMillis() - start) / 1000 + "秒"); - if (aBoolean) { - return new Result().ok(true); + try { + Boolean aBoolean = indexCalculateService.indexCalculate(formDTO); + HttpClientManager.getInstance().sendAlarmMsg(EnvEnum.getCurrentEnv().getName() + "客户Id:" + formDTO.getCustomerId() + ",calculateAll全部指标计算完成,是否成功:" + aBoolean + ",总耗时:" + (System.currentTimeMillis() - start) / 1000 + "秒"); + if (aBoolean) { + return new Result().ok(true); + } + } catch (Exception e) { + return new Result().error(e.getMessage()); } return new Result().error("指标计算失败"); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java index 56f6c9d5b4..04e5a0027d 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java @@ -34,8 +34,8 @@ import java.util.List; @Mapper public interface ScreenCustomerAgencyDao extends BaseDao { /** - *14、组织层级 - * 1) 根据CUSTOMER_ID 进行查询,如果有数据,则先进行物理删除, 一次删除1000条 + * 14、组织层级 + * 1) 根据CUSTOMER_ID 进行查询,如果有数据,则先进行物理删除, 一次删除1000条 * * @param customerId * @return java.util.Integer @@ -46,24 +46,25 @@ public interface ScreenCustomerAgencyDao extends BaseDao list, @Param("customerId")String customerId); + void batchInsertCustomerAgency(@Param("list") List list, @Param("customerId") String customerId); /** * 返回当前客户下,未匹配到的 【社区级】 组织信息 - * @param customerId 客户id - * @param agencyIds 组织id集合 + * + * @param customerId 客户id + * @param agencyIds 组织id集合 * @return java.util.List * @Author zhangyong * @Date 14:38 2020-09-04 **/ - List selectListMismatcCommunityAgencyInfo(@Param("customerId")String customerId, @Param("agencyIds") String[] agencyIds); + List selectListMismatcCommunityAgencyInfo(@Param("customerId") String customerId, @Param("agencyIds") String[] agencyIds); /** * 根据客户id,查询区/街道 组织名称、id @@ -73,24 +74,32 @@ public interface ScreenCustomerAgencyDao extends BaseDao selectListAgencyInfo(@Param("customerId")String customerId); + List selectListAgencyInfo(@Param("customerId") String customerId); /** - * @Description 根据agencyId查询上级组织Id * @param agencyId + * @Description 根据agencyId查询上级组织Id * @author zxc * @date 2020/9/8 3:36 下午 */ - String selectPid(@Param("agencyId")String agencyId); + String selectPid(@Param("agencyId") String agencyId); /** * 返回当前客户下,未匹配到的 【乡(镇、街道)级、区县级】 组织信息 - * @param customerId 客户id - * @param agencyIds 组织id集合 + * + * @param customerId 客户id + * @param agencyIds 组织id集合 * @return java.util.List * @Author zhangyong * @Date 14:38 2020-09-04 **/ - List selectListMismatcStreetAndDistrictAgencyInfo(@Param("customerId")String customerId, @Param("agencyIds") String[] agencyIds); + List selectListMismatcStreetAndDistrictAgencyInfo(@Param("customerId") String customerId, @Param("agencyIds") String[] agencyIds); + /** + * desc:获取客户的组织条数 + * + * @param customerId + * @return + */ + int selectCountByCustomerId(@Param("customerId") String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java index 9d9cfe5739..71359d8b32 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/CpcIndexCalculateServiceImpl.java @@ -75,8 +75,8 @@ public class CpcIndexCalculateServiceImpl implements CpcIndexCalculateService { //获取指标权重 List parentIndexDetails = indexGroupDetailService.getDetailListByParentCode(formDTO.getCustomerId(), IndexCodeEnum.DANG_YUAN_XIANG_GUAN.getCode()); if (CollectionUtils.isEmpty(parentIndexDetails)) { - log.warn("cpcIndexCalculate customerId:{} have not any indexGroupDetail", formDTO.getCustomerId()); - throw new RenException("客户【党员相关】指标权重信息不存在"); + log.error("cpcIndexCalculate customerId:{} have not init index", formDTO.getCustomerId()); + throw new RenException("客户Id:" + formDTO.getCustomerId() + "【党员相关】指标权重信息不存在"); } Map indexWeightMap = parentIndexDetails.stream().collect(Collectors.toMap(IndexGroupDetailEntity::getIndexCode, o -> o)); int pageNo = NumConstant.ONE; diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java index c4fef95f7b..a2703968ec 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcal/impl/IndexCalculateServiceImpl.java @@ -6,6 +6,7 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.DataSourceConstant; +import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao; import com.epmet.dto.indexcal.CalculateCommonFormDTO; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.redis.IndexCalRedis; @@ -47,6 +48,8 @@ public class IndexCalculateServiceImpl implements IndexCalculateService { private DeptScoreService deptScoreService; @Autowired private FactIndexCollectService factIndexCollectService; + @Autowired + private ScreenCustomerAgencyDao screenCustomerAgencyDao; @Override @@ -91,6 +94,12 @@ public class IndexCalculateServiceImpl implements IndexCalculateService { Boolean flag; long start = System.currentTimeMillis(); try { + //校验是否含有组织数据 + int agencyCount = screenCustomerAgencyDao.selectCountByCustomerId(formDTO.getCustomerId()); + if (agencyCount < 1) { + log.info("客户id:{},组织结构数据缺失,请先上传后再计算", formDTO.getCustomerId()); + throw new RenException("组织结构数据缺失,请先上传后再计算"); + } //计算党员相关的 try { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java index b8efe2a1ff..786ec50233 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/support/normalizing/batch/BatchScoreCalculator.java @@ -64,6 +64,10 @@ public class BatchScoreCalculator { } else { normalizeValue = scoreCalculator.normalize(getFinalSampleValue(vo.getSampleValue(), threshold)); } + //反正切函数 [-pi/2,pi/2] + if (idx.getScoreCalculator().getMaxValue().compareTo(idx.getScoreCalculator().getMinValue()) == 0) { + normalizeValue = new BigDecimal(Math.atan(new Double(vo.getSampleValue().toString())) / Math.PI * 100).setScale(6, RoundingMode.HALF_UP); + } BigDecimal score = normalizeValue.multiply(weight).setScale(6, RoundingMode.HALF_UP); CalculateResult result = scoreCountOfSamples.get(sampleId); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml index 7963aefd4c..49ce41b17c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml @@ -128,4 +128,9 @@ + + diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java index 05a9360b47..556e4a6029 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java +++ b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/DemoScoreCal.java @@ -257,5 +257,33 @@ public class DemoScoreCal { System.err.println("-----------------2222222222---------------"); } + @Test + public void testMath() { + // 每个指标需要单独的分支计算器,因为每个指标的最大最小值是不同的 + ScoreCalculator sc1 = new BigDecimalScoreCalculator(new BigDecimal(8), new BigDecimal(8), ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.POSITIVE); + ScoreCalculator sc2 = new BigDecimalScoreCalculator(new BigDecimal(10), new BigDecimal(10), ScoreConstants.MIN_SCORE, ScoreConstants.MAX_SCORE, Correlation.POSITIVE); + + List> index1SampleValues = Arrays.asList(new SampleValue<>("id1", 4), new SampleValue<>("id2", 1), new SampleValue<>("id3", 8)); + List> index2SampleValues = Arrays.asList(new SampleValue<>("id1", 1), new SampleValue<>("id2", 8), new SampleValue<>("id3", 3)); + + // 每个指标的信息,包括样本列表,权重,指标标记 + IndexInputVO index1VO = new IndexInputVO<>("aaa", "a:bbb2", index1SampleValues, new BigDecimal(10), new BigDecimal(1), false, sc1); + IndexInputVO index2VO = new IndexInputVO<>("bbb", "a:bbb2", index2SampleValues, new BigDecimal(10), new BigDecimal(1), false, sc2); + + List indexInputVOS = Arrays.asList(index1VO, index2VO); + + BatchScoreCalculator batchScoreCalculator = new BatchScoreCalculator(); + HashMap result = batchScoreCalculator.getScoreTotalOfSampleId(indexInputVOS); + + System.err.println("--------------------------------"); + result.forEach((key, value) -> { + System.out.println(key.concat("的总得分为:") + value.getTotalScore()); + //System.out.println(JSON.toJSONString(indexInputVOS)); + value.getDetails().forEach(o -> System.out.println(JSON.toJSONString(o))); + }); + + System.err.println("--------------------------------"); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java new file mode 100644 index 0000000000..bed5fc95b7 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/test/java/com/epmet/stats/test/normalizing/MathUtilTest.java @@ -0,0 +1,17 @@ +package com.epmet.stats.test.normalizing; + +public class MathUtilTest { + public static void main(String[] args) { + double tan = Math.atan(4); + double tan2 = Math.atan(1); + double tan3 = Math.atan(8); + double tan4 = Math.atan(3); + + + System.out.println((tan / Math.PI)); + System.out.println((tan2 / Math.PI)); + System.out.println((tan3 / Math.PI)); + System.out.println((tan4 / Math.PI * 200)); + } + +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AuthorizationInfoDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AuthorizationInfoDTO.java index 394b8680bc..e540f690d7 100644 --- a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/AuthorizationInfoDTO.java +++ b/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; + /** * */ diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PersonalTemplateDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PersonalTemplateDTO.java new file mode 100644 index 0000000000..574f772896 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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; + +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PublicTemplateDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/PublicTemplateDTO.java new file mode 100644 index 0000000000..b4c8b1d7f7 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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; + +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddTemplateFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AddTemplateFormDTO.java new file mode 100644 index 0000000000..edb391eb73 --- /dev/null +++ b/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 kidList; + /** + * 关键字名称 + */ + private List nameList; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DelTemplateFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/DelTemplateFormDTO.java new file mode 100644 index 0000000000..e3cc9b4e48 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/InitFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/InitFormDTO.java new file mode 100644 index 0000000000..ab154a196a --- /dev/null +++ b/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 resiTempIdList; + /** + * 工作端需要同步的模板id数组 + */ + private List workTempIdList; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PubTemplateFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/PubTemplateFormDTO.java new file mode 100644 index 0000000000..c0431067b4 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubscribeFormDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/SubscribeFormDTO.java new file mode 100644 index 0000000000..574f64689f --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerTempResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/CustomerTempResultDTO.java new file mode 100644 index 0000000000..d75387bfb6 --- /dev/null +++ b/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 workList; + private List resiList; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/GetTemplateResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/GetTemplateResultDTO.java new file mode 100644 index 0000000000..fca432b8b7 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/KeyWordsResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/KeyWordsResultDTO.java new file mode 100644 index 0000000000..7291a415c0 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PubTemplateResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/PubTemplateResultDTO.java new file mode 100644 index 0000000000..ae28b3bfb0 --- /dev/null +++ b/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 keywords; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/SubscribeCategoryResultDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/SubscribeCategoryResultDTO.java new file mode 100644 index 0000000000..057394c552 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDTO.java b/epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/TemplateDTO.java new file mode 100644 index 0000000000..0229316e01 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SubscribeController.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/SubscribeController.java new file mode 100644 index 0000000000..47d3b6d653 --- /dev/null +++ b/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> getCategory(@RequestBody SubscribeFormDTO formDTO) { + List result = subscribeService.getCategory(formDTO); + return new Result>().ok(result); + } + + + /** + * 获取模板标题列表 + * + * @param formDTO + * @return com.epmet.dto.result.PubTemplateResultDTO + * @author zhaoqifeng + * @date 2020/9/9 15:00 + */ + @PostMapping("getpubtemplatetitles") + public Result getPubTemplateTitles(@RequestBody PubTemplateFormDTO formDTO) { + PageData result = subscribeService.getPubTemplateTitles(formDTO); + return new Result().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> getKeyWords(@RequestBody SubscribeFormDTO formDTO) { + List result = subscribeService.getKeyWords(formDTO); + return new Result>().ok(result); + } + + /** + * 获取帐号下的模板列表 + * + * @param formDTO + * @return com.epmet.dto.result.GetTemplateResultDTO + * @author zhaoqifeng + * @date 2020/9/9 15:12 + */ + @PostMapping("gettemplate") + public Result> getTemplate(@RequestBody SubscribeFormDTO formDTO) { + List result = subscribeService.getTemplate(formDTO); + return new Result>().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 getCustomerTemplate(@RequestBody InitFormDTO formDTO) { + CustomerTempResultDTO result = subscribeService.getCustomerTemplate(formDTO); + return new Result().ok(result); + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java index 882a091b1b..ccd9802432 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/AuthorizationInfoDao.java @@ -118,4 +118,13 @@ public interface AuthorizationInfoDao extends BaseDao { * @date 2020.08.25 15:24 **/ List 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); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java index 573ad48cf3..ac24fb4ac2 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PaCustomerDao.java @@ -120,4 +120,13 @@ public interface PaCustomerDao extends BaseDao { * @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 + */ + List selectCustomerListByTestId(@Param("customerId") String customerId); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PersonalTemplateDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PersonalTemplateDao.java new file mode 100644 index 0000000000..bd77f6ffea --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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 { + /** + * 获取个人模板列表 + * + * @param pid + * @return java.util.List + * @author zhaoqifeng + * @date 2020/9/9 17:56 + */ + List selectListByPid(@Param("pid") String pid); + + /** + * 根据AppID获取模板列表 + * + * @param appId + * @return java.util.List + * @author zhaoqifeng + * @date 2020/9/10 10:49 + */ + List 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 + * @author zhaoqifeng + * @date 2020/9/11 14:35 + */ + List selectListByCustomerId(@Param("appId") String appId, @Param("customerId") String customerId, + @Param("clientType") String clientType); +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PublicTemplateDao.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/PublicTemplateDao.java new file mode 100644 index 0000000000..b51596e20e --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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 { + + /** + * 根据类目Id删除模板 + * @author zhaoqifeng + * @date 2020/9/11 16:22 + * @param list + * @return void + */ + void deleteTempByCategoryId(List list); + + /** + * 获取公共模板列表 + * @author zhaoqifeng + * @date 2020/9/11 16:57 + * @param dto + * @return java.util.List + */ + List getPubTempList(PubTemplateFormDTO dto); + +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PersonalTemplateEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PersonalTemplateEntity.java new file mode 100644 index 0000000000..022c2982a5 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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; + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PublicTemplateEntity.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/PublicTemplateEntity.java new file mode 100644 index 0000000000..62cac50b92 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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; + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java index a1b30bd255..ecdf6cfe25 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java +++ b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PaCustomerService.java @@ -233,4 +233,13 @@ public interface PaCustomerService extends BaseService { * @date 2020.08.25 15:46 **/ void clearPublicCustomer(CommonCustomerIdAndSrcFormDTO param); + + /** + * 根据测试号查询同源的客户列表 + * @author zhaoqifeng + * @date 2020/9/9 17:32 + * @param customerId + * @return java.util.List + */ + List getCustomerListByTestId(String customerId); } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PersonalTemplateService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PersonalTemplateService.java new file mode 100644 index 0000000000..447e6dd388 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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 { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-09-09 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-09-09 + */ + List list(Map 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 + * @author zhaoqifeng + * @date 2020/9/9 17:59 + */ + List getListByPid(String pid); + + /** + * 根据AppID获取模板列表 + * + * @param appId + * @return java.util.List + * @author zhaoqifeng + * @date 2020/9/10 10:48 + */ + List getListByAppId(String appId); + + /** + * 根据客户Id获取模板列表 + * + * @param appId + * @param customerId + * @param clientType + * @return java.util.List + * @author zhaoqifeng + * @date 2020/9/11 14:43 + */ + List getListByCustomer(String appId, String customerId, String clientType); +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PublicTemplateService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/PublicTemplateService.java new file mode 100644 index 0000000000..25ed0174ec --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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 { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-09-11 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-09-11 + */ + List list(Map 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 categoryIds); + + /** + * 获取公共模板列表 + * @author zhaoqifeng + * @date 2020/9/11 17:01 + * @param dto + * @return java.util.List + */ + List getPubTempList(PubTemplateFormDTO dto); +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SubscribeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/SubscribeService.java new file mode 100644 index 0000000000..c56d17487a --- /dev/null +++ b/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 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 getKeyWords(SubscribeFormDTO formDTO); + + /** + * 获取帐号下的模板列表 + * + * @param formDTO + * @return com.epmet.dto.result.GetTemplateResultDTO + * @author zhaoqifeng + * @date 2020/9/9 15:12 + */ + List 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); + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java index 9a5640f22d..f0526f95b9 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java +++ b/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 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 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) { diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java index 5b683027b5..11dd6bad81 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PaCustomerServiceImpl.java +++ b/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 getCustomerListByTestId(String customerId) { + return baseDao.selectCustomerListByTestId(customerId); + } + } \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PersonalTemplateServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PersonalTemplateServiceImpl.java new file mode 100644 index 0000000000..f7b5589f43 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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 implements PersonalTemplateService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, PersonalTemplateDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, PersonalTemplateDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper 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 getListByPid(String pid) { + return baseDao.selectListByPid(pid); + } + + @Override + public List getListByAppId(String appId) { + return baseDao.selectListByAppId(appId); + } + + @Override + public List getListByCustomer(String appId, String customerId, String clientType) { + return baseDao.selectListByCustomerId(appId, customerId, clientType); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PublicTemplateServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/PublicTemplateServiceImpl.java new file mode 100644 index 0000000000..d59297f700 --- /dev/null +++ b/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 + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.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 implements PublicTemplateService { + + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, PublicTemplateDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, PublicTemplateDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper 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 categoryIds) { + baseDao.deleteTempByCategoryId(categoryIds); + } + + @Override + public List getPubTempList(PubTemplateFormDTO formDTO) { + return baseDao.getPubTempList(formDTO); + } + +} \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SubscribeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/SubscribeServiceImpl.java new file mode 100644 index 0000000000..1521aa508a --- /dev/null +++ b/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 getCategory(SubscribeFormDTO formDTO) { + AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId()); + WxGetCategoryResult wxResult = getCategoryResult(authInfo.getAuthorizerAccessToken()); + + List 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 list = publicTemplateService.getPubTempList(formDTO); + PageInfo 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 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 wxResult = wxMaSubscribeService.getPubTemplateTitles(authInfo.getAuthorizerAccessToken(), request); + if (!wxResult.success()) { + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + Integer total = wxResult.getData().getCount(); + List 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 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 getKeyWords(SubscribeFormDTO formDTO) { + AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId()); + WxKeyWordsResult keyWordsResult = getTitleKeyWords(authInfo.getAuthorizerAccessToken(), formDTO.getTitleId()); + List 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 getTemplate(SubscribeFormDTO formDTO) { + AuthorizationInfoDTO authInfo = authorizationInfoDao.selectInfoByAppId(formDTO.getAppId()); + List list = personalTemplateService.getListByAppId(formDTO.getAppId()); + WxResult wxResult = wxMaSubscribeService.getTemplate(authInfo.getAuthorizerAccessToken()); + if (!wxResult.success()) { + throw new RenException(wxResult.getErrorCode(), wxResult.getErrorMsg()); + } + + List 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 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 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 customerList = paCustomerService.getCustomerListByTestId(authInfo.getCustomerId()); + List 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 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 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 keyIds = Arrays.asList(templateDTO.getKeyIds().split(",")); + List 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 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 keyIds = Arrays.asList(templateDTO.getKeyIds().split(",")); + List 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 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 wxResiResult = wxMaSubscribeService.getTemplate(resiAuthDTO.getAuthorizerAccessToken()); + if (!wxResiResult.success()) { + throw new RenException(wxResiResult.getErrorCode(), wxResiResult.getErrorMsg()); + } + List resiPubTmplIds = + wxResiResult.getData().getData().stream().map(WxGetTemplateResult.DataBean::getPriTmplId).collect(Collectors.toList()); + List resiList = personalTemplateService.getListByCustomer(formDTO.getResiAppId(), formDTO.getCustomerId(), "resi"); + List resiTmplIds = resiList.stream().map(TemplateDTO::getTmplId).collect(Collectors.toList()); + List 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 wxWorkResult = wxMaSubscribeService.getTemplate(workAuthDTO.getAuthorizerAccessToken()); + if (!wxWorkResult.success()) { + throw new RenException(wxWorkResult.getErrorCode(), wxWorkResult.getErrorMsg()); + } + List workPubTmplIds = + wxWorkResult.getData().getData().stream().map(WxGetTemplateResult.DataBean::getPriTmplId).collect(Collectors.toList()); + List workList = personalTemplateService.getListByCustomer(formDTO.getWorkAppId(), formDTO.getCustomerId(), "work"); + List workTmplIds = workList.stream().map(TemplateDTO::getTmplId).collect(Collectors.toList()); + List 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 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 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 resiList = personalTemplateService.getListByAppId(formDTO.getResiAppId()); + if (null != resiList && resiList.size() > 0) { + resiList.forEach(templateDTO -> { + List keyIds = Arrays.asList(templateDTO.getKeyIds().split(",")); + List 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 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 workList = personalTemplateService.getListByAppId(formDTO.getWorkAppId()); + if (null != workList && workList.size() > 0) { + workList.forEach(templateDTO -> { + List keyIds = Arrays.asList(templateDTO.getKeyIds().split(",")); + List 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 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); + }); + } + } + +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxSubscribeConstant.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxSubscribeConstant.java new file mode 100644 index 0000000000..e0c27129b5 --- /dev/null +++ b/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"; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java index 23e1077e7c..29e341df7a 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/enums/WxMaErrorMsgEnum.java +++ b/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; diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddTemplateReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxAddTemplateReq.java new file mode 100644 index 0000000000..ae083f7702 --- /dev/null +++ b/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 kidList; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDelTemplateReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxDelTemplateReq.java new file mode 100644 index 0000000000..4bb8be5958 --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxExtJson.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxExtJson.java index 4ba45e37cf..6a22908d9b 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxExtJson.java +++ b/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; + } + } diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxSubTemplateReq.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/param/WxSubTemplateReq.java new file mode 100644 index 0000000000..48ac4c482e --- /dev/null +++ b/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; +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetCategoryResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetCategoryResult.java new file mode 100644 index 0000000000..085b9e3a1d --- /dev/null +++ b/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 data; + + @NoArgsConstructor + @Data + public static class DataBean { + /** + * id : 616 + */ + private Integer id; + private String name; + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetTemplateResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxGetTemplateResult.java new file mode 100644 index 0000000000..c6a4101ea7 --- /dev/null +++ b/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 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; + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxKeyWordsResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxKeyWordsResult.java new file mode 100644 index 0000000000..fca92e0b42 --- /dev/null +++ b/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 data; + + @NoArgsConstructor + @Data + public static class DataBean { + /** + * 关键词 id + */ + private Integer kid; + /** + * 关键词内容 + */ + private String name; + /** + * 关键词内容对应的示例 + */ + private String example; + /** + * 参数类型 + */ + private String rule; + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxSubTemplateResult.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/result/WxSubTemplateResult.java new file mode 100644 index 0000000000..db5989187e --- /dev/null +++ b/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 data; + + @NoArgsConstructor + @Data + public static class DataBean { + /** + * 模板标题 id + */ + private Integer tid; + /** + * 模板标题 + */ + private String title; + /** + * 模板类型,2 为一次性订阅,3 为长期订阅 + */ + private Integer type; + /** + * 模板所属类目 id + */ + private String categoryId; + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSubscribeService.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaSubscribeService.java new file mode 100644 index 0000000000..6f426b0c0e --- /dev/null +++ b/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 + * @author zhaoqifeng + * @date 2020/9/8 16:06 + */ + WxResult getCategory(String accessToken); + + /** + * 获取模板标题列表 + * + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxSubTemplateResult + * @author zhaoqifeng + * @date 2020/9/8 16:34 + */ + WxResult getPubTemplateTitles(String accessToken, WxSubTemplateReq request); + + /** + * 获取模板标题下的关键词库 + * + * @param accessToken + * @param tId + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/9/8 16:45 + */ + WxResult getPubTemplateKeywords(String accessToken, String tId); + + /** + * 组合模板并添加到个人模板库 + * + * @param accessToken + * @param request + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/9/9 9:35 + */ + WxResult addTemplate(String accessToken, WxAddTemplateReq request); + + /** + * 获取帐号下的模板列表 + * + * @param accessToken + * @return com.epmet.wxapi.result.WxResult + * @author zhaoqifeng + * @date 2020/9/9 9:42 + */ + WxResult 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); +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSubscribeServiceImpl.java b/epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaSubscribeServiceImpl.java new file mode 100644 index 0000000000..6826f70fd2 --- /dev/null +++ b/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 getCategory(String accessToken) { + WxResult result = new WxResult<>(); + String url = WxSubscribeConstant.GET_CATEGORY_URL + "?" + "access_token=" + accessToken; + + Result 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 getPubTemplateTitles(String accessToken, WxSubTemplateReq request) { + WxResult result = new WxResult<>(); + String url = WxSubscribeConstant.GET_PUB_TEMPLATE_TITLES_URL + "?" + "access_token=" + accessToken + "&ids=" + request.getIds() + + "&start=" + request.getStart() + "&limit=" + request.getLimit(); + + Result 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 getPubTemplateKeywords(String accessToken, String tId) { + WxResult result = new WxResult<>(); + String url = WxSubscribeConstant.GET_KEY_WORDS_URL + "?" + "access_token=" + accessToken + "&tid=" + tId; + + Result 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 addTemplate(String accessToken, WxAddTemplateReq request) { + WxResult result = new WxResult<>(); + String url = WxSubscribeConstant.ADD_TEMPLATE_URL + "?" + "access_token=" + accessToken; + + Result 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 getTemplate(String accessToken) { + WxResult result = new WxResult<>(); + String url = WxSubscribeConstant.GET_TEMPLATE_URL + "?" + "access_token=" + accessToken; + + Result 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 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); + } +} diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.10__thirdUpdate.sql b/epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.10__thirdUpdate.sql new file mode 100644 index 0000000000..ebf69013cf --- /dev/null +++ b/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; \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml index 77e38472e8..f2cbc173f7 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/AuthorizationInfoDao.xml @@ -132,5 +132,16 @@ DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml index 11d1b50262..9926104565 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PaCustomerDao.xml @@ -196,4 +196,16 @@ AND SOURCE = #{source} + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PersonalTemplateDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PersonalTemplateDao.xml new file mode 100644 index 0000000000..f3b46b3c42 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PersonalTemplateDao.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PublicTemplateDao.xml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PublicTemplateDao.xml new file mode 100644 index 0000000000..a1baf39ef4 --- /dev/null +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/PublicTemplateDao.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + DELETE FROM public_template WHERE 1=1 + + CATEGORY_ID = #{item} + + + + + + \ No newline at end of file