Browse Source

feat: 重复图片

shc 3 years ago
parent
commit
76cc58333c

+ 31 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -290,7 +290,8 @@ public class ApiController {
 										Map<String, Object> map = new HashMap<>();
 										map.put("label", wmScorePackage.getScorePackageName());
 										map.put("value", wmScorePackage.getId());
-										String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
+										String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage
+												.getDrugProducerList());
 										map.put("drugProducer", drugProducer);
 										listMap.add(map);
 									}
@@ -312,7 +313,8 @@ public class ApiController {
 										Map<String, Object> map = new HashMap<>();
 										map.put("label", wmScorePackage.getScorePackageName());
 										map.put("value", wmScorePackage.getId());
-										String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage.getDrugProducerList());
+										String drugProducer = ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList()) ? "" : String.join(StrUtil.COMMA, wmScorePackage
+												.getDrugProducerList());
 										map.put("drugProducer", drugProducer);
 										listMap.add(map);
 									}
@@ -823,11 +825,34 @@ public class ApiController {
 	@SysLog("新增任务内容表")
 	@PostMapping("/saveTaskContent")
 	public R saveTaskContent(@RequestBody WmTaskContent wmTaskContent) {
+		Set<String> errorHash = new HashSet<>();
+		List<String> ducImgUrl = new ArrayList<>();
+
 		String draftKey = wmTaskContent.getDraftKey();
 		String taskTypeId = wmTaskContent.getTemp30();
+
+		Integer id = SecurityUtils.getUser().getId();
+		Field[] fields = wmTaskContent.getClass().getFields();
+		try {
+			for (Field field : fields) {
+
+				field.setAccessible(true);
+
+				String fieldVal = (String) field.get(wmTaskContent);
+				duplicateImage(fieldVal, id, errorHash, ducImgUrl);
+			}
+		} catch (Exception ignored) {
+
+		}
+
+		if (CollUtil.isNotEmpty(ducImgUrl)) {
+			return R.failed(ducImgUrl, "提交重复的图片");
+		}
+
+
 		R r = wmTaskContentService.saveTaskContent(wmTaskContent);
 
-		log.info("结果:{}, 草稿key:{}",r, draftKey);
+		log.info("结果:{}, 草稿key:{}", r, draftKey);
 		if (r.getCode() == CommonConstants.SUCCESS && StrUtil.isNotEmpty(draftKey)) {
 			HnqzUser user = SecurityUtils.getUser();
 			String key = String.format(CacheConstants.TASK_CONTENT_DRAFT, taskTypeId, user.getId());
@@ -838,7 +863,7 @@ public class ApiController {
 		return r;
 	}
 
-	private void duplicateImage(String contentValue, Integer userId, Set<String> errorHash) {
+	private void duplicateImage(String contentValue, Integer userId, Set<String> errorHash, List<String> duplicateImageUrl) {
 
 		if (contentValue.startsWith("/admin/sys-file/wmkj")) {
 
@@ -851,7 +876,6 @@ public class ApiController {
 				String extName = temp.get(temp.size() - 1);
 
 				if (IMG_EXT_NAME.contains(extName)) {
-
 					// 文件md5
 					try {
 						log.info("图片地址:{}", upmsConfig.getClientUrl() + item);
@@ -864,6 +888,7 @@ public class ApiController {
 						if (aBoolean != null && !aBoolean) {
 							log.error("上传了重复的图片");
 							errorHash.add(hash);
+							duplicateImageUrl.add(upmsConfig.getClientUrl() + item);
 						}
 
 					} catch (IOException | URISyntaxException | NoSuchAlgorithmException e) {
@@ -893,7 +918,7 @@ public class ApiController {
 
 		// 生成草稿key
 		String draftKey = IdUtil.fastSimpleUUID();
-		log.info("草稿key:{}",draftKey);
+		log.info("草稿key:{}", draftKey);
 		wmTaskContent.setDraftKey(draftKey);
 
 		HnqzUser user = SecurityUtils.getUser();