DELIMITER //

CREATE OR REPLACE PROCEDURE get_assignData (
  -- p_bookid int = 1,
  IN p_funcTag VARCHAR(100),  
  IN p_classid VARCHAR(100)
)
/*
  Function   : 配合 amis 取得 markdown(電子書, FAQ 等) 要顯示的資料
               目前專用於電子書, 應該會繼續擴充
               get_treedata 應一併修改, 原程式都是傳入 bookid, 改傳入 tag, 但為了增加彈性, 將 tag 和 bookid 的對照, 新增到 zen_keyvalue(book_mapping_id)
  Description: 電子書應該要支援多本的架構, 目前寫死一本 on line help, 應想辦法擴充(至少加入 FAQ 吧)
  Build Date : 2021/10/19
  
  Modify History
    Item Who        Date       Modify Docs
    ==== ========== ========== ================================================
    1    Michael    2021/11/26
    2    Michael    2022/04/04 改為電子書專用(修改 r43 電子書查閱)
    3    Michael    2023/01/13 修改第一個參數為 funcTag, 再參考 zen_keyvalue 轉為 bookid
    
*/
BEGIN
  DECLARE v_bookid VARCHAR(10);
  
  -- 回傳初始結果
  SELECT 0 AS code, 'ok' AS msg;
  
  /*
  補初始資料 (ls:now_code)
  INSERT INTO zen_keyvalue (tablename,fieldname,keyid,keyvalue) VALUES ('xxxx','book_mapping_id','1','eipr43');
  INSERT INTO zen_keyvalue (tablename,fieldname,keyid,keyvalue) VALUES ('xxxx','book_mapping_id','2','eipr44');
  INSERT INTO zen_keyvalue (tablename,fieldname,keyid,keyvalue) VALUES ('xxxx','book_mapping_id','4','eipr45');
  */
  
  -- 將 tag 改為 bookid(進行中)
  IF LENGTH(p_funcTag) <= 3 THEN
    -- 如果傳 functag 舊版是傳 bookid(blog.gex.com.tw 舊寫法)
    SET v_bookid = p_funcTag;
  ELSE
    SELECT keyid INTO v_bookid FROM zen_keyvalue 
    WHERE fieldname = 'book_mapping_id' AND keyvalue = p_funcTag LIMIT 1;
  END IF;
  
  IF IFNULL(v_bookid, '') = '' THEN 
    SET v_bookid = '1';
  END IF;
  
  IF IFNULL(p_classid, '') = '' THEN 
	SELECT classid INTO p_classid FROM eip_online_books 
	WHERE bookid = v_bookid order by bookid LIMIT 1;
  END IF;

  -- 取回指定電子書的指定章節內容回傳
  SELECT book_desc AS xValue FROM eip_online_books 
  WHERE bookid = v_bookid AND classid = p_classid;
END //

DELIMITER ;