Commit 211056b9 authored by 周尚's avatar 周尚

流水订单类 [完成]

parent 1aa2ed34
......@@ -24,19 +24,19 @@
2. [X] 券账户
3. [X] 充值优惠
4. [X] 促销计划
4. [ ] 订单流水
1. [ ] 支付流水
2. [ ] 会员充值订单
3. [ ] 门店零售订单
4. [ ] 门店零售明细
5. [ ] 门店进货订单
6. [ ] 门店进货明细
7. [ ] 门店调拨记录
8. [ ] 门店调拨明细
9. [ ] 门店盘库记录
10. [ ] 门店盘库明细
11. [ ] 短信流水
12. [ ] 交班记录
4. [X] 订单流水
1. [X] 支付流水
2. [X] 会员充值订单
3. [X] 门店零售订单
4. [X] 门店零售明细
5. [X] 门店进货订单
6. [X] 门店进货明细
7. [X] 门店调拨记录
8. [X] 门店调拨明细
9. [X] 门店盘库记录
10. [X] 门店盘库明细
11. [X] 短信流水
12. [X] 交班记录
5. [ ] 统计汇总
1. [ ] 门店日统计
2. [ ] 会员日统计
local _ASB = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function asb_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[ASB]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_ASB]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_asbtail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_ASB]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_ASB", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_asb ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_ASB]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_ASB", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
asb_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _ASB.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _ASB
local _ASBDETAIL = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function asbdetail_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[ASBDETAIL]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_ASBDETAIL]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_asbdetailtail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_ASBDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_ASBDETAIL", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_asbdetail ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_ASBDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_ASBDETAIL", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
asbdetail_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _ASBDETAIL.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _ASBDETAIL
......@@ -38,8 +38,8 @@ local function card_sql(db_st)
end
-- DELETE invalid rows
-- local sql_delete = [[DELETE FROM node_card WHERE (card_status != 0 AND card_status !=1) or current_time() > card_exp]]
local sql_update = [[UPDATE node_card SET card_status = 8 WHERE current_time() > 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 res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_CARD]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......@@ -57,7 +57,7 @@ local function card_sql(db_st)
end
-- INSERT INTO history table
local sql_insert = string.format([[INSERT INTO node_card_his SELECT * FROM node_card WHERE DATE(`create_time`) < DATE('%s')]], os.DATE("%Y%m%d%H%M%S"))
local sql_insert = string.format([[INSERT INTO node_card_his SELECT * FROM node_card WHERE DATE(`create_time`) < DATE('%s')]], os.date("%Y%m%d%H%M%S"))
local res, err, errcode, sqlstate = db:query(sql_insert)
if not res then
base:print_log("S", "[NODE_CARD]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......@@ -67,7 +67,7 @@ local function card_sql(db_st)
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_card WHERE DATE(`create_time`) < DATE('%s')]], os.DATE("%Y%m%d%H%M%S"))
local sql_delete = string.format([[DELETE FROM node_card WHERE DATE(`create_time`) < DATE('%s')]], os.date("%Y%m%d%H%M%S"))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_CARD]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......
......@@ -38,8 +38,8 @@ local function chgrule_sql(db_st)
end
-- DELETE invalid rows
-- local sql_delete = [[DELETE FROM node_CHGRULE WHERE (card_status != 0 AND card_status !=1) or current_time() > card_exp]]
local sql_update = [[UPDATE node_chgrule SET rule_status = 1 WHERE current_time() > `DATE_end`]]
-- local sql_delete = [[DELETE FROM node_CHGRULE WHERE (card_status != 0 AND card_status !=1) or now() > card_exp]]
local sql_update = [[UPDATE node_chgrule SET rule_status = 1 WHERE now() > `DATE_end`]]
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_CHGRULE]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......
local _CS = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function cs_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[CS]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_CS]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_cstail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_CS]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_CS", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_cs ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_CS]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_CS", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
cs_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _CS.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _CS
local _CSDETAIL = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function csdetail_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[CSDETAIL]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_CSDETAIL]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_csdetailtail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_CSDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_CSDETAIL", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_csdetail ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_CSDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_CSDETAIL", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
csdetail_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _CSDETAIL.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _CSDETAIL
......@@ -38,8 +38,8 @@ local function ms_sql(db_st)
end
-- DELETE invalid rows
-- local sql_delete = [[DELETE FROM node_MS WHERE (card_status != 0 AND card_status !=1) or current_time() > card_exp]]
local sql_update = [[UPDATE node_ms SET ms_status = 1 WHERE current_time() > `ms_date_end`]]
-- local sql_delete = [[DELETE FROM node_MS WHERE (card_status != 0 AND card_status !=1) or now() > card_exp]]
local sql_update = [[UPDATE node_ms SET ms_status = 1 WHERE now() > `ms_date_end`]]
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_MS]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......
local _PAYMENT = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function payment_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[PAYMENT]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_PAYMENT]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_payment_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_PAYMENT]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_PAYMENT", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_payment ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_PAYMENT]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_PAYMENT", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
payment_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _PAYMENT.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _PAYMENT
local _PSB = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function psb_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[PSB]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_PSB]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_psb_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_PSB]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_PSB", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_psb ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_PSB]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_PSB", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
psb_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _PSB.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _PSB
local _PSBDETAIL = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function psbdetail_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[PSBDETAIL]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_PSBDETAIL]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_psbdetail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_PSBDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_PSBDETAIL", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_psbdetail ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_PSBDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_PSBDETAIL", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
psbdetail_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _PSBDETAIL.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _PSBDETAIL
local _RCHG = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function rchg_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[RCHG]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_RCHG]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_rchg_his SELECT * FROM node_rchg ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_RCHG]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_RCHG", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_rchg ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_RCHG]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_RCHG", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
rchg_sql(db_st, interval)
end)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _RCHG.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval) -- interval should be months
end
dispatch()
end
return _RCHG
local _RCHGDETAIL = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function rchgdetail_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[RCHGDETAIL]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_RCHGDETAIL]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_rchgdetail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_RCHGDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_RCHGDETAIL", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_rchgdetail ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_RCHGDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_RCHGDETAIL", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
rchgdetail_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _RCHGDETAIL.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _RCHGDETAIL
local _SALEDETAIL = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function saledetail_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[SALEDETAIL]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_SALEDETAIL]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_saledetail_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_SALEDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SALEDETAIL", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_saledetail ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_SALEDETAIL]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SALEDETAIL", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
saledetail_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _SALEDETAIL.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _SALEDETAIL
local _SALEORDER = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function saleorder_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[SALEORDER]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_SALEORDER]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_saleorder_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_SALEORDER]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SALEORDER", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_saleorder ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_SALEORDER]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SALEORDER", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
saleorder_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _SALEORDER.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _SALEORDER
local _SHIFT = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function shift_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[SHIFT]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_SHIFT]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_shift_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_SHIFT]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SHIFT", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_shift ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_SHIFT]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SHIFT", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
shift_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _SHIFT.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _SHIFT
local _SMS = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function sms_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[SMS]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_SMS]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_sms_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_SMS]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SMS", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_sms ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_SMS]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SMS", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
sms_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _SMS.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _SMS
local _SMSVIP = {}
package.path = package.path..";/Users/zhoush/openresty/nginx/lua/?.lua;;"
local mysql = require("resty.mysql")
local base = require("base")
local tasks = {}
local db_conf = "tk7_dbs.json"
local function smsvip_sql(db_st, interval)
local log = ngx.log
local ERR = ngx.ERR
local db, err = mysql:new()
if not db then
base:print_log("S", "[SMSVIP]:", "failed to instantiate mysql: ", err)
return false
end
db:SET_timeout(1000) -- 1 sec
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
database = db_st['database'],
user = db_st['user'],
password = db_st['password'],
timeout = db_st['timeout'],
}
if not ok then
base:print_log("S", "[NODE_SMSVIP]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
end
-- INSERT INTO history table
local sql_update = string.format([[INSERT INTO node_smsvip_his SELECT * FROM node_payment ]] ..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month) )]],
os.date("%Y%m%d"), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_SMSVIP]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SMSVIP", "<SQL>", sql_update)
return
end
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_smsvip ]]..
[[WHERE EXTRACT(YEAR_MONTH FROM `create_time`) < EXTRACT(YEAR_MONTH FROM DATE_SUB('%s', interval %s month))]],
os.date('%Y%m%d'), tostring(interval))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_SMSVIP]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
base:print_log("NODE_SMSVIP", "<SQL>", sql_delete)
return
end
end
local function async(db_st, interval)
local co = coroutine.wrap(
function()
smsvip_sql(db_st, interval)
end
)
table.insert(tasks, co)
end
local function dispatch()
local i = 1
while true do
if tasks[i] == nil then
if tasks[1] == nil then
break
end
i = 1
end
local res = tasks[i]()
if not res then
table.remove(tasks, i)
else
i = i + 1
end
end
end
function _SMSVIP.run()
local base = require('base')
local json = require('cjson')
local dbs_st = base:db_read(db_conf)
local interval = 3 -- the month interval
for i = 1, #dbs_st.tk_biz do
async(dbs_st.tk_biz[i], interval)
end
dispatch()
end
return _SMSVIP
......@@ -38,8 +38,8 @@ local function ticket_sql(db_st)
end
-- DELETE invalid rows
-- local sql_delete = [[DELETE FROM node_ticket WHERE (ticket_status != 0 AND ticket_status !=1) or current_time() > ticket_exp]]
local sql_update = [[UPDATE node_ticket SET ticket_status = 8 WHERE current_time() > 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 res, err, errcode, sqlstate = db:query(sql_update)
if not res then
base:print_log("S", "[NODE_TICKET]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......@@ -48,7 +48,7 @@ local function ticket_sql(db_st)
end
-- INSERT INTO history table
local sql_insert = string.format([[INSERT INTO node_ticket_his SELECT * FROM node_ticket WHERE DATE(`create_time`) < DATE('%s')]], os.DATE("%Y%m%d%H%M%S"))
local sql_insert = string.format([[INSERT INTO node_ticket_his SELECT * FROM node_ticket WHERE DATE(`create_time`) < DATE('%s')]], os.date("%Y%m%d%H%M%S"))
local res, err, errcode, sqlstate = db:query(sql_insert)
if not res then
base:print_log("S", "[NODE_TICKET]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......@@ -58,7 +58,7 @@ local function ticket_sql(db_st)
-- DELETE current tables record
local sql_delete = string.format([[DELETE FROM node_ticket WHERE DATE(`create_time`) < DATE('%s')]], os.DATE("%Y%m%d%H%M%S"))
local sql_delete = string.format([[DELETE FROM node_ticket WHERE DATE(`create_time`) < DATE('%s')]], os.date("%Y%m%d%H%M%S"))
local res, err, errcode, sqlstate = db:query(sql_delete)
if not res then
base:print_log("S", "[NODE_TICKET]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
......
......@@ -5,21 +5,25 @@ package.path = package.path..";/Users/zhoush/openresty/nginx/lua/settle/?.lua;;"
local base = require('base')
-- Settle modules
local NC = require ("node_card")
local NC = require ('node_card')
local NT = require ('node_ticket')
local CR = require ('node_chgrule')
local MS = require ('node_ms')
local delay = 5 -- delaytime
local interval_time = '1200' -- time to run, here is 12:00 for each day
local interval_time = '1500' -- time to run, here is 12:00 for each day
local handler
handler = function(premature, interval_time)
if not premature then
local nowtime = os.date("%H%M")
if nowtime == interval_time then
-- settle features start
NC:run() -- node_card
NC:run() -- node_ticket
NC:run()
NT:run()
CR:run()
MS:run()
-- reset interval_time
interval_time = tostring(tonumber(interval_time) - 1)
......
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