2 我的媒资 2.1 需求分析 通过我的媒资可以查询本教育机构拥有的媒资文件,进行文件处理、删除文件、修改文件信息等操作,具体需求如 下: 1、分页查询我的媒资文件 2、删除媒资文件 3、处理媒资文件 4、修改媒资文件信息 2.2 API 本节讲解我的媒资文件分页查询、处理媒资文件,其它功能请学员自行实现。

[mw_shl_code=applescript,true]@Api(value = "媒体文件管理",description = "媒体文件管理接口",tags = {"媒体文件管理接口"}) public interface MediaFileControllerApi {
@ApiOperation("查询文件列表")
public QueryResponseResult findList(int page, int size, QueryMediaFileRequest queryMediaFileRequest) ;
}[/mw_shl_code] 2.3 服务端开发 2.3.1 Dao


[mw_shl_code=applescript,true]@Repository public interface MediaFileDao 
extends MongoRepository<MediaFile,String> { 
  }[/mw_shl_code]
2.3.2  Service 
定义findList方法实现媒资文件查询列表。

[mw_shl_code=applescript,true]@Service public class MediaFileService {     
  private static Logger logger = LoggerFactory.getLogger(MediaFileService.class);   
    @Autowired   
  MediaFileRepository mediaFileRepository;   
    //文件列表分页查询  
   public QueryResponseResult findList(int page,int size,QueryMediaFileRequest
  queryMediaFileRequest){    
     //查询条件     
    MediaFile mediaFile = new MediaFile();     
    if(queryMediaFileRequest == null){    
         queryMediaFileRequest = new QueryMediaFileRequest();    
     }       
  //查询条件匹配器     
    ExampleMatcher matcher = ExampleMatcher.matching()    
             .withMatcher("tag", ExampleMatcher.GenericPropertyMatchers.conta×××())//tag字段 模糊匹配       
          .withMatcher("fileOriginalName",  ExampleMatcher.GenericPropertyMatchers.conta×××())//文件原始名称模糊匹配                 .withMatcher("processStatus", ExampleMatcher.GenericPropertyMatchers.exact());// 处理状态精确匹配(默认) 
        //查询条件对象       
  if(StringUtils.isNotEmpty(queryMediaFileRequest.getTag())){[/mw_shl_code]
[mw_shl_code=applescript,true]mediaFile.setTag(queryMediaFileRequest.getTag());    
     }    
     if(StringUtils.isNotEmpty(queryMediaFileRequest.getFileOriginalName())){             mediaFile.setFileOriginalName(queryMediaFileRequest.getFileOriginalName());   
      }      
   if(StringUtils.isNotEmpty(queryMediaFileRequest.getProcessStatus())){     
        mediaFile.setProcessStatus(queryMediaFileRequest.getProcessStatus());    
     }     
    //定义example实例  
       Example<MediaFile> ex = Example.of(mediaFile, matcher);   
        page = page‐1;    
     //分页参数   
      Pageable pageable = new PageRequest(page, size);  
       //分页查询       
  Page<MediaFile> all = mediaFileRepository.findAll(ex,pageable);   
      QueryResult<MediaFile> mediaFileQueryResult = new QueryResult<MediaFile>();     
    mediaFileQueryResult.setList(all.getContent());       
  mediaFileQueryResult.setTotal(all.getTotalElements()); 
        return new QueryResponseResult(CommonCode.SUCCESS,mediaFileQueryResult); 
    }   }
[/mw_shl_code]
2.3.3 Controller 
[mw_shl_code=applescript,true]@RestController @RequestMapping("/media/file") public class MediaFileController implements MediaFileControllerApi {       @Autowired 
    MediaFileService mediaFileService;   
  @Autowired    
MediaUploadService mediaUploadService;   
    @Override  
   @GetMapping("/list/{page}/{size}")  
   public QueryResponseResult findList(@PathVariable("page") int page, @PathVariable("size") 
int size, QueryMediaFileRequest queryMediaFileRequest) {      //媒资文件查询          
    return mediaFileService.findList(page,size,queryMediaFileRequest); 
    }  
   }[/mw_shl_code]