74 lines
2.1 KiB
Plaintext
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 ;
|