提交 32578f63 authored 作者: hzh's avatar hzh

签证接口对接

上级 f7cb22bd
......@@ -43,9 +43,9 @@ public enum QzApiEnum implements ApiEnum {
**/
GET_ASSOCIAT_DETAIL("/open/qz/shopping/getAssociatDetail", "常用资料详情"),
/**
* 订单详情
* 取消订单
**/
CANCEL_ORDER("/open/qz/order/cancelOrder", "订单详情"),
CANCEL_ORDER("/open/qz/order/cancelOrder", "取消订单"),
;
/**
......
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class GetAssociatDetailModel extends BaseModel {
/**
* 签证相关信息id
**/
private String associationId;
}
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class GetProdDetailModel extends BaseModel {
/**
* 1因公2因私
**/
private String tripType;
/**
* 签证信息id,此id唯一
**/
private String visaId;
}
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QueryAssociationModel extends BaseModel {
/**
* 国家名称
**/
private String country;
/**
* 签证相关信息类型 1Matters:注意事项 | 2VisaConsult:签证资讯 | 3CaseAnalysis:案例分析 | 4MaterialDownload:资料下载
**/
private String associationType;
/**
* 每页显示条数,不能小于10
**/
private Integer count;
/**
* 员工工号,以这个员工为准进行匹配差标,默认为当前登录人
**/
private String empNo;
/**
* 当前页数,不能小于1
**/
private Integer pageNum;
}
package org.dromara.common.ys.model.req.qz;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QueryNewAppointmentModel extends BaseModel {
/**
* 查询条数(1~50)
**/
private Integer count;
/**
* 所属领区
**/
private String consularDist;
}
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QueryProdListModel extends BaseModel {
/**
* 洲区名称
**/
private String continent;
/**
* 国家名称
**/
private String country;
/**
* 1因公2因私
**/
private String tripType;
/**
* 每页显示条数,不能小于10
**/
private Integer count;
/**
* 员工工号,以这个员工为准进行匹配差标,默认为当前登录人
**/
private String empNo;
/**
* 是否快速签证:0.否 1.是
**/
private String isSpeed;
/**
* 当前页数,不能小于1
**/
private Integer pageNum;
/**
* 面试类型(选填) 0:无需、1:抽查、2:需要
**/
private String interview;
/**
* 签证类型(选填) 1.旅游签证 2.商务签证 3.探亲访友签证 4.留学签证 5.夏令营签证
**/
private String visaType;
/**
* 所属领区(选填)北京、上海、广州等
**/
private String consularDist;
}
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QzOrderBookOrderModel extends BaseModel {
/**
* 成本中心代码
**/
private String costCenterCode;
/**
* 出差申请单号
**/
private String ccsqdNo;
/**
* 收件人邮箱
**/
private String reciEmail;
/**
* 邮寄方式
**/
private String postMothed;
/**
* 收件人电话
**/
private String reciPhone;
/**
* 收件地址
**/
private String addresseeSite;
/**
* 联系号码,(最多存4个)
**/
private String linkTel;
/**
* 配送方式 0不需要行程单 1公司统一配送 2邮寄 3市内配送
**/
private String sendMethod;
/**
* 出差项目编号
**/
private String projectCode;
/**
* 快递公司
**/
private String expressCompany;
/**
* 收件地址
**/
private String reciAddr;
/**
* 出行人信息
**/
private List<QzOrderBookOrderTravelPeopleBean> peopleInfos;
/**
* 要求配送时间
**/
private String psyqsj;
/**
* 出差申请备注
**/
private String ccsqdRemark;
/**
* 收件人电话
**/
private String addresseePhone;
/**
* 快递支付方式 1到付 2企业代收
**/
private Integer kdPayMethod;
/**
* 企业内部单号是否一致 DY:一致 DN:不一致
**/
private String ifSameOrder;
/**
* 联系人
**/
private String linkman;
/**
* 快递公司名称
**/
private String expressCompanyName;
/**
* 配送备注
**/
private String psbz;
/**
* 差旅类型 1因公 2因私
**/
private String tripType;
/**
* 收件人
**/
private String addressee;
/**
* 出行日期
**/
private String tripDate;
/**
* 收件人
**/
private String recipient;
/**
* 其他备注
**/
private String otherRemark;
/**
* 邮政编码
**/
private String postCode;
/**
* 科目码
**/
private String subjectCode;
/**
* 联系邮箱
**/
private String linkEmail;
}
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QzOrderBookOrderTravelPeopleBean {
/**
* 旅客姓名
**/
private String passengerName;
/**
* 手机号码
**/
private String passengerPhone;
/**
* 旅客类型 1成人 2儿童
**/
private String passengerType;
/**
* 性别 F:男 M:女
**/
private String sex;
/**
* 员工编号
**/
private String empNo;
/**
* 证件号码
**/
private String idNo;
/**
* 年龄
**/
private Integer age;
/**
* 录入号
**/
private String inputNo;
}
package org.dromara.common.ys.model.req.qz;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QzOrderCancelOrderModel extends BaseModel {
/**
* 订单编号
**/
private String orderNo;
/**
* 员工工号,以这个员工为准进行匹配差标,默认为当前登录人
**/
private String empNo;
}
package org.dromara.common.ys.model.req.qz;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QzOrderGetDetailModel extends BaseModel {
/**
* 订单编号
**/
private String orderNo;
}
package org.dromara.common.ys.model.req.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QzOrderQueryListModel extends BaseModel {
/**
* 乘机人
**/
private String passengerName;
/**
* 签证类型 1旅游签 2商务签 3探亲访友签 4留学签 5夏令营签 6其他签证 7工作签 8居住签 9工作访问签 10政府访问签 11延期签 12个人访问签 13过镜签 14访问组织架构签
**/
private String qzType;
/**
* 出差类型(1因公2因私)
**/
private Integer tripType;
/**
* 订单号
**/
private String orderNo;
/**
* 预订日期始
**/
private String dateStart;
/**
* 每页显示条数,不能小于10
**/
private Integer count;
/**
* 预订日期止
**/
private String dateEnd;
/**
* 当前页数,不能小于1
**/
private Integer pageNum;
}
package org.dromara.common.ys.model.res.qz;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AssocitionBeanModel extends BaseModel {
/**
* 签证相关信息标题
**/
private String associationTitle;
/**
* 下载签证相关信息路径,下载签证相关信息路径,此属性只针对查询条件“签证相关信息类型”为“资料下载”
**/
private String associationPath;
/**
* 签证相关信息id
**/
private Integer associationId;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ContentDataBean {
/**
* 所需资料id
**/
private String resourceId;
/**
* 所需资料内容
**/
private String contents;
/**
* 所需分类
**/
private String typeName;
/**
* 是否原件 0.复印件 1.原件 2.彩色复印件
**/
private String isYuanJian;
/**
* 所需资料名称
**/
private String resourceName;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class GetAssociatDetailModel extends BaseModel {
/**
* 签证相关信息标题
**/
private String associationTitle;
/**
* 签证相关信息内容
**/
private String associationContent;
/**
* 签证相关信息下载接口地址
**/
private String associationPath;
/**
* 签证相关信息id
**/
private Integer associationId;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class GetProdDetailModel {
/**
* 收客范围
**/
private String receivRange;
/**
* 停留期
**/
private String retentionperiod;
/**
* 注意事项
**/
private String visaData1;
/**
* 签证信息id
**/
private String visaId;
/**
* 签证类型: 1.旅游签证 2.商务签证 3.探亲访友签证 4.留学签证 5.夏令营签证
**/
private String visaTypeName;
/**
* 销售价
**/
private BigDecimal salePrice;
/**
* 办理地点Id 实际领区
**/
private String consularDistrict;
/**
* 办理地点 实际领区名称
**/
private String consularDistrictName;
/**
* 签证形式 0为电子签 1为贴纸 2另纸签 3过境签
**/
private String visaForm;
/**
* 是否快速签证:0.否 1.是
**/
private String isSpeed;
/**
* 领区划分说明 办理地点描述
**/
private String consularDistExp;
/**
* 签证类型
**/
private String visaType;
/**
* 有效期
**/
private String expiryDate;
/**
* 所需资料集合
**/
private List<PersonTypeDataBean> personTypeDataBeans;
/**
* 特别提示
**/
private String specialTips;
/**
* 入境次数
**/
private String immigrationNo;
/**
* 国家图标地址
**/
private String countryLogoUrl;
/**
* 工作日
**/
private String visaWeekDay;
/**
* 国家简称
**/
private String countryCode;
/**
* 国家名称
**/
private String countryName;
/**
* 面试种类 0:无需、1:抽查、2:需要
**/
private String interview;
/**
* 签证信息名称
**/
private String visaName;
/**
* 签证形式名称
**/
private String visaFormName;
}
package org.dromara.common.ys.model.res.qz;
import org.dromara.common.ys.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class NewAppointmentBeanModel extends BaseModel {
/**
* 预约时间
**/
private String appointmentTime;
/**
* 国家简称
**/
private String countryCode;
/**
* 更新时间
**/
private String updateTime;
/**
* 国家名称
**/
private String countryName;
/**
* 所属领区
**/
private String consularDist;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class OrderListBeanModel {
/**
* 订单状态说明
**/
private String orderStatusRemark;
/**
* 签证类型名称
**/
private String qzTypeName;
/**
* 旅客姓名(姓名用','拼接)
**/
private String passengerName;
/**
* 预订日期
**/
private String bookDate;
/**
* 订单号
**/
private String orderNo;
/**
* 签证形式名称
**/
private String qzFormName;
/**
* 总金额
**/
private BigDecimal totalPrice;
/**
* 出差申请单号
**/
private String ccsqdNo;
/**
* 停留期说明
**/
private String tlqsm;
/**
* 订单状态码
**/
private String orderStatus;
/**
* 人数
**/
private Integer personCount;
/**
* 因公因私,1是因公,2是因私
**/
private Integer tripType;
/**
* 出行日期
**/
private String tripDate;
/**
* 领区名称
**/
private String areaName;
/**
* 国家名称
**/
private String countryName;
/**
* 签证名称
**/
private String qzName;
/**
* 入境次数
**/
private String rjcs;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class PersonTypeDataBean {
/**
* 人群分类 1.在职人员 2.无业人员 3.退休人员 4.学生 5.学龄前儿童
**/
private String crowdTypeName;
/**
* 人群分类 1.在职人员 2.无业人员 3.退休人员 4.学生 5.学龄前儿童
**/
private String crowdType;
/**
* 根据资料类型分组集合
**/
private List<ContentDataBean> contentBeans;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.List;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class QzOrderGetDetailModel {
/**
* 成本中心代码
**/
private String costCenterCode;
/**
* 送审人编号/名称
**/
private String sentEmpNo;
/**
* 停留期说明
**/
private String tlqsm;
/**
* 邮寄方式
**/
private String postMothed;
/**
* 收件人电话
**/
private String reciPhone;
/**
* 规则代码
**/
private String gzdm;
/**
* 完成时间
**/
private String completeDate;
/**
* 企业预订部门名称
**/
private String bookDeptName;
/**
* 快递支付方式名称
**/
private String kdPayMethodName;
/**
* 领区名称
**/
private String areaName;
/**
* 所需工作日
**/
private String weekDay;
/**
* 付款科目名称
**/
private String paySubjectName;
/**
* 收件地址
**/
private String reciAddr;
/**
* 入境次数
**/
private String rjcs;
/**
* 出差申请备注
**/
private String ccsqdRemark;
/**
* 签证类型名称
**/
private String qzTypeName;
/**
* 订单号
**/
private String orderNo;
/**
* 签证形式名称
**/
private String qzFormName;
/**
* 收件人电话
**/
private String addresseePhone;
/**
* 支付方式名称
**/
private String payMothedName;
/**
* 快递支付方式 1到付 2企业代收
**/
private Integer kdPayMethod;
/**
* 联系人
**/
private String linkman;
/**
* 录入号
**/
private String inputNo;
/**
* 收件人
**/
private String addressee;
/**
* 成本中心名称
**/
private String costCenterName;
/**
* 送审时间
**/
private String sentTime;
/**
* 邮政编码
**/
private String postCode;
/**
* 国家名称
**/
private String countryName;
/**
* 差旅状态 0待审批,1审批中,2审批通过,3审批拒绝,4无需审批
**/
private String vipStatus;
/**
* 出差项目名称
**/
private String projectName;
/**
* 科目码
**/
private String subjectCode;
/**
* 出票时间
**/
private String drawDate;
/**
* 订单状态说明
**/
private String orderStatusRemark;
/**
* 企业预订时间
**/
private String bookDate;
/**
* 出签日期
**/
private String signOutDate;
/**
* 总价格
**/
private BigDecimal totalPrice;
/**
* 出差申请单号
**/
private String ccsqdNo;
/**
* 收件人邮箱
**/
private String reciEmail;
/**
* 订单状态码
**/
private String orderStatus;
/**
* 收件地址
**/
private String addresseeSite;
/**
* 联系号码,(最多存4个)
**/
private String linkTel;
/**
* 送审人所在的部门
**/
private String sentDeptName;
/**
* 有效期
**/
private String expiryDate;
/**
* 配送方式 1.邮寄 2市内配送 3公司统一配送 4不需报销票证
**/
private String sendMethod;
/**
* 快递单号
**/
private String expressNumber;
/**
* 出差项目编码
**/
private String projectCode;
/**
* 快递公司
**/
private String expressCompany;
/**
* 旅客信息
**/
private List<TravelPeopleInfo> peopleInfos;
/**
* 企业内部单号是否一致 DY:一致 DN:不一致
**/
private String ifSameOrder;
/**
* 企业预订人名称
**/
private String bookerName;
/**
* 寄送备注
**/
private String expressRemark;
/**
* 快递公司名称
**/
private String expressCompanyName;
/**
* 差旅类型 1因公 2因私
**/
private String tripType;
/**
* 出行日期
**/
private String tripDate;
/**
* 收件人
**/
private String recipient;
/**
* 规则名称
**/
private String gzmc;
/**
* 签证名称
**/
private String qzName;
/**
* 支付状态
**/
private Integer payStatus;
/**
* 联系邮箱
**/
private String linkEmail;
/**
* 支付日期
**/
private String payDate;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TravelPeopleInfo {
/**
* 旅客id
**/
private String empId;
/**
* 旅客姓名
**/
private String passengerName;
/**
* 手机号码
**/
private String passengerPhone;
/**
* 旅客类型 1成人 2儿童
**/
private String passengerType;
/**
* 性别 F:男 M:女
**/
private String sex;
/**
* 证件号码
**/
private String idNo;
/**
* 年龄
**/
private Integer age;
/**
* 录入号
**/
private String inputNo;
}
package org.dromara.common.ys.model.res.qz;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class VisaProdBeanModel {
/**
* 停留期:可以在签证所在国家的停留日期
**/
private String retentionperiod;
/**
* 签证信息id,此id唯一
**/
private String visaId;
/**
* 签证类型名称
**/
private String visaTypeName;
/**
* 销售价
**/
private BigDecimal salePrice;
/**
* 面试类型名称
**/
private String interviewName;
/**
* 签证形式 0为电子签 1为贴纸 2另纸签 3过境签
**/
private String visaForm;
/**
* 是否快速签证 0.否 1.是
**/
private String isSpeed;
/**
* 签证类型: 1.旅游签证 2.商务签证 3.探亲访友签证 4.留学签证 5.夏令营签证
**/
private String visaType;
/**
* 签证的有效期
**/
private String expiryDate;
/**
* 入境次数
**/
private String immigrationNo;
/**
* 工作日:办理签证需要的天数
**/
private String visaWeekDay;
/**
* 国家简称
**/
private String countryCode;
/**
* 国家名称
**/
private String countryName;
/**
* 面试类型 0:无需、1:抽查、2:需要
**/
private String interview;
/**
* 签证信息名称
**/
private String visaName;
/**
* 签证形式名称
**/
private String visaFormName;
/**
* 所属领区名称
**/
private String consularDist;
}
package org.dromara.common.ys.service;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.model.req.qz.*;
import org.dromara.common.ys.model.res.qz.GetAssociatDetailModel;
import org.dromara.common.ys.model.res.qz.GetProdDetailModel;
import org.dromara.common.ys.model.res.qz.QzOrderGetDetailModel;
import org.dromara.common.ys.model.res.qz.*;
import java.util.List;
/**
* @author wenhe
*/
public interface IQzService {
/**
* 产品列表查询
*
* @param userId 用户id
* @param model model
* @return 产品列表
*/
PageInfo<VisaProdBeanModel> queryProdList(String userId, QueryProdListModel model);
/**
* 产品详情获取
*
* @param userId 用户id
* @param model 查询参数
* @return 查询结果
*/
GetProdDetailModel getProdDetail(String userId, org.dromara.common.ys.model.req.qz.GetProdDetailModel model);
/**
* 常用资料列表(常用资料下载、注意事项、签证资讯、案例分析等资料接口)
*
* @param userId 用户id
* @param model model
* @return 常用资料列表
*/
PageInfo<AssocitionBeanModel> queryAssociation(String userId, QueryAssociationModel model);
/**
* 常用资料详情
*
* @param userId 用户id
* @param model 查询参数
* @return 查询结果
*/
GetAssociatDetailModel getAssociatDetail(String userId, org.dromara.common.ys.model.req.qz.GetAssociatDetailModel model);
/**
* 预约动态信息
*
* @param userId 用户id
* @param model 预约动态信息参数
* @return 预约动态信息结果
*/
List<NewAppointmentBeanModel> queryNewAppointment(String userId, QueryNewAppointmentModel model);
/**
* 下单预定
*
* @param userId 用户id
* @param model 参数
* @return 结果
*/
void bookOrder(String userId, QzOrderBookOrderModel model);
/**
* 订单列表
*
* @param userId 用户id
* @param model 参数
* @return 结果
*/
PageInfo<OrderListBeanModel> queryList(String userId, QzOrderQueryListModel model);
/**
* 取消订单
*
* @param userId 用户id
* @param model 参数
* @return 结果
*/
void cancelOrder(String userId, QzOrderCancelOrderModel model);
/**
* 订单详情
*
* @param userId 用户id
* @param model 查询参数
* @return 查询结果
*/
QzOrderGetDetailModel getDetail(String userId, org.dromara.common.ys.model.req.qz.QzOrderGetDetailModel model);
}
package org.dromara.common.ys.service.impl;
import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON;
import org.dromara.common.ys.Api;
import org.dromara.common.ys.common.ApiHttpResponse;
import org.dromara.common.ys.common.Code;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.enums.DomainEnum;
import org.dromara.common.ys.enums.qz.QzApiEnum;
import org.dromara.common.ys.model.req.qz.*;
import org.dromara.common.ys.model.res.qz.GetAssociatDetailModel;
import org.dromara.common.ys.model.res.qz.GetProdDetailModel;
import org.dromara.common.ys.model.res.qz.QzOrderGetDetailModel;
import org.dromara.common.ys.model.res.qz.*;
import org.dromara.common.ys.service.IQzService;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @author hzh
* @date 2025-04-07
**/
@Service
public class QzServiceImpl implements IQzService {
@Override
public PageInfo<VisaProdBeanModel> queryProdList(String userId, QueryProdListModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.QUERY_PROD_LIST.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
if (res.getData() == null) {
return PageInfo.<VisaProdBeanModel>builder().build()
.setCount(model.getCount())
.setMap(Collections.emptyMap())
.setPageNum(model.getPageNum())
.setPages(0)
.setTotal(0)
.setList(Collections.emptyList());
}
PageInfo pageInfo = JSON.parseObject(JSON.parseObject(res.getData()).getString("data"), PageInfo.class);
return PageInfo.<VisaProdBeanModel>builder().build()
.setCount(pageInfo.getCount())
.setMap(pageInfo.getMap())
.setPageNum(pageInfo.getPageNum())
.setPages(pageInfo.getPages())
.setTotal(pageInfo.getTotal())
.setList(JSON.parseArray(JSON.toJSONString(pageInfo.getList()), VisaProdBeanModel.class));
}
@Override
public PageInfo<AssocitionBeanModel> queryAssociation(String userId, QueryAssociationModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.QUERY_ASSOCIATION.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
if (res.getData() == null) {
return PageInfo.<AssocitionBeanModel>builder().build()
.setCount(model.getCount())
.setMap(Collections.emptyMap())
.setPageNum(model.getPageNum())
.setPages(0)
.setTotal(0)
.setList(Collections.emptyList());
}
PageInfo pageInfo = JSON.parseObject(JSON.parseObject(res.getData()).getString("associtionBeans"), PageInfo.class);
return PageInfo.<AssocitionBeanModel>builder().build()
.setCount(pageInfo.getCount())
.setMap(pageInfo.getMap())
.setPageNum(pageInfo.getPageNum())
.setPages(pageInfo.getPages())
.setTotal(pageInfo.getTotal())
.setList(JSON.parseArray(JSON.toJSONString(pageInfo.getList()), AssocitionBeanModel.class));
}
@Override
public PageInfo<OrderListBeanModel> queryList(String userId, QzOrderQueryListModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.QUERY_LIST.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
if (res.getData() == null) {
return PageInfo.<OrderListBeanModel>builder().build()
.setCount(model.getCount())
.setMap(Collections.emptyMap())
.setPageNum(model.getPageNum())
.setPages(0)
.setTotal(0)
.setList(Collections.emptyList());
}
PageInfo pageInfo = JSON.parseObject(JSON.parseObject(res.getData()).getString("orderListBeans"), PageInfo.class);
return PageInfo.<OrderListBeanModel>builder().build()
.setCount(pageInfo.getCount())
.setMap(pageInfo.getMap())
.setPageNum(pageInfo.getPageNum())
.setPages(pageInfo.getPages())
.setTotal(pageInfo.getTotal())
.setList(JSON.parseArray(JSON.toJSONString(pageInfo.getList()), OrderListBeanModel.class));
}
@Override
public GetProdDetailModel getProdDetail(String userId, org.dromara.common.ys.model.req.qz.GetProdDetailModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.GET_PROD_DETAIL.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), GetProdDetailModel.class);
}
@Override
public QzOrderGetDetailModel getDetail(String userId, org.dromara.common.ys.model.req.qz.QzOrderGetDetailModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.GET_DETAIL.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), QzOrderGetDetailModel.class);
}
@Override
public void cancelOrder(String userId, QzOrderCancelOrderModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.CANCEL_ORDER.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
}
@Override
public GetAssociatDetailModel getAssociatDetail(String userId, org.dromara.common.ys.model.req.qz.GetAssociatDetailModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.GET_ASSOCIAT_DETAIL.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), GetAssociatDetailModel.class);
}
@Override
public List<NewAppointmentBeanModel> queryNewAppointment(String userId, QueryNewAppointmentModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.QUERY_NEW_APPOINTMENT.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseArray(JSON.parseObject(res.getData()).getString("newAppointmentBeans"), NewAppointmentBeanModel.class);
}
@Override
public void bookOrder(String userId, QzOrderBookOrderModel model) {
ApiHttpResponse res = Api.v1(
com.wenhe.base.base.RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
QzApiEnum.BOOK_ORDER.getUrl(),
userId,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论