Răsfoiți Sursa

分块上传

xiang 2 săptămâni în urmă
părinte
comite
28265c3f85
59 a modificat fișierele cu 1375 adăugiri și 1 ștergeri
  1. 28 0
      artist/src/main/java/com/artist/config/SecurityUtil.java
  2. 118 0
      artist/src/main/java/com/artist/controller/UserFavoriteArtistController.java
  3. 9 0
      artist/src/main/java/com/artist/domain/dto/AlbumNumDto.java
  4. 9 0
      artist/src/main/java/com/artist/domain/dto/ArtistWithAlbumNumDto.java
  5. 14 0
      artist/src/main/java/com/artist/domain/dto/SingerInfoDTO.java
  6. 9 0
      artist/src/main/java/com/artist/domain/dto/fetchSingerDto.java
  7. 47 0
      artist/src/main/java/com/artist/domain/po/UserFavoriteArtist.java
  8. 17 0
      artist/src/main/java/com/artist/feignclient/AlbumServiceClient.java
  9. 28 0
      artist/src/main/java/com/artist/feignclient/ContentServiceClientFallbackFactory.java
  10. 14 0
      base/src/main/java/com/base/common/RedisConstant.java
  11. 23 0
      content/src/main/java/com/content/config/MyBatisConfig.java
  12. 20 0
      content/src/main/java/com/content/controller/ArtistMediaHistoryController.java
  13. 20 0
      content/src/main/java/com/content/controller/ChunkInfoController.java
  14. 20 0
      content/src/main/java/com/content/controller/MediaProcessController.java
  15. 20 0
      content/src/main/java/com/content/controller/MediaProcessHistoryController.java
  16. 20 0
      content/src/main/java/com/content/controller/MediaVideoController.java
  17. 20 0
      content/src/main/java/com/content/controller/SysConfigController.java
  18. 62 0
      content/src/main/java/com/content/controller/UserPlaylistFavoriteController.java
  19. 20 0
      content/src/main/java/com/content/controller/VideoProcessQueueController.java
  20. 18 0
      content/src/main/java/com/content/domain/dto/AlbumListDto.java
  21. 9 0
      content/src/main/java/com/content/domain/dto/AlbumNumDto.java
  22. 13 0
      content/src/main/java/com/content/domain/dto/CollectSongDto.java
  23. 22 0
      content/src/main/java/com/content/domain/dto/PageDto.java
  24. 59 0
      content/src/main/java/com/content/domain/po/ChunkInfo.java
  25. 71 0
      content/src/main/java/com/content/domain/po/MediaProcess.java
  26. 65 0
      content/src/main/java/com/content/domain/po/MediaProcessHistory.java
  27. 78 0
      content/src/main/java/com/content/domain/po/MediaVideo.java
  28. 50 0
      content/src/main/java/com/content/domain/po/SysConfig.java
  29. 47 0
      content/src/main/java/com/content/domain/po/VideoProcessQueue.java
  30. 25 0
      content/src/main/java/com/content/domain/query/PageQuery.java
  31. 16 0
      content/src/main/java/com/content/mapper/ArtistMediaHistoryMapper.java
  32. 16 0
      content/src/main/java/com/content/mapper/ChunkInfoMapper.java
  33. 16 0
      content/src/main/java/com/content/mapper/MediaProcessHistoryMapper.java
  34. 16 0
      content/src/main/java/com/content/mapper/MediaProcessMapper.java
  35. 16 0
      content/src/main/java/com/content/mapper/MediaVideoMapper.java
  36. 16 0
      content/src/main/java/com/content/mapper/SysConfigMapper.java
  37. 16 0
      content/src/main/java/com/content/mapper/VideoProcessQueueMapper.java
  38. 16 0
      content/src/main/java/com/content/service/IArtistMediaHistoryService.java
  39. 16 0
      content/src/main/java/com/content/service/IChunkInfoService.java
  40. 16 0
      content/src/main/java/com/content/service/IMediaProcessHistoryService.java
  41. 16 0
      content/src/main/java/com/content/service/IMediaProcessService.java
  42. 16 0
      content/src/main/java/com/content/service/IMediaVideoService.java
  43. 16 0
      content/src/main/java/com/content/service/ISysConfigService.java
  44. 16 0
      content/src/main/java/com/content/service/IVideoProcessQueueService.java
  45. 20 0
      content/src/main/java/com/content/service/impl/ArtistMediaHistoryServiceImpl.java
  46. 20 0
      content/src/main/java/com/content/service/impl/ChunkInfoServiceImpl.java
  47. 20 0
      content/src/main/java/com/content/service/impl/MediaProcessHistoryServiceImpl.java
  48. 20 0
      content/src/main/java/com/content/service/impl/MediaProcessServiceImpl.java
  49. 20 0
      content/src/main/java/com/content/service/impl/MediaVideoServiceImpl.java
  50. 20 0
      content/src/main/java/com/content/service/impl/SysConfigServiceImpl.java
  51. 20 0
      content/src/main/java/com/content/service/impl/VideoProcessQueueServiceImpl.java
  52. 5 0
      content/src/main/resources/mapper/ArtistMediaHistoryMapper.xml
  53. 5 0
      content/src/main/resources/mapper/ChunkInfoMapper.xml
  54. 5 0
      content/src/main/resources/mapper/MediaProcessHistoryMapper.xml
  55. 5 0
      content/src/main/resources/mapper/MediaProcessMapper.xml
  56. 5 0
      content/src/main/resources/mapper/MediaVideoMapper.xml
  57. 5 0
      content/src/main/resources/mapper/SysConfigMapper.xml
  58. 5 0
      content/src/main/resources/mapper/VideoProcessQueueMapper.xml
  59. 1 1
      parent/pom.xml

+ 28 - 0
artist/src/main/java/com/artist/config/SecurityUtil.java

@@ -0,0 +1,28 @@
+package com.artist.config;
+import com.alibaba.fastjson.JSON;
+import com.artist.domain.po.WyUser;
+import org.springframework.security.core.context.SecurityContextHolder;
+
+/**
+ * @author Mr.M
+ * @version 1.0
+ * @description 获取当前用户身份工具类
+ * @date 2022/10/18 18:02
+ */
+public class SecurityUtil {
+    public static WyUser getUser() {
+        try {
+            Object principalObj = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+            if (principalObj instanceof String) {
+                //取出用户身份信息
+                String principal = principalObj.toString();
+                //将json转成对象
+                WyUser user = JSON.parseObject(principal, WyUser.class);
+                return user;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}

+ 118 - 0
artist/src/main/java/com/artist/controller/UserFavoriteArtistController.java

@@ -0,0 +1,118 @@
+package com.artist.controller;
+
+import com.artist.config.SecurityUtil;
+import com.artist.domain.dto.AlbumNumDto;
+import com.artist.domain.dto.ArtistWithAlbumNumDto;
+import com.artist.domain.po.Artist;
+import com.artist.domain.po.UserFavoriteArtist;
+import com.artist.domain.po.WyUser;
+import com.artist.feignclient.AlbumServiceClient;
+import com.artist.service.IUserFavoriteArtistService;
+import com.base.common.RedisConstant;
+import com.base.utils.Result;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 我喜欢的歌手表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-24
+ */
+@RestController
+@RequestMapping("/user-favorite-artist")
+public class UserFavoriteArtistController {
+    @Autowired
+    private IUserFavoriteArtistService userFavoriteArtistService;
+    @Autowired
+    private RedisTemplate redisTemplate;
+    @Autowired
+    private AlbumServiceClient albumServiceClient;
+    @GetMapping("/queryByid")
+    @PreAuthorize("hasRole('ROLE_USER')")
+    public Result queryByid(@RequestParam Integer id) {
+        WyUser user = SecurityUtil.getUser();
+        String redisKey = RedisConstant.USER_FAVORITE_ARTIST_PREFIX + user.getId() + ":" + id;
+        Object cachedObj = redisTemplate.opsForValue().get(redisKey);
+        if (cachedObj != null) {
+            return Result.success(cachedObj);
+        }
+        // 查询数据库
+        UserFavoriteArtist one = userFavoriteArtistService.lambdaQuery()
+                .eq(UserFavoriteArtist::getArtistId, id)
+                .eq(UserFavoriteArtist::getUserId, user.getId())
+                .one();
+        // 存入Redis(设置较短过期时间)
+        if (one != null) {
+            redisTemplate.opsForValue().set(redisKey, one, 30, TimeUnit.HOURS);
+        } else {
+            redisTemplate.opsForValue().set(redisKey, false, 1, TimeUnit.HOURS);
+        }
+        return Result.success(one);
+    }
+
+    @GetMapping("/ChangeFavoriteArtist")
+    @PreAuthorize("hasRole('ROLE_USER')")
+    public Result ChangeFavoriteArtist(@RequestParam Integer id) {
+        WyUser user = SecurityUtil.getUser();
+        UserFavoriteArtist one = userFavoriteArtistService.lambdaQuery()
+                .eq(UserFavoriteArtist::getArtistId, id)
+                .eq(UserFavoriteArtist::getUserId, user.getId())
+                .one();
+        if (one != null) {
+            userFavoriteArtistService.removeById(one);
+            redisTemplate.delete(RedisConstant.USER_FAVORITE_ARTIST_PREFIX + user.getId() + ":" + id);
+            return Result.success(false);
+        }
+        UserFavoriteArtist userFavoriteArtist = new UserFavoriteArtist();
+        userFavoriteArtist.setUserId(user.getId());
+        userFavoriteArtist.setArtistId(id);
+        redisTemplate.delete(RedisConstant.USER_FAVORITE_ARTIST_PREFIX + user.getId() + ":" + id);
+        userFavoriteArtistService.save(userFavoriteArtist);
+        return Result.success(true);
+    }
+
+    //通过id查询喜欢歌手
+    @GetMapping("/queryById")
+    @PreAuthorize("hasRole('ROLE_USER')")
+    public Result queryById(@RequestParam Integer id) {
+        // 查询喜欢的歌手列表
+        List<Artist> list = userFavoriteArtistService.queryById(id);
+        // 提取歌手ID列表
+        List<Integer> artistIds = list.stream()
+                .map(Artist::getId)
+                .collect(Collectors.toList());
+        // 通过Feign客户端查询专辑数量信息
+        List<AlbumNumDto> albumNumList = albumServiceClient.getAlbum(artistIds);
+        System.out.println("albumNumList = " + albumNumList);
+        System.out.println("list = " + list);
+        List<ArtistWithAlbumNumDto> result = list.stream()
+                .map(artist -> {
+                    ArtistWithAlbumNumDto dto = new ArtistWithAlbumNumDto();
+                    BeanUtils.copyProperties(artist, dto);
+                    // 查找对应的专辑数量
+                    AlbumNumDto albumNumDto = albumNumList.stream()
+                            .filter(item -> item.getId().equals(artist.getId()))
+                            .findFirst()
+                            .orElse(new AlbumNumDto());
+                    dto.setNum(albumNumDto.getNum());
+                    return dto;
+                })
+                .collect(Collectors.toList());
+        return Result.success(result);
+    }
+
+}

+ 9 - 0
artist/src/main/java/com/artist/domain/dto/AlbumNumDto.java

@@ -0,0 +1,9 @@
+package com.artist.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class AlbumNumDto {
+    private Integer id;
+    private Integer num;
+}

+ 9 - 0
artist/src/main/java/com/artist/domain/dto/ArtistWithAlbumNumDto.java

@@ -0,0 +1,9 @@
+package com.artist.domain.dto;
+
+import com.artist.domain.po.Artist;
+import lombok.Data;
+
+@Data
+public class ArtistWithAlbumNumDto extends Artist {
+    private Integer num; // 专辑数量
+}

+ 14 - 0
artist/src/main/java/com/artist/domain/dto/SingerInfoDTO.java

@@ -0,0 +1,14 @@
+package com.artist.domain.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SingerInfoDTO {
+    private Integer id;
+    private String title;
+    private String src;
+}

+ 9 - 0
artist/src/main/java/com/artist/domain/dto/fetchSingerDto.java

@@ -0,0 +1,9 @@
+package com.artist.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class fetchSingerDto {
+    private Integer region;
+    private Integer gender;
+}

+ 47 - 0
artist/src/main/java/com/artist/domain/po/UserFavoriteArtist.java

@@ -0,0 +1,47 @@
+package com.artist.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 我喜欢的歌手表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-11-18
+ */
+@TableName("user_favorite_artist")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserFavoriteArtist implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 关联用户ID(对应user表id)
+     */
+    private Integer userId;
+
+    /**
+     * 关联艺人ID(对应artist表id)
+     */
+    private Integer artistId;
+
+    /**
+     * 关注时间
+     */
+    private LocalDateTime createTime;
+
+}

+ 17 - 0
artist/src/main/java/com/artist/feignclient/AlbumServiceClient.java

@@ -0,0 +1,17 @@
+package com.artist.feignclient;
+
+import com.artist.domain.dto.AlbumNumDto;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@FeignClient(value = "content",fallbackFactory = ContentServiceClientFallbackFactory.class)
+public interface AlbumServiceClient {
+    @ResponseBody
+    @GetMapping("/album/AlbumNum")
+    public List<AlbumNumDto> getAlbum(@RequestParam("ids") List<Integer> ids);
+}

+ 28 - 0
artist/src/main/java/com/artist/feignclient/ContentServiceClientFallbackFactory.java

@@ -0,0 +1,28 @@
+package com.artist.feignclient;
+import com.artist.domain.dto.AlbumNumDto;
+import feign.hystrix.FallbackFactory;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Mr.M
+ * @version 1.0
+ * @description TODO
+ * @date 2022/10/25 9:14
+ */
+@Slf4j
+@Component
+public class ContentServiceClientFallbackFactory implements FallbackFactory<AlbumServiceClient> {
+    @Override
+    public AlbumServiceClient create(Throwable throwable) {
+        return new AlbumServiceClient() {
+            @Override
+            public List<AlbumNumDto> getAlbum(List<Integer> ids) {
+                return  new ArrayList<>();
+            }
+        };
+    }
+}

+ 14 - 0
base/src/main/java/com/base/common/RedisConstant.java

@@ -0,0 +1,14 @@
+package com.base.common;
+public class RedisConstant {
+        // 艺人相关缓存键
+        public static final String ARTIST_STATUS_USER_PREFIX = "artist:status:user:";
+        public static final String ARTIST_QUERY_SINGER_BY_ID_PREFIX = "artist:querySingerById:";
+        // 内容相关缓存键
+        public static final String SWIPPER_LIST = "swipper:list";
+        // 歌单相关缓存键
+        public static final String PLAYLIST_USER_PREFIX = "playlist:user:";
+        //所有专辑
+        public static final String PLAYLIST_ALL_ALBUM = "playlist:allAlbum";
+        //收藏的歌手
+        public static final String USER_FAVORITE_ARTIST_PREFIX = "user:favorite:artist:";
+}

+ 23 - 0
content/src/main/java/com/content/config/MyBatisConfig.java

@@ -0,0 +1,23 @@
+package com.content.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MyBatisConfig {
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor()
+    {   //初始化核心插件
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        //添加分页插件
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
+        paginationInnerInterceptor.setMaxLimit(1000L);//分页上限
+                paginationInnerInterceptor.setOverflow(true);//超出上限重新从0开始
+        // 添加分页插件
+        interceptor.addInnerInterceptor(paginationInnerInterceptor);
+        return interceptor;
+    }
+}

+ 20 - 0
content/src/main/java/com/content/controller/ArtistMediaHistoryController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 艺人媒体文件历史记录表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/artist-media-history")
+public class ArtistMediaHistoryController {
+
+}

+ 20 - 0
content/src/main/java/com/content/controller/ChunkInfoController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 分块上传信息表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/chunk-info")
+public class ChunkInfoController {
+
+}

+ 20 - 0
content/src/main/java/com/content/controller/MediaProcessController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 媒体处理任务表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/media-process")
+public class MediaProcessController {
+
+}

+ 20 - 0
content/src/main/java/com/content/controller/MediaProcessHistoryController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 媒体处理历史表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/media-process-history")
+public class MediaProcessHistoryController {
+
+}

+ 20 - 0
content/src/main/java/com/content/controller/MediaVideoController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 视频文件表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/media-video")
+public class MediaVideoController {
+
+}

+ 20 - 0
content/src/main/java/com/content/controller/SysConfigController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 系统配置表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/sys-config")
+public class SysConfigController {
+
+}

+ 62 - 0
content/src/main/java/com/content/controller/UserPlaylistFavoriteController.java

@@ -0,0 +1,62 @@
+package com.content.controller;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.base.utils.Result;
+import com.content.config.SecurityUtil;
+import com.content.domain.po.Playlist;
+import com.content.domain.po.UserPlaylistFavorite;
+import com.content.service.IUserPlaylistFavoriteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 我喜欢的歌单表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-25
+ */
+@RestController
+@RequestMapping("/user-playlist-favorite")
+public class UserPlaylistFavoriteController {
+    @Autowired
+    private IUserPlaylistFavoriteService iUserPlaylistFavoriteService;
+    @GetMapping("/add")
+    public Result add(@RequestParam Integer playlistId) {
+        Integer id = SecurityUtil.getUser().getId();
+        UserPlaylistFavorite userPlaylistFavorite = new UserPlaylistFavorite();
+        userPlaylistFavorite.setUserId(id);
+        userPlaylistFavorite.setPlaylistId(playlistId);
+        iUserPlaylistFavoriteService.save(userPlaylistFavorite);
+        return Result.success("收藏成功");
+    }
+    @GetMapping("/delete")
+    public Result delete(@RequestParam Integer playlistId) {
+        Integer userId = SecurityUtil.getUser().getId();
+        iUserPlaylistFavoriteService.remove(
+                new LambdaQueryWrapper<UserPlaylistFavorite>()
+                        .eq(UserPlaylistFavorite::getUserId, userId)
+                        .eq(UserPlaylistFavorite::getPlaylistId, playlistId)
+        );
+        return Result.success("取消收藏");
+    }
+    @GetMapping("/queryIsCollection")
+    public Result queryIsCollection(@RequestParam Integer playlistId) {
+        Integer id = SecurityUtil.getUser().getId();
+        boolean exists = iUserPlaylistFavoriteService.lambdaQuery().eq(UserPlaylistFavorite::getUserId, id).eq(UserPlaylistFavorite::getPlaylistId, playlistId).exists();
+        boolean b = exists ? true : false;
+        return Result.success(b);
+    }
+    @GetMapping("/queryAll")
+    public Result queryAll() {
+        Integer id = SecurityUtil.getUser().getId();
+        ArrayList<Playlist> playlists = iUserPlaylistFavoriteService.queryAll(id);
+        return Result.success(playlists);
+    }
+}

+ 20 - 0
content/src/main/java/com/content/controller/VideoProcessQueueController.java

@@ -0,0 +1,20 @@
+package com.content.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 视频处理队列表 前端控制器
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@RestController
+@RequestMapping("/video-process-queue")
+public class VideoProcessQueueController {
+
+}

+ 18 - 0
content/src/main/java/com/content/domain/dto/AlbumListDto.java

@@ -0,0 +1,18 @@
+package com.content.domain.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class AlbumListDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+    private String title;
+    private String src;
+}

+ 9 - 0
content/src/main/java/com/content/domain/dto/AlbumNumDto.java

@@ -0,0 +1,9 @@
+package com.content.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class AlbumNumDto {
+    private Integer id;
+    private Integer num;
+}

+ 13 - 0
content/src/main/java/com/content/domain/dto/CollectSongDto.java

@@ -0,0 +1,13 @@
+package com.content.domain.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class CollectSongDto {
+    private Integer songId;
+    private Integer playlistId;
+}

+ 22 - 0
content/src/main/java/com/content/domain/dto/PageDto.java

@@ -0,0 +1,22 @@
+package com.content.domain.dto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(description = "分页查询实体")
+public class PageDto<T> {
+    @ApiModelProperty("总记录数")
+    private Long total;
+    @ApiModelProperty("当前页数据")
+    private List<T> records;
+    @ApiModelProperty("当前页")
+    private Long page;
+    @ApiModelProperty("每页大小")
+    private Long size;
+}

+ 59 - 0
content/src/main/java/com/content/domain/po/ChunkInfo.java

@@ -0,0 +1,59 @@
+package com.content.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 分块上传信息表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("chunk_info")
+@ApiModel(value="ChunkInfo对象", description="分块上传信息表")
+public class ChunkInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "文件MD5")
+    private String fileMd5;
+
+    @ApiModelProperty(value = "原始文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "分块索引")
+    private Integer chunkIndex;
+
+    @ApiModelProperty(value = "总分块数")
+    private Integer totalChunks;
+
+    @ApiModelProperty(value = "分块文件URL")
+    private String chunkUrl;
+
+    @ApiModelProperty(value = "状态:0-待上传,1-已上传")
+    private Integer status;
+
+    @ApiModelProperty(value = "上传时间")
+    private LocalDateTime uploadedTime;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+
+}

+ 71 - 0
content/src/main/java/com/content/domain/po/MediaProcess.java

@@ -0,0 +1,71 @@
+package com.content.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 媒体处理任务表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("media_process")
+@ApiModel(value="MediaProcess对象", description="媒体处理任务表")
+public class MediaProcess implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "文件ID")
+    private String fileId;
+
+    @ApiModelProperty(value = "文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "存储桶")
+    private String bucket;
+
+    @ApiModelProperty(value = "文件路径")
+    private String filePath;
+
+    @ApiModelProperty(value = "任务状态: 0-待处理, 1-处理中, 2-处理成功, 3-处理失败")
+    private String status;
+
+    @ApiModelProperty(value = "失败次数")
+    private Integer failCount;
+
+    @ApiModelProperty(value = "错误信息")
+    private String errormsg;
+
+    @ApiModelProperty(value = "处理后文件URL")
+    private String url;
+
+    @ApiModelProperty(value = "完成时间")
+    private LocalDateTime finishDate;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createDate;
+
+    @ApiModelProperty(value = "流程定义ID")
+    private String processDefinitionId;
+
+    @ApiModelProperty(value = "标签")
+    private String tag;
+
+
+}

+ 65 - 0
content/src/main/java/com/content/domain/po/MediaProcessHistory.java

@@ -0,0 +1,65 @@
+package com.content.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 媒体处理历史表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("media_process_history")
+@ApiModel(value="MediaProcessHistory对象", description="媒体处理历史表")
+public class MediaProcessHistory implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "对应的任务ID")
+    private Long processId;
+
+    @ApiModelProperty(value = "文件ID")
+    private String fileId;
+
+    @ApiModelProperty(value = "文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "存储桶")
+    private String bucket;
+
+    @ApiModelProperty(value = "文件路径")
+    private String filePath;
+
+    @ApiModelProperty(value = "处理状态")
+    private String status;
+
+    @ApiModelProperty(value = "错误信息")
+    private String errormsg;
+
+    @ApiModelProperty(value = "处理后URL")
+    private String url;
+
+    @ApiModelProperty(value = "完成时间")
+    private LocalDateTime finishDate;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createDate;
+
+
+}

+ 78 - 0
content/src/main/java/com/content/domain/po/MediaVideo.java

@@ -0,0 +1,78 @@
+package com.content.domain.po;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 视频文件表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("media_video")
+@ApiModel(value="MediaVideo对象", description="视频文件表")
+public class MediaVideo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "原始文件名")
+    private String originalName;
+
+    @ApiModelProperty(value = "存储文件名")
+    private String fileName;
+
+    @ApiModelProperty(value = "视频文件URL")
+    private String fileUrl;
+
+    @ApiModelProperty(value = "预览GIF URL")
+    private String previewGifUrl;
+
+    @ApiModelProperty(value = "文件大小")
+    private Long fileSize;
+
+    @ApiModelProperty(value = "视频时长")
+    private String duration;
+
+    @ApiModelProperty(value = "上传歌手")
+    private String singer;
+
+    @ApiModelProperty(value = "存储桶名")
+    private String bucketName;
+
+    @ApiModelProperty(value = "状态:0-待处理,1-处理中,2-已完成,3-处理失败")
+    private Integer status;
+
+    @ApiModelProperty(value = "处理进度(%)")
+    private BigDecimal processProgress;
+
+    @ApiModelProperty(value = "重试次数")
+    private Integer retryCount;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createdTime;
+
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updatedTime;
+
+    @ApiModelProperty(value = "处理完成时间")
+    private LocalDateTime processedTime;
+
+
+}

+ 50 - 0
content/src/main/java/com/content/domain/po/SysConfig.java

@@ -0,0 +1,50 @@
+package com.content.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 系统配置表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("sys_config")
+@ApiModel(value="SysConfig对象", description="系统配置表")
+public class SysConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "配置键")
+    private String configKey;
+
+    @ApiModelProperty(value = "配置值")
+    private String configValue;
+
+    @ApiModelProperty(value = "配置描述")
+    private String description;
+
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updateTime;
+
+
+}

+ 47 - 0
content/src/main/java/com/content/domain/po/VideoProcessQueue.java

@@ -0,0 +1,47 @@
+package com.content.domain.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 视频处理队列表
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("video_process_queue")
+@ApiModel(value="VideoProcessQueue对象", description="视频处理队列表")
+public class VideoProcessQueue implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "视频ID")
+    private Long videoId;
+
+    @ApiModelProperty(value = "优先级:1-普通,2-高")
+    private Integer priority;
+
+    @ApiModelProperty(value = "0-待处理,1-已调度,2-已完成")
+    private Integer status;
+
+    @ApiModelProperty(value = "调度时间")
+    private LocalDateTime scheduledTime;
+
+
+}

+ 25 - 0
content/src/main/java/com/content/domain/query/PageQuery.java

@@ -0,0 +1,25 @@
+package com.content.domain.query;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(description = "分页查询实体")
+public class PageQuery {
+    @ApiModelProperty("页码")
+    private Long pageNo;
+    @ApiModelProperty("页码")
+    private Long pageSize;
+    @ApiModelProperty("查询字段")
+    private String tag;
+    @ApiModelProperty("查询语种")
+    private String language;
+    @ApiModelProperty("查询风格")
+    private String style;
+    @ApiModelProperty("查询场景")
+    private String scene;
+    @ApiModelProperty("查询情感")
+    private String emotion;
+    @ApiModelProperty("查询主题")
+    private String theme;
+}

+ 16 - 0
content/src/main/java/com/content/mapper/ArtistMediaHistoryMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.ArtistMediaHistory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 艺人媒体文件历史记录表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface ArtistMediaHistoryMapper extends BaseMapper<ArtistMediaHistory> {
+
+}

+ 16 - 0
content/src/main/java/com/content/mapper/ChunkInfoMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.ChunkInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 分块上传信息表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface ChunkInfoMapper extends BaseMapper<ChunkInfo> {
+
+}

+ 16 - 0
content/src/main/java/com/content/mapper/MediaProcessHistoryMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.MediaProcessHistory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 媒体处理历史表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface MediaProcessHistoryMapper extends BaseMapper<MediaProcessHistory> {
+
+}

+ 16 - 0
content/src/main/java/com/content/mapper/MediaProcessMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.MediaProcess;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 媒体处理任务表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface MediaProcessMapper extends BaseMapper<MediaProcess> {
+
+}

+ 16 - 0
content/src/main/java/com/content/mapper/MediaVideoMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.MediaVideo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 视频文件表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface MediaVideoMapper extends BaseMapper<MediaVideo> {
+
+}

+ 16 - 0
content/src/main/java/com/content/mapper/SysConfigMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.SysConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 系统配置表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface SysConfigMapper extends BaseMapper<SysConfig> {
+
+}

+ 16 - 0
content/src/main/java/com/content/mapper/VideoProcessQueueMapper.java

@@ -0,0 +1,16 @@
+package com.content.mapper;
+
+import com.content.domain.po.VideoProcessQueue;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 视频处理队列表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface VideoProcessQueueMapper extends BaseMapper<VideoProcessQueue> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/IArtistMediaHistoryService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.ArtistMediaHistory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 艺人媒体文件历史记录表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface IArtistMediaHistoryService extends IService<ArtistMediaHistory> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/IChunkInfoService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.ChunkInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 分块上传信息表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface IChunkInfoService extends IService<ChunkInfo> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/IMediaProcessHistoryService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.MediaProcessHistory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 媒体处理历史表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface IMediaProcessHistoryService extends IService<MediaProcessHistory> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/IMediaProcessService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.MediaProcess;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 媒体处理任务表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface IMediaProcessService extends IService<MediaProcess> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/IMediaVideoService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.MediaVideo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 视频文件表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface IMediaVideoService extends IService<MediaVideo> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/ISysConfigService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.SysConfig;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 系统配置表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface ISysConfigService extends IService<SysConfig> {
+
+}

+ 16 - 0
content/src/main/java/com/content/service/IVideoProcessQueueService.java

@@ -0,0 +1,16 @@
+package com.content.service;
+
+import com.content.domain.po.VideoProcessQueue;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 视频处理队列表 服务类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+public interface IVideoProcessQueueService extends IService<VideoProcessQueue> {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/ArtistMediaHistoryServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.ArtistMediaHistory;
+import com.content.mapper.ArtistMediaHistoryMapper;
+import com.content.service.IArtistMediaHistoryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 艺人媒体文件历史记录表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class ArtistMediaHistoryServiceImpl extends ServiceImpl<ArtistMediaHistoryMapper, ArtistMediaHistory> implements IArtistMediaHistoryService {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/ChunkInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.ChunkInfo;
+import com.content.mapper.ChunkInfoMapper;
+import com.content.service.IChunkInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 分块上传信息表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class ChunkInfoServiceImpl extends ServiceImpl<ChunkInfoMapper, ChunkInfo> implements IChunkInfoService {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/MediaProcessHistoryServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.MediaProcessHistory;
+import com.content.mapper.MediaProcessHistoryMapper;
+import com.content.service.IMediaProcessHistoryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 媒体处理历史表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class MediaProcessHistoryServiceImpl extends ServiceImpl<MediaProcessHistoryMapper, MediaProcessHistory> implements IMediaProcessHistoryService {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/MediaProcessServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.MediaProcess;
+import com.content.mapper.MediaProcessMapper;
+import com.content.service.IMediaProcessService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 媒体处理任务表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class MediaProcessServiceImpl extends ServiceImpl<MediaProcessMapper, MediaProcess> implements IMediaProcessService {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/MediaVideoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.MediaVideo;
+import com.content.mapper.MediaVideoMapper;
+import com.content.service.IMediaVideoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 视频文件表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class MediaVideoServiceImpl extends ServiceImpl<MediaVideoMapper, MediaVideo> implements IMediaVideoService {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/SysConfigServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.SysConfig;
+import com.content.mapper.SysConfigMapper;
+import com.content.service.ISysConfigService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 系统配置表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig> implements ISysConfigService {
+
+}

+ 20 - 0
content/src/main/java/com/content/service/impl/VideoProcessQueueServiceImpl.java

@@ -0,0 +1,20 @@
+package com.content.service.impl;
+
+import com.content.domain.po.VideoProcessQueue;
+import com.content.mapper.VideoProcessQueueMapper;
+import com.content.service.IVideoProcessQueueService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 视频处理队列表 服务实现类
+ * </p>
+ *
+ * @author xiang
+ * @since 2025-12-26
+ */
+@Service
+public class VideoProcessQueueServiceImpl extends ServiceImpl<VideoProcessQueueMapper, VideoProcessQueue> implements IVideoProcessQueueService {
+
+}

+ 5 - 0
content/src/main/resources/mapper/ArtistMediaHistoryMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.ArtistMediaHistoryMapper">
+
+</mapper>

+ 5 - 0
content/src/main/resources/mapper/ChunkInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.ChunkInfoMapper">
+
+</mapper>

+ 5 - 0
content/src/main/resources/mapper/MediaProcessHistoryMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.MediaProcessHistoryMapper">
+
+</mapper>

+ 5 - 0
content/src/main/resources/mapper/MediaProcessMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.MediaProcessMapper">
+
+</mapper>

+ 5 - 0
content/src/main/resources/mapper/MediaVideoMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.MediaVideoMapper">
+
+</mapper>

+ 5 - 0
content/src/main/resources/mapper/SysConfigMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.SysConfigMapper">
+
+</mapper>

+ 5 - 0
content/src/main/resources/mapper/VideoProcessQueueMapper.xml

@@ -0,0 +1,5 @@
+<?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.content.mapper.VideoProcessQueueMapper">
+
+</mapper>

+ 1 - 1
parent/pom.xml

@@ -38,7 +38,7 @@
         <swagger-spring-boot-starter.version>1.9.0.RELEASE</swagger-spring-boot-starter.version>
         <swagger-annotations.version>1.5.20</swagger-annotations.version>
         <!-- 数据库相关 -->
-        <mybatis-plus-boot-starter.version>3.4.1</mybatis-plus-boot-starter.version>
+        <mybatis-plus-boot-starter.version>3.5.3.1</mybatis-plus-boot-starter.version>
         <druid-spring-boot-starter.version>1.2.8</druid-spring-boot-starter.version>
         <mysql-connector-java.version>8.0.30</mysql-connector-java.version>
         <spring-redis.version>1.2.18</spring-redis.version>