Commit 6bfaa848f29334f703599c7638aa37decac33c29

Authored by YunaiV
1 parent 865a58a6

✨ feat(im): 继续优化频道的各种代码(v2)

yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/channel/vo/material/ImChannelMaterialPageReqVO.java
@@ -19,7 +19,7 @@ public class ImChannelMaterialPageReqVO extends PageParam { @@ -19,7 +19,7 @@ public class ImChannelMaterialPageReqVO extends PageParam {
19 private Long channelId; 19 private Long channelId;
20 20
21 @Schema(description = "内容类型", example = "1") 21 @Schema(description = "内容类型", example = "1")
22 - private Integer type; // 参见 ImChannelMaterialContentTypeEnum 枚举类 22 + private Integer type; // 参见 ImChannelMaterialTypeEnum 枚举类
23 23
24 @Schema(description = "标题", example = "活动") 24 @Schema(description = "标题", example = "活动")
25 private String title; 25 private String title;
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/channel/vo/material/ImChannelMaterialRespVO.java
@@ -19,7 +19,7 @@ public class ImChannelMaterialRespVO { @@ -19,7 +19,7 @@ public class ImChannelMaterialRespVO {
19 private String channelName; 19 private String channelName;
20 20
21 @Schema(description = "内容类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 21 @Schema(description = "内容类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
22 - private Integer type; // 参见 ImChannelMaterialContentTypeEnum 枚举类 22 + private Integer type; // 参见 ImChannelMaterialTypeEnum 枚举类
23 23
24 @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED) 24 @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
25 private String title; 25 private String title;
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/controller/admin/manager/channel/vo/material/ImChannelMaterialSaveReqVO.java
@@ -19,7 +19,7 @@ public class ImChannelMaterialSaveReqVO { @@ -19,7 +19,7 @@ public class ImChannelMaterialSaveReqVO {
19 19
20 @Schema(description = "内容类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 20 @Schema(description = "内容类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
21 @NotNull(message = "内容类型不能为空") 21 @NotNull(message = "内容类型不能为空")
22 - private Integer type; // 参见 ImChannelMaterialContentTypeEnum 枚举类 22 + private Integer type; // 参见 ImChannelMaterialTypeEnum 枚举类
23 23
24 @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "双十一活动来啦") 24 @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "双十一活动来啦")
25 @NotBlank(message = "标题不能为空") 25 @NotBlank(message = "标题不能为空")
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/channel/ImChannelMaterialDO.java
1 package cn.iocoder.yudao.module.im.dal.dataobject.channel; 1 package cn.iocoder.yudao.module.im.dal.dataobject.channel;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.module.im.enums.channel.ImChannelMaterialContentTypeEnum; 4 +import cn.iocoder.yudao.module.im.dal.dataobject.message.ImChannelMessageDO;
  5 +import cn.iocoder.yudao.module.im.enums.channel.ImChannelMaterialTypeEnum;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
6 import com.baomidou.mybatisplus.annotation.TableId; 7 import com.baomidou.mybatisplus.annotation.TableId;
7 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
@@ -41,7 +42,7 @@ public class ImChannelMaterialDO extends BaseDO { @@ -41,7 +42,7 @@ public class ImChannelMaterialDO extends BaseDO {
41 /** 42 /**
42 * 素材内容类型 43 * 素材内容类型
43 * <p> 44 * <p>
44 - * 枚举 {@link ImChannelMaterialContentTypeEnum} 45 + * 枚举 {@link ImChannelMaterialTypeEnum}
45 */ 46 */
46 private Integer type; 47 private Integer type;
47 /** 48 /**
@@ -57,11 +58,11 @@ public class ImChannelMaterialDO extends BaseDO { @@ -57,11 +58,11 @@ public class ImChannelMaterialDO extends BaseDO {
57 */ 58 */
58 private String summary; 59 private String summary;
59 /** 60 /**
60 - * 富文本 HTML;在 {@link ImChannelMaterialContentTypeEnum#CONTENT} 使用 61 + * 富文本 HTML;在 {@link ImChannelMaterialTypeEnum#CONTENT} 使用
61 */ 62 */
62 private String content; 63 private String content;
63 /** 64 /**
64 - * 跳转链接;在 {@link ImChannelMaterialContentTypeEnum#LINK} 使用 65 + * 跳转链接;在 {@link ImChannelMaterialTypeEnum#LINK} 使用
65 */ 66 */
66 private String url; 67 private String url;
67 68
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/enums/channel/ImChannelMaterialContentTypeEnum.java renamed to yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/enums/channel/ImChannelMaterialTypeEnum.java
@@ -13,7 +13,7 @@ import java.util.Arrays; @@ -13,7 +13,7 @@ import java.util.Arrays;
13 */ 13 */
14 @Getter 14 @Getter
15 @AllArgsConstructor 15 @AllArgsConstructor
16 -public enum ImChannelMaterialContentTypeEnum implements ArrayValuable<Integer> { 16 +public enum ImChannelMaterialTypeEnum implements ArrayValuable<Integer> {
17 17
18 /** 18 /**
19 * 站内富文本;点击素材在客户端内置详情页拉 content 渲染 19 * 站内富文本;点击素材在客户端内置详情页拉 content 渲染
@@ -24,7 +24,7 @@ public enum ImChannelMaterialContentTypeEnum implements ArrayValuable&lt;Integer&gt; { @@ -24,7 +24,7 @@ public enum ImChannelMaterialContentTypeEnum implements ArrayValuable&lt;Integer&gt; {
24 */ 24 */
25 LINK(2, "外链"); 25 LINK(2, "外链");
26 26
27 - public static final Integer[] ARRAYS = Arrays.stream(values()).map(ImChannelMaterialContentTypeEnum::getType).toArray(Integer[]::new); 27 + public static final Integer[] ARRAYS = Arrays.stream(values()).map(ImChannelMaterialTypeEnum::getType).toArray(Integer[]::new);
28 28
29 private final Integer type; 29 private final Integer type;
30 private final String name; 30 private final String name;
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/channel/ImChannelServiceImpl.java
@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.im.controller.admin.manager.channel.vo.channel.Im @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.im.controller.admin.manager.channel.vo.channel.Im
9 import cn.iocoder.yudao.module.im.dal.dataobject.channel.ImChannelDO; 9 import cn.iocoder.yudao.module.im.dal.dataobject.channel.ImChannelDO;
10 import cn.iocoder.yudao.module.im.dal.mysql.channel.ImChannelMapper; 10 import cn.iocoder.yudao.module.im.dal.mysql.channel.ImChannelMapper;
11 import jakarta.annotation.Resource; 11 import jakarta.annotation.Resource;
  12 +import org.springframework.context.annotation.Lazy;
12 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
13 import org.springframework.validation.annotation.Validated; 14 import org.springframework.validation.annotation.Validated;
14 15
@@ -31,6 +32,7 @@ public class ImChannelServiceImpl implements ImChannelService { @@ -31,6 +32,7 @@ public class ImChannelServiceImpl implements ImChannelService {
31 @Resource 32 @Resource
32 private ImChannelMapper channelMapper; 33 private ImChannelMapper channelMapper;
33 @Resource 34 @Resource
  35 + @Lazy // 延迟加载,解决循环依赖
34 private ImChannelMaterialService channelMaterialService; 36 private ImChannelMaterialService channelMaterialService;
35 37
36 // ==================== 用户端 ==================== 38 // ==================== 用户端 ====================
yudao-module-im/src/main/java/cn/iocoder/yudao/module/im/service/websocket/dto/message/MaterialMessage.java
@@ -17,7 +17,7 @@ public class MaterialMessage { @@ -17,7 +17,7 @@ public class MaterialMessage {
17 /** 17 /**
18 * 素材内容类型 18 * 素材内容类型
19 * <p> 19 * <p>
20 - * 枚举 {@link cn.iocoder.yudao.module.im.enums.channel.ImChannelMaterialContentTypeEnum} 20 + * 枚举 {@link cn.iocoder.yudao.module.im.enums.channel.ImChannelMaterialTypeEnum}
21 * 客户端按本字段判定点击行为:CONTENT 走站内详情页拉富文本;LINK 跳 url 21 * 客户端按本字段判定点击行为:CONTENT 走站内详情页拉富文本;LINK 跳 url
22 */ 22 */
23 private Integer type; 23 private Integer type;