提交 5efb14ae 作者: xiaowang

合同签署

上级 bfbf58e6
...@@ -29,4 +29,10 @@ public class ContractVO implements Serializable { ...@@ -29,4 +29,10 @@ public class ContractVO implements Serializable {
@ApiModelProperty(value = "合同标题") @ApiModelProperty(value = "合同标题")
@NotNull(message = "合同标题不能为空") @NotNull(message = "合同标题不能为空")
private String title; private String title;
@ApiModelProperty(value = "端口:0小程序 1后台")
private Integer port;
@ApiModelProperty(value = "unionId", hidden = true)
private String unionId;
} }
...@@ -25,6 +25,4 @@ public class SealVO implements Serializable { ...@@ -25,6 +25,4 @@ public class SealVO implements Serializable {
private String unionId; private String unionId;
@ApiModelProperty(value = "端口:0小程序 1后台") @ApiModelProperty(value = "端口:0小程序 1后台")
private Integer port; private Integer port;
@ApiModelProperty(value = "印章状态 0非默认 1默认")
private Integer sealStatus;
} }
...@@ -28,9 +28,7 @@ public class FddConstant { ...@@ -28,9 +28,7 @@ public class FddConstant {
//小程序企业实名认证异步回调 //小程序企业实名认证异步回调
public static final String NOTIFY_E_CERT_RES = "fdd/notifyECertRes"; public static final String NOTIFY_E_CERT_RES = "fdd/notifyECertRes";
//签署合同异步回调 //签署合同异步回调
public static final String NOTIFY_STAMP = "fddservlet/contract/notifyStamp"; public static final String NOTIFY_STAMP = "fdd/contract/notifyStamp";
public static final String UAV_NOTIFY_STAMP = "fddservlet/uav/contract/notifyStamp";
public static final String APP_ID = "appId"; public static final String APP_ID = "appId";
......
...@@ -7,17 +7,19 @@ import com.mmc.iuav.user.service.fdd.ContractService; ...@@ -7,17 +7,19 @@ import com.mmc.iuav.user.service.fdd.ContractService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/** /**
* @Author LW * @Author LW
* @date 2022/9/5 14:31 * @date 2022/9/5 14:31
* 概要: * 概要:
*/ */
@Api(tags = {"无人机城--合同管理" }) @Api(tags = {"合同管理"})
@RestController @RestController
@RequestMapping("/uav/contract/") @RequestMapping("/contract/")
public class ContractController extends BaseController { public class ContractController extends BaseController {
@Autowired @Autowired
private ContractService contractService; private ContractService contractService;
...@@ -26,7 +28,7 @@ public class ContractController extends BaseController { ...@@ -26,7 +28,7 @@ public class ContractController extends BaseController {
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/uploadContract") @PostMapping("/uploadContract")
public ResultBody uploadContract(@RequestBody ContractVO param, HttpServletRequest request) { public ResultBody uploadContract(@RequestBody ContractVO param, HttpServletRequest request) {
return contractService.uploadContract(param, this.getUserLoginInfoFromRedis(request).getUserAccountId()); return contractService.uploadContract(param, this.getUserLoginInfoFromRedis(request));
} }
@ApiOperation(value = "合同预览") @ApiOperation(value = "合同预览")
...@@ -51,14 +53,14 @@ public class ContractController extends BaseController { ...@@ -51,14 +53,14 @@ public class ContractController extends BaseController {
HttpServletRequest request, @ApiParam(value = "端口:0小程序 1后台") @RequestParam(value = "port") Integer port) { HttpServletRequest request, @ApiParam(value = "端口:0小程序 1后台") @RequestParam(value = "port") Integer port) {
return contractService.stamp(contractId, this.getUserLoginInfoFromRedis(request), pages, port); return contractService.stamp(contractId, this.getUserLoginInfoFromRedis(request), pages, port);
} }
//
// @ApiOperation(value = "异步处理手动签署信息") @ApiOperation(value = "异步处理手动签署信息")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
// @PostMapping("notifyStamp") @PostMapping("notifyStamp")
// @ApiIgnore @ApiIgnore
// public ResultBody notifyStamp(@RequestParam Map<String, String> map) { public ResultBody notifyStamp(@RequestParam Map<String, String> map) {
// return uavContractManageService.notifyStamp(map); return contractService.notifyStamp(map);
// } }
// //
// @ApiOperation(value = "合同签署信息-条件查询") // @ApiOperation(value = "合同签署信息-条件查询")
// @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) // @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
......
...@@ -6,6 +6,7 @@ import com.mmc.iuav.user.model.fdd.dto.FddVerifyInfoDTO; ...@@ -6,6 +6,7 @@ import com.mmc.iuav.user.model.fdd.dto.FddVerifyInfoDTO;
import com.mmc.iuav.user.model.fdd.dto.UserFddDTO; import com.mmc.iuav.user.model.fdd.dto.UserFddDTO;
import com.mmc.iuav.user.model.fdd.resp.CompanyVerifyResp; import com.mmc.iuav.user.model.fdd.resp.CompanyVerifyResp;
import com.mmc.iuav.user.model.fdd.resp.PersonVerifyResp; import com.mmc.iuav.user.model.fdd.resp.PersonVerifyResp;
import com.mmc.iuav.user.service.fdd.FddService;
import com.mmc.iuav.user.service.fdd.UserFddAuthService; import com.mmc.iuav.user.service.fdd.UserFddAuthService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -19,7 +20,7 @@ import java.util.Map; ...@@ -19,7 +20,7 @@ import java.util.Map;
* @author:lw Date:2022/9/1 * @author:lw Date:2022/9/1
* time:15:44 * time:15:44
*/ */
@Api(tags = {"fdd用户认证" }) @Api(tags = {"fdd用户认证"})
@RestController @RestController
@RequestMapping("/fdd/") @RequestMapping("/fdd/")
public class UserFddAuthController extends BaseController { public class UserFddAuthController extends BaseController {
...@@ -27,6 +28,9 @@ public class UserFddAuthController extends BaseController { ...@@ -27,6 +28,9 @@ public class UserFddAuthController extends BaseController {
@Autowired @Autowired
private UserFddAuthService userFddAuthService; private UserFddAuthService userFddAuthService;
@Autowired
private FddService fddService;
@ApiOperation(value = "注册法大大账号") @ApiOperation(value = "注册法大大账号")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = String.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = String.class)})
@ApiIgnore @ApiIgnore
...@@ -49,6 +53,13 @@ public class UserFddAuthController extends BaseController { ...@@ -49,6 +53,13 @@ public class UserFddAuthController extends BaseController {
return userFddAuthService.getCompanyVerifyUrl(port, this.getUserLoginInfoFromRedis(request)); return userFddAuthService.getCompanyVerifyUrl(port, this.getUserLoginInfoFromRedis(request));
} }
@ApiOperation(value = "申请实名证书")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = String.class)})
@GetMapping("getApplyCert")
public String getApplyCert(@RequestParam String customerId, @RequestParam String transactionNo) {
return fddService.getApplyCert(customerId, transactionNo);
}
@ApiOperation(value = "异步处理企业实名认证") @ApiOperation(value = "异步处理企业实名认证")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)}) @ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@ApiIgnore @ApiIgnore
......
...@@ -18,7 +18,7 @@ public interface ContractDao { ...@@ -18,7 +18,7 @@ public interface ContractDao {
*/ */
void insertUavContractInfo(ContractInfoDO uavContractInfoDO); void insertUavContractInfo(ContractInfoDO uavContractInfoDO);
ContractInfoDO contractInfoByOrderNo(String orderNo); ContractInfoDO contractInfoByOrderNo(String orderNo, String contractNo);
void deleteContractInfo(String orderNo); void deleteContractInfo(String orderNo);
} }
...@@ -23,7 +23,7 @@ public class ContractInfoDO implements Serializable { ...@@ -23,7 +23,7 @@ public class ContractInfoDO implements Serializable {
/** /**
* 发起合同方用户id * 发起合同方用户id
*/ */
private Integer userAccountId; private String unionId;
/** /**
* 订单号 * 订单号
*/ */
...@@ -37,7 +37,7 @@ public class ContractInfoDO implements Serializable { ...@@ -37,7 +37,7 @@ public class ContractInfoDO implements Serializable {
*/ */
private String contractTitle; private String contractTitle;
/** /**
* 状态: 0、等待(买家/供应商)签署 1、(买家/供应商)签署失败 2、等待平台签署((买家/供应商)签署成功) 3、平台签署失败 4、平台签署成功、5、归档 * 状态: 0、等待平台签署1、平台签署失败 2、等待(买家/供应商)签署(平台签署成功) 3、(买家/供应商)签署失败 4、(买家/供应商)签署成功、5、归档
*/ */
private Integer signStatus; private Integer signStatus;
/** /**
...@@ -45,19 +45,19 @@ public class ContractInfoDO implements Serializable { ...@@ -45,19 +45,19 @@ public class ContractInfoDO implements Serializable {
*/ */
private Date singerTime; private Date singerTime;
/** /**
* (买家/供应商)签署失败备注信息 * 平台签署失败备注信息
*/ */
private String aRemark; private String aRemark;
/** /**
* 平台签署失败备注信息 * (买家/供应商)签署失败备注信息
*/ */
private String bRemark; private String bRemark;
/** /**
* (买家/供应商)签署交易号 * 平台签署交易号
*/ */
private String aTransactionId; private String aTransactionId;
/** /**
* 平台签署交易号 * (买家/供应商)签署交易号
*/ */
private String bTransactionId; private String bTransactionId;
......
...@@ -4,6 +4,8 @@ import com.mmc.iuav.response.ResultBody; ...@@ -4,6 +4,8 @@ import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.fdd.vo.ContractVO; import com.mmc.iuav.user.model.fdd.vo.ContractVO;
import java.util.Map;
/** /**
* @Author LW * @Author LW
* @date 2022/9/5 14:38 * @date 2022/9/5 14:38
...@@ -17,7 +19,7 @@ public interface ContractService { ...@@ -17,7 +19,7 @@ public interface ContractService {
* @param id * @param id
* @return * @return
*/ */
ResultBody uploadContract(ContractVO param, Integer id); ResultBody uploadContract(ContractVO param, LoginSuccessDTO loginSuccessDTO);
ResultBody viewContract(String contractId); ResultBody viewContract(String contractId);
...@@ -25,36 +27,13 @@ public interface ContractService { ...@@ -25,36 +27,13 @@ public interface ContractService {
ResultBody stamp(String contractId, LoginSuccessDTO loginSuccessDTO, String pages, Integer port); ResultBody stamp(String contractId, LoginSuccessDTO loginSuccessDTO, String pages, Integer port);
// /** /**
// * 预览合同 * 异步回调
// * @param contractId *
// * @return * @param map
// */ * @return
// ResultBody viewContract(String contractId); */
// ResultBody notifyStamp(Map<String, String> map);
// /**
// * 下载合同
// * @param contractId
// * @return
// */
// String downloadContract(String contractId);
//
// /**
// * 手动签署
// * @param contractId
// * @param id
// * @param unionId
// * @param pages
// * @return
// */
// ResultBody stamp(String contractId, Integer id,String unionId,String pages);
//
// /**
// * 异步回调
// * @param map
// * @return
// */
// ResultBody notifyStamp(Map<String, String> map);
// //
// /** // /**
// * 选择列表 // * 选择列表
......
...@@ -23,4 +23,6 @@ public interface SealManageService { ...@@ -23,4 +23,6 @@ public interface SealManageService {
ResultBody getSealInfo(String signatureId, Integer port, LoginSuccessDTO loginSuccessDTO); ResultBody getSealInfo(String signatureId, Integer port, LoginSuccessDTO loginSuccessDTO);
ResultBody editSealName(String signatureId, Integer port, LoginSuccessDTO loginSuccessDTO, String sealName); ResultBody editSealName(String signatureId, Integer port, LoginSuccessDTO loginSuccessDTO, String sealName);
ResultBody checkAuthStatus(Integer port, LoginSuccessDTO loginSuccessDTO);
} }
...@@ -3,23 +3,29 @@ package com.mmc.iuav.user.service.fdd.impl; ...@@ -3,23 +3,29 @@ package com.mmc.iuav.user.service.fdd.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fadada.sdk.base.client.FddBaseClient; import com.fadada.sdk.base.client.FddBaseClient;
import com.fadada.sdk.base.model.req.DownloadPdfParams; import com.fadada.sdk.base.model.req.DownloadPdfParams;
import com.fadada.sdk.base.model.req.ExtSignParams;
import com.fadada.sdk.base.model.req.UploadDocsParams; import com.fadada.sdk.base.model.req.UploadDocsParams;
import com.fadada.sdk.base.model.req.ViewPdfURLParams; import com.fadada.sdk.base.model.req.ViewPdfURLParams;
import com.fadada.sdk.utils.crypt.FddEncryptTool; import com.fadada.sdk.utils.crypt.FddEncryptTool;
import com.mmc.iuav.general.CodeUtil; import com.mmc.iuav.general.CodeUtil;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.response.ResultEnum;
import com.mmc.iuav.user.constant.fdd.FddConnectConstant; import com.mmc.iuav.user.constant.fdd.FddConnectConstant;
import com.mmc.iuav.user.constant.fdd.FddConstant; import com.mmc.iuav.user.constant.fdd.FddConstant;
import com.mmc.iuav.user.dao.fdd.ContractDao; import com.mmc.iuav.user.dao.fdd.ContractDao;
import com.mmc.iuav.user.entity.fdd.ContractInfoDO; import com.mmc.iuav.user.entity.fdd.ContractInfoDO;
import com.mmc.iuav.user.entity.fdd.UserFddDO;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.fdd.vo.ContractVO; import com.mmc.iuav.user.model.fdd.vo.ContractVO;
import com.mmc.iuav.user.service.fdd.ContractService; import com.mmc.iuav.user.service.fdd.ContractService;
import com.mmc.iuav.user.service.fdd.SealManageService;
import com.mmc.iuav.user.util.TDateUtil; import com.mmc.iuav.user.util.TDateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Map;
import java.util.UUID;
/** /**
* @Author LW * @Author LW
...@@ -31,19 +37,22 @@ import javax.annotation.Resource; ...@@ -31,19 +37,22 @@ import javax.annotation.Resource;
public class ContractServiceImpl implements ContractService { public class ContractServiceImpl implements ContractService {
@Resource @Resource
ContractDao contractDao; ContractDao contractDao;
@Resource
SealManageService sealManageService;
/** /**
* 上传合同 * 上传合同
* *
* @param param * @param param
* @param id
* @return * @return
*/ */
@Override @Override
public ResultBody uploadContract(ContractVO param, Integer id) { public ResultBody uploadContract(ContractVO param, LoginSuccessDTO loginSuccessDTO) {
ResultBody resultBody = sealManageService.checkAuthStatus(param.getPort(), loginSuccessDTO);
UserFddDO userFddDO = (UserFddDO) resultBody.getResult();
FddBaseClient baseClient = new FddBaseClient(FddConnectConstant.APP_ID, FddConnectConstant.APP_KEY, FddConnectConstant.VERSION, FddConnectConstant.HOST); FddBaseClient baseClient = new FddBaseClient(FddConnectConstant.APP_ID, FddConnectConstant.APP_KEY, FddConnectConstant.VERSION, FddConnectConstant.HOST);
// 查询这个订单号之前有没有上传过合同有的话就删除 // 查询这个订单号之前有没有上传过合同有的话就删除
ContractInfoDO contractInfoDO = contractDao.contractInfoByOrderNo(param.getOrderNo()); ContractInfoDO contractInfoDO = contractDao.contractInfoByOrderNo(param.getOrderNo(), null);
if (contractInfoDO != null) { if (contractInfoDO != null) {
// 把合同删除 // 把合同删除
contractDao.deleteContractInfo(param.getOrderNo()); contractDao.deleteContractInfo(param.getOrderNo());
...@@ -70,7 +79,7 @@ public class ContractServiceImpl implements ContractService { ...@@ -70,7 +79,7 @@ public class ContractServiceImpl implements ContractService {
contractInfo.setContractTitle(param.getTitle()); contractInfo.setContractTitle(param.getTitle());
contractInfo.setOrderNo(param.getOrderNo()); contractInfo.setOrderNo(param.getOrderNo());
contractInfo.setContractNo(contractId); contractInfo.setContractNo(contractId);
contractInfo.setUserAccountId(id); contractInfo.setUnionId(userFddDO.getUnionId());
contractDao.insertUavContractInfo(contractInfo); contractDao.insertUavContractInfo(contractInfo);
return ResultBody.success(contractInfo); return ResultBody.success(contractInfo);
} else { } else {
...@@ -105,6 +114,60 @@ public class ContractServiceImpl implements ContractService { ...@@ -105,6 +114,60 @@ public class ContractServiceImpl implements ContractService {
@Override @Override
public ResultBody stamp(String contractId, LoginSuccessDTO loginSuccessDTO, String pages, Integer port) { public ResultBody stamp(String contractId, LoginSuccessDTO loginSuccessDTO, String pages, Integer port) {
return null; ResultBody resultBody = sealManageService.checkAuthStatus(port, loginSuccessDTO);
UserFddDO userFddDO = (UserFddDO) resultBody.getResult();
// 获取合同信息
ContractInfoDO contractInfo = contractDao.contractInfoByOrderNo(null, contractId);
FddBaseClient baseClient = new FddBaseClient(FddConnectConstant.APP_ID, FddConnectConstant.APP_KEY, FddConnectConstant.VERSION, FddConnectConstant.HOST);
ExtSignParams params = new ExtSignParams();
String transactionId = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
//平台自定义唯一交易号
params.setTransactionId(transactionId);
//此处传入调用上传或填充合同接口成功时定义的合同编号
params.setContractId(contractId);
params.setCustomerId(userFddDO.getCustomerId());
params.setDocTitle(contractInfo.getContractTitle());
if (pages != null) {
params.setOpenEnvironment("1");
params.setReturnUrl(pages);
} else {
params.setOpenEnvironment("0");
}
params.setNotifyUrl(FddConnectConstant.MMC_URL + FddConstant.NOTIFY_STAMP);
params.setMobileSignType("0");
String result = baseClient.invokeExtSign(params);
// 将链接转成base64返回
String base64 = new String(FddEncryptTool.Base64Encode(result.getBytes())).trim();
ContractInfoDO updateContract = new ContractInfoDO();
updateContract.setContractNo(contractId);
if (contractInfo.getUnionId().equals(userFddDO.getUnionId())) {
updateContract.setATransactionId(transactionId);
} else {
updateContract.setBTransactionId(transactionId);
}
return ResultBody.success(base64);
}
@Override
public ResultBody notifyStamp(Map<String, String> map) {
log.info("合同签署异步回调返回数据,{}", map.toString());
String transactionId = map.get("transaction_id");// 交易号
String contractId = map.get("contract_id");// 合同编号
String resultCode = map.get("result_code");// 返回的code码
String resultDesc = map.get("result_desc");// 签章结果描述信息
String timestamp = map.get("timestamp");// 时间戳
String msgDigest = map.get("msg_digest");// 摘要
String sha1 = FddEncryptTool.sha1(FddConnectConstant.APP_KEY + transactionId);
try {
String md5 = FddEncryptTool.md5Digest(timestamp);
String outSha1 = FddEncryptTool.sha1(FddConnectConstant.APP_ID + md5 + sha1);
String base64 = new String(FddEncryptTool.Base64Encode(outSha1.getBytes())).trim();
if (!base64.equals(msgDigest)) {
return ResultBody.error(ResultEnum.NOT_FOUND);
}
} catch (Exception e) {
return ResultBody.error(ResultEnum.NOT_FOUND);
}
return ResultBody.success();
} }
} }
...@@ -52,21 +52,9 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -52,21 +52,9 @@ public class SealManageServiceImpl implements SealManageService {
@Override @Override
public ResultBody uploadSeal(SealVO sealVO, LoginSuccessDTO loginSuccessDTO) { public ResultBody uploadSeal(SealVO sealVO, LoginSuccessDTO loginSuccessDTO) {
// 判断当前用户是那个端口进来的用户,根据不同端口用户设置不同的unionId ResultBody resultBody = this.checkAuthStatus(sealVO.getPort(), loginSuccessDTO);
if (sealVO.getPort().equals(0)) { UserFddDO userFddInfo = (UserFddDO) resultBody.getResult();
UserAccountDO userInfo = userServiceDao.getUserAccountById(loginSuccessDTO.getUserAccountId()); sealVO.setUnionId(userFddInfo.getUnionId());
String uid = userFddAuthService.replaceUnableString(userInfo.getUnionId());
sealVO.setUnionId(uid);
} else {
sealVO.setUnionId(loginSuccessDTO.getUserAccountId().toString());
}
// 获取用户法大大的(实名/企业)认证信息
UserFddDO userFddInfo = userFddAuthDao.getAppUserFddInfo(sealVO.getUnionId());
if (userFddInfo == null) {
return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_ERROR);
} else if (!userFddInfo.getPersonVerifyStatus().equals(2) || !userFddInfo.getEntVerifyStatus().equals(4)) {
return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_NOT_PASS);
}
FddBaseClient baseClient = new FddBaseClient(FddConnectConstant.APP_ID, FddConnectConstant.APP_KEY, FddConnectConstant.VERSION, FddConnectConstant.HOST); FddBaseClient baseClient = new FddBaseClient(FddConnectConstant.APP_ID, FddConnectConstant.APP_KEY, FddConnectConstant.VERSION, FddConnectConstant.HOST);
AddSignatureParams params = new AddSignatureParams(); AddSignatureParams params = new AddSignatureParams();
//客户编号 //客户编号
...@@ -80,6 +68,8 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -80,6 +68,8 @@ public class SealManageServiceImpl implements SealManageService {
if (!JSONObject.parseObject(result).getString(FddConstant.CODE).equals(FddConstant.SUCCESS)) { if (!JSONObject.parseObject(result).getString(FddConstant.CODE).equals(FddConstant.SUCCESS)) {
return ResultBody.error(JSONObject.parseObject(result).getString(FddConstant.MSG)); return ResultBody.error(JSONObject.parseObject(result).getString(FddConstant.MSG));
} else { } else {
// 根据当前用户查询印章列表
getSealInfoListByUnionId(sealVO.getUnionId());
// 获取返回的印章编号 // 获取返回的印章编号
String dataStr = JSONObject.parseObject(result).getString(FddConstant.DATA); String dataStr = JSONObject.parseObject(result).getString(FddConstant.DATA);
String signatureId = JSONObject.parseObject(dataStr).getString(FddConstant.SIGNATURE_ID); String signatureId = JSONObject.parseObject(dataStr).getString(FddConstant.SIGNATURE_ID);
...@@ -87,7 +77,6 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -87,7 +77,6 @@ public class SealManageServiceImpl implements SealManageService {
sealInfoDO.setSealName(sealVO.getSealName()); sealInfoDO.setSealName(sealVO.getSealName());
sealInfoDO.setSignatureId(signatureId); sealInfoDO.setSignatureId(signatureId);
sealInfoDO.setUnionId(sealVO.getUnionId()); sealInfoDO.setUnionId(sealVO.getUnionId());
sealInfoDO.setSealStatus(sealVO.getSealStatus());
sealInfoDO.setSealUrl(sealVO.getSealUrl()); sealInfoDO.setSealUrl(sealVO.getSealUrl());
// 新增印章信息 // 新增印章信息
sealManageDao.insertSealInfo(sealInfoDO); sealManageDao.insertSealInfo(sealInfoDO);
...@@ -95,6 +84,18 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -95,6 +84,18 @@ public class SealManageServiceImpl implements SealManageService {
} }
} }
private void getSealInfoListByUnionId(String unionId) {
List<SealInfoDO> sealInfoList = sealManageDao.getSealInfoListByUnionId(unionId);
// 判断是否有状态是默认的章(默认:0 非默认:1)
List<Integer> sealIds = sealInfoList.stream()
.filter(d -> d.getSealStatus() == 1)
.map(SealInfoDO::getId).collect(Collectors.toList());
// 将默认章的状态进行更换
if (sealIds.size() > 0) {
sealManageDao.updateSealStatusById(sealIds);
}
}
@Override @Override
public PageResult getSealInfoList(SealInfoVO param, LoginSuccessDTO loginSuccessDTO) { public PageResult getSealInfoList(SealInfoVO param, LoginSuccessDTO loginSuccessDTO) {
if (param.getPort().equals(0)) { if (param.getPort().equals(0)) {
...@@ -133,6 +134,7 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -133,6 +134,7 @@ public class SealManageServiceImpl implements SealManageService {
} }
@Override
@Transactional @Transactional
public ResultBody checkAuthStatus(Integer port, LoginSuccessDTO loginSuccessDTO) { public ResultBody checkAuthStatus(Integer port, LoginSuccessDTO loginSuccessDTO) {
String uid; String uid;
...@@ -146,7 +148,10 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -146,7 +148,10 @@ public class SealManageServiceImpl implements SealManageService {
UserFddDO userFddInfo = userFddAuthDao.getAppUserFddInfo(uid); UserFddDO userFddInfo = userFddAuthDao.getAppUserFddInfo(uid);
if (userFddInfo == null) { if (userFddInfo == null) {
return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_ERROR); return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_ERROR);
} else if (!userFddInfo.getPersonVerifyStatus().equals(2) || !userFddInfo.getEntVerifyStatus().equals(4)) { }
boolean isPersonVerified = userFddInfo.getAccountType().equals(1) && userFddInfo.getPersonVerifyStatus().equals(2);
boolean isEntVerified = userFddInfo.getAccountType().equals(2) && userFddInfo.getEntVerifyStatus().equals(4);
if (!isPersonVerified && !isEntVerified) {
return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_NOT_PASS); return ResultBody.error(ResultEnum.BUSINESS_LICENSE_CHECK_NOT_PASS);
} }
return ResultBody.success(userFddInfo); return ResultBody.success(userFddInfo);
...@@ -163,14 +168,7 @@ public class SealManageServiceImpl implements SealManageService { ...@@ -163,14 +168,7 @@ public class SealManageServiceImpl implements SealManageService {
params.setSignatureId(signatureId); params.setSignatureId(signatureId);
String result = client.invokeDefaultSignature(params); String result = client.invokeDefaultSignature(params);
// 获取印章列表 // 获取印章列表
List<SealInfoDO> sealInfoList = sealManageDao.getSealInfoListByUnionId(userFddInfo.getUnionId()); getSealInfoListByUnionId(userFddInfo.getUnionId());
// 判断是否有状态是默认的章(默认:0 非默认:1)
List<Integer> sealIds = sealInfoList.stream()
.filter(d -> d.getSealStatus() == 1)
.map(SealInfoDO::getId).collect(Collectors.toList());
if (sealIds.size() > 0) {
sealManageDao.updateSealStatusById(sealIds);
}
sealManageDao.updateSealStatusBySignatureId(signatureId); sealManageDao.updateSealStatusBySignatureId(signatureId);
if (!JSONObject.parseObject(result).getString(FddConstant.CODE).equals(FddConstant.SUCCESS)) { if (!JSONObject.parseObject(result).getString(FddConstant.CODE).equals(FddConstant.SUCCESS)) {
// 如果失败,手动回滚修改的数据 // 如果失败,手动回滚修改的数据
......
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.iuav.user.dao.fdd.ContractDao"> <mapper namespace="com.mmc.iuav.user.dao.fdd.ContractDao">
<insert id="insertUavContractInfo">
insert into contract_info (union_id, order_no, contract_no, contract_title)
values (#{unionId}, #{orderNo}, #{contractNo}, #{contractTitle})
</insert>
<delete id="deleteContractInfo"> <delete id="deleteContractInfo">
delete delete
from contract_info from contract_info
...@@ -11,20 +15,27 @@ ...@@ -11,20 +15,27 @@
<select id="contractInfoByOrderNo" resultType="com.mmc.iuav.user.entity.fdd.ContractInfoDO"> <select id="contractInfoByOrderNo" resultType="com.mmc.iuav.user.entity.fdd.ContractInfoDO">
select id, select id,
user_account_id, union_id,
order_no, order_no,
contract_no, contract_no,
contract_title, contract_title,
sign_status, sign_status,
singer_time, singer_time,
a_remark, a_remark,
b_remark, b_remark,
a_transaction_id, a_transaction_id,
b_transaction_id, b_transaction_id,
create_time, create_time,
update_time, update_time,
archive_date archive_date
from contract_info from contract_info
where order_no = #{orderNo} <where>
<if test="orderNo != null">
order_no = #{orderNo}
</if>
<if test="contractNo != null">
contract_no = #{contractNo}
</if>
</where>
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.iuav.user.dao.fdd.SealManageDao"> <mapper namespace="com.mmc.iuav.user.dao.fdd.SealManageDao">
<insert id="insertSealInfo"> <insert id="insertSealInfo">
insert into seal_info (seal_name, signature_id, seal_url, union_id, seal_status) insert into seal_info (seal_name, signature_id, seal_url, union_id)
values (#{sealName}, #{signatureId}, #{sealUrl}, #{unionId}, #{sealStatus}) values (#{sealName}, #{signatureId}, #{sealUrl}, #{unionId})
</insert> </insert>
<update id="updateSealStatusById"> <update id="updateSealStatusById">
update seal_info set seal_status = 0 update seal_info set seal_status = 0
......
...@@ -51,7 +51,14 @@ ...@@ -51,7 +51,14 @@
where customer_id = #{customerId} where customer_id = #{customerId}
</select> </select>
<select id="getAppUserFddInfo" resultType="com.mmc.iuav.user.entity.fdd.UserFddDO"> <select id="getAppUserFddInfo" resultType="com.mmc.iuav.user.entity.fdd.UserFddDO">
select id, customer_id, person_verify_status, ent_verify_status, account_type, create_time, update_time select id,
customer_id,
union_id,
person_verify_status,
ent_verify_status,
account_type,
create_time,
update_time
from user_fdd from user_fdd
where union_id = #{unionId} where union_id = #{unionId}
</select> </select>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论