DELIMITER // CREATE PROCEDURE zen_codeinit ( IN p_new_ip VARCHAR(100), IN p_new_db1 VARCHAR(100), -- Business IN p_new_db2 VARCHAR(100) -- Wizard ) /* Function : 登入後設定 zen_jsoncode 的 ip 及 db Description: 原本想自動化執行, 但穩妥起見, 目前先仍維持手動執行一次(切換環境時), 目前暫不使用, 手動改 ip 即可 Sample: Build Date : 2023-12-10 Modify History Item Who Date Modify Docs ==== ========== ========== ================================================ 1 Michael 2023-12-10 改寫為 MySQL 版 */ BEGIN DECLARE v_cnt INT; DECLARE v_org_ip VARCHAR(100); DECLARE v_org_db1 VARCHAR(100); -- Business DECLARE v_org_db2 VARCHAR(100); -- Wizard /* 要先想辦法解析(或手工設定) 在 zen_jsoncode 內的 ip 及 db 目前僅先考慮出廠的變更, 也就是 org 的內容 ip 只會有 127.0.0.1 和 gcp-api.gex.com.tw 或 api.gex.com.tw db 只會有 zenBusiness / zenWizard / zenEIS db 二合一很簡單, 但是一分為二, 就麻煩了 */ SET v_org_ip = ''; SELECT COUNT(*) INTO v_cnt FROM zen_jsoncode WHERE jsoncode LIKE '%127.0.0.1%'; IF v_cnt > 0 THEN SET v_org_ip = '127.0.0.1'; ELSE SELECT COUNT(*) INTO v_cnt FROM zen_jsoncode WHERE jsoncode LIKE '%gcp-api.gex.com.tw%'; IF v_cnt > 0 THEN SET v_org_ip = 'gcp-api.gex.com.tw'; ELSE SELECT COUNT(*) INTO v_cnt FROM zen_jsoncode WHERE jsoncode LIKE '%api.gex.com.tw%'; IF v_cnt > 0 THEN SET v_org_ip = 'api.gex.com.tw'; END IF; END IF; END IF; SET v_org_db1 = ''; SELECT COUNT(*) INTO v_cnt FROM zen_jsoncode WHERE jsoncode LIKE '%zenEIS%'; IF v_cnt > 0 THEN SET v_org_db1 = 'zenEIS'; SET v_org_db2 = 'zenEIS'; ELSE SET v_org_db1 = 'zenBusiness'; SET v_org_db2 = 'zenWizard'; END IF; -- 如果是其他非出廠 SOP 的特殊作業, 只能手工設定 /* SET v_org_ip = '127.0.0.1'; SET v_org_db1 = 'xxxdb1'; SET v_org_db2 = 'xxxdb2'; */ -- update ip UPDATE zen_jsoncode SET jsoncode = REPLACE(jsoncode, v_org_ip, p_new_ip), jsoncode2 = REPLACE(jsoncode2, v_org_ip, p_new_ip), jsoncode3 = REPLACE(jsoncode3, v_org_ip, p_new_ip); -- 如果 db 是一分為二, 要多判斷 sys IF v_org_db1 = 'zenEIS' AND p_new_db1 <> 'zenEIS' THEN UPDATE zen_jsoncode SET jsoncode = REPLACE(jsoncode, v_org_db1, p_new_db1), jsoncode2 = REPLACE(jsoncode2, v_org_db1, p_new_db1), jsoncode3 = REPLACE(jsoncode3, v_org_db1, p_new_db1); UPDATE zen_jsoncode SET jsoncode = REPLACE(jsoncode, v_org_db2, p_new_db2), jsoncode2 = REPLACE(jsoncode2, v_org_db2, p_new_db2), jsoncode3 = REPLACE(jsoncode3, v_org_db2, p_new_db2); ELSE UPDATE zen_jsoncode SET jsoncode = REPLACE(jsoncode, v_org_db1, p_new_db1), jsoncode2 = REPLACE(jsoncode2, v_org_db1, p_new_db1), jsoncode3 = REPLACE(jsoncode3, v_org_db1, p_new_db1); UPDATE zen_jsoncode SET jsoncode = REPLACE(jsoncode, v_org_db2, p_new_db2), jsoncode2 = REPLACE(jsoncode2, v_org_db2, p_new_db2), jsoncode3 = REPLACE(jsoncode3, v_org_db2, p_new_db2); END IF; -- 回傳 ds1 SELECT 0 AS code, 'ok' AS msg; END // DELIMITER ;