Browse Source

Merge remote-tracking branch 'origin/master'

master
梁超 3 months ago
parent
commit
1d097dad8c

+ 17
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/log/LogBillInterface.java View File

package cn.com.taiji.core.entity.log;

import cn.com.taiji.core.entity.AbstractInterfaceLog;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.persistence.Entity;
import javax.persistence.Table;

@Getter
@Setter
@Accessors(chain = true)
@Entity
@Table(name = "LOG_BILL_INTERFACE")
public class LogBillInterface extends AbstractInterfaceLog {
}

+ 17
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/log/LogOcrInterface.java View File

package cn.com.taiji.core.entity.log;

import cn.com.taiji.core.entity.AbstractInterfaceLog;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.persistence.Entity;
import javax.persistence.Table;

@Getter
@Setter
@Accessors(chain = true)
@Entity
@Table(name = "LOG_OCR_INTERFACE")
public class LogOcrInterface extends AbstractInterfaceLog {
}

+ 22
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ods/bill/model/BillOpenModel.java View File



import cn.com.taiji.common.model.BaseModel; import cn.com.taiji.common.model.BaseModel;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;


@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class BillOpenModel extends BaseModel { public class BillOpenModel extends BaseModel {
/** 设备盘号或纳税人识别号 */ /** 设备盘号或纳税人识别号 */
@JsonProperty("mid")
private String mid; private String mid;


/** 发票类型代码 */ /** 发票类型代码 */
@JsonProperty("invoice_type")
private String invoiceType; private String invoiceType;


/** 发票请求流水 */ /** 发票请求流水 */
@JsonProperty("invoice_serial")
private String invoiceSerial; private String invoiceSerial;


/** 开票类型0-开票,1-红冲 */ /** 开票类型0-开票,1-红冲 */
@JsonProperty("open_type")
private String openType; private String openType;


/** 购货方税号 */ /** 购货方税号 */
@JsonProperty("buyer_taxno")
private String buyerTaxno; private String buyerTaxno;


/** 购货方名称 */ /** 购货方名称 */
@JsonProperty("buyer_name")
private String buyerName; private String buyerName;


/** 购货方地址电话 */ /** 购货方地址电话 */
@JsonProperty("buyer_adphone")
private String buyerAdphone; private String buyerAdphone;


/** 购货方银行账号 */ /** 购货方银行账号 */
@JsonProperty("buyer_bank")
private String buyerBank; private String buyerBank;


/** 清单标识0无,1是 */ /** 清单标识0无,1是 */
@JsonProperty("list_flag")
private String listFlag; private String listFlag;


/** 商品信息 */ /** 商品信息 */
@JsonProperty("product_info")
private String productInfo; private String productInfo;


/** 备注 */ /** 备注 */
@JsonProperty("remark")
private String remark; private String remark;


/** 联系手机号 */ /** 联系手机号 */
@JsonProperty("mobile")
private String mobile; private String mobile;


/** 复核人 */ /** 复核人 */
@JsonProperty("reviewer")
private String reviewer; private String reviewer;


/** 开票人 */ /** 开票人 */
@JsonProperty("biller")
private String biller; private String biller;


/** 收款人 */ /** 收款人 */
@JsonProperty("payee")
private String payee; private String payee;


/** 原发票代码,冲红必填 */ /** 原发票代码,冲红必填 */
@JsonProperty("older_invoice_code")
private String olderInvoiceCode; private String olderInvoiceCode;


/** 原发票号码,冲红必填 */ /** 原发票号码,冲红必填 */
@JsonProperty("older_invoice_num")
private String olderInvoiceNum; private String olderInvoiceNum;


/** 版式文件 */ /** 版式文件 */
@JsonProperty("is_format")
private String isFormat; private String isFormat;


/** 推送手机号 */ /** 推送手机号 */
@JsonProperty("push_mobile")
private String pushMobile; private String pushMobile;


/** 自然人 */ /** 自然人 */
@JsonProperty("is_personal")
private String isPersonal; private String isPersonal;


/** 订单编号列表 */ /** 订单编号列表 */
@JsonProperty("orderno_list")
private String ordernoList; private String ordernoList;
} }

+ 7
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/log/LogBillInterfaceRepo.java View File

package cn.com.taiji.core.repo.jpa.log;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.log.LogBillInterface;

public interface LogBillInterfaceRepo extends AbstractJpaRepo<LogBillInterface, String> {
}

+ 7
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/log/LogOcrInterfaceRepo.java View File

package cn.com.taiji.core.repo.jpa.log;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.log.LogOcrInterface;

public interface LogOcrInterfaceRepo extends AbstractJpaRepo<LogOcrInterface, String> {
}

+ 3
- 6
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/BillOpenManager.java View File

package cn.com.taiji.ods.manager.bill; package cn.com.taiji.ods.manager.bill;


import cn.com.taiji.common.manager.net.http.ServiceHandleException; import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.ods.bill.*;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOpenRequest;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillCommResponse;


public interface BillOpenManager { public interface BillOpenManager {
BillCommResponse serviceOpen(BillOpenRequest request) throws ServiceHandleException;

BillCommResponse serviceReversal(BillReversalRequest request) throws ServiceHandleException;

BillOrderPushLogResponse serviceOrderPush(BillOrderPushLogRequest req) throws ServiceHandleException;
BillCommResponse serviceHandle(BillOpenRequest request) throws ServiceHandleException;
} }

+ 23
- 54
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/BillOpenManagerImpl.java View File

import cn.com.taiji.common.manager.AbstractManager; import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException; import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.json.JsonTools; import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.manager.tools.http.HttpClientUtil;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.ods.bill.*;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.entity.log.LogBillInterface;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillCommResponse;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOpenRequest;
import cn.com.taiji.core.repo.jpa.log.LogBillInterfaceRepo;
import cn.com.taiji.ods.model.bill.HltResponse; import cn.com.taiji.ods.model.bill.HltResponse;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.HttpServerErrorException;


import java.io.IOException; import java.io.IOException;


@Service @Service
public class BillOpenManagerImpl extends AbstractManager implements BillOpenManager {
public class BillOpenManagerImpl extends AbstractManager
implements BillOpenManager, LogManager<BillOpenRequest, BillCommResponse, LogBillInterface> {
Logger logger = LoggerFactory.getLogger(BillOpenManagerImpl.class); Logger logger = LoggerFactory.getLogger(BillOpenManagerImpl.class);


@Autowired @Autowired
private HltService hltService; private HltService hltService;


@Value("${orderNotice.url}")
private String orderNoticeUrl;

@Override
public BillCommResponse serviceOpen(BillOpenRequest request) throws ServiceHandleException {
return processRequest(request, BillCommResponse.class);
}

// 订单补推
@Override
public BillCommResponse serviceReversal(BillReversalRequest request) throws ServiceHandleException {
return processRequest(request, BillCommResponse.class);
}
@Autowired
private LogBillInterfaceRepo logRepo;


@Override @Override
public BillOrderPushLogResponse serviceOrderPush(BillOrderPushLogRequest req) throws ServiceHandleException {
logger.info("请求发票订单请求参数:{}", req);
String response = null;
try {
response = HttpClientUtil.sendPost(orderNoticeUrl, req.toJson(), null);
} catch (IOException e) {
e.printStackTrace();
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:发票订单补推响应异常!");
}
logger.info("请求发票订单响应参数:{}", response);
if (StringUtils.hasText(response)) {
try {
return JsonTools.json2Object(response, BillOrderPushLogResponse.class);
} catch (IOException e) {
logger.error("发票订单补推响应异常:{}", e.getMessage(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:发票订单补推响应异常!");
}

} else {
logger.error("发票订单补推响应异常");
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:发票订单补推响应异常!");
}
}

/** 统一处理请求*/
private <T extends AbstractSignTypeRequest<?>, R extends AbstractSignTypeResponse> R processRequest(
T request, Class<R> responseClass) throws ServiceHandleException {
public BillCommResponse serviceHandle(BillOpenRequest request) throws ServiceHandleException {
logger.info("请求汇联通开始,请求参数: {}", request); logger.info("请求汇联通开始,请求参数: {}", request);
long begin = System.currentTimeMillis();
try { try {
HltResponse response = hltService.postHlt(request.toJson()); HltResponse response = hltService.postHlt(request.toJson());
logger.info("请求汇联通结束,响应参数: {}", response); logger.info("请求汇联通结束,响应参数: {}", response);


if ("0000".equals(response.getRespCode())) { if ("0000".equals(response.getRespCode())) {
try { try {
return JsonTools.json2Object(response.getData(), responseClass);
BillCommResponse commResponse = JsonTools.json2Object(response.getData(), BillCommResponse.class);
return onSuccess(request, commResponse, LogBillInterface.class, System.currentTimeMillis() - begin);
} catch (IOException e) { } catch (IOException e) {
logger.error("汇联通响应解析异常: {}", e.getMessage(), e); logger.error("汇联通响应解析异常: {}", e.getMessage(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:汇联通接口返回值格式错误!");
throw exception(request, LogBillInterface.class, "接口错误:汇联通接口返回值格式错误!");
} }
} else { } else {
logger.error("汇联通响应异常,状态码: {}, 错误信息: {}", response.getRespCode(), response.getRespMessage()); logger.error("汇联通响应异常,状态码: {}, 错误信息: {}", response.getRespCode(), response.getRespMessage());
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException(
throw exception(request, LogBillInterface.class,
String.format("接口错误:汇联通响应异常!状态码:%s,错误信息:%s", response.getRespCode(), response.getRespMessage())); String.format("接口错误:汇联通响应异常!状态码:%s,错误信息:%s", response.getRespCode(), response.getRespMessage()));
} }
} catch (HttpClientErrorException | HttpServerErrorException e) { } catch (HttpClientErrorException | HttpServerErrorException e) {
logger.error("HTTP请求异常,状态码: {}, 错误信息: {}", e.getStatusCode(), e.getResponseBodyAsString(), e); logger.error("HTTP请求异常,状态码: {}, 错误信息: {}", e.getStatusCode(), e.getResponseBodyAsString(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException(
throw exception(request, LogBillInterface.class,
String.format("接口错误:HTTP请求异常!状态码:%s,错误信息:%s", e.getStatusCode(), e.getResponseBodyAsString())); String.format("接口错误:HTTP请求异常!状态码:%s,错误信息:%s", e.getStatusCode(), e.getResponseBodyAsString()));
} catch (Exception e) { } catch (Exception e) {
logger.error("请求汇联通异常: {}", e.getMessage(), e); logger.error("请求汇联通异常: {}", e.getMessage(), e);
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("接口错误:请求汇联通异常!");
throw exception(request, LogBillInterface.class, "接口错误:请求汇联通异常!");
} }
} }

@Override
public void doSaveLog(BillOpenRequest request, BillCommResponse response, LogBillInterface log) {
logger.info("enter do save log");
logRepo.persist(log);
}
} }

+ 9
- 0
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/BillOrderPushManager.java View File

package cn.com.taiji.ods.manager.bill;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOrderPushLogResponse;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOrderPushLogRequest;

public interface BillOrderPushManager {
BillOrderPushLogResponse serviceHandle(BillOrderPushLogRequest request) throws ServiceHandleException;
}

+ 60
- 0
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/BillOrderPushManagerImpl.java View File

package cn.com.taiji.ods.manager.bill;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.entity.log.LogBillInterface;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.manager.tools.http.HttpClientUtil;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOrderPushLogRequest;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOrderPushLogResponse;
import cn.com.taiji.core.repo.jpa.log.LogBillInterfaceRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.io.IOException;

@Service
public class BillOrderPushManagerImpl extends AbstractManager
implements BillOrderPushManager, LogManager<BillOrderPushLogRequest, BillOrderPushLogResponse, LogBillInterface> {

@Value("${orderNotice.url}")
private String orderNoticeUrl;

@Autowired
private LogBillInterfaceRepo logRepo;

@Override
public BillOrderPushLogResponse serviceHandle(BillOrderPushLogRequest request) throws ServiceHandleException {
logger.info("请求发票订单请求参数:{}", request);
long begin = System.currentTimeMillis();
String response = null;
try {
response = HttpClientUtil.sendPost(orderNoticeUrl, request.toJson(), null);
} catch (IOException e) {
e.printStackTrace();
throw exception(request, LogBillInterface.class, "接口错误:发票订单补推响应异常!");
}
logger.info("请求发票订单响应参数:{}", response);
if (hasText(response)) {
try {
BillOrderPushLogResponse pushLogResponse = JsonTools.json2Object(response, BillOrderPushLogResponse.class);
return onSuccess(request, pushLogResponse, LogBillInterface.class, System.currentTimeMillis() - begin);
} catch (IOException e) {
logger.error("发票订单补推响应异常:{}", e.getMessage(), e);
throw exception(request, LogBillInterface.class, "接口错误:发票订单补推响应异常!");
}

} else {
logger.error("发票订单补推响应异常");
throw exception(request, LogBillInterface.class, "接口错误:发票订单补推响应异常!");
}
}

@Override
public void doSaveLog(BillOrderPushLogRequest request, BillOrderPushLogResponse response, LogBillInterface log) {
logger.info("enter do save log");
logRepo.persist(log);
}
}

+ 9
- 0
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/BillReversalManager.java View File

package cn.com.taiji.ods.manager.bill;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillReversalRequest;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillCommResponse;

public interface BillReversalManager {
BillCommResponse serviceHandle(BillReversalRequest request) throws ServiceHandleException;
}

+ 71
- 0
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/BillReversalManagerImpl.java View File

package cn.com.taiji.ods.manager.bill;

import cn.com.taiji.common.manager.AbstractManager;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.pub.json.JsonTools;
import cn.com.taiji.core.entity.log.LogBillInterface;
import cn.com.taiji.core.manager.comm.LogManager;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillCommResponse;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillReversalRequest;
import cn.com.taiji.core.repo.jpa.log.LogBillInterfaceRepo;
import cn.com.taiji.ods.model.bill.HltResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.HttpServerErrorException;

import java.io.IOException;

@Service
public class BillReversalManagerImpl extends AbstractManager
implements BillReversalManager, LogManager<BillReversalRequest, BillCommResponse, LogBillInterface> {
Logger logger = LoggerFactory.getLogger(BillReversalManagerImpl.class);

@Autowired
private HltService hltService;

@Autowired
private LogBillInterfaceRepo logRepo;

@Override
public BillCommResponse serviceHandle(BillReversalRequest request) throws ServiceHandleException {

logger.info("请求汇联通开始,请求参数: {}", request);
long begin = System.currentTimeMillis();
try {
HltResponse response = hltService.postHlt(request.toJson());
logger.info("请求汇联通结束,响应参数: {}", response);

if ("0000".equals(response.getRespCode())) {
try {
BillCommResponse commResponse = JsonTools.json2Object(response.getData(), BillCommResponse.class);
return onSuccess(request, commResponse, LogBillInterface.class, System.currentTimeMillis() - begin);
} catch (IOException e) {
logger.error("汇联通响应解析异常: {}", e.getMessage(), e);
throw exception(request, LogBillInterface.class, "接口错误:汇联通接口返回值格式错误!");
}
} else {
logger.error("汇联通响应异常,状态码: {}, 错误信息: {}", response.getRespCode(), response.getRespMessage());
throw exception(request, LogBillInterface.class,
String.format("接口错误:汇联通响应异常!状态码:%s,错误信息:%s", response.getRespCode(), response.getRespMessage()));
}
} catch (HttpClientErrorException | HttpServerErrorException e) {
logger.error("HTTP请求异常,状态码: {}, 错误信息: {}", e.getStatusCode(), e.getResponseBodyAsString(), e);
throw exception(request, LogBillInterface.class,
String.format("接口错误:HTTP请求异常!状态码:%s,错误信息:%s", e.getStatusCode(), e.getResponseBodyAsString()));
} catch (Exception e) {
logger.error("请求汇联通异常: {}", e.getMessage(), e);
throw exception(request, LogBillInterface.class, "接口错误:请求汇联通异常!");
}
}

@Override
@Transactional
public void doSaveLog(BillReversalRequest request, BillCommResponse response, LogBillInterface log) {
logger.info("enter do save log");
logRepo.persist(log);
}
}

+ 1
- 1
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/bill/HltServiceImpl.java View File

HltResponse response; HltResponse response;
try { try {
// 发送请求 // 发送请求
System.out.println("==>"+hltRequest.toJson());
System.out.println("加密后==>"+hltRequest.toJson());
String res = HttpClientUtil.sendPost(hltUrl, hltRequest.toJson(), null); String res = HttpClientUtil.sendPost(hltUrl, hltRequest.toJson(), null);
response = JsonTools.json2Object(res, HltResponse.class); response = JsonTools.json2Object(res, HltResponse.class);
// 对返回的数据进行解密 // 对返回的数据进行解密

+ 9
- 3
zhywpt-service-ods/src/main/java/cn/com/taiji/ods/manager/handler/BillOpenServiceHandler.java View File

import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOrderPushLogRequest; import cn.com.taiji.core.model.comm.protocol.ods.bill.BillOrderPushLogRequest;
import cn.com.taiji.core.model.comm.protocol.ods.bill.BillReversalRequest; import cn.com.taiji.core.model.comm.protocol.ods.bill.BillReversalRequest;
import cn.com.taiji.ods.manager.bill.BillOpenManager; import cn.com.taiji.ods.manager.bill.BillOpenManager;
import cn.com.taiji.ods.manager.bill.BillOrderPushManager;
import cn.com.taiji.ods.manager.bill.BillReversalManager;
import com.zgglyun.common.model.AbstractHttpRequestInfo; import com.zgglyun.common.model.AbstractHttpRequestInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


@Autowired @Autowired
private BillOpenManager billOpenManager; private BillOpenManager billOpenManager;
@Autowired
private BillReversalManager billReversalManager;
@Autowired
private BillOrderPushManager billOrderPushManager;


@Override @Override
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException { protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException {
BillOpenCmd cmd = BillOpenCmd.fromIfCode(jsonReq.getIfCode()); BillOpenCmd cmd = BillOpenCmd.fromIfCode(jsonReq.getIfCode());
switch (cmd) { switch (cmd) {
case OPEN: case OPEN:
return billOpenManager.serviceOpen((BillOpenRequest) request);
return billOpenManager.serviceHandle((BillOpenRequest) request);
case REVERSAL: case REVERSAL:
return billOpenManager.serviceReversal((BillReversalRequest) request);
return billReversalManager.serviceHandle((BillReversalRequest) request);
case ORDERPUSH: case ORDERPUSH:
return billOpenManager.serviceOrderPush((BillOrderPushLogRequest) request);
return billOrderPushManager.serviceHandle((BillOrderPushLogRequest) request);
default: default:
throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode()); throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode());
} }

Loading…
Cancel
Save