20260822_seed_merchant_pagination.sql 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. -- ============================================================
  2. -- 商户分页演示数据(仅供本地测试)
  3. -- 日期: 2026-08-22
  4. -- 生成 57 条数据,测试手机号: 19100000001 - 19100000057
  5. -- 登录测试密码统一为: 123456
  6. -- 本脚本可重复执行,不会重复插入未删除的相同测试手机号。
  7. -- ============================================================
  8. INSERT INTO `sa_merchant` (
  9. `agent_id`, `profit_user_id`, `name`, `store_phone`, `storefront_image`,
  10. `industry`, `region`, `address`, `description`, `products`,
  11. `profit_method`, `profit_rate`, `contact`, `phone`, `password`, `permissions`,
  12. `distributed`, `status`, `agent_type`, `total_amount`, `total_income`,
  13. `withdrawable_amount`, `order_count`, `device_count`,
  14. `yesterday_usage_rate`, `three_day_usage_rate`, `seven_day_usage_rate`,
  15. `yesterday_average_order`, `three_day_average_order`, `seven_day_average_order`,
  16. `created_by`, `updated_by`, `create_time`, `update_time`
  17. )
  18. SELECT
  19. CASE MOD(numbers.seq, 7)
  20. WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 3 WHEN 3 THEN 4
  21. WHEN 4 THEN 5 WHEN 5 THEN 10 ELSE 100
  22. END AS `agent_id`,
  23. CASE MOD(numbers.seq, 6)
  24. WHEN 0 THEN 1 WHEN 1 THEN 3 WHEN 2 THEN 4
  25. WHEN 3 THEN 5 WHEN 4 THEN 10 ELSE 101
  26. END AS `profit_user_id`,
  27. CONCAT('分页测试商户 ', LPAD(numbers.seq, 2, '0')) AS `name`,
  28. CONCAT('137', LPAD(numbers.seq, 8, '0')) AS `store_phone`,
  29. CONCAT('https://picsum.photos/seed/sai-page-', LPAD(numbers.seq, 2, '0'), '/160/160') AS `storefront_image`,
  30. CASE MOD(numbers.seq, 6)
  31. WHEN 0 THEN '美食餐饮/餐厅'
  32. WHEN 1 THEN '零售/便利店'
  33. WHEN 2 THEN '休闲娱乐/KTV'
  34. WHEN 3 THEN '酒店住宿/酒店'
  35. WHEN 4 THEN '运动健身/健身房'
  36. ELSE '文化教育/书店'
  37. END AS `industry`,
  38. CASE MOD(numbers.seq, 6)
  39. WHEN 0 THEN '北京市 / 北京市 / 朝阳区'
  40. WHEN 1 THEN '广东省 / 深圳市 / 南山区'
  41. WHEN 2 THEN '上海市 / 上海市 / 浦东新区'
  42. WHEN 3 THEN '四川省 / 成都市 / 武侯区'
  43. WHEN 4 THEN '浙江省 / 杭州市 / 西湖区'
  44. ELSE '湖北省 / 武汉市 / 江汉区'
  45. END AS `region`,
  46. CONCAT('分页测试地址 ', LPAD(numbers.seq, 2, '0'), ' 号') AS `address`,
  47. CONCAT('【分页演示数据】第 ', numbers.seq, ' 条商户,用于验证分页、排序和筛选。') AS `description`,
  48. CASE MOD(numbers.seq, 6)
  49. WHEN 0 THEN '["车载充电器"]'
  50. WHEN 1 THEN '["K霸宝"]'
  51. WHEN 2 THEN '["蓝牙线充"]'
  52. WHEN 3 THEN '["充电宝"]'
  53. WHEN 4 THEN '["密码线充"]'
  54. ELSE '["密码蓝牙线充"]'
  55. END AS `products`,
  56. CASE MOD(numbers.seq, 3)
  57. WHEN 0 THEN '比例分成' WHEN 1 THEN '不分成' ELSE '入驻费'
  58. END AS `profit_method`,
  59. CASE WHEN MOD(numbers.seq, 3) = 0 THEN 10 + MOD(numbers.seq, 16) ELSE 0 END AS `profit_rate`,
  60. CONCAT('测试联系人', LPAD(numbers.seq, 2, '0')) AS `contact`,
  61. CONCAT('191', LPAD(numbers.seq, 8, '0')) AS `phone`,
  62. '$2y$10$4m/HHtGkXi4k.8qHTgcT9e0A.aA9g.ZJNJ7k3A7n5NUY0pg81QAay' AS `password`,
  63. CASE MOD(numbers.seq, 3)
  64. WHEN 0 THEN '["自营","查看订单"]'
  65. WHEN 1 THEN '["查看订单"]'
  66. ELSE '["查看订单","白名单"]'
  67. END AS `permissions`,
  68. CASE WHEN MOD(numbers.seq, 4) = 0 THEN 0 ELSE 1 END AS `distributed`,
  69. CASE WHEN MOD(numbers.seq, 13) = 0 THEN 2 ELSE 1 END AS `status`,
  70. CASE MOD(numbers.seq, 3)
  71. WHEN 0 THEN 'city-partner' WHEN 1 THEN 'agent' ELSE 'salesperson'
  72. END AS `agent_type`,
  73. ROUND(numbers.seq * 376.85, 2) AS `total_amount`,
  74. ROUND(numbers.seq * 67.83, 2) AS `total_income`,
  75. ROUND(numbers.seq * 34.25, 2) AS `withdrawable_amount`,
  76. numbers.seq * 7 AS `order_count`,
  77. CASE WHEN MOD(numbers.seq, 4) = 0 THEN 0 ELSE MOD(numbers.seq, 12) + 1 END AS `device_count`,
  78. ROUND(MOD(numbers.seq * 13, 97) + 0.25, 2) AS `yesterday_usage_rate`,
  79. ROUND(MOD(numbers.seq * 11, 93) + 1.50, 2) AS `three_day_usage_rate`,
  80. ROUND(MOD(numbers.seq * 7, 89) + 2.75, 2) AS `seven_day_usage_rate`,
  81. ROUND(18 + MOD(numbers.seq * 5, 38) + 0.20, 2) AS `yesterday_average_order`,
  82. ROUND(20 + MOD(numbers.seq * 4, 35) + 0.40, 2) AS `three_day_average_order`,
  83. ROUND(22 + MOD(numbers.seq * 3, 32) + 0.60, 2) AS `seven_day_average_order`,
  84. 1 AS `created_by`, 1 AS `updated_by`,
  85. DATE_SUB(NOW(), INTERVAL numbers.seq DAY) AS `create_time`, NOW() AS `update_time`
  86. FROM (
  87. SELECT ones.n + tens.n * 10 + 1 AS seq
  88. FROM (
  89. SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
  90. UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
  91. ) ones
  92. CROSS JOIN (
  93. SELECT 0 AS n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4
  94. UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9
  95. ) tens
  96. ) numbers
  97. LEFT JOIN `sa_merchant` existing
  98. ON existing.`phone` = CONCAT('191', LPAD(numbers.seq, 8, '0'))
  99. AND existing.`delete_time` IS NULL
  100. WHERE numbers.seq BETWEEN 1 AND 57
  101. AND existing.`id` IS NULL
  102. ORDER BY numbers.seq;
  103. -- 如需清理本文件生成的数据,可执行:
  104. -- UPDATE sa_merchant SET delete_time = NOW()
  105. -- WHERE phone BETWEEN '19100000001' AND '19100000057' AND description LIKE '【分页演示数据】%';