Commit 312cc544 authored by 周尚's avatar 周尚

会员等级更新 [完成]

parent 9896a26e
......@@ -13,14 +13,13 @@
*** 唐库7.0
1. [ ] 异步推送
2. [-] 业务批处理
1. [-] 业务批处理
1. [X] 库存信息类
1. [X] 门店库存
2. [-] 会员管理类
1. [-] 会员账户
2. [X] 会员管理类
1. [X] 会员账户
1. [X] 设置余额
2. [ ] 会员等级更新
2. [X] 会员等级更新
3. [X] 营销工具
1. [X] 卡账户
2. [X] 券账户
......@@ -42,5 +41,5 @@
5. [-] 统计汇总
1. [X] 门店日统计
2. [ ] 会员日统计
3. [X] 数据同步
2. [X] 数据同步
1. [X] 门店信息
......@@ -73,8 +73,8 @@ http {
location /test {
content_by_lua_block {
local tk_shop = loadmod("tk_shop")
tk_shop:run()
local node_vip = loadmod("node_vipacct")
node_vip:run()
}
}
......
local _VIPACCT = {}
local MODULE = "S"
local mysql = loadmod("resty.mysql")
local zx_base = loadmod('zx_base')
-- 加载模块
local mysql = loadmod("resty.mysql")
local zx_base = loadmod("zx_base")
local json = loadmod('cjson')
local db_conf = "tk7_dbs.json"
local tasks = {}
local db_conf = "tk7_dbs.json"
local function comp_f(a, b) -- judge a > b
if a == ngx.null or b == ngx.null then
return false
end
return tonumber(a) >= tonumber(b)
end
local function fulfil(a, b)
xpcall(comp_f, function(e) zx_base:log(MODULE, "[NODE_VIPACCT]",
debug.traceback()) return e end, a, b)
end
local function vipacct_sql(db_st)
local log = ngx.log
......@@ -20,8 +33,9 @@ local function vipacct_sql(db_st)
return false
end
db:SET_timeout(1000) -- 1 sec
-- db:set_timeout(1000) -- 1 sec
-- 连接分节点
local ok, err, errcode, sqlstate = db:connect{
host = db_st['host'],
port = db_st['port'],
......@@ -31,7 +45,6 @@ local function vipacct_sql(db_st)
timeout = db_st['timeout'],
charset = 'utf8'
}
if not ok then
zx_base:log("S", "[NODE_VIPACCT]:", "failed to connect: ", err, ": ", errcode, " ", sqlstate)
return
......@@ -47,7 +60,45 @@ local function vipacct_sql(db_st)
return
end
-- SET VIPACCT's level
local sql_vip = [[SELECT * FROM node_vipacct LEFT JOIN node_viprule ON ]]..
[[node_vipacct.vip_rule_id = node_viprule.vip_rule_id]]
local vips, err, errcode, sqlstate = db:query(sql_vip)
if not res then
zx_base:log("S", "[NODE_VIPACCT]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
zx_base:log("NODE_VIPACCT", sql_vip)
return
end
for i=1, #vips do
local vip = vips[i]
local sql = ""
if fulfil(vip.total_amt_tp, vip.level3_ud_amt_tp) and
fulfil(vip.total_amt_tc, vip.level3_ud_amt_tc)
and tonumber(vip.vip_level) ~= 3 then
sql = [[UPDATE node_vipacct SET vip_level = 3 ]]
elseif fulfil(vip.total_amt_tp, vip.level2_ud_amt_tp) and
fulfil(vip.total_amt_tc, vip.level2_ud_amt_tc)
and tonumber(vip.vip_level) ~= 2 then
sql = [[UPDATE node_vipacct SET vip_level = 2 ]]
elseif fulfil(vip.total_amt_tp, vip.level1_ud_amt_tp) and
fulfil(vip.total_amt_tc, vip.level1_ud_amt_tc)
and tonumber(vip.vip_level) ~= 1 then
sql = [[UPDATE node_vipacct SET vip_level = 1 ]]
end
sql = sql .. [[WHERE vip_map_id = ]] .. vip.vip_map_id
local ok, err, errcode, sqlstate = db:query(sql)
if not res then
zx_base:log("S", "[NODE_VIPACCT]:", "bad result: ", err, ": ", errcode, ": ", sqlstate, ".")
zx_base:log("NODE_VIPACCT", sql)
return
end
end
end
......
......@@ -43,7 +43,8 @@ local function shop_sql(tk_biz, tk_control)
charset = 'utf8'
}
if not ok then
zx_base:log(MODULE, "[TK_SHOP]", "failed to connect:", json.encode(tk_biz), ":", errcode, sqlstate)
zx_base:log(MODULE, "[TK_SHOP]", "failed to connect:", json.encode(tk_biz), ":",
err, ":", errcode, sqlstate)
return
end
......@@ -54,10 +55,12 @@ local function shop_sql(tk_biz, tk_control)
"20180716000000"
)
local shops, err, errcode, sqlstate = db:query(sql)
local shops
shops, err, errcode, sqlstate = db:query(sql)
if not shops then
zx_base:log(MODULE, "[TK_SHOP]", sql)
zx_base:log(MODULE, "[TK_SHOP]", "failed to query:", json.encode(tk_biz), ":", err, ":", errcode, ":", sqlstate, ".")
zx_base:log(MODULE, "[TK_SHOP]", "failed to query:", json.encode(tk_biz), ":",
err, ":", errcode, ":", sqlstate, ".")
return
end
if #shops == 0 then
......@@ -70,7 +73,7 @@ local function shop_sql(tk_biz, tk_control)
-- 重置MySQL连接
zx_base:close_db(db)
local db, err = mysql:new()
db, err = mysql:new()
if not db then
zx_base:log(MODULE, "[TK_SHOP]", "failed to instantiate mysql: ", err)
return false
......@@ -99,7 +102,8 @@ local function shop_sql(tk_biz, tk_control)
ok, err, errcode, sqlstate = db:query(sql_result)
if not ok then
zx_base:log(MODULE, "[TK_SHOP]", sql_result)
zx_base:log(MODULE, "[TK_SHOP]", "failed to query:", json.encode(tk_control), ":", err, ":", errcode, ":", sqlstate, ".")
zx_base:log(MODULE, "[TK_SHOP]", "failed to query:", json.encode(tk_control), ":",
err, ":", errcode, ":", sqlstate, ".")
end
end
......
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