Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
design
提交
f6fa2d8d
D
design
项目概览
檀越@新空间
/
design
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
design
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f6fa2d8d
编写于
7月 30, 2023
作者:
檀越@新空间
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:增值发票
上级
65929cf3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
134 addition
and
14 deletion
+134
-14
src/main/java/com/study/design/ticket/TicketConstant.java
src/main/java/com/study/design/ticket/TicketConstant.java
+11
-1
src/main/java/com/study/design/ticket/builder/CompanyTicketBuilder.java
...com/study/design/ticket/builder/CompanyTicketBuilder.java
+8
-0
src/main/java/com/study/design/ticket/builder/PersonalTicketBuilder.java
...om/study/design/ticket/builder/PersonalTicketBuilder.java
+8
-0
src/main/java/com/study/design/ticket/builder/TicketBuilder.java
...n/java/com/study/design/ticket/builder/TicketBuilder.java
+41
-1
src/main/java/com/study/design/ticket/pojo/CompanyTicket.java
...main/java/com/study/design/ticket/pojo/CompanyTicket.java
+34
-5
src/main/java/com/study/design/ticket/pojo/PersonalTicket.java
...ain/java/com/study/design/ticket/pojo/PersonalTicket.java
+32
-7
未找到文件。
src/main/java/com/study/design/ticket/TicketConstant.java
浏览文件 @
f6fa2d8d
...
@@ -3,8 +3,18 @@ package com.study.design.ticket;
...
@@ -3,8 +3,18 @@ package com.study.design.ticket;
import
com.study.design.ticket.pojo.CompanyTicket
;
import
com.study.design.ticket.pojo.CompanyTicket
;
import
com.study.design.ticket.pojo.PersonalTicket
;
import
com.study.design.ticket.pojo.PersonalTicket
;
/**
* 发票常量-原型模式
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:47
*/
public
class
TicketConstant
{
public
class
TicketConstant
{
// 保存只具有公共属性的对象,供clone使用。
/**
* 保存只具有公共属性的对象,供clone使用。
*/
public
static
PersonalTicket
personalTicket
=
new
PersonalTicket
();
public
static
PersonalTicket
personalTicket
=
new
PersonalTicket
();
public
static
CompanyTicket
companyTicket
=
new
CompanyTicket
();
public
static
CompanyTicket
companyTicket
=
new
CompanyTicket
();
...
...
src/main/java/com/study/design/ticket/builder/CompanyTicketBuilder.java
浏览文件 @
f6fa2d8d
...
@@ -3,6 +3,14 @@ package com.study.design.ticket.builder;
...
@@ -3,6 +3,14 @@ package com.study.design.ticket.builder;
import
com.study.design.ticket.TicketConstant
;
import
com.study.design.ticket.TicketConstant
;
import
com.study.design.ticket.pojo.CompanyTicket
;
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
>
{
public
class
CompanyTicketBuilder
extends
TicketBuilder
<
CompanyTicket
>
{
/**
/**
...
...
src/main/java/com/study/design/ticket/builder/PersonalTicketBuilder.java
浏览文件 @
f6fa2d8d
...
@@ -3,6 +3,14 @@ package com.study.design.ticket.builder;
...
@@ -3,6 +3,14 @@ package com.study.design.ticket.builder;
import
com.study.design.ticket.TicketConstant
;
import
com.study.design.ticket.TicketConstant
;
import
com.study.design.ticket.pojo.PersonalTicket
;
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
>
{
public
class
PersonalTicketBuilder
extends
TicketBuilder
<
PersonalTicket
>
{
/**
/**
...
...
src/main/java/com/study/design/ticket/builder/TicketBuilder.java
浏览文件 @
f6fa2d8d
package
com.study.design.ticket.builder
;
package
com.study.design.ticket.builder
;
/**
* 发票建造者
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2023/7/30 11:48
*/
public
abstract
class
TicketBuilder
<
T
>
{
public
abstract
class
TicketBuilder
<
T
>
{
/**
* 参数构建
*
* @param account
* @param title
*/
public
abstract
void
setParam
(
String
account
,
String
title
);
public
abstract
void
setParam
(
String
account
,
String
title
);
/**
* 内容构建
*
* @param content
*/
public
abstract
void
setContent
(
String
content
);
// 配置中心 或 DB 或缓存
public
abstract
void
setContent
(
String
content
);
// 配置中心 或 DB 或缓存
/**
* 产品构建
*
* @param product
*/
public
abstract
void
setProduct
(
String
product
);
// db
public
abstract
void
setProduct
(
String
product
);
// db
public
void
setBankInfo
(
String
bankInfo
){};
//需要校验的,校验通过才能设置
/**
* 需要校验的,校验通过才能设置
*
* @param bankInfo
*/
public
void
setBankInfo
(
String
bankInfo
)
{
}
/**
* 返回相应的发票模版
*
* @return
*/
public
abstract
T
buildTicket
();
public
abstract
T
buildTicket
();
}
}
src/main/java/com/study/design/ticket/pojo/CompanyTicket.java
浏览文件 @
f6fa2d8d
package
com.study.design.ticket.pojo
;
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
type
;
/**
* 底部
*/
private
String
footer
;
private
String
footer
;
private
String
content
;
//配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
/**
private
String
product
;
//大部分情况db里获取(缓存里是有一些热门产品的)
* 配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
private
String
bankInfo
;
//校验我们的银行卡信息(通过我们的第三方银行相关接口进行的校验)
*/
private
String
content
;
/**
* 大部分情况db里获取(缓存里是有一些热门产品的)
*/
private
String
product
;
/**
* 校验我们的银行卡信息(通过我们的第三方银行相关接口进行的校验)
*/
private
String
bankInfo
;
/**
* 账户
*/
private
String
account
;
private
String
account
;
/**
* 标题
*/
private
String
title
;
private
String
title
;
public
String
getFooter
()
{
public
String
getFooter
()
{
...
...
src/main/java/com/study/design/ticket/pojo/PersonalTicket.java
浏览文件 @
f6fa2d8d
package
com.study.design.ticket.pojo
;
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
type
;
/**
* 底部
*/
private
String
footer
;
private
String
footer
;
/**
private
String
content
;
//配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
* 配置中心 或者 DB里边获取。(缓存里获取,只不过如果万一DB 或配置中心有修改,需要同时更新缓存)
private
String
product
;
//大部分情况db里获取(缓存里是有一些热门产品的)
*/
private
String
content
;
private
String
account
;
// 接口入参获取
/**
private
String
title
;
// 接口入参获取
* 大部分情况db里获取(缓存里是有一些热门产品的)
*/
private
String
product
;
/**
* 账户
*/
private
String
account
;
/**
* 标题
*/
private
String
title
;
public
String
getFooter
()
{
public
String
getFooter
()
{
return
footer
;
return
footer
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录