1 设计日志
create table exection_log(
id bigint(20) 主键,
biz_uuid, varchar(128) '业务标识',
ip, varchar(128) '',
url, varchar(128) '请求url',
line, varchar(128) 错误代码行数,
param mediument 请求参数,
main_message mediument 主要异常信息,
message mediument 全部异常信息,
create_time datetime, 创建时间
);
create table oper_log{
id bigint(20) 主键,
oper_module varchar 模块标题,
oper_no varchar 模块编码,
oper_type varchar 模块类型,
url, varchar 请求url,
oper_desc mediument 操作描述,
delete_status int(2) 删除状态0:有效,1:无效,
creator int 操作人,
updator int 更新人,
create_time datetime, 创建时间,
update_time datetime, 更新时间
}
create table message_record_consume{
id bigint(20) 主键,
message_data_json mediument,消息内容,
exception_data_json mediument,异常消息,
message_type varchar,消息类型,
consume_time,消息结束时间,
consume_source varchar, 消息来源,
ip varchar, ip,
biz_uuid varchar ,业务消息uuid,
create_time datetime, 创建时间,
update_time datetime, 更新时间
}
create table message_record_producer{
id bigint(20) 主键,
message_data_json mediument,消息内容,
exception_data_json mediument,异常消息,
sending_time datetime 消息发送时间,
sent_time datetime 消息最后一次发送的时间,
ack_time datetime 收到消息ack的时间,
retry_count int 发送消息重试次数,
message_status varchar 消息状态,sending sent acked,
message_type 消息类型,
message_target varchar 消息发送目标,
biz_uuid,varchar 消息业务记录uuid,
biz_type varchar 消息业务类型,
producer_key varchar 消息生产者key,
message_source varchar 消息来源,
create_time datetime, 创建时间,
update_time datetime, 更新时间
}
create table file{
id bigint(20) 主键,
type tinyint(2) 类型,
function_code varchar 功能编码,
function_name varchar 功能名称,
biz_id bigint 单据id,
status tinyint 状态,
start_time datetime 开始时间,
end_time datetime 结束时间,
row_number int 导出记录数,
file_name varchar 文件名称,
file_size bigint 文件大小,
path varchar(500) 文件路径,
create_id int 创建人,
create_name varchar 创建人名称;
}
create table serial_number{
id bigint(20) 主键,
fix varchar 前缀,
date_format varchar 时间格式,
serial_number varchar 流水号;
}
create table dict{
id bigint(20) 主键,
value varchar 数据值,
lable varchar 标签名,
type tinyint 类型,
description varchar 描述,
is_default tinyint 是否默认,
sort int 排序,
remarks varchar 备注信息,
delete_status tinyint 删除标识,
create 创建人,
update 修改人,
c_time, 创建时间,
u_time, 更新时间;
}
create table reqlog{
id bigint(20) 主键,
type int 接口类型,
business_no varchar 业务编号,
sender varchar 发送方,
receiver varchar 接收方,
send_content mediumtext 发送内容,
receive_content mediumtext 响应内容,
status tinyint 请求成功与否(状态),
delete_status tinyint 删除状态,
c_time datetime 创建时间;
}
2 一个接口有多个业务实现的初始化设计
private ConcurrentHashMap(String,FormOperation) opreationMap = new ConcurrentHashMap<>();
@Resource
protected void setForeOperation(FormOperation[] operations){
//p.getProcDefKey() 实现标识
for(ForeOperation p : operations){
operationMap.put(p.getProcDefKey(),p)
}
}
3 发送rabbitMq消息时,在接收者消费端,接收到的消息会多出双引号,解决办法是,将json串,转换成JSONArray类型。
如:JSONArray array = JSONUtil.parseArray(json);
4 读取properties文件经常在windows可以,但部署linux不行,使用此工具方法。
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.core.io.Resource;
import java.io.InputStreamReader;
import java.util.Properties;
public class ConfigInfo{
private static Properties cache = new Properties();
static{
try{
ResourceLoader resourceLoader = new DefaultResourceLoader();
Resource resource = resourceLoader.getResource("classpath:file.properties");
InputStreamReader isr = new InputStreamReader(resource.getInputerStream(),"utf-8");
cache.load(isr);
}catch(){
}
}
public static String getValue(String key){
return cache.getProperty(key);
}
}
5 创建枚举
@Getter
@AllArgsConstructor
public enum Enum{
TYPE_1(1,"111"),
TYPE_2(2,"222"),
TYPE_3(3,"333");
private int code;
private String desc;
/**
* 自己定义一个静态方法,通过code返回枚举常量对象
*/
public static Enum getValue(int code){
for (Enum enum: Enum.values()) {
if(enum.getCode() == code){
return enum;
}
}
return null;
}
}