Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
openresty
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tangku7
openresty
Commits
956f2471
Commit
956f2471
authored
Sep 02, 2018
by
周尚
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复卡券批处理因时间格式导致的错误
暂时关闭门店日统计的批处理检查以规避mysql连接错误问题
parent
df4029a7
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
589 additions
and
517 deletions
+589
-517
nginx/conf/nginx.conf
nginx/conf/nginx.conf
+1
-0
nginx/lua/luabiz/node_card.lua
nginx/lua/luabiz/node_card.lua
+1
-1
nginx/lua/luabiz/node_ticket.lua
nginx/lua/luabiz/node_ticket.lua
+1
-1
nginx/lua/luabiz/settle.lua
nginx/lua/luabiz/settle.lua
+13
-6
nginx/lua/luabiz/tk_sdt.lua
nginx/lua/luabiz/tk_sdt.lua
+573
-509
No files found.
nginx/conf/nginx.conf
View file @
956f2471
...
@@ -18,6 +18,7 @@ http {
...
@@ -18,6 +18,7 @@ http {
include
mime.types
;
include
mime.types
;
default_type
application/octet-stream
;
default_type
application/octet-stream
;
log_format
main
#log_format main "'$remote_addr - $remote_user [$time_local] "$request" '
#log_format main "'$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# '"$http_user_agent" "$http_x_forwarded_for"';
...
...
nginx/lua/luabiz/node_card.lua
View file @
956f2471
...
@@ -39,7 +39,7 @@ local function card_sql(db_st, total_time)
...
@@ -39,7 +39,7 @@ local function card_sql(db_st, total_time)
-- DELETE invalid rows
-- DELETE invalid rows
-- local sql_delete = [[DELETE FROM node_card WHERE (card_status != 0 AND card_status !=1) or now() > card_exp]]
-- local sql_delete = [[DELETE FROM node_card WHERE (card_status != 0 AND card_status !=1) or now() > card_exp]]
local
sql_update
=
[[UPDATE node_card SET card_status = 8 WHERE now() > card_exp]]
local
sql_update
=
string.format
(
[[UPDATE node_card SET card_status = 8 WHERE %d > card_exp]]
,
os.date
(
"%Y%m%d"
))
local
res
,
err
,
errcode
,
sqlstate
=
db
:
query
(
sql_update
)
local
res
,
err
,
errcode
,
sqlstate
=
db
:
query
(
sql_update
)
ngx
.
log
(
ngx
.
NOTICE
,
sql_update
)
ngx
.
log
(
ngx
.
NOTICE
,
sql_update
)
if
not
res
then
if
not
res
then
...
...
nginx/lua/luabiz/node_ticket.lua
View file @
956f2471
...
@@ -36,7 +36,7 @@ local function ticket_sql(db_st, total_time)
...
@@ -36,7 +36,7 @@ local function ticket_sql(db_st, total_time)
-- DELETE invalid rows
-- DELETE invalid rows
-- local sql_delete = [[DELETE FROM node_ticket WHERE (ticket_status != 0 AND ticket_status !=1) or now() > ticket_exp]]
-- local sql_delete = [[DELETE FROM node_ticket WHERE (ticket_status != 0 AND ticket_status !=1) or now() > ticket_exp]]
local
sql_update
=
[[UPDATE node_ticket SET ticket_status = 8 WHERE now() > ticket_exp]]
local
sql_update
=
string.format
(
[[UPDATE node_ticket SET ticket_status = 8 WHERE %d > ticket_exp]]
,
os.date
(
"%Y%m%d"
))
ngx
.
log
(
ngx
.
NOTICE
,
sql_update
)
ngx
.
log
(
ngx
.
NOTICE
,
sql_update
)
local
res
,
err
,
errcode
,
sqlstate
=
db
:
query
(
sql_update
)
local
res
,
err
,
errcode
,
sqlstate
=
db
:
query
(
sql_update
)
if
not
res
then
if
not
res
then
...
...
nginx/lua/luabiz/settle.lua
View file @
956f2471
local
SETTLE
=
{}
-- Settle modules
-- Settle modules
local
zx_base
=
loadmod
(
'zx_base'
)
local
zx_base
=
loadmod
(
'zx_base'
)
-- local node_asb = loadmod('node_asb')
-- local node_asb = loadmod('node_asb')
...
@@ -26,7 +27,7 @@ local tk_sync = loadmod('tk_sync')
...
@@ -26,7 +27,7 @@ local tk_sync = loadmod('tk_sync')
local
delay
=
5
-- delaytime
local
delay
=
5
-- delaytime
local
interval_time
=
'0
10
0'
-- time to run, here is 12:00 for each day
local
interval_time
=
'0
03
0'
-- time to run, here is 12:00 for each day
-- local settledate = "2018-08-16"
-- local settledate = "2018-08-16"
local
settledate
=
os.date
(
'%Y-%m-%d'
,
os.time
())
local
settledate
=
os.date
(
'%Y-%m-%d'
,
os.time
())
local
settletime
=
zx_base
:
date2time
(
settledate
)
local
settletime
=
zx_base
:
date2time
(
settledate
)
...
@@ -58,10 +59,17 @@ handler = function(premature, interval_time, settletime)
...
@@ -58,10 +59,17 @@ handler = function(premature, interval_time, settletime)
-- node_smsvip: run()
-- node_smsvip: run()
-- node_vipacct: run()
-- node_vipacct: run()
tk_sync
:
run
()
-- tk_sync: run()
node_card
:
run
(
settletime
)
-- node_card: run(settletime)
node_ticket
:
run
(
settletime
)
-- node_ticket: run(settletime)
tk_sdt
:
run
(
settletime
)
-- tk_sdt: run(settletime)
local
handle
=
io.popen
(
"curl localhost:8080/settle"
)
if
handle
then
handle
:
close
()
end
-- reset interval_time
-- reset interval_time
interval_time
=
tostring
(
tonumber
(
interval_time
)
-
1
)
interval_time
=
tostring
(
tonumber
(
interval_time
)
-
1
)
...
@@ -85,7 +93,6 @@ if ngx.worker.id() == 1 then
...
@@ -85,7 +93,6 @@ if ngx.worker.id() == 1 then
end
end
end
end
local
SETTLE
=
{}
function
SETTLE
.
run
()
function
SETTLE
.
run
()
local
args
=
ngx
.
req
.
get_uri_args
()
local
args
=
ngx
.
req
.
get_uri_args
()
local
t
local
t
...
...
nginx/lua/luabiz/tk_sdt.lua
View file @
956f2471
...
@@ -17,489 +17,553 @@ local tasks = {}
...
@@ -17,489 +17,553 @@ local tasks = {}
-- table tk_database 数据同步数据库名
-- table tk_database 数据同步数据库名
-- @return nil
-- @return nil
local
function
sdt_sql
(
tk_biz
,
tk_control
,
total_time
)
local
function
sdt_sql
(
tk_biz
,
tk_control
,
total_time
)
ngx
.
log
(
ngx
.
NOTICE
,
"-----------------------> START"
)
ngx
.
log
(
ngx
.
NOTICE
,
"-----------------------> START"
)
-- 新建mysql连接
-- 新建mysql连接
local
db_biz
,
err
=
mysql
:
new
()
local
db_biz
,
err
=
mysql
:
new
()
if
not
db_biz
then
if
not
db_biz
then
ngx
.
log
(
ngx
.
ERR
,
"failed to instantiate mysql: "
,
err
)
zx_base
:
log
(
"S"
,
"failed to instantiate mysql: "
,
err
)
return
false
return
false
end
end
-- 超时设置
-- 超时设置
db_biz
:
set_timeout
(
1000
)
db_biz
:
set_timeout
(
1000
)
-- 连接tk_biz
-- 连接tk_biz
local
ok
,
err
,
errcode
,
sqlstate
=
db_biz
:
connect
{
local
ok
,
err
,
errcode
,
sqlstate
=
db_biz
:
connect
{
host
=
tk_biz
[
'host'
],
host
=
tk_biz
[
'host'
],
port
=
tk_biz
[
'port'
],
port
=
tk_biz
[
'port'
],
database
=
tk_biz
[
'database'
],
database
=
tk_biz
[
'database'
],
user
=
tk_biz
[
'user'
],
user
=
tk_biz
[
'user'
],
password
=
tk_biz
[
'password'
],
password
=
tk_biz
[
'password'
],
timeout
=
tk_biz
[
'timeout'
],
timeout
=
tk_biz
[
'timeout'
],
charset
=
'utf8'
charset
=
'utf8'
}
}
if
not
ok
then
if
not
ok
then
ngx
.
log
(
ngx
.
ERR
,
json
.
encode
(
tk_biz
),
":"
,
err
,
errcode
,
sqlstate
)
zx_base
:
log
(
"S"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
errcode
,
sqlstate
)
return
return
end
end
-- 新建mysql连接
-- 新建mysql连接
local
db_control
,
err
=
mysql
:
new
()
local
db_control
,
err
=
mysql
:
new
()
if
not
db_control
then
if
not
db_control
then
ngx
.
log
(
ngx
.
ERR
,
"failed to instantiate mysql: "
,
err
)
zx_base
:
log
(
"S"
,
"failed to instantiate mysql: "
,
err
)
return
false
return
false
end
end
-- 超时设置
-- 超时设置
db_control
:
set_timeout
(
1000
)
db_control
:
set_timeout
(
1000
)
-- 连接tk_control
-- 连接tk_control
local
ok
,
err
,
errcode
,
sqlstate
=
db_control
:
connect
{
local
ok
,
err
,
errcode
,
sqlstate
=
db_control
:
connect
{
host
=
tk_control
[
'host'
],
host
=
tk_control
[
'host'
],
port
=
tk_control
[
'port'
],
port
=
tk_control
[
'port'
],
database
=
tk_control
[
'database'
],
database
=
tk_control
[
'database'
],
user
=
tk_control
[
'user'
],
user
=
tk_control
[
'user'
],
password
=
tk_control
[
'password'
],
password
=
tk_control
[
'password'
],
timeout
=
tk_control
[
'timeout'
],
timeout
=
tk_control
[
'timeout'
],
charset
=
'utf8'
charset
=
'utf8'
}
}
if
not
ok
then
if
not
ok
then
ngx
.
log
(
ngx
.
ERR
,
json
.
encode
(
tk_control
),
":"
,
err
,
errcode
,
sqlstate
)
zx_base
:
log
(
"S"
,
json
.
encode
(
tk_control
),
":"
,
err
,
errcode
,
sqlstate
)
return
return
end
end
-- GET shop_map_id list
-- GET shop_map_id list
local
shops
local
shops
local
sql_select
=
'SELECT DISTINCT shop_map_id FROM node_saleorder UNION SELECT DISTINCT shop_map_id FROM node_rchg;'
-- local sql_select = 'SELECT DISTINCT shop_map_id FROM node_saleorder UNION SELECT DISTINCT shop_map_id FROM node_rchg;'
shops
,
err
,
errcode
,
sqlstate
=
db_biz
:
query
(
sql_select
)
local
sql_select
=
'SELECT mer_map_id, shop_map_id FROM tk_shop'
ngx
.
log
(
ngx
.
NOTICE
,
sql_select
)
shops
,
err
,
errcode
,
sqlstate
=
db_biz
:
query
(
sql_select
)
if
not
shops
then
ngx
.
log
(
ngx
.
NOTICE
,
sql_select
)
ngx
.
log
(
ngx
.
ERR
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
if
not
shops
then
return
zx_base
:
log
(
"S"
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
end
return
end
for
i
=
1
,
#
shops
do
while
true
do
for
i
=
1
,
#
shops
do
local
shop
while
true
do
local
sql
=
{}
local
shop
local
res
local
sql
=
{}
local
res
shop
=
shops
[
i
]
shop
=
shops
[
i
]
-- GET summary
table.insert
(
sql
,
string.format
(
-- -- CHECK if exists
[[SELECT op_map_id, mer_map_id, shop_map_id, city_county_id, ]]
..
-- local sql_do = string.format(
[[IFNULL(COUNT(*), 0) t_order_cnt, ]]
..
-- [[SELECT * FROM tk_sdt WHERE DATE(total_date) = DATE('%s') ]]..
[[IFNULL(SUM(amt_pay), 0) t_order_amt, ]]
..
-- [[AND shop_map_id = %s]],
[[IFNULL(SUM(amt_profit), 0) t_order_profit, ]]
..
-- os.date('%Y%m%d',os.time()),
[[IFNULL(SUM(amt_point_num), 0) t_point_use_cnt, ]]
..
-- tostring(shop.shop_map_id))
[[IFNULL(SUM(amt_point), 0) t_point_use_amt, ]]
..
-- res, err, errcode, sqlstate = db_biz:query(sql_do)
[[IFNULL(SUM(amt_ticket_num), 0) t_ticket_use_cnt, ]]
..
-- if not res then
[[IFNULL(SUM(amt_ticket), 0) t_ticket_use_amt ]]
..
-- zx_base:log("S", "failed to connect:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
[[FROM node_saleorder ]]
..
-- zx_base:log("S", sql_do)
[[WHERE date(`create_time`) = date('%s') ]]
..
-- return
[[AND order_status = 0 ]]
..
-- end
[[AND shop_map_id = %s ]]
..
-- if #res ~= 0 then
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
-- ngx.log(ngx.NOTICE, shop['shop_map_id'], " finished already")
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
-- break
tostring
(
shop
.
shop_map_id
))
-- end
)
-- GET summary
-- GET online records
table.insert
(
sql
,
string.format
(
table.insert
(
sql
,
string.format
(
[[SELECT op_map_id, city_county_id, ]]
..
[[SELECT IFNULL(COUNT(*), 0) t_order_on_cnt, IFNULL(SUM(amt_pay), 0) t_order_on_amt ]]
..
[[IFNULL(COUNT(*), 0) t_order_cnt, ]]
..
[[FROM node_saleorder ]]
..
[[IFNULL(SUM(amt_pay), 0) t_order_amt, ]]
..
[[WHERE date(`create_time`) = date('%s') ]]
..
[[IFNULL(SUM(amt_profit), 0) t_order_profit, ]]
..
[[AND shop_map_id = %s ]]
..
[[IFNULL(SUM(amt_point_num), 0) t_point_use_cnt, ]]
..
[[AND order_source > 0 ]]
..
[[IFNULL(SUM(amt_point), 0) t_point_use_amt, ]]
..
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
[[IFNULL(SUM(amt_ticket_num), 0) t_ticket_use_cnt, ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[IFNULL(SUM(amt_ticket), 0) t_ticket_use_amt ]]
..
tostring
(
shop
.
shop_map_id
))
[[FROM node_saleorder ]]
..
)
[[WHERE date(`create_time`) = date('%s') ]]
..
[[AND order_status = 0 ]]
..
-- GET VIP/NOVIP records
[[AND shop_map_id = %s ]]
..
table.insert
(
sql
,
string.format
(
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
[[SELECT IFNULL(COUNT(*), 0) t_order_vip_cnt, IFNULL(SUM(amt_pay), 0) t_order_vip_amt ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[FROM node_saleorder ]]
..
tostring
(
shop
.
shop_map_id
))
[[WHERE date(`create_time`) = date('%s') ]]
..
)
[[AND shop_map_id = %s ]]
..
-- ngx.log(ngx.NOTICE, sql[1])
[[AND vip_map_id != 0 ]]
..
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
-- GET online records
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
table.insert
(
sql
,
string.format
(
tostring
(
shop
.
shop_map_id
))
[[SELECT IFNULL(COUNT(*), 0) t_order_on_cnt, IFNULL(SUM(amt_pay), 0) t_order_on_amt ]]
..
)
[[FROM node_saleorder ]]
..
[[WHERE date(`create_time`) = date('%s') ]]
..
-- GET MS records
[[AND shop_map_id = %s ]]
..
table.insert
(
sql
,
string.format
(
[[AND order_source > 0 ]]
..
[[SELECT IFNULL(COUNT(*), 0) t_order_ms_cnt ]]
..
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
[[FROM node_saleorder ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[WHERE date(`create_time`) = date('%s') ]]
..
tostring
(
shop
.
shop_map_id
))
[[AND shop_map_id = %s ]]
..
)
[[AND AMT_PROMOTE != 0 ]]
..
-- ngx.log(ngx.NOTICE, sql[2])
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
-- GET VIP/NOVIP records
tostring
(
shop
.
shop_map_id
))
table.insert
(
sql
,
string.format
(
)
[[SELECT IFNULL(COUNT(*), 0) t_order_vip_cnt, IFNULL(SUM(amt_pay), 0) t_order_vip_amt ]]
..
[[FROM node_saleorder ]]
..
-- GET 0000-0900 order
[[WHERE date(`create_time`) = date('%s') ]]
..
table.insert
(
sql
,
string.format
(
[[AND shop_map_id = %s ]]
..
[[SELECT IFNULL(COUNT(*), 0) time_cnt_0009, IFNULL(SUM(amt_pay), 0) time_amt_0009 ]]
..
[[AND vip_map_id != 0 ]]
..
[[FROM node_saleorder ]]
..
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
[[WHERE shop_map_id = %s ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
tostring
(
shop
.
shop_map_id
))
tostring
(
shop
.
shop_map_id
),
)
os.date
(
'%Y%m%d000000'
,
total_time
),
-- ngx.log(ngx.NOTICE, sql[3])
os.date
(
'%Y%m%d090000'
,
total_time
))
)
-- GET MS records
table.insert
(
sql
,
string.format
(
-- GET 0900-1100 order
[[SELECT IFNULL(COUNT(*), 0) t_order_ms_cnt ]]
..
table.insert
(
sql
,
string.format
(
[[FROM node_saleorder ]]
..
[[SELECT IFNULL(COUNT(*), 0) time_cnt_0911, IFNULL(SUM(amt_pay), 0) time_amt_0911 ]]
..
[[WHERE date(`create_time`) = date('%s') ]]
..
[[FROM node_saleorder ]]
..
[[AND shop_map_id = %s ]]
..
[[WHERE shop_map_id = %s ]]
..
[[AND AMT_PROMOTE != 0 ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[GROUP BY op_map_id, mer_map_id, shop_map_id, city_county_id;]]
,
tostring
(
shop
.
shop_map_id
),
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
os.date
(
'%Y%m%d090000'
,
total_time
),
tostring
(
shop
.
shop_map_id
))
os.date
(
'%Y%m%d110000'
,
total_time
))
)
)
-- ngx.log(ngx.NOTICE, sql[4])
-- GET 1100-1300 order
-- GET 0000-0900 order
table.insert
(
sql
,
string.format
(
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1113, IFNULL(SUM(amt_pay), 0) time_amt_1113 ]]
..
[[SELECT IFNULL(COUNT(*), 0) time_cnt_0009, IFNULL(SUM(amt_pay), 0) time_amt_0009 ]]
..
[[FROM node_saleorder ]]
..
[[FROM node_saleorder ]]
..
[[WHERE shop_map_id = %s ]]
..
[[WHERE shop_map_id = %s ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[AND order_status = 0 ]]
..
tostring
(
shop
.
shop_map_id
),
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
os.date
(
'%Y%m%d110000'
,
total_time
),
tostring
(
shop
.
shop_map_id
),
os.date
(
'%Y%m%d130000'
,
total_time
))
os.date
(
'%Y%m%d000000'
,
total_time
-
24
*
60
*
60
),
)
os.date
(
'%Y%m%d090000'
,
total_time
-
24
*
60
*
60
))
)
-- GET 1300-1500 order
-- ngx.log(ngx.NOTICE, sql[5])
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1315, IFNULL(SUM(amt_pay), 0) time_amt_1315 ]]
..
-- GET 0900-1100 order
[[FROM node_saleorder ]]
..
table.insert
(
sql
,
string.format
(
[[WHERE shop_map_id = %s ]]
..
[[SELECT IFNULL(COUNT(*), 0) time_cnt_0911, IFNULL(SUM(amt_pay), 0) time_amt_0911 ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[FROM node_saleorder ]]
..
tostring
(
shop
.
shop_map_id
),
[[WHERE shop_map_id = %s ]]
..
os.date
(
'%Y%m%d130000'
,
total_time
),
[[AND order_status = 0 ]]
..
os.date
(
'%Y%m%d150000'
,
total_time
))
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
)
tostring
(
shop
.
shop_map_id
),
os.date
(
'%Y%m%d090000'
,
total_time
-
24
*
60
*
60
),
-- GET 1500-1700 order
os.date
(
'%Y%m%d110000'
,
total_time
-
24
*
60
*
60
))
table.insert
(
sql
,
string.format
(
)
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1517, IFNULL(SUM(amt_pay), 0) time_amt_1517 ]]
..
-- ngx.log(ngx.NOTICE, sql[6])
[[FROM node_saleorder ]]
..
[[WHERE shop_map_id = %s ]]
..
-- GET 1100-1300 order
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
table.insert
(
sql
,
string.format
(
tostring
(
shop
.
shop_map_id
),
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1113, IFNULL(SUM(amt_pay), 0) time_amt_1113 ]]
..
os.date
(
'%Y%m%d150000'
,
total_time
),
[[FROM node_saleorder ]]
..
os.date
(
'%Y%m%d170000'
,
total_time
))
[[WHERE shop_map_id = %s ]]
..
)
[[AND order_status = 0 ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
-- GET 1700-1900 order
tostring
(
shop
.
shop_map_id
),
table.insert
(
sql
,
string.format
(
os.date
(
'%Y%m%d110000'
,
total_time
-
24
*
60
*
60
),
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1719, IFNULL(SUM(amt_pay), 0) time_amt_1719 ]]
..
os.date
(
'%Y%m%d130000'
,
total_time
-
24
*
60
*
60
))
[[FROM node_saleorder ]]
..
)
[[WHERE shop_map_id = %s ]]
..
-- ngx.log(ngx.NOTICE, sql[7])
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
tostring
(
shop
.
shop_map_id
),
-- GET 1300-1500 order
os.date
(
'%Y%m%d170000'
,
total_time
),
table.insert
(
sql
,
string.format
(
os.date
(
'%Y%m%d190000'
,
total_time
))
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1315, IFNULL(SUM(amt_pay), 0) time_amt_1315 ]]
..
)
[[FROM node_saleorder ]]
..
[[WHERE shop_map_id = %s ]]
..
-- GET 1900-2100 order
[[AND order_status = 0 ]]
..
table.insert
(
sql
,
string.format
(
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1921, IFNULL(SUM(amt_pay), 0) time_amt_1921 ]]
..
tostring
(
shop
.
shop_map_id
),
[[FROM node_saleorder ]]
..
os.date
(
'%Y%m%d130000'
,
total_time
-
24
*
60
*
60
),
[[WHERE shop_map_id = %s ]]
..
os.date
(
'%Y%m%d150000'
,
total_time
-
24
*
60
*
60
))
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
)
tostring
(
shop
.
shop_map_id
),
-- ngx.log(ngx.NOTICE, sql[8])
os.date
(
'%Y%m%d190000'
,
total_time
),
os.date
(
'%Y%m%d210000'
,
total_time
))
-- GET 1500-1700 order
)
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1517, IFNULL(SUM(amt_pay), 0) time_amt_1517 ]]
..
-- GET 2100-2400 order
[[FROM node_saleorder ]]
..
table.insert
(
sql
,
string.format
(
[[WHERE shop_map_id = %s ]]
..
[[SELECT IFNULL(COUNT(*), 0) time_cnt_2124, IFNULL(SUM(amt_pay), 0) time_amt_2124 ]]
..
[[AND order_status = 0 ]]
..
[[FROM node_saleorder ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[WHERE shop_map_id = %s ]]
..
tostring
(
shop
.
shop_map_id
),
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
os.date
(
'%Y%m%d150000'
,
total_time
-
24
*
60
*
60
),
tostring
(
shop
.
shop_map_id
),
os.date
(
'%Y%m%d170000'
,
total_time
-
24
*
60
*
60
))
os.date
(
'%Y%m%d210000'
,
total_time
),
)
os.date
(
'%Y%m%d235959'
,
total_time
))
-- ngx.log(ngx.NOTICE, sql[9])
)
-- GET 1700-1900 order
-- get VIP cnt
table.insert
(
sql
,
string.format
(
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1719, IFNULL(SUM(amt_pay), 0) time_amt_1719 ]]
..
[[SELECT IFNULL(COUNT(vip_map_id), 0) t_vip_cnt ]]
..
[[FROM node_saleorder ]]
..
[[FROM node_vipacct ]]
..
[[WHERE shop_map_id = %s ]]
..
[[WHERE shop_map_id IN ]]
..
[[AND order_status = 0 ]]
..
[[(SELECT shop_map_id FROM tk_shop ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[WHERE shop_grp_id IN ]]
..
tostring
(
shop
.
shop_map_id
),
[[(SELECT shop_grp_id FROM node_shopgrp ]]
..
os.date
(
'%Y%m%d170000'
,
total_time
-
24
*
60
*
60
),
[[WHERE mer_map_id = (SELECT mer_map_id FROM tk_shop WHERE shop_map_id = %s)));]]
,
os.date
(
'%Y%m%d190000'
,
total_time
-
24
*
60
*
60
))
tostring
(
shop
[
'shop_map_id'
]))
)
)
-- ngx.log(ngx.NOTICE, sql[10])
-- GET VIP new cnt
-- GET 1900-2100 order
table.insert
(
sql
,
string.format
(
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(vip_map_id), 0) t_vip_newcnt ]]
..
[[SELECT IFNULL(COUNT(*), 0) time_cnt_1921, IFNULL(SUM(amt_pay), 0) time_amt_1921 ]]
..
[[FROM node_vipacct ]]
..
[[FROM node_saleorder ]]
..
[[WHERE DATE(create_time) = DATE('%s') ]]
..
[[WHERE shop_map_id = %s ]]
..
[[AND shop_map_id IN ]]
..
[[AND order_status = 0 ]]
..
[[(SELECT shop_map_id FROM tk_shop ]]
..
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
[[WHERE shop_grp_id IN ]]
..
tostring
(
shop
.
shop_map_id
),
[[(SELECT shop_grp_id FROM node_shopgrp ]]
..
os.date
(
'%Y%m%d190000'
,
total_time
-
24
*
60
*
60
),
[[WHERE mer_map_id = (SELECT mer_map_id FROM tk_shop WHERE shop_map_id = %s)));]]
,
os.date
(
'%Y%m%d210000'
,
total_time
-
24
*
60
*
60
))
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
)
tostring
(
shop
[
'shop_map_id'
]))
-- ngx.log(ngx.NOTICE, sql[11])
)
-- GET 2100-2400 order
-- GET charge summary
table.insert
(
sql
,
string.format
(
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) time_cnt_2124, IFNULL(SUM(amt_pay), 0) time_amt_2124 ]]
..
[[SELECT IFNULL(COUNT(*), 0) t_charge_cnt, IFNULL(SUM(pay_amt), 0) t_charge_amt ]]
..
[[FROM node_saleorder ]]
..
[[FROM node_rchg ]]
..
[[WHERE shop_map_id = %s ]]
..
[[WHERE DATE(create_time) = DATE('%s') ]]
..
[[AND order_status = 0 ]]
..
[[AND shop_map_id = %s;]]
,
[[AND `create_time` > '%s' AND `create_time` < '%s'; ]]
,
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
tostring
(
shop
.
shop_map_id
),
tostring
(
shop
.
shop_map_id
))
os.date
(
'%Y%m%d210000'
,
total_time
-
24
*
60
*
60
),
)
os.date
(
'%Y%m%d235959'
,
total_time
-
24
*
60
*
60
))
)
-- GET cash summary
-- ngx.log(ngx.NOTICE, sql[12])
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) pay_cash_cnt, IFNULL(SUM(pay_amt), 0) pay_cash_amt ]]
..
-- get VIP cnt
[[FROM node_payment ]]
..
table.insert
(
sql
,
string.format
(
[[WHERE DATE(create_time) = DATE('%s') ]]
..
[[SELECT IFNULL(COUNT(DISTINCT(vip_map_id)), 0) t_vip_cnt ]]
..
[[AND pay_type_id = 1 ]]
..
-- paytype
[[FROM node_vipacct ]]
..
[[AND shop_map_id = %s;]]
,
[[WHERE DATE(create_time) <= %s ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[AND mer_map_id = ]]
..
tostring
(
shop
.
shop_map_id
))
[[(SELECT mer_map_id FROM tk_shop WHERE shop_map_id = %s);]]
,
)
os.date
(
'%Y%m%d'
,
total_time
-
24
*
60
*
60
),
tostring
(
shop
[
'shop_map_id'
]))
-- GET WeiXin summary
)
table.insert
(
sql
,
string.format
(
-- ngx.log(ngx.NOTICE, sql[13])
[[SELECT IFNULL(COUNT(*), 0) pay_wx_cnt, IFNULL(SUM(pay_amt), 0) pay_wx_amt ]]
..
[[FROM node_payment ]]
..
-- GET VIP new cnt
[[WHERE DATE(create_time) = DATE('%s') ]]
..
table.insert
(
sql
,
string.format
(
[[AND pay_type_id = 2 ]]
..
-- paytype
[[SELECT IFNULL(COUNT(DISTINCT(vip_map_id)), 0) t_vip_newcnt ]]
..
[[AND shop_map_id = %s;]]
,
[[FROM node_vipacct ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[WHERE DATE(create_time) = DATE('%s') ]]
..
tostring
(
shop
.
shop_map_id
))
[[AND mer_map_id = ]]
..
)
[[(SELECT mer_map_id FROM tk_shop WHERE shop_map_id = %s);]]
,
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
-- GET AliPay summary
tostring
(
shop
[
'shop_map_id'
]))
table.insert
(
sql
,
string.format
(
)
[[SELECT IFNULL(COUNT(*), 0) pay_alipay_cnt, IFNULL(SUM(pay_amt), 0) pay_alipay_amt ]]
..
-- ngx.log(ngx.NOTICE, sql[14])
[[FROM node_payment ]]
..
[[WHERE DATE(create_time) = DATE('%s') ]]
..
-- GET charge summary
[[AND pay_type_id = 3 ]]
..
-- paytype
table.insert
(
sql
,
string.format
(
[[AND shop_map_id = %s;]]
,
[[SELECT IFNULL(COUNT(*), 0) t_charge_cnt, IFNULL(SUM(pay_amt), 0) t_charge_amt ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[FROM node_rchg ]]
..
tostring
(
shop
.
shop_map_id
))
[[WHERE DATE(create_time) = DATE('%s') ]]
..
)
[[AND shop_map_id = %s;]]
,
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
-- GET bank summary
tostring
(
shop
.
shop_map_id
))
table.insert
(
sql
,
string.format
(
)
[[SELECT IFNULL(COUNT(*), 0) pay_bank_cnt, IFNULL(SUM(pay_amt), 0) pay_bank_amt ]]
..
-- ngx.log(ngx.NOTICE, sql[15])
[[FROM node_payment ]]
..
[[WHERE DATE(create_time) = DATE('%s') ]]
..
-- GET cash summary
[[AND pay_type_id = 4 ]]
..
-- paytype
table.insert
(
sql
,
string.format
(
[[AND shop_map_id = %s;]]
,
[[SELECT IFNULL(COUNT(*), 0) pay_cash_cnt, IFNULL(SUM(pay_amt), 0) pay_cash_amt ]]
..
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[FROM node_payment ]]
..
tostring
(
shop
.
shop_map_id
))
[[WHERE DATE(create_time) = DATE('%s') ]]
..
)
[[AND pay_type_id = 1 ]]
..
-- paytype
[[AND shop_map_id = %s;]]
,
-- GET vipcard summary
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
table.insert
(
sql
,
string.format
(
tostring
(
shop
.
shop_map_id
))
[[SELECT IFNULL(COUNT(*), 0) pay_vipcard_cnt, IFNULL(SUM(pay_amt), 0) pay_vipcard_amt ]]
..
)
[[FROM node_payment ]]
..
-- ngx.log(ngx.NOTICE, sql[16])
[[WHERE DATE(create_time) = DATE('%s') ]]
..
[[AND (pay_type_id = 5 OR pay_type_id = 6) ]]
..
-- paytype
-- GET WeiXin summary
[[AND shop_map_id = %s;]]
,
table.insert
(
sql
,
string.format
(
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[SELECT IFNULL(COUNT(*), 0) pay_wx_cnt, IFNULL(SUM(pay_amt), 0) pay_wx_amt ]]
..
tostring
(
shop
.
shop_map_id
))
[[FROM node_payment ]]
..
)
[[WHERE DATE(create_time) = DATE('%s') ]]
..
[[AND pay_type_id = 2 ]]
..
-- paytype
-- GET othpay summary
[[AND shop_map_id = %s;]]
,
table.insert
(
sql
,
string.format
(
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
[[SELECT IFNULL(COUNT(*), 0) pay_othpay_cnt, IFNULL(SUM(pay_amt), 0) pay_othpay_amt ]]
..
tostring
(
shop
.
shop_map_id
))
[[FROM node_payment ]]
..
)
[[WHERE DATE(create_time) = DATE('%s') ]]
..
-- ngx.log(ngx.NOTICE, sql[17])
[[AND pay_type_id = 9 ]]
..
-- paytype
[[AND shop_map_id = %s;]]
,
-- GET AliPay summary
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
table.insert
(
sql
,
string.format
(
tostring
(
shop
.
shop_map_id
))
[[SELECT IFNULL(COUNT(*), 0) pay_alipay_cnt, IFNULL(SUM(pay_amt), 0) pay_alipay_amt ]]
..
)
[[FROM node_payment ]]
..
[[WHERE DATE(create_time) = DATE('%s') ]]
..
ngx
.
log
(
ngx
.
NOTICE
,
sql
[
1
])
[[AND pay_type_id = 3 ]]
..
-- paytype
res
,
err
,
errcode
,
sqlstate
=
db_biz
:
query
(
table.concat
(
sql
))
[[AND shop_map_id = %s;]]
,
if
not
res
then
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
ngx
.
log
(
ngx
.
ERR
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
tostring
(
shop
.
shop_map_id
))
return
)
end
-- ngx.log(ngx.NOTICE, sql[18])
if
#
res
~=
0
then
-- GET bank summary
for
k
,
v
in
pairs
(
res
[
1
])
do
table.insert
(
sql
,
string.format
(
shop
[
k
]
=
v
[[SELECT IFNULL(COUNT(*), 0) pay_bank_cnt, IFNULL(SUM(pay_amt), 0) pay_bank_amt ]]
..
end
[[FROM node_payment ]]
..
end
[[WHERE DATE(create_time) = DATE('%s') ]]
..
[[AND pay_type_id = 4 ]]
..
-- paytype
local
j
=
2
[[AND shop_map_id = %s;]]
,
while
err
==
"again"
do
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
ngx
.
log
(
ngx
.
NOTICE
,
sql
[
j
])
tostring
(
shop
.
shop_map_id
))
res
,
err
,
errcode
,
sqlstate
=
db_biz
:
read_result
()
)
if
not
res
then
-- ngx.log(ngx.NOTICE, sql[19])
ngx
.
log
(
ngx
.
ERR
,
"bad result #"
,
j
,
": "
,
err
,
": "
,
errcode
,
": "
,
sqlstate
,
"."
)
return
ngx
.
exit
(
500
)
-- GET vipcard summary
end
table.insert
(
sql
,
string.format
(
[[SELECT IFNULL(COUNT(*), 0) pay_vipcard_cnt, IFNULL(SUM(pay_amt), 0) pay_vipcard_amt ]]
..
if
#
res
~=
0
then
[[FROM node_payment ]]
..
for
k
,
v
in
pairs
(
res
[
1
])
do
[[WHERE DATE(create_time) = DATE('%s') ]]
..
shop
[
k
]
=
v
[[AND (pay_type_id = 5 OR pay_type_id = 6) ]]
..
-- paytype
end
[[AND shop_map_id = %s;]]
,
j
=
j
+
1
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
end
tostring
(
shop
.
shop_map_id
))
end
)
-- ngx.log(ngx.NOTICE, sql[20])
-- SET total_date
shop
[
'total_date'
]
=
zx_base
:
tonumber
(
os.date
(
'%Y%m%d'
,
total_time
))
-- GET othpay summary
table.insert
(
sql
,
string.format
(
-- INSERT INTO tk_sdt
[[SELECT IFNULL(COUNT(*), 0) pay_othpay_cnt, IFNULL(SUM(pay_amt), 0) pay_othpay_amt ]]
..
local
str
=
zx_base
:
sql_concate
(
'duplicate'
,
'tk_sdt'
,
shop
)
[[FROM node_payment ]]
..
[[WHERE DATE(create_time) = DATE('%s') ]]
..
-- Convert type
[[AND pay_type_id = 9 ]]
..
-- paytype
shop
[
'op_map_id'
]
=
zx_base
:
tonumber
(
shop
[
'op_map_id'
])
[[AND shop_map_id = %s;]]
,
shop
[
'mer_map_id'
]
=
zx_base
:
tonumber
(
shop
[
'mer_map_id'
])
os.date
(
"%Y%m%d"
,
total_time
-
24
*
60
*
60
),
shop
[
'shop_map_id'
]
=
zx_base
:
tonumber
(
shop
[
'shop_map_id'
])
tostring
(
shop
.
shop_map_id
))
shop
[
'total_date'
]
=
zx_base
:
tonumber
(
shop
[
'total_date'
])
)
shop
[
'city_county_id'
]
=
zx_base
:
tonumber
(
shop
[
'city_county_id'
])
-- ngx.log(ngx.NOTICE, sql[21])
shop
[
't_order_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_cnt'
])
shop
[
't_order_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_amt'
])
res
,
err
,
errcode
,
sqlstate
=
db_biz
:
query
(
table.concat
(
sql
))
shop
[
't_order_on_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_on_cnt'
])
if
not
res
then
shop
[
't_order_on_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_on_amt'
])
zx_base
:
log
(
"S"
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
shop
[
't_order_off_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_off_cnt'
])
return
shop
[
't_order_off_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_off_amt'
])
end
shop
[
't_order_vip_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_vip_cnt'
])
shop
[
't_order_vip_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_vip_amt'
])
if
#
res
~=
0
then
shop
[
't_order_novip_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_novip_cnt'
])
for
k
,
v
in
pairs
(
res
[
1
])
do
shop
[
't_order_novip_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_novip_amt'
])
shop
[
k
]
=
v
shop
[
't_order_ms_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_ms_cnt'
])
end
shop
[
't_order_avg_price'
]
=
zx_base
:
tonumber
(
shop
[
't_order_avg_price'
])
-- else
shop
[
't_order_profit'
]
=
zx_base
:
tonumber
(
shop
[
't_order_profit'
])
-- break
shop
[
't_order_profit_per'
]
=
zx_base
:
tonumber
(
shop
[
't_order_profit_per'
])
end
shop
[
't_vip_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_vip_cnt'
])
shop
[
't_vip_newcnt'
]
=
zx_base
:
tonumber
(
shop
[
't_vip_newcnt'
])
ngx
.
log
(
ngx
.
NOTICE
,
shop
[
't_charge_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_charge_cnt'
])
string.format
(
"================ TK_SDT [%s - %s] =========="
,
shop
[
't_charge_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_charge_amt'
])
tostring
(
shop
[
'shop_map_id'
]),
shop
[
't_point_use_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_use_cnt'
])
os.date
(
"%Y%m%d"
,
total_time
)))
shop
[
't_point_use_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_use_amt'
])
for
k
,
v
in
pairs
(
shop
)
do
shop
[
't_ticket_use_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_use_cnt'
])
ngx
.
log
(
ngx
.
NOTICE
,
string.format
(
"%-32s : %s"
,
k
,
tostring
(
v
)))
shop
[
't_ticket_use_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_use_amt'
])
end
shop
[
't_point_send_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_send_cnt'
])
shop
[
't_point_send_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_send_amt'
])
local
j
=
2
shop
[
't_ticket_send_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_send_cnt'
])
while
err
==
"again"
do
shop
[
't_ticket_send_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_send_amt'
])
-- repeat
shop
[
'pay_cash_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_cash_cnt'
])
res
,
err
,
errcode
,
sqlstate
=
db_biz
:
read_result
()
shop
[
'pay_cash_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_cash_amt'
])
if
not
res
then
shop
[
'pay_bank_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_bank_cnt'
])
zx_base
:
log
(
"S"
,
"bad sql: "
,
sql
[
j
])
shop
[
'pay_bank_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_bank_amt'
])
zx_base
:
log
(
"S"
,
"bad result #"
,
j
,
": "
,
err
,
": "
,
errcode
,
": "
,
sqlstate
,
"."
)
shop
[
'pay_vipcard_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_vipcard_cnt'
])
return
ngx
.
exit
(
500
)
shop
[
'pay_vipcard_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_vipcard_amt'
])
end
shop
[
'pay_wx_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_wx_cnt'
])
shop
[
'pay_wx_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_wx_amt'
])
ngx
.
log
(
ngx
.
NOTICE
,
shop
[
'pay_alipay_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_alipay_cnt'
])
string.format
(
"================ TK_SDT [%s - %s] =========="
,
shop
[
'pay_alipay_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_alipay_amt'
])
tostring
(
shop
[
'shop_map_id'
]),
shop
[
'pay_othpay_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_othpay_cnt'
])
os.date
(
"%Y%m%d"
,
total_time
)))
shop
[
'pay_othpay_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_othpay_amt'
])
for
k
,
v
in
pairs
(
shop
)
do
shop
[
'time_cnt_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_0009'
])
ngx
.
log
(
ngx
.
NOTICE
,
string.format
(
"%-32s : %s"
,
k
,
tostring
(
v
)))
shop
[
'time_amt_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_0009'
])
end
shop
[
'time_avg_price_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_0009'
])
shop
[
'time_profit_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_0009'
])
if
#
res
~=
0
then
shop
[
'time_profit_per_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_0009'
])
for
k
,
v
in
pairs
(
res
[
1
])
do
shop
[
'time_cnt_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_0911'
])
shop
[
k
]
=
v
shop
[
'time_amt_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_0911'
])
end
shop
[
'time_avg_price_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_0911'
])
j
=
j
+
1
shop
[
'time_profit_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_0911'
])
end
shop
[
'time_profit_per_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_0911'
])
-- until(err ~= "again")
shop
[
'time_cnt_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1113'
])
end
shop
[
'time_amt_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1113'
])
shop
[
'time_avg_price_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1113'
])
-- SET total_date
shop
[
'time_profit_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1113'
])
shop
[
'total_date'
]
=
zx_base
:
tonumber
(
os.date
(
'%Y%m%d'
,
total_time
))
shop
[
'time_profit_per_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1113'
])
shop
[
'time_cnt_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1315'
])
-- Convert type
shop
[
'time_amt_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1315'
])
shop
[
'op_map_id'
]
=
zx_base
:
tonumber
(
shop
[
'op_map_id'
])
shop
[
'time_avg_price_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1315'
])
shop
[
'mer_map_id'
]
=
zx_base
:
tonumber
(
shop
[
'mer_map_id'
])
shop
[
'time_profit_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1315'
])
shop
[
'shop_map_id'
]
=
zx_base
:
tonumber
(
shop
[
'shop_map_id'
])
shop
[
'time_profit_per_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1315'
])
shop
[
'total_date'
]
=
zx_base
:
tonumber
(
shop
[
'total_date'
])
shop
[
'time_cnt_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1517'
])
shop
[
'city_county_id'
]
=
zx_base
:
tonumber
(
shop
[
'city_county_id'
])
shop
[
'time_amt_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1517'
])
shop
[
't_order_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_cnt'
])
shop
[
'time_avg_price_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1517'
])
shop
[
't_order_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_amt'
])
shop
[
'time_profit_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1517'
])
shop
[
't_order_on_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_on_cnt'
])
shop
[
'time_profit_per_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1517'
])
shop
[
't_order_on_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_on_amt'
])
shop
[
'time_cnt_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1719'
])
shop
[
't_order_off_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_off_cnt'
])
shop
[
'time_amt_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1719'
])
shop
[
't_order_off_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_off_amt'
])
shop
[
'time_avg_price_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1719'
])
shop
[
't_order_vip_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_vip_cnt'
])
shop
[
'time_profit_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1719'
])
shop
[
't_order_vip_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_vip_amt'
])
shop
[
'time_profit_per_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1719'
])
shop
[
't_order_novip_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_novip_cnt'
])
shop
[
'time_cnt_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1921'
])
shop
[
't_order_novip_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_novip_amt'
])
shop
[
'time_amt_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1921'
])
shop
[
't_order_ms_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_order_ms_cnt'
])
shop
[
'time_avg_price_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1921'
])
shop
[
't_order_avg_price'
]
=
zx_base
:
tonumber
(
shop
[
't_order_avg_price'
])
shop
[
'time_profit_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1921'
])
shop
[
't_order_profit'
]
=
zx_base
:
tonumber
(
shop
[
't_order_profit'
])
shop
[
'time_profit_per_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1921'
])
shop
[
't_order_profit_per'
]
=
zx_base
:
tonumber
(
shop
[
't_order_profit_per'
])
shop
[
'time_cnt_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_2124'
])
shop
[
't_vip_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_vip_cnt'
])
shop
[
'time_amt_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_2124'
])
-- shop['vip_cnt'] = zx_base:tonumber(shop['vip_cnt'])
shop
[
'time_avg_price_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_2124'
])
shop
[
't_vip_newcnt'
]
=
zx_base
:
tonumber
(
shop
[
't_vip_newcnt'
])
shop
[
'time_profit_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_2124'
])
shop
[
't_charge_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_charge_cnt'
])
shop
[
'time_profit_per_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_2124'
])
shop
[
't_charge_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_charge_amt'
])
shop
[
't_point_use_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_use_cnt'
])
-- Calculate
shop
[
't_point_use_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_use_amt'
])
shop
[
't_order_off_amt'
]
=
shop
[
't_order_amt'
]
-
shop
[
't_order_on_amt'
]
shop
[
't_ticket_use_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_use_cnt'
])
shop
[
't_order_off_cnt'
]
=
shop
[
't_order_cnt'
]
-
shop
[
't_order_on_cnt'
]
shop
[
't_ticket_use_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_use_amt'
])
shop
[
't_order_novip_amt'
]
=
shop
[
't_order_amt'
]
-
shop
[
't_order_vip_amt'
]
shop
[
't_point_send_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_send_cnt'
])
shop
[
't_order_novip_cnt'
]
=
shop
[
't_order_cnt'
]
-
shop
[
't_order_vip_cnt'
]
shop
[
't_point_send_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_point_send_amt'
])
shop
[
't_ticket_send_cnt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_send_cnt'
])
shop
[
't_ticket_send_amt'
]
=
zx_base
:
tonumber
(
shop
[
't_ticket_send_amt'
])
if
shop
[
't_order_amt'
]
==
0
or
shop
[
't_order_cnt'
]
==
0
then
shop
[
'pay_cash_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_cash_cnt'
])
shop
[
't_order_avg_price'
]
=
0
shop
[
'pay_cash_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_cash_amt'
])
shop
[
't_order_profit_per'
]
=
0
shop
[
'pay_bank_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_bank_cnt'
])
else
shop
[
'pay_bank_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_bank_amt'
])
shop
[
't_order_avg_price'
]
=
shop
[
't_order_amt'
]
/
shop
[
't_order_cnt'
]
shop
[
'pay_vipcard_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_vipcard_cnt'
])
shop
[
't_order_profit_per'
]
=
shop
[
't_order_profit'
]
/
shop
[
't_order_amt'
]
*
10000
shop
[
'pay_vipcard_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_vipcard_amt'
])
end
shop
[
'pay_wx_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_wx_cnt'
])
shop
[
'pay_wx_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_wx_amt'
])
if
shop
[
't_order_cnt'
]
==
0
then
shop
[
'pay_alipay_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_alipay_cnt'
])
break
shop
[
'pay_alipay_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_alipay_amt'
])
shop
[
'pay_othpay_cnt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_othpay_cnt'
])
shop
[
'pay_othpay_amt'
]
=
zx_base
:
tonumber
(
shop
[
'pay_othpay_amt'
])
shop
[
'time_cnt_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_0009'
])
shop
[
'time_amt_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_0009'
])
shop
[
'time_avg_price_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_0009'
])
shop
[
'time_profit_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_0009'
])
shop
[
'time_profit_per_0009'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_0009'
])
shop
[
'time_cnt_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_0911'
])
shop
[
'time_amt_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_0911'
])
shop
[
'time_avg_price_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_0911'
])
shop
[
'time_profit_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_0911'
])
shop
[
'time_profit_per_0911'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_0911'
])
shop
[
'time_cnt_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1113'
])
shop
[
'time_amt_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1113'
])
shop
[
'time_avg_price_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1113'
])
shop
[
'time_profit_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1113'
])
shop
[
'time_profit_per_1113'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1113'
])
shop
[
'time_cnt_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1315'
])
shop
[
'time_amt_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1315'
])
shop
[
'time_avg_price_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1315'
])
shop
[
'time_profit_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1315'
])
shop
[
'time_profit_per_1315'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1315'
])
shop
[
'time_cnt_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1517'
])
shop
[
'time_amt_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1517'
])
shop
[
'time_avg_price_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1517'
])
shop
[
'time_profit_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1517'
])
shop
[
'time_profit_per_1517'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1517'
])
shop
[
'time_cnt_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1719'
])
shop
[
'time_amt_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1719'
])
shop
[
'time_avg_price_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1719'
])
shop
[
'time_profit_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1719'
])
shop
[
'time_profit_per_1719'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1719'
])
shop
[
'time_cnt_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_1921'
])
shop
[
'time_amt_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_1921'
])
shop
[
'time_avg_price_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_1921'
])
shop
[
'time_profit_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_1921'
])
shop
[
'time_profit_per_1921'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_1921'
])
shop
[
'time_cnt_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_cnt_2124'
])
shop
[
'time_amt_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_amt_2124'
])
shop
[
'time_avg_price_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_avg_price_2124'
])
shop
[
'time_profit_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_2124'
])
shop
[
'time_profit_per_2124'
]
=
zx_base
:
tonumber
(
shop
[
'time_profit_per_2124'
])
-- Calculate
shop
[
't_order_off_amt'
]
=
shop
[
't_order_amt'
]
-
shop
[
't_order_on_amt'
]
shop
[
't_order_off_cnt'
]
=
shop
[
't_order_cnt'
]
-
shop
[
't_order_on_cnt'
]
shop
[
't_order_novip_amt'
]
=
shop
[
't_order_amt'
]
-
shop
[
't_order_vip_amt'
]
shop
[
't_order_novip_cnt'
]
=
shop
[
't_order_cnt'
]
-
shop
[
't_order_vip_cnt'
]
if
shop
[
't_order_amt'
]
==
0
or
shop
[
't_order_cnt'
]
==
0
then
shop
[
't_order_avg_price'
]
=
0
shop
[
't_order_profit_per'
]
=
0
else
-- shop['t_order_avg_price'] = shop['t_order_amt'] / (shop['vip_cnt'] + shop['t_order_novip_cnt'] - 1)
shop
[
't_order_avg_price'
]
=
math.floor
(
shop
[
't_order_amt'
]
/
shop
[
't_order_cnt'
])
shop
[
't_order_profit_per'
]
=
math.floor
(
shop
[
't_order_profit'
]
/
shop
[
't_order_amt'
]
*
10000
)
end
-- if shop['t_order_cnt'] == 0 and shop['t_vip_newcnt'] == 0 and shop['t_vip_cnt'] == 0 then
-- break
-- end
-- INSERT INTO tk_sdt
local
str
=
zx_base
:
sql_concate
(
'duplicate'
,
'tk_sdt'
,
shop
)
-- INSERT INTO tk_biz database
res
,
err
,
errcode
,
sqlstate
=
db_biz
:
query
(
str
)
ngx
.
log
(
ngx
.
NOTICE
,
str
)
if
not
res
then
zx_base
:
log
(
"S"
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
return
end
-- -- INSERT INTO tk_control database
-- res, err, errcode, sqlstate = db_control:query(str)
-- ngx.log(ngx.NOTICE, str)
-- if not res then
-- zx_base:log("S", "failed to query:", json.encode(tk_control),
-- ":", err, ":", errcode, ":", sqlstate, ".")
-- -- return
-- end
-- table.insert(shops, shop)
break
end
end
end
-- INSERT INTO tk_biz database
zx_base
:
close_db
(
db_biz
)
res
,
err
,
errcode
,
sqlstate
=
db_biz
:
query
(
str
)
zx_base
:
close_db
(
db_control
)
ngx
.
log
(
ngx
.
NOTICE
,
str
)
ngx
.
log
(
ngx
.
NOTICE
,
"-----------------------> END"
)
if
not
res
then
ngx
.
log
(
ngx
.
ERR
,
"failed to query:"
,
json
.
encode
(
tk_biz
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
return
end
-- INSERT INTO tk_control database
res
,
err
,
errcode
,
sqlstate
=
db_control
:
query
(
str
)
ngx
.
log
(
ngx
.
NOTICE
,
str
)
if
not
res
then
ngx
.
log
(
ngx
.
ERR
,
"failed to query:"
,
json
.
encode
(
tk_control
),
":"
,
err
,
":"
,
errcode
,
":"
,
sqlstate
,
"."
)
return
end
-- table.insert(shops, shop)
break
end
end
zx_base
:
close_db
(
db_biz
)
zx_base
:
close_db
(
db_control
)
ngx
.
log
(
ngx
.
NOTICE
,
"-----------------------> END"
)
end
end
...
@@ -510,46 +574,46 @@ end
...
@@ -510,46 +574,46 @@ end
-- table tk_database 数据同步数据库名
-- table tk_database 数据同步数据库名
-- @return nil
-- @return nil
local
function
async
(
tk_biz
,
tk_control
,
total_time
)
local
function
async
(
tk_biz
,
tk_control
,
total_time
)
local
co
=
coroutine.wrap
(
local
co
=
coroutine.wrap
(
function
()
function
()
sdt_sql
(
tk_biz
,
tk_control
,
total_time
)
sdt_sql
(
tk_biz
,
tk_control
,
total_time
)
end
end
)
)
table.insert
(
tasks
,
co
)
table.insert
(
tasks
,
co
)
end
end
-- 协程调度
-- 协程调度
-- @param nil
-- @param nil
-- @return nil
-- @return nil
local
function
dispatch
()
local
function
dispatch
()
local
i
=
1
local
i
=
1
while
true
do
while
true
do
if
tasks
[
i
]
==
nil
then
if
tasks
[
i
]
==
nil
then
if
tasks
[
1
]
==
nil
then
if
tasks
[
1
]
==
nil
then
break
break
end
i
=
1
end
local
res
=
tasks
[
i
]()
if
not
res
then
table.remove
(
tasks
,
i
)
else
i
=
i
+
1
end
end
i
=
1
end
end
local
res
=
tasks
[
i
]()
if
not
res
then
table.remove
(
tasks
,
i
)
else
i
=
i
+
1
end
end
end
end
-- 跑批业务处理
-- 跑批业务处理
-- @param nil
-- @param nil
-- @return nil
-- @return nil
function
TK_SDT
.
run
(
self
,
total_time
)
function
TK_SDT
.
run
(
self
,
total_time
)
-- local dbs_st = zx_base:db_read(db_conf)
-- local dbs_st = zx_base:db_read(db_conf)
for
i
=
1
,
#
dbs_st
.
tk_biz
do
for
i
=
1
,
#
dbs_st
.
tk_biz
do
-- async(dbs_st.tk_biz[i], dbs_st.tk_control, total_time)
-- async(dbs_st.tk_biz[i], dbs_st.tk_control, total_time)
sdt_sql
(
dbs_st
.
tk_biz
[
i
],
dbs_st
.
tk_control
,
total_time
)
sdt_sql
(
dbs_st
.
tk_biz
[
i
],
dbs_st
.
tk_control
,
total_time
)
end
end
-- dispatch()
-- dispatch()
end
end
return
TK_SDT
return
TK_SDT
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment