From f5e9a787b9dd2a2d7cb179e6ac8fe475dd0701a4 Mon Sep 17 00:00:00 2001 From: xingze <13153582609@163.com> Date: Tue, 2 Apr 2024 15:22:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E6=AD=A5=E8=87=AA=E4=B8=BB=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../invoiceall/v1/InvoiceAllController.java | 19 +++ .../jianshui/common/constant/Constants.java | 2 + .../domain/AsyncLoginResultEntity.java | 22 +++ .../dto/AsyncInvoiceAllSubmitNoteDTO.java | 15 ++ .../service/AutonomousSqService.java | 14 ++ .../service/impl/AutonomousSqServiceImpl.java | 131 ++++++++++++++++++ 6 files changed, 203 insertions(+) create mode 100644 jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/AsyncLoginResultEntity.java create mode 100644 jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/dto/AsyncInvoiceAllSubmitNoteDTO.java diff --git a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java index 11db688..82edc24 100644 --- a/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java +++ b/jianshui-admin/src/main/java/com/jianshui/api/controller/http/invoiceall/v1/InvoiceAllController.java @@ -114,6 +114,25 @@ public class InvoiceAllController { return autonomousSqService.submitNoteResult(invoiceAllSubmitNoteDTO); } + @ApiOperation("异步全电登录") + @ApiImplicitParams({ + @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), + @ApiImplicitParam(name = "inoviceAllQdLoginDTO", value = "请求体",dataType = "java.lang.Void", required = true)}) + @PostMapping("/api/invoice_all/v1/asyncqdLogin") + public Object asyncqdLogin(@RequestBody InoviceAllQdLoginDTO inoviceAllQdLoginDTO) throws Exception{ + return autonomousSqService.asyncqdLogin(inoviceAllQdLoginDTO); + } + + + @ApiOperation("异步提交短信验证码") + @ApiImplicitParams({ + @ApiImplicitParam(name = "identity", value = "身份认证", dataType = "java.lang.Void", example = "1130", required = true), + @ApiImplicitParam(name = "inoviceAllQdLoginDTO", value = "请求体",dataType = "java.lang.Void", required = true)}) + @PostMapping("/api/invoice_all/v1/asyncsubmitNote") + public Object asyncsubmitNote(@RequestBody AsyncInvoiceAllSubmitNoteDTO asyncInvoiceAllSubmitNoteDTO) throws Exception{ + return autonomousSqService.asyncsubmitNote(asyncInvoiceAllSubmitNoteDTO); + } + @ApiOperation("用户登记接口") @ApiImplicitParams({ diff --git a/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java b/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java index ee9046a..cd528b1 100644 --- a/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java +++ b/jianshui-common/src/main/java/com/jianshui/common/constant/Constants.java @@ -191,6 +191,8 @@ public class Constants { public static final String ESCAPE = "/"; public static final String QD_LOGIN = "http://zzsq.jcsk100.com/login/getLogin2"; public static final String SUBMIT_SMS = "http://zzsq.jcsk100.com/login/submitSms"; + public static final String ASYNC_QD_LOGIN = "http://zzsq.jcsk100.com/asyncLogin/login"; + public static final String ASYNC_SUBMIT_SMS = "http://zzsq.jcsk100.com/asyncLogin/submitSms"; } \ No newline at end of file diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/AsyncLoginResultEntity.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/AsyncLoginResultEntity.java new file mode 100644 index 0000000..f403a7c --- /dev/null +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/AsyncLoginResultEntity.java @@ -0,0 +1,22 @@ +package com.jianshui.invoiceall.domain; + +import com.jianshui.common.annotation.Excel; +import lombok.Data; + +@Data +public class AsyncLoginResultEntity { + /** 响应码 */ + private String code; + + /** 响应数据 */ + private String data; + + /** 返回信息 */ + private String msg; + + /** 响应结果 true成功 false失败 */ + private Integer success; + + /** 流水号 */ + private String trace; +} diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/dto/AsyncInvoiceAllSubmitNoteDTO.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/dto/AsyncInvoiceAllSubmitNoteDTO.java new file mode 100644 index 0000000..b2430c5 --- /dev/null +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/domain/dto/AsyncInvoiceAllSubmitNoteDTO.java @@ -0,0 +1,15 @@ +package com.jianshui.invoiceall.domain.dto; + +import lombok.Data; + +@Data +public class AsyncInvoiceAllSubmitNoteDTO { + // 纳税人识别号 + private String nsrsbh; + private String receiver_show; + // 短信验证码 + private String smsCode; + // 流水号 + private String traceno; + +} diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/AutonomousSqService.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/AutonomousSqService.java index 9d0b289..9d9b7fa 100644 --- a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/AutonomousSqService.java +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/AutonomousSqService.java @@ -1,6 +1,7 @@ package com.jianshui.invoiceall.service; import com.jianshui.common.core.domain.AjaxResult; +import com.jianshui.invoiceall.domain.dto.AsyncInvoiceAllSubmitNoteDTO; import com.jianshui.invoiceall.domain.dto.InoviceAllQdLoginDTO; import com.jianshui.invoiceall.domain.dto.jcsk.AutonomousAuthorizationDTO; import com.jianshui.invoiceall.domain.dto.jcsk.InvoiceAllSubmitNoteDTO; @@ -49,4 +50,17 @@ public interface AutonomousSqService { Object nsrsbhConvertAddr(String nsrsbh); + /** + * 异步全电登录 + * @param inoviceAllQdLoginDTO + * @return + */ + Object asyncqdLogin(InoviceAllQdLoginDTO inoviceAllQdLoginDTO); + + /** + * 异步提交短信验证码 + * @param asyncInvoiceAllSubmitNoteDTO + * @return + */ + Object asyncsubmitNote(AsyncInvoiceAllSubmitNoteDTO asyncInvoiceAllSubmitNoteDTO); } diff --git a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/AutonomousSqServiceImpl.java b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/AutonomousSqServiceImpl.java index 6df5be9..e37fd69 100644 --- a/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/AutonomousSqServiceImpl.java +++ b/jianshui-invoice-all/src/main/java/com/jianshui/invoiceall/service/impl/AutonomousSqServiceImpl.java @@ -2,6 +2,7 @@ package com.jianshui.invoiceall.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; +import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jianshui.common.config.JianshuiConfig; @@ -12,6 +13,8 @@ import com.jianshui.common.enums.ErrorCode; import com.jianshui.common.utils.StringUtils; import com.jianshui.common.utils.ValidateUtils; import com.jianshui.common.utils.http.HttpUtils; +import com.jianshui.invoiceall.domain.AsyncLoginResultEntity; +import com.jianshui.invoiceall.domain.dto.AsyncInvoiceAllSubmitNoteDTO; import com.jianshui.invoiceall.domain.dto.InoviceAllQdLoginDTO; import com.jianshui.invoiceall.domain.dto.jcsk.AutonomousAuthorizationDTO; import com.jianshui.invoiceall.domain.dto.jcsk.InvoiceAllSubmitNoteDTO; @@ -200,6 +203,134 @@ public class AutonomousSqServiceImpl implements AutonomousSqService { } } + + /** + * 异步全电登录 + * @param inoviceAllQdLoginDTO + * @return + */ + @Override + public Object asyncqdLogin(InoviceAllQdLoginDTO inoviceAllQdLoginDTO) { + // 全电登录 + log.info("异步全电登录接口,入参:{}", JSONUtil.toJsonStr(inoviceAllQdLoginDTO)); + ValidateUtils.validate(inoviceAllQdLoginDTO); + Companyservice companyservice = companyserviceMapper.selectCompanyserviceByTaxcode(inoviceAllQdLoginDTO.getNsrsbh()); + if (companyservice == null){ + log.error("异步全电登录接口,获取企业信息为空"); + return AjaxResult.error("未获取到该税号企业信息!"); + } + if (BeanUtil.isEmpty(inoviceAllQdLoginDTO.getNsrInfo())) { + log.error("异步全电登录接口,传入报文错误,请检查,纳税人信息为空!"); + return AjaxResult.error("传入报文错误,请检查,纳税人信息为空!"); + } + ValidateUtils.validate(inoviceAllQdLoginDTO.getNsrInfo()); + // 流水号(唯一) + String qqlsh = inoviceAllQdLoginDTO.getNsrsbh() + inoviceAllQdLoginDTO.getNsrInfo().getGsnsyhm() + System.currentTimeMillis(); + inoviceAllQdLoginDTO.setTraceno(qqlsh); + AsyncLoginResultEntity asyncLoginResultEntity = null; + try { + // 回调地址 + inoviceAllQdLoginDTO.setLoginType("1"); + log.info("异步全电登录接口,请求上游,地址:{},参数:{}", Constants.QD_LOGIN, JSONUtil.toJsonStr(inoviceAllQdLoginDTO)); + String reslut = HttpUtil.post(Constants.ASYNC_QD_LOGIN, JSONUtil.toJsonStr(inoviceAllQdLoginDTO)); + log.info("异步全电登录接口,返回结果信息:{}",reslut); + asyncLoginResultEntity = JSONUtil.toBean(reslut, AsyncLoginResultEntity.class); + // 存流水号 + InvoiceAllLoginResult byQqlsh = invoiceAllLoginResultMapper.findByQqlsh(qqlsh); + if (byQqlsh != null) { + InvoiceAllLoginResult invoiceAllLoginResult = new InvoiceAllLoginResult(); + BeanUtil.copyProperties(asyncLoginResultEntity,invoiceAllLoginResult); + invoiceAllLoginResult.setUpdateTime(new Date()); + int count = invoiceAllLoginResultMapper.updateInvoiceResult(invoiceAllLoginResult); + if (count > 0) { + log.info("全电登录接口,登录返回信息更新成功,信息为:{}", JSONUtil.toJsonStr(invoiceAllLoginResult)); + } else { + log.error("全电登录接口,登录返回信息更新失败,信息为:{}", JSONUtil.toJsonStr(invoiceAllLoginResult)); + } + } else { + InvoiceAllLoginResult invoiceAllLoginResult = new InvoiceAllLoginResult(); + BeanUtil.copyProperties(asyncLoginResultEntity, invoiceAllLoginResult); + invoiceAllLoginResult.setCreateTime(new Date()); + int count = invoiceAllLoginResultMapper.insertInvoiceAllLoginResult(invoiceAllLoginResult); + if (count > 0) { + log.info("全电登录接口,登录返回信息保存成功,信息为:{}", JSONUtil.toJsonStr(invoiceAllLoginResult)); + } else { + log.error("全电登录接口,登录返回信息保存失败,信息为:{}", JSONUtil.toJsonStr(invoiceAllLoginResult)); + } + } + // 用户信息封装 + InvoiceAllYhdj yhdj = BeanUtil.copyProperties(inoviceAllQdLoginDTO, InvoiceAllYhdj.class); + yhdj.setDlsfmm(inoviceAllQdLoginDTO.getNsrInfo().getGsnsmm()); + yhdj.setBsrysfzjhm(inoviceAllQdLoginDTO.getNsrInfo().getSfzjhm()); + yhdj.setDlzh(inoviceAllQdLoginDTO.getNsrInfo().getGsnsyhm()); + yhdj.setBsryxm(inoviceAllQdLoginDTO.getNsrInfo().getBsryxz()); + QueryWrapper yhdjQueryWrapper = new QueryWrapper<>(); + yhdjQueryWrapper.eq("nsrsbh", yhdj.getNsrsbh()); + yhdjQueryWrapper.eq("identity", companyservice.getIdentity()); + InvoiceAllYhdj yhdjTemp = yhdjMapper.selectOne(yhdjQueryWrapper); + // 日志信息 + InvoiceAllApiLog invoiceAllApiLog = new InvoiceAllApiLog(); + invoiceAllApiLog.setCreateTime(new Date()); + invoiceAllApiLog.setCompany(companyservice.getSellertax()); + invoiceAllApiLog.setIdentityId(companyservice.getIdentity()); + invoiceAllApiLog.setUrl(Constants.QD_LOGIN); + invoiceAllApiLog.setSendMsg(JSONUtil.toJsonStr(inoviceAllQdLoginDTO)); + invoiceAllApiLog.setRequestId(qqlsh); + invoiceAllApiLog.setResultMsg(JSONUtil.toJsonStr(asyncLoginResultEntity)); + allApiLogMapper.insert(invoiceAllApiLog); + // 更新记录表 + if (BeanUtil.isNotEmpty(yhdjTemp)) { + BeanUtil.copyProperties(yhdj, yhdjTemp, CopyOptions.create().setIgnoreNullValue(true)); + yhdjTemp.setUpdateTime(new Date()); + yhdjMapper.updateInvoiceAllYhdj(yhdjTemp); + } else { + yhdj.setCreateTime(new Date()); + yhdj.setIdentity(companyservice.getIdentity()); + yhdjMapper.insertInvoiceAllYhdj(yhdj); + } + if (asyncLoginResultEntity != null){ + if (!"S000".equals(asyncLoginResultEntity.getCode())){ + return AjaxResult.error(asyncLoginResultEntity.getMsg()); + } + } + } catch (Exception e) { + e.printStackTrace(); + log.error("【金四服务类】【金财数科】【异步全电登录】API请求异常,错误信息:{}", e.getMessage()); + return AjaxResult.error(ErrorCode.INCOME_ERROR); + } + + return AjaxResult.success().put("nsrsbh",inoviceAllQdLoginDTO.getNsrsbh()).put("traceno",qqlsh); + } + + + /** + * 异步提交短信验证码 + * @param asyncInvoiceAllSubmitNoteDTO + * @return + */ + @Override + public Object asyncsubmitNote(AsyncInvoiceAllSubmitNoteDTO asyncInvoiceAllSubmitNoteDTO) { + log.info("自主授权短信异步提交接口,入参:{}", JSONUtil.toJsonStr(asyncInvoiceAllSubmitNoteDTO)); + // 短信提交 + ValidateUtils.validate(asyncInvoiceAllSubmitNoteDTO); + AsyncLoginResultEntity asyncLoginResultEntity = null; + try { + log.info("自主授权短信异步提交接口,调用地址:{},入参:{}",Constants.ASYNC_SUBMIT_SMS,JSONUtil.toJsonStr(asyncInvoiceAllSubmitNoteDTO)); + String result = HttpUtil.post(Constants.ASYNC_SUBMIT_SMS, JSONUtil.toJsonStr(asyncInvoiceAllSubmitNoteDTO)); + log.info("自主授权短信异步提交接口,调用结果:{}",result); + asyncLoginResultEntity = JSONUtil.toBean(result, AsyncLoginResultEntity.class); + if (asyncLoginResultEntity == null){ + return AjaxResult.error("调用失败,获取结果为空"); + } + }catch (Exception e){ + log.info("自主授权短信异步提交接口,调用异常,异常信息:{}",e.getMessage()); + } + if (!"SMS".equals(asyncLoginResultEntity.getCode())){ + return AjaxResult.error(asyncLoginResultEntity.getData()); + } + return AjaxResult.success(); + } + /** * 功能描述: 全电登录 *