humuyu 3 år sedan
förälder
incheckning
0bebdbf4c2

+ 7 - 2
eladmin-system/src/main/java/me/zhengjie/application/admin/job/CochainJob.java

@@ -1,14 +1,19 @@
 package me.zhengjie.application.admin.job;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 
+import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.application.admin.service.OrderCochainService;
+import me.zhengjie.application.admin.service.impl.OrderCochainServiceImpl;
 
 @Component
+@Slf4j
 public class CochainJob {
+	@Autowired
 	OrderCochainService cochainService;
 
 	/**
@@ -16,9 +21,9 @@ public class CochainJob {
 	 */
 	@XxlJob("jobCochain")
 	public void jobCochain() {
-		XxlJobHelper.log("Generate jobCochain beginning ......");
+		log.info("---jobCochain---beginning----execute---");
 		cochainService.chainEvidence();
-		XxlJobHelper.log("Generate end beginning ......");
+		log.info("-----jobCochain--end-------- ");
 	}
 
 }

+ 95 - 88
eladmin-system/src/main/java/me/zhengjie/application/admin/service/impl/OrderCochainServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 
 import cn.hutool.core.util.ArrayUtil;
@@ -76,8 +77,8 @@ public class OrderCochainServiceImpl extends AbstractServiceImpl<IOrderCochainDa
 				} catch (InterruptedException e) {
 					e.printStackTrace();
 				}
-					chainEvidence();
-				
+				chainEvidence();
+
 			}
 		}).start();
 		// t.set
@@ -91,102 +92,108 @@ public class OrderCochainServiceImpl extends AbstractServiceImpl<IOrderCochainDa
 		UPLOAD_FILE_PATH = downloadPath;
 	}
 
-	public void chainEvidence()  {
-
+	public void chainEvidence() {
+		log.info("------jobCochain--beginning--execute-");
 		QueryWrapper<OrderCochainEntity> qw = new QueryWrapper<>();
-		qw = qw.lt("count", 3).in("status", 0, 2).orderByAsc("create_time").last("limit 1");
-		OrderCochainEntity cochainEntity = orderCochainService.getOne(qw);
-		if (cochainEntity == null) {
+		qw = qw.lt("count", 3).in("status", 0, 2).orderByAsc("create_time");
+		List<OrderCochainEntity> cochainEntitys = orderCochainService.list(qw);
+		if (cochainEntitys == null || cochainEntitys.size() == 0) {
 			log.info("没有上链数据:");
 			return;
 		}
-		// 业务编码
-		String businessNo = cochainEntity.getBusinessNo();
-		initCochainPath(businessNo);
-		List<File> zipList = new ArrayList<>();
-		QueryWrapper<ContractOrderEntity> orderqw = new QueryWrapper<>();
-		orderqw.eq("business_no", businessNo);
-		ContractOrderEntity contractOrder = contractOrderMapper.selectOne(orderqw);
-		// 查询数据
-		log.info("【开始】调用上链业务编号:" + businessNo);
-		// 查询所有上传的图片
-		Map<String, FileInfoEntity> map = adminOrderService.getUploadFile(businessNo);
-		OrderCochainEntity chain = new OrderCochainEntity();
-		chain.setBusinessNo(businessNo);
-		try {
-			// 身份证正面idcard_front_pic
-			download(contractOrder.getIdcardFrontPic(), map, "身份证正面", zipList);
-			// 身份证反面
-			download(contractOrder.getIdcardBackPic(), map, "身份证反面", zipList);
-			// 合同contract_attachment
-			download(contractOrder.getContractAttachment(), map, "合同", zipList);
-			// 抵押物 mortgage_pic
-			download(contractOrder.getMortgagePic(), map, "抵押物", zipList);
-			// 结婚证
-			download(contractOrder.getMarragePic(), map, "结婚证", zipList);
-			// 其他上传
-			download(contractOrder.getOtherUpload(), map, "其他上传", zipList);
-			// 户口本
-			download(contractOrder.getHkbPic(), map, "户口本", zipList);
-			// 配偶身份证正面照片
-			download(contractOrder.getJointIdcardFrontPic(), map, "共同借款身份证正面", zipList);
-			// 配偶身份证反面照片
-			download(contractOrder.getJointIdcardBackPic(), map, "共同借款身份证反面照片", zipList);
-			// 带有盖章的pdf
-			QueryWrapper<OrderFileEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("business_no", businessNo);
-			// 这里处理,如果没有盖章的就把签名的pdf上传
-			List<OrderFileEntity> orderFiles = orderFileMapper.selectList(wrapper);
-			for (OrderFileEntity orderFile : orderFiles) {
-				if (StringUtils.isNotBlank(orderFile.getSignedPdfUrl())) {
-					downloadByPath(orderFile.getSignedPdfUrl(), map, orderFile.getFileName(), zipList);
-				} else {
-					downloadByPath(orderFile.getPdfUrl(), map, orderFile.getFileName(), zipList);
-				}
-			}
-			// 处理视频
-			QueryWrapper<OrderRoomIdEntity> queryWrapper = new QueryWrapper<>();
-			queryWrapper.eq("business_no", businessNo);
-			queryWrapper.orderByDesc("create_time");
-			List<OrderRoomIdEntity> orderRoomList = orderRoomIdMapper.selectList(queryWrapper);
-			if (orderRoomList != null && orderRoomList.size() > 0) {
-				OrderRoomIdEntity orderRoomId = orderRoomList.get(0);
-				downloadByPath(orderRoomId.getAppVideoUrl(), map, "APP视频", zipList);
-				downloadByPath(orderRoomId.getPcVideoUrl(), map, "PC视频", zipList);
+		for (OrderCochainEntity cochainEntity : cochainEntitys) {
+			// 业务编码
+			String businessNo = cochainEntity.getBusinessNo();
+			initCochainPath(businessNo);
+			List<File> zipList = new ArrayList<>();
+			QueryWrapper<ContractOrderEntity> orderqw = new QueryWrapper<>();
+			orderqw.eq("business_no", businessNo);
+			ContractOrderEntity contractOrder = contractOrderMapper.selectOne(orderqw);
+			if (contractOrder == null) {
+				log.warn("【end】订单查询不到,businessNo:" + businessNo);
+				continue;
 			}
-			String fileName = businessNo + ".zip";
-			// 对文件进行压缩
-			File targetFile = new File(UPLOAD_FILE_PATH + fileName);
-			ZipUtil.zip(targetFile, Charset.forName("utf-8"), false, ArrayUtil.toArray(zipList, File.class));
-			// 将压缩完成的文件上传到文件服务器
-			String contentType = "application/x-zip-compressed";
-			String uploadPath = businessNo + "/" + fileName;
-			FileUploadUtil.uploadFile(uploadPath, contentType, targetFile);
-			// 调用区块
-			String keyResult = cochainService.getKey(businessNo);
-			JSONObject jsonObj = JSONObject.parseObject(keyResult);
-			if (jsonObj.getIntValue("code") == 0) {
-				JSONObject jsonObject = jsonObj.getJSONObject("data");
-				String key = jsonObject.getString("key");
-				long size = targetFile.length();
-				chain.setZipPath(uploadPath);
-				cochainService.sendRequest(chain, key, String.valueOf(size));
+			// 查询数据
+			log.info("【开始】调用上链业务编号:" + businessNo);
+			// 查询所有上传的图片
+			Map<String, FileInfoEntity> map = adminOrderService.getUploadFile(businessNo);
+			OrderCochainEntity chain = new OrderCochainEntity();
+			chain.setBusinessNo(businessNo);
+			try {
+				// 身份证正面idcard_front_pic
+				download(contractOrder.getIdcardFrontPic(), map, "身份证正面", zipList);
+				// 身份证反面
+				download(contractOrder.getIdcardBackPic(), map, "身份证反面", zipList);
+				// 合同contract_attachment
+				download(contractOrder.getContractAttachment(), map, "合同", zipList);
+				// 抵押物 mortgage_pic
+				download(contractOrder.getMortgagePic(), map, "抵押物", zipList);
+				// 结婚证
+				download(contractOrder.getMarragePic(), map, "结婚证", zipList);
+				// 其他上传
+				download(contractOrder.getOtherUpload(), map, "其他上传", zipList);
+				// 户口本
+				download(contractOrder.getHkbPic(), map, "户口本", zipList);
+				// 配偶身份证正面照片
+				download(contractOrder.getJointIdcardFrontPic(), map, "共同借款身份证正面", zipList);
+				// 配偶身份证反面照片
+				download(contractOrder.getJointIdcardBackPic(), map, "共同借款身份证反面照片", zipList);
+				// 带有盖章的pdf
+				QueryWrapper<OrderFileEntity> wrapper = new QueryWrapper<>();
+				wrapper.eq("business_no", businessNo);
+				// 这里处理,如果没有盖章的就把签名的pdf上传
+				List<OrderFileEntity> orderFiles = orderFileMapper.selectList(wrapper);
+				for (OrderFileEntity orderFile : orderFiles) {
+					if (StringUtils.isNotBlank(orderFile.getSignedPdfUrl())) {
+						downloadByPath(orderFile.getSignedPdfUrl(), map, orderFile.getFileName(), zipList);
+					} else {
+						downloadByPath(orderFile.getPdfUrl(), map, orderFile.getFileName(), zipList);
+					}
+				}
+				// 处理视频
+				QueryWrapper<OrderRoomIdEntity> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("business_no", businessNo);
+				queryWrapper.orderByDesc("create_time");
+				List<OrderRoomIdEntity> orderRoomList = orderRoomIdMapper.selectList(queryWrapper);
+				if (orderRoomList != null && orderRoomList.size() > 0) {
+					OrderRoomIdEntity orderRoomId = orderRoomList.get(0);
+					downloadByPath(orderRoomId.getAppVideoUrl(), map, "APP视频", zipList);
+					downloadByPath(orderRoomId.getPcVideoUrl(), map, "PC视频", zipList);
+				}
+				String fileName = businessNo + ".zip";
+				// 对文件进行压缩
+				File targetFile = new File(UPLOAD_FILE_PATH + fileName);
+				ZipUtil.zip(targetFile, Charset.forName("utf-8"), false, ArrayUtil.toArray(zipList, File.class));
+				// 将压缩完成的文件上传到文件服务器
+				String contentType = "application/x-zip-compressed";
+				String uploadPath = businessNo + "/" + fileName;
+				FileUploadUtil.uploadFile(uploadPath, contentType, targetFile);
+				// 调用区块
+				String keyResult = cochainService.getKey(businessNo);
+				JSONObject jsonObj = JSONObject.parseObject(keyResult);
+				if (jsonObj.getIntValue("code") == 0) {
+					JSONObject jsonObject = jsonObj.getJSONObject("data");
+					String key = jsonObject.getString("key");
+					long size = targetFile.length();
+					chain.setZipPath(uploadPath);
+					cochainService.sendRequest(chain, key, String.valueOf(size));
+					// 修改数据库的值
+					orderCochainService.update(chain, OrderCochainEntity::getBusinessNo);
+				}
+				log.info("【结束】调用上链业务编号:" + businessNo);
+				// 删除本地的所有文件
+				FileUtils.forceDelete(targetFile.getParentFile());
+			} catch (Exception e) {
+				log.error("上链数据出现异常:" + e.getMessage());
 				// 修改数据库的值
+				chain.setRemark(e.getMessage());
+				chain.setCount(chain.getCount() + 1);
 				orderCochainService.update(chain, OrderCochainEntity::getBusinessNo);
-			}
-			log.info("【结束】调用上链业务编号:" + businessNo);
-			// 删除本地的所有文件
-			FileUtils.forceDelete(targetFile.getParentFile());
-		} catch (Exception e) {
-			log.error("上链数据出现异常:" + e.getMessage());
-			// 修改数据库的值
-			chain.setRemark(e.getMessage());
-			chain.setCount(chain.getCount() + 1);
-			orderCochainService.update(chain, OrderCochainEntity::getBusinessNo);
 
+			}
 		}
-	}
 
+	}
 
 	/**
 	 * 通过文件路径上传

+ 2 - 19
eladmin-system/src/main/java/me/zhengjie/base/chain/CochainService.java

@@ -110,22 +110,6 @@ public class CochainService {
 
 	public void sendRequest(OrderCochainEntity chainLog, String key, String size) {
 
-//	    data = {
-//	            "app_id": APP_ID,
-//	            "key": APP_ID,
-//	            "value": {
-//	                        "platCode": APP_ID,
-//	                        "bisCode": "12121333",
-//	                        "type": "file",
-//	                        "length":"5482635",
-//	                        "time":time.time(),
-//	                        "supply": {
-//	                                    "id": "123",
-//	                                    "test": "acb"
-//	                                }
-//	                    }
-//	        }
-
 		JSONObject data = new JSONObject();
 
 		JSONObject value = new JSONObject();
@@ -134,7 +118,6 @@ public class CochainService {
 		value.put("type", "file");
 		value.put("length", size);
 		value.put("time", String.valueOf(new Date().getTime()));
-		value.put("supply", new Object());
 
 		data.put("app_id", APP_ID);
 		data.put("key", key);
@@ -142,6 +125,7 @@ public class CochainService {
 		// 使用基本编码
 		String json = JSON.toJSONString(data);
 		chainLog.setReqParam(json);
+		chainLog.setKey(key);
 		String base64encodedString = Base64.encode(json);
 
 		String sha = sha1_HMAC(base64encodedString);
@@ -159,9 +143,8 @@ public class CochainService {
 			chainLog.setCount(0);
 		} else {
 			chainLog.setStatus("0");
-			chainLog.setCount(chainLog.getCount()+1);
+			chainLog.setCount(chainLog.getCount() + 1);
 		}
-		
 
 	}
 }

+ 5 - 1
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/entity/OrderCochainEntity.java

@@ -45,7 +45,11 @@ public class OrderCochainEntity implements Serializable {
 	@TableField("count")
 	private int count;
 	
-	
+	/**
+	 * 区块连的统一key
+	 */
+	@TableField("key")
+	private String key;
 	/**
 	 * 请求参数
 	 */