djz236 3 years ago
commit
1595b8a78f
  1. 188
      doc/message-center.sql
  2. 131
      message-center-api/message-center-api.iml
  3. 62
      message-center-api/pom.xml
  4. 68
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/AppMessageDto.java
  5. 79
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/Message.java
  6. 96
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageDto.java
  7. 62
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeign.java
  8. 56
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeignFallback.java
  9. 78
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageQuery.java
  10. 78
      message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageVo.java
  11. 46
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFile.java
  12. 45
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileDto.java
  13. 65
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileFeign.java
  14. 71
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileFeignFallback.java
  15. 45
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileQuery.java
  16. 45
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileVo.java
  17. 43
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlist.java
  18. 42
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistDto.java
  19. 65
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistFeign.java
  20. 71
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistFeignFallback.java
  21. 42
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistQuery.java
  22. 42
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistVo.java
  23. 49
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageList.java
  24. 51
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListDto.java
  25. 120
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListFeign.java
  26. 116
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListFeignFallback.java
  27. 37
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListGetMsgTypeVo.java
  28. 55
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListJoinMsgVo.java
  29. 48
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListQuery.java
  30. 48
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListVo.java
  31. 25
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppCrossIcon.java
  32. 36
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppLastMsgVo.java
  33. 35
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppLongsIcon.java
  34. 20
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppMessageListQuery.java
  35. 55
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppMessageListVo.java
  36. 27
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppMsgMainVo.java
  37. 27
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListFeign.java
  38. 19
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListFeignFallback.java
  39. 21
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListQuery.java
  40. 37
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListVo.java
  41. 37
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java
  42. 36
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleDto.java
  43. 65
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleFeign.java
  44. 71
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleFeignFallback.java
  45. 36
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleQuery.java
  46. 36
      message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleVo.java
  47. 40
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReply.java
  48. 39
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyDto.java
  49. 65
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyFeign.java
  50. 71
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyFeignFallback.java
  51. 39
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyQuery.java
  52. 39
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyVo.java
  53. 42
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageType.java
  54. 41
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeDto.java
  55. 52
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeFeign.java
  56. 48
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeFeignFallback.java
  57. 40
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeQuery.java
  58. 39
      message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeVo.java
  59. 213
      message-center-biz/message-center-biz.iml
  60. 81
      message-center-biz/pom.xml
  61. 23
      message-center-biz/src/main/java/com/yxt/messagecenter/MessageCenterApplication.java
  62. 40
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageMapper.java
  63. 13
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageMapper.xml
  64. 113
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageRest.java
  65. 170
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java
  66. 40
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileMapper.java
  67. 13
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileMapper.xml
  68. 94
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileRest.java
  69. 111
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileService.java
  70. 40
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistMapper.java
  71. 13
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistMapper.xml
  72. 94
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistRest.java
  73. 103
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistService.java
  74. 90
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java
  75. 190
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml
  76. 177
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java
  77. 332
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java
  78. 38
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/wx/WxMessageListRest.java
  79. 40
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java
  80. 13
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml
  81. 94
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleRest.java
  82. 99
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java
  83. 40
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyMapper.java
  84. 13
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyMapper.xml
  85. 94
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyRest.java
  86. 103
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyService.java
  87. 33
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeMapper.java
  88. 20
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeMapper.xml
  89. 72
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeRest.java
  90. 69
      message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeService.java
  91. 70
      message-center-biz/src/main/java/com/yxt/messagecenter/conf/Swagger2Config.java
  92. 34
      message-center-biz/src/main/resources/application-dev.yml
  93. 29
      message-center-biz/src/main/resources/application-pro.yml
  94. 13
      message-center-biz/src/main/resources/application-test.yml
  95. 48
      message-center-biz/src/main/resources/application.yml
  96. 50
      message-center-biz/src/main/resources/logback-spring.xml
  97. 12
      message-center.iml
  98. 16
      pom.xml

188
doc/message-center.sql

@ -0,0 +1,188 @@
-- 1、消息体
DROP TABLE IF EXISTS `message`;
CREATE TABLE `message`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(32) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(消息产生时间)',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(32) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(32) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
`msgTypeSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息类别Sid',
`msgType` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息类别名称',
`msgTitle` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息标题',
`msgContent` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息内容',
`msgSource` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '来源(资源名称)',
`senderSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发送人sid',
`senderName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发起人姓名',
`senderDeptSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发送人部门Id',
`senderDeptName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发起人部门名称',
`businessSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '业务Id(扩展字段,与工作相关)',
`moduleSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '插件Sid',
`moduleAction` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '具体页面action',
`app_type` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '0.内置Activity 1.内置WebView 2.RePlugin插件',
`args_json` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参数(规则),json类型的传参(必须为 string、string)',
`h5_url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '目标网页地址',
`xcx_url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '小程序页面地址',
`msgTargetUri` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '推送的消息打开的action(APP),推送参数对应class_name',
PRIMARY KEY (`id`) USING BTREE,
INDEX `id`(`id`) USING BTREE
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='消息体';
-- 2、消息列表
DROP TABLE IF EXISTS `message_list`;
CREATE TABLE `message_list`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(发送时间)',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间(阅读时间)',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态(阅读状态,0未阅,1已阅)',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`msgSid` varchar(64) DEFAULT NULL COMMENT '消息sid',
`receiverSid` varchar(64) DEFAULT NULL COMMENT '接收人sid',
`receiverName` varchar(64) DEFAULT NULL COMMENT '接收人姓名',
`receiverDeptSid` varchar(64) DEFAULT NULL COMMENT '接收人部门sid',
`receiverDeptName` varchar(64) DEFAULT NULL COMMENT '接收人部门名称',
`rDelStatus` int(32) DEFAULT NULL COMMENT '接收人删除状态',
`sDelStatus` int(32) DEFAULT NULL COMMENT '发送人删除状态',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='消息列表';
-- 3、消息回复
DROP TABLE IF EXISTS `message_reply`;
CREATE TABLE `message_reply`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(回复时间)',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`msgSid` varchar(64) DEFAULT NULL COMMENT '消息体Id',
`replyConent` varchar(64) DEFAULT NULL COMMENT '回复内容',
`replyPersonName` varchar(32) DEFAULT NULL COMMENT '回复人姓名',
`replyUserSid` varchar(64) DEFAULT NULL COMMENT '回复用户sid',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='消息回复';
-- 4、消息附件
DROP TABLE IF EXISTS `message_file`;
CREATE TABLE `message_file`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`msgSid` varchar(64) DEFAULT NULL COMMENT '消息体Id',
`fileName` varchar(64) DEFAULT NULL COMMENT '名称',
`fileType` varchar(64) DEFAULT NULL COMMENT '文件类型',
`filePath` varchar(500) DEFAULT NULL COMMENT '路径',
`attachType` varchar(64) DEFAULT NULL COMMENT '附件类型',
`fileSize` int(32) DEFAULT NULL COMMENT '文件大小 K',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='消息附件';
-- 5、提醒规则
DROP TABLE IF EXISTS `message_remindRule`;
CREATE TABLE `message_remindRule`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注(提醒方式)',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`ruleCode` varchar(64) DEFAULT NULL COMMENT '代码',
`rules` int(32) DEFAULT NULL COMMENT '提前提醒0,超期循环提醒1,循环提醒2',
`remindWay` int(32) DEFAULT NULL COMMENT '系统消息0,手机短信1',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='提醒规则';
-- 6、消息转发记录
DROP TABLE IF EXISTS `message_forwardList`;
CREATE TABLE `message_forwardList`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`msgSid` varchar(64) DEFAULT NULL COMMENT '消息Id',
`forwardTime` timestamp DEFAULT NULL COMMENT '转发时间',
`forwardPerson` varchar(64) DEFAULT NULL COMMENT '转发人',
`forwordMsgSid` varchar(64) DEFAULT NULL COMMENT '转发的新消息ID',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='消息转发记录';
-- 7、消息类别
DROP TABLE IF EXISTS `message_type`;
CREATE TABLE `message_type`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`msgType` varchar(64) DEFAULT NULL COMMENT '消息类别名称',
`crossIconUrl` varchar(64) DEFAULT NULL COMMENT '横排消息类别图标',
`longIconUrl` varchar(64) DEFAULT NULL COMMENT '纵排消息类别图标',
`sort` int(32) DEFAULT NULL COMMENT '排序',
`identifier` varchar(64) DEFAULT NULL COMMENT '消息标识:0001为小程序、0002为app',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='消息类别';

131
message-center-api/message-center-api.iml

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="yxt-common-core" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.5" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-starter:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.13" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-ui:2.0.5" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-core:5.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.64" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.64" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.4" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:10.10.1" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:10.10.1" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:10.10.1" level="project" />
<orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:29.0-android" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.73" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.20.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.4" level="project" />
</component>
</module>

62
message-center-api/pom.xml

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yxt</groupId>
<artifactId>yxt-parent</artifactId>
<version>0.0.1</version>
<relativePath/>
</parent>
<groupId>com.yxt.messagecenter</groupId>
<artifactId>message-center-api</artifactId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-core</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-annotation</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-annotations</artifactId>
<version>2.0.4</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

68
message-center-api/src/main/java/com/yxt/messagecenter/api/message/AppMessageDto.java

@ -0,0 +1,68 @@
package com.yxt.messagecenter.api.message;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/23
*/
@Data
public class AppMessageDto implements Dto {
@ApiModelProperty("消息体sid")
private String sid;
@ApiModelProperty("消息类别sid")
private String msgTypeSid;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("来源(资源名称)")
private String msgSource;
@ApiModelProperty("发送人sid")
private String senderSid;
@ApiModelProperty("发起人姓名")
private String senderName;
@ApiModelProperty("发送人部门Id")
private String senderDeptSid;
@ApiModelProperty("发起人部门名称")
private String senderDeptName;
@ApiModelProperty("业务Id(扩展字段,与工作相关)")
private String businessSid;
@ApiModelProperty("插件Sid")
private String moduleSid;
@ApiModelProperty("具体页面action")
private String moduleAction;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String app_type;
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)")
private String args_json;
@ApiModelProperty("目标网页地址")
private String h5_url;
@ApiModelProperty("小程序页面地址")
private String xcx_url;
@ApiModelProperty("推送的消息打开的action(APP),推送参数对应class_name")
private String msgTargetUri;
}

79
message-center-api/src/main/java/com/yxt/messagecenter/api/message/Message.java

@ -0,0 +1,79 @@
package com.yxt.messagecenter.api.message;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: Message.java <br/>
* Class: com.yxt.messagecenter.api.message.Message <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息体", description = "消息体")
@TableName("message")
@Data
public class Message extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("消息类别sid")
private String msgTypeSid;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("来源(资源名称)")
private String msgSource;
@ApiModelProperty("发送人sid")
private String senderSid;
@ApiModelProperty("发起人姓名")
private String senderName;
@ApiModelProperty("发送人部门Id")
private String senderDeptSid;
@ApiModelProperty("发起人部门名称")
private String senderDeptName;
@ApiModelProperty("业务Id(扩展字段,与工作相关)")
private String businessSid;
@ApiModelProperty("插件Sid")
private String moduleSid;
@ApiModelProperty("具体页面action")
private String moduleAction;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String app_type;
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)")
private String args_json;
@ApiModelProperty("目标网页地址")
private String h5_url;
@ApiModelProperty("小程序页面地址")
private String xcx_url;
@ApiModelProperty("推送的消息打开的action(APP),推送参数对应class_name")
private String msgTargetUri;
}

96
message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageDto.java

@ -0,0 +1,96 @@
package com.yxt.messagecenter.api.message;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* Project: message-center(消息中心) <br/>
* File: MessageDto.java <br/>
* Class: com.yxt.messagecenter.api.message.MessageDto <br/>
* Description: 消息体 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息体 数据传输对象", description = "消息体 数据传输对象")
@Data
public class MessageDto implements Dto {
@ApiModelProperty(value = "消息类别Sid", required = true)
@NotBlank(message = "消息类别Sid不能为空")
private String msgTypeKey;
@ApiModelProperty(value = "消息类别名称", required = true)
@NotBlank(message = "消息类别名称不能为空")
private String msgType;
@ApiModelProperty(value = "消息标题", required = true)
@NotBlank(message = "消息标题不能为空")
private String msgTitle;
@ApiModelProperty(value = "消息内容", required = true)
@NotBlank(message = "消息内容不能为空")
private String msgContent;
@ApiModelProperty(value = "来源(资源名称)", required = true)
@NotBlank(message = "来源(资源名称)不能为空")
private String msgSource;
@ApiModelProperty(value = "发送人sid", required = true)
@NotBlank(message = "发送人sid不能为空")
private String senderSid;
@ApiModelProperty(value = "发起人姓名", required = true)
@NotBlank(message = "发起人姓名不能为空")
private String senderName;
@ApiModelProperty(value = "发送人部门Id")
private String senderDeptSid;
@ApiModelProperty(value = "发起人部门名称")
private String senderDeptName;
@ApiModelProperty("业务Id(扩展字段,与工作相关)")
private String businessSid;
@ApiModelProperty("插件Sid")
private String moduleSid;
@ApiModelProperty("具体页面action")
private String moduleAction;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String app_type;
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)")
private String args_json;
@ApiModelProperty("目标网页地址")
private String h5_url;
@ApiModelProperty("小程序页面地址")
private String xcx_url;
@ApiModelProperty("推送的消息打开的action(APP),推送参数对应class_name")
private String msgTargetUri;
@ApiModelProperty(value = "接收人(多个人员以,分隔)", required = true)
@NotBlank(message = "接收人姓名不能为空")
private String receiveNames;
@ApiModelProperty(value = "接收人sid(多个人员以,分隔)", required = true)
@NotBlank(message = "接收人sid不能为空")
private String receiveSids;
}

62
message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeign.java

@ -0,0 +1,62 @@
package com.yxt.messagecenter.api.message;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFeign.java <br/>
* Class: com.yxt.messagecenter.api.message.MessageFeign <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息体")
@FeignClient(
contextId = "message-center-Message",
name = "message-center",
path = "v1/message",
fallback = MessageFeignFallback.class)
public interface MessageFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<MessageVo>> listPage(@RequestBody PagerQuery<MessageQuery> pq);
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageDto dto, @PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<Message> fetchBySid(@PathVariable("sid") String sid);
/***************************************手机端接口*********************************************/
@ApiOperation("手机端保存/修改消息体")
@PostMapping("/saveOrUpdateAppMessage")
public ResultBean saveOrUpdateAppMessage(@RequestBody AppMessageDto dto);
/**********************************************************************************************/
}

56
message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageFeignFallback.java

@ -0,0 +1,56 @@
package com.yxt.messagecenter.api.message;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.message.MessageFeignFallback <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageFeignFallback implements MessageFeign {
@Override
public ResultBean<PagerVo<MessageVo>> listPage(PagerQuery<MessageQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/message/listPage无法访问");
}
@Override
public ResultBean save(MessageDto dto) {
return ResultBean.fireFail().setMsg("接口message-center/message/save无法访问");
}
@Override
public ResultBean update(MessageDto dto, String sid) {
return ResultBean.fireFail().setMsg("接口message-center/message/update无法访问");
}
@Override
public ResultBean del(String ids) {
return ResultBean.fireFail().setMsg("接口message-center/message/del无法访问");
}
@Override
public ResultBean<Message> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/message/fetch无法访问");
}
@Override
public ResultBean saveOrUpdateAppMessage(AppMessageDto dto) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/message/saveOrUpdateAppMessage无法访问");
}
}

78
message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageQuery.java

@ -0,0 +1,78 @@
package com.yxt.messagecenter.api.message;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageQuery.java <br/>
* Class: com.yxt.messagecenter.api.message.MessageQuery <br/>
* Description: 消息体 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息体 查询条件", description = "消息体 查询条件")
@Data
public class MessageQuery implements Query {
@ApiModelProperty("消息类别Sid")
private String msgTypeSid;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("来源(资源名称)")
private String msgSource;
@ApiModelProperty("发送人sid")
private String senderSid;
@ApiModelProperty("发起人姓名")
private String senderName;
@ApiModelProperty("发送人部门Id")
private String senderDeptSid;
@ApiModelProperty("发起人部门名称")
private String senderDeptName;
@ApiModelProperty("业务Id(扩展字段,与工作相关)")
private String businessSid;
@ApiModelProperty("插件Sid")
private String moduleSid;
@ApiModelProperty("具体页面action")
private String moduleAction;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String app_type;
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)")
private String args_json;
@ApiModelProperty("目标网页地址")
private String h5_url;
@ApiModelProperty("小程序页面地址")
private String xcx_url;
@ApiModelProperty("推送的消息打开的action(APP),推送参数对应class_name")
private String msgTargetUri;
}

78
message-center-api/src/main/java/com/yxt/messagecenter/api/message/MessageVo.java

@ -0,0 +1,78 @@
package com.yxt.messagecenter.api.message;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageVo.java <br/>
* Class: com.yxt.messagecenter.api.message.MessageVo <br/>
* Description: 消息体 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息体 视图数据对象", description = "消息体 视图数据对象")
@Data
public class MessageVo implements Vo {
@ApiModelProperty("消息类别Sid")
private String msgTypeSid;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("来源(资源名称)")
private String msgSource;
@ApiModelProperty("发送人sid")
private String senderSid;
@ApiModelProperty("发起人姓名")
private String senderName;
@ApiModelProperty("发送人部门Id")
private String senderDeptSid;
@ApiModelProperty("发起人部门名称")
private String senderDeptName;
@ApiModelProperty("业务Id(扩展字段,与工作相关)")
private String businessSid;
@ApiModelProperty("插件Sid")
private String moduleSid;
@ApiModelProperty("具体页面action")
private String moduleAction;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String app_type;
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)")
private String args_json;
@ApiModelProperty("目标网页地址")
private String h5_url;
@ApiModelProperty("小程序页面地址")
private String xcx_url;
@ApiModelProperty("推送的消息打开的action(APP),推送参数对应class_name")
private String msgTargetUri;
}

46
message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFile.java

@ -0,0 +1,46 @@
package com.yxt.messagecenter.api.messagefile;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFile.java <br/>
* Class: com.yxt.messagecenter.api.messagefile.MessageFile <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息附件", description = "消息附件")
@TableName("message_file")
@Data
public class MessageFile extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("名称")
private String fileName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("路径")
private String filePath;
@ApiModelProperty("附件类型")
private String attachType;
@ApiModelProperty("文件大小 K")
private Integer fileSize;
}

45
message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileDto.java

@ -0,0 +1,45 @@
package com.yxt.messagecenter.api.messagefile;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileDto.java <br/>
* Class: com.yxt.messagecenter.api.messagefile.MessageFileDto <br/>
* Description: 消息附件 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息附件 数据传输对象", description = "消息附件 数据传输对象")
@Data
public class MessageFileDto implements Dto {
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("名称")
private String fileName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("路径")
private String filePath;
@ApiModelProperty("附件类型")
private String attachType;
@ApiModelProperty("文件大小 K")
private Integer fileSize;
}

65
message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileFeign.java

@ -0,0 +1,65 @@
package com.yxt.messagecenter.api.messagefile;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileFeign.java <br/>
* Class: com.yxt.messagecenter.api.messagefile.MessageFileFeign <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息附件")
@FeignClient(
contextId = "message-center-MessageFile",
name = "message-center",
path = "v1/messagefile",
fallback = MessageFileFeignFallback.class)
public interface MessageFileFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<MessageFileVo>> listPage(@RequestBody PagerQuery<MessageFileQuery> pq);
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<MessageFileVo>> listAll(@RequestBody MessageFileQuery query);
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<MessageFileVo>> list();
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageFileDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageFileDto dto,@PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<MessageFileVo> fetch(@PathVariable("id") String id);
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<MessageFile> fetchBySid(@PathVariable("sid") String sid);
}

71
message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileFeignFallback.java

@ -0,0 +1,71 @@
package com.yxt.messagecenter.api.messagefile;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.messagefile.MessageFileFeignFallback <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageFileFeignFallback implements MessageFileFeign {
@Override
public ResultBean<PagerVo<MessageFileVo>> listPage(PagerQuery<MessageFileQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagefile/listPage无法访问");
}
@Override
public ResultBean<List<MessageFileVo>> listAll(MessageFileQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagefile/listAll无法访问");
}
@Override
public ResultBean<List<MessageFileVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagefile/list无法访问");
}
@Override
public ResultBean save(MessageFileDto dto){
return ResultBean.fireFail().setMsg("接口message-center/messagefile/save无法访问");
}
@Override
public ResultBean update(MessageFileDto dto,String sid){
return ResultBean.fireFail().setMsg("接口message-center/messagefile/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口message-center/messagefile/del无法访问");
}
@Override
public ResultBean<MessageFileVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagefile/fetch无法访问");
}
@Override
public ResultBean<MessageFile> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagefile/fetch无法访问");
}
}

45
message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileQuery.java

@ -0,0 +1,45 @@
package com.yxt.messagecenter.api.messagefile;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileQuery.java <br/>
* Class: com.yxt.messagecenter.api.messagefile.MessageFileQuery <br/>
* Description: 消息附件 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息附件 查询条件", description = "消息附件 查询条件")
@Data
public class MessageFileQuery implements Query {
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("名称")
private String fileName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("路径")
private String filePath;
@ApiModelProperty("附件类型")
private String attachType;
@ApiModelProperty("文件大小 K")
private Integer fileSize;
}

45
message-center-api/src/main/java/com/yxt/messagecenter/api/messagefile/MessageFileVo.java

@ -0,0 +1,45 @@
package com.yxt.messagecenter.api.messagefile;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileVo.java <br/>
* Class: com.yxt.messagecenter.api.messagefile.MessageFileVo <br/>
* Description: 消息附件 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息附件 视图数据对象", description = "消息附件 视图数据对象")
@Data
public class MessageFileVo implements Vo {
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("名称")
private String fileName;
@ApiModelProperty("文件类型")
private String fileType;
@ApiModelProperty("路径")
private String filePath;
@ApiModelProperty("附件类型")
private String attachType;
@ApiModelProperty("文件大小 K")
private Integer fileSize;
}

43
message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlist.java

@ -0,0 +1,43 @@
package com.yxt.messagecenter.api.messageforwardlist;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlist.java <br/>
* Class: com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息转发记录", description = "消息转发记录")
@TableName("message_forwardlist")
@Data
public class MessageForwardlist extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("消息Id")
private String msgSid;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("转发时间")
private Date forwardTime;
@ApiModelProperty("转发人")
private String forwardPerson;
@ApiModelProperty("转发的新消息ID")
private String forwordMsgSid;
}

42
message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistDto.java

@ -0,0 +1,42 @@
package com.yxt.messagecenter.api.messageforwardlist;
import com.yxt.common.core.dto.Dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistDto.java <br/>
* Class: com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistDto <br/>
* Description: 消息转发记录 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息转发记录 数据传输对象", description = "消息转发记录 数据传输对象")
@Data
public class MessageForwardlistDto implements Dto {
@ApiModelProperty("消息Id")
private String msgSid;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("转发时间")
private Date forwardTime;
@ApiModelProperty("转发人")
private String forwardPerson;
@ApiModelProperty("转发的新消息ID")
private String forwordMsgSid;
}

65
message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistFeign.java

@ -0,0 +1,65 @@
package com.yxt.messagecenter.api.messageforwardlist;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistFeign.java <br/>
* Class: com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistFeign <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息转发记录")
@FeignClient(
contextId = "message-center-MessageForwardlist",
name = "message-center",
path = "v1/messageforwardlist",
fallback = MessageForwardlistFeignFallback.class)
public interface MessageForwardlistFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<MessageForwardlistVo>> listPage(@RequestBody PagerQuery<MessageForwardlistQuery> pq);
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<MessageForwardlistVo>> listAll(@RequestBody MessageForwardlistQuery query);
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<MessageForwardlistVo>> list();
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageForwardlistDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageForwardlistDto dto,@PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<MessageForwardlistVo> fetch(@PathVariable("id") String id);
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<MessageForwardlist> fetchBySid(@PathVariable("sid") String sid);
}

71
message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistFeignFallback.java

@ -0,0 +1,71 @@
package com.yxt.messagecenter.api.messageforwardlist;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistFeignFallback <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageForwardlistFeignFallback implements MessageForwardlistFeign {
@Override
public ResultBean<PagerVo<MessageForwardlistVo>> listPage(PagerQuery<MessageForwardlistQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageforwardlist/listPage无法访问");
}
@Override
public ResultBean<List<MessageForwardlistVo>> listAll(MessageForwardlistQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageforwardlist/listAll无法访问");
}
@Override
public ResultBean<List<MessageForwardlistVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageforwardlist/list无法访问");
}
@Override
public ResultBean save(MessageForwardlistDto dto){
return ResultBean.fireFail().setMsg("接口message-center/messageforwardlist/save无法访问");
}
@Override
public ResultBean update(MessageForwardlistDto dto,String sid){
return ResultBean.fireFail().setMsg("接口message-center/messageforwardlist/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口message-center/messageforwardlist/del无法访问");
}
@Override
public ResultBean<MessageForwardlistVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageforwardlist/fetch无法访问");
}
@Override
public ResultBean<MessageForwardlist> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageforwardlist/fetch无法访问");
}
}

42
message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistQuery.java

@ -0,0 +1,42 @@
package com.yxt.messagecenter.api.messageforwardlist;
import com.yxt.common.core.query.Query;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistQuery.java <br/>
* Class: com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistQuery <br/>
* Description: 消息转发记录 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息转发记录 查询条件", description = "消息转发记录 查询条件")
@Data
public class MessageForwardlistQuery implements Query {
@ApiModelProperty("消息Id")
private String msgSid;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("转发时间")
private Date forwardTime;
@ApiModelProperty("转发人")
private String forwardPerson;
@ApiModelProperty("转发的新消息ID")
private String forwordMsgSid;
}

42
message-center-api/src/main/java/com/yxt/messagecenter/api/messageforwardlist/MessageForwardlistVo.java

@ -0,0 +1,42 @@
package com.yxt.messagecenter.api.messageforwardlist;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistVo.java <br/>
* Class: com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo <br/>
* Description: 消息转发记录 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息转发记录 视图数据对象", description = "消息转发记录 视图数据对象")
@Data
public class MessageForwardlistVo implements Vo {
@ApiModelProperty("消息Id")
private String msgSid;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("转发时间")
private Date forwardTime;
@ApiModelProperty("转发人")
private String forwardPerson;
@ApiModelProperty("转发的新消息ID")
private String forwordMsgSid;
}

49
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageList.java

@ -0,0 +1,49 @@
package com.yxt.messagecenter.api.messagelist;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageList.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageList <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息列表", description = "消息列表")
@TableName("message_list")
@Data
public class MessageList extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("消息sid")
private String msgSid;
@ApiModelProperty("接收人sid")
private String receiverSid;
@ApiModelProperty("接收人姓名")
private String receiverName;
@ApiModelProperty("接收人部门sid")
private String receiverDeptSid;
@ApiModelProperty("接收人部门名称")
private String receiverDeptName;
@ApiModelProperty("接收人删除状态")
private Integer rDelStatus;
@ApiModelProperty("发送人删除状态")
private Integer sDelStatus;
}

51
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListDto.java

@ -0,0 +1,51 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListDto.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListDto <br/>
* Description: 消息列表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息列表 数据传输对象", description = "消息列表 数据传输对象")
@Data
public class MessageListDto implements Dto {
@ApiModelProperty("消息sid")
private String msgSid;
@ApiModelProperty("接收人sid")
private String receiverSid;
@ApiModelProperty("接收人姓名")
private String receiverName;
@ApiModelProperty("接收人部门sid")
private String receiverDeptSid;
@ApiModelProperty("接收人部门名称")
private String receiverDeptName;
@ApiModelProperty("接收人删除状态")
private Integer rDelStatus;
@ApiModelProperty("发送人删除状态")
private Integer sDelStatus;
@ApiModelProperty("状态(阅读状态,0未阅,1已阅)")
private Integer state = 0;
}

120
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListFeign.java

@ -0,0 +1,120 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListVo;
import com.yxt.messagecenter.api.messagelist.app.AppMsgMainVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: WxMessageListFeign.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListFeign <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息列表")
@FeignClient(
contextId = "message-center-MessageList",
name = "message-center",
path = "v1/messagelist",
fallback = MessageListFeignFallback.class)
public interface MessageListFeign {
@ApiOperation("根据条件分页查询未读消息列表")
@PostMapping(value="/noreadListPage")
public ResultBean<PagerVo<MessageListJoinMsgVo>> noreadListPage(@RequestBody PagerQuery<MessageListQuery> pq);
@ApiOperation("根据条件分页查询已读消息列表")
@PostMapping(value="/readListPage")
public ResultBean<PagerVo<MessageListJoinMsgVo>> readListPage(@RequestBody PagerQuery<MessageListQuery> pq);
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<MessageListVo>> list();
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageListDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageListDto dto, @PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
/* @ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<MessageListVo> fetch(@PathVariable("id") String id);
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<MessageList> fetchBySid(@PathVariable("sid") String sid);*/
@ApiOperation("获取一条记录")
@GetMapping("/fetchByMsgSid/{sid}")
public ResultBean<Message> fetchByMsgSid(@PathVariable("sid") String sid);
@ApiOperation("全部设为已读")
@GetMapping("/allChangeRead")
public ResultBean<MessageList> allChangeRead();
@ApiOperation("批量设为已读")
@GetMapping("/changeRead")
@ApiImplicitParam(name = "sids")
public ResultBean<MessageList> changeRead(@RequestParam("sids") String sids);
@ApiOperation("批量设为未读")
@GetMapping("/noChangeRead")
@ApiImplicitParam(name = "sids")
public ResultBean<MessageList> changeUnRead(@RequestParam("sids") String sids);
/**
* 删除批量删除
*
* @param sids
* @return
*/
@ApiOperation("删除、批量删除")
@GetMapping("/deleteBySids")
@ApiImplicitParam(name = "sids")
public ResultBean deleteBySids(@RequestParam("sids") String sids);
@ApiOperation("获取待阅数量")
@GetMapping("/selectUnReadCount")
public ResultBean<Integer> selectUnReadCount(@RequestParam(value = "msgTypeSid", required = false) String msgTypeSid,
@RequestParam("userSid") String userSid);
/********************************************************手机端接口*********************************************************/
@ApiOperation("手机端查询消息主页面")
@GetMapping("/getAppMsgMainList")
public ResultBean<AppMsgMainVo> getAppMsgMainList(@RequestParam("userSid") String userSid);
@ApiOperation("手机端查询消息列表")
@PostMapping("/getAppMsgListByUserSid")
public ResultBean<PagerVo<AppMessageListVo>> getAppMsgListByUserSid(@RequestBody PagerQuery<AppMessageListQuery> pq);
@ApiOperation("手机端用户根据消息类型批量设为已读")
@PostMapping("/updateAppReadByType")
public ResultBean updateAppReadByType(@RequestParam ("msgTypeSid") String msgTypeSid, @RequestParam ("userSid") String userSid);
/****************************************************************************************************************************/
}

116
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListFeignFallback.java

@ -0,0 +1,116 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
import com.yxt.messagecenter.api.messagelist.app.AppMsgMainVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListFeignFallback <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageListFeignFallback implements MessageListFeign {
@Override
public ResultBean<PagerVo<MessageListJoinMsgVo>> noreadListPage(PagerQuery<MessageListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/noreadListPage无法访问");
}
@Override
public ResultBean<PagerVo<MessageListJoinMsgVo>> readListPage(PagerQuery<MessageListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/readListPage无法访问");
}
@Override
public ResultBean<List<MessageListVo>> list() {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/list无法访问");
}
@Override
public ResultBean save(MessageListDto dto) {
return ResultBean.fireFail().setMsg("接口message-center/messagelist/save无法访问");
}
@Override
public ResultBean update(MessageListDto dto, String sid) {
return ResultBean.fireFail().setMsg("接口message-center/messagelist/update无法访问");
}
@Override
public ResultBean del(String ids) {
return ResultBean.fireFail().setMsg("接口message-center/messagelist/del无法访问");
}
@Override
public ResultBean<Message> fetchByMsgSid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/fetchByMsgSid无法访问");
}
@Override
public ResultBean<MessageList> allChangeRead() {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/allChangeRead无法访问");
}
@Override
public ResultBean<MessageList> changeRead(String sids) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/changeRead无法访问");
}
@Override
public ResultBean<MessageList> changeUnRead(String sids) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/changeUnRead无法访问");
}
@Override
public ResultBean deleteBySids(String sids) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/deleteBySids无法访问");
}
@Override
public ResultBean selectUnReadCount(String msgTypeSid, String userSid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/selectUnReadCount无法访问");
}
@Override
public ResultBean<AppMsgMainVo> getAppMsgMainList(String userSid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/getAppMsgMainList无法访问");
}
@Override
public ResultBean getAppMsgListByUserSid(PagerQuery<AppMessageListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/getAppMsgListByUserSid无法访问");
}
@Override
public ResultBean updateAppReadByType(String msgTypeSid, String userSid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagelist/updateAppReadByType无法访问");
}
}

37
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListGetMsgTypeVo.java

@ -0,0 +1,37 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListVo.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListVo <br/>
* Description: 消息列表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class MessageListGetMsgTypeVo implements Vo {
@ApiModelProperty("消息类别key")
private String dictKey;
@ApiModelProperty("消息类别名称")
private String dictValue;
@ApiModelProperty("消息状态 0未读 1已读")
private Integer state;
@ApiModelProperty("图标路径")
private String iconImg;
}

55
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListJoinMsgVo.java

@ -0,0 +1,55 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListVo.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListVo <br/>
* Description: 消息列表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息列表 视图数据对象", description = "消息列表 视图数据对象")
@Data
public class MessageListJoinMsgVo implements Vo {
@ApiModelProperty("消息列表sid")
private String sid;
@ApiModelProperty("消息sid")
private String msgSid;
@ApiModelProperty("发起人姓名")
private String senderName;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息日期")
private String createTime;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("来源(资源名称)")
private String msgSource;
@ApiModelProperty("阅读状态")
private String state;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("接收人sid")
private String receiverSid;
}

48
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListQuery.java

@ -0,0 +1,48 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListQuery.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListQuery <br/>
* Description: 消息列表 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息列表 查询条件", description = "消息列表 查询条件")
@Data
public class MessageListQuery implements Query {
@ApiModelProperty("发起人姓名")
private String senderName;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("来源(资源名称)")
private String msgSource;
@ApiModelProperty("接收开始日期")
private String createDateStart;
@ApiModelProperty("接收结束日期")
private String createDateEnd;
@ApiModelProperty("接收人sid")
private String receiverSid;
}

48
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/MessageListVo.java

@ -0,0 +1,48 @@
package com.yxt.messagecenter.api.messagelist;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListVo.java <br/>
* Class: com.yxt.messagecenter.api.messagelist.MessageListVo <br/>
* Description: 消息列表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息列表 视图数据对象", description = "消息列表 视图数据对象")
@Data
public class MessageListVo implements Vo {
@ApiModelProperty("消息sid")
private String msgSid;
@ApiModelProperty("接收人sid")
private String receiverSid;
@ApiModelProperty("接收人姓名")
private String receiverName;
@ApiModelProperty("接收人部门sid")
private String receiverDeptSid;
@ApiModelProperty("接收人部门名称")
private String receiverDeptName;
@ApiModelProperty("接收人删除状态")
private Integer rDelStatus;
@ApiModelProperty("发送人删除状态")
private Integer sDelStatus;
}

25
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppCrossIcon.java

@ -0,0 +1,25 @@
package com.yxt.messagecenter.api.messagelist.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/27
*/
@Data
public class AppCrossIcon{
@ApiModelProperty("消息类型sid")
private String msgTypeSid;
@ApiModelProperty("消息类型")
private String msgType;
@ApiModelProperty("icon路径")
private String iconUrl;
@ApiModelProperty("未读数量")
private String num;
}

36
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppLastMsgVo.java

@ -0,0 +1,36 @@
package com.yxt.messagecenter.api.messagelist.app;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/27
*/
@ApiModel("最近一次消息")
@Data
public class AppLastMsgVo implements Vo {
@ApiModelProperty("发送时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private String sendTime;
@ApiModelProperty("是否已读")
private String num;
@ApiModelProperty("标题")
private String msgTitle;
@ApiModelProperty("内容")
private String msgContent;
@ApiModelProperty("消息列表sid")
private String sid;
@ApiModelProperty("消息体sid")
private String msgSid;
}

35
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppLongsIcon.java

@ -0,0 +1,35 @@
package com.yxt.messagecenter.api.messagelist.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/27
*/
@Data
public class AppLongsIcon {
@ApiModelProperty("消息类型")
private String msgType;
@ApiModelProperty("消息类型sid")
private String msgTypeSid;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("icon路径")
private String iconUrl;
@ApiModelProperty("未读数量")
private String num;
@ApiModelProperty("发送时间")
private String sendTime;
}

20
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppMessageListQuery.java

@ -0,0 +1,20 @@
package com.yxt.messagecenter.api.messagelist.app;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/26
*/
@Data
public class AppMessageListQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("消息类别")
private String msgTypeSid;
}

55
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppMessageListVo.java

@ -0,0 +1,55 @@
package com.yxt.messagecenter.api.messagelist.app;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/26
*/
@ApiModel("手机端消息列表")
@Data
public class AppMessageListVo implements Vo {
@ApiModelProperty("消息列表sid")
private String sid;
@ApiModelProperty("消息体sid")
private String msgSid;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("apk下载地址(type = 2有)")
private String path;
@ApiModelProperty("RePlugin插件名称(type = 2有)")
private String modulePluginName;
@ApiModelProperty("启动模块的动作(0.启动Activity的包名+类名 1.html地址 2.启动Activity的包名+类名)")
private String moduleAction;
@ApiModelProperty("模块的版本(type = 2,3有)")
private int moduleVersion;
@ApiModelProperty("插件Sid(type = 2有)")
private String moduleSid;
@ApiModelProperty("参数(规则),json类型的传参(必须为 string、string)")
private String json;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("状态(阅读状态,0未阅,1已阅)")
private String state;
@ApiModelProperty("发送时间")
private String sendTime;
}

27
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/app/AppMsgMainVo.java

@ -0,0 +1,27 @@
package com.yxt.messagecenter.api.messagelist.app;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Description
* @Author liuguohui
* @Date 2021/11/27
*/
@ApiModel("手机端消息主页面")
@Data
public class AppMsgMainVo implements Vo {
@ApiModelProperty("横向icon")
private List<AppCrossIcon> crossIconList;
@ApiModelProperty("竖向icon")
private List<AppLongsIcon> longIconList;
@ApiModelProperty("未读消息")
private String msgTotal;
}

27
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListFeign.java

@ -0,0 +1,27 @@
package com.yxt.messagecenter.api.messagelist.wx;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author dimengzhe
* @date 2021/11/1 16:45
* @description
*/
@FeignClient(
contextId = "message-center-WxMessageList",
name = "message-center",
path = "v1/wx/messagelist",
fallback = WxMessageListFeignFallback.class)
public interface WxMessageListFeign {
@ApiOperation("客户端查询所有消息列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WxMessageListVo>> listPage(@RequestBody PagerQuery<WxMessageListQuery> pq);
}

19
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListFeignFallback.java

@ -0,0 +1,19 @@
package com.yxt.messagecenter.api.messagelist.wx;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
/**
* @author dimengzhe
* @date 2021/11/1 16:48
* @description
*/
@Component
public class WxMessageListFeignFallback implements WxMessageListFeign {
@Override
public ResultBean<PagerVo<WxMessageListVo>> listPage(PagerQuery<WxMessageListQuery> pq) {
return null;
}
}

21
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListQuery.java

@ -0,0 +1,21 @@
package com.yxt.messagecenter.api.messagelist.wx;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/11/1 17:00
* @description
*/
@Data
public class WxMessageListQuery implements Query {
private static final long serialVersionUID = -5016458608578452869L;
@ApiModelProperty("消息类别")
private String msgTypeSid;
@ApiModelProperty("接收人sid")
private String receiverSid;
}

37
message-center-api/src/main/java/com/yxt/messagecenter/api/messagelist/wx/WxMessageListVo.java

@ -0,0 +1,37 @@
package com.yxt.messagecenter.api.messagelist.wx;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author dimengzhe
* @date 2021/11/1 16:50
* @description
*/
@Data
public class WxMessageListVo implements Vo {
private static final long serialVersionUID = -3077053489268824652L;
@ApiModelProperty("消息列表sid")
private String sid;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("消息日期")
private String createTime;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty(value = "消息类别图标")
private String iconImage;
@ApiModelProperty("阅读状态:0未读,1已读")
private Integer state;
@ApiModelProperty("消息内容")
private String msgContent;
}

37
message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindrule.java

@ -0,0 +1,37 @@
package com.yxt.messagecenter.api.messageremindrule;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindrule.java <br/>
* Class: com.yxt.messagecenter.api.messageremindrule.MessageRemindrule <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "提醒规则", description = "提醒规则")
@TableName("message_remindrule")
@Data
public class MessageRemindrule extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("代码")
private String ruleCode;
@ApiModelProperty("提前提醒0,超期循环提醒1,循环提醒2")
private Integer rules;
@ApiModelProperty("系统消息0,手机短信1")
private Integer remindWay;
}

36
message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleDto.java

@ -0,0 +1,36 @@
package com.yxt.messagecenter.api.messageremindrule;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleDto.java <br/>
* Class: com.yxt.messagecenter.api.messageremindrule.MessageRemindruleDto <br/>
* Description: 提醒规则 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "提醒规则 数据传输对象", description = "提醒规则 数据传输对象")
@Data
public class MessageRemindruleDto implements Dto {
@ApiModelProperty("代码")
private String ruleCode;
@ApiModelProperty("提前提醒0,超期循环提醒1,循环提醒2")
private Integer rules;
@ApiModelProperty("系统消息0,手机短信1")
private Integer remindWay;
}

65
message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleFeign.java

@ -0,0 +1,65 @@
package com.yxt.messagecenter.api.messageremindrule;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleFeign.java <br/>
* Class: com.yxt.messagecenter.api.messageremindrule.MessageRemindruleFeign <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "提醒规则")
@FeignClient(
contextId = "message-center-MessageRemindrule",
name = "message-center",
path = "v1/messageremindrule",
fallback = MessageRemindruleFeignFallback.class)
public interface MessageRemindruleFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<MessageRemindruleVo>> listPage(@RequestBody PagerQuery<MessageRemindruleQuery> pq);
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<MessageRemindruleVo>> listAll(@RequestBody MessageRemindruleQuery query);
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<MessageRemindruleVo>> list();
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageRemindruleDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageRemindruleDto dto,@PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<MessageRemindruleVo> fetch(@PathVariable("id") String id);
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<MessageRemindrule> fetchBySid(@PathVariable("sid") String sid);
}

71
message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleFeignFallback.java

@ -0,0 +1,71 @@
package com.yxt.messagecenter.api.messageremindrule;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.messageremindrule.MessageRemindruleFeignFallback <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageRemindruleFeignFallback implements MessageRemindruleFeign {
@Override
public ResultBean<PagerVo<MessageRemindruleVo>> listPage(PagerQuery<MessageRemindruleQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageremindrule/listPage无法访问");
}
@Override
public ResultBean<List<MessageRemindruleVo>> listAll(MessageRemindruleQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageremindrule/listAll无法访问");
}
@Override
public ResultBean<List<MessageRemindruleVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageremindrule/list无法访问");
}
@Override
public ResultBean save(MessageRemindruleDto dto){
return ResultBean.fireFail().setMsg("接口message-center/messageremindrule/save无法访问");
}
@Override
public ResultBean update(MessageRemindruleDto dto,String sid){
return ResultBean.fireFail().setMsg("接口message-center/messageremindrule/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口message-center/messageremindrule/del无法访问");
}
@Override
public ResultBean<MessageRemindruleVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageremindrule/fetch无法访问");
}
@Override
public ResultBean<MessageRemindrule> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messageremindrule/fetch无法访问");
}
}

36
message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleQuery.java

@ -0,0 +1,36 @@
package com.yxt.messagecenter.api.messageremindrule;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleQuery.java <br/>
* Class: com.yxt.messagecenter.api.messageremindrule.MessageRemindruleQuery <br/>
* Description: 提醒规则 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "提醒规则 查询条件", description = "提醒规则 查询条件")
@Data
public class MessageRemindruleQuery implements Query {
@ApiModelProperty("代码")
private String ruleCode;
@ApiModelProperty("提前提醒0,超期循环提醒1,循环提醒2")
private Integer rules;
@ApiModelProperty("系统消息0,手机短信1")
private Integer remindWay;
}

36
message-center-api/src/main/java/com/yxt/messagecenter/api/messageremindrule/MessageRemindruleVo.java

@ -0,0 +1,36 @@
package com.yxt.messagecenter.api.messageremindrule;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleVo.java <br/>
* Class: com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo <br/>
* Description: 提醒规则 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "提醒规则 视图数据对象", description = "提醒规则 视图数据对象")
@Data
public class MessageRemindruleVo implements Vo {
@ApiModelProperty("代码")
private String ruleCode;
@ApiModelProperty("提前提醒0,超期循环提醒1,循环提醒2")
private Integer rules;
@ApiModelProperty("系统消息0,手机短信1")
private Integer remindWay;
}

40
message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReply.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.api.messagereply;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReply.java <br/>
* Class: com.yxt.messagecenter.api.messagereply.MessageReply <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息回复", description = "消息回复")
@TableName("message_reply")
@Data
public class MessageReply extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("回复内容")
private String replyConent;
@ApiModelProperty("回复人姓名")
private String replyPersonName;
@ApiModelProperty("回复用户sid")
private String replyUserSid;
}

39
message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyDto.java

@ -0,0 +1,39 @@
package com.yxt.messagecenter.api.messagereply;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyDto.java <br/>
* Class: com.yxt.messagecenter.api.messagereply.MessageReplyDto <br/>
* Description: 消息回复 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息回复 数据传输对象", description = "消息回复 数据传输对象")
@Data
public class MessageReplyDto implements Dto {
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("回复内容")
private String replyConent;
@ApiModelProperty("回复人姓名")
private String replyPersonName;
@ApiModelProperty("回复用户sid")
private String replyUserSid;
}

65
message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyFeign.java

@ -0,0 +1,65 @@
package com.yxt.messagecenter.api.messagereply;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyFeign.java <br/>
* Class: com.yxt.messagecenter.api.messagereply.MessageReplyFeign <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息回复")
@FeignClient(
contextId = "message-center-MessageReply",
name = "message-center",
path = "v1/messagereply",
fallback = MessageReplyFeignFallback.class)
public interface MessageReplyFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<MessageReplyVo>> listPage(@RequestBody PagerQuery<MessageReplyQuery> pq);
@ApiOperation("根据条件查询所有数据列表")
@PostMapping("/listAll")
public ResultBean<List<MessageReplyVo>> listAll(@RequestBody MessageReplyQuery query);
@ApiOperation("所有数据列表")
@GetMapping("/list")
public ResultBean<List<MessageReplyVo>> list();
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageReplyDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageReplyDto dto,@PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("获取一条记录")
@GetMapping("/fetch/{id}")
public ResultBean<MessageReplyVo> fetch(@PathVariable("id") String id);
@ApiOperation("获取一条记录")
@GetMapping("/fetchSid/{sid}")
public ResultBean<MessageReply> fetchBySid(@PathVariable("sid") String sid);
}

71
message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyFeignFallback.java

@ -0,0 +1,71 @@
package com.yxt.messagecenter.api.messagereply;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.messagereply.MessageReplyFeignFallback <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageReplyFeignFallback implements MessageReplyFeign {
@Override
public ResultBean<PagerVo<MessageReplyVo>> listPage(PagerQuery<MessageReplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagereply/listPage无法访问");
}
@Override
public ResultBean<List<MessageReplyVo>> listAll(MessageReplyQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagereply/listAll无法访问");
}
@Override
public ResultBean<List<MessageReplyVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagereply/list无法访问");
}
@Override
public ResultBean save(MessageReplyDto dto){
return ResultBean.fireFail().setMsg("接口message-center/messagereply/save无法访问");
}
@Override
public ResultBean update(MessageReplyDto dto,String sid){
return ResultBean.fireFail().setMsg("接口message-center/messagereply/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口message-center/messagereply/del无法访问");
}
@Override
public ResultBean<MessageReplyVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagereply/fetch无法访问");
}
@Override
public ResultBean<MessageReply> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口message-center/messagereply/fetch无法访问");
}
}

39
message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyQuery.java

@ -0,0 +1,39 @@
package com.yxt.messagecenter.api.messagereply;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyQuery.java <br/>
* Class: com.yxt.messagecenter.api.messagereply.MessageReplyQuery <br/>
* Description: 消息回复 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息回复 查询条件", description = "消息回复 查询条件")
@Data
public class MessageReplyQuery implements Query {
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("回复内容")
private String replyConent;
@ApiModelProperty("回复人姓名")
private String replyPersonName;
@ApiModelProperty("回复用户sid")
private String replyUserSid;
}

39
message-center-api/src/main/java/com/yxt/messagecenter/api/messagereply/MessageReplyVo.java

@ -0,0 +1,39 @@
package com.yxt.messagecenter.api.messagereply;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyVo.java <br/>
* Class: com.yxt.messagecenter.api.messagereply.MessageReplyVo <br/>
* Description: 消息回复 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息回复 视图数据对象", description = "消息回复 视图数据对象")
@Data
public class MessageReplyVo implements Vo {
@ApiModelProperty("消息体Id")
private String msgSid;
@ApiModelProperty("回复内容")
private String replyConent;
@ApiModelProperty("回复人姓名")
private String replyPersonName;
@ApiModelProperty("回复用户sid")
private String replyUserSid;
}

42
message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageType.java

@ -0,0 +1,42 @@
package com.yxt.messagecenter.api.messagetype;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageType.java <br/>
* Class: com.yxt.messagecenter.api.messagetype.MessageType <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息类别", description = "消息类别")
@TableName("message_type")
@Data
public class MessageType extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("横排消息类别图标")
private String crossIconUrl;
@ApiModelProperty("纵排消息类别图标")
private String longIconUrl;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("消息标识:0001为小程序、0002为app")
private String identifier;
}

41
message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeDto.java

@ -0,0 +1,41 @@
package com.yxt.messagecenter.api.messagetype;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeDto.java <br/>
* Class: com.yxt.messagecenter.api.messagetype.MessageTypeDto <br/>
* Description: 消息类别 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息类别 数据传输对象", description = "消息类别 数据传输对象")
@Data
public class MessageTypeDto implements Dto {
private static final long serialVersionUID = -4102266371674116796L;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("横排消息类别图标")
private String crossIconUrl;
@ApiModelProperty("纵排消息类别图标")
private String longIconUrl;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("消息标识:0001为小程序、0002为app")
private String identifier;
}

52
message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeFeign.java

@ -0,0 +1,52 @@
package com.yxt.messagecenter.api.messagetype;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeFeign.java <br/>
* Class: com.yxt.messagecenter.api.messagetype.MessageTypeFeign <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息类别")
@FeignClient(
contextId = "message-center-MessageType",
name = "message-center",
path = "v1/messagetype",
fallback = MessageTypeFeignFallback.class)
public interface MessageTypeFeign {
@ApiOperation("新增保存")
@PostMapping("/save")
public ResultBean save(@RequestBody MessageTypeDto dto);
@ApiOperation("修改保存")
@PostMapping("/update/{sid}")
public ResultBean update(@RequestBody MessageTypeDto dto, @PathVariable("sid") String sid);
@ApiOperation("删除记录")
@GetMapping("/del/{ids}")
public ResultBean del(@PathVariable("ids") String ids);
@ApiOperation("客户端消息类别列表")
@PostMapping("/selectList")
ResultBean<List<MessageTypeVo>> selectList();
@ApiOperation("手机端查询消息类别列表")
@GetMapping("/selectAppMsgTypeList")
ResultBean<List<MessageTypeVo>> selectAppMsgTypeList(@RequestParam ("identifier") String identifier);
}

48
message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeFeignFallback.java

@ -0,0 +1,48 @@
package com.yxt.messagecenter.api.messagetype;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeFeignFallback.java <br/>
* Class: com.yxt.messagecenter.api.messagetype.MessageTypeFeignFallback <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Component
public class MessageTypeFeignFallback implements MessageTypeFeign {
@Override
public ResultBean save(MessageTypeDto dto) {
return ResultBean.fireFail().setMsg("接口message-center/messagetype/save无法访问");
}
@Override
public ResultBean update(MessageTypeDto dto, String sid) {
return ResultBean.fireFail().setMsg("接口message-center/messagetype/update无法访问");
}
@Override
public ResultBean del(String ids) {
return ResultBean.fireFail().setMsg("接口message-center/messagetype/del无法访问");
}
@Override
public ResultBean<List<MessageTypeVo>> selectList() {
return null;
}
@Override
public ResultBean selectAppMsgTypeList(String identifier) {
return ResultBean.fireFail().setMsg("接口message-center/messagetype/selectAppMsgTypeList无法访问");
}
}

40
message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeQuery.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.api.messagetype;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeQuery.java <br/>
* Class: com.yxt.messagecenter.api.messagetype.MessageTypeQuery <br/>
* Description: 消息类别 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息类别 查询条件", description = "消息类别 查询条件")
@Data
public class MessageTypeQuery implements Query {
private static final long serialVersionUID = -1185819470050546097L;
@ApiModelProperty("消息类别名称")
private String msgType;
@ApiModelProperty("横排消息类别图标")
private String crossIconUrl;
@ApiModelProperty("纵排消息类别图标")
private String longIconUrl;
@ApiModelProperty("排序")
private Integer sort;
@ApiModelProperty("消息标识:0001为小程序、0002为app")
private String identifier;
}

39
message-center-api/src/main/java/com/yxt/messagecenter/api/messagetype/MessageTypeVo.java

@ -0,0 +1,39 @@
package com.yxt.messagecenter.api.messagetype;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeVo.java <br/>
* Class: com.yxt.messagecenter.api.messagetype.MessageTypeVo <br/>
* Description: 消息类别 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "消息类别 视图数据对象", description = "消息类别 视图数据对象")
@Data
public class MessageTypeVo implements Vo {
private static final long serialVersionUID = 4952236128415820727L;
@ApiModelProperty(value = "消息类别sid")
private String msgTypeSid;
@ApiModelProperty(value = "消息类别名称")
private String msgType;
@ApiModelProperty(value = "横排消息类别图标")
private String crossIconUrl;
@ApiModelProperty(value = "纵排消息类别图标")
private String longIconUrl;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "是否有未读")
private Boolean isHave;
}

213
message-center-biz/message-center-biz.iml

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="yxt-common-base" />
<orderEntry type="module" module-name="yxt-common-core" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-core:5.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.10.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.37" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.6.2" level="project" />
<orderEntry type="library" name="Maven: com.auth0:java-jwt:3.10.1" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" />
<orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.axis:axis:1.4" level="project" />
<orderEntry type="library" name="Maven: axis:axis-jaxrpc:1.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-discovery:commons-discovery:0.5" level="project" />
<orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.73" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: com.google.zxing:core:3.3.2" level="project" />
<orderEntry type="library" name="Maven: com.google.zxing:javase:3.3.2" level="project" />
<orderEntry type="library" name="Maven: com.beust:jcommander:1.72" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jai-imageio:jai-imageio-core:1.3.1" level="project" />
<orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.4.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" name="Maven: cn.jpush.api:jpush-client:3.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.60" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.60" level="project" />
<orderEntry type="library" name="Maven: cn.jpush.api:jiguang-common:1.1.11" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-all:4.1.51.Final" level="project" />
<orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.1" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.4.0" level="project" />
<orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.30" level="project" />
<orderEntry type="library" name="Maven: com.jacob:jacob:1.18" level="project" />
<orderEntry type="module" module-name="message-center-api" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.4" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:10.10.1" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:10.10.1" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-hystrix:10.10.1" level="project" />
<orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
<orderEntry type="library" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
<orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.20.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.5" level="project" />
<orderEntry type="module" module-name="anrui-portal-api" />
<orderEntry type="module" module-name="anrui-flowable-api" />
<orderEntry type="library" name="Maven: org.flowable:flowable-bpmn-model:6.5.0" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.12" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.3.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.3.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.13" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.3.0" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:29.0-android" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.5.5" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.5" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.2.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.12.21" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.3.0" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.21" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-starter:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.13" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-ui:2.0.5" level="project" />
</component>
</module>

81
message-center-biz/pom.xml

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yxt</groupId>
<artifactId>yxt-parent</artifactId>
<version>0.0.1</version>
<relativePath/>
</parent>
<groupId>com.yxt.messagecenter</groupId>
<artifactId>message-center-biz</artifactId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-base</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt.messagecenter</groupId>
<artifactId>message-center-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<artifactId>anrui-portal-api</artifactId>
<groupId>com.yxt.anrui</groupId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*Mapper.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>

23
message-center-biz/src/main/java/com/yxt/messagecenter/MessageCenterApplication.java

@ -0,0 +1,23 @@
package com.yxt.messagecenter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages = {
"com.yxt.common.base.config",
"com.yxt.messagecenter"
})
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal"})
public class MessageCenterApplication
{
public static void main( String[] args )
{
SpringApplication.run(MessageCenterApplication.class, args);
}
}

40
message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageMapper.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.message;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.message.MessageVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageMapper.java <br/>
* Class: com.yxt.messagecenter.biz.message.MessageMapper <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageMapper extends BaseMapper<Message> {
//@Update("update message set name=#{msg} where id=#{id}")
//IPage<MessageVo> voPage(IPage<Message> page, @Param(Constants.WRAPPER) QueryWrapper<Message> qw);
IPage<MessageVo> selectPageVo(IPage<Message> page, @Param(Constants.WRAPPER) Wrapper<Message> qw);
List<MessageVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<Message> qw);
@Select("select * from message")
List<MessageVo> selectListVo();
}

13
message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.message.MessageMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.message.MessageVo">
SELECT * FROM message <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.message.MessageVo">
SELECT * FROM message <where> ${ew.sqlSegment} </where>
</select>
</mapper>

113
message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageRest.java

@ -0,0 +1,113 @@
package com.yxt.messagecenter.biz.message;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.*;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import io.swagger.annotations.Api;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.message.MessageRest <br/>
* Description: 消息体. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息体")
@RestController
@RequestMapping("v1/message")
public class MessageRest implements MessageFeign {
@Autowired
private MessageService messageService;
@Autowired
MessageListService messageListService;
@Override
public ResultBean<PagerVo<MessageVo>> listPage(@RequestBody PagerQuery<MessageQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageVo> pv = messageService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean save(MessageDto dto) {
ResultBean rb = ResultBean.fireFail();
Message m = new Message();
dto.fillEntity(m);
if (!messageService.save(m)) {
return ResultBean.fireFail();
}
if (dto != null && StringUtils.isNotBlank(dto.getReceiveSids())) {
if (dto.getReceiveSids().indexOf(",") >= -1) {
String[] ReceiveUserSids = dto.getReceiveSids().split(",");
String[] receiveUsers = dto.getReceiveNames().split(",");
for (int i = 0; ReceiveUserSids.length > i; i++) {
MessageList messageList = new MessageList();
messageList.setMsgSid(m.getSid());
messageList.setReceiverSid(ReceiveUserSids[i]);
messageList.setReceiverName(receiveUsers[i]);
// messageList.setReceiverDeptName();
// messageList.setReceiverDeptSid();
messageList.setState(0);
messageListService.save(messageList);
}
}
}
return ResultBean.fireSuccess().setData(m.getSid());
}
@Override
public ResultBean update(MessageDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
messageService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
messageService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<Message> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
Message vo = messageService.fetchBySid(sid);
return rb.success().setData(vo);
}
public ResultBean<MessageVo> messageDtail(String sid) {
ResultBean rb = ResultBean.fireFail();
MessageList ml = messageListService.fetchBySid(sid);
if (ml.getState() == 0) {
ml.setState(1);
messageListService.updateById(ml);//修改状态为已阅;
}
MessageVo vo = new MessageVo();
Message message = messageService.fetchBySid(ml.getMsgSid());
vo.fromEntity(message);
return rb.success().setData(vo);
}
@Override
public ResultBean saveOrUpdateAppMessage(AppMessageDto dto) {
return messageService.saveOrUpdateAppMessage(dto);
}
}

170
message-center-biz/src/main/java/com/yxt/messagecenter/biz/message/MessageService.java

@ -0,0 +1,170 @@
package com.yxt.messagecenter.biz.message;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.UUID;
/**
* Project: message-center(消息中心) <br/>
* File: MessageService.java <br/>
* Class: com.yxt.messagecenter.biz.message.MessageService <br/>
* Description: 消息体 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageService extends MybatisBaseService<MessageMapper, Message> {
public PagerVo<Message> listPage(PagerQuery<MessageQuery> pq) {
MessageQuery query = pq.getParams();
QueryWrapper<Message> qw = createQueryWrapper(query);
IPage<Message> page = PagerUtil.queryToPage(pq);
IPage<Message> pagging = baseMapper.selectPage(page, qw);
PagerVo<Message> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<Message> listAll(MessageQuery query) {
QueryWrapper<Message> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<Message> createQueryWrapper(MessageQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<Message> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgType())) {
qw.eq("msgType", query.getMsgType());
}
if (StringUtils.isNotBlank(query.getMsgTitle())) {
qw.eq("msgTitle", query.getMsgTitle());
}
if (StringUtils.isNotBlank(query.getMsgContent())) {
qw.eq("msgContent", query.getMsgContent());
}
if (StringUtils.isNotBlank(query.getMsgSource())) {
qw.eq("msgSource", query.getMsgSource());
}
if (StringUtils.isNotBlank(query.getSenderSid())) {
qw.eq("senderSid", query.getSenderSid());
}
if (StringUtils.isNotBlank(query.getSenderName())) {
qw.eq("senderName", query.getSenderName());
}
if (StringUtils.isNotBlank(query.getSenderDeptSid())) {
qw.eq("senderDeptSid", query.getSenderDeptSid());
}
if (StringUtils.isNotBlank(query.getSenderDeptName())) {
qw.eq("senderDeptName", query.getSenderDeptName());
}
if (StringUtils.isNotBlank(query.getBusinessSid())) {
qw.eq("businessSid", query.getBusinessSid());
}
if (StringUtils.isNotBlank(query.getModuleSid())) {
qw.eq("moduleSid", query.getModuleSid());
}
if (StringUtils.isNotBlank(query.getModuleAction())) {
qw.eq("moduleAction", query.getModuleAction());
}
if (StringUtils.isNotBlank(query.getArgs_json())) {
qw.eq("args_json", query.getArgs_json());
}
if (StringUtils.isNotBlank(query.getH5_url())) {
qw.eq("h5_url", query.getH5_url());
}
if (StringUtils.isNotBlank(query.getXcx_url())) {
qw.eq("xcx_url", query.getXcx_url());
}
if (StringUtils.isNotBlank(query.getMsgTargetUri())) {
qw.eq("msgTargetUri", query.getMsgTargetUri());
}
return qw;
}
public PagerVo<MessageVo> listPageVo(PagerQuery<MessageQuery> pq) {
MessageQuery query = pq.getParams();
QueryWrapper<Message> qw = createQueryWrapper(query);
IPage<Message> page = PagerUtil.queryToPage(pq);
IPage<MessageVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageVo> listAllVo(MessageQuery query) {
QueryWrapper<Message> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageDto dto){
Message entity = new Message();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageVo fetchByIdVo(String id){
Message entity = this.fetchById(id);
MessageVo vo = new MessageVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* 手机端保存/修改消息体
* @param dto
* @return
*/
public ResultBean saveOrUpdateAppMessage(AppMessageDto dto) {
if (StringUtils.isBlank(dto.getSid())) { // 新增
Message message = new Message();
dto.fillEntity(message);
message.setSid(UUID.randomUUID().toString());
Boolean flag = save(message);
if (flag) {
return new ResultBean().success().setMsg("保存成功").setData(message.getSid());
} else {
return new ResultBean().fail().setMsg("保存失败");
}
} else { // 修改
Message message = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, message);
Boolean flag = updateById(message);
if (flag) {
return new ResultBean().success().setMsg("修改成功").setData(message.getSid());
} else {
return new ResultBean().fail().setMsg("修改失败");
}
}
}
}

40
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileMapper.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messagefile;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messagefile.MessageFile;
import com.yxt.messagecenter.api.messagefile.MessageFileVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagefile.MessageFileMapper <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageFileMapper extends BaseMapper<MessageFile> {
//@Update("update message_file set name=#{msg} where id=#{id}")
//IPage<MessageFileVo> voPage(IPage<MessageFile> page, @Param(Constants.WRAPPER) QueryWrapper<MessageFile> qw);
IPage<MessageFileVo> selectPageVo(IPage<MessageFile> page, @Param(Constants.WRAPPER) Wrapper<MessageFile> qw);
List<MessageFileVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageFile> qw);
@Select("select * from message_file")
List<MessageFileVo> selectListVo();
}

13
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagefile.MessageFileMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messagefile.MessageFileVo">
SELECT * FROM message_file <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messagefile.MessageFileVo">
SELECT * FROM message_file <where> ${ew.sqlSegment} </where>
</select>
</mapper>

94
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileRest.java

@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messagefile;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messagefile.MessageFile;
import com.yxt.messagecenter.api.messagefile.MessageFileQuery;
import com.yxt.messagecenter.api.messagefile.MessageFileVo;
import com.yxt.messagecenter.api.messagefile.MessageFileDto;
import com.yxt.messagecenter.api.messagefile.MessageFileFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagefile.MessageFileRest <br/>
* Description: 消息附件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息附件")
@RestController
@RequestMapping("v1/messagefile")
public class MessageFileRest implements MessageFileFeign {
@Autowired
private MessageFileService messageFileService;
@Override
public ResultBean<PagerVo<MessageFileVo>> listPage(@RequestBody PagerQuery<MessageFileQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageFileVo> pv = messageFileService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageFileVo>> listAll(@RequestBody MessageFileQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageFileVo> list = messageFileService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageFileVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageFileVo> list = messageFileService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageFileDto dto){
ResultBean rb = ResultBean.fireFail();
messageFileService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageFileDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageFileService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageFileService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageFileVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageFileVo vo = messageFileService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageFile> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageFile vo = messageFileService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

111
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagefile/MessageFileService.java

@ -0,0 +1,111 @@
package com.yxt.messagecenter.biz.messagefile;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagefile.MessageFile;
import com.yxt.messagecenter.api.messagefile.MessageFileQuery;
import com.yxt.messagecenter.api.messagefile.MessageFileVo;
import com.yxt.messagecenter.api.messagefile.MessageFileDto;
import com.yxt.messagecenter.api.messagefile.MessageFileFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageFileService.java <br/>
* Class: com.yxt.messagecenter.biz.messagefile.MessageFileService <br/>
* Description: 消息附件 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageFileService extends MybatisBaseService<MessageFileMapper, MessageFile> {
public PagerVo<MessageFile> listPage(PagerQuery<MessageFileQuery> pq) {
MessageFileQuery query = pq.getParams();
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
IPage<MessageFile> page = PagerUtil.queryToPage(pq);
IPage<MessageFile> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageFile> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageFile> listAll(MessageFileQuery query) {
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageFile> createQueryWrapper(MessageFileQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageFile> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("msgSid", query.getMsgSid());
}
if (StringUtils.isNotBlank(query.getFileName())) {
qw.eq("fileName", query.getFileName());
}
if (StringUtils.isNotBlank(query.getFileType())) {
qw.eq("fileType", query.getFileType());
}
if (StringUtils.isNotBlank(query.getFilePath())) {
qw.eq("filePath", query.getFilePath());
}
if (StringUtils.isNotBlank(query.getAttachType())) {
qw.eq("attachType", query.getAttachType());
}
if (query.getFileSize() != null) {
qw.eq("fileSize", query.getFileSize());
}
return qw;
}
public PagerVo<MessageFileVo> listPageVo(PagerQuery<MessageFileQuery> pq) {
MessageFileQuery query = pq.getParams();
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
IPage<MessageFile> page = PagerUtil.queryToPage(pq);
IPage<MessageFileVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageFileVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageFileVo> listAllVo(MessageFileQuery query) {
QueryWrapper<MessageFile> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageFileVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageFileDto dto){
MessageFile entity = new MessageFile();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageFileVo fetchByIdVo(String id){
MessageFile entity = this.fetchById(id);
MessageFileVo vo = new MessageFileVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

40
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistMapper.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messageforwardlist;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistMapper <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageForwardlistMapper extends BaseMapper<MessageForwardlist> {
//@Update("update message_forwardlist set name=#{msg} where id=#{id}")
//IPage<MessageForwardlistVo> voPage(IPage<MessageForwardlist> page, @Param(Constants.WRAPPER) QueryWrapper<MessageForwardlist> qw);
IPage<MessageForwardlistVo> selectPageVo(IPage<MessageForwardlist> page, @Param(Constants.WRAPPER) Wrapper<MessageForwardlist> qw);
List<MessageForwardlistVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageForwardlist> qw);
@Select("select * from message_forwardlist")
List<MessageForwardlistVo> selectListVo();
}

13
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo">
SELECT * FROM message_forwardlist <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo">
SELECT * FROM message_forwardlist <where> ${ew.sqlSegment} </where>
</select>
</mapper>

94
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistRest.java

@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messageforwardlist;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistQuery;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistDto;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistRest <br/>
* Description: 消息转发记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息转发记录")
@RestController
@RequestMapping("v1/messageforwardlist")
public class MessageForwardlistRest implements MessageForwardlistFeign {
@Autowired
private MessageForwardlistService messageForwardlistService;
@Override
public ResultBean<PagerVo<MessageForwardlistVo>> listPage(@RequestBody PagerQuery<MessageForwardlistQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageForwardlistVo> pv = messageForwardlistService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageForwardlistVo>> listAll(@RequestBody MessageForwardlistQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageForwardlistVo> list = messageForwardlistService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageForwardlistVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageForwardlistVo> list = messageForwardlistService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageForwardlistDto dto){
ResultBean rb = ResultBean.fireFail();
messageForwardlistService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageForwardlistDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageForwardlistService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageForwardlistService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageForwardlistVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageForwardlistVo vo = messageForwardlistService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageForwardlist> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageForwardlist vo = messageForwardlistService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

103
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageforwardlist/MessageForwardlistService.java

@ -0,0 +1,103 @@
package com.yxt.messagecenter.biz.messageforwardlist;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlist;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistQuery;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistVo;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistDto;
import com.yxt.messagecenter.api.messageforwardlist.MessageForwardlistFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageForwardlistService.java <br/>
* Class: com.yxt.messagecenter.biz.messageforwardlist.MessageForwardlistService <br/>
* Description: 消息转发记录 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageForwardlistService extends MybatisBaseService<MessageForwardlistMapper, MessageForwardlist> {
public PagerVo<MessageForwardlist> listPage(PagerQuery<MessageForwardlistQuery> pq) {
MessageForwardlistQuery query = pq.getParams();
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
IPage<MessageForwardlist> page = PagerUtil.queryToPage(pq);
IPage<MessageForwardlist> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageForwardlist> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageForwardlist> listAll(MessageForwardlistQuery query) {
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageForwardlist> createQueryWrapper(MessageForwardlistQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageForwardlist> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("msgSid", query.getMsgSid());
}
if (query.getForwardTime() != null) {
qw.ge("forwardTime", query.getForwardTime());
}
if (StringUtils.isNotBlank(query.getForwardPerson())) {
qw.eq("forwardPerson", query.getForwardPerson());
}
if (StringUtils.isNotBlank(query.getForwordMsgSid())) {
qw.eq("forwordMsgSid", query.getForwordMsgSid());
}
return qw;
}
public PagerVo<MessageForwardlistVo> listPageVo(PagerQuery<MessageForwardlistQuery> pq) {
MessageForwardlistQuery query = pq.getParams();
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
IPage<MessageForwardlist> page = PagerUtil.queryToPage(pq);
IPage<MessageForwardlistVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageForwardlistVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageForwardlistVo> listAllVo(MessageForwardlistQuery query) {
QueryWrapper<MessageForwardlist> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageForwardlistVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageForwardlistDto dto){
MessageForwardlist entity = new MessageForwardlist();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageForwardlistVo fetchByIdVo(String id){
MessageForwardlist entity = this.fetchById(id);
MessageForwardlistVo vo = new MessageForwardlistVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

90
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.java

@ -0,0 +1,90 @@
package com.yxt.messagecenter.biz.messagelist;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo;
import com.yxt.messagecenter.api.messagelist.MessageListVo;
import com.yxt.messagecenter.api.messagelist.app.AppLastMsgVo;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListVo;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListQuery;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagelist.MessageListMapper <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageListMapper extends BaseMapper<MessageList> {
//@Update("update message_list set name=#{msg} where id=#{id}")
//IPage<MessageListVo> voPage(IPage<MessageList> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
IPage<MessageListVo> selectPageVo(IPage<MessageList> page, @Param(Constants.WRAPPER) Wrapper<MessageList> qw);
List<MessageListJoinMsgVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageList> qw);
@Select("SELECT * FROM message_list")
List<MessageListVo> selectListVo();
IPage<MessageListJoinMsgVo> noreadListPage(IPage<MessageList> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
IPage<MessageListJoinMsgVo> readListPage(IPage<MessageList> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
int updateByReceiverSid(@Param("receiverSid") String receiverSid);
int deleteBySids(String sid);
int changeRead(List<String> sidList);
int changeUnRead(List<String> sidList);
/**
* @param page
* @param qw
* @description: 客户端消息分页列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 17:42
*/
IPage<WxMessageListVo> listPage(IPage<WxMessageListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<WxMessageListVo> qw);
/**
* @param msgTypeSid 消息类别sid
* @description: 根据消息类别sid查询消息未读的数量
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 16:16
*/
int selectListCount(String msgTypeSid);
MessageListJoinMsgVo fetchByMsgSid(String sid);
Integer fetchByReceiverSid(String receiverSid);
int selectUnReadCount(@Param("msgTypeSid") String msgTypeSid, @Param("userSid") String userSid);
AppLastMsgVo selectLastMsg(@Param("userSid") String userSid, @Param("msgTypeSid") String msgTypeSid);
IPage<AppMessageListVo> getAppMsgListByUserSid(IPage<AppMessageListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<MessageList> qw);
int updateAppReadByType(@Param("msgTypeSid") String msgTypeSid, @Param("userSid") String userSid);
}

190
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListMapper.xml

@ -0,0 +1,190 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagelist.MessageListMapper">
<update id="deleteBySids">
update message_list
set rDelStatus = 1
WHERE sid = #{sid}
</update>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messagelist.MessageListVo">
SELECT *
FROM message_list
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.msgSid,
m.msgContent,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
ml.state
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="noreadListPage" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.state,
ml.msgSid,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
ml.receiverSid
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
${ew.sqlSegment}
and ml.state = 0
and ml.rDelStatus = 0
</where>
</select>
<select id="readListPage" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.state,
ml.msgSid,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
ml.receiverSid
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
${ew.sqlSegment}
and ml.state = 0
and ml.rDelStatus = 0
</where>
</select>
<select id="listPage" resultType="com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo">
SELECT ml.sid,<!--消息列表sid-->
ml.state,<!--阅读状态-->
m.msgTitle,<!--消息标题-->
m.msgContent,<!--消息内容-->
mt.msgType,<!--消息类别-->
mt.crossIconUrl iconImage,<!--消息类别图标-->
DATE_FORMAT(m.createTime, '%Y-%m-%d') AS createTime<!--创建时间-->
FROM message_list ml
LEFT JOIN message m ON m.sid = ml.msgSid
left join message_type mt ON mt.sid = m.msgTypeSid
${ew.customSqlSegment}
</select>
<update id="updateByReceiverSid">
update message_list
set state=1
where receiverSid = #{receiverSid}
and state = 0
</update>
<update id="changeRead">
update message_list
set state=1
WHERE sid IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and state = 0
</update>
<update id="changeUnRead">
update message_list
set state=0
WHERE sid IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and state = 1
</update>
<!--根据消息类别的sid查询消息未读的数量-->
<select id="selectListCount" resultType="int">
SELECT count(*)
FROM message_list ml
left join message m ON m.sid = ml.msgSid
WHERE M.msgTypeSid = #{msgTypeSid}
AND ML.state = 0
</select>
<select id="fetchByMsgSid" resultType="com.yxt.messagecenter.api.messagelist.MessageListJoinMsgVo">
SELECT ml.sid,
ml.state,
ml.msgSid,
m.senderName,
m.msgTitle,
m.createTime,
m.msgType,
m.msgSource,
m.msgContent
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
WHERE m.sid = #{sid}
</select>
<select id="fetchByReceiverSid" resultType="integer">
SELECT COUNT(*)
FROM message_list ml
LEFT JOIN message m
ON m.sid = ml.msgSid
<where>
ml.state = 0
and ml.rDelStatus = 0
and ml.receiverSid = #{receiverSid}
</where>
</select>
<!-- 根据消息类型查询未读数量-->
<select id="selectUnReadCount" resultType="int">
SELECT COUNT(1) FROM message_list ml
LEFT JOIN message m ON ml.msgSid=m.sid
LEFT JOIN message_type mt ON m.msgTypeSid=mt.sid
WHERE mt.identifier='0002' AND ml.state='0' AND ml.receiverSid=#{userSid}
<if test="msgTypeSid != null and msgTypeSid !=''">
AND mt.sid=#{msgTypeSid}
</if>
</select>
<!--查询最近消息-->
<select id="selectLastMsg" resultType="com.yxt.messagecenter.api.messagelist.app.AppLastMsgVo">
SELECT DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,ml.state,m.msgTitle,ml.sid,m.msgContent,m.sid as msgSid
FROM message_list ml
LEFT JOIN message m ON ml.msgSid=m.sid
LEFT JOIN message_type mt ON m.msgTypeSid=mt.sid
WHERE ml.receiverSid=#{userSid} AND mt.sid=#{msgTypeSid}
ORDER BY ml.id desc LIMIT 1
</select>
<select id="getAppMsgListByUserSid" resultType="com.yxt.messagecenter.api.messagelist.app.AppMessageListVo">
SELECT ml.sid,ml.msgSid,m.app_type as type,m.moduleSid,m.args_json as json,m.msgTitle,m.msgContent,ml.state,
DATE_FORMAT(ml.createTime, '%Y-%m-%d') as sendTime,m.msgTargetUri as moduleAction
FROM message_list ml
LEFT JOIN message m ON ml.msgSid=m.sid
<where>
${ew.sqlSegment}
and ml.rDelStatus = 0
</where>
ORDER BY ml.id DESC
</select>
<update id="updateAppReadByType">
UPDATE message_list ml,message m set ml.state=1
WHERE ml.msgSid=m.sid AND ml.receiverSid=#{userSid} AND m.msgTypeSid=#{msgTypeSid}
</update>
</mapper>

177
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListRest.java

@ -0,0 +1,177 @@
package com.yxt.messagecenter.biz.messagelist;
import com.auth0.jwt.JWT;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.yxt.common.base.utils.JWTUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.Message;
import com.yxt.messagecenter.api.messagelist.*;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListQuery;
import com.yxt.messagecenter.api.messagelist.app.AppMessageListVo;
import com.yxt.messagecenter.api.messagelist.app.AppMsgMainVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagelist.MessageListRest <br/>
* Description: 消息列表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息列表")
@RestController
@RequestMapping("v1/messagelist")
public class MessageListRest implements MessageListFeign {
@Autowired
private MessageListService messageListService;
@Autowired
private HttpServletRequest request;
@Override
public ResultBean<PagerVo<MessageListJoinMsgVo>> noreadListPage(PagerQuery<MessageListQuery> pq) {
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token);
String userSid = JWTUtil.getUserSid(decodedJWT);
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageListJoinMsgVo> pv = messageListService.noreadListPage(pq,userSid);
return rb.success().setData(pv);
}
@Override
public ResultBean<PagerVo<MessageListJoinMsgVo>> readListPage(PagerQuery<MessageListQuery> pq) {
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token);
String userSid = JWTUtil.getUserSid(decodedJWT);
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageListJoinMsgVo> pv = messageListService.readListPage(pq,userSid);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageListVo>> list() {
ResultBean rb = ResultBean.fireFail();
List<MessageListVo> list = messageListService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageListDto dto) {
ResultBean rb = ResultBean.fireFail();
messageListService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageListDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
messageListService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
messageListService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<Message> fetchByMsgSid(String sid) {
ResultBean rb = ResultBean.fireFail();
MessageListJoinMsgVo messageListJoinMsgVo = messageListService.fetchByMsgSid(sid);
return rb.success().setData(messageListJoinMsgVo);
}
@Override
public ResultBean allChangeRead() {
ResultBean rb = ResultBean.fireFail();
//将token解密userSid
String token = request.getHeader("token");
DecodedJWT decodedJWT = JWT.decode(token);
String receiverSid = JWTUtil.getUserSid(decodedJWT);
Integer count = messageListService.fetchByReceiverSid(receiverSid);
if (count == 0){
return rb.success().setMessage("该用户下暂无未读消息");
}else {
int num = messageListService.updateByReceiverSid(receiverSid);
}
return rb.success().setMessage("操作成功");
}
@Override
public ResultBean<MessageList> changeRead(String sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidList = Arrays.asList(sids.split(","));
int count = messageListService.changeRead(sidList);
return rb.success().setMessage("操作成功");
}
@Override
public ResultBean<MessageList> changeUnRead(String sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidList = Arrays.asList(sids.split(","));
int count = messageListService.changeUnRead(sidList);
return rb.success().setMessage("操作成功");
}
@Override
public ResultBean deleteBySids(String sids) {
List<String> sidList = Arrays.asList(sids.split(","));
int count = messageListService.deleteBySids(sidList);
if (count != 1) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
@Override
public ResultBean<Integer> selectUnReadCount(String msgTypeSid, String userSid) {
return new ResultBean<Integer>().success().setData(messageListService.selectUnReadCount(msgTypeSid, userSid));
}
@Override
public ResultBean<AppMsgMainVo> getAppMsgMainList(String userSid) {
return new ResultBean<AppMsgMainVo>().success().setData(messageListService.getAppMsgMainList(userSid));
}
@Override
public ResultBean<PagerVo<AppMessageListVo>> getAppMsgListByUserSid(PagerQuery<AppMessageListQuery> pq) {
if (StringUtils.isBlank(pq.getParams().getUserSid())) {
return new ResultBean().fail().setMsg("用户sid不能为空");
}
if (StringUtils.isBlank(pq.getParams().getMsgTypeSid())) {
return new ResultBean().fail().setMsg("消息类型不能为空");
}
PagerVo<AppMessageListVo> pagerVo = messageListService.getAppMsgListByUserSid(pq);
return new ResultBean<PagerVo<AppMessageListVo>>().success().setData(pagerVo);
}
@Override
public ResultBean updateAppReadByType(String msgTypeSid, String userSid) {
int i = messageListService.updateAppReadByType(msgTypeSid, userSid);
if (i == 0) {
return new ResultBean().fail();
}
return new ResultBean().success();
}
}

332
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/MessageListService.java

@ -0,0 +1,332 @@
package com.yxt.messagecenter.biz.messagelist;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagelist.*;
import com.yxt.messagecenter.api.messagelist.app.*;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListQuery;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import com.yxt.messagecenter.biz.message.MessageService;
import com.yxt.messagecenter.biz.messagetype.MessageTypeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageListService.java <br/>
* Class: com.yxt.messagecenter.biz.messagelist.MessageListService <br/>
* Description: 消息列表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageListService extends MybatisBaseService<MessageListMapper, MessageList> {
@Autowired
private MessageTypeService messageTypeService;
@Autowired
private MessageService messageService;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
public List<MessageList> listAll(MessageListQuery query) {
QueryWrapper<MessageList> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageList> createQueryWrapper(MessageListQuery query) {
QueryWrapper<MessageList> qw = new QueryWrapper<>();
/* if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("ml.msgSid", query.getMsgSid());
}*/
if (StringUtils.isNotBlank(query.getMsgType())) {
qw.like("m.msgType", query.getMsgType());
}
if (StringUtils.isNotBlank(query.getMsgSource())) {
qw.like("m.msgSource", query.getMsgSource());
}
if (StringUtils.isNotBlank(query.getMsgTitle())) {
qw.like("m.msgTitle", query.getMsgTitle());
}
if (StringUtils.isNotBlank(query.getReceiverSid())) {
qw.eq("ml.receiverSid", query.getReceiverSid());
}
/* if (StringUtils.isNotBlank(query.getReceiverName())) {
qw.eq("ml.receiverName", query.getReceiverName());
}
if (StringUtils.isNotBlank(query.getReceiverDeptSid())) {
qw.eq("ml.receiverDeptSid", query.getReceiverDeptSid());
}
if (StringUtils.isNotBlank(query.getReceiverDeptName())) {
qw.eq("ml.receiverDeptName", query.getReceiverDeptName());
}
if (query.getRDelStatus() != null) {
qw.eq("ml.rDelStatus", query.getRDelStatus());
}
if (query.getSDelStatus() != null) {
qw.eq("ml.sDelStatus", query.getSDelStatus());
}*/
if (StringUtils.isNotBlank(query.getSenderName())) {
qw.like("m.senderName", query.getSenderName());
}
String createDateStart = query.getCreateDateStart();
String createDateEnd = query.getCreateDateEnd();
/* if (StringUtils.isNotBlank(createDateEnd)) {
createDateEnd = createDateEnd + (" 23:59:59");
}
if (StringUtils.isNotBlank(createDateStart) && StringUtils.isNotBlank(createDateEnd)) {
qw.between("m.createTime",createDateStart,createDateEnd);
}*/
qw.apply(StringUtils.isNotEmpty(createDateStart), "date_format (m.createTime,'%Y-%m-%d') >= date_format('" + createDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createDateEnd), "date_format (m.createTime,'%Y-%m-%d') <= date_format('" + createDateEnd + "','%Y-%m-%d')"
);
return qw;
}
public PagerVo<MessageListVo> listPageVo(PagerQuery<MessageListQuery> pq) {
MessageListQuery query = pq.getParams();
QueryWrapper<MessageList> qw = createQueryWrapper(query);
IPage<MessageList> page = PagerUtil.queryToPage(pq);
IPage<MessageListVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageListVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageListDto dto) {
MessageList entity = new MessageList();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageListVo fetchByIdVo(String id) {
MessageList entity = this.fetchById(id);
MessageListVo vo = new MessageListVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public PagerVo<MessageListJoinMsgVo> noreadListPage(PagerQuery<MessageListQuery> pq,String userSid) {
MessageListQuery query = pq.getParams();
query.setReceiverSid(userSid);
QueryWrapper<MessageList> qw = createQueryWrapper(query);
IPage<MessageList> page = PagerUtil.queryToPage(pq);
IPage<MessageListJoinMsgVo> pagging = baseMapper.noreadListPage(page, qw);
PagerVo<MessageListJoinMsgVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<MessageListJoinMsgVo> readListPage(PagerQuery<MessageListQuery> pq,String userSid) {
MessageListQuery query = pq.getParams();
query.setReceiverSid(userSid);
QueryWrapper<MessageList> qw = createQueryWrapper(query);
IPage<MessageList> page = PagerUtil.queryToPage(pq);
IPage<MessageListJoinMsgVo> pagging = baseMapper.readListPage(page, qw);
PagerVo<MessageListJoinMsgVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public int updateByReceiverSid(String receiverSid) {
return baseMapper.updateByReceiverSid(receiverSid);
}
public int deleteBySids(List<String> sidList) {
int i = 0;
for (String s : sidList) {
i = baseMapper.deleteBySids(s);
}
return i;
}
public int changeRead(List<String> sidList) {
return baseMapper.changeRead(sidList);
}
public int changeUnRead(List<String> sidList) {
return baseMapper.changeUnRead(sidList);
}
/**
* @param pagerQuery 查询条件
* @description: 客户端的消息分页列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 17:26
*/
public IPage<WxMessageListVo> listPage(PagerQuery<WxMessageListQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<WxMessageListQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<WxMessageListVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.listPage(page, qw);
}
/**
* @param query
* @description: 构造查询条件
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 17:36
*/
private QueryWrapper<WxMessageListVo> buildQueryWrapper(WxMessageListQuery query) {
QueryWrapper<WxMessageListVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgTypeSid())) {
qw.eq("m.msgTypeSid", query.getMsgTypeSid());
}
if (StringUtils.isNotBlank(query.getReceiverSid())) {
qw.eq("ml.receiverSid", query.getReceiverSid());
}
qw.eq("mt.identifier", "0001");
return qw;
}
/**
* @param msgTypeSid 消息类别sid
* @description: 根据消息类别sid查询
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 16:12
*/
public int selectListCount(String msgTypeSid) {
return baseMapper.selectListCount(msgTypeSid);
}
public MessageListJoinMsgVo fetchByMsgSid(String sid) {
MessageList messageList = this.fetchBySid(sid);
String msgSid = messageList.getMsgSid();
return baseMapper.fetchByMsgSid(msgSid);
}
public Integer fetchByReceiverSid(String receiverSid) {
return baseMapper.fetchByReceiverSid(receiverSid);
}
/**
* 查询未读数量
* @param msgTypeSid
* @param userSid
* @return
*/
public Integer selectUnReadCount(String msgTypeSid, String userSid) {
return baseMapper.selectUnReadCount(msgTypeSid, userSid);
}
/**
* 手机端查询消息主页面
* @param userSid
* @return
*/
public AppMsgMainVo getAppMsgMainList(String userSid) {
AppMsgMainVo vo = new AppMsgMainVo();
List<AppCrossIcon> crossIconList = new ArrayList<>();
List<AppLongsIcon> longIconList = new ArrayList<>();
List<MessageTypeVo> typeList = messageTypeService.selectMsgTypeList("0002");
typeList.forEach(messageTypeVo -> {
// 未读数量
int unReadCount = baseMapper.selectUnReadCount(messageTypeVo.getMsgTypeSid(), userSid);
String num = "";
if (unReadCount != 0) {
num = String.valueOf(unReadCount);
}
if (StringUtils.isNotBlank(messageTypeVo.getCrossIconUrl())) { // 横排消息
AppCrossIcon crossIcon = new AppCrossIcon();
crossIcon.setMsgTypeSid(messageTypeVo.getMsgTypeSid());
crossIcon.setMsgType(messageTypeVo.getMsgType());
crossIcon.setIconUrl(messageTypeVo.getCrossIconUrl());
crossIcon.setNum(num);
crossIconList.add(crossIcon);
} else { // 纵排消息
AppLongsIcon longsIcon = new AppLongsIcon();
longsIcon.setMsgType(messageTypeVo.getMsgType());
longsIcon.setIconUrl(messageTypeVo.getLongIconUrl());
AppLastMsgVo lastMsg = baseMapper.selectLastMsg(userSid, messageTypeVo.getMsgTypeSid());
longsIcon.setMsgTypeSid(messageTypeVo.getMsgTypeSid());
longsIcon.setTitle(lastMsg == null ? "" : lastMsg.getMsgTitle());
longsIcon.setContent(lastMsg == null ? "" : lastMsg.getMsgContent());
longsIcon.setSendTime(lastMsg == null ? "" : lastMsg.getSendTime());
longsIcon.setNum(num);
longIconList.add(longsIcon);
}
});
vo.setCrossIconList(crossIconList);
vo.setLongIconList(longIconList);
int unReadCount = baseMapper.selectUnReadCount("", userSid);
if (unReadCount != 0) {
vo.setMsgTotal("未读消息"+unReadCount+"条");
}
return vo;
}
/**
* 手机端查询消息列表
* @param pq
* @return
*/
public PagerVo<AppMessageListVo> getAppMsgListByUserSid(PagerQuery<AppMessageListQuery> pq) {
QueryWrapper<MessageList> qw = new QueryWrapper<>();
qw.eq("ml.receiverSid", pq.getParams().getUserSid());
qw.eq("m.msgTypeSid", pq.getParams().getMsgTypeSid());
IPage<AppMessageListQuery> iPage = PagerUtil.queryToPage(pq);
IPage<AppMessageListVo> page = baseMapper.getAppMsgListByUserSid(iPage, qw);
PagerVo<AppMessageListVo> pagerVo = PagerUtil.pageToVo(page, null);
pagerVo.getRecords().stream().forEach(vo -> {
if (vo.getType().equals("2")) {
AppSubsetVersionVo subsetVersionVo = appSubsetVersionFeign.fetchBySid(vo.getModuleSid()).getData();
vo.setPath(subsetVersionVo.getUpdateUrl());
vo.setModulePluginName(subsetVersionVo.getModulePluginName());
if (StringUtils.isNotBlank(subsetVersionVo.getVersionName())) {
vo.setModuleVersion(Integer.parseInt(subsetVersionVo.getVersionName()));
}
}
if (StringUtils.isBlank(vo.getJson())) {
vo.setJson("{}");
}
});
pagerVo.setMsg("共查询出"+pagerVo.getTotal()+"条消息");
return pagerVo;
}
/**
* 手机端用户根据消息类型批量设为已读
* @param msgTypeSid
* @return
*/
public int updateAppReadByType(String msgTypeSid, String userSid) {
return baseMapper.updateAppReadByType(msgTypeSid, userSid);
}
}

38
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagelist/wx/WxMessageListRest.java

@ -0,0 +1,38 @@
package com.yxt.messagecenter.biz.messagelist.wx;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListFeign;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListQuery;
import com.yxt.messagecenter.api.messagelist.wx.WxMessageListVo;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author dimengzhe
* @date 2021/11/1 17:07
* @description
*/
@Api(tags = "客户端消息列表")
@RestController
@RequestMapping("v1/wx/messagelist")
public class WxMessageListRest implements WxMessageListFeign {
@Autowired
private MessageListService messageListService;
@Override
public ResultBean<PagerVo<WxMessageListVo>> listPage(PagerQuery<WxMessageListQuery> pagerQuery) {
ResultBean<PagerVo<WxMessageListVo>> rb = ResultBean.fireFail();
IPage<WxMessageListVo> page = messageListService.listPage(pagerQuery);
PagerVo<WxMessageListVo> pv = new PagerVo<>();
PagerVo<WxMessageListVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
}

40
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messageremindrule;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleMapper <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageRemindruleMapper extends BaseMapper<MessageRemindrule> {
//@Update("update message_remindrule set name=#{msg} where id=#{id}")
//IPage<MessageRemindruleVo> voPage(IPage<MessageRemindrule> page, @Param(Constants.WRAPPER) QueryWrapper<MessageRemindrule> qw);
IPage<MessageRemindruleVo> selectPageVo(IPage<MessageRemindrule> page, @Param(Constants.WRAPPER) Wrapper<MessageRemindrule> qw);
List<MessageRemindruleVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageRemindrule> qw);
@Select("select * from message_remindrule")
List<MessageRemindruleVo> selectListVo();
}

13
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo">
SELECT * FROM message_remindrule <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo">
SELECT * FROM message_remindrule <where> ${ew.sqlSegment} </where>
</select>
</mapper>

94
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleRest.java

@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messageremindrule;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleQuery;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleDto;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleRest <br/>
* Description: 提醒规则. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "提醒规则")
@RestController
@RequestMapping("v1/messageremindrule")
public class MessageRemindruleRest implements MessageRemindruleFeign {
@Autowired
private MessageRemindruleService messageRemindruleService;
@Override
public ResultBean<PagerVo<MessageRemindruleVo>> listPage(@RequestBody PagerQuery<MessageRemindruleQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageRemindruleVo> pv = messageRemindruleService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageRemindruleVo>> listAll(@RequestBody MessageRemindruleQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageRemindruleVo> list = messageRemindruleService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageRemindruleVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageRemindruleVo> list = messageRemindruleService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageRemindruleDto dto){
ResultBean rb = ResultBean.fireFail();
messageRemindruleService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageRemindruleDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageRemindruleService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageRemindruleService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageRemindruleVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageRemindruleVo vo = messageRemindruleService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageRemindrule> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageRemindrule vo = messageRemindruleService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

99
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messageremindrule/MessageRemindruleService.java

@ -0,0 +1,99 @@
package com.yxt.messagecenter.biz.messageremindrule;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindrule;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleQuery;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleVo;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleDto;
import com.yxt.messagecenter.api.messageremindrule.MessageRemindruleFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageRemindruleService.java <br/>
* Class: com.yxt.messagecenter.biz.messageremindrule.MessageRemindruleService <br/>
* Description: 提醒规则 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageRemindruleService extends MybatisBaseService<MessageRemindruleMapper, MessageRemindrule> {
public PagerVo<MessageRemindrule> listPage(PagerQuery<MessageRemindruleQuery> pq) {
MessageRemindruleQuery query = pq.getParams();
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
IPage<MessageRemindrule> page = PagerUtil.queryToPage(pq);
IPage<MessageRemindrule> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageRemindrule> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageRemindrule> listAll(MessageRemindruleQuery query) {
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageRemindrule> createQueryWrapper(MessageRemindruleQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageRemindrule> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getRuleCode())) {
qw.eq("ruleCode", query.getRuleCode());
}
if (query.getRules() != null) {
qw.eq("rules", query.getRules());
}
if (query.getRemindWay() != null) {
qw.eq("remindWay", query.getRemindWay());
}
return qw;
}
public PagerVo<MessageRemindruleVo> listPageVo(PagerQuery<MessageRemindruleQuery> pq) {
MessageRemindruleQuery query = pq.getParams();
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
IPage<MessageRemindrule> page = PagerUtil.queryToPage(pq);
IPage<MessageRemindruleVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageRemindruleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageRemindruleVo> listAllVo(MessageRemindruleQuery query) {
QueryWrapper<MessageRemindrule> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageRemindruleVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageRemindruleDto dto){
MessageRemindrule entity = new MessageRemindrule();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageRemindruleVo fetchByIdVo(String id){
MessageRemindrule entity = this.fetchById(id);
MessageRemindruleVo vo = new MessageRemindruleVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

40
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyMapper.java

@ -0,0 +1,40 @@
package com.yxt.messagecenter.biz.messagereply;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.messagecenter.api.messagereply.MessageReply;
import com.yxt.messagecenter.api.messagereply.MessageReplyVo;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagereply.MessageReplyMapper <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageReplyMapper extends BaseMapper<MessageReply> {
//@Update("update message_reply set name=#{msg} where id=#{id}")
//IPage<MessageReplyVo> voPage(IPage<MessageReply> page, @Param(Constants.WRAPPER) QueryWrapper<MessageReply> qw);
IPage<MessageReplyVo> selectPageVo(IPage<MessageReply> page, @Param(Constants.WRAPPER) Wrapper<MessageReply> qw);
List<MessageReplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<MessageReply> qw);
@Select("select * from message_reply")
List<MessageReplyVo> selectListVo();
}

13
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagereply.MessageReplyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.messagecenter.api.messagereply.MessageReplyVo">
SELECT * FROM message_reply <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.messagecenter.api.messagereply.MessageReplyVo">
SELECT * FROM message_reply <where> ${ew.sqlSegment} </where>
</select>
</mapper>

94
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyRest.java

@ -0,0 +1,94 @@
package com.yxt.messagecenter.biz.messagereply;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.messagecenter.api.messagereply.MessageReply;
import com.yxt.messagecenter.api.messagereply.MessageReplyQuery;
import com.yxt.messagecenter.api.messagereply.MessageReplyVo;
import com.yxt.messagecenter.api.messagereply.MessageReplyDto;
import com.yxt.messagecenter.api.messagereply.MessageReplyFeign;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagereply.MessageReplyRest <br/>
* Description: 消息回复. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息回复")
@RestController
@RequestMapping("v1/messagereply")
public class MessageReplyRest implements MessageReplyFeign {
@Autowired
private MessageReplyService messageReplyService;
@Override
public ResultBean<PagerVo<MessageReplyVo>> listPage(@RequestBody PagerQuery<MessageReplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<MessageReplyVo> pv = messageReplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean<List<MessageReplyVo>> listAll(@RequestBody MessageReplyQuery query){
ResultBean rb = ResultBean.fireFail();
List<MessageReplyVo> list = messageReplyService.listAllVo(query);
return rb.success().setData(list);
}
@Override
public ResultBean<List<MessageReplyVo>> list(){
ResultBean rb = ResultBean.fireFail();
List<MessageReplyVo> list = messageReplyService.listVo();
return rb.success().setData(list);
}
@Override
public ResultBean save(MessageReplyDto dto){
ResultBean rb = ResultBean.fireFail();
messageReplyService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageReplyDto dto,String sid){
ResultBean rb = ResultBean.fireFail();
messageReplyService.updateBySid(dto.toMap(),sid);
return rb.success();
}
@Override
public ResultBean del(String ids){
ResultBean rb = ResultBean.fireFail();
messageReplyService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<MessageReplyVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
MessageReplyVo vo = messageReplyService.fetchByIdVo(id);
return rb.success().setData(vo);
}
@Override
public ResultBean<MessageReply> fetchBySid(String sid){
ResultBean rb = ResultBean.fireFail();
MessageReply vo = messageReplyService.fetchBySid(sid);
return rb.success().setData(vo);
}
}

103
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagereply/MessageReplyService.java

@ -0,0 +1,103 @@
package com.yxt.messagecenter.biz.messagereply;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.messagereply.MessageReply;
import com.yxt.messagecenter.api.messagereply.MessageReplyQuery;
import com.yxt.messagecenter.api.messagereply.MessageReplyVo;
import com.yxt.messagecenter.api.messagereply.MessageReplyDto;
import com.yxt.messagecenter.api.messagereply.MessageReplyFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageReplyService.java <br/>
* Class: com.yxt.messagecenter.biz.messagereply.MessageReplyService <br/>
* Description: 消息回复 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-10-28 10:20:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageReplyService extends MybatisBaseService<MessageReplyMapper, MessageReply> {
public PagerVo<MessageReply> listPage(PagerQuery<MessageReplyQuery> pq) {
MessageReplyQuery query = pq.getParams();
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
IPage<MessageReply> page = PagerUtil.queryToPage(pq);
IPage<MessageReply> pagging = baseMapper.selectPage(page, qw);
PagerVo<MessageReply> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageReply> listAll(MessageReplyQuery query) {
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
return baseMapper.selectList(qw);
}
private QueryWrapper<MessageReply> createQueryWrapper(MessageReplyQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<MessageReply> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMsgSid())) {
qw.eq("msgSid", query.getMsgSid());
}
if (StringUtils.isNotBlank(query.getReplyConent())) {
qw.eq("replyConent", query.getReplyConent());
}
if (StringUtils.isNotBlank(query.getReplyPersonName())) {
qw.eq("replyPersonName", query.getReplyPersonName());
}
if (StringUtils.isNotBlank(query.getReplyUserSid())) {
qw.eq("replyUserSid", query.getReplyUserSid());
}
return qw;
}
public PagerVo<MessageReplyVo> listPageVo(PagerQuery<MessageReplyQuery> pq) {
MessageReplyQuery query = pq.getParams();
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
IPage<MessageReply> page = PagerUtil.queryToPage(pq);
IPage<MessageReplyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<MessageReplyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<MessageReplyVo> listAllVo(MessageReplyQuery query) {
QueryWrapper<MessageReply> qw = createQueryWrapper(query);
return baseMapper.selectListAllVo(qw);
}
public List<MessageReplyVo> listVo() {
return baseMapper.selectListVo();
}
public void saveOrUpdateDto(MessageReplyDto dto){
MessageReply entity = new MessageReply();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageReplyVo fetchByIdVo(String id){
MessageReply entity = this.fetchById(id);
MessageReplyVo vo = new MessageReplyVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

33
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeMapper.java

@ -0,0 +1,33 @@
package com.yxt.messagecenter.biz.messagetype;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.messagecenter.api.messagetype.MessageType;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeMapper.java <br/>
* Class: com.yxt.messagecenter.biz.messagetype.MessageTypeMapper <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface MessageTypeMapper extends BaseMapper<MessageType> {
/**
* @param identifier 消息标识0001为小程序0002为app
* @description: 获取消息类别的列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 15:45
*/
List<MessageTypeVo> selectMsgTypeList(String identifier);
}

20
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeMapper.xml

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.messagecenter.biz.messagetype.MessageTypeMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<!--获取消息类别的列表-->
<select id="selectMsgTypeList" resultType="com.yxt.messagecenter.api.messagetype.MessageTypeVo">
SELECT mt.sid msgTypeSid,<!--消息类别sid-->
mt.msgType,
mt.crossIconUrl,<!--横排图标地址-->
mt.longIconUrl,<!--纵排图标地址-->
mt.sort<!--排序-->
FROM message_type mt
<where>
<if test="identifier != null and identifier !=''">
identifier=#{identifier}
</if>
</where>
</select>
</mapper>

72
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeRest.java

@ -0,0 +1,72 @@
package com.yxt.messagecenter.biz.messagetype;
import com.yxt.common.core.result.ResultBean;
import com.yxt.messagecenter.api.messagetype.MessageTypeDto;
import com.yxt.messagecenter.api.messagetype.MessageTypeFeign;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeFeignFallback.java <br/>
* Class: com.yxt.messagecenter.biz.messagetype.MessageTypeRest <br/>
* Description: 消息类别. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "消息类别")
@RestController
@RequestMapping("v1/messagetype")
public class MessageTypeRest implements MessageTypeFeign {
@Autowired
private MessageTypeService messageTypeService;
@Autowired
private MessageListService messageListService;
@Override
public ResultBean save(MessageTypeDto dto) {
ResultBean rb = ResultBean.fireFail();
messageTypeService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
public ResultBean update(MessageTypeDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
messageTypeService.updateBySid(dto.toMap(), sid);
return rb.success();
}
@Override
public ResultBean del(String ids) {
ResultBean rb = ResultBean.fireFail();
messageTypeService.delByIds(ids);
return rb.success();
}
@Override
public ResultBean<List<MessageTypeVo>> selectList() {
String identifier = "0001";
List<MessageTypeVo> messageWxTypeVoList = messageTypeService.selectMsgTypeList(identifier);
return new ResultBean<List<MessageTypeVo>>().success().setData(messageWxTypeVoList);
}
@Override
public ResultBean<List<MessageTypeVo>> selectAppMsgTypeList(String identifier) {
List<MessageTypeVo> messageWxTypeVoList = messageTypeService.selectMsgTypeList(identifier);
return new ResultBean<List<MessageTypeVo>>().success().setData(messageWxTypeVoList);
}
}

69
message-center-biz/src/main/java/com/yxt/messagecenter/biz/messagetype/MessageTypeService.java

@ -0,0 +1,69 @@
package com.yxt.messagecenter.biz.messagetype;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.messagecenter.api.messagetype.MessageType;
import com.yxt.messagecenter.api.messagetype.MessageTypeDto;
import com.yxt.messagecenter.api.messagetype.MessageTypeVo;
import com.yxt.messagecenter.biz.messagelist.MessageListService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: message-center(消息中心) <br/>
* File: MessageTypeService.java <br/>
* Class: com.yxt.messagecenter.biz.messagetype.MessageTypeService <br/>
* Description: 消息类别 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-11-01 15:25:56 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class MessageTypeService extends MybatisBaseService<MessageTypeMapper, MessageType> {
@Autowired
private MessageListService messageListService;
public void saveOrUpdateDto(MessageTypeDto dto) {
MessageType entity = new MessageType();
dto.fillEntity(entity);
this.saveOrUpdate(entity);
}
public MessageTypeVo fetchByIdVo(String id) {
MessageType entity = this.fetchById(id);
MessageTypeVo vo = new MessageTypeVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* @param identifier 消息标识0001为小程序0002为app
* @description: 获取消息类别的列表
* @return:
* @Author: dimengzhe
* @Date: 2021/11/1 15:46
*/
public List<MessageTypeVo> selectMsgTypeList(String identifier) {
List<MessageTypeVo> messageWxTypeVoList = baseMapper.selectMsgTypeList(identifier);
for (MessageTypeVo msgType : messageWxTypeVoList) {
boolean isHave = false;
String msgTypeSid = msgType.getMsgTypeSid();
//查询该消息类别下是否包含未读的消息
int count = messageListService.selectListCount(msgTypeSid);
if (count > 0) {
isHave = true;
msgType.setIsHave(isHave);
}else{
msgType.setIsHave(isHave);
}
}
return messageWxTypeVoList;
}
}

70
message-center-biz/src/main/java/com/yxt/messagecenter/conf/Swagger2Config.java

@ -0,0 +1,70 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.messagecenter.conf;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
/**
* Project: jlcyry <br/>
* File: Swagger2Config.java <br/>
* Class: com.yxt.jlzx.jlcyry.conf.Swagger2Config <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2020/8/25 23:27 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Configuration
@EnableSwagger2
@EnableKnife4j
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).select()
.apis(RequestHandlerSelectors.basePackage("com.yxt"))
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("消息中心").description("消息中心").version("1.0")
.build();
}
}

34
message-center-biz/src/main/resources/application-dev.yml

@ -0,0 +1,34 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/message-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=GMT%2B8&failOverReadOnly=false
username: root
password: root
redis:
database: 2 # Redis数据库索引(默认为0)
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password:
port: 6379
timeout: 0 # 连接超时时间(毫秒)
nacos:
discovery:
server-addr: 127.0.0.1:8848
# 日志配置
logging:
level:
com.yxt: debug
org.mybatis: debug
org.springframework: warn
image:
upload:
path: D:\\anrui\\upload\\
url:
prefix: http://127.0.0.1:8111/upload/

29
message-center-biz/src/main/resources/application-pro.yml

@ -0,0 +1,29 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://120.46.131.15:3306/message_center?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: anrui_@root
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
redis:
database: 3 # Redis数据库索引(默认为0)
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password: 123456
port: 6379
timeout: 0 # 连接超时时间(毫秒)
image:
upload:
path: D:\anrui\upload\
url:
prefix: http://120.46.131.15:8111/upload/

13
message-center-biz/src/main/resources/application-test.yml

@ -0,0 +1,13 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/message-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=GMT%2B8&failOverReadOnly=false
username: root
password: root
# 日志配置
logging:
level:
com.yxt: debug
org.mybatis: debug
org.springframework: warn

48
message-center-biz/src/main/resources/application.yml

@ -0,0 +1,48 @@
spring:
application:
name: message-center
profiles:
active: pro
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
servlet:
multipart:
max-file-size: 50MB
max-request-size: 100MB
output:
ansi:
enabled: ALWAYS
server:
port: 8107
#mybatis
mybatis-plus:
mapper-locations: classpath*:**Mapper.xml
global-config:
refresh: true
db-config:
id-type: Auto
db-type: mysql
configuration:
map-underscore-to-camel-case: false
cache-enabled: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#hystrix的超时时间
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 30000
#ribbon的超时时间
ribbon:
ReadTimeout: 30000
ConnectTimeout: 30000

50
message-center-biz/src/main/resources/logback-spring.xml

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.base" value="logs/messagecenter" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 :
|%blue(%thread) 线程 如 :DiscoveryClient-CacheRefreshExecutor-0-->
<!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n)
</pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="FILEOUT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}.%d{yyyyMMdd}.%i.log.zip
</fileNamePattern>
<!-- 当文件大小超过10MB时触发滚动 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!--<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
-%msg%n</Pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILEOUT" />
</root>
</configuration>

12
message-center.iml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

16
pom.xml

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>message-center</artifactId>
<groupId>com.yxt.messagecenter</groupId>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>message-center-api</module>
<module>message-center-biz</module>
</modules>
</project>
Loading…
Cancel
Save