Commit 48bea21a46067daa1c35ddff7a57f98661e00527

Authored by YunaiV
1 parent 3cf85753

mp:清理冗余代码

Showing 37 changed files with 149 additions and 1518 deletions
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/builder/AbstractBuilder.java deleted
1 -package cn.iocoder.yudao.module.mp.builder;  
2 -  
3 -import me.chanjar.weixin.mp.api.WxMpService;  
4 -import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;  
5 -import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;  
6 -import org.slf4j.Logger;  
7 -import org.slf4j.LoggerFactory;  
8 -  
9 -// TODO @亚洲:看看是不是可以使用 convert 来做,更符合项目  
10 -public abstract class AbstractBuilder {  
11 - protected final Logger logger = LoggerFactory.getLogger(getClass());  
12 -  
13 - public abstract WxMpXmlOutMessage build(String content,  
14 - WxMpXmlMessage wxMessage, WxMpService service);  
15 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/builder/ImageBuilder.java deleted
1 -package cn.iocoder.yudao.module.mp.builder;  
2 -  
3 -import me.chanjar.weixin.mp.api.WxMpService;  
4 -import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;  
5 -import me.chanjar.weixin.mp.bean.message.WxMpXmlOutImageMessage;  
6 -import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;  
7 -  
8 -public class ImageBuilder extends AbstractBuilder {  
9 -  
10 - @Override  
11 - public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,  
12 - WxMpService service) {  
13 -  
14 - WxMpXmlOutImageMessage m = WxMpXmlOutMessage.IMAGE().mediaId(content)  
15 - .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())  
16 - .build();  
17 -  
18 - return m;  
19 - }  
20 -  
21 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/builder/TextBuilder.java deleted
1 -package cn.iocoder.yudao.module.mp.builder;  
2 -  
3 -import me.chanjar.weixin.mp.api.WxMpService;  
4 -import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;  
5 -import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;  
6 -import me.chanjar.weixin.mp.bean.message.WxMpXmlOutTextMessage;  
7 -  
8 -public class TextBuilder extends AbstractBuilder {  
9 -  
10 - @Override  
11 - public WxMpXmlOutMessage build(String content, WxMpXmlMessage wxMessage,  
12 - WxMpService service) {  
13 - WxMpXmlOutTextMessage m = WxMpXmlOutMessage.TEXT().content(content)  
14 - .fromUser(wxMessage.getToUser()).toUser(wxMessage.getFromUser())  
15 - .build();  
16 - return m;  
17 - }  
18 -  
19 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/WxNewsArticleItemController.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem;  
2 -  
3 -import org.springframework.web.bind.annotation.*;  
4 -  
5 -import javax.annotation.Resource;  
6 -  
7 -import org.springframework.validation.annotation.Validated;  
8 -import org.springframework.security.access.prepost.PreAuthorize;  
9 -import io.swagger.annotations.*;  
10 -  
11 -import javax.validation.*;  
12 -import javax.servlet.http.*;  
13 -import java.util.*;  
14 -import java.io.IOException;  
15 -  
16 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
17 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
20 -  
21 -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;  
22 -  
23 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
24 -  
25 -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;  
26 -  
27 -import cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo.*;  
28 -import cn.iocoder.yudao.module.mp.dal.dataobject.newsarticleitem.WxNewsArticleItemDO;  
29 -import cn.iocoder.yudao.module.mp.convert.newsarticleitem.WxNewsArticleItemConvert;  
30 -import cn.iocoder.yudao.module.mp.service.newsarticleitem.WxNewsArticleItemService;  
31 -  
32 -@Api(tags = "管理后台 - 图文消息文章列表表 ")  
33 -@RestController  
34 -@RequestMapping("/wechatMp/wx-news-article-item")  
35 -@Validated  
36 -public class WxNewsArticleItemController {  
37 -  
38 - @Resource  
39 - private WxNewsArticleItemService wxNewsArticleItemService;  
40 -  
41 - @PostMapping("/create")  
42 - @ApiOperation("创建图文消息文章列表表 ")  
43 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:create')")  
44 - public CommonResult<Integer> createWxNewsArticleItem(@Valid @RequestBody WxNewsArticleItemCreateReqVO createReqVO) {  
45 - return success(wxNewsArticleItemService.createWxNewsArticleItem(createReqVO));  
46 - }  
47 -  
48 - @PutMapping("/update")  
49 - @ApiOperation("更新图文消息文章列表表 ")  
50 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:update')")  
51 - public CommonResult<Boolean> updateWxNewsArticleItem(@Valid @RequestBody WxNewsArticleItemUpdateReqVO updateReqVO) {  
52 - wxNewsArticleItemService.updateWxNewsArticleItem(updateReqVO);  
53 - return success(true);  
54 - }  
55 -  
56 - @DeleteMapping("/delete")  
57 - @ApiOperation("删除图文消息文章列表表 ")  
58 - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Integer.class)  
59 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:delete')")  
60 - public CommonResult<Boolean> deleteWxNewsArticleItem(@RequestParam("id") Integer id) {  
61 - wxNewsArticleItemService.deleteWxNewsArticleItem(id);  
62 - return success(true);  
63 - }  
64 -  
65 - @GetMapping("/get")  
66 - @ApiOperation("获得图文消息文章列表表 ")  
67 - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Integer.class)  
68 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:query')")  
69 - public CommonResult<WxNewsArticleItemRespVO> getWxNewsArticleItem(@RequestParam("id") Integer id) {  
70 - WxNewsArticleItemDO wxNewsArticleItem = wxNewsArticleItemService.getWxNewsArticleItem(id);  
71 - return success(WxNewsArticleItemConvert.INSTANCE.convert(wxNewsArticleItem));  
72 - }  
73 -  
74 - @GetMapping("/list")  
75 - @ApiOperation("获得图文消息文章列表表 列表")  
76 - @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)  
77 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:query')")  
78 - public CommonResult<List<WxNewsArticleItemRespVO>> getWxNewsArticleItemList(@RequestParam("ids") Collection<Integer> ids) {  
79 - List<WxNewsArticleItemDO> list = wxNewsArticleItemService.getWxNewsArticleItemList(ids);  
80 - return success(WxNewsArticleItemConvert.INSTANCE.convertList(list));  
81 - }  
82 -  
83 - @GetMapping("/page")  
84 - @ApiOperation("获得图文消息文章列表表 分页")  
85 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:query')")  
86 - public CommonResult<PageResult<WxNewsArticleItemRespVO>> getWxNewsArticleItemPage(@Valid WxNewsArticleItemPageReqVO pageVO) {  
87 - PageResult<WxNewsArticleItemDO> pageResult = wxNewsArticleItemService.getWxNewsArticleItemPage(pageVO);  
88 - return success(WxNewsArticleItemConvert.INSTANCE.convertPage(pageResult));  
89 - }  
90 -  
91 - @GetMapping("/export-excel")  
92 - @ApiOperation("导出图文消息文章列表表 Excel")  
93 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-article-item:export')")  
94 - @OperateLog(type = EXPORT)  
95 - public void exportWxNewsArticleItemExcel(@Valid WxNewsArticleItemExportReqVO exportReqVO,  
96 - HttpServletResponse response) throws IOException {  
97 - List<WxNewsArticleItemDO> list = wxNewsArticleItemService.getWxNewsArticleItemList(exportReqVO);  
98 - // 导出 Excel  
99 - List<WxNewsArticleItemExcelVO> datas = WxNewsArticleItemConvert.INSTANCE.convertList02(list);  
100 - ExcelUtils.write(response, "图文消息文章列表表 .xls", "数据", WxNewsArticleItemExcelVO.class, datas);  
101 - }  
102 -  
103 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemBaseVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -import io.swagger.annotations.*;  
5 -  
6 -/**  
7 - * 图文消息文章列表表 Base VO,提供给添加、修改、详细的子 VO 使用  
8 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成  
9 - */  
10 -@Data  
11 -public class WxNewsArticleItemBaseVO {  
12 -  
13 - @ApiModelProperty(value = "标题")  
14 - private String title;  
15 -  
16 - @ApiModelProperty(value = "摘要")  
17 - private String digest;  
18 -  
19 - @ApiModelProperty(value = "作者")  
20 - private String author;  
21 -  
22 - @ApiModelProperty(value = "是否展示封面图片(0/1)")  
23 - private String showCoverPic;  
24 -  
25 - @ApiModelProperty(value = "上传微信,封面图片标识")  
26 - private String thumbMediaId;  
27 -  
28 - @ApiModelProperty(value = "内容")  
29 - private String content;  
30 -  
31 - @ApiModelProperty(value = "内容链接")  
32 - private String contentSourceUrl;  
33 -  
34 - @ApiModelProperty(value = "文章排序")  
35 - private Integer orderNo;  
36 -  
37 - @ApiModelProperty(value = "图片路径")  
38 - private String picPath;  
39 -  
40 - @ApiModelProperty(value = "是否可以留言")  
41 - private String needOpenComment;  
42 -  
43 - @ApiModelProperty(value = "是否仅粉丝可以留言")  
44 - private String onlyFansCanComment;  
45 -  
46 - @ApiModelProperty(value = "图文ID")  
47 - private String newsId;  
48 -  
49 - @ApiModelProperty(value = "微信账号ID")  
50 - private String wxAccountId;  
51 -  
52 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemCreateReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -import io.swagger.annotations.*;  
5 -  
6 -@ApiModel("管理后台 - 图文消息文章列表表 创建 Request VO")  
7 -@Data  
8 -@EqualsAndHashCode(callSuper = true)  
9 -@ToString(callSuper = true)  
10 -public class WxNewsArticleItemCreateReqVO extends WxNewsArticleItemBaseVO {  
11 -  
12 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemExcelVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import com.alibaba.excel.annotation.ExcelProperty;  
8 -  
9 -/**  
10 - * 图文消息文章列表表 Excel VO  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -@Data  
15 -public class WxNewsArticleItemExcelVO {  
16 -  
17 - @ExcelProperty("主键")  
18 - private Integer id;  
19 -  
20 - @ExcelProperty("标题")  
21 - private String title;  
22 -  
23 - @ExcelProperty("摘要")  
24 - private String digest;  
25 -  
26 - @ExcelProperty("作者")  
27 - private String author;  
28 -  
29 - @ExcelProperty("是否展示封面图片(0/1)")  
30 - private String showCoverPic;  
31 -  
32 - @ExcelProperty("上传微信,封面图片标识")  
33 - private String thumbMediaId;  
34 -  
35 - @ExcelProperty("内容")  
36 - private String content;  
37 -  
38 - @ExcelProperty("内容链接")  
39 - private String contentSourceUrl;  
40 -  
41 - @ExcelProperty("文章排序")  
42 - private Integer orderNo;  
43 -  
44 - @ExcelProperty("图片路径")  
45 - private String picPath;  
46 -  
47 - @ExcelProperty("是否可以留言")  
48 - private String needOpenComment;  
49 -  
50 - @ExcelProperty("是否仅粉丝可以留言")  
51 - private String onlyFansCanComment;  
52 -  
53 - @ExcelProperty("图文ID")  
54 - private String newsId;  
55 -  
56 - @ExcelProperty("微信账号ID")  
57 - private String wxAccountId;  
58 -  
59 - @ExcelProperty("创建时间")  
60 - private Date createTime;  
61 -  
62 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemExportReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import io.swagger.annotations.*;  
8 -import org.springframework.format.annotation.DateTimeFormat;  
9 -  
10 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
11 -  
12 -@ApiModel(value = "管理后台 - 图文消息文章列表表 Excel 导出 Request VO", description = "参数和 WxNewsArticleItemPageReqVO 是一致的")  
13 -@Data  
14 -public class WxNewsArticleItemExportReqVO {  
15 -  
16 - @ApiModelProperty(value = "标题")  
17 - private String title;  
18 -  
19 - @ApiModelProperty(value = "摘要")  
20 - private String digest;  
21 -  
22 - @ApiModelProperty(value = "作者")  
23 - private String author;  
24 -  
25 - @ApiModelProperty(value = "是否展示封面图片(0/1)")  
26 - private String showCoverPic;  
27 -  
28 - @ApiModelProperty(value = "上传微信,封面图片标识")  
29 - private String thumbMediaId;  
30 -  
31 - @ApiModelProperty(value = "内容")  
32 - private String content;  
33 -  
34 - @ApiModelProperty(value = "内容链接")  
35 - private String contentSourceUrl;  
36 -  
37 - @ApiModelProperty(value = "文章排序")  
38 - private Integer orderNo;  
39 -  
40 - @ApiModelProperty(value = "图片路径")  
41 - private String picPath;  
42 -  
43 - @ApiModelProperty(value = "是否可以留言")  
44 - private String needOpenComment;  
45 -  
46 - @ApiModelProperty(value = "是否仅粉丝可以留言")  
47 - private String onlyFansCanComment;  
48 -  
49 - @ApiModelProperty(value = "图文ID")  
50 - private String newsId;  
51 -  
52 - @ApiModelProperty(value = "微信账号ID")  
53 - private String wxAccountId;  
54 -  
55 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
56 - @ApiModelProperty(value = "开始创建时间")  
57 - private Date beginCreateTime;  
58 -  
59 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
60 - @ApiModelProperty(value = "结束创建时间")  
61 - private Date endCreateTime;  
62 -  
63 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemPageReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import io.swagger.annotations.*;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
9 -import org.springframework.format.annotation.DateTimeFormat;  
10 -  
11 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
12 -  
13 -@ApiModel("管理后台 - 图文消息文章列表表 分页 Request VO")  
14 -@Data  
15 -@EqualsAndHashCode(callSuper = true)  
16 -@ToString(callSuper = true)  
17 -public class WxNewsArticleItemPageReqVO extends PageParam {  
18 -  
19 - @ApiModelProperty(value = "标题")  
20 - private String title;  
21 -  
22 - @ApiModelProperty(value = "摘要")  
23 - private String digest;  
24 -  
25 - @ApiModelProperty(value = "作者")  
26 - private String author;  
27 -  
28 - @ApiModelProperty(value = "是否展示封面图片(0/1)")  
29 - private String showCoverPic;  
30 -  
31 - @ApiModelProperty(value = "上传微信,封面图片标识")  
32 - private String thumbMediaId;  
33 -  
34 - @ApiModelProperty(value = "内容")  
35 - private String content;  
36 -  
37 - @ApiModelProperty(value = "内容链接")  
38 - private String contentSourceUrl;  
39 -  
40 - @ApiModelProperty(value = "文章排序")  
41 - private Integer orderNo;  
42 -  
43 - @ApiModelProperty(value = "图片路径")  
44 - private String picPath;  
45 -  
46 - @ApiModelProperty(value = "是否可以留言")  
47 - private String needOpenComment;  
48 -  
49 - @ApiModelProperty(value = "是否仅粉丝可以留言")  
50 - private String onlyFansCanComment;  
51 -  
52 - @ApiModelProperty(value = "图文ID")  
53 - private String newsId;  
54 -  
55 - @ApiModelProperty(value = "微信账号ID")  
56 - private String wxAccountId;  
57 -  
58 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
59 - @ApiModelProperty(value = "开始创建时间")  
60 - private Date beginCreateTime;  
61 -  
62 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
63 - @ApiModelProperty(value = "结束创建时间")  
64 - private Date endCreateTime;  
65 -  
66 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemRespVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import io.swagger.annotations.*;  
8 -  
9 -@ApiModel("管理后台 - 图文消息文章列表表 Response VO")  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -@ToString(callSuper = true)  
13 -public class WxNewsArticleItemRespVO extends WxNewsArticleItemBaseVO {  
14 -  
15 - @ApiModelProperty(value = "主键", required = true)  
16 - private Integer id;  
17 -  
18 - @ApiModelProperty(value = "创建时间", required = true)  
19 - private Date createTime;  
20 -  
21 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newsarticleitem/vo/WxNewsArticleItemUpdateReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo;  
2 -  
3 -import lombok.*;  
4 -import io.swagger.annotations.*;  
5 -  
6 -import javax.validation.constraints.*;  
7 -  
8 -@ApiModel("管理后台 - 图文消息文章列表表 更新 Request VO")  
9 -@Data  
10 -@EqualsAndHashCode(callSuper = true)  
11 -@ToString(callSuper = true)  
12 -public class WxNewsArticleItemUpdateReqVO extends WxNewsArticleItemBaseVO {  
13 -  
14 - @ApiModelProperty(value = "主键", required = true)  
15 - @NotNull(message = "主键不能为空")  
16 - private Integer id;  
17 -  
18 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/WxNewsTemplateController.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate;  
2 -  
3 -import org.springframework.web.bind.annotation.*;  
4 -  
5 -import javax.annotation.Resource;  
6 -  
7 -import org.springframework.validation.annotation.Validated;  
8 -import org.springframework.security.access.prepost.PreAuthorize;  
9 -import io.swagger.annotations.*;  
10 -  
11 -import javax.validation.*;  
12 -import javax.servlet.http.*;  
13 -import java.util.*;  
14 -import java.io.IOException;  
15 -  
16 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
17 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
18 -  
19 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
20 -  
21 -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;  
22 -  
23 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
24 -  
25 -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;  
26 -  
27 -import cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo.*;  
28 -import cn.iocoder.yudao.module.mp.dal.dataobject.newstemplate.WxNewsTemplateDO;  
29 -import cn.iocoder.yudao.module.mp.convert.newstemplate.WxNewsTemplateConvert;  
30 -import cn.iocoder.yudao.module.mp.service.newstemplate.WxNewsTemplateService;  
31 -  
32 -@Api(tags = "管理后台 - 图文消息模板")  
33 -@RestController  
34 -@RequestMapping("/wechatMp/wx-news-template")  
35 -@Validated  
36 -public class WxNewsTemplateController {  
37 -  
38 - @Resource  
39 - private WxNewsTemplateService wxNewsTemplateService;  
40 -  
41 - @PostMapping("/create")  
42 - @ApiOperation("创建图文消息模板")  
43 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:create')")  
44 - public CommonResult<Integer> createWxNewsTemplate(@Valid @RequestBody WxNewsTemplateCreateReqVO createReqVO) {  
45 - return success(wxNewsTemplateService.createWxNewsTemplate(createReqVO));  
46 - }  
47 -  
48 - @PutMapping("/update")  
49 - @ApiOperation("更新图文消息模板")  
50 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:update')")  
51 - public CommonResult<Boolean> updateWxNewsTemplate(@Valid @RequestBody WxNewsTemplateUpdateReqVO updateReqVO) {  
52 - wxNewsTemplateService.updateWxNewsTemplate(updateReqVO);  
53 - return success(true);  
54 - }  
55 -  
56 - @DeleteMapping("/delete")  
57 - @ApiOperation("删除图文消息模板")  
58 - @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Integer.class)  
59 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:delete')")  
60 - public CommonResult<Boolean> deleteWxNewsTemplate(@RequestParam("id") Integer id) {  
61 - wxNewsTemplateService.deleteWxNewsTemplate(id);  
62 - return success(true);  
63 - }  
64 -  
65 - @GetMapping("/get")  
66 - @ApiOperation("获得图文消息模板")  
67 - @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Integer.class)  
68 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:query')")  
69 - public CommonResult<WxNewsTemplateRespVO> getWxNewsTemplate(@RequestParam("id") Integer id) {  
70 - WxNewsTemplateDO wxNewsTemplate = wxNewsTemplateService.getWxNewsTemplate(id);  
71 - return success(WxNewsTemplateConvert.INSTANCE.convert(wxNewsTemplate));  
72 - }  
73 -  
74 - @GetMapping("/list")  
75 - @ApiOperation("获得图文消息模板列表")  
76 - @ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)  
77 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:query')")  
78 - public CommonResult<List<WxNewsTemplateRespVO>> getWxNewsTemplateList(@RequestParam("ids") Collection<Integer> ids) {  
79 - List<WxNewsTemplateDO> list = wxNewsTemplateService.getWxNewsTemplateList(ids);  
80 - return success(WxNewsTemplateConvert.INSTANCE.convertList(list));  
81 - }  
82 -  
83 - @GetMapping("/page")  
84 - @ApiOperation("获得图文消息模板分页")  
85 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:query')")  
86 - public CommonResult<PageResult<WxNewsTemplateRespVO>> getWxNewsTemplatePage(@Valid WxNewsTemplatePageReqVO pageVO) {  
87 - PageResult<WxNewsTemplateDO> pageResult = wxNewsTemplateService.getWxNewsTemplatePage(pageVO);  
88 - return success(WxNewsTemplateConvert.INSTANCE.convertPage(pageResult));  
89 - }  
90 -  
91 - @GetMapping("/export-excel")  
92 - @ApiOperation("导出图文消息模板 Excel")  
93 - @PreAuthorize("@ss.hasPermission('wechatMp:wx-news-template:export')")  
94 - @OperateLog(type = EXPORT)  
95 - public void exportWxNewsTemplateExcel(@Valid WxNewsTemplateExportReqVO exportReqVO,  
96 - HttpServletResponse response) throws IOException {  
97 - List<WxNewsTemplateDO> list = wxNewsTemplateService.getWxNewsTemplateList(exportReqVO);  
98 - // 导出 Excel  
99 - List<WxNewsTemplateExcelVO> datas = WxNewsTemplateConvert.INSTANCE.convertList02(list);  
100 - ExcelUtils.write(response, "图文消息模板.xls", "数据", WxNewsTemplateExcelVO.class, datas);  
101 - }  
102 -  
103 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplateBaseVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -import io.swagger.annotations.*;  
5 -  
6 -/**  
7 - * 图文消息模板 Base VO,提供给添加、修改、详细的子 VO 使用  
8 - * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成  
9 - */  
10 -@Data  
11 -public class WxNewsTemplateBaseVO {  
12 -  
13 - @ApiModelProperty(value = "模板名称")  
14 - private String tplName;  
15 -  
16 - @ApiModelProperty(value = "是否已上传微信")  
17 - private String isUpload;  
18 -  
19 - @ApiModelProperty(value = "素材ID")  
20 - private String mediaId;  
21 -  
22 - @ApiModelProperty(value = "微信账号ID")  
23 - private String wxAccountId;  
24 -  
25 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplateCreateReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -import io.swagger.annotations.*;  
5 -  
6 -@ApiModel("管理后台 - 图文消息模板创建 Request VO")  
7 -@Data  
8 -@EqualsAndHashCode(callSuper = true)  
9 -@ToString(callSuper = true)  
10 -public class WxNewsTemplateCreateReqVO extends WxNewsTemplateBaseVO {  
11 -  
12 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplateExcelVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import com.alibaba.excel.annotation.ExcelProperty;  
8 -  
9 -/**  
10 - * 图文消息模板 Excel VO  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -@Data  
15 -public class WxNewsTemplateExcelVO {  
16 -  
17 - @ExcelProperty("主键 主键ID")  
18 - private Integer id;  
19 -  
20 - @ExcelProperty("模板名称")  
21 - private String tplName;  
22 -  
23 - @ExcelProperty("是否已上传微信")  
24 - private String isUpload;  
25 -  
26 - @ExcelProperty("素材ID")  
27 - private String mediaId;  
28 -  
29 - @ExcelProperty("微信账号ID")  
30 - private String wxAccountId;  
31 -  
32 - @ExcelProperty("创建时间")  
33 - private Date createTime;  
34 -  
35 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplateExportReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import io.swagger.annotations.*;  
8 -import org.springframework.format.annotation.DateTimeFormat;  
9 -  
10 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
11 -  
12 -@ApiModel(value = "管理后台 - 图文消息模板 Excel 导出 Request VO", description = "参数和 WxNewsTemplatePageReqVO 是一致的")  
13 -@Data  
14 -public class WxNewsTemplateExportReqVO {  
15 -  
16 - @ApiModelProperty(value = "模板名称")  
17 - private String tplName;  
18 -  
19 - @ApiModelProperty(value = "是否已上传微信")  
20 - private String isUpload;  
21 -  
22 - @ApiModelProperty(value = "素材ID")  
23 - private String mediaId;  
24 -  
25 - @ApiModelProperty(value = "微信账号ID")  
26 - private String wxAccountId;  
27 -  
28 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
29 - @ApiModelProperty(value = "开始创建时间")  
30 - private Date beginCreateTime;  
31 -  
32 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
33 - @ApiModelProperty(value = "结束创建时间")  
34 - private Date endCreateTime;  
35 -  
36 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplatePageReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import io.swagger.annotations.*;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
9 -import org.springframework.format.annotation.DateTimeFormat;  
10 -  
11 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;  
12 -  
13 -@ApiModel("管理后台 - 图文消息模板分页 Request VO")  
14 -@Data  
15 -@EqualsAndHashCode(callSuper = true)  
16 -@ToString(callSuper = true)  
17 -public class WxNewsTemplatePageReqVO extends PageParam {  
18 -  
19 - @ApiModelProperty(value = "模板名称")  
20 - private String tplName;  
21 -  
22 - @ApiModelProperty(value = "是否已上传微信")  
23 - private String isUpload;  
24 -  
25 - @ApiModelProperty(value = "素材ID")  
26 - private String mediaId;  
27 -  
28 - @ApiModelProperty(value = "微信账号ID")  
29 - private String wxAccountId;  
30 -  
31 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
32 - @ApiModelProperty(value = "开始创建时间")  
33 - private Date beginCreateTime;  
34 -  
35 - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)  
36 - @ApiModelProperty(value = "结束创建时间")  
37 - private Date endCreateTime;  
38 -  
39 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplateRespVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import io.swagger.annotations.*;  
8 -  
9 -@ApiModel("管理后台 - 图文消息模板 Response VO")  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -@ToString(callSuper = true)  
13 -public class WxNewsTemplateRespVO extends WxNewsTemplateBaseVO {  
14 -  
15 - @ApiModelProperty(value = "主键 主键ID", required = true)  
16 - private Integer id;  
17 -  
18 - @ApiModelProperty(value = "创建时间", required = true)  
19 - private Date createTime;  
20 -  
21 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/controller/admin/newstemplate/vo/WxNewsTemplateUpdateReqVO.java deleted
1 -package cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo;  
2 -  
3 -import lombok.*;  
4 -import io.swagger.annotations.*;  
5 -  
6 -import javax.validation.constraints.*;  
7 -  
8 -@ApiModel("管理后台 - 图文消息模板更新 Request VO")  
9 -@Data  
10 -@EqualsAndHashCode(callSuper = true)  
11 -@ToString(callSuper = true)  
12 -public class WxNewsTemplateUpdateReqVO extends WxNewsTemplateBaseVO {  
13 -  
14 - @ApiModelProperty(value = "主键 主键ID", required = true)  
15 - @NotNull(message = "主键 主键ID不能为空")  
16 - private Integer id;  
17 -  
18 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/message/MpMessageConvert.java
@@ -27,6 +27,7 @@ public interface MpMessageConvert { @@ -27,6 +27,7 @@ public interface MpMessageConvert {
27 27
28 @Mappings(value = { 28 @Mappings(value = {
29 @Mapping(source = "msgType", target = "type"), 29 @Mapping(source = "msgType", target = "type"),
  30 + @Mapping(target = "createTime", ignore = true),
30 }) 31 })
31 MpMessageDO convert(WxMpXmlMessage wxMessage); 32 MpMessageDO convert(WxMpXmlMessage wxMessage);
32 33
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/newsarticleitem/WxNewsArticleItemConvert.java deleted
1 -package cn.iocoder.yudao.module.mp.convert.newsarticleitem;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -  
7 -import org.mapstruct.Mapper;  
8 -import org.mapstruct.factory.Mappers;  
9 -import cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo.*;  
10 -import cn.iocoder.yudao.module.mp.dal.dataobject.newsarticleitem.WxNewsArticleItemDO;  
11 -  
12 -/**  
13 - * 图文消息文章列表表 Convert  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface WxNewsArticleItemConvert {  
19 -  
20 - WxNewsArticleItemConvert INSTANCE = Mappers.getMapper(WxNewsArticleItemConvert.class);  
21 -  
22 - WxNewsArticleItemDO convert(WxNewsArticleItemCreateReqVO bean);  
23 -  
24 - WxNewsArticleItemDO convert(WxNewsArticleItemUpdateReqVO bean);  
25 -  
26 - WxNewsArticleItemRespVO convert(WxNewsArticleItemDO bean);  
27 -  
28 - List<WxNewsArticleItemRespVO> convertList(List<WxNewsArticleItemDO> list);  
29 -  
30 - PageResult<WxNewsArticleItemRespVO> convertPage(PageResult<WxNewsArticleItemDO> page);  
31 -  
32 - List<WxNewsArticleItemExcelVO> convertList02(List<WxNewsArticleItemDO> list);  
33 -  
34 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/newstemplate/WxNewsTemplateConvert.java deleted
1 -package cn.iocoder.yudao.module.mp.convert.newstemplate;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -  
7 -import org.mapstruct.Mapper;  
8 -import org.mapstruct.factory.Mappers;  
9 -import cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo.*;  
10 -import cn.iocoder.yudao.module.mp.dal.dataobject.newstemplate.WxNewsTemplateDO;  
11 -  
12 -/**  
13 - * 图文消息模板 Convert  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface WxNewsTemplateConvert {  
19 -  
20 - WxNewsTemplateConvert INSTANCE = Mappers.getMapper(WxNewsTemplateConvert.class);  
21 -  
22 - WxNewsTemplateDO convert(WxNewsTemplateCreateReqVO bean);  
23 -  
24 - WxNewsTemplateDO convert(WxNewsTemplateUpdateReqVO bean);  
25 -  
26 - WxNewsTemplateRespVO convert(WxNewsTemplateDO bean);  
27 -  
28 - List<WxNewsTemplateRespVO> convertList(List<WxNewsTemplateDO> list);  
29 -  
30 - PageResult<WxNewsTemplateRespVO> convertPage(PageResult<WxNewsTemplateDO> page);  
31 -  
32 - List<WxNewsTemplateExcelVO> convertList02(List<WxNewsTemplateDO> list);  
33 -  
34 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/message/MpAutoReplyDO.java
1 package cn.iocoder.yudao.module.mp.dal.dataobject.message; 1 package cn.iocoder.yudao.module.mp.dal.dataobject.message;
2 2
  3 +import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO; 5 import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO;
5 import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyMatchEnum; 6 import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyMatchEnum;
@@ -13,6 +14,8 @@ import lombok.ToString; @@ -13,6 +14,8 @@ import lombok.ToString;
13 import me.chanjar.weixin.common.api.WxConsts; 14 import me.chanjar.weixin.common.api.WxConsts;
14 import me.chanjar.weixin.common.api.WxConsts.XmlMsgType; 15 import me.chanjar.weixin.common.api.WxConsts.XmlMsgType;
15 16
  17 +import java.util.Set;
  18 +
16 /** 19 /**
17 * 微信消息自动回复 DO 20 * 微信消息自动回复 DO
18 * 21 *
@@ -25,6 +28,10 @@ import me.chanjar.weixin.common.api.WxConsts.XmlMsgType; @@ -25,6 +28,10 @@ import me.chanjar.weixin.common.api.WxConsts.XmlMsgType;
25 @ToString(callSuper = true) 28 @ToString(callSuper = true)
26 public class MpAutoReplyDO extends BaseDO { 29 public class MpAutoReplyDO extends BaseDO {
27 30
  31 + public static Set<String> REQUEST_MESSAGE_TYPE = SetUtils.asSet(WxConsts.XmlMsgType.TEXT, WxConsts.XmlMsgType.IMAGE,
  32 + WxConsts.XmlMsgType.VOICE, WxConsts.XmlMsgType.VIDEO, WxConsts.XmlMsgType.SHORTVIDEO,
  33 + WxConsts.XmlMsgType.LOCATION, WxConsts.XmlMsgType.LINK);
  34 +
28 /** 35 /**
29 * 主键 36 * 主键
30 */ 37 */
@@ -72,7 +79,7 @@ public class MpAutoReplyDO extends BaseDO { @@ -72,7 +79,7 @@ public class MpAutoReplyDO extends BaseDO {
72 * 79 *
73 * 当 {@link #type} 为 {@link MpAutoReplyTypeEnum#MESSAGE} 80 * 当 {@link #type} 为 {@link MpAutoReplyTypeEnum#MESSAGE}
74 * 81 *
75 - * 枚举 {@link XmlMsgType} 中的 TEXT、IMAGE、VOICE、VIDEO、SHORTVIDEO、LOCATION、LINK 82 + * 枚举 {@link XmlMsgType} 中的 {@link #REQUEST_MESSAGE_TYPE}
76 */ 83 */
77 private String requestMessageType; 84 private String requestMessageType;
78 85
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/newsarticleitem/WxNewsArticleItemDO.java deleted
1 -package cn.iocoder.yudao.module.mp.dal.dataobject.newsarticleitem;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import com.baomidou.mybatisplus.annotation.*;  
8 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
9 -  
10 -/**  
11 - * 图文消息文章列表表 DO  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -@TableName("wx_news_article_item")  
16 -@KeySequence("wx_news_article_item_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
17 -@Data  
18 -@EqualsAndHashCode(callSuper = true)  
19 -@ToString(callSuper = true)  
20 -@Builder  
21 -@NoArgsConstructor  
22 -@AllArgsConstructor  
23 -public class WxNewsArticleItemDO extends BaseDO {  
24 -  
25 - /**  
26 - * 主键  
27 - */  
28 - @TableId  
29 - private Integer id;  
30 - /**  
31 - * 标题  
32 - */  
33 - private String title;  
34 - /**  
35 - * 摘要  
36 - */  
37 - private String digest;  
38 - /**  
39 - * 作者  
40 - */  
41 - private String author;  
42 - /**  
43 - * 是否展示封面图片(0/1)  
44 - */  
45 - private String showCoverPic;  
46 - /**  
47 - * 上传微信,封面图片标识  
48 - */  
49 - private String thumbMediaId;  
50 - /**  
51 - * 内容  
52 - */  
53 - private String content;  
54 - /**  
55 - * 内容链接  
56 - */  
57 - private String contentSourceUrl;  
58 - /**  
59 - * 文章排序  
60 - */  
61 - private Integer orderNo;  
62 - /**  
63 - * 图片路径  
64 - */  
65 - private String picPath;  
66 - /**  
67 - * 是否可以留言  
68 - */  
69 - private String needOpenComment;  
70 - /**  
71 - * 是否仅粉丝可以留言  
72 - */  
73 - private String onlyFansCanComment;  
74 - /**  
75 - * 图文ID  
76 - */  
77 - private String newsId;  
78 - /**  
79 - * 微信账号ID  
80 - */  
81 - private String wxAccountId;  
82 -  
83 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/newstemplate/WxNewsTemplateDO.java deleted
1 -package cn.iocoder.yudao.module.mp.dal.dataobject.newstemplate;  
2 -  
3 -import lombok.*;  
4 -  
5 -import java.util.*;  
6 -  
7 -import com.baomidou.mybatisplus.annotation.*;  
8 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
9 -  
10 -/**  
11 - * 图文消息模板 DO  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -@TableName("wx_news_template")  
16 -@KeySequence("wx_news_template_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
17 -@Data  
18 -@EqualsAndHashCode(callSuper = true)  
19 -@ToString(callSuper = true)  
20 -@Builder  
21 -@NoArgsConstructor  
22 -@AllArgsConstructor  
23 -public class WxNewsTemplateDO extends BaseDO {  
24 -  
25 - /**  
26 - * 主键 主键ID  
27 - */  
28 - @TableId  
29 - private Integer id;  
30 - /**  
31 - * 模板名称  
32 - */  
33 - private String tplName;  
34 - /**  
35 - * 是否已上传微信  
36 - */  
37 - private String isUpload;  
38 - /**  
39 - * 素材ID  
40 - */  
41 - private String mediaId;  
42 - /**  
43 - * 微信账号ID  
44 - */  
45 - private String wxAccountId;  
46 -  
47 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/message/MpAutoReplyMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mp.dal.mysql.message;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  4 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  5 +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO;
  6 +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyMatchEnum;
  7 +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyTypeEnum;
  8 +
  9 +import java.util.List;
  10 +
  11 +public interface MpAutoReplyMapper extends BaseMapperX<MpAutoReplyDO> {
  12 +
  13 + default List<MpAutoReplyDO> selectListByAppIdAndKeywordAll(String appId, String requestKeyword) {
  14 + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>()
  15 + .eq(MpAutoReplyDO::getAppId, appId)
  16 + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.KEYWORD.getType())
  17 + .eq(MpAutoReplyDO::getRequestMatch, MpAutoReplyMatchEnum.ALL.getMatch())
  18 + .eq(MpAutoReplyDO::getRequestKeyword, requestKeyword));
  19 + }
  20 +
  21 + default List<MpAutoReplyDO> selectListByAppIdAndKeywordLike(String appId, String requestKeyword) {
  22 + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>()
  23 + .eq(MpAutoReplyDO::getAppId, appId)
  24 + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.KEYWORD.getType())
  25 + .eq(MpAutoReplyDO::getRequestMatch, MpAutoReplyMatchEnum.LIKE.getMatch())
  26 + .like(MpAutoReplyDO::getRequestKeyword, requestKeyword));
  27 + }
  28 +
  29 + default List<MpAutoReplyDO> selectListByAppIdAndMessage(String appId, String requestMessageType) {
  30 + return selectList(new LambdaQueryWrapperX<MpAutoReplyDO>()
  31 + .eq(MpAutoReplyDO::getAppId, appId)
  32 + .eq(MpAutoReplyDO::getType, MpAutoReplyTypeEnum.MESSAGE.getType())
  33 + .eq(MpAutoReplyDO::getRequestMessageType, requestMessageType));
  34 + }
  35 +}
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/newsarticleitem/WxNewsArticleItemMapper.java deleted
1 -package cn.iocoder.yudao.module.mp.dal.mysql.newsarticleitem;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
8 -import cn.iocoder.yudao.module.mp.dal.dataobject.newsarticleitem.WxNewsArticleItemDO;  
9 -import org.apache.ibatis.annotations.Mapper;  
10 -import cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo.*;  
11 -  
12 -/**  
13 - * 图文消息文章列表表 Mapper  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface WxNewsArticleItemMapper extends BaseMapperX<WxNewsArticleItemDO> {  
19 -  
20 - default PageResult<WxNewsArticleItemDO> selectPage(WxNewsArticleItemPageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<WxNewsArticleItemDO>()  
22 - .eqIfPresent(WxNewsArticleItemDO::getTitle, reqVO.getTitle())  
23 - .eqIfPresent(WxNewsArticleItemDO::getDigest, reqVO.getDigest())  
24 - .eqIfPresent(WxNewsArticleItemDO::getAuthor, reqVO.getAuthor())  
25 - .eqIfPresent(WxNewsArticleItemDO::getShowCoverPic, reqVO.getShowCoverPic())  
26 - .eqIfPresent(WxNewsArticleItemDO::getThumbMediaId, reqVO.getThumbMediaId())  
27 - .eqIfPresent(WxNewsArticleItemDO::getContent, reqVO.getContent())  
28 - .eqIfPresent(WxNewsArticleItemDO::getContentSourceUrl, reqVO.getContentSourceUrl())  
29 - .eqIfPresent(WxNewsArticleItemDO::getOrderNo, reqVO.getOrderNo())  
30 - .eqIfPresent(WxNewsArticleItemDO::getPicPath, reqVO.getPicPath())  
31 - .eqIfPresent(WxNewsArticleItemDO::getNeedOpenComment, reqVO.getNeedOpenComment())  
32 - .eqIfPresent(WxNewsArticleItemDO::getOnlyFansCanComment, reqVO.getOnlyFansCanComment())  
33 - .eqIfPresent(WxNewsArticleItemDO::getNewsId, reqVO.getNewsId())  
34 - .eqIfPresent(WxNewsArticleItemDO::getWxAccountId, reqVO.getWxAccountId())  
35 - .betweenIfPresent(WxNewsArticleItemDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())  
36 - .orderByDesc(WxNewsArticleItemDO::getId));  
37 - }  
38 -  
39 - default List<WxNewsArticleItemDO> selectList(WxNewsArticleItemExportReqVO reqVO) {  
40 - return selectList(new LambdaQueryWrapperX<WxNewsArticleItemDO>()  
41 - .eqIfPresent(WxNewsArticleItemDO::getTitle, reqVO.getTitle())  
42 - .eqIfPresent(WxNewsArticleItemDO::getDigest, reqVO.getDigest())  
43 - .eqIfPresent(WxNewsArticleItemDO::getAuthor, reqVO.getAuthor())  
44 - .eqIfPresent(WxNewsArticleItemDO::getShowCoverPic, reqVO.getShowCoverPic())  
45 - .eqIfPresent(WxNewsArticleItemDO::getThumbMediaId, reqVO.getThumbMediaId())  
46 - .eqIfPresent(WxNewsArticleItemDO::getContent, reqVO.getContent())  
47 - .eqIfPresent(WxNewsArticleItemDO::getContentSourceUrl, reqVO.getContentSourceUrl())  
48 - .eqIfPresent(WxNewsArticleItemDO::getOrderNo, reqVO.getOrderNo())  
49 - .eqIfPresent(WxNewsArticleItemDO::getPicPath, reqVO.getPicPath())  
50 - .eqIfPresent(WxNewsArticleItemDO::getNeedOpenComment, reqVO.getNeedOpenComment())  
51 - .eqIfPresent(WxNewsArticleItemDO::getOnlyFansCanComment, reqVO.getOnlyFansCanComment())  
52 - .eqIfPresent(WxNewsArticleItemDO::getNewsId, reqVO.getNewsId())  
53 - .eqIfPresent(WxNewsArticleItemDO::getWxAccountId, reqVO.getWxAccountId())  
54 - .betweenIfPresent(WxNewsArticleItemDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())  
55 - .orderByDesc(WxNewsArticleItemDO::getId));  
56 - }  
57 -  
58 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/dal/mysql/newstemplate/WxNewsTemplateMapper.java deleted
1 -package cn.iocoder.yudao.module.mp.dal.mysql.newstemplate;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
7 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
8 -import cn.iocoder.yudao.module.mp.dal.dataobject.newstemplate.WxNewsTemplateDO;  
9 -import org.apache.ibatis.annotations.Mapper;  
10 -import cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo.*;  
11 -  
12 -/**  
13 - * 图文消息模板 Mapper  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Mapper  
18 -public interface WxNewsTemplateMapper extends BaseMapperX<WxNewsTemplateDO> {  
19 -  
20 - default PageResult<WxNewsTemplateDO> selectPage(WxNewsTemplatePageReqVO reqVO) {  
21 - return selectPage(reqVO, new LambdaQueryWrapperX<WxNewsTemplateDO>()  
22 - .likeIfPresent(WxNewsTemplateDO::getTplName, reqVO.getTplName())  
23 - .eqIfPresent(WxNewsTemplateDO::getIsUpload, reqVO.getIsUpload())  
24 - .eqIfPresent(WxNewsTemplateDO::getMediaId, reqVO.getMediaId())  
25 - .eqIfPresent(WxNewsTemplateDO::getWxAccountId, reqVO.getWxAccountId())  
26 - .betweenIfPresent(WxNewsTemplateDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())  
27 - .orderByDesc(WxNewsTemplateDO::getId));  
28 - }  
29 -  
30 - default List<WxNewsTemplateDO> selectList(WxNewsTemplateExportReqVO reqVO) {  
31 - return selectList(new LambdaQueryWrapperX<WxNewsTemplateDO>()  
32 - .likeIfPresent(WxNewsTemplateDO::getTplName, reqVO.getTplName())  
33 - .eqIfPresent(WxNewsTemplateDO::getIsUpload, reqVO.getIsUpload())  
34 - .eqIfPresent(WxNewsTemplateDO::getMediaId, reqVO.getMediaId())  
35 - .eqIfPresent(WxNewsTemplateDO::getWxAccountId, reqVO.getWxAccountId())  
36 - .betweenIfPresent(WxNewsTemplateDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())  
37 - .orderByDesc(WxNewsTemplateDO::getId));  
38 - }  
39 -  
40 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/handler/message/MessageAutoReplyHandler.java
1 package cn.iocoder.yudao.module.mp.service.handler.message; 1 package cn.iocoder.yudao.module.mp.service.handler.message;
2 2
3 -import cn.hutool.core.io.FileUtil;  
4 -import cn.hutool.http.HtmlUtil;  
5 -import cn.hutool.http.HttpUtil;  
6 -import cn.iocoder.yudao.framework.common.util.json.JsonUtils;  
7 -import cn.iocoder.yudao.module.infra.api.file.FileApi;  
8 -import cn.iocoder.yudao.module.mp.builder.TextBuilder;  
9 -import cn.iocoder.yudao.module.mp.dal.dataobject.account.MpAccountDO;  
10 -import cn.iocoder.yudao.module.mp.service.account.MpAccountService;  
11 -import cn.iocoder.yudao.module.mp.service.message.MpMessageService; 3 +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO;
  4 +import cn.iocoder.yudao.module.mp.framework.mp.core.context.MpContextHolder;
  5 +import cn.iocoder.yudao.module.mp.service.message.MpAutoReplyService;
12 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
13 -import me.chanjar.weixin.common.api.WxConsts;  
14 -import me.chanjar.weixin.common.error.WxErrorException;  
15 import me.chanjar.weixin.common.session.WxSessionManager; 7 import me.chanjar.weixin.common.session.WxSessionManager;
16 import me.chanjar.weixin.mp.api.WxMpMessageHandler; 8 import me.chanjar.weixin.mp.api.WxMpMessageHandler;
17 import me.chanjar.weixin.mp.api.WxMpService; 9 import me.chanjar.weixin.mp.api.WxMpService;
18 import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage; 10 import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
19 import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage; 11 import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
20 -import me.chanjar.weixin.mp.bean.result.WxMpUser;  
21 -import org.apache.commons.lang3.StringUtils;  
22 -import org.springframework.context.annotation.Lazy;  
23 import org.springframework.stereotype.Component; 12 import org.springframework.stereotype.Component;
24 13
25 import javax.annotation.Resource; 14 import javax.annotation.Resource;
26 -import java.io.File;  
27 -import java.io.UnsupportedEncodingException;  
28 import java.util.Map; 15 import java.util.Map;
29 16
30 /** 17 /**
@@ -37,145 +24,18 @@ import java.util.Map; @@ -37,145 +24,18 @@ import java.util.Map;
37 public class MessageAutoReplyHandler implements WxMpMessageHandler { 24 public class MessageAutoReplyHandler implements WxMpMessageHandler {
38 25
39 @Resource 26 @Resource
40 - @Lazy // 延迟加载,解决循环依赖的问题  
41 - private MpAccountService mpAccountService;  
42 -  
43 - @Resource  
44 - private MpMessageService mpMessageService;  
45 -  
46 - @Resource  
47 - private FileApi fileApi;  
48 -  
49 - // auto reply  
50 - // createMessage  
51 - // outmessage 27 + private MpAutoReplyService mpAutoReplyService;
52 28
53 @Override 29 @Override
54 public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, 30 public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context,
55 WxMpService weixinService, WxSessionManager sessionManager) { 31 WxMpService weixinService, WxSessionManager sessionManager) {
56 - log.info("收到信息内容:{}", JsonUtils.toJsonString(wxMessage));  
57 - log.info("关键字:{}", wxMessage.getContent());  
58 -  
59 -// if (!wxMessage.getMsgType().equals(WxConsts.XmlMsgType.EVENT)) {  
60 -// //可以选择将消息保存到本地  
61 -//  
62 -// // 获取微信用户基本信息  
63 -// try {  
64 -// WxMpUser wxmpUser = weixinService.getUserService()  
65 -// .userInfo(wxMessage.getFromUser(), null);  
66 -// if (wxmpUser != null) {  
67 -// MpAccountDO wxAccount = mpAccountService.findBy(MpAccountDO::getAccount, wxMessage.getToUser());  
68 -// if (wxAccount != null) {  
69 -//  
70 -// if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.TEXT)) {  
71 -// WxFansMsgCreateReqVO wxFansMsg = new WxFansMsgCreateReqVO();  
72 -// wxFansMsg.setOpenid(wxmpUser.getOpenId());  
73 -// try {  
74 -// wxFansMsg.setNickname(wxmpUser.getNickname().getBytes("UTF-8"));  
75 -// } catch (UnsupportedEncodingException e) {  
76 -// e.printStackTrace();  
77 -// }  
78 -// wxFansMsg.setHeadimgUrl(wxmpUser.getHeadImgUrl());  
79 -// wxFansMsg.setWxAccountId(String.valueOf(wxAccount.getId()));  
80 -// wxFansMsg.setMsgType(wxMessage.getMsgType());  
81 -// wxFansMsg.setContent(wxMessage.getContent());  
82 -// wxFansMsg.setIsRes("1");  
83 -//  
84 -// //组装回复消息  
85 -// String content = processContent(wxMessage);  
86 -// content = HtmlUtil.escape(content);  
87 -// wxFansMsg.setResContent(content);  
88 -//  
89 -// mpMessageService.createWxFansMsg(wxFansMsg);  
90 -// return new TextBuilder().build(content, wxMessage, weixinService);  
91 -//  
92 -// }  
93 -// if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.IMAGE)) {  
94 -// WxFansMsgCreateReqVO wxFansMsg = new WxFansMsgCreateReqVO();  
95 -// wxFansMsg.setOpenid(wxmpUser.getOpenId());  
96 -// try {  
97 -// wxFansMsg.setNickname(wxmpUser.getNickname().getBytes("UTF-8"));  
98 -// } catch (UnsupportedEncodingException e) {  
99 -// e.printStackTrace();  
100 -// }  
101 -// wxFansMsg.setHeadimgUrl(wxmpUser.getHeadImgUrl());  
102 -// wxFansMsg.setWxAccountId(String.valueOf(wxAccount.getId()));  
103 -// wxFansMsg.setMsgType(wxMessage.getMsgType());  
104 -// wxFansMsg.setMediaId(wxMessage.getMediaId());  
105 -// wxFansMsg.setPicUrl(wxMessage.getPicUrl());  
106 -// String downloadDirStr = fileApi.createFile(HttpUtil.downloadBytes(wxMessage.getPicUrl()));  
107 -// File downloadDir = new File(downloadDirStr);  
108 -// if (!downloadDir.exists()) {  
109 -// downloadDir.mkdirs();  
110 -// }  
111 -// String filepath = downloadDirStr + System.currentTimeMillis() + ".png";  
112 -// //微信pic url下载到本地,防止失效  
113 -// long size = HttpUtil.downloadFile(wxMessage.getPicUrl(), FileUtil.file(filepath));  
114 -// log.info("download pic size : {}", size);  
115 -// wxFansMsg.setPicPath(filepath);  
116 -// wxFansMsg.setIsRes("0");  
117 -// mpMessageService.createWxFansMsg(wxFansMsg);  
118 -// }  
119 -//  
120 -// }  
121 -// }  
122 -// } catch (WxErrorException e) {  
123 -// if (e.getError().getErrorCode() == 48001) {  
124 -// log.info("该公众号没有获取用户信息权限!");  
125 -// }  
126 -// } catch (Exception e) {  
127 -// e.printStackTrace();  
128 -// }  
129 -//  
130 -// }  
131 -//  
132 -// //当用户输入关键词如“你好”,“客服”等,并且有客服在线时,把消息转发给在线客服  
133 -// try {  
134 -// if (StringUtils.startsWithAny(wxMessage.getContent(), "你好", "客服")  
135 -// && weixinService.getKefuService().kfOnlineList()  
136 -// .getKfOnlineList().size() > 0) {  
137 -// return WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE()  
138 -// .fromUser(wxMessage.getToUser())  
139 -// .toUser(wxMessage.getFromUser()).build();  
140 -// }  
141 -// } catch (WxErrorException e) {  
142 -// e.printStackTrace();  
143 -// }  
144 -  
145 - //组装默认回复消息  
146 - return new TextBuilder().build("测试", wxMessage, weixinService);  
147 - }  
148 -  
149 -  
150 - //处理回复信息,优先级,关键字、智能机器人、默认值  
151 - String processContent(WxMpXmlMessage wxMessage) {  
152 - String content = "你猜";  
153 - /* content = processReceiveTextContent(wxMessage);  
154 - if(StringUtils.isNotBlank( content )){  
155 - return content; 32 + // 只处理指定类型的消息
  33 + if (!MpAutoReplyDO.REQUEST_MESSAGE_TYPE.contains(wxMessage.getMsgType())) {
  34 + return null;
156 } 35 }
157 36
158 - content = defaultResponseContent;*/  
159 - return content; 37 + // 自动回复
  38 + return mpAutoReplyService.replyForMessage(MpContextHolder.getAppId(), wxMessage);
160 } 39 }
161 40
162 - //处理关键字  
163 - String processReceiveTextContent(WxMpXmlMessage wxMessage) {  
164 - String content = "";  
165 - /* WxAccountDO wxAccount = wxAccountService.findBy( WxAccountDO::getAccount,wxMessage.getToUser());  
166 - if(wxAccount != null){  
167 - WxReceiveText wxReceiveTextTpl = new WxReceiveText();  
168 - wxReceiveTextTpl.setWxAccountId( String.valueOf( wxAccount.getId() ) );  
169 - wxReceiveTextTpl.setReceiveText( wxMessage.getContent() );  
170 - List<WxReceiveText> wxReceiveTextList = wxReceiveTextService.findListByReceiveTest( wxReceiveTextTpl );  
171 - if(wxReceiveTextList != null && wxReceiveTextList.size() > 0){  
172 - WxReceiveText wxReceiveText = wxReceiveTextList.get( 0 );  
173 - WxTextTemplate wxTextTemplate = wxTextTemplateService.findById( Integer.parseInt( wxReceiveText.getTplId() ) );  
174 - content = wxTextTemplate.getContent();  
175 - }  
176 - }*/  
177 - return content;  
178 - }  
179 -  
180 -  
181 } 41 }
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/handler/user/LocationHandler.java
1 package cn.iocoder.yudao.module.mp.service.handler.user; 1 package cn.iocoder.yudao.module.mp.service.handler.user;
2 2
3 -import cn.iocoder.yudao.module.mp.builder.TextBuilder;  
4 import lombok.extern.slf4j.Slf4j; 3 import lombok.extern.slf4j.Slf4j;
5 import me.chanjar.weixin.common.session.WxSessionManager; 4 import me.chanjar.weixin.common.session.WxSessionManager;
6 import me.chanjar.weixin.mp.api.WxMpMessageHandler; 5 import me.chanjar.weixin.mp.api.WxMpMessageHandler;
@@ -11,8 +10,6 @@ import org.springframework.stereotype.Component; @@ -11,8 +10,6 @@ import org.springframework.stereotype.Component;
11 10
12 import java.util.Map; 11 import java.util.Map;
13 12
14 -import static me.chanjar.weixin.common.api.WxConsts.XmlMsgType;  
15 -  
16 /** 13 /**
17 * 上报地理位置的事件处理器 14 * 上报地理位置的事件处理器
18 * 15 *
@@ -25,20 +22,20 @@ public class LocationHandler implements WxMpMessageHandler { @@ -25,20 +22,20 @@ public class LocationHandler implements WxMpMessageHandler {
25 @Override 22 @Override
26 public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context, 23 public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage, Map<String, Object> context,
27 WxMpService wxMpService, WxSessionManager sessionManager) { 24 WxMpService wxMpService, WxSessionManager sessionManager) {
28 - if (wxMessage.getMsgType().equals(XmlMsgType.LOCATION)) {  
29 - //TODO 接收处理用户发送的地理位置消息  
30 - try {  
31 - String content = "感谢反馈,您的的地理位置已收到!";  
32 - return new TextBuilder().build(content, wxMessage, null);  
33 - } catch (Exception e) {  
34 - log.error("位置消息接收处理失败", e);  
35 - return null;  
36 - }  
37 - }  
38 -  
39 - //上报地理位置事件  
40 - log.info("上报地理位置,纬度 : {},经度 : {},精度 : {}",  
41 - wxMessage.getLatitude(), wxMessage.getLongitude(), String.valueOf(wxMessage.getPrecision())); 25 +// if (wxMessage.getMsgType().equals(XmlMsgType.LOCATION)) {
  26 +// //TODO 接收处理用户发送的地理位置消息
  27 +// try {
  28 +// String content = "感谢反馈,您的的地理位置已收到!";
  29 +// return new TextBuilder().build(content, wxMessage, null);
  30 +// } catch (Exception e) {
  31 +// log.error("位置消息接收处理失败", e);
  32 +// return null;
  33 +// }
  34 +// }
  35 +//
  36 +// //上报地理位置事件
  37 +// log.info("上报地理位置,纬度 : {},经度 : {},精度 : {}",
  38 +// wxMessage.getLatitude(), wxMessage.getLongitude(), String.valueOf(wxMessage.getPrecision()));
42 39
43 //TODO 可以将用户地理位置信息保存到本地数据库,以便以后使用 40 //TODO 可以将用户地理位置信息保存到本地数据库,以便以后使用
44 41
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/handler/user/SubscribeHandler.java
1 package cn.iocoder.yudao.module.mp.service.handler.user; 1 package cn.iocoder.yudao.module.mp.service.handler.user;
2 2
3 -import cn.iocoder.yudao.module.mp.builder.TextBuilder;  
4 import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO; 3 import cn.iocoder.yudao.module.mp.dal.dataobject.user.MpUserDO;
5 import cn.iocoder.yudao.module.mp.framework.mp.core.context.MpContextHolder; 4 import cn.iocoder.yudao.module.mp.framework.mp.core.context.MpContextHolder;
6 import cn.iocoder.yudao.module.mp.service.account.MpAccountService; 5 import cn.iocoder.yudao.module.mp.service.account.MpAccountService;
@@ -56,7 +55,8 @@ public class SubscribeHandler implements WxMpMessageHandler { @@ -56,7 +55,8 @@ public class SubscribeHandler implements WxMpMessageHandler {
56 } 55 }
57 56
58 // 第三步,回复关注的欢迎语 TODO 芋艿:关注的欢迎语 57 // 第三步,回复关注的欢迎语 TODO 芋艿:关注的欢迎语
59 - return new TextBuilder().build("感谢关注", wxMessage, weixinService); 58 +// return new TextBuilder().build("感谢关注", wxMessage, weixinService);
  59 + return null;
60 } 60 }
61 61
62 /** 62 /**
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/message/MpAutoReplyService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mp.service.message;
  2 +
  3 +import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
  4 +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
  5 +
  6 +/**
  7 + * 公众号的自动回复 Service 接口
  8 + *
  9 + * @author 芋道源码
  10 + */
  11 +public interface MpAutoReplyService {
  12 +
  13 + /**
  14 + * 当收到消息时,自动回复
  15 + *
  16 + * @param appId 微信公众号 appId
  17 + * @param wxMessage 消息
  18 + * @return 回复的消息
  19 + */
  20 + WxMpXmlOutMessage replyForMessage(String appId, WxMpXmlMessage wxMessage);
  21 +
  22 +}
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/message/MpAutoReplyServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.mp.service.message;
  2 +
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.module.mp.dal.dataobject.message.MpAutoReplyDO;
  5 +import cn.iocoder.yudao.module.mp.dal.mysql.message.MpAutoReplyMapper;
  6 +import cn.iocoder.yudao.module.mp.enums.message.MpAutoReplyMatchEnum;
  7 +import me.chanjar.weixin.common.api.WxConsts;
  8 +import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
  9 +import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
  10 +import org.springframework.validation.annotation.Validated;
  11 +
  12 +import javax.annotation.Resource;
  13 +import java.util.List;
  14 +
  15 +/**
  16 + * 公众号的自动回复 Service 实现类
  17 + *
  18 + * @author 芋道源码
  19 + */
  20 +@Resource
  21 +@Validated
  22 +public class MpAutoReplyServiceImpl implements MpAutoReplyService {
  23 +
  24 + @Resource
  25 + private MpAutoReplyService mpAutoReplyService;
  26 +
  27 + @Resource
  28 + private MpAutoReplyMapper mpAutoReplyMapper;
  29 +
  30 + @Override
  31 + public WxMpXmlOutMessage replyForMessage(String appId, WxMpXmlMessage wxMessage) {
  32 + // 第一步,匹配自动回复
  33 + List<MpAutoReplyDO> replies = null;
  34 + // 1.1 关键字
  35 + if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.TEXT)) {
  36 + // 完全匹配
  37 + replies = mpAutoReplyMapper.selectListByAppIdAndKeywordAll(appId, wxMessage.getContent());
  38 + if (CollUtil.isEmpty(replies)) {
  39 + // 模糊匹配
  40 + replies = mpAutoReplyMapper.selectListByAppIdAndKeywordLike(appId, wxMessage.getContent());
  41 + }
  42 + }
  43 + // 1.2 消息类型
  44 + if (CollUtil.isEmpty(replies)) {
  45 + replies = mpAutoReplyMapper.selectListByAppIdAndMessage(appId, wxMessage.getMsgType());
  46 + }
  47 + if (CollUtil.isEmpty(replies)) {
  48 + return null;
  49 + }
  50 +
  51 + // 第二步,基于自动回复,创建消息
  52 +
  53 +
  54 + // 第三步,将消息转换成 WxMpXmlOutMessage 返回
  55 + return null;
  56 + }
  57 +
  58 +}
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/newsarticleitem/WxNewsArticleItemService.java deleted
1 -package cn.iocoder.yudao.module.mp.service.newsarticleitem;  
2 -  
3 -import java.util.*;  
4 -import javax.validation.*;  
5 -  
6 -import cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo.*;  
7 -import cn.iocoder.yudao.module.mp.dal.dataobject.newsarticleitem.WxNewsArticleItemDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -  
10 -/**  
11 - * 图文消息文章列表表 Service 接口  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -public interface WxNewsArticleItemService {  
16 -  
17 - /**  
18 - * 创建图文消息文章列表表  
19 - *  
20 - * @param createReqVO 创建信息  
21 - * @return 编号  
22 - */  
23 - Integer createWxNewsArticleItem(@Valid WxNewsArticleItemCreateReqVO createReqVO);  
24 -  
25 - /**  
26 - * 更新图文消息文章列表表  
27 - *  
28 - * @param updateReqVO 更新信息  
29 - */  
30 - void updateWxNewsArticleItem(@Valid WxNewsArticleItemUpdateReqVO updateReqVO);  
31 -  
32 - /**  
33 - * 删除图文消息文章列表表  
34 - *  
35 - * @param id 编号  
36 - */  
37 - void deleteWxNewsArticleItem(Integer id);  
38 -  
39 - /**  
40 - * 获得图文消息文章列表表  
41 - *  
42 - * @param id 编号  
43 - * @return 图文消息文章列表表  
44 - */  
45 - WxNewsArticleItemDO getWxNewsArticleItem(Integer id);  
46 -  
47 - /**  
48 - * 获得图文消息文章列表表 列表  
49 - *  
50 - * @param ids 编号  
51 - * @return 图文消息文章列表表 列表  
52 - */  
53 - List<WxNewsArticleItemDO> getWxNewsArticleItemList(Collection<Integer> ids);  
54 -  
55 - /**  
56 - * 获得图文消息文章列表表 分页  
57 - *  
58 - * @param pageReqVO 分页查询  
59 - * @return 图文消息文章列表表 分页  
60 - */  
61 - PageResult<WxNewsArticleItemDO> getWxNewsArticleItemPage(WxNewsArticleItemPageReqVO pageReqVO);  
62 -  
63 - /**  
64 - * 获得图文消息文章列表表 列表, 用于 Excel 导出  
65 - *  
66 - * @param exportReqVO 查询条件  
67 - * @return 图文消息文章列表表 列表  
68 - */  
69 - List<WxNewsArticleItemDO> getWxNewsArticleItemList(WxNewsArticleItemExportReqVO exportReqVO);  
70 -  
71 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/newsarticleitem/WxNewsArticleItemServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.mp.service.newsarticleitem;  
2 -  
3 -import org.springframework.stereotype.Service;  
4 -  
5 -import javax.annotation.Resource;  
6 -  
7 -import org.springframework.validation.annotation.Validated;  
8 -  
9 -import java.util.*;  
10 -  
11 -import cn.iocoder.yudao.module.mp.controller.admin.newsarticleitem.vo.*;  
12 -import cn.iocoder.yudao.module.mp.dal.dataobject.newsarticleitem.WxNewsArticleItemDO;  
13 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
14 -  
15 -import cn.iocoder.yudao.module.mp.convert.newsarticleitem.WxNewsArticleItemConvert;  
16 -import cn.iocoder.yudao.module.mp.dal.mysql.newsarticleitem.WxNewsArticleItemMapper;  
17 -  
18 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
19 -import static cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants.*;  
20 -  
21 -/**  
22 - * 图文消息文章列表表 Service 实现类  
23 - *  
24 - * @author 芋道源码  
25 - */  
26 -@Service  
27 -@Validated  
28 -public class WxNewsArticleItemServiceImpl implements WxNewsArticleItemService {  
29 -  
30 - @Resource  
31 - private WxNewsArticleItemMapper wxNewsArticleItemMapper;  
32 -  
33 - @Override  
34 - public Integer createWxNewsArticleItem(WxNewsArticleItemCreateReqVO createReqVO) {  
35 - // 插入  
36 - WxNewsArticleItemDO wxNewsArticleItem = WxNewsArticleItemConvert.INSTANCE.convert(createReqVO);  
37 - wxNewsArticleItemMapper.insert(wxNewsArticleItem);  
38 - // 返回  
39 - return wxNewsArticleItem.getId();  
40 - }  
41 -  
42 - @Override  
43 - public void updateWxNewsArticleItem(WxNewsArticleItemUpdateReqVO updateReqVO) {  
44 - // 校验存在  
45 - this.validateWxNewsArticleItemExists(updateReqVO.getId());  
46 - // 更新  
47 - WxNewsArticleItemDO updateObj = WxNewsArticleItemConvert.INSTANCE.convert(updateReqVO);  
48 - wxNewsArticleItemMapper.updateById(updateObj);  
49 - }  
50 -  
51 - @Override  
52 - public void deleteWxNewsArticleItem(Integer id) {  
53 - // 校验存在  
54 - this.validateWxNewsArticleItemExists(id);  
55 - // 删除  
56 - wxNewsArticleItemMapper.deleteById(id);  
57 - }  
58 -  
59 - private void validateWxNewsArticleItemExists(Integer id) {  
60 - if (wxNewsArticleItemMapper.selectById(id) == null) {  
61 - throw exception(COMMON_NOT_EXISTS);  
62 - }  
63 - }  
64 -  
65 - @Override  
66 - public WxNewsArticleItemDO getWxNewsArticleItem(Integer id) {  
67 - return wxNewsArticleItemMapper.selectById(id);  
68 - }  
69 -  
70 - @Override  
71 - public List<WxNewsArticleItemDO> getWxNewsArticleItemList(Collection<Integer> ids) {  
72 - return wxNewsArticleItemMapper.selectBatchIds(ids);  
73 - }  
74 -  
75 - @Override  
76 - public PageResult<WxNewsArticleItemDO> getWxNewsArticleItemPage(WxNewsArticleItemPageReqVO pageReqVO) {  
77 - return wxNewsArticleItemMapper.selectPage(pageReqVO);  
78 - }  
79 -  
80 - @Override  
81 - public List<WxNewsArticleItemDO> getWxNewsArticleItemList(WxNewsArticleItemExportReqVO exportReqVO) {  
82 - return wxNewsArticleItemMapper.selectList(exportReqVO);  
83 - }  
84 -  
85 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/newstemplate/WxNewsTemplateService.java deleted
1 -package cn.iocoder.yudao.module.mp.service.newstemplate;  
2 -  
3 -import java.util.*;  
4 -import javax.validation.*;  
5 -  
6 -import cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo.*;  
7 -import cn.iocoder.yudao.module.mp.dal.dataobject.newstemplate.WxNewsTemplateDO;  
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -  
10 -/**  
11 - * 图文消息模板 Service 接口  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -public interface WxNewsTemplateService {  
16 -  
17 - /**  
18 - * 创建图文消息模板  
19 - *  
20 - * @param createReqVO 创建信息  
21 - * @return 编号  
22 - */  
23 - Integer createWxNewsTemplate(@Valid WxNewsTemplateCreateReqVO createReqVO);  
24 -  
25 - /**  
26 - * 更新图文消息模板  
27 - *  
28 - * @param updateReqVO 更新信息  
29 - */  
30 - void updateWxNewsTemplate(@Valid WxNewsTemplateUpdateReqVO updateReqVO);  
31 -  
32 - /**  
33 - * 删除图文消息模板  
34 - *  
35 - * @param id 编号  
36 - */  
37 - void deleteWxNewsTemplate(Integer id);  
38 -  
39 - /**  
40 - * 获得图文消息模板  
41 - *  
42 - * @param id 编号  
43 - * @return 图文消息模板  
44 - */  
45 - WxNewsTemplateDO getWxNewsTemplate(Integer id);  
46 -  
47 - /**  
48 - * 获得图文消息模板列表  
49 - *  
50 - * @param ids 编号  
51 - * @return 图文消息模板列表  
52 - */  
53 - List<WxNewsTemplateDO> getWxNewsTemplateList(Collection<Integer> ids);  
54 -  
55 - /**  
56 - * 获得图文消息模板分页  
57 - *  
58 - * @param pageReqVO 分页查询  
59 - * @return 图文消息模板分页  
60 - */  
61 - PageResult<WxNewsTemplateDO> getWxNewsTemplatePage(WxNewsTemplatePageReqVO pageReqVO);  
62 -  
63 - /**  
64 - * 获得图文消息模板列表, 用于 Excel 导出  
65 - *  
66 - * @param exportReqVO 查询条件  
67 - * @return 图文消息模板列表  
68 - */  
69 - List<WxNewsTemplateDO> getWxNewsTemplateList(WxNewsTemplateExportReqVO exportReqVO);  
70 -  
71 -}  
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/service/newstemplate/WxNewsTemplateServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.mp.service.newstemplate;  
2 -  
3 -import org.springframework.stereotype.Service;  
4 -  
5 -import javax.annotation.Resource;  
6 -  
7 -import org.springframework.validation.annotation.Validated;  
8 -  
9 -import java.util.*;  
10 -  
11 -import cn.iocoder.yudao.module.mp.controller.admin.newstemplate.vo.*;  
12 -import cn.iocoder.yudao.module.mp.dal.dataobject.newstemplate.WxNewsTemplateDO;  
13 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
14 -  
15 -import cn.iocoder.yudao.module.mp.convert.newstemplate.WxNewsTemplateConvert;  
16 -import cn.iocoder.yudao.module.mp.dal.mysql.newstemplate.WxNewsTemplateMapper;  
17 -  
18 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
19 -import static cn.iocoder.yudao.module.mp.enums.ErrorCodeConstants.*;  
20 -  
21 -/**  
22 - * 图文消息模板 Service 实现类  
23 - *  
24 - * @author 芋道源码  
25 - */  
26 -@Service  
27 -@Validated  
28 -public class WxNewsTemplateServiceImpl implements WxNewsTemplateService {  
29 -  
30 - @Resource  
31 - private WxNewsTemplateMapper wxNewsTemplateMapper;  
32 -  
33 - @Override  
34 - public Integer createWxNewsTemplate(WxNewsTemplateCreateReqVO createReqVO) {  
35 - // 插入  
36 - WxNewsTemplateDO wxNewsTemplate = WxNewsTemplateConvert.INSTANCE.convert(createReqVO);  
37 - wxNewsTemplateMapper.insert(wxNewsTemplate);  
38 - // 返回  
39 - return wxNewsTemplate.getId();  
40 - }  
41 -  
42 - @Override  
43 - public void updateWxNewsTemplate(WxNewsTemplateUpdateReqVO updateReqVO) {  
44 - // 校验存在  
45 - this.validateWxNewsTemplateExists(updateReqVO.getId());  
46 - // 更新  
47 - WxNewsTemplateDO updateObj = WxNewsTemplateConvert.INSTANCE.convert(updateReqVO);  
48 - wxNewsTemplateMapper.updateById(updateObj);  
49 - }  
50 -  
51 - @Override  
52 - public void deleteWxNewsTemplate(Integer id) {  
53 - // 校验存在  
54 - this.validateWxNewsTemplateExists(id);  
55 - // 删除  
56 - wxNewsTemplateMapper.deleteById(id);  
57 - }  
58 -  
59 - private void validateWxNewsTemplateExists(Integer id) {  
60 - if (wxNewsTemplateMapper.selectById(id) == null) {  
61 - throw exception(COMMON_NOT_EXISTS);  
62 - }  
63 - }  
64 -  
65 - @Override  
66 - public WxNewsTemplateDO getWxNewsTemplate(Integer id) {  
67 - return wxNewsTemplateMapper.selectById(id);  
68 - }  
69 -  
70 - @Override  
71 - public List<WxNewsTemplateDO> getWxNewsTemplateList(Collection<Integer> ids) {  
72 - return wxNewsTemplateMapper.selectBatchIds(ids);  
73 - }  
74 -  
75 - @Override  
76 - public PageResult<WxNewsTemplateDO> getWxNewsTemplatePage(WxNewsTemplatePageReqVO pageReqVO) {  
77 - return wxNewsTemplateMapper.selectPage(pageReqVO);  
78 - }  
79 -  
80 - @Override  
81 - public List<WxNewsTemplateDO> getWxNewsTemplateList(WxNewsTemplateExportReqVO exportReqVO) {  
82 - return wxNewsTemplateMapper.selectList(exportReqVO);  
83 - }  
84 -  
85 -}