63 lines
2.0 KiB
Plaintext
63 lines
2.0 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE PROCEDURE zen_updatesource (
|
|
IN p_functiontag VARCHAR(100),
|
|
IN p_version VARCHAR(100),
|
|
IN p_jsoncode MEDIUMTEXT
|
|
)
|
|
/*
|
|
function : 回寫 json code 的內容(前端有修改傳入)
|
|
description:
|
|
build date : 2021/10/17
|
|
|
|
call sample:
|
|
CALL zen_updatesource('abc01','beta','json-code')
|
|
|
|
modify history
|
|
item who date modify docs
|
|
==== ========== ========== ================================================
|
|
1 michael 2021-10-17 新增
|
|
2 Michael 2023-07-09 新增根據 sys_parameter 的 ver_type 判斷版本
|
|
3 Michael 2024/03/06 擴充 json4 及 json5 2個欄位
|
|
*/
|
|
BEGIN
|
|
DECLARE v_zcode MEDIUMTEXT;
|
|
DECLARE v_pvalue VARCHAR(100);
|
|
DECLARE v_cnt INT;
|
|
DECLARE v_final_version VARCHAR(100) DEFAULT IFNULL(p_version, 'beta');
|
|
|
|
-- 依設定的程式版本別設定變數 2023/07/09
|
|
-- 檢查 sys_parameter 表是否存在
|
|
IF (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'sys_parameter') > 0 THEN
|
|
SELECT pvalue INTO v_pvalue FROM sys_parameter WHERE systemid = 'base' AND pid = 'ver_type' LIMIT 1;
|
|
IF v_pvalue IS NOT NULL AND v_pvalue <> '' THEN
|
|
SET v_final_version = v_pvalue;
|
|
END IF;
|
|
END IF;
|
|
|
|
SET v_zcode = p_jsoncode;
|
|
|
|
-- 去除編輯用的特殊字串 2024-02-13
|
|
IF INSTR(v_zcode, '_W_') > 0 THEN
|
|
SET v_zcode = REPLACE(v_zcode, '_W_', '');
|
|
END IF;
|
|
|
|
-- 檢查記錄是否存在
|
|
SELECT COUNT(*) INTO v_cnt FROM zen_jsoncode WHERE functiontag = p_functiontag AND version = v_final_version;
|
|
|
|
-- 如果不存在就新增,否則更新
|
|
-- SET v_zcode = REPLACE(v_zcode, '\n', '');
|
|
IF v_cnt <= 0 THEN
|
|
INSERT INTO zen_jsoncode (functiontag, version, jsoncode)
|
|
VALUES (p_functiontag, v_final_version, v_zcode);
|
|
ELSE
|
|
UPDATE zen_jsoncode
|
|
SET jsoncode = v_zcode
|
|
WHERE functiontag = p_functiontag AND version = v_final_version;
|
|
END IF;
|
|
|
|
-- 回傳成功結果
|
|
SELECT 0 AS code, 'OK' AS msg;
|
|
END //
|
|
|
|
DELIMITER ; |