|
@@ -16,9 +16,12 @@ import com.xyzc.start.mapper.NpMaterialMapper;
|
|
import com.xyzc.start.mapper.NpMusicMapper;
|
|
import com.xyzc.start.mapper.NpMusicMapper;
|
|
import com.xyzc.start.mapper.NpTextMapper;
|
|
import com.xyzc.start.mapper.NpTextMapper;
|
|
import com.xyzc.start.service.INpCommitService;
|
|
import com.xyzc.start.service.INpCommitService;
|
|
|
|
+import com.xyzc.start.service.INpQueryService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.logging.log4j.util.Strings;
|
|
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.core.io.FileSystemResource;
|
|
import org.springframework.http.HttpEntity;
|
|
import org.springframework.http.HttpEntity;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpHeaders;
|
|
@@ -32,16 +35,15 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileInputStream;
|
|
|
|
+import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
import java.security.NoSuchAlgorithmException;
|
|
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 java.util.stream.Collectors;
|
|
|
|
|
|
import static com.xyzc.start.utils.EncryptUtil.getMD5Byparam;
|
|
import static com.xyzc.start.utils.EncryptUtil.getMD5Byparam;
|
|
|
|
|
|
|
|
+import java.util.function.Supplier;
|
|
@Service
|
|
@Service
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -56,6 +58,8 @@ public class NpCommitServiceImpl implements INpCommitService {
|
|
|
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
|
|
|
|
|
|
+// private final INpQueryService npQueryService;
|
|
|
|
+
|
|
private final NpCommitTrainMapper npCommitTrainMapper;
|
|
private final NpCommitTrainMapper npCommitTrainMapper;
|
|
|
|
|
|
private final NpMaterialMapper npMaterialMapper;
|
|
private final NpMaterialMapper npMaterialMapper;
|
|
@@ -63,6 +67,14 @@ public class NpCommitServiceImpl implements INpCommitService {
|
|
private final NpMusicMapper npMusicMapper;
|
|
private final NpMusicMapper npMusicMapper;
|
|
|
|
|
|
private final NpTextMapper npTextMapper;
|
|
private final NpTextMapper npTextMapper;
|
|
|
|
+
|
|
|
|
+ private INpQueryService queryService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ public void NpCommitServiceImpl(@Lazy INpQueryService queryService) {
|
|
|
|
+ this.queryService = queryService;
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取token
|
|
* 获取token
|
|
* @throws NoSuchAlgorithmException
|
|
* @throws NoSuchAlgorithmException
|
|
@@ -152,7 +164,7 @@ public class NpCommitServiceImpl implements INpCommitService {
|
|
log.info("返回参数:" + jsonObject);
|
|
log.info("返回参数:" + jsonObject);
|
|
if ("0".equals(jsonObject.getString("code"))) {
|
|
if ("0".equals(jsonObject.getString("code"))) {
|
|
Integer trainingId = jsonObject.getJSONObject("data").getInteger("trainingId");
|
|
Integer trainingId = jsonObject.getJSONObject("data").getInteger("trainingId");
|
|
- npCommitTrain.setTrainingId(trainingId);
|
|
|
|
|
|
+ npCommitTrain.setModelId(trainingId);
|
|
npCommitTrainMapper.insert(npCommitTrain);
|
|
npCommitTrainMapper.insert(npCommitTrain);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -167,50 +179,114 @@ public class NpCommitServiceImpl implements INpCommitService {
|
|
log.error("请上传文件");
|
|
log.error("请上传文件");
|
|
throw new ServerException(ErrorCode.NUMERSON_NO_FILE);
|
|
throw new ServerException(ErrorCode.NUMERSON_NO_FILE);
|
|
}
|
|
}
|
|
- if (Strings.isBlank(rootId)) {
|
|
|
|
|
|
+ if (Strings.isBlank(rootId) || !Arrays.asList("0", "1", "4").contains(rootId)) {
|
|
log.error("请指定类型");
|
|
log.error("请指定类型");
|
|
throw new ServerException(ErrorCode.NUMERSON_NO_TYPE);
|
|
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 = "";
|
|
String accessToken = "";
|
|
try {
|
|
try {
|
|
accessToken = getToken();
|
|
accessToken = getToken();
|
|
} catch (NoSuchAlgorithmException e) {
|
|
} catch (NoSuchAlgorithmException e) {
|
|
throw new RuntimeException(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();
|
|
HttpHeaders headers = new HttpHeaders();
|
|
- MediaType type = MediaType.parseMediaType("multipart/form-data");
|
|
|
|
headers.setContentType(MediaType.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) {
|
|
public void queryMaterial(String rootId, String page, String size) {
|
|
if (null == rootId) {
|
|
if (null == rootId) {
|
|
log.error("请输入素材类型");
|
|
log.error("请输入素材类型");
|
|
@@ -222,53 +298,56 @@ public class NpCommitServiceImpl implements INpCommitService {
|
|
if (Strings.isBlank(size)) {
|
|
if (Strings.isBlank(size)) {
|
|
size = "10";
|
|
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
|
|
@Override
|