func.sql 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. /*
  2. Navicat MySQL Data Transfer
  3. Source Server : 47.105.241.108
  4. Source Server Type : MySQL
  5. Source Server Version : 50725
  6. Source Host : 47.105.241.108:33060
  7. Source Schema : service_platform
  8. Target Server Type : MySQL
  9. Target Server Version : 50725
  10. File Encoding : 65001
  11. Date: 22/11/2019 09:55:16
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Function structure for getCodeByValue
  17. -- ----------------------------
  18. DROP FUNCTION IF EXISTS `getCodeByValue`;
  19. delimiter ;;
  20. CREATE FUNCTION `getCodeByValue`(codeName varchar(64) , codeValue varchar(64))
  21. RETURNS varchar(64) CHARSET utf8
  22. BEGIN
  23. RETURN
  24. (select `code` from dict where `name` = codeName AND `value` = codeValue);
  25. END
  26. ;;
  27. delimiter ;
  28. -- ----------------------------
  29. -- Function structure for getFirstPinyin
  30. -- ----------------------------
  31. DROP FUNCTION IF EXISTS `getFirstPinyin`;
  32. delimiter ;;
  33. CREATE FUNCTION `getFirstPinyin`(P_NAME varchar(64))
  34. RETURNS varchar(255) CHARSET utf8
  35. BEGIN
  36. DECLARE V_RETURN VARCHAR(255);
  37. DECLARE V_BOOL INT DEFAULT 0;
  38. DECLARE V_NUMBER INT DEFAULT 1;
  39. DECLARE FIRST_VARCHAR VARCHAR(1);
  40. SET FIRST_VARCHAR = left(CONVERT(P_NAME USING gbk),1);
  41. SELECT FIRST_VARCHAR REGEXP '[a-zA-Z]' INTO V_BOOL;
  42. SELECT FIRST_VARCHAR REGEXP '[^0-9.]' INTO V_NUMBER;
  43. IF V_BOOL = 1 THEN
  44. SET V_RETURN = UPPER(FIRST_VARCHAR);
  45. ELSE
  46. IF V_NUMBER = 0 THEN
  47. CASE FIRST_VARCHAR
  48. WHEN 0 THEN SET V_RETURN ='A';
  49. WHEN 1 THEN SET V_RETURN ='B';
  50. WHEN 2 THEN SET V_RETURN ='C';
  51. WHEN 3 THEN SET V_RETURN ='D';
  52. WHEN 4 THEN SET V_RETURN ='E';
  53. WHEN 5 THEN SET V_RETURN ='F';
  54. WHEN 6 THEN SET V_RETURN ='G';
  55. WHEN 7 THEN SET V_RETURN ='H';
  56. WHEN 8 THEN SET V_RETURN ='I';
  57. WHEN 9 THEN SET V_RETURN ='J';
  58. END CASE;
  59. ELSE
  60. IF ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),
  61. 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
  62. 0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,
  63. 0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
  64. 'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z') IS NULL THEN
  65. SET V_RETURN = 'Z';
  66. ELSE
  67. SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),
  68. 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
  69. 0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,
  70. 0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
  71. 'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
  72. END IF;
  73. END IF;
  74. END IF;
  75. RETURN V_RETURN;
  76. END
  77. ;;
  78. delimiter ;
  79. -- ----------------------------
  80. -- Function structure for getPushDate
  81. -- ----------------------------
  82. DROP FUNCTION IF EXISTS `getPushDate`;
  83. delimiter ;;
  84. CREATE FUNCTION `getPushDate`(notify_id int,notify_detail_id int)
  85. RETURNS varchar(45) CHARSET utf8 COLLATE utf8_bin
  86. BEGIN
  87. IF (notify_detail_id > 0)
  88. THEN
  89. return (select detail.update_time as push_date from z_notify_detail detail WHERE detail.id = notify_detail_id and detail.is_push = 1);
  90. ELSE
  91. return (select (CASE When n.update_time IS NULL THEN n.create_time ELSE n.update_time END)
  92. from z_notify n WHERE n.id = notify_id and n.is_push = '1');
  93. END IF;
  94. END
  95. ;;
  96. delimiter ;
  97. -- ----------------------------
  98. -- Event structure for e_delete_log
  99. -- ----------------------------
  100. DROP EVENT IF EXISTS `e_delete_log`;
  101. delimiter ;;
  102. CREATE EVENT `e_delete_log`
  103. ON SCHEDULE
  104. EVERY '1' DAY STARTS '2018-06-10 16:10:00'
  105. DO DELETE FROM log WHERE create_time < DATE_SUB(CURRENT_TIMESTAMP,INTERVAL 90 DAY)
  106. ;
  107. ;;
  108. delimiter ;
  109. SET FOREIGN_KEY_CHECKS = 1;