瀏覽代碼

新增第三方调用

humuyu 3 年之前
父節點
當前提交
bdc1b33f6b

+ 45 - 0
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/OrderCochainController.java

@@ -0,0 +1,45 @@
+package me.zhengjie.application.admin.controller;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import me.zhengjie.annotation.rest.AnonymousPostMapping;
+import me.zhengjie.application.admin.controller.vo.OrderCochainVo;
+import me.zhengjie.application.admin.service.OrderCochainService;
+import me.zhengjie.base.AppBaseResponse;
+import me.zhengjie.base.AppResultData;
+import me.zhengjie.dao.mybatis.entity.OrderCochainEntity;
+
+@RestController
+@RequestMapping("/cochain")
+public class OrderCochainController {
+	@Autowired
+	OrderCochainService orderCochainService;
+
+	/**
+	 * 查询订单的请求
+	 *
+	 * @return
+	 */
+	@AnonymousPostMapping("/query")
+	public AppBaseResponse<List<OrderCochainEntity>> query(@RequestBody OrderCochainVo vo) {
+		
+		AppBaseResponse<List<OrderCochainEntity>> response = new AppBaseResponse<>();
+		IPage<OrderCochainEntity> page = new Page<>(vo.getIndex(), vo.getSize());
+		OrderCochainEntity entity = new OrderCochainEntity();
+		entity.setStatus(vo.getStatus());
+		entity.setBusinessNo(vo.getBusinessNo());
+		page = orderCochainService.page(page, entity);
+		AppResultData<List<OrderCochainEntity>> resultData = new AppResultData<>(page.getRecords(),
+				new me.zhengjie.base.Page((int) page.getCurrent(), (int) page.getSize(), (int) page.getTotal()));
+		response.setData(resultData);
+		return response;
+	}
+}

+ 0 - 1
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/OrderRoomIdController.java

@@ -56,7 +56,6 @@ public class OrderRoomIdController {
 				pcUrl = FileUploadUtil.getFileUrl(pcUrl);
 				orderRoomId.setPcVideoUrl(pcUrl);
 			}
-
 			rep.setResult(orderRoomId);
 		}
 

+ 52 - 0
eladmin-system/src/main/java/me/zhengjie/application/admin/controller/vo/OrderCochainVo.java

@@ -0,0 +1,52 @@
+package me.zhengjie.application.admin.controller.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import me.zhengjie.base.BaseRequest;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 公证订单
+ * </p>
+ *
+ * @author <a href="https://www.fengwenyi.com?code">Erwin Feng</a>
+ * @since 2022-03-28
+ */
+
+public class OrderCochainVo extends BaseRequest {
+
+	private String status;
+	private String businessNo;
+
+	public Integer getIndex() {
+		return index == null ? 0 : index;
+	}
+
+	public Integer getSize() {
+		return size == null ? 10 : size;
+	}
+
+	public Integer getTotal() {
+		return total;
+	}
+
+	public String getStatus() {
+		return status;
+	}
+
+	public String getBusinessNo() {
+		return businessNo;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	public void setBusinessNo(String businessNo) {
+		this.businessNo = businessNo;
+	}
+}

+ 296 - 10
eladmin-system/src/main/java/me/zhengjie/application/admin/service/impl/CochainLogServiceImpl.java

@@ -1,22 +1,43 @@
 package me.zhengjie.application.admin.service.impl;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xxl.job.core.handler.annotation.XxlJob;
 
+import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.application.admin.service.CochainLogService;
 import me.zhengjie.application.admin.service.OrderCochainService;
+import me.zhengjie.application.bank.service.BorrowerService;
+import me.zhengjie.application.bank.service.GuaranteeService;
+import me.zhengjie.application.bank.service.MortgageService;
+import me.zhengjie.application.bank.service.OrderRoomIdService;
+import me.zhengjie.application.bank.service.OrderService;
+import me.zhengjie.base.chain.CochainService;
+import me.zhengjie.base.util.FileUploadUtil;
+import me.zhengjie.base.util.UUIDGenerator;
+import me.zhengjie.dao.mybatis.entity.BorrowerEntity;
 import me.zhengjie.dao.mybatis.entity.CochainLogEntity;
+import me.zhengjie.dao.mybatis.entity.FileInfoEntity;
+import me.zhengjie.dao.mybatis.entity.GuaranteeEntity;
+import me.zhengjie.dao.mybatis.entity.MortgageEntity;
 import me.zhengjie.dao.mybatis.entity.OrderCochainEntity;
+import me.zhengjie.dao.mybatis.entity.OrderFileEntity;
+import me.zhengjie.dao.mybatis.entity.OrderRoomIdEntity;
 import me.zhengjie.dao.mybatis.mapper.ICochainLogDao;
-
-
-
-import javax.annotation.PostConstruct;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import me.zhengjie.dao.mybatis.mapper.OrderFileMapper;
 
 /**
+ * TODO 这个需要去掉抵押人,可以有联合借款,联合抵押,现在都是按照单个处理,
+ * 
  * <p>
  * 服务实现类
  * </p>
@@ -25,18 +46,283 @@ import org.springframework.stereotype.Service;
  * @since 2022-07-25
  */
 @Service
+@Slf4j
 public class CochainLogServiceImpl extends ServiceImpl<ICochainLogDao, CochainLogEntity> implements CochainLogService {
 
 	@Autowired
 	OrderCochainService orderCochainService;
+	@Autowired
+	BorrowerService borrowerService;
+	@Autowired
+	MortgageService mortgageService;
+	@Autowired
+	GuaranteeService guaranteeService;
 
-	@PostConstruct
+	@Autowired
+	OrderService orderService;
+	@Autowired
+	CochainService cochainService;
+	@Autowired
+	CochainLogService cochainLogService;
+	@Autowired
+	OrderFileMapper orderFileMapper;
+	@Autowired
+	OrderRoomIdService orderRoomService;
+
+//	@PostConstruct
 	public void init() {
+		new Thread(new Runnable() {
+
+			@Override
+			public void run() {
+				try {
+					Thread.sleep(1000l);
+				} catch (InterruptedException e) {
+					e.printStackTrace();
+				}
+				chainEvidence();
+			}
+		}).start();
 		// t.set
+
+	}
+
+	private void chainEvidence() {
+
 		QueryWrapper<OrderCochainEntity> qw = new QueryWrapper<>();
-		qw = qw.in("is_call", "0,1").orderByAsc("update_time").last("limit 1");
+		qw = qw.in("status", 0, 2).orderByAsc("create_time").last("limit 1");
 
 		OrderCochainEntity cochainEntity = orderCochainService.getOne(qw);
-		System.out.println(cochainEntity);
+		if (cochainEntity == null) {
+			log.info("没有上链数据:");
+			return;
+		}
+		// 先读取借款人的,
+		String businessNo = cochainEntity.getBusinessNo();
+		// 查询数据
+		log.info("【开始】调用上链业务编号:"+businessNo);
+		
+
+		CochainLogEntity cochainLog = new CochainLogEntity();
+		cochainLog.setBusinessNo(businessNo);
+		// 查询已经插入过的
+		QueryWrapper<CochainLogEntity> callCochainLog = cochainLogService.convertQuery(cochainLog);
+		callCochainLog.select("file_path");
+		List<String> cochainLogs = cochainLogService.listObjs(callCochainLog, a -> {
+			return String.valueOf(a.toString());
+		});
+		// 查询所有上传的图片
+		Map<String, FileInfoEntity> map = orderService.getUploadFile(businessNo);
+		// 借款人查询数据
+		BorrowerEntity borrower = new BorrowerEntity();
+		borrower.setBusinessNo(businessNo);
+		List<BorrowerEntity> borrowers = borrowerService.list(borrower);
+		for (BorrowerEntity obj : borrowers) {
+			List<CochainLogEntity> logs = new ArrayList<CochainLogEntity>();
+			// 身份证正面
+			recordCochain(businessNo, obj.getId(), obj.getCardFront(), map, logs, cochainLogs);
+			// 身份证反面
+			recordCochain(businessNo, obj.getId(), obj.getCardBack(), map, logs, cochainLogs);
+			// 合同
+			recordCochain(businessNo, obj.getId(), obj.getCompactPic(), map, logs, cochainLogs);
+			// 房产证
+			recordCochain(businessNo, obj.getId(), obj.getEstatesPic(), map, logs, cochainLogs);
+			// 房产证
+			recordCochain(businessNo, obj.getId(), obj.getMarragePic(), map, logs, cochainLogs);
+			// 其他上传
+			recordCochain(businessNo, obj.getId(), obj.getOtherUpload(), map, logs, cochainLogs);
+			// 户口本
+			recordCochain(businessNo, obj.getId(), obj.getHkbPic(), map, logs, cochainLogs);
+			// 带有盖章的pdf
+			QueryWrapper<OrderFileEntity> wrapper = new QueryWrapper<>();
+			wrapper.eq("business_no", businessNo);
+			wrapper.eq("contract_id", obj.getId());
+			// 这里处理,如果没有盖章的就把签名的pdf上传
+			List<OrderFileEntity> orderFiles = orderFileMapper.selectList(wrapper);
+			for (OrderFileEntity orderFile : orderFiles) {
+				if (StringUtils.isNotBlank(orderFile.getSignedPdfUrl())) {
+					recordCochain(businessNo, obj.getId(), orderFile.getSignedPdfUrl(), logs, cochainLogs);
+				} else {
+					recordCochain(businessNo, obj.getId(), orderFile.getPdfUrl(), logs, cochainLogs);
+				}
+			}
+			// 处理视频
+			QueryWrapper<OrderRoomIdEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("orderId", obj.getId());
+			queryWrapper.orderByDesc("create_time");
+			List<OrderRoomIdEntity> orderRoomList = orderRoomService.list(queryWrapper);
+			if (orderRoomList != null && orderRoomList.size() > 0) {
+				OrderRoomIdEntity orderRoomId = orderRoomList.get(0);
+				recordCochain(businessNo, obj.getId(), orderRoomId.getAppVideoUrl(), logs, cochainLogs);
+				recordCochain(businessNo, obj.getId(), orderRoomId.getPcVideoUrl(), logs, cochainLogs);
+			}
+			// 数据插入
+			cochainLogService.saveBatch(logs);
+		}
+		// 抵押人查询数据
+		MortgageEntity mortgage = new MortgageEntity();
+		mortgage.setBusinessNo(businessNo);
+		List<MortgageEntity> mortgages = mortgageService.list(mortgage);
+		for (MortgageEntity obj : mortgages) {
+			List<CochainLogEntity> logs = new ArrayList<CochainLogEntity>();
+			// 身份证正面
+			recordCochain(businessNo, obj.getId(), obj.getCardFront(), map, logs, cochainLogs);
+			// 身份证反面
+			recordCochain(businessNo, obj.getId(), obj.getCardBack(), map, logs, cochainLogs);
+			// 合同
+			recordCochain(businessNo, obj.getId(), obj.getCompactPic(), map, logs, cochainLogs);
+			// 房产证
+			recordCochain(businessNo, obj.getId(), obj.getEstatesPic(), map, logs, cochainLogs);
+			// 房产证
+			recordCochain(businessNo, obj.getId(), obj.getMarragePic(), map, logs, cochainLogs);
+			// 其他上传
+			recordCochain(businessNo, obj.getId(), obj.getOtherUpload(), map, logs, cochainLogs);
+			// 户口本
+			recordCochain(businessNo, obj.getId(), obj.getHkbPic(), map, logs, cochainLogs);
+			// 带有盖章的pdf
+			QueryWrapper<OrderFileEntity> wrapper = new QueryWrapper<>();
+			wrapper.eq("business_no", businessNo);
+			wrapper.eq("contract_id", obj.getId());
+			// 这里处理,如果没有盖章的就把签名的pdf上传
+			List<OrderFileEntity> orderFiles = orderFileMapper.selectList(wrapper);
+			for (OrderFileEntity orderFile : orderFiles) {
+				if (StringUtils.isNotBlank(orderFile.getSignedPdfUrl())) {
+					recordCochain(businessNo, obj.getId(), orderFile.getSignedPdfUrl(), logs, cochainLogs);
+				} else {
+					recordCochain(businessNo, obj.getId(), orderFile.getPdfUrl(), logs, cochainLogs);
+				}
+			}
+			// 处理视频
+			QueryWrapper<OrderRoomIdEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("orderId", obj.getId());
+			queryWrapper.orderByDesc("create_time");
+			List<OrderRoomIdEntity> orderRoomList = orderRoomService.list(queryWrapper);
+			if (orderRoomList != null && orderRoomList.size() > 0) {
+				OrderRoomIdEntity orderRoomId = orderRoomList.get(0);
+				recordCochain(businessNo, obj.getId(), orderRoomId.getAppVideoUrl(), logs, cochainLogs);
+				recordCochain(businessNo, obj.getId(), orderRoomId.getPcVideoUrl(), logs, cochainLogs);
+			}
+			// 数据插入
+			cochainLogService.saveBatch(logs);
+		}
+		// 担保人查询数据
+		GuaranteeEntity guarantee = new GuaranteeEntity();
+		guarantee.setBusinessNo(businessNo);
+		List<GuaranteeEntity> guarantees = guaranteeService.list(guarantee);
+		for (GuaranteeEntity obj : guarantees) {
+			List<CochainLogEntity> logs = new ArrayList<CochainLogEntity>();
+			// 身份证正面
+			recordCochain(businessNo, obj.getId(), obj.getCardFront(), map, logs, cochainLogs);
+			// 身份证反面
+			recordCochain(businessNo, obj.getId(), obj.getCardBack(), map, logs, cochainLogs);
+			// 合同
+			recordCochain(businessNo, obj.getId(), obj.getCompactPic(), map, logs, cochainLogs);
+			// 房产证
+			recordCochain(businessNo, obj.getId(), obj.getEstatesPic(), map, logs, cochainLogs);
+			// 房产证
+			recordCochain(businessNo, obj.getId(), obj.getMarragePic(), map, logs, cochainLogs);
+			// 其他上传
+			recordCochain(businessNo, obj.getId(), obj.getOtherUpload(), map, logs, cochainLogs);
+			// 户口本
+			recordCochain(businessNo, obj.getId(), obj.getHkbPic(), map, logs, cochainLogs);
+			// 带有盖章的pdf
+			QueryWrapper<OrderFileEntity> wrapper = new QueryWrapper<>();
+			wrapper.eq("business_no", businessNo);
+			wrapper.eq("contract_id", obj.getId());
+			// 这里处理,如果没有盖章的就把签名的pdf上传
+			List<OrderFileEntity> orderFiles = orderFileMapper.selectList(wrapper);
+			for (OrderFileEntity orderFile : orderFiles) {
+				if (StringUtils.isNotBlank(orderFile.getSignedPdfUrl())) {
+					recordCochain(businessNo, obj.getId(), orderFile.getSignedPdfUrl(), logs, cochainLogs);
+				} else {
+					recordCochain(businessNo, obj.getId(), orderFile.getPdfUrl(), logs, cochainLogs);
+				}
+			}
+			// 处理视频
+			QueryWrapper<OrderRoomIdEntity> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("orderId", obj.getId());
+			queryWrapper.orderByDesc("create_time");
+			List<OrderRoomIdEntity> orderRoomList = orderRoomService.list(queryWrapper);
+			if (orderRoomList != null && orderRoomList.size() > 0) {
+				OrderRoomIdEntity orderRoomId = orderRoomList.get(0);
+				recordCochain(businessNo, obj.getId(), orderRoomId.getAppVideoUrl(), logs, cochainLogs);
+				recordCochain(businessNo, obj.getId(), orderRoomId.getPcVideoUrl(), logs, cochainLogs);
+			}
+			// 数据插入
+			cochainLogService.saveBatch(logs);
+		}
+		// 查询是否有失败的
+		CochainLogEntity success = new CochainLogEntity();
+		success.setBusinessNo(businessNo);
+		success.setStatus("0");
+		long count = cochainLogService.count(success);
+		if (count > 0) {
+			cochainEntity.setStatus("2");
+			cochainEntity.setUpdateTime(LocalDateTime.now());
+		} else {
+			cochainEntity.setStatus("1");
+			cochainEntity.setUpdateTime(LocalDateTime.now());
+		}
+		orderCochainService.updateById(cochainEntity);
+		log.info("【结束】调用上链业务编号:"+businessNo);
+	}
+
+	/**
+	 * 调用第三方上链接口
+	 */
+	@XxlJob("cochain")
+	public void jobCochain() {
+		chainEvidence();
 	}
+
+	public void recordCochain(String businessNo, Long orderId, String filePath, List<CochainLogEntity> logs,
+			List<String> cochainLogs) {
+		if (StringUtils.isNotBlank(filePath) && !cochainLogs.contains(filePath)) {
+			// 先初始化
+			CochainLogEntity chainLog = new CochainLogEntity();
+			String bisCode = UUIDGenerator.uuid();
+			chainLog.setBusinessNo(businessNo);
+			chainLog.setOrderId(orderId.toString());
+			chainLog.setFilePath(filePath);
+			chainLog.setCreateTime(LocalDateTime.now());
+			chainLog.setUpdateTime(LocalDateTime.now());
+			chainLog.setBisCode(bisCode);
+			long size = FileUploadUtil.getSize(filePath);
+			cochainService.sendRequest(chainLog, String.valueOf(size));
+			logs.add(chainLog);
+		}
+	}
+
+	public void recordCochain(String businessNo, Long orderId, String fileId, Map<String, FileInfoEntity> map,
+			List<CochainLogEntity> logs, List<String> cochainLogs) {
+		if (StringUtils.isNotBlank(fileId)) {
+			// 先初始化
+			String[] list = { fileId };
+			if (fileId.contains(",")) {
+				list = fileId.split(",");
+			}
+			for (String key : list) {
+				// 计算是否已经包含了插入数据
+				FileInfoEntity fileInfo = map.get(key);
+				if (!cochainLogs.contains(fileInfo.getPath())) {
+					CochainLogEntity chainLog = new CochainLogEntity();
+					long size = FileUploadUtil.getSize(fileInfo.getPath());
+					String bisCode = UUIDGenerator.uuid();
+					chainLog.setBusinessNo(businessNo);
+					chainLog.setOrderId(orderId.toString());
+					chainLog.setFilePath(fileInfo.getPath());
+					chainLog.setImageId(fileId);
+					chainLog.setCreateTime(LocalDateTime.now());
+					chainLog.setUpdateTime(LocalDateTime.now());
+					chainLog.setBisCode(bisCode);
+					cochainService.sendRequest(chainLog, String.valueOf(size));
+					logs.add(chainLog);
+				}
+
+			}
+
+		}
+
+	}
+
 }

+ 10 - 0
eladmin-system/src/main/java/me/zhengjie/application/admin/service/impl/NotaryOrderServiceImpl.java

@@ -26,6 +26,7 @@ import me.zhengjie.application.admin.controller.vo.NotaryOrderQueryReq;
 import me.zhengjie.application.admin.controller.vo.NotaryOrderInfoQueryRsp;
 import me.zhengjie.application.admin.controller.vo.NotaryOrderQueryRsp;
 import me.zhengjie.application.admin.service.NotaryOrderService;
+import me.zhengjie.application.admin.service.OrderCochainService;
 import me.zhengjie.utils.SecurityUtils;
 import org.apache.commons.io.IOUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -87,6 +88,8 @@ public class NotaryOrderServiceImpl extends ServiceImpl<NotaryOrderMapper, Notar
 	IProvinceDao provinceDao;
 	@Autowired
 	ICityDao cityDao;
+	@Autowired
+	OrderCochainService orderCochainService;
 	
 	@Autowired
 	FileInfoService fileInfoService;
@@ -535,6 +538,13 @@ public class NotaryOrderServiceImpl extends ServiceImpl<NotaryOrderMapper, Notar
 			saveOrder.setUpdater(SecurityUtils.getCurrentUserId().toString());
 			saveOrder.setStatus(StatusEnum.NotaryStatusEnum.PASS.getStatus().toString());
 			notaryOrderMapper.updateById(saveOrder);
+			//流程走完之后需要把数据插入到order_cochain
+			OrderCochainEntity orderCochain=new OrderCochainEntity();
+			orderCochain.setStatus("0");
+			orderCochain.setBusinessNo(businessNo);
+			orderCochain.setCreateTime(LocalDateTime.now());
+			orderCochain.setUpdateTime(LocalDateTime.now());
+			orderCochainService.save(orderCochain);
 		}
 	}
 

+ 2 - 2
eladmin-system/src/main/java/me/zhengjie/application/bank/controller/AppBankController.java

@@ -311,11 +311,11 @@ public class AppBankController extends BaseController {
 	public ResponseDTO<?> getSubOrderList(@RequestBody String json) {
 
 		JSONObject jsonObj = JSONObject.parseObject(json);
-		String phone = jsonObj.getString("businessNo");
+		String businessNo = jsonObj.getString("businessNo");
 		String status = jsonObj.getString("status");
 		Integer startIndex = 1;
 		Integer size = Integer.MAX_VALUE;
-		List<OrderDto> list = borrowerService.getSubOrderList(phone, status, startIndex, size);
+		List<OrderDto> list = borrowerService.getSubOrderList(businessNo, status, startIndex, size);
 
 		return ResponseDTO.success(list);
 	}

+ 4 - 0
eladmin-system/src/main/java/me/zhengjie/application/bank/service/OrderService.java

@@ -8,6 +8,7 @@ import me.zhengjie.base.AppBaseResponse;
 import me.zhengjie.base.ResponseDTO;
 import me.zhengjie.application.bank.controller.vo.Sms;
 import me.zhengjie.dao.mybatis.entity.BorrowerEntity;
+import me.zhengjie.dao.mybatis.entity.FileInfoEntity;
 import me.zhengjie.dao.mybatis.entity.MortgageEntity;
 import me.zhengjie.dao.mybatis.entity.NotaryOrderEntity;
 
@@ -16,6 +17,7 @@ import me.zhengjie.dao.mybatis.entity.SysUserEntity;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -54,4 +56,6 @@ public interface OrderService extends IService<NotaryOrderEntity> {
 	public ResponseDTO<?> videoCall(String json) ;
 	
 	public List<OrderDto> getOrderByContion(OrderVo user);
+	
+	public Map<String, FileInfoEntity>  getUploadFile(String businessNo);
 }

+ 151 - 56
eladmin-system/src/main/java/me/zhengjie/application/bank/service/impl/OrderServiceImpl.java

@@ -16,6 +16,7 @@ import me.zhengjie.application.bank.controller.vo.OrderDto;
 import me.zhengjie.application.bank.controller.vo.OrderVo;
 import me.zhengjie.base.AppBaseResponse;
 import me.zhengjie.base.plus.QueryWrapperUtil;
+import me.zhengjie.base.util.BeanCopyUtils;
 import me.zhengjie.base.util.DateFormatUtils;
 import me.zhengjie.base.util.FileUploadUtil;
 import me.zhengjie.base.util.StatusEnum;
@@ -76,7 +77,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 	@Autowired
 	private NotaryOrderService notaryOrderService;
 	@Autowired
-    FileInfoService fileInfoService;
+	FileInfoService fileInfoService;
 	@Autowired
 	OfficeXbankMapper officeXbankMapper;
 	@Autowired
@@ -90,7 +91,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 	@Autowired
 	private BankMapper bankMapper;
 	@Autowired
-    OrderRoomIdService orderRoomIdService;
+	OrderRoomIdService orderRoomIdService;
 
 	@Override
 	public int checkOrder(Sms sms) {
@@ -131,6 +132,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 
 	/**
 	 * 创建主订单
+	 * 
 	 * @param borrower
 	 * @param entity
 	 * @return
@@ -140,7 +142,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		AppBaseResponse response = new AppBaseResponse();
 		// 设置主订单信息并保存
 		NotaryOrderEntity orderEntity = NotaryOrderEntity.builder().build();
-		BeanUtils.copyProperties(borrower, orderEntity,"createTime","updateTime");
+		BeanUtils.copyProperties(borrower, orderEntity, "createTime", "updateTime");
 		orderEntity.setLoanName(borrower.getUsername());
 		orderEntity.setLoanMoney(borrower.getSumMoney());
 		orderEntity.setCustomerId(entity.getUserId().toString());
@@ -166,7 +168,8 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 			OfficeXbankEntity mapEntity = officeXbankMapper.selectOne(map);
 			// 取公证处公证书自动生成标记
 			NotaryOfficeEntity notaryOffice = notaryOfficeMapper.selectById(mapEntity.getNotaryOfficeId());
-			String autoGenerateFlag = StringUtils.isEmpty(notaryOffice.getAutoGenerate()) ? "0" : notaryOffice.getAutoGenerate();
+			String autoGenerateFlag = StringUtils.isEmpty(notaryOffice.getAutoGenerate()) ? "0"
+					: notaryOffice.getAutoGenerate();
 			orderEntity.setBankId(bank.getId() == null ? "" : bank.getId().toString());
 			orderEntity.setBankName(bank.getBankName());
 			orderEntity.setNotaryOfficeId(mapEntity.getNotaryOfficeId());
@@ -185,6 +188,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 
 	/**
 	 * 更新订单状态为待公证
+	 * 
 	 * @param businessNo
 	 * @return
 	 */
@@ -212,28 +216,29 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 
 	/**
 	 * 子订单信息是否完整
+	 * 
 	 * @param businessNo
 	 * @return
 	 */
-	private boolean isSubOrderCompleted(String businessNo){
+	private boolean isSubOrderCompleted(String businessNo) {
 		QueryWrapper<BorrowerEntity> borrowerWrapper = new QueryWrapper<>();
 		borrowerWrapper.eq("business_no", businessNo);
 		BorrowerEntity borrowerEntity = borrowerService.getOne(borrowerWrapper);
-		if(borrowerEntity == null){
+		if (borrowerEntity == null) {
 			return false;
 		}
 
 		QueryWrapper<MortgageEntity> mortgageWrapper = new QueryWrapper<>();
 		mortgageWrapper.eq("business_no", businessNo);
 		MortgageEntity mortgageEntity = mortgageService.getOne(mortgageWrapper);
-		if(mortgageEntity == null){
+		if (mortgageEntity == null) {
 			return false;
 		}
 
 		QueryWrapper<GuaranteeEntity> guaranteeWrapper = new QueryWrapper<>();
 		guaranteeWrapper.eq("business_no", businessNo);
 		GuaranteeEntity guaranteeEntity = guaranteeService.getOne(guaranteeWrapper);
-		if(guaranteeEntity == null){
+		if (guaranteeEntity == null) {
 			return false;
 		}
 
@@ -260,16 +265,16 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		guaranteeService.update(guarantee, guaranteeWrapper);
 
 		UpdateWrapper<NotaryOrderEntity> orderWrapper = new UpdateWrapper<>();
-		orderWrapper.eq("business_no",businessNo);
+		orderWrapper.eq("business_no", businessNo);
 		NotaryOrderEntity order = new NotaryOrderEntity();
 		order.setStatus(status);
-		if(NotaryStatusEnum.SUBMIT.getStatus().toString().equals(status)){
+		if (NotaryStatusEnum.SUBMIT.getStatus().toString().equals(status)) {
 			order.setReturnReason(message);
-		} else if(NotaryStatusEnum.REJECT.getStatus().toString().equals(status)){
+		} else if (NotaryStatusEnum.REJECT.getStatus().toString().equals(status)) {
 			order.setRejectReason(message);
 		}
 		order.setUpdateTime(LocalDateTime.now());
-		update(order,orderWrapper);
+		update(order, orderWrapper);
 	}
 
 	/**
@@ -350,7 +355,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 
 	public boolean sameBorrowerMortgage(String orderId, String type) {
 
-		if(StatusEnum.NotaryNoteEnum.BORROWER_NOTE.name().equals(type)){
+		if (StatusEnum.NotaryNoteEnum.BORROWER_NOTE.name().equals(type)) {
 			BorrowerEntity borrower = borrowerService.getById(orderId);
 			MortgageEntity morgate = new MortgageEntity();
 			morgate.setBusinessNo(borrower.getBusinessNo());
@@ -358,7 +363,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 			QueryWrapper<MortgageEntity> morgateQuery = QueryWrapperUtil.convertQuery(morgate);
 			long m = mortgageService.count(morgateQuery);
 			return m > 0;
-		}else{
+		} else {
 			MortgageEntity morgate = mortgageService.getById(orderId);
 			BorrowerEntity borrower = new BorrowerEntity();
 			borrower.setBusinessNo(morgate.getBusinessNo());
@@ -378,45 +383,45 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		orderDetail.setMainOrderStatus(orderEntity.getStatus());
 		// 将所有图片查询出来
 		// 1.身份证正面 2.身份证反面 3.结婚证 4.合同附件 5.房产证6.户口本 7.其他内容
-		List<Integer> list = new ArrayList<Integer>();
-		// for (OrderDetailDto orderDetail : entityDto) {
-		// 身份证正面
-		list.add(Integer.parseInt(orderDetail.getCardFront()));
-		// 身份证反面
-		list.add(Integer.parseInt(orderDetail.getCardBack()));
-		// 3.结婚证
-		// 判断是否有数据
-		if (StringUtils.isNotBlank(orderDetail.getMarragePic())) {
-			String[] marrage = orderDetail.getMarragePic().split(",");
-			list.addAll(toIntList(marrage));
-		}
-
-		// 4.合同附件
-		if (StringUtils.isNotBlank(orderDetail.getCompactPic())) {
-			String[] CompactPic = orderDetail.getCompactPic().split(",");
-			list.addAll(toIntList(CompactPic));
-		}
-		// 5.房产证
-		if (StringUtils.isNotBlank(orderDetail.getEstatesPic())) {
-			String[] estatesPic = orderDetail.getEstatesPic().split(",");
-			list.addAll(toIntList(estatesPic));
-		}
-		// 6.户口本
-		if (StringUtils.isNotBlank(orderDetail.getHkbPic())) {
-			String[] hkbPic = orderDetail.getHkbPic().split(",");
-			list.addAll(toIntList(hkbPic));
-		}
-
-		// 其他内容
-		String otherUpload = orderDetail.getOtherUpload();
-		if (StringUtils.isNotBlank(otherUpload)) {
-			String[] otherArray = otherUpload.split(",");
-			list.addAll(toIntList(otherArray));
-		}
+//		List<Integer> list = new ArrayList<Integer>();
+//		// for (OrderDetailDto orderDetail : entityDto) {
+//		// 身份证正面
+//		list.add(Integer.parseInt(orderDetail.getCardFront()));
+//		// 身份证反面
+//		list.add(Integer.parseInt(orderDetail.getCardBack()));
+//		// 3.结婚证
+//		// 判断是否有数据
+//		if (StringUtils.isNotBlank(orderDetail.getMarragePic())) {
+//			String[] marrage = orderDetail.getMarragePic().split(",");
+//			list.addAll(toIntList(marrage));
+//		}
+//
+//		// 4.合同附件
+//		if (StringUtils.isNotBlank(orderDetail.getCompactPic())) {
+//			String[] CompactPic = orderDetail.getCompactPic().split(",");
+//			list.addAll(toIntList(CompactPic));
+//		}
+//		// 5.房产证
+//		if (StringUtils.isNotBlank(orderDetail.getEstatesPic())) {
+//			String[] estatesPic = orderDetail.getEstatesPic().split(",");
+//			list.addAll(toIntList(estatesPic));
+//		}
+//		// 6.户口本
+//		if (StringUtils.isNotBlank(orderDetail.getHkbPic())) {
+//			String[] hkbPic = orderDetail.getHkbPic().split(",");
+//			list.addAll(toIntList(hkbPic));
+//		}
+//
+//		// 其他内容
+//		String otherUpload = orderDetail.getOtherUpload();
+//		if (StringUtils.isNotBlank(otherUpload)) {
+//			String[] otherArray = otherUpload.split(",");
+//			list.addAll(toIntList(otherArray));
+//		}
 
 //		}
 		// 取出所有的图片
-		List<FileInfoEntity> fileInfo = fileInfoService.listByIds(list);
+		List<FileInfoEntity> fileInfo = getFileInfo(orderDetail);
 		Map<Integer, FileInfoEntity> map = new HashMap<>();
 		Map<String, String> returnMap = new HashMap<>();
 		for (FileInfoEntity file : fileInfo) {
@@ -431,7 +436,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		orderDetail.setCardFrontUrl(cardFrontImageUrl);
 		// 身份证反面
 		FileInfoEntity cardBackInfo = map.get(Integer.parseInt(orderDetail.getCardBack()));
-		String cardBackImageUrl =  FileUploadUtil.getFileUrl(cardBackInfo.getPath());
+		String cardBackImageUrl = FileUploadUtil.getFileUrl(cardBackInfo.getPath());
 		orderDetail.setCardBackUrl(cardBackImageUrl);
 //			// 3.结婚证
 		List<String> marragePicUrl = getImageUrl(orderDetail.getMarragePic(), map);
@@ -451,7 +456,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		List<String> hkbPicUrl = getImageUrl(orderDetail.getHkbPic(), map);
 		orderDetail.setHkbPicUrl(hkbPicUrl);
 //			// 其他内容
-		otherUpload = orderDetail.getOtherUpload();
+		String otherUpload = orderDetail.getOtherUpload();
 //		if (StringUtils.isNotBlank(otherUpload)) {
 		List<String> otherUploadUrl = getImageUrl(otherUpload, map);
 		orderDetail.setOtherUploadUrl(otherUploadUrl);
@@ -460,6 +465,94 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		orderDetail.setFileMap(returnMap);
 		return orderDetail;
 	}
+
+	private List<FileInfoEntity> getFileInfo(OrderDetailDto orderDetail) {
+		// 将所有图片查询出来
+		// 1.身份证正面 2.身份证反面 3.结婚证 4.合同附件 5.房产证6.户口本 7.其他内容
+		List<Integer> list = new ArrayList<Integer>();
+		// for (OrderDetailDto orderDetail : entityDto) {
+		// 身份证正面
+		list.add(Integer.parseInt(orderDetail.getCardFront()));
+		// 身份证反面
+		list.add(Integer.parseInt(orderDetail.getCardBack()));
+		// 3.结婚证
+		// 判断是否有数据
+		if (StringUtils.isNotBlank(orderDetail.getMarragePic())) {
+			String[] marrage = orderDetail.getMarragePic().split(",");
+			list.addAll(toIntList(marrage));
+		}
+
+		// 4.合同附件
+		if (StringUtils.isNotBlank(orderDetail.getCompactPic())) {
+			String[] CompactPic = orderDetail.getCompactPic().split(",");
+			list.addAll(toIntList(CompactPic));
+		}
+		// 5.房产证
+		if (StringUtils.isNotBlank(orderDetail.getEstatesPic())) {
+			String[] estatesPic = orderDetail.getEstatesPic().split(",");
+			list.addAll(toIntList(estatesPic));
+		}
+		// 6.户口本
+		if (StringUtils.isNotBlank(orderDetail.getHkbPic())) {
+			String[] hkbPic = orderDetail.getHkbPic().split(",");
+			list.addAll(toIntList(hkbPic));
+		}
+
+		// 其他内容
+		String otherUpload = orderDetail.getOtherUpload();
+		if (StringUtils.isNotBlank(otherUpload)) {
+			String[] otherArray = otherUpload.split(",");
+			list.addAll(toIntList(otherArray));
+		}
+		// 取出所有的图片
+		List<FileInfoEntity> fileInfo = fileInfoService.listByIds(list);
+		return fileInfo;
+	}
+	/**
+	 * 查询借款人,抵押人的
+	 * @param businessNo
+	 * @return
+	 */
+	public Map<String, FileInfoEntity>  getUploadFile(String businessNo) {
+		Map<String, FileInfoEntity> fileInfo = new HashMap<String, FileInfoEntity>();
+		// 借款人
+		BorrowerEntity borrowerEntity = new BorrowerEntity();
+		borrowerEntity.setBusinessNo(businessNo);
+		List<BorrowerEntity> borrows = borrowerService.list(borrowerEntity);
+		for (BorrowerEntity input : borrows) {
+			OrderDetailDto orderDto = BeanCopyUtils.convertObj(input, OrderDetailDto.class);
+			List<FileInfoEntity> list = getFileInfo(orderDto);
+			for (FileInfoEntity f: list) {
+				fileInfo.put(String.valueOf(f.getId()), f);
+			}
+		}
+
+		// 读取文件
+		MortgageEntity mortgageEntity = new MortgageEntity();
+		mortgageEntity.setBusinessNo(businessNo);
+
+		List<MortgageEntity> mortgage = mortgageService.list(mortgageEntity);
+		for (MortgageEntity input : mortgage) {
+			OrderDetailDto orderDto = BeanCopyUtils.convertObj(input, OrderDetailDto.class);
+			List<FileInfoEntity> list = getFileInfo(orderDto);
+			for (FileInfoEntity f: list) {
+				fileInfo.put(String.valueOf(f.getId()), f);
+			}
+		}
+		GuaranteeEntity guaranteeEntity = new GuaranteeEntity();
+
+		guaranteeEntity.setBusinessNo(businessNo);
+		List<GuaranteeEntity> guarantee = guaranteeService.list(guaranteeEntity);
+		for (GuaranteeEntity input : guarantee) {
+			OrderDetailDto orderDto = BeanCopyUtils.convertObj(input, OrderDetailDto.class);
+			List<FileInfoEntity> list = getFileInfo(orderDto);
+			for (FileInfoEntity f: list) {
+				fileInfo.put(String.valueOf(f.getId()), f);
+			}
+		}
+		return fileInfo;
+	}
+
 	@Override
 	public ResponseDTO<?> videoCall(String json) {
 
@@ -594,7 +687,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 			fileInfos = fileInfos.stream().sorted(Comparator.comparing(FileInfoEntity::getOrderBy))
 					.collect(Collectors.toList());
 			for (FileInfoEntity fileinfo : fileInfos) {
-				String path =  FileUploadUtil.getFileUrl(fileinfo.getPath()) ;
+				String path = FileUploadUtil.getFileUrl(fileinfo.getPath());
 				imageList.add(path);
 			}
 		}
@@ -602,7 +695,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		return imageList;
 	}
 
-	public List<Integer> toIntList(String[] array) {
+	public static List<Integer> toIntList(String[] array) {
 		Integer[] intArray = Arrays.stream(array).mapToInt(Integer::parseInt).boxed().toArray(Integer[]::new);
 		return Arrays.asList(intArray);
 	}
@@ -650,7 +743,8 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 
 		// 查询主订单,如果状态是驳回,查询驳回原因
 		NotaryOrderEntity orderEntity = null;
-		if (user.getStatus() != null && user.getStatus().equals(StatusEnum.NotaryStatusEnum.REJECT.getStatus().toString())) {
+		if (user.getStatus() != null
+				&& user.getStatus().equals(StatusEnum.NotaryStatusEnum.REJECT.getStatus().toString())) {
 			QueryWrapper<NotaryOrderEntity> notaryOrder = new QueryWrapper<>();
 			notaryOrder.eq("business_no", user.getBusinessNo());
 			notaryOrder.eq("status", StatusEnum.NotaryStatusEnum.REJECT.getStatus());
@@ -726,6 +820,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 		}
 		return list;
 	}
+
 	@Override
 	public Object parseOrder(String orderType, MultipartFile file, SysUserEntity user) {
 		BankEntity bank = bankMapper.selectById(user.getOrgId().split("_")[1]);
@@ -749,7 +844,7 @@ public class OrderServiceImpl extends ServiceImpl<NotaryOrderMapper, NotaryOrder
 
 	public static void main(String[] args) {
 		String orgId = "bank_7";
-		System.out.println(orgId.split("_")[1]);
+		System.out.println(orgId.split(","));
 		;
 	}
 }

+ 61 - 3
eladmin-system/src/main/java/me/zhengjie/base/chain/CochainService.java

@@ -13,6 +13,7 @@ import cn.hutool.crypto.digest.HmacAlgorithm;
 import cn.hutool.http.HttpUtil;
 import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.base.util.UUIDGenerator;
+import me.zhengjie.dao.mybatis.entity.CochainLogEntity;
 
 @Slf4j
 @Component
@@ -67,9 +68,7 @@ public class CochainService {
 			JSONObject content = new JSONObject();
 			content.put("content", base64encodedString);
 			content.put("signature", sha);
-			String body = HttpUtil.createPost(url)
-					.contentType("application/json")
-					.body(content.toJSONString())
+			String body = HttpUtil.createPost(url).contentType("application/json").body(content.toJSONString())
 					.execute().body();
 			System.out.println(body);
 		} catch (Exception e) {
@@ -78,4 +77,63 @@ public class CochainService {
 		}
 
 	}
+
+	public String sendRequest(CochainLogEntity chainLog, 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();
+		value.put("platCode", APP_ID);
+		value.put("bisCode", chainLog.getBisCode());
+		value.put("type", "file");
+		value.put("length", size);
+		value.put("time", String.valueOf(new Date().getTime()));
+		value.put("supply", new Object());
+		String key=UUIDGenerator.uuid();
+		data.put("app_id", APP_ID);
+		data.put("key",key);
+		chainLog.setSha1Code(key);
+		data.put("value", value);
+		// 请求接口地址
+		String url = "http://221.6.10.202:10119/cochain";
+
+		// 使用基本编码
+		String json = JSON.toJSONString(data);
+		chainLog.setReqParam(json);
+		String base64encodedString = Base64.encode(json);
+
+		String sha = sha1_HMAC(base64encodedString);
+		JSONObject content = new JSONObject();
+		content.put("content", base64encodedString);
+		content.put("signature", sha);
+		String body = HttpUtil.createPost(url).contentType("application/json").body(content.toJSONString()).execute()
+				.body();
+		chainLog.setResContent(body);
+		// 判断状态
+		JSONObject jsonObj = JSONObject.parseObject(body);
+		int status = jsonObj.getIntValue("status");
+		if (status == 200) {
+			chainLog.setStatus("1");
+		} else {
+			chainLog.setStatus("0");
+		}
+		return body;
+
+	}
 }

+ 1 - 1
eladmin-system/src/main/java/me/zhengjie/base/plus/AbstractService.java

@@ -186,7 +186,7 @@ public interface AbstractService<T> extends IService<T> {
 	 * @return void 返回参数说明
 	 * @exception/throws
 	 */
-	default QueryWrapper<T> convertQuery(T obj) {
+	 default QueryWrapper<T> convertQuery(T obj) {
 
 		QueryWrapper<T> queryWrapper = new QueryWrapper<>();
 		Class<?> clazz = obj.getClass();

+ 9 - 1
eladmin-system/src/main/java/me/zhengjie/base/util/FileUploadUtil.java

@@ -555,5 +555,13 @@ public class FileUploadUtil {
 		return fileKey;
 
 	}
-	 
+	public static long getSize(String keyName) {
+		try {
+			return fileHandle.getSize(keyName);
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+			return 0;
+		}
+	}
 }

+ 74 - 168
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/entity/CochainLogEntity.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
+import lombok.Getter;
+import lombok.Setter;
 import lombok.ToString;
 
 import java.io.Serializable;
@@ -20,175 +22,79 @@ import java.time.LocalDateTime;
  */
 @TableName("cochain_log")
 @ToString
+@Getter
+@Setter
 public class CochainLogEntity implements Serializable {
 
-    private static final long serialVersionUID = 1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    /**
-     * 业务编号
-     */
-    @TableField("business_no")
-    private String businessNo;
-
-    /**
-     * 业务编号
-     */
-    @TableField("order_id")
-    private String orderId;
-
-    /**
-     * 文件路径
-     */
-    @TableField("file_path")
-    private String filePath;
-
-    /**
-     * 每一条请求的流水
-     */
-    @TableField("bis_code")
-    private String bisCode;
-
-    /**
-     * 文件sha的值
-     */
-    @TableField("sha1_code")
-    private String sha1Code;
-
-    /**
-     * 请求参数
-     */
-    @TableField("req_param")
-    private String reqParam;
-
-    /**
-     * 返回的参数内容
-     */
-    @TableField("res_content")
-    private String resContent;
-
-    /**
-     * 1:图片,2:pdf,3:视频
-     */
-    @TableField("type")
-    private String type;
-
-    /**
-     * 调用成功0:是失败1:是成功
-     */
-    @TableField("is_call")
-    private String isCall;
-
-    /**
-     * 创建时间
-     */
-    @TableField("create_time")
-    private LocalDateTime createTime;
-
-    /**
-     * 更新时间
-     */
-    @TableField("update_time")
-    private LocalDateTime updateTime;
-
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public String getBusinessNo() {
-        return businessNo;
-    }
-
-    public void setBusinessNo(String businessNo) {
-        this.businessNo = businessNo;
-    }
-
-    public String getOrderId() {
-        return orderId;
-    }
-
-    public void setOrderId(String orderId) {
-        this.orderId = orderId;
-    }
-
-    public String getFilePath() {
-        return filePath;
-    }
-
-    public void setFilePath(String filePath) {
-        this.filePath = filePath;
-    }
-
-    public String getBisCode() {
-        return bisCode;
-    }
-
-    public void setBisCode(String bisCode) {
-        this.bisCode = bisCode;
-    }
-
-    public String getSha1Code() {
-        return sha1Code;
-    }
-
-    public void setSha1Code(String sha1Code) {
-        this.sha1Code = sha1Code;
-    }
-
-    public String getReqParam() {
-        return reqParam;
-    }
-
-    public void setReqParam(String reqParam) {
-        this.reqParam = reqParam;
-    }
-
-    public String getResContent() {
-        return resContent;
-    }
-
-    public void setResContent(String resContent) {
-        this.resContent = resContent;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public String getIsCall() {
-        return isCall;
-    }
-
-    public void setIsCall(String isCall) {
-        this.isCall = isCall;
-    }
+	private static final long serialVersionUID = 1L;
+
+	@TableId(value = "id", type = IdType.AUTO)
+	private Integer id;
+
+	/**
+	 * 业务编号
+	 */
+	@TableField("business_no")
+	private String businessNo;
+
+	/**
+	 * 业务编号
+	 */
+	@TableField("order_id")
+	private String orderId;
+
+	/**
+	 * 文件路径
+	 */
+	@TableField("file_path")
+	private String filePath;
+
+	/**
+	 * 每一条请求的流水
+	 */
+	@TableField("bis_code")
+	private String bisCode;
+
+	/**
+	 * 文件sha的值
+	 */
+	@TableField("sha1_code")
+	private String sha1Code;
+
+	/**
+	 * 请求参数
+	 */
+	@TableField("req_param")
+	private String reqParam;
+
+	/**
+	 * 返回的参数内容
+	 */
+	@TableField("res_content")
+	private String resContent;
+
+	/**
+	 *  
+	 */
+	@TableField("image_id")
+	private String imageId;
+
+	/**
+	 * 调用成功0:是失败1:是成功
+	 */
+	@TableField("status")
+	private String status;
+
+	/**
+	 * 创建时间
+	 */
+	@TableField("create_time")
+	private LocalDateTime createTime;
+
+	/**
+	 * 更新时间
+	 */
+	@TableField("update_time")
+	private LocalDateTime updateTime;
 
-    public LocalDateTime getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(LocalDateTime createTime) {
-        this.createTime = createTime;
-    }
-
-    public LocalDateTime getUpdateTime() {
-        return updateTime;
-    }
-
-    public void setUpdateTime(LocalDateTime updateTime) {
-        this.updateTime = updateTime;
-    }
-
-  
 }

+ 16 - 7
eladmin-system/src/main/java/me/zhengjie/dao/mybatis/entity/OrderCochainEntity.java

@@ -8,6 +8,7 @@ import me.zhengjie.base.plus.QueryKeyword;
 import me.zhengjie.base.plus.QueryWapper;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 
 @Getter
 @Setter
@@ -25,15 +26,23 @@ public class OrderCochainEntity implements Serializable {
 	/**
 	 * 业务编号
 	 */
+	@QueryWapper(value=QueryKeyword.LIKE)
 	@TableField("business_no")
-	@QueryWapper(QueryKeyword.IN)
 	private String businessNo;
 	/**
-	 * 调用成功0:是失败1:是成功
+	 * 调用成功0:没有调用,1是调用成功,2是调用失败
 	 */
-	@QueryWapper(QueryKeyword.ASC)
-	
-	@TableField("is_call")
-	private String isCall;
-
+	@TableField("status")
+	private String status;
+	/**
+	 * 创建时间
+	 */
+	@QueryWapper(value=QueryKeyword.DESC)
+	@TableField("create_time")
+	private LocalDateTime createTime;
+	/**
+	 * 更新时间
+	 */
+	@TableField("update_time")
+	private LocalDateTime updateTime;
 }

+ 193 - 0
eladmin-system/src/main/resources/config/application-nt.yml

@@ -0,0 +1,193 @@
+#配置数据源
+server:
+  port: 8000
+spring:
+  mvc:
+    static-path-pattern: /image/**
+  resources:
+    static-locations: file:/image/,file:/image/
+  datasource:
+    druid:
+      db-type: com.alibaba.druid.pool.DruidDataSource
+      driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
+      url: jdbc:log4jdbc:mysql://${DB_HOST:114.55.230.80}:${DB_PORT:3306}/${DB_NAME:eladmin}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&autoReconnect=true&failOverReadOnly=false
+      username: ${DB_USER:root}
+      password: ${DB_PWD:QopraffaQWPRPPR123}
+      # 初始连接数
+      initial-size: 5
+      # 最小连接数
+      min-idle: 15
+      # 最大连接数
+      max-active: 30
+      # 超时时间(以秒数为单位)
+      remove-abandoned-timeout: 180
+      # 获取连接超时时间
+      max-wait: 3000
+      # 连接有效性检测时间
+      time-between-eviction-runs-millis: 30000
+      # 连接在池中最小生存的时间
+      min-evictable-idle-time-millis: 30000
+      # 连接在池中最大生存的时间
+      max-evictable-idle-time-millis: 30000
+      # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
+      test-while-idle: true
+      # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
+      test-on-borrow: true
+      # 是否在归还到池中前进行检验
+      test-on-return: false
+      # 检测连接是否有效
+      validation-query: select 1
+      # 配置监控统计
+      webStatFilter:
+        enabled: true
+      stat-view-servlet:
+        enabled: true
+        url-pattern: /druid/*
+        reset-enable: false
+      filter:
+        stat:
+          enabled: true
+          # 记录慢SQL
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+  redis:
+    #数据库索引
+    database: 0
+    host: 127.0.0.1
+    port: 6379
+    password: 123qysd!@#
+    #连接超时时间
+    timeout: 5000
+# 登录相关配置
+login:
+  # 登录缓存
+  cache-enable: true
+  #  是否限制单用户登录
+  single-login: false
+  #  验证码
+  login-code:
+    #  验证码类型配置 查看 LoginProperties 类
+    code-type: arithmetic
+    #  登录图形验证码有效时间/分钟
+    expiration: 2
+    #  验证码高度
+    width: 111
+    #  验证码宽度
+    height: 36
+    # 内容长度
+    length: 2
+    # 字体名称,为空则使用默认字体
+    font-name:
+    # 字体大小
+    font-size: 25
+
+#jwt
+jwt:
+  header: Authorization
+  # 令牌前缀
+  token-start-with: Bearer
+  # 必须使用最少88位的Base64对该令牌进行编码
+  base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
+  # 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
+  token-validity-in-seconds: 14400000
+  # 在线用户key
+  online-key: online-token-
+  # 验证码
+  code-key: code-key-
+  # token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
+  detect: 1800000
+  # 续期时间范围,默认1小时,单位毫秒
+  renew: 3600000
+
+#是否允许生成代码,生产环境设置为false
+generator:
+  enabled: false
+
+#如果生产环境要开启swagger,需要配置请求地址
+#springfox:
+#  documentation:
+#    swagger:
+#      v2:
+#        host: # 接口域名或外网ip
+
+#是否开启 swagger-ui
+swagger:
+  enabled: false
+
+mybatis-plus:
+  configuration:
+    map-underscore-to-camel-case: true
+    auto-mapping-behavior: full
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+  mapper-locations: classpath*:mapper/*Mapper.xml
+#  type-aliases-package: com.tcpp.FqNotarize.entity
+  global-config:
+    # 逻辑删除配置
+    db-config:
+      # 删除前
+      logic-not-delete-value: 1
+      # 删除后
+      logic-delete-value: 0    
+
+# IP 本地解析
+ip:
+  local-parsing: true
+
+# 文件存储路径
+file:
+  mac:
+    path: ~/file/
+    avatar: ~/avatar/
+  linux:
+    path: /home/eladmin/file/
+    avatar: /home/eladmin/avatar/
+  windows:
+    path: C:\eladmin\file\
+    avatar: C:\eladmin\avatar\
+  # 文件大小 /M
+  maxSize: 100
+  avatarMaxSize: 5
+
+app:
+  background:
+    picture: https://flowbb.show.xjrkj.com/image/logo/83d9449f4e02459da1661bafdf08b86a_8.png
+  image:
+    url: https://flowbb.show.xjrkj.com/image/
+  upload:
+    path: /image/
+  host:
+    domain: https://flowbb.show.xjrkj.com/
+  push:
+    port: 8089
+  minio:
+    accesskey: minioadmin
+    secretkey: minioadmin
+    url: http://124.222.192.60:9000
+    bucketName: mytest    
+    preview: https://flowbb.show.xjrkj.com
+tencent:
+  client:
+    webankAppId: TIDAdW8e
+    secret: 34mhXRkury4DCFZpXCQ9E1fr7KUAPTiXTVac6H6e4pvxYMo5jl1m7sehQUqsmwsQ
+    keyLicence: ZNjSJAs5nqb0OJR7SXGj8b8Jr8GZuhkIiLceBA1rp/UZ/X8nHbYzfNGkyhXLuTG82QzHIiNxixrzc7zWFcRyxiIIhglIxi0zZDD9nSQsXrHlMJMC3EUXarN9tp5QX0X2dS38gsi+F1TIigfHqxj39iX43wAO4KOfZekBIPNPA2Vb/AjlWnsTbOZCVwANXXwcKsCYiZJrbQlxGlxF9bfXEuhJgILJGQ2iT74wJ/Qn4qRraiyaYzi0Un44C24Y44pbYX4kEokvVQaPnClnAnMH98l8w0VIxPc2lH5io0ATpoPMoZGWKtICVPzrvpaMwjaPlyBzZ/qWwc5jeS+ySxwJyA==
+  bank:
+    webankAppId: TIDAa18H
+    secret: vyzhltzExvtpU3O0wiSveww6DVxQ3EvV5RGdM5U8Jpp2BoL059ahJ4U76jMSvouT
+    keyLicence: Jpzb+BHO3aJ3FSjhsnXS43gHs20FSljKz0lthOlVhURvlePnisObmeO5EJjCXgZeZgo9KpJyADz4dcQREVAzuaxRPmhAx4ljpmZeVizNQWuxzLnDAGy8UgFzpAdCBemWrfTTt9f56JFRLdpmmMweyImHa4rDxLbdqqvXuiQLoaIvthbJLu3LO7mNscNkSn8xdhqqgIjX8DfroC99ykff8f7QTcK38iLjGQeI8sY79YY1a++Op5xpvfYZXm2Wdb6hI+rB+ndkWPNpPyP4f2m3/lkEvEMpoKOldQ7ebJQkTigDMvQ1pdBnYTrVVZKQgJ5nDSSVobYcxN2EZxeco9k/7A==
+    
+xxl:
+  job:
+    accessToken: Easd123%&$@#kllsdfPO[JasdfF
+    admin:
+      addresses: http://127.0.0.1:8080/xxl-job-admin
+    executor:
+      appname: eladmindev-xxl-job-executor
+      address:
+      ip:
+      port: 9999
+      logpath: /Users/sakuya/applogs/xxl-job/jobhandler
+      logretentiondays: 30

+ 13 - 5
ubuntu.txt

@@ -1,10 +1,10 @@
 所有的软件的路径:
-参考mysql的安装博客:http://archive.ubuntu.com/ubuntu/pool/universe/m/mecab/libmecab2_0.996-1.2ubuntu1_amd64.deb
+参考mysql的安装博客:https://blog.csdn.net/emergencysun/article/details/124229238
 如果权限不足请在命令前面加sudo 
 安装mysql
       将下列4个已下载文件拷贝至服务器 /home/myuser/soft 目录
 	  mysql-server_5.7.34-1ubuntu18.04_amd64.deb-bundle.tar
-	  ibtinfo5_6.2-0ubuntu2_amd64.deb
+	  libtinfo5_6.2-0ubuntu2_amd64.deb
 	  libmecab2_0.996-1.2ubuntu1_amd64.deb
 	  libaio1_0.3.110-2_amd64.deb
   1.安装依赖包,依次执行命令:
@@ -39,7 +39,7 @@
 	use mysql   		    //选择访问mysql库
 	update user set host = '%' where user = 'root'; 		//使root能再任何host访问
 	FLUSH PRIVILEGES;      //刷新
- 	netstat -atnpl|grep 3306 查看端口是否开放
+ 	netstat -atnpl|grep 3306  查看端口是否开放
  	查看mysql的依赖
  	dpkg --list|grep mysql
  	关闭mysql的服务  service mysql stop 需要输入系统的密码
@@ -50,6 +50,7 @@
          解压缩到该目录      
    	sudo tar -zxvf jdk-8u212-linux-x64.tar.gz -C /usr/local/java
      修改环境变量
+     sudo vim /etc/profile 
      在末尾追加下面内容,保存退出:  
    #set  jdk environment
 	export JAVA_HOME=/usr/local/java/jdk1.8.0_212
@@ -84,11 +85,11 @@
      切换到redis的bin路径
   cd /usr/local/redis/bin  
      启动redis
-	  ./redis-server ../conf/redis.conf
+	 sudo ./redis-server ../conf/redis.conf
      查看是否启动成功
 	 ps -ef|grep redis
      启动哨兵模式:
-	  ./redis-sentinel ../conf/sentinel.conf
+	 sudo ./redis-sentinel ../conf/sentinel.conf
     检查哨兵是否启动成功
 	  ps -ef|grep redis-sentinel    
      密码设置为123qysd!@#    
@@ -116,6 +117,13 @@
 		into the system, or build the OpenSSL library statically from the source
 		with nginx by using --with-openssl=<path> option.  
 	  在线安装 sudo apt-get install openssl libssl-dev   
+	  出现如下错误时是 zlib1g-dev没有安装
+	  ./configure: error: the HTTP gzip module requires the zlib library.
+		You can either disable the module by using --without-http_gzip_module
+		option, or install the zlib library into the system, or build the zlib library
+		statically from the source with nginx by using --with-zlib=<path> option.
+	  在线安装 sudo apt-get install sudo apt-get install zlib1g-dev
+	  
 	  配置好之后部署安装路径:
 	  sudo make 
 	 将文件安装到指定目录