Commit 0813d8ea authored by jinkaiqiang's avatar jinkaiqiang

dip 表转为java模型

parent a0345752
......@@ -7,7 +7,7 @@ from NginxLog.DBDriver import DBDriver
def get_cell_data(row_data):
re_result = re.match(
r'^(?P<ip>\d+.\d+.\d+.\d+) - - \[(?P<time>.*) \+0800\] "(?P<url>.*)" (?P<status>\d{3}) .*',
r'^(?P<ip>\d+.\d+.\d+.\d+) - - \[(?P<time>.*) \+0000\] "(?P<url>.*)" (?P<status>\d{3}) .*',
row_data)
if re_result is None:
print(row_data)
......@@ -24,13 +24,19 @@ def get_cell_data(row_data):
if __name__ == '__main__':
file_path = r"D:\Work\nginx-1.19.0\logs\access-2021-04-27T09.log"
# 2021-04-27 11:22:05, 18:09:55
date1 = datetime.datetime.strptime("2021-04-27 11:22:05", "%Y-%m-%d %H:%M:%S")
date2 = datetime.datetime.strptime("2021-04-27 18:09:55", "%Y-%m-%d %H:%M:%S")
print((date2 - date1).total_seconds()) # 24470
exit(1)
file_path = r"D:\Work\Git\deploy_script\NginxLog\access.log"
db_driver = DBDriver("mysql+pymysql://jkq:741963@localhost:3306/test?charset=utf8")
lines = 0
insert_count = 0
sql_str_list = []
with open(file_path, 'r') as f:
while lines < 1000000:
while lines < 2085100:
data = f.readline()
if data is None:
print("exit:", lines)
......
# -*- coding:utf-8 -*-
'''
字段名 类型 长度 可为空 默认值 UI非空 链接常量 录入方式 资源
id bigint 8 非校验 非校验 0 主键
name nvarchar 50 非校验 非校验 0 名称
description nvarchar 200 非校验 非校验 0 描述
domain nvarchar 100 非校验 非校验 0 域名
secret_key nvarchar 50 非校验 非校验 0 秘钥
admin_telephones varchar 200 非校验 非校验 0 管理员手机号码
usable bit 1 非校验 1 非校验 0 是否可用
'''
def str2Hump(text):
arr = filter(None, text.lower().split('_'))
res = ''
j = 0
for i in arr:
if j == 0:
res = i
else:
res = res + i[0].upper() + i[1:]
j += 1
return res
def str2Type(c_type):
if c_type.lower() == "bigint":
return "Long"
if c_type.lower() == "nvarchar":
return "String"
if c_type.lower() == "varchar":
return "String"
if c_type.lower() == "bit":
return "Boolean"
if c_type.lower() == "int":
return "Integer"
if c_type.lower() == "datetime":
return "LocalDateTime"
if c_type.lower() == "date":
return "LocalDate"
return "Unkown"
def str2Remark(c_resource, c_remark):
if not c_resource and not c_remark:
return ""
if c_remark:
return f"""/**
* {c_resource}
* {c_remark}
*/"""
else:
return f"""/**
* {c_resource}
*/"""
if __name__ == '__main__':
dip_table_str = """字段名 类型 长度 可为空 默认值 UI非空 链接常量 录入方式 资源
id bigint 8 非校验 非校验 0 主键
app_id bigint 8 非校验 非校验 0 appId
app_name nvarchar 50 非校验 非校验 0 所属App
order_no nvarchar 32 非校验 非校验 0 订单号
amount int 4 非校验 非校验 0 金额
description nvarchar 127 非校验 非校验 0 订单描述
attach nvarchar 128 非校验 '' 非校验 0 订单附加信息
remark nvarchar 200 校验 非校验 0 备注
callback nvarchar 300 非校验 非校验 0 回调信息
status int 4 非校验 0 非校验 6442 订单状态
redirect_url nvarchar 500 非校验 非校验 0 跳转地址
active_out_trade_no nvarchar 32 非校验 非校验 0 商户订单号
create_time datetime 8 非校验 getdate() 非校验 0 创建时间
pay_time datetime 8 校验 非校验 0 支付时间
payment_type int 4 非校验 1 非校验 6443 支付类型
"""
dip_table_column_list = dip_table_str.split("\n")
for dip_table_column in dip_table_column_list:
if not dip_table_column:
continue
column_info = dip_table_column.split("\t")
c_name = column_info[0]
if c_name == "字段名":
continue
c_type = column_info[1]
c_resource = column_info[8]
c_remark = ""
j_name = str2Hump(c_name)
j_type = str2Type(c_type)
j_remark = str2Remark(c_resource, c_remark)
print(f"""{j_remark}
private {j_type} {j_name};""")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment