|
|
@@ -1,74 +1,34 @@
|
|
|
package com.ydtech.modules.order.service.impl;
|
|
|
|
|
|
import cn.hutool.extra.qrcode.BufferedImageLuminanceSource;
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.github.pagehelper.PageInfo;
|
|
|
-import com.github.pagehelper.page.PageMethod;
|
|
|
-import com.google.zxing.*;
|
|
|
-import com.google.zxing.client.j2se.MatrixToImageConfig;
|
|
|
-import com.google.zxing.client.j2se.MatrixToImageWriter;
|
|
|
-import com.google.zxing.common.BitMatrix;
|
|
|
+import com.google.zxing.BinaryBitmap;
|
|
|
+import com.google.zxing.MultiFormatReader;
|
|
|
+import com.google.zxing.NotFoundException;
|
|
|
+import com.google.zxing.Result;
|
|
|
import com.google.zxing.common.HybridBinarizer;
|
|
|
-import com.google.zxing.qrcode.QRCodeWriter;
|
|
|
-import com.ydtech.components.OrderComponents;
|
|
|
-import com.ydtech.constants.InsuranceEnum;
|
|
|
import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
|
|
|
-import com.ydtech.core.page.HttpResult;
|
|
|
import com.ydtech.exception.SystemException;
|
|
|
-import com.ydtech.modules.admin.model.SysDept;
|
|
|
-import com.ydtech.modules.admin.model.SysUser;
|
|
|
-import com.ydtech.modules.admin.service.SysDeptService;
|
|
|
-import com.ydtech.modules.admin.service.SysUserService;
|
|
|
-import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
|
|
|
-import com.ydtech.modules.ins.model.vo.CarInfoVo;
|
|
|
-import com.ydtech.modules.ins.model.ya.CarModelDTO;
|
|
|
-import com.ydtech.modules.ins.model.ya.ExtendInfoDto;
|
|
|
-import com.ydtech.modules.ins.model.ya.ResponseDataC2;
|
|
|
-import com.ydtech.modules.order.convert.CarModelDTOConvert;
|
|
|
-import com.ydtech.modules.order.convert.MapToYaExtendInfoDto;
|
|
|
import com.ydtech.modules.order.dao.InsOrderQrCodeMapper;
|
|
|
-import com.ydtech.modules.order.dao.InsOrdersMapper;
|
|
|
-import com.ydtech.modules.order.entity.BasePageResult;
|
|
|
import com.ydtech.modules.order.entity.InsAreaCompany;
|
|
|
import com.ydtech.modules.order.entity.InsOrderQrCode;
|
|
|
-import com.ydtech.modules.order.entity.InsOrders;
|
|
|
-import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
|
|
|
-import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
|
|
|
-import com.ydtech.modules.order.entity.vo.*;
|
|
|
-import com.ydtech.modules.order.entity.vo.ya.YaExtendInfoDto;
|
|
|
import com.ydtech.modules.order.service.InsAreaCompanyService;
|
|
|
import com.ydtech.modules.order.service.InsOrderQrCodeService;
|
|
|
-import com.ydtech.modules.order.service.InsOrdersService;
|
|
|
-import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
|
|
|
-import com.ydtech.modules.protocol.service.PtlAgreementService;
|
|
|
import com.ydtech.utils.idgen.IdGenerate;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
-import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.ObjectUtils;
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
-import javax.validation.constraints.NotBlank;
|
|
|
import java.awt.image.BufferedImage;
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
-import java.io.IOException;
|
|
|
import java.net.URL;
|
|
|
-import java.net.URLEncoder;
|
|
|
-import java.nio.file.Paths;
|
|
|
-import java.util.*;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-import java.util.regex.Matcher;
|
|
|
-import java.util.regex.Pattern;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-import static com.ydtech.modules.order.constants.OrderCacheConstant.*;
|
|
|
+import java.util.Base64;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.Hashtable;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* @author wenkaisen
|
|
|
@@ -91,29 +51,27 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
|
|
|
@Override
|
|
|
public InsOrderQrCode getOneOrSave(String companyId) {
|
|
|
//查询 ins_area_company数据
|
|
|
- InsAreaCompany insAreaCompany =
|
|
|
- insAreaCompanyService.getOne(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getId,
|
|
|
- companyId));
|
|
|
+ InsAreaCompany insAreaCompany = insAreaCompanyService.getOne(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getId,
|
|
|
+ companyId));
|
|
|
//是否直接存储二维码
|
|
|
Boolean isWx = false;
|
|
|
//太平洋则直接存储base64的信息
|
|
|
- if("TPIC1000000".equals(insAreaCompany.getCompanyId())){
|
|
|
+ if ("TPIC1000000".equals(insAreaCompany.getCompanyId())) {
|
|
|
isWx = true;
|
|
|
}
|
|
|
//查询 是否有数据存在
|
|
|
- InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>()
|
|
|
- .eq(InsOrderQrCode::getAreaCompanyId, companyId)
|
|
|
- .eq(InsOrderQrCode::getQrcodeStatus, 1));
|
|
|
+ InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>().eq(InsOrderQrCode::getAreaCompanyId
|
|
|
+ , companyId).eq(InsOrderQrCode::getQrcodeStatus, 1));
|
|
|
if (Objects.isNull(insOrderQrCode)) {
|
|
|
//如果订单状态等于 待缴费 或 撤销二维码
|
|
|
if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
|
|
|
if (Objects.isNull(insAreaCompany.getPaymentLink())) {
|
|
|
throw new SystemException("该订单没有缴费链接");
|
|
|
}
|
|
|
- boolean save = save(insAreaCompany.getOrderno(), insAreaCompany.getId(),insAreaCompany.getCompanyId(), insAreaCompany.getPaymentLink(),isWx);
|
|
|
- insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>()
|
|
|
- .eq(InsOrderQrCode::getAreaCompanyId, companyId)
|
|
|
- .eq(InsOrderQrCode::getQrcodeStatus, 1));
|
|
|
+ save(insAreaCompany.getOrderno(), insAreaCompany.getId(), insAreaCompany.getCompanyId(),
|
|
|
+ insAreaCompany.getPaymentLink(), isWx);
|
|
|
+ insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>().eq(InsOrderQrCode::getAreaCompanyId,
|
|
|
+ companyId).eq(InsOrderQrCode::getQrcodeStatus, 1));
|
|
|
} else {
|
|
|
throw new SystemException("该订单不是待缴费状态");
|
|
|
}
|
|
|
@@ -128,9 +86,8 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
|
|
|
// InsAreaCompany insAreaCompany = insAreaCompanyService.getOne(new LambdaQueryWrapper<InsAreaCompany>().eq
|
|
|
// (InsAreaCompany::getId, companyId));
|
|
|
//查询 是否有数据存在
|
|
|
- InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>()
|
|
|
- .eq(InsOrderQrCode::getAreaCompanyId, companyId)
|
|
|
- .eq(InsOrderQrCode::getQrcodeStatus, 1));
|
|
|
+ InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>().eq(InsOrderQrCode::getAreaCompanyId
|
|
|
+ , companyId).eq(InsOrderQrCode::getQrcodeStatus, 1));
|
|
|
return insOrderQrCode;
|
|
|
}
|
|
|
|
|
|
@@ -167,7 +124,7 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
|
|
|
|
|
|
private boolean isHttpUrl(String urls) {
|
|
|
try {
|
|
|
- URL url = new URL(urls);
|
|
|
+ new URL(urls);
|
|
|
return true;
|
|
|
} catch (java.net.MalformedURLException e) {
|
|
|
return false;
|
|
|
@@ -184,7 +141,7 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public boolean save(String orderno, String areaCompanyId,String companyId, String jumlUrl,Boolean isWx) {
|
|
|
+ public boolean save(String orderno, String areaCompanyId, String companyId, String jumlUrl, Boolean isWx) {
|
|
|
try {
|
|
|
InsOrderQrCode insOrderQrCode = new InsOrderQrCode();
|
|
|
|
|
|
@@ -193,11 +150,11 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
|
|
|
insOrderQrCode.setOrderno(orderno);
|
|
|
insOrderQrCode.setAreaCompanyId(areaCompanyId);
|
|
|
//判断jumlUrl是base64 还是 url
|
|
|
- if(isHttpUrl(jumlUrl) || isWx){
|
|
|
- if(companyId.equals("HNIC1000000")) {
|
|
|
+ if (isHttpUrl(jumlUrl) || isWx) {
|
|
|
+ if (companyId.equals("HNIC1000000")) {
|
|
|
//华农保险
|
|
|
insOrderQrCode.setJumpUrl(jumlUrl.replace("{", "").replace("}", ""));
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
insOrderQrCode.setJumpUrl(jumlUrl);
|
|
|
}
|
|
|
} else {
|