Files
Omni_app.db/get_div_issue_data.txt
T
2026-02-06 23:26:59 +08:00

74 lines
2.1 KiB
Plaintext

DELIMITER //
CREATE OR REPLACE PROCEDURE get_div_issue_data(
IN p_div_type VARCHAR(1), -- a->e
IN p_token VARCHAR(100)
)
/*
Function : 獲取問題分配資料
Description: 根據使用者token和問題類型返回不同分類的問題資料
取得指定 div 的資料, 目前分為
A*分配給我的(尚未解決)
B*尚未分配
C*我回報尚未解決
D*我回報且已解決
E*被我解決的(30日內)
Build Date : 2023/07/19 (MariaDB 版本)
*/
BEGIN
DECLARE v_userid VARCHAR(100);
DECLARE v_err_code SMALLINT;
DECLARE v_err_msg VARCHAR(100);
-- 初始化變數
SET v_err_code = 0;
SET v_err_msg = 'ok';
-- 根據token獲取userid
SELECT userid INTO v_userid FROM sys_users WHERE token = p_token LIMIT 1;
IF v_userid IS NULL OR v_userid = '' THEN
SET v_err_code = 4;
SET v_err_msg = '原密碼輸入錯誤, 請重新輸入';
SELECT v_err_code AS code, v_err_msg AS msg;
ELSE
SELECT v_err_code AS code, v_err_msg AS msg;
-- 根據不同類型返回不同資料
CASE UPPER(p_div_type)
WHEN 'A' THEN
-- 分配給我的(未解決)
SELECT * FROM v_div_issue l
WHERE l.responsible = v_userid
AND (l.issue_status <> '2' AND l.issue_status <> '8');
WHEN 'B' THEN
-- 尚未分配
SELECT * FROM v_div_issue l
WHERE IFNULL(l.responsible, '') = '';
WHEN 'C' THEN
-- 由我回報的(未解決)
SELECT * FROM v_div_issue l
WHERE l.raised_by = v_userid
AND (l.issue_status <> '2' AND l.issue_status <> '8');
WHEN 'D' THEN
-- 我回報且已解決
SELECT * FROM v_div_issue l
WHERE l.raised_by = v_userid
AND (l.issue_status = '2' OR l.issue_status = '8');
ELSE
-- 被我解決的(30日內)
SELECT * FROM v_div_issue l
WHERE l.responsible = v_userid
AND (l.issue_status = '2' OR l.issue_status = '8')
AND DATEDIFF(CURDATE(), finish_date) <= 30;
END CASE;
END IF;
END //
DELIMITER ;