From 8b375fe00a241b3a769b82fe3dac8d1c9dce8a02 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 16 Jun 2022 14:36:07 +0800
Subject: [PATCH] 模拟考试修改

---
 src/main/java/org/springblade/modules/licetuser/controller/LicetuserController.java |  203 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 203 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/licetuser/controller/LicetuserController.java b/src/main/java/org/springblade/modules/licetuser/controller/LicetuserController.java
index 95de386..e43bebf 100644
--- a/src/main/java/org/springblade/modules/licetuser/controller/LicetuserController.java
+++ b/src/main/java/org/springblade/modules/licetuser/controller/LicetuserController.java
@@ -16,23 +16,42 @@
  */
 package org.springblade.modules.licetuser.controller;
 
+import io.minio.*;
+import io.minio.errors.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.common.config.FtpConfig;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.FTP.FtpUtil;
+import org.springblade.modules.licet.entity.Licet;
+import org.springblade.modules.licet.service.ILicetService;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.licetuser.entity.Licetuser;
 import org.springblade.modules.licetuser.vo.LicetuserVO;
 import org.springblade.modules.licetuser.service.ILicetuserService;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static org.springblade.common.config.FtpConfig.*;
 
 /**
  *  控制器
@@ -48,6 +67,8 @@
 
 	private final ILicetuserService licetuserService;
 
+	private final ILicetService licetService;
+
 	/**
 	 * 详情
 	 */
@@ -57,6 +78,56 @@
 	public R<Licetuser> detail(Licetuser licetuser) {
 		Licetuser detail = licetuserService.getOne(Condition.getQueryWrapper(licetuser));
 		return R.data(detail);
+	}
+
+
+	@PostMapping("/liceUp")
+	@ApiOperationSupport(order = 1)
+	public R liceUp(@Valid @RequestBody Licetuser licetuser) {
+		Map map = licetuserService.liceIn(licetuser.getUserid(),licetuser.getPtype());
+		if (map==null){
+			licetuserService.save(licetuser);
+			String url = "";
+			String[] split = licetuser.getLinks().split(",");
+			for (int i = 0; i < split.length; i++) {
+				String s = split[i].substring(26, split[i].length());
+				String[] splits = split[i].split("/");
+				url += FtpConfig.ip +"/zhba/upload/picture/"+ splits[6] + ",";
+			}
+			String substring = url.substring(0, url.length() - 1);
+			licetuser.setLinks(substring);
+			//数据同步
+			String s1 =
+				"insert into sys_licetuser(id,userid,ptype,templateid,links) " +
+					"values(" + "'" + licetuser.getId() + "'" + "," +
+					"'" + licetuser.getUserid() + "'" + "," +
+					"'" + licetuser.getPtype() + "'" + "," +
+					"'" + licetuser.getTemplateid() + "'" + "," +
+					"'" + licetuser.getLinks() + "'" + ")";
+			FtpUtil.sqlFileUpload(s1);
+		}
+		else {
+			String id = map.get("id").toString();
+			Integer a= Integer.parseInt(id);
+			licetuser.setId(a);
+			licetuserService.updateById(licetuser);
+			String url = "";
+			String[] split = licetuser.getLinks().split(",");
+			for (int i = 0; i < split.length; i++) {
+				String s = split[i].substring(26, split[i].length());
+				String[] splits = split[i].split("/");
+				url += FtpConfig.ip +"/zhba/upload/picture/"+ splits[6] + ",";
+			}
+			String substring = url.substring(0, url.length() - 1);
+			licetuser.setLinks(substring);
+			String s1 = "update sys_licetuser set userid = " + "'" + licetuser.getUserid() + "'" +
+				",ptype = " + "'" + licetuser.getPtype() + "'" +
+				",templateid = " + "'" + licetuser.getTemplateid() + "'" +
+				",links = " + "'" + licetuser.getLinks() + "'" +
+				" " + "where id = " + "'" + licetuser.getId() + "'";
+			FtpUtil.sqlFileUpload(s1);
+		}
+		return R.data("成功");
 	}
 
 	/**
@@ -122,5 +193,137 @@
 		return R.status(licetuserService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 许可审批备案文件上传(对接政务平台)
+	 * @param file 文件
+	 * @param licetId 附件材料id
+	 * @param ptype 类型
+	 * @param cardid 用户唯一id
+	 * @return
+	 */
+	@PostMapping("/liceUpload")
+	public R liceUpload(@RequestParam MultipartFile file, String licetId, String ptype, String cardid, HttpServletRequest request) throws IOException, InvalidResponseException, InvalidKeyException, NoSuchAlgorithmException, ServerException, ErrorResponseException, XmlParserException, InsufficientDataException, InternalException {
+		String fieldNames = request.getHeader("_fieldNames");
+		System.out.println("fieldNames = " + fieldNames);
+		//文件上传
+		String urls = putFile(file);
+		String link = urls.split(",")[0];
+		//内网
+		String inlink = urls.split(",")[1];
+		Licetuser licetuser = new Licetuser();
+		licetuser.setPtype(ptype);
+
+		Licet licet = new Licet();
+		licet.setPtype(ptype);
+		licetuser.setUserid(cardid);
+
+		//查询上传的材料信息
+		Licetuser licetuser1 = licetuserService.getOne(Condition.getQueryWrapper(licetuser));
+		if (null==licetuser1){
+			licetuser.setTemplateid(licetId);
+			licetuser.setLinks(link);
+			//新增
+			licetuserService.save(licetuser);
+
+			//数据同步
+			String s1 =
+				"insert into sys_licetuser(id,userid,ptype,templateid,links) " +
+					"values(" + "'" + licetuser.getId() + "'" + "," +
+					"'" + licetuser.getUserid() + "'" + "," +
+					"'" + licetuser.getPtype() + "'" + "," +
+					"'" + licetuser.getTemplateid() + "'" + "," +
+					"'" + inlink + "'" + ")";
+			FtpUtil.sqlFileUpload(s1);
+		}else {
+			//判断是否是重复上传
+			List<String> asList = Arrays.asList(licetuser1.getTemplateid().split(","));
+			List<String> linksList = Arrays.asList(licetuser1.getLinks().split(","));
+			boolean status = asList.contains(licetId);
+			if(status) {
+				//重复上传
+				int i = 0;
+				for (int j = 0; j < asList.size(); j++) {
+					if (asList.get(j).equals(licetId)){
+						i = j;
+					}
+				}
+				//替换link
+				linksList.set(i,link);
+				licetuser1.setLinks(StringUtils.join(linksList.toArray(), ","));
+			}else {
+				//替换 下标集合,id集合,links
+				licetuser1.setTemplateid(licetuser1.getTemplateid()+","+licetId);
+				licetuser1.setLinks(licetuser1.getLinks()+","+link);
+			}
+			//修改
+			licetuserService.updateById(licetuser1);
+
+			//内网 links
+			String url = "";
+			String[] split = licetuser1.getLinks().split(",");
+			for (int i = 0; i < split.length; i++) {
+				String s = split[i].substring(26);
+				String[] splits = split[i].split("/");
+				url += FtpConfig.ip +"/zhba/upload/picture/"+ splits[6] + ",";
+			}
+			String inlinks = url.substring(0, url.length() - 1);
+
+			//同步数据
+			String s1 = "update sys_licetuser set userid = " + "'" + licetuser1.getUserid() + "'" +
+				",ptype = " + "'" + licetuser1.getPtype() + "'" +
+				",templateid = " + "'" + licetuser1.getTemplateid() + "'" +
+				",links = " + "'" + inlinks + "'" +
+				" " + "where id = " + "'" + licetuser1.getId() + "'";
+			FtpUtil.sqlFileUpload(s1);
+		}
+		return R.data("成功");
+	}
+
+	/**
+	 * 文件上传
+	 * @param file
+	 */
+	private String putFile(MultipartFile file) throws IOException, InvalidKeyException, InvalidResponseException, InsufficientDataException, NoSuchAlgorithmException, ServerException, InternalException, XmlParserException, ErrorResponseException {
+		String url = "http://61.131.136.25:2081";
+		String access = "zhbaadmin";
+		String secret = "zhbapassword";
+		String bucket = "zhba";
+		MinioClient minioClient =
+			MinioClient.builder()
+				.endpoint(url)
+				.credentials(access, secret)
+				.build();
+		// 检查存储桶是否已经存在
+		boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());
+		if (!isExist) {
+			// 创建一个名为zip的存储桶,用于zip文件。
+			minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());
+			minioClient.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucket).build());
+		}
+		String fileName = file.getOriginalFilename();
+		String newName = "upload/picture/" + UUID.randomUUID().toString().replaceAll("-", "")
+			+ fileName.substring(fileName.lastIndexOf("."));
+		InputStream in = file.getInputStream();
+		String[] split = newName.split("/");
+		//创建头部信息
+		Map<String, String> headers = new HashMap<>(1 << 2);
+		//添加自定义内容类型
+		headers.put("Content-Type", "application/octet-stream");
+		//上传
+		minioClient.putObject(
+			PutObjectArgs.builder().bucket(bucket).object(newName).stream(
+				in, in.available(), -1)
+				.headers(headers)
+				.build());
+		InputStream inputStream = file.getInputStream();
+		FtpUtil.uploadFile(FtpConfig.ftpHost, ftpPort, FtpConfig.ftpUserName, ftpPassword, ftpPath, "f"+"/", split[2], inputStream);
+		in.close();
+		String urls = "http://61.131.136.25/zhba/" + newName;
+		//内网
+		String inUrl = FtpConfig.ip + "/zhba/" + newName;
+		//返回url
+		return urls+","+inUrl;
+	}
+
 
 }

--
Gitblit v1.9.3