提交 f6fa2d8d 编写于 作者: 檀越@新空间's avatar 檀越@新空间 🐭

fix:增值发票

上级 65929cf3
......@@ -3,8 +3,18 @@ package com.study.design.ticket;
import com.study.design.ticket.pojo.CompanyTicket;
import com.study.design.ticket.pojo.PersonalTicket;
/**
* 发票常量-原型模式
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:47
*/
public class TicketConstant {
// 保存只具有公共属性的对象,供clone使用。
/**
* 保存只具有公共属性的对象,供clone使用。
*/
public static PersonalTicket personalTicket = new PersonalTicket();
public static CompanyTicket companyTicket = new CompanyTicket();
......
......@@ -3,6 +3,14 @@ package com.study.design.ticket.builder;
import com.study.design.ticket.TicketConstant;
import com.study.design.ticket.pojo.CompanyTicket;
/**
* 公司发票构建者
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:50
*/
public class CompanyTicketBuilder extends TicketBuilder<CompanyTicket> {
/**
......
......@@ -3,6 +3,14 @@ package com.study.design.ticket.builder;
import com.study.design.ticket.TicketConstant;
import com.study.design.ticket.pojo.PersonalTicket;
/**
* 个人发票建造者
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:49
*/
public class PersonalTicketBuilder extends TicketBuilder<PersonalTicket> {
/**
......
package com.study.design.ticket.builder;
/**
* 发票建造者
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:48
*/
public abstract class TicketBuilder<T> {
/**
* 参数构建
*
* @param account
* @param title
*/
public abstract void setParam(String account, String title);
/**
* 内容构建
*
* @param content
*/
public abstract void setContent(String content); // 配置中心 或 DB 或缓存
/**
* 产品构建
*
* @param product
*/
public abstract void setProduct(String product); // db
public void setBankInfo(String bankInfo){}; //需要校验的,校验通过才能设置
/**
* 需要校验的,校验通过才能设置
*
* @param bankInfo
*/
public void setBankInfo(String bankInfo) {
}
/**
* 返回相应的发票模版
*
* @return
*/
public abstract T buildTicket();
}
package com.study.design.ticket.pojo;
public class CompanyTicket implements Cloneable{
/**
* 公司级别发票
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:45
*/
public class CompanyTicket implements Cloneable {
/**
* 类型
*/
private String type;
/**
* 底部
*/
private String footer;
private String content; //配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
private String product; //大部分情况db里获取(缓存里是有一些热门产品的)
private String bankInfo; //校验我们的银行卡信息(通过我们的第三方银行相关接口进行的校验)
/**
* 配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
*/
private String content;
/**
* 大部分情况db里获取(缓存里是有一些热门产品的)
*/
private String product;
/**
* 校验我们的银行卡信息(通过我们的第三方银行相关接口进行的校验)
*/
private String bankInfo;
/**
* 账户
*/
private String account;
/**
* 标题
*/
private String title;
public String getFooter() {
......
package com.study.design.ticket.pojo;
public class PersonalTicket implements Cloneable{
/**
* 个人发票
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:45
*/
public class PersonalTicket implements Cloneable {
/**
* 类型
*/
private String type;
/**
* 底部
*/
private String footer;
private String content; //配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
private String product; //大部分情况db里获取(缓存里是有一些热门产品的)
private String account; // 接口入参获取
private String title; // 接口入参获取
/**
* 配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
*/
private String content;
/**
* 大部分情况db里获取(缓存里是有一些热门产品的)
*/
private String product;
/**
* 账户
*/
private String account;
/**
* 标题
*/
private String title;
public String getFooter() {
return footer;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册