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

会员等级更新 [完成]

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