|
|
@@ -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);
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 通过文件路径上传
|