Переглянути джерело

数字人、语音接口开发

wuyouzhi 1 місяць тому
батько
коміт
943d39e40f

+ 41 - 19
xyzc-start/src/main/java/com/xyzc/start/controller/NumPersonController.java

@@ -39,14 +39,24 @@ public class NumPersonController {
     public void commitTrainVideo(@RequestBody NpCommitTrain npCommitTrain){
         npCommitService.commitTrainVideo(npCommitTrain);
     }
-
     /**
      * 训练数字人的查询
      */
     @PostMapping("/queryTrainVideo")
     @ResponseBody
-    public void queryTrainVideo(@RequestParam("id") String id){
-        npQueryService.queryTrainVideo(id);
+    public Result<List<NpCommitTrain>> queryTrainVideo(@RequestParam("page") Integer page,  @RequestParam("size") Integer size){
+        List<NpCommitTrain> npCommitTrains = npQueryService.queryTrainVideo(page, size);
+
+        return Result.ok(npCommitTrains);
+    }
+
+    /**
+     * 训练数字人的查询
+     */
+    @PostMapping("/queryTrainVideoById")
+    @ResponseBody
+    public void queryTrainVideoById(@RequestParam("id") String id){
+        npQueryService.queryTrainVideoById(id);
     }
 
     /**
@@ -78,8 +88,32 @@ public class NumPersonController {
      */
     @PostMapping("/uploadMaterial")
     @ResponseBody
-    public void uploadMaterial(MultipartFile file, String rootId){
+    public Result<String> uploadMaterial(MultipartFile file, String rootId){
         npCommitService.uploadMaterial(file, rootId);
+        return Result.ok("上传成功");
+    }
+//    /**
+//     * 查询音乐
+//     */
+//    @PostMapping("/queryMaterial")
+//    @ResponseBody
+//    public Result<List<NpMaterial>> queryMaterial(NpMaterial material){
+//        List<NpMaterial> materials = npQueryService.queryMaterial(material);
+//        return Result.ok(materials);
+//    }
+    /**
+     * 查询素材
+     * rootId  素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
+     * page	   页号默认1
+     * size	   每页大小默认10
+     * asc	   是否正序, true 正序 false 倒序(默认)
+     */
+    @PostMapping("/queryMaterial")
+    @ResponseBody
+    public Result<List<NpMaterial>> queryMaterial( @RequestParam("rootId") String rootId,  @RequestParam("page") Integer page,  @RequestParam("size") Integer size){
+//        npCommitService.queryMaterial(rootId, page, size);
+        List<NpMaterial> materials = npQueryService.queryMaterial(rootId, page, size);
+        return Result.ok(materials);
     }
 
     /**
@@ -123,18 +157,6 @@ public class NumPersonController {
         return Result.ok(npTextList);
     }
 
-    /**
-     * 查询素材
-     * rootId  素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
-     * page	   页号默认1
-     * size	   每页大小默认10
-     * asc	   是否正序, true 正序 false 倒序(默认)
-     */
-    @PostMapping("/queryMaterial")
-    @ResponseBody
-    public void queryMaterial(String rootId, String page, String size){
-        npCommitService.queryMaterial(rootId, page, size);
-    }
 
     /**
      * 采集数据
@@ -147,14 +169,14 @@ public class NumPersonController {
 
     /**
      * 获取公司公共声音
-     *
+     * type 1:硅基公共语音;2:硅基语音克隆;
      * @return
      * @throws Exception
      */
     @PostMapping("/queryCompanySound")
     @ResponseBody
-    public Result<List<NpSound>> queryCompanySound() throws Exception {
-        List<NpSound> companySoundList = numPersonService.queryCompanySound();
+    public Result<List<NpSound>> queryCompanySound(Integer type, Integer page, Integer size) throws Exception {
+        List<NpSound> companySoundList = npQueryService.queryCompanySound(type, page, size);
         return Result.ok(companySoundList);
     }
 

+ 8 - 8
xyzc-start/src/main/java/com/xyzc/start/domain/NpCommitTrain.java

@@ -60,10 +60,10 @@ public class NpCommitTrain extends BaseEntity {
      */
     private Integer greenScreen;
 
-    /**
-     * ID
-     */
-    private Integer trainingId;
+//    /**
+//     * ID
+//     */
+//    private Integer trainingId;
 
     /**
      * 标题
@@ -136,10 +136,10 @@ public class NpCommitTrain extends BaseEntity {
      */
     private String baseUserId;
 
-    /**
-     * 原因
-     */
-    private String reason;
+//    /**
+//     * 原因
+//     */
+//    private String reason;
 
 
 }

+ 2 - 1
xyzc-start/src/main/java/com/xyzc/start/domain/NpMaterial.java

@@ -49,7 +49,7 @@ public class NpMaterial extends BaseEntity {
     /**
      * 硅基平台用户Id
      */
-    private Long userId;
+    private Integer userId;
 
     /**
      * 背景编码
@@ -87,4 +87,5 @@ public class NpMaterial extends BaseEntity {
     private String thumbnailUrl;
     private Integer ownerCorpId;
     private String description;
+    private Long baseUserId;
 }

+ 1 - 1
xyzc-start/src/main/java/com/xyzc/start/mapper/NumPersonMapper.java

@@ -14,7 +14,7 @@ public interface NumPersonMapper extends BaseMapper<NpSound> {
          * 查询公司声音
          * @return
          */
-        List<NpSound> queryCompanySound();
+        List<NpSound> queryCompanySound(Long baseUserId, Integer type, Integer start, Integer end);
 
         /**
          * 查询公共模特

+ 0 - 1
xyzc-start/src/main/java/com/xyzc/start/service/INpCommitService.java

@@ -18,7 +18,6 @@ public interface INpCommitService {
     public void commitTrainVideo(NpCommitTrain npCommitTrain);
 
     void uploadMaterial(MultipartFile file, String rootId);
-    public void queryMaterial(String rootId, String page, String size);
 
     void uploadMusic(NpMusic npMusic);
 

+ 19 - 4
xyzc-start/src/main/java/com/xyzc/start/service/INpQueryService.java

@@ -1,8 +1,7 @@
 package com.xyzc.start.service;
 
-import com.xyzc.start.domain.NpCommitTrain;
-import com.xyzc.start.domain.NpMusic;
-import com.xyzc.start.domain.NpText;
+import com.alibaba.fastjson.JSONObject;
+import com.xyzc.start.domain.*;
 
 import java.util.List;
 
@@ -12,7 +11,11 @@ public interface INpQueryService {
     /**
      * 提交训练视频
      */
-    public NpCommitTrain queryTrainVideo(String trainId);
+    public NpCommitTrain queryTrainVideoById(String trainId);
+
+    List<NpSound> queryCompanySound(Integer type, Integer page, Integer size);
+
+    public List<NpCommitTrain> queryTrainVideo(Integer page, Integer size);
 
     /**
      * 查询音乐
@@ -22,4 +25,16 @@ public interface INpQueryService {
 
 
     List<NpText> queryNpText(NpText npText);
+
+
+    public List<NpMaterial> queryMaterial(String rootId, Integer page, Integer size);
+    /**
+     * 请求硅基接口
+     *
+     * @param rootId
+     * @param page
+     * @param size
+     * @return
+     */
+    public JSONObject queryOpenAPIMaterial(Integer rootId, Integer page, Integer size);
 }

+ 0 - 6
xyzc-start/src/main/java/com/xyzc/start/service/INumPersonService.java

@@ -16,12 +16,6 @@ public interface INumPersonService {
     void freeModelListQuery();
 
     /**
-     * 查询公司声音
-     * @return
-     */
-    List<NpSound> queryCompanySound();
-
-    /**
      * 查询共同模板
      * @return
      */

+ 155 - 76
xyzc-start/src/main/java/com/xyzc/start/service/impl/NpCommitServiceImpl.java

@@ -16,9 +16,12 @@ import com.xyzc.start.mapper.NpMaterialMapper;
 import com.xyzc.start.mapper.NpMusicMapper;
 import com.xyzc.start.mapper.NpTextMapper;
 import com.xyzc.start.service.INpCommitService;
+import com.xyzc.start.service.INpQueryService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.logging.log4j.util.Strings;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -32,16 +35,15 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.xyzc.start.utils.EncryptUtil.getMD5Byparam;
 
+import java.util.function.Supplier;
 @Service
 @RequiredArgsConstructor
 @Slf4j
@@ -56,6 +58,8 @@ public class NpCommitServiceImpl implements INpCommitService {
 
     RestTemplate restTemplate = new RestTemplate();
 
+//    private final INpQueryService npQueryService;
+
     private final NpCommitTrainMapper npCommitTrainMapper;
 
     private final NpMaterialMapper npMaterialMapper;
@@ -63,6 +67,14 @@ public class NpCommitServiceImpl implements INpCommitService {
     private final NpMusicMapper npMusicMapper;
 
     private final NpTextMapper npTextMapper;
+
+    private INpQueryService queryService;
+
+    @Autowired
+    public void NpCommitServiceImpl(@Lazy INpQueryService queryService) {
+        this.queryService = queryService;
+    }
+
     /**
      * 获取token
      * @throws NoSuchAlgorithmException
@@ -152,7 +164,7 @@ public class NpCommitServiceImpl implements INpCommitService {
         log.info("返回参数:" + jsonObject);
         if ("0".equals(jsonObject.getString("code"))) {
             Integer trainingId = jsonObject.getJSONObject("data").getInteger("trainingId");
-            npCommitTrain.setTrainingId(trainingId);
+            npCommitTrain.setModelId(trainingId);
             npCommitTrainMapper.insert(npCommitTrain);
         }
     }
@@ -167,50 +179,114 @@ public class NpCommitServiceImpl implements INpCommitService {
             log.error("请上传文件");
             throw new ServerException(ErrorCode.NUMERSON_NO_FILE);
         }
-        if (Strings.isBlank(rootId)) {
+        if (Strings.isBlank(rootId) || !Arrays.asList("0", "1", "4").contains(rootId)) {
             log.error("请指定类型");
             throw new ServerException(ErrorCode.NUMERSON_NO_TYPE);
         }
+
+        int lastIndexOf = file.getOriginalFilename().lastIndexOf(".");
+        String suffixName = file.getOriginalFilename().substring(lastIndexOf);
+        if ("0".equals(rootId) && !Arrays.asList(".png", ".jpg", ".gif").contains(suffixName)) {
+            log.error("请上传png/jpg/gif文件类型");
+            throw new ServerException(ErrorCode.NUMERSON_NO_FILE);
+        }
+
         String accessToken = "";
         try {
             accessToken = getToken();
         } catch (NoSuchAlgorithmException e) {
             throw new RuntimeException(e);
         }
-        String url = baseUrl + "/openapi/material/upload?access_token=" + accessToken;
-//        new FileSystemResource(file);
-        File imageFile = new File("D:\\wyz_ComfyUI_00003_.png");
-//
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
-
-        HttpEntity<FileSystemResource> requestEntity = new HttpEntity<>(new FileSystemResource(imageFile), headers);
-
-        ResponseEntity<JSONObject> stringResponseEntity = restTemplate.postForEntity(url, requestEntity, JSONObject.class);
-
-
-        /*MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
-        form.add("file", file);
-        form.add("rootId", rootId);
 
         HttpHeaders headers = new HttpHeaders();
-        MediaType type = MediaType.parseMediaType("multipart/form-data");
         headers.setContentType(MediaType.MULTIPART_FORM_DATA);
-        log.info("推送参数:"+form);
-        HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);*/
+        // 创建包含文件的请求体
+        MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
+        body.add("rootId", rootId);
 
-//        JSONObject returnData = restTemplate.postForObject(url, files, JSONObject.class);
+//        MultipartFile multipartFile = null; // 这里需要实际的 MultipartFile 对象
+        try {
+            File f = File.createTempFile("temp", suffixName);
+            file.transferTo(f);
+            FileSystemResource fileSystemResource = new FileSystemResource(f.getAbsolutePath());
+            body.add("file", fileSystemResource);
+        } catch (Exception e) {
+            log.error("上传文件失败");
+            throw new ServerException(ErrorCode.NUMERSON_FAIL_FILE);
+        }
+//        JSONObject jsonObject2 = queryService.queryOpenAPIMaterial(Integer.valueOf(rootId), 1, 50);
 
-        Long userId = SecurityUser.getUserId();
-        NpMaterial npMaterial = new NpMaterial();
-        npMaterial.setUserId(userId);
-        npMaterial.setMaterialType(Integer.parseInt(rootId));
+        String url = baseUrl + "/openapi/material/upload?access_token=" + accessToken;
 
-        npMaterialMapper.insert(npMaterial);
-        System.out.println("returnData:+" + stringResponseEntity);
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);
+        ResponseEntity<JSONObject> response = restTemplate.postForEntity(url, requestEntity, JSONObject.class);
+        JSONObject returnData = response.getBody();
+        if("0".equals(returnData.getString("code"))){
+            Integer dataId = returnData.getInteger("data");
+            Long baseUserId = SecurityUser.getUserId();
+            NpMaterial npMaterial = new NpMaterial();
+            // 根据
+            JSONObject jsonObject = queryService.queryOpenAPIMaterial(Integer.valueOf(rootId), 1, 50);
+            if("0".equals(jsonObject.getString("code"))){
+                LinkedHashMap data = (LinkedHashMap) jsonObject.get("data");
+                ArrayList records = (ArrayList)data.get("records");
+                for (int i = 0; i < records.size(); i++) {
+                    LinkedHashMap record = (LinkedHashMap) records.get(i);
+                    Integer materialId = (Integer) record.get("id");
+//                    int delFlag = (Integer) record.get("delFlag");
+                    if(materialId.equals( dataId)){
+                        if(null != record.get("bgFormat")){
+                            String bgFormat = record.get("bgFormat").toString();
+                            npMaterial.setBgFormat(bgFormat);
+                        }
+                        if(null != record.get("backgroundType")){
+                            Integer backgroundType = (Integer) record.get("backgroundType");
+                            npMaterial.setBackgroundType(backgroundType);
+                        }
+                        if(null != record.get("coverUrl")){
+                            String coverUrl = record.get("coverUrl").toString();
+                            npMaterial.setCoverUrl(coverUrl);
+                        }
+//                        if(null != record.get("userId")){
+//                            String materialuserId = record.get("userId").toString();
+////                            npMaterial.setid
+//                        }
+                        if (null != record.get("backgroundName")) {
+                            String backgroundName = record.get("backgroundName").toString();
+                            npMaterial.setBackgroundName(backgroundName);
+                        }
+                        if (null != record.get("zipCoverUrl")) {
+                            String zipCoverUrl = record.get("zipCoverUrl").toString();
+                            npMaterial.setZipCoverUrl(zipCoverUrl);
+                        }
+                        if (null != record.get("backgroundCode")) {
+                            String backgroundCode = record.get("backgroundCode").toString();
+                            npMaterial.setBackgroundCode(backgroundCode);
+                        }
+                        if (null != record.get("userId")) {
+                            String userId = record.get("userId").toString();
+                            npMaterial.setUserId(Integer.parseInt(userId));
+                        }
+                        if (null != record.get("createTime")) {
+                            Long createTime = Long.valueOf(record.get("createTime").toString());
+                            npMaterial.setCreateTime(new Date(createTime));
+                        }
+                        npMaterial.setMaterialId(dataId);
+                        npMaterial.setMaterialType(Integer.parseInt(rootId));
+                        npMaterial.setBaseUserId(baseUserId);
+
+                        npMaterialMapper.insert(npMaterial);
+                        break;
+                    }
+                }
+            }else{
+                throw new ServerException(ErrorCode.NUMERSON_FAIL_FILE);
+            }
+        }
+        System.out.println("returnData:+" + response);
     }
 
-    @Override
+    //  可删除
     public void queryMaterial(String rootId, String page, String size) {
         if (null == rootId) {
             log.error("请输入素材类型");
@@ -222,53 +298,56 @@ public class NpCommitServiceImpl implements INpCommitService {
         if (Strings.isBlank(size)) {
             size = "10";
         }
-        String accessToken = "";
-        try {
-            accessToken = getToken();
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException(e);
-        }
-        String url = baseUrl + "/openapi/material/search?access_token=" + accessToken;
 
-        JSONObject jsonParam = new JSONObject();
-        jsonParam.put("rootId", rootId); // 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
-        jsonParam.put("page", "1");
-        jsonParam.put("size", "100");
-        jsonParam.put("asc", "true");
-//        jsonParam.put("myself", "true"); // 是否是自己上传的
-        HttpHeaders headers = new HttpHeaders();
-        headers.add("Content-Type","application/json;charset=UTF-8");
-        //构造实体对象
-        HttpEntity<JSONObject> param = new HttpEntity<>(jsonParam, headers);
 
-        JSONObject returnDataJSON = restTemplate.postForObject(url, param, JSONObject.class);
-        System.out.println(returnDataJSON);
-        if ("0".equals(returnDataJSON.getString("code"))) {
-            LinkedHashMap data = (LinkedHashMap) returnDataJSON.get("data");
-            ArrayList records = (ArrayList)data.get("records");
-            List<NpMaterial> materialList = npMaterialMapper.selectList(new QueryWrapper<NpMaterial>().eq("material_type", rootId).select("material_id"));
-            ArrayList<Integer> materialIdList = materialList.stream().map(m -> m.getMaterialId()).collect(Collectors.toCollection(ArrayList::new));
-            for (int i = 0; i < records.size(); i++) {
-                LinkedHashMap record = (LinkedHashMap) records.get(i);
-                if(!materialIdList.contains(record.get("id"))){
-                    NpMaterial npMaterial = new NpMaterial();
-                    if("1".equals(rootId)) {
-                        npMaterial.setMaterialId(Integer.parseInt(record.get("id").toString()));
-                        npMaterial.setMaterialType(Integer.parseInt(rootId));
-                        npMaterial.setDescription(record.get("description").toString());
-                        npMaterial.setBackgroundName(record.get("name").toString());
-                        npMaterial.setUrl(record.get("url").toString());
-                        npMaterial.setThumbnailUrl(record.get("thumbnailUrl").toString());
-                        npMaterial.setOwnerCorpId(Integer.parseInt(record.get("ownerCorpId").toString()));
-                    } else if ("0".equals(rootId)) {
 
-                    }else if("4".equals(rootId)){
-
-                    }
-                    npMaterialMapper.insert(npMaterial);
-                }
-            }
-        }
+//        String accessToken = "";
+//        try {
+//            accessToken = getToken();
+//        } catch (NoSuchAlgorithmException e) {
+//            throw new RuntimeException(e);
+//        }
+//        String url = baseUrl + "/openapi/material/search?access_token=" + accessToken;
+//
+//        JSONObject jsonParam = new JSONObject();
+//        jsonParam.put("rootId", rootId); // 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
+//        jsonParam.put("page", "1");
+//        jsonParam.put("size", "100");
+//        jsonParam.put("asc", "true");
+////        jsonParam.put("myself", "true"); // 是否是自己上传的
+//        HttpHeaders headers = new HttpHeaders();
+//        headers.add("Content-Type","application/json;charset=UTF-8");
+//        //构造实体对象
+//        HttpEntity<JSONObject> param = new HttpEntity<>(jsonParam, headers);
+//
+//        JSONObject returnDataJSON = restTemplate.postForObject(url, param, JSONObject.class);
+//        System.out.println(returnDataJSON);
+//        if ("0".equals(returnDataJSON.getString("code"))) {
+//            LinkedHashMap data = (LinkedHashMap) returnDataJSON.get("data");
+//            ArrayList records = (ArrayList)data.get("records");
+//            List<NpMaterial> materialList = npMaterialMapper.selectList(new QueryWrapper<NpMaterial>().eq("material_type", rootId).select("material_id"));
+//            ArrayList<Integer> materialIdList = materialList.stream().map(m -> m.getMaterialId()).collect(Collectors.toCollection(ArrayList::new));
+//            for (int i = 0; i < records.size(); i++) {
+//                LinkedHashMap record = (LinkedHashMap) records.get(i);
+//                if(!materialIdList.contains(record.get("id"))){
+//                    NpMaterial npMaterial = new NpMaterial();
+//                    if("1".equals(rootId)) {
+//                        npMaterial.setMaterialId(Integer.parseInt(record.get("id").toString()));
+//                        npMaterial.setMaterialType(Integer.parseInt(rootId));
+//                        npMaterial.setDescription(record.get("description").toString());
+//                        npMaterial.setBackgroundName(record.get("name").toString());
+//                        npMaterial.setUrl(record.get("url").toString());
+//                        npMaterial.setThumbnailUrl(record.get("thumbnailUrl").toString());
+//                        npMaterial.setOwnerCorpId(Integer.parseInt(record.get("ownerCorpId").toString()));
+//                    } else if ("0".equals(rootId)) {
+//
+//                    }else if("4".equals(rootId)){
+//
+//                    }
+//                    npMaterialMapper.insert(npMaterial);
+//                }
+//            }
+//        }
     }
 
     @Override

+ 119 - 42
xyzc-start/src/main/java/com/xyzc/start/service/impl/NpQueryServiceImpl.java

@@ -1,19 +1,18 @@
 package com.xyzc.start.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.xyzc.common.core.exception.ErrorCode;
 import com.xyzc.common.core.exception.ServerException;
-import com.xyzc.start.domain.NpCommitTrain;
-import com.xyzc.start.domain.NpMusic;
-import com.xyzc.start.domain.NpText;
-import com.xyzc.start.mapper.NpCommitTrainMapper;
-import com.xyzc.start.mapper.NpMusicMapper;
-import com.xyzc.start.mapper.NpTextMapper;
+import com.xyzc.common.web.security.user.SecurityUser;
+import com.xyzc.start.domain.*;
+import com.xyzc.start.mapper.*;
 import com.xyzc.start.service.INpCommitService;
 import com.xyzc.start.service.INpQueryService;
-import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
@@ -21,6 +20,7 @@ import org.springframework.web.client.RestTemplate;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.List;
 
@@ -36,6 +36,8 @@ public class NpQueryServiceImpl implements INpQueryService {
 //    String appKey = "IyeVRCSyBokinWIcrTjXVeOq";
 //    String appSecret = "PFp3PZeEJIIRTtHqyG6Hhp1pyiS0ETjsb30XZVVhwR2n4WYQF4aI9A7EzUCrPsML";
 
+    private final NumPersonMapper numPersonMapper;
+
     private final INpCommitService npCommitService;
 
     private final NpCommitTrainMapper npCommitTrainMapper;
@@ -44,6 +46,15 @@ public class NpQueryServiceImpl implements INpQueryService {
 
     private final NpTextMapper npTextMapper;
 
+    private INpCommitService commitService;
+
+    private final NpMaterialMapper materialMapper;
+
+    @Autowired
+    public void NpCommitServiceImpl(@Lazy INpCommitService commitService) {
+        this.commitService = commitService;
+    }
+
     /**
      * 3.2 定制模特列表查询
      */
@@ -122,7 +133,7 @@ public class NpQueryServiceImpl implements INpQueryService {
 
 
     /**
-     //     * 3.5 企业所有发音人列表
+      * 3.5 企业所有发音人列表
      */
     public void allShoudList(){
         String accessToken = "";
@@ -183,7 +194,7 @@ public class NpQueryServiceImpl implements INpQueryService {
      * @param id
      */
     @Override
-    public NpCommitTrain queryTrainVideo(String id) {
+    public NpCommitTrain queryTrainVideoById(String id) {
 
         NpCommitTrain npCommitTrain = npCommitTrainMapper.selectById(id);
 //        2训练成功 3训练失败 4审核不通过
@@ -228,27 +239,57 @@ public class NpQueryServiceImpl implements INpQueryService {
             npCommitTrain.setTitle(title);
         }
 
-//        String accessToken = "";
-//        try {
-//            accessToken = npCommitService.getToken();
-//        } catch (NoSuchAlgorithmException e) {
-//            throw new RuntimeException(e);
-//        }
-//        String url = baseUrl + "/openapi/video/v2/training/get/" + trainId + "?access_token=" + accessToken;
-//
-//        RestTemplate restTemplate = new RestTemplate();
-//        JSONObject returnDataJSON = restTemplate.getForObject(url, JSONObject.class);
-//        log.info(returnDataJSON.toJSONString());
-//        if ("0".equals(returnDataJSON.getString("code"))) {
-//            System.out.println(returnDataJSON.getString("message"));
-//            JSONObject dataJSON = returnDataJSON.getJSONObject("data");
-//            System.out.println(dataJSON);
-//            //TODO
-////            dataJSON.getInteger("records");
-//        }
         return null;
     }
 
+
+    @Override
+    public List<NpSound> queryCompanySound(Integer type, Integer page, Integer size){
+        if (type == null) {
+
+        }
+        if (page == null || page == 0) {
+            page = 1;
+        }
+        if (size == null || size < 0) {
+            size = 10;
+        }
+        int start = page*size - size;
+        int end = page*size;
+        List<NpSound> npSoundList = null;
+        if (1 == type) {
+            npSoundList = numPersonMapper.queryCompanySound(null, type, start, end);
+        }
+        if (2 == type) {
+            Long baseUserId = SecurityUser.getUserId();
+            npSoundList = numPersonMapper.queryCompanySound(baseUserId, type, start, end);
+        }
+        return npSoundList;
+    }
+
+    /**
+     * 查询公共模特
+     * @param rootId
+     * @param page
+     * @param size
+     * @return
+     */
+    @Override
+    public List<NpCommitTrain> queryTrainVideo(Integer page, Integer size) {
+        if (page == null || page == 0) {
+            page = 1;
+        }
+        if (size == null || size < 0) {
+            size = 10;
+        }
+        int start = page*size - size;
+        int end = page * size;
+        Long baseUserId = SecurityUser.getUserId();
+        List<NpCommitTrain> npCommitTrains = npCommitTrainMapper.selectList(new QueryWrapper<NpCommitTrain>().eq("base_user_id", baseUserId).eq("status", "2").last("limit " + start + "," + end)
+                .select("id, cover_url, scene_id, title"));
+        return npCommitTrains;
+    }
+
     @Override
     public List<NpMusic> queryMusic(NpMusic npMusic) {
         List<NpMusic> npMusics = npMusicMapper.queryMusic(npMusic);
@@ -261,6 +302,27 @@ public class NpQueryServiceImpl implements INpQueryService {
         return npTextList;
     }
 
+    @Override
+    public List<NpMaterial> queryMaterial(String rootId, Integer page, Integer size) {
+        if (null == rootId) {
+            log.error("请输入素材类型");
+            throw new ServerException(ErrorCode.NUMERSON_NO_TYPE);
+        }
+        if (page == null || page == 0) {
+            page = 1;
+        }
+        if (size == null || size < 0) {
+            size = 10;
+        }
+        int start = page*size - size;
+        int end = page*size;
+        Long baseUserId = SecurityUser.getUserId();
+        List<NpMaterial> npMaterials = materialMapper.selectList(new QueryWrapper<NpMaterial>().eq("base_user_id", baseUserId)
+                .eq("material_type", rootId).eq("del_flag", "0").last("limit " + start + "," + end)
+                .select("material_id, url, description, background_name"));
+        return npMaterials;
+    }
+
     /**
      * 3.9 查询合成视频作品列表
      */
@@ -318,9 +380,16 @@ public class NpQueryServiceImpl implements INpQueryService {
     }
 
     /**
-     * 3.21 素材查询接口
+     * 3.21 调用三方平台素材查询接口
      */
-    public void queryMaterial() {
+    @Override
+    public JSONObject queryOpenAPIMaterial(Integer rootId, Integer page, Integer size) {
+        if(rootId == null) {// 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
+            log.error("rootId为空");throw new ServerException(ErrorCode.NUMERSON_NO_ID);
+        }
+        if(!Arrays.asList(0, 1, 4).contains(rootId)) {
+            throw new ServerException(ErrorCode.NUMERSON_NO_RIGHT_ID);
+        }
         String accessToken = "";
         try {
             accessToken = npCommitService.getToken();
@@ -329,11 +398,18 @@ public class NpQueryServiceImpl implements INpQueryService {
         }
         String url = baseUrl + "/openapi/material/search?access_token=" + accessToken;
         JSONObject jsonParam = new JSONObject();
-
-        jsonParam.put("rootId", "0"); // 素材类型 ,0:背景(图片或者视频),1:图片素材,4:视频素材
-        jsonParam.put("page", "1");
-        jsonParam.put("size", "100");
-        jsonParam.put("asc", "true");
+        if(page == null) {
+            jsonParam.put("page", 1);
+        }else {
+            jsonParam.put("page", page);
+        }
+        if(size == null) {
+            jsonParam.put("size", 10);
+        }else{
+            jsonParam.put("size", size);
+        }
+        jsonParam.put("asc", "false");
+        jsonParam.put("rootId", rootId);
 //        jsonParam.put("myself", "true"); // 是否是自己上传的
         HttpHeaders headers = new HttpHeaders();
         headers.add("Content-Type","application/json;charset=UTF-8");
@@ -341,13 +417,14 @@ public class NpQueryServiceImpl implements INpQueryService {
         HttpEntity<JSONObject> param = new HttpEntity<>(jsonParam, headers);
         RestTemplate restTemplate = new RestTemplate();
         JSONObject returnDataJSON = restTemplate.postForObject(url, param, JSONObject.class);
-        System.out.println(returnDataJSON);
-        if ("0".equals(returnDataJSON.getString("code"))) {
-            LinkedHashMap data = (LinkedHashMap) returnDataJSON.get("data");
-            ArrayList records = (ArrayList)data.get("records");
-            for (int i = 0; i < records.size(); i++) {
-                LinkedHashMap record = (LinkedHashMap) records.get(i);
-            }
-        }
+//        System.out.println(returnDataJSON);
+//        if ("0".equals(returnDataJSON.getString("code"))) {
+//            LinkedHashMap data = (LinkedHashMap) returnDataJSON.get("data");
+//            ArrayList records = (ArrayList)data.get("records");
+//            for (int i = 0; i < records.size(); i++) {
+//                LinkedHashMap record = (LinkedHashMap) records.get(i);
+//            }
+//        }
+        return returnDataJSON;
     }
 }

+ 2 - 5
xyzc-start/src/main/java/com/xyzc/start/service/impl/NumPersonServiceImpl.java

@@ -76,7 +76,7 @@ public class NumPersonServiceImpl implements INumPersonService {
                 npCommitTrain.setStatus(2);
             }else if("fail".equals(result)){
                 String reason = dataJSON.getString("reason");
-                npCommitTrain.setReason(reason);
+//                npCommitTrain.setReason(reason);
                 npCommitTrain.setStatus(3);
             }
             log.info("更新成功");
@@ -155,9 +155,6 @@ public class NumPersonServiceImpl implements INumPersonService {
         }
     }
 
-    public List<NpSound> queryCompanySound(){
-        return numPersonMapper.queryCompanySound();
-    }
 
 
     public List<NpTemplate> queryCommonTemplate() {
@@ -256,7 +253,7 @@ public class NumPersonServiceImpl implements INumPersonService {
                         }
                         String backgroundName = record.get("backgroundName").toString();
                         Integer delFlag = (Integer) record.get("delFlag");
-                        Long userId = Long.valueOf((Integer) record.get("userId"));
+                        Integer userId = (Integer) record.get("userId");
                         String coverUrl = record.get("coverUrl").toString();
                         String backgroundCode = record.get("backgroundCode").toString();
                         Long createTime = (Long) record.get("createTime");

+ 38 - 3
xyzc-start/src/main/resources/mapper/WebStart/NumPersonMapper.xml

@@ -5,11 +5,46 @@
 <mapper namespace="com.xyzc.start.mapper.NumPersonMapper">
 
     <select id="queryCompanySound" resultType="com.xyzc.start.domain.NpSound">
-        select `id`, `model_id`, `tts_name`, `tts_introduction`, `tts_scenes`, `tts_speaker`, `tts_features`, `tts_audition`, `tts_cover`, `languages`, `free`, `sex`, `tts_extend_json`, `phoneme_flag`
-        from xy_np_sound
+        SELECT
+               `id`
+             , `model_id`
+             , `tts_name`
+             , `tts_introduction`
+             , `tts_scenes`
+             , `tts_speaker`
+             , `tts_features`
+             , `tts_audition`
+             , `tts_cover`
+             , `languages`
+             , `free`
+             , `sex`
+             , `tts_extend_json`
+             , `phoneme_flag`
+        FROM xy_np_sound
+        WHERE
+            <if test="baseUserId != null and baseUserId != ''">
+                base_user_id = #{baseUserId} AND
+            </if>
+            <if test="type != null and type != ''">
+                sound_type = #{type}
+            </if>
+        LIMIT #{start},#{end}
     </select>
 
     <select id="queryCommonTemplate" resultType="com.xyzc.start.domain.NpTemplate">
-        select `model_id`, `robot_name`, `robot_desc`, `cover_url`, `gender`, `age`, `star_signs`, `face`, `scene_list`, `popularity`, `speaker_id` from xy_np_template
+        select
+               `model_id`
+             , `scene_id`
+             , `robot_name`
+             , `robot_desc`
+             , `cover_url`
+             , `gender`
+             , `age`
+             , `star_signs`
+             , `face`
+             , `scene_list`
+             , `popularity`
+             , `speaker_id`
+        from xy_np_template
     </select>
 </mapper>