chore(project): rebranded project as 恭学教育 (GongXue Education)
Some checks failed
Deploy to Runner / deploy (push) Failing after 6m7s

- Updated pom.xml project name, description, and URL to 恭学教育.
- Changed LICENSE copyright holder to 恭学教育 (GongXue Education).
- Rebranded README.md with new project title and tagline.
- Replaced @author 芋道源码 with @author 恭学教育 across all Java source files.
- Updated Swagger metadata with 恭学教育 API title and admin@gongxue.com.
- Added Gitea Actions CI pipeline for automated build and deployment.
This commit is contained in:
2026-07-27 15:12:32 +08:00
parent fd54f07889
commit 7426579863
2342 changed files with 2839 additions and 2710 deletions

View File

@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
/**
* IM 会话读位置 Response VO
*
* @author 芋道源码
* @author 恭学教育
*/
@Schema(description = "管理后台 - IM 会话读位置 Response VO")
@Data

View File

@@ -38,7 +38,7 @@ import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLogi
/**
* IM 好友申请记录 Controller
*
* @author 芋道源码
* @author 恭学教育
*/
@Tag(name = "管理后台 - IM 好友申请")
@RestController

View File

@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
/**
* IM 好友 Response VO
*
* @author 芋道源码
* @author 恭学教育
*/
@Schema(description = "管理后台 - IM 好友 Response VO")
@Data
@@ -52,7 +52,7 @@ public class ImFriendRespVO {
// ========== 下面是聚合字段,方便前端显示 ==========
@Schema(description = "好友昵称(实时聚合自 AdminUser", example = "芋道")
@Schema(description = "好友昵称(实时聚合自 AdminUser", example = "恭学")
private String nickname;
@Schema(description = "好友昵称的拼音(小写无空格)", example = "yudao")

View File

@@ -10,7 +10,7 @@ import lombok.Data;
/**
* IM 好友申请 - 发起 Request VO
*
* @author 芋道源码
* @author 恭学教育
*/
@Schema(description = "管理后台 - IM 好友申请发起 Request VO")
@Data
@@ -20,7 +20,7 @@ public class ImFriendRequestApplyReqVO {
@NotNull(message = "接收方用户编号不能为空")
private Long toUserId;
@Schema(description = "申请理由", example = "我是芋艿(一种食材)")
@Schema(description = "申请理由", example = "我是管理员(一种食材)")
@Size(max = 255, message = "申请理由最多 255 个字符")
private String applyContent;

View File

@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
/**
* IM 好友申请 Response VO
*
* @author 芋道源码
* @author 恭学教育
*/
@Schema(description = "管理后台 - IM 好友申请 Response VO")
@Data
@@ -26,7 +26,7 @@ public class ImFriendRequestRespVO {
@Schema(description = "处理结果", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
private Integer handleResult; // 参见 ImFriendRequestHandleResultEnum 枚举
@Schema(description = "申请理由", example = "我是芋艿(一种食材)")
@Schema(description = "申请理由", example = "我是管理员(一种食材)")
private String applyContent;
@Schema(description = "处理理由(接收方拒绝时可选填)", example = "暂不通过")
@@ -46,7 +46,7 @@ public class ImFriendRequestRespVO {
// ========== 下面是聚合字段,方便前端显示 ==========
@Schema(description = "发起方昵称(实时聚合自 AdminUser", example = "芋道")
@Schema(description = "发起方昵称(实时聚合自 AdminUser", example = "恭学")
private String fromNickname;
@Schema(description = "发起方头像(实时聚合自 AdminUser")

View File

@@ -40,7 +40,7 @@ import static cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils.getLogi
/**
* IM 加群申请 Controller
*
* @author 芋道源码
* @author 恭学教育
*/
@Tag(name = "管理后台 - IM 加群申请")
@RestController

View File

@@ -11,7 +11,7 @@ import java.util.List;
@Data
public class ImGroupCreateReqVO {
@Schema(description = "群名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋道技术交流群")
@Schema(description = "群名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "恭学技术交流群")
@NotBlank(message = "群名称不能为空")
@Size(max = 64, message = "群名称长度不能超过 64")
private String name;

View File

@@ -14,7 +14,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
@ToString(callSuper = true)
public class ImGroupPageReqVO extends PageParam {
@Schema(description = "群名称", example = "芋艿")
@Schema(description = "群名称", example = "管理员")
private String name;
@Schema(description = "群主用户编号", example = "31460")

View File

@@ -14,7 +14,7 @@ public class ImGroupRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1003")
private Long id;
@Schema(description = "群名称", example = "芋艿")
@Schema(description = "群名称", example = "管理员")
private String name;
@Schema(description = "群主用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31460")

View File

@@ -11,7 +11,7 @@ public class ImGroupSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1003")
private Long id;
@Schema(description = "群名称", example = "芋艿")
@Schema(description = "群名称", example = "管理员")
private String name;
@Schema(description = "群主用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31460")

View File

@@ -16,7 +16,7 @@ public class ImGroupUpdateReqVO {
@NotNull(message = "群编号不能为空")
private Long id;
@Schema(description = "群名称", example = "芋道技术交流群")
@Schema(description = "群名称", example = "恭学技术交流群")
@Size(max = 64, message = "群名称长度不能超过 64")
private String name;

View File

@@ -18,7 +18,7 @@ public class ImGroupMemberRespVO {
@Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21730")
private Long userId;
@Schema(description = "组内显示名", example = "芋艿")
@Schema(description = "组内显示名", example = "管理员")
private String displayUserName;
@Schema(description = "群备注", example = "核心群")
@@ -47,7 +47,7 @@ public class ImGroupMemberRespVO {
// ========== 关联 AdminUser 的字段 ==========
@Schema(description = "用户昵称", example = "芋道")
@Schema(description = "用户昵称", example = "恭学")
private String nickname;
@Schema(description = "用户头像")

View File

@@ -14,7 +14,7 @@ public class ImGroupMemberUpdateReqVO {
@NotNull(message = "群编号不能为空")
private Long groupId;
@Schema(description = "群内昵称", example = "芋头")
@Schema(description = "群内昵称", example = "管理员")
private String displayUserName;
@Schema(description = "群备注", example = "公司群")

View File

@@ -15,7 +15,7 @@ public class ImGroupRequestApplyReqVO {
@NotNull(message = "群编号不能为空")
private Long groupId;
@Schema(description = "申请理由", example = "我是芋艿(一种食材)")
@Schema(description = "申请理由", example = "我是管理员(一种食材)")
@Size(max = 255, message = "申请理由最多 255 个字符")
private String applyContent;

View File

@@ -47,7 +47,7 @@ public class ImGroupRequestRespVO {
// ========== 下面是聚合字段,方便前端显示 ==========
@Schema(description = "申请人 / 被邀请人昵称(实时聚合自 AdminUser", example = "芋道")
@Schema(description = "申请人 / 被邀请人昵称(实时聚合自 AdminUser", example = "恭学")
private String userNickname;
@Schema(description = "申请人 / 被邀请人头像(实时聚合自 AdminUser")
@@ -59,7 +59,7 @@ public class ImGroupRequestRespVO {
@Schema(description = "邀请人头像(实时聚合自 AdminUser")
private String inviterAvatar;
@Schema(description = "群名称(实时聚合自 ImGroup", example = "芋道技术交流群")
@Schema(description = "群名称(实时聚合自 ImGroup", example = "恭学技术交流群")
private String groupName;
@Schema(description = "群头像(实时聚合自 ImGroup")

View File

@@ -24,7 +24,7 @@ public class ImFriendRequestManagerRespVO {
@Schema(description = "接收方昵称", example = "李四")
private String toNickname;
@Schema(description = "申请理由", example = "我是芋艿")
@Schema(description = "申请理由", example = "我是管理员")
private String applyContent;
@Schema(description = "发起方对接收方的备注")

View File

@@ -15,7 +15,7 @@ public class ImGroupRequestManagerRespVO {
@Schema(description = "群编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long groupId;
@Schema(description = "群名称", example = "芋道技术交流群")
@Schema(description = "群名称", example = "恭学技术交流群")
private String groupName;
@Schema(description = "申请人 / 被邀请人用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")

View File

@@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
* <p>
* 安全由请求签名JWT + body sha256保证不走登录鉴权伪造请求会被签名校验直接拒绝
*
* @author 芋道源码
* @author 恭学教育
*/
@Tag(name = "LiveKit Webhook 回调")
@RestController

View File

@@ -14,7 +14,7 @@ import lombok.*;
* - 频道是运营单向推送的主体C 端用户不能向频道发消息
* - {@link #code} 是业务码API / 字典外露id 是数字主键给前端会话 targetId 用
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_channel")
@KeySequence("im_channel_seq")

View File

@@ -16,7 +16,7 @@ import lombok.*;
* - 一条素材 1:N 关联多条 {@link ImChannelMessageDO}
* - {@link #content} 富文本仅在素材详情接口按需返回,推送 payload 不带,避免压爆 WebSocket 通道
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_channel_material")
@KeySequence("im_channel_material_seq")

View File

@@ -19,7 +19,7 @@ import java.time.LocalDateTime;
* <p>
* 只表达「用户在某个会话的最大已读位置」,私聊 / 群聊 / 频道统一落这张表,是读位置的唯一权威。
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_conversation_read")
@KeySequence("im_conversation_read_seq")

View File

@@ -10,7 +10,7 @@ import lombok.*;
/**
* IM 表情包 DO运营配置的系统表情包元数据
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_face_pack")
@KeySequence("im_face_pack_seq")

View File

@@ -10,7 +10,7 @@ import lombok.*;
/**
* IM 表情包项 DO系统表情包内的单张表情图
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_face_pack_item")
@KeySequence("im_face_pack_item_seq")

View File

@@ -9,7 +9,7 @@ import lombok.*;
/**
* IM 用户私有表情 DO个人表情包对照微信「我的表情」
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_face_user_item")
@KeySequence("im_face_user_item_seq")

View File

@@ -19,7 +19,7 @@ import java.time.LocalDateTime;
* - 联系人置顶:{@link #pinned} 单边,影响联系人 / 会话排序
* - 黑名单:{@link #blocked} 弱关联 friend单边屏蔽对方消息必须先是好友
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_friend")
@KeySequence("im_friend_seq")

View File

@@ -18,7 +18,7 @@ import java.time.LocalDateTime;
* - 接收方调 agree / refuse 处理(更新 handleResult / handleTime / handleContent
* - 申请通过后displayName / addSource 同步写入 {@link ImFriendDO}
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_friend_request")
@KeySequence("im_friend_request_seq")

View File

@@ -15,7 +15,7 @@ import java.util.List;
/**
* IM 群信息 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "im_group",autoResultMap = true)
@KeySequence("im_group_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
/**
* IM 群成员 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_group_member")
@KeySequence("im_group_member_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。

View File

@@ -20,7 +20,7 @@ import java.time.LocalDateTime;
* <li>处理:群主 / 管理员调 agree / refuse 推进状态机;同意时把 addSource / inviterUserId 同步写入 {@link ImGroupMemberDO}</li>
* </ul>
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_group_request")
@KeySequence("im_group_request_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增MySQL 等可不写

View File

@@ -22,7 +22,7 @@ import java.util.List;
* - {@link #channelId} 冗余 {@link ImChannelMaterialDO#getChannelId()} 便于按频道检索
* - {@link #content} 存推送时 payload 的 JSON 快照title / coverUrl / summary / url不含富文本正文
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "im_channel_message", autoResultMap = true)
@KeySequence("im_channel_message_seq")

View File

@@ -18,7 +18,7 @@ import java.util.List;
/**
* IM 群聊消息 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName(value = "im_group_message", autoResultMap = true)
@KeySequence("im_group_message_seq")

View File

@@ -14,7 +14,7 @@ import java.time.LocalDateTime;
/**
* IM 私聊消息 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_private_message")
@KeySequence("im_private_message_seq")

View File

@@ -18,7 +18,7 @@ import java.time.LocalDateTime;
* <p>
* 一通通话一行;状态机 CREATED → RUNNING → ENDED和明细表 {@link ImRtcParticipantDO} 通过 {@link #room} 关联
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_rtc_call")
@KeySequence("im_rtc_call_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增MySQL 等数据库可不写

View File

@@ -17,7 +17,7 @@ import java.time.LocalDateTime;
* <p>
* 终态闭合:通话 ENDED 时所有明细 status 必属 {LEFT / REJECTED / NO_ANSWER} 之一
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_rtc_participant")
@KeySequence("im_rtc_participant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增MySQL 等数据库可不写

View File

@@ -10,7 +10,7 @@ import lombok.*;
/**
* IM 敏感词 DO
*
* @author 芋道源码
* @author 恭学教育
*/
@TableName("im_sensitive_word")
@KeySequence("im_sensitive_word_seq")

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* IM 频道 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImChannelMapper extends BaseMapperX<ImChannelDO> {

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* IM 频道素材 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImChannelMaterialMapper extends BaseMapperX<ImChannelMaterialDO> {

View File

@@ -14,7 +14,7 @@ import java.util.List;
/**
* IM 会话读位置 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImConversationReadMapper extends BaseMapperX<ImConversationReadDO> {

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* IM 表情包项 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImFacePackItemMapper extends BaseMapperX<ImFacePackItemDO> {

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* IM 表情包 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImFacePackMapper extends BaseMapperX<ImFacePackDO> {

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* IM 用户私有表情 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImFaceUserItemMapper extends BaseMapperX<ImFaceUserItemDO> {

View File

@@ -16,7 +16,7 @@ import java.util.List;
/**
* IM 好友关系 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImFriendMapper extends BaseMapperX<ImFriendDO> {

View File

@@ -16,7 +16,7 @@ import java.util.List;
/**
* IM 好友申请记录 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImFriendRequestMapper extends BaseMapperX<ImFriendRequestDO> {

View File

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
/**
* IM 群 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImGroupMapper extends BaseMapperX<ImGroupDO> {

View File

@@ -17,7 +17,7 @@ import java.util.Map;
/**
* IM 群成员 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImGroupMemberMapper extends BaseMapperX<ImGroupMemberDO> {

View File

@@ -17,7 +17,7 @@ import java.util.List;
/**
* IM 加群申请记录 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImGroupRequestMapper extends BaseMapperX<ImGroupRequestDO> {

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* IM 频道消息 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImChannelMessageMapper extends BaseMapperX<ImChannelMessageDO> {

View File

@@ -18,7 +18,7 @@ import java.util.List;
/**
* IM 群聊消息 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImGroupMessageMapper extends BaseMapperX<ImGroupMessageDO> {

View File

@@ -14,7 +14,7 @@ import java.util.List;
/**
* IM 私聊消息 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImPrivateMessageMapper extends BaseMapperX<ImPrivateMessageDO> {

View File

@@ -15,7 +15,7 @@ import java.util.List;
/**
* IM 通话记录 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImRtcCallMapper extends BaseMapperX<ImRtcCallDO> {

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* IM 通话参与者 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImRtcParticipantMapper extends BaseMapperX<ImRtcParticipantDO> {

View File

@@ -15,7 +15,7 @@ import java.util.List;
/**
* IM 敏感词 Mapper
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImSensitiveWordMapper extends BaseMapperX<ImSensitiveWordDO> {

View File

@@ -13,7 +13,7 @@ import java.util.Map;
* <p>
* 独立于业务 Mapper所有统计 SQL 集中在此,仅服务于 manager 看板,不被其它业务调用,保持各业务 Mapper / Service 不受统计需求污染。
*
* @author 芋道源码
* @author 恭学教育
*/
@Mapper
public interface ImStatisticsManagerMapper {

View File

@@ -4,7 +4,7 @@ package cn.iocoder.yudao.module.im.dal.redis;
/**
* IM Redis Key 枚举类
*
* @author 芋道源码
* @author 恭学教育
*/
public interface RedisKeyConstants {

View File

@@ -19,7 +19,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.RTC_INVITE_BUS
* <p>
* invite 入口包一层锁内做「SELECT 已有活跃通话 → 命中即加入分支;否则 INSERT 新通话」
*
* @author 芋道源码
* @author 恭学教育
*/
@Repository
@Slf4j

View File

@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.im.enums;
/**
* IM 通用常量
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImCommonConstants {

View File

@@ -13,7 +13,7 @@ import java.util.Set;
/**
* IM 内容类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@RequiredArgsConstructor

View File

@@ -10,7 +10,7 @@ import java.util.Objects;
/**
* IM 会话类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IM 频道素材内容类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -11,7 +11,7 @@ import java.util.Arrays;
* <p>
* 由发起方调用 apply 接口时传入;同意后同步写入 im_friend.add_source双向
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter
@@ -19,8 +19,8 @@ public enum ImFriendAddSourceEnum implements ArrayValuable<Integer> {
SEARCH(1, "搜索"), // FriendAddDialog 搜索流程
GROUP(2, "群聊"), // 群成员主页 → UserInfo「加为好友」入口
QR_CODE(3, "扫码"), // TODO @芋艿:后续实现扫码加好友
CARD(4, "名片"); // TODO @芋艿:后续实现通过名片加好友,类似微信的「扫一扫 - 名片」功能,或者「通讯录 - 推荐好友」功能
QR_CODE(3, "扫码"), // TODO @管理员:后续实现扫码加好友
CARD(4, "名片"); // TODO @管理员:后续实现通过名片加好友,类似微信的「扫一扫 - 名片」功能,或者「通讯录 - 推荐好友」功能
public static final Integer[] ARRAYS = Arrays.stream(values()).map(ImFriendAddSourceEnum::getSource).toArray(Integer[]::new);

View File

@@ -10,7 +10,7 @@ import java.util.Objects;
/**
* IM 好友申请处理结果枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -14,7 +14,7 @@ import java.util.Objects;
* <p>
* 用于 ImFriendService.getFriendState 返回值与 FRIEND_STATE 缓存值私聊发送热点路径下sender 调缓存即可同时判定「能否发」和「是否屏蔽接收方」
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -11,16 +11,16 @@ import java.util.Arrays;
* <p>
* 由发起方在申请 / 邀请时传入;同意后同步写入 ImGroupMemberDO 的 addSource 字段
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter
public enum ImGroupAddSourceEnum implements ArrayValuable<Integer> {
SEARCH(1, "搜索"), // TODO @芋艿SEARCH 暂未实现,原因 - 搜群入口尚未开发
SEARCH(1, "搜索"), // TODO @管理员SEARCH 暂未实现,原因 - 搜群入口尚未开发
INVITE(2, "邀请"),
QR_CODE(3, "扫码"), // TODO @芋艿QR_CODE 暂未实现,原因 - 群二维码扫码进群入口尚未开发
SHARE_LINK(4, "分享链接"); // TODO @芋艿SHARE_LINK 暂未实现,原因 - 群分享链接进群入口尚未开发
QR_CODE(3, "扫码"), // TODO @管理员QR_CODE 暂未实现,原因 - 群二维码扫码进群入口尚未开发
SHARE_LINK(4, "分享链接"); // TODO @管理员SHARE_LINK 暂未实现,原因 - 群分享链接进群入口尚未开发
public static final Integer[] ARRAYS = Arrays.stream(values()).map(ImGroupAddSourceEnum::getSource).toArray(Integer[]::new);

View File

@@ -10,7 +10,7 @@ import java.util.Objects;
/**
* IM 群成员角色枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -12,7 +12,7 @@ import java.util.Objects;
* <p>
* 取值与 {@link cn.iocoder.yudao.module.im.enums.friend.ImFriendRequestHandleResultEnum} 平行,便于复用心智模型
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IM 消息回执状态枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@Getter
@AllArgsConstructor

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IM 消息状态枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IM 通话结束原因枚举;落历史消息时计算 content 文案
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -10,7 +10,7 @@ import java.util.Objects;
/**
* IM 通话媒体类型枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -14,7 +14,7 @@ import java.util.Objects;
* <p>
* 状态机CREATED → RUNNING → ENDEDCREATED 直接到 ENDED 表示无人接听 / 主叫取消
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -9,7 +9,7 @@ import java.util.Arrays;
/**
* IM 通话参与者角色枚举
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -18,7 +18,7 @@ import java.util.Objects;
* 2、INVITING → REJECTED接通前点拒接
* 3、INVITING → NO_ANSWER通话结束仍未应答
*
* @author 芋道源码
* @author 恭学教育
*/
@RequiredArgsConstructor
@Getter

View File

@@ -14,7 +14,7 @@ import org.springframework.validation.annotation.Validated;
* 各子模块用嵌套 inner class 区分friend / group / face / message / rtc 等),
* yaml 路径保持 yudao.im.{module}.{key} 与原有部署保持兼容
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@ConfigurationProperties(prefix = "yudao.im")

View File

@@ -1,6 +1,6 @@
/**
* 属于 erp 模块的 framework 封装
*
* @author 芋道源码
* @author 恭学教育
*/
package cn.iocoder.yudao.module.im.framework;

View File

@@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
/**
* im 模块的 RTC 组件的 Configuration
*
* @author 芋道源码
* @author 恭学教育
*/
@Configuration(proxyBeanMethods = false)
public class ImRtcConfiguration {

View File

@@ -31,7 +31,7 @@ import java.util.Objects;
* <p>
* 由 {@link cn.iocoder.yudao.module.im.framework.rtc.config.ImRtcConfiguration} 注册为 Bean本类不带 {@code @Component}
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
public class LiveKitClient {

View File

@@ -8,7 +8,7 @@ import lombok.Data;
* <p>
* 文档参考:<a href="https://docs.livekit.io/home/server/webhook/">webhook 文档</a>
*
* @author 芋道源码
* @author 恭学教育
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)

View File

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
/**
* 僵尸通话清理 Job兜底 LiveKit Webhook 丢失 / 客户端异常关闭等未调 leave 的场景
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@Slf4j

View File

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
/**
* 振铃超时 Job扫 INVITING 超过阈值的参与者,单人粒度标 NO_ANSWER + 推 RTC_CALL(REJECT) 让前端 banner 收敛
*
* @author 芋道源码
* @author 恭学教育
*/
@Component
@Slf4j

View File

@@ -20,7 +20,7 @@ import java.util.List;
/**
* 监听 system 模块的 {@link AdminUserProfileUpdateMessage} 消息,向「资料被改的人」的所有好友推送 FRIEND_INFO_UPDATED 通知
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
@Component

View File

@@ -15,7 +15,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* IM 频道素材 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImChannelMaterialService {

View File

@@ -23,7 +23,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.IM_CHANNEL_MAT
/**
* IM 频道素材 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -15,7 +15,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* IM 频道 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImChannelService {

View File

@@ -23,7 +23,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
/**
* IM 频道 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -9,7 +9,7 @@ import java.util.Map;
/**
* IM 会话读位置 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImConversationReadService {

View File

@@ -19,7 +19,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.
/**
* IM 会话读位置 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Slf4j

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* IM 表情包项 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImFacePackItemService {

View File

@@ -22,7 +22,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.FACE_PACK_ITEM
/**
* IM 表情包项 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -11,7 +11,7 @@ import java.util.List;
/**
* IM 表情包 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImFacePackService {

View File

@@ -22,7 +22,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.FACE_PACK_NOT_
/**
* IM 表情包 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -11,7 +11,7 @@ import java.util.List;
/**
* IM 用户私有表情 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImFaceUserItemService {

View File

@@ -24,7 +24,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.FACE_USER_ITEM
/**
* IM 用户私有表情 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Service
@Validated

View File

@@ -10,7 +10,7 @@ import java.util.List;
/**
* IM 好友申请 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImFriendRequestService {

View File

@@ -42,7 +42,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
/**
* IM 好友申请 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
@Service

View File

@@ -16,7 +16,7 @@ import java.util.List;
* 注意:用户端「加好友」走 {@link ImFriendRequestService#applyFriend} 申请-审批流程,
* 不再开放直接 add 接口;只有 {@link #becomeFriends} 是内部入口(被 agree 同意 / 管理员 import 触发)。
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImFriendService {

View File

@@ -44,7 +44,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.FRIEND_NOT_FRI
/**
* IM 好友关系 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
@Service

View File

@@ -12,7 +12,7 @@ import java.util.Map;
/**
* 群成员 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImGroupMemberService {

View File

@@ -33,7 +33,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.GROUP_MEMBER_N
/**
* 群成员 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
@Service

View File

@@ -12,7 +12,7 @@ import java.util.List;
/**
* IM 加群申请 Service 接口
*
* @author 芋道源码
* @author 恭学教育
*/
public interface ImGroupRequestService {

View File

@@ -43,7 +43,7 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.*;
/**
* IM 加群申请 Service 实现类
*
* @author 芋道源码
* @author 恭学教育
*/
@Slf4j
@Service

Some files were not shown because too many files have changed in this diff Show More