database.sql 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284
  1. -- 用户表
  2. CREATE TABLE IF NOT EXISTS `member_users` (
  3. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户编号',
  4. `mobile` varchar(11) NOT NULL COMMENT '手机号',
  5. `password` varchar(255) NOT NULL COMMENT '密码',
  6. `nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
  7. `avatar` varchar(255) DEFAULT NULL COMMENT '头像',
  8. `gender` varchar(255) NOT NULL DEFAULT 'UNKNOWN' COMMENT '性别',
  9. `register_area` varchar(6) DEFAULT NULL COMMENT '注册地(行政区划代码)',
  10. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  11. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  12. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  13. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  14. PRIMARY KEY (`id`),
  15. UNIQUE KEY `uk_mobile` (`mobile`)
  16. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表';
  17. -- 社交账号表
  18. CREATE TABLE IF NOT EXISTS `member_social_accounts` (
  19. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '社交账号编号',
  20. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  21. `platform` varchar(255) NOT NULL COMMENT '社交平台',
  22. `social_id` varchar(100) NOT NULL COMMENT '社交账号',
  23. `nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
  24. `avatar` varchar(255) DEFAULT NULL COMMENT '头像',
  25. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  26. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  27. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  28. PRIMARY KEY (`id`),
  29. UNIQUE KEY `uk_platform_social_id` (`platform`, `social_id`),
  30. KEY `idx_user_id` (`user_id`),
  31. KEY `idx_platform` (`platform`),
  32. CONSTRAINT `fk_msoc_muser_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  33. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '社交账号表';
  34. -- 用户地址表
  35. CREATE TABLE IF NOT EXISTS `member_addresses` (
  36. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '地址编号',
  37. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  38. `phone` varchar(11) NOT NULL COMMENT '联系电话',
  39. `location` varchar(255) NOT NULL COMMENT '定位地址',
  40. `address` varchar(255) DEFAULT NULL COMMENT '详细地址',
  41. `province` varchar(50) NOT NULL COMMENT '省',
  42. `city` varchar(50) NOT NULL COMMENT '市',
  43. `district` varchar(50) NOT NULL COMMENT '区',
  44. `longitude` decimal(10, 7) NOT NULL COMMENT '经度',
  45. `latitude` decimal(10, 7) NOT NULL COMMENT '纬度',
  46. `area_code` varchar(6) NOT NULL COMMENT '行政区划代码',
  47. `is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认地址',
  48. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  49. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  50. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  51. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  52. PRIMARY KEY (`id`),
  53. KEY `idx_user_id` (`user_id`),
  54. KEY `idx_is_default` (`is_default`),
  55. CONSTRAINT `fk_madr_muser_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  56. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户地址表';
  57. -- 用户实名认证表
  58. CREATE TABLE IF NOT EXISTS `member_real_auth_records` (
  59. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '实名认证编号',
  60. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  61. `real_name` varchar(50) NOT NULL COMMENT '真实姓名',
  62. `id_card` varchar(18) NOT NULL COMMENT '身份证号',
  63. `id_card_front_photo` varchar(255) NOT NULL COMMENT '身份证正面照片',
  64. `id_card_back_photo` varchar(255) NOT NULL COMMENT '身份证反面照片',
  65. `id_card_hand_photo` varchar(255) NOT NULL COMMENT '手持身份证照片',
  66. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  67. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  68. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  69. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  70. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  71. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  72. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  73. PRIMARY KEY (`id`),
  74. KEY `idx_user_id` (`user_id`),
  75. CONSTRAINT `fk_mrar_muser_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  76. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户实名认证表';
  77. -- 技师表
  78. CREATE TABLE IF NOT EXISTS `coach_users` (
  79. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '技师编号',
  80. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  81. `info_record_id` bigint unsigned DEFAULT NULL COMMENT '技师信息记录编号',
  82. `real_auth_record_id` bigint unsigned DEFAULT NULL COMMENT '技师实名认证记录编号',
  83. `qual_record_id` bigint unsigned DEFAULT NULL COMMENT '技师资质认证记录编号',
  84. `shop_id` bigint unsigned DEFAULT NULL COMMENT '店铺编号',
  85. `level` varchar(255) DEFAULT NULL COMMENT '技师等级',
  86. `virtual_order` int DEFAULT '0' COMMENT '虚拟订单数',
  87. `score` decimal(3, 1) DEFAULT '5.0' COMMENT '评分',
  88. `work_status` varchar(255) NOT NULL DEFAULT 'REST' COMMENT '工作状态',
  89. `virtual_status` varchar(255) NOT NULL DEFAULT 'DISABLE' COMMENT '虚拟状态',
  90. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  91. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  92. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  93. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  94. PRIMARY KEY (`id`),
  95. UNIQUE KEY `uk_user_id` (`user_id`),
  96. KEY `idx_shop_id` (`shop_id`),
  97. KEY `idx_work_status` (`work_status`),
  98. CONSTRAINT `fk_coach_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  99. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师表';
  100. -- 技师实名认证记录表
  101. CREATE TABLE IF NOT EXISTS `coach_real_auth_records` (
  102. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '实名认证编号',
  103. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  104. `real_name` varchar(50) NOT NULL COMMENT '真实姓名',
  105. `id_card` varchar(18) NOT NULL COMMENT '身份证号',
  106. `id_card_front_photo` varchar(255) NOT NULL COMMENT '身份证正面照片',
  107. `id_card_back_photo` varchar(255) NOT NULL COMMENT '身份证反面照片',
  108. `id_card_hand_photo` varchar(255) NOT NULL COMMENT '手持身份证照片',
  109. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  110. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  111. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  112. `state` varchar(255) NOT NULL DEFAULT 'pending' COMMENT '状态',
  113. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  114. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  115. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  116. PRIMARY KEY (`id`),
  117. KEY `idx_coach_id` (`coach_id`),
  118. CONSTRAINT `fk_carar_coach_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  119. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师实名认证记录表';
  120. -- 技师信息记录表
  121. CREATE TABLE IF NOT EXISTS `coach_info_records` (
  122. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '技师信息记录编号',
  123. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  124. `nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
  125. `avatar` varchar(255) DEFAULT NULL COMMENT '头像',
  126. `gender` varchar(255) NOT NULL DEFAULT 'UNKNOWN' COMMENT '性别',
  127. `mobile` varchar(11) NOT NULL COMMENT '服务电话',
  128. `birthday` date DEFAULT NULL COMMENT '出生日期',
  129. `work_years` int DEFAULT NULL COMMENT '从业年份',
  130. `intention_city` varchar(50) DEFAULT NULL COMMENT '意向城市',
  131. `introduction` text COMMENT '个人简介',
  132. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  133. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  134. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  135. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  136. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  137. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  138. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  139. PRIMARY KEY (`id`),
  140. KEY `idx_cir_coach_coach_id` (`coach_id`),
  141. CONSTRAINT `fk_info_records_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  142. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师信息记录表';
  143. -- 技师实名认证记录表
  144. CREATE TABLE IF NOT EXISTS `coach_real_records` (
  145. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '技师实名认证记录编号',
  146. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  147. `real_name` varchar(50) NOT NULL COMMENT '姓名',
  148. `id_card` varchar(18) NOT NULL COMMENT '身份证号',
  149. `id_card_front_photo` varchar(255) NOT NULL COMMENT '身份证正面照片',
  150. `id_card_back_photo` varchar(255) NOT NULL COMMENT '身份证反面照片',
  151. `id_card_hand_photo` varchar(255) NOT NULL COMMENT '手持身份证照片',
  152. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  153. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  154. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  155. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  156. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  157. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  158. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  159. PRIMARY KEY (`id`),
  160. KEY `idx_crar_coach_coach_id` (`coach_id`),
  161. CONSTRAINT `fk_real_auth_records_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  162. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师实名认证记录表';
  163. -- 技师资质认证记录表
  164. CREATE TABLE IF NOT EXISTS `coach_qual_records` (
  165. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '技师资质认证记录编号',
  166. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  167. `qual_type` varchar(255) NOT NULL COMMENT '资质类型',
  168. `qual_no` varchar(100) DEFAULT NULL COMMENT '资质证书编号',
  169. `qual_photo` varchar(255) NOT NULL COMMENT '资质证书照片',
  170. `valid_start` date DEFAULT NULL COMMENT '有效期开始日期',
  171. `valid_end` date DEFAULT NULL COMMENT '有效期结束日期',
  172. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  173. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  174. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  175. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  176. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  177. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  178. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  179. PRIMARY KEY (`id`),
  180. KEY `idx_cqr_coach_coach_id` (`coach_id`),
  181. CONSTRAINT `fk_qual_records_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  182. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师资质认证记录表';
  183. -- 技师评分表
  184. CREATE TABLE IF NOT EXISTS `coach_scores` (
  185. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '评分编号',
  186. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  187. `service_duration` int DEFAULT '0' COMMENT '服务时长(分钟)',
  188. `order_count` int DEFAULT '0' COMMENT '订单数量',
  189. `good_rate` decimal(5, 2) DEFAULT '0.00' COMMENT '好评率',
  190. `efficiency` decimal(5, 2) DEFAULT '0.00' COMMENT '服务效率',
  191. `punctual_rate` decimal(5, 2) DEFAULT '0.00' COMMENT '准时率',
  192. `completion_rate` decimal(5, 2) DEFAULT '0.00' COMMENT '完成率',
  193. `rating_score` decimal(3, 1) DEFAULT '5.0' COMMENT '评价得分',
  194. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  195. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  196. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  197. PRIMARY KEY (`id`),
  198. UNIQUE KEY `uk_csco_coach_coach_id` (`coach_id`),
  199. CONSTRAINT `fk_scores_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  200. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师评分表';
  201. -- 技师定位地址表
  202. CREATE TABLE IF NOT EXISTS `coach_locations` (
  203. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '技师定位地址编号',
  204. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  205. `type` varchar(255) NOT NULL DEFAULT 'CURRENT' COMMENT '地址类型',
  206. `latitude` decimal(10, 7) NOT NULL COMMENT '纬度',
  207. `longitude` decimal(10, 7) NOT NULL COMMENT '经度',
  208. `province` varchar(50) NOT NULL COMMENT '省',
  209. `city` varchar(50) NOT NULL COMMENT '市',
  210. `district` varchar(50) NOT NULL COMMENT '区',
  211. `location` varchar(255) NOT NULL COMMENT '定位地址',
  212. `area_code` varchar(6) NOT NULL COMMENT '行政区划代码',
  213. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  214. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  215. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  216. PRIMARY KEY (`id`),
  217. KEY `idx_cloc_coach_coach_id` (`coach_id`),
  218. KEY `idx_type` (`type`),
  219. CONSTRAINT `fk_locations_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  220. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师定位地址表';
  221. -- 技师服务项目表
  222. CREATE TABLE `coach_project` (
  223. `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  224. `coach_id` bigint UNSIGNED NOT NULL COMMENT '技师ID',
  225. `project_id` bigint UNSIGNED NOT NULL COMMENT '项目ID',
  226. `discount_amount` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '优惠金额',
  227. `service_gender` varchar(20) NOT NULL DEFAULT 'all' COMMENT '服务性别(all:不限 male:男 female:女)',
  228. `service_distance` int NOT NULL DEFAULT 0 COMMENT '服务距离(米)',
  229. `traffic_fee_type` varchar(20) NOT NULL DEFAULT 'free' COMMENT '收取路费(free:免费 one_way:单程 round_trip:双程)',
  230. `traffic_fee` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '路费金额',
  231. `state` varchar(20) NOT NULL DEFAULT 'enable' COMMENT '状态(enable:启用 disable:禁用)',
  232. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  233. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  234. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  235. PRIMARY KEY (`id`),
  236. UNIQUE KEY `uk_coach_project` (`coach_id`, `project_id`),
  237. KEY `idx_coach_id` (`coach_id`),
  238. KEY `idx_project_id` (`project_id`),
  239. KEY `idx_state` (`state`),
  240. CONSTRAINT `fk_cp_coach` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`),
  241. CONSTRAINT `fk_cp_project` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`)
  242. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师服务项目表';
  243. -- 订单表
  244. CREATE TABLE IF NOT EXISTS `order` (
  245. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单编号',
  246. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  247. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  248. `project_id` bigint unsigned NOT NULL COMMENT '项目编号',
  249. `channel_id` bigint unsigned DEFAULT NULL COMMENT '渠道编号',
  250. `shop_id` bigint unsigned DEFAULT NULL COMMENT '店铺编号',
  251. `agent_id` bigint unsigned DEFAULT NULL COMMENT '代理编号',
  252. `customer_service_id` bigint unsigned DEFAULT NULL COMMENT '跟单客服编号',
  253. `type` ENUM('normal', 'add_time') NOT NULL COMMENT '订单类型',
  254. `source` ENUM('platform', 'shop') NOT NULL COMMENT '订单来源',
  255. `payment_type` ENUM('balance', 'wechat', 'alipay') NULL COMMENT '支付类型',
  256. `project_amount` DECIMAL(10, 2) NOT NULL COMMENT '项目金额',
  257. `traffic_amount` DECIMAL(10, 2) DEFAULT '0.00' COMMENT '路费金额',
  258. `total_amount` DECIMAL(10, 2) NOT NULL COMMENT '订单金额',
  259. `balance_amount` DECIMAL(10, 2) DEFAULT '0.00' COMMENT '余额抵扣金额',
  260. `pay_amount` DECIMAL(10, 2) NOT NULL DEFAULT '0.00' COMMENT '实付金额',
  261. `discount_amount` DECIMAL(10, 2) DEFAULT '0.00' COMMENT '优惠卷金额',
  262. `tip_amount` DECIMAL(10, 2) DEFAULT '0.00' COMMENT '打赏金额',
  263. `service_snapshot` json DEFAULT NULL COMMENT '项目快照',
  264. `service_time` timestamp NOT NULL COMMENT '服务时间',
  265. `distance` int DEFAULT '0' COMMENT '目的地距离(米)',
  266. `latitude` decimal(10, 7) NOT NULL COMMENT '目的地纬度',
  267. `longitude` decimal(10, 7) NOT NULL COMMENT '目的地经度',
  268. `location` varchar(255) NOT NULL COMMENT '目的地定位地址',
  269. `address` varchar(255) DEFAULT NULL COMMENT '目的地详细地址',
  270. `area_code` varchar(6) NOT NULL COMMENT '目的地行政区划代码',
  271. `remark` varchar(255) DEFAULT NULL COMMENT '订单备注',
  272. `state` ENUM(
  273. 'wait_pay',
  274. 'wait_receive',
  275. 'service',
  276. 'service_ing',
  277. 'service_end',
  278. 'leave',
  279. 'complete',
  280. 'cancel'
  281. ) NOT NULL COMMENT '订单状态',
  282. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  283. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  284. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  285. PRIMARY KEY (`id`),
  286. KEY `idx_user_id` (`user_id`),
  287. KEY `idx_coach_id` (`coach_id`),
  288. KEY `idx_service_id` (`project_id`),
  289. KEY `idx_shop_id` (`shop_id`),
  290. KEY `idx_agent_id` (`agent_id`),
  291. KEY `idx_service_time` (`service_time`)
  292. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单表';
  293. -- 订单异常记录表
  294. CREATE TABLE IF NOT EXISTS `order_exc_records` (
  295. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单异常记录编号',
  296. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  297. `customer_service_id` bigint unsigned DEFAULT NULL COMMENT '跟单客服编号',
  298. `type` varchar(255) NOT NULL COMMENT '异常类型',
  299. `reason` varchar(255) NOT NULL COMMENT '异常原因',
  300. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  301. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  302. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  303. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  304. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  305. PRIMARY KEY (`id`),
  306. KEY `idx_oer_order_order_id` (`order_id`),
  307. KEY `idx_exc_type` (`type`),
  308. CONSTRAINT `fk_exc_records_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  309. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单异常记录表';
  310. -- 订单记录表
  311. CREATE TABLE IF NOT EXISTS `order_records` (
  312. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单记录编号',
  313. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  314. `object_id` bigint unsigned NOT NULL COMMENT '对象编号',
  315. `object_type` varchar(255) NOT NULL COMMENT '对象类型',
  316. `state` varchar(255) NOT NULL COMMENT '记录状态',
  317. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  318. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  319. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  320. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  321. PRIMARY KEY (`id`),
  322. KEY `idx_orec_order_order_id` (`order_id`),
  323. KEY `idx_object_id` (`object_id`),
  324. KEY `idx_object_type` (`object_type`),
  325. CONSTRAINT `fk_order_records_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  326. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单记录表';
  327. -- 订单分销记录表
  328. CREATE TABLE IF NOT EXISTS `order_dist_records` (
  329. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '订单分销记录编号',
  330. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  331. `object_id` bigint unsigned NOT NULL COMMENT '对象编号',
  332. `object_type` varchar(255) NOT NULL COMMENT '对象类型',
  333. `dist_type` varchar(255) NOT NULL COMMENT '分销类型',
  334. `amount` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '分销金额',
  335. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  336. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  337. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  338. PRIMARY KEY (`id`),
  339. KEY `idx_odr_order_order_id` (`order_id`),
  340. KEY `idx_object_id` (`object_id`),
  341. KEY `idx_object_type` (`object_type`),
  342. KEY `idx_dist_type` (`dist_type`),
  343. CONSTRAINT `fk_dist_records_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  344. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单分销记录表';
  345. -- 抢单记录表
  346. CREATE TABLE IF NOT EXISTS `order_grab_records` (
  347. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '抢单池编号',
  348. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  349. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  350. `state` varchar(255) NOT NULL DEFAULT 'JOINED' COMMENT '状态',
  351. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  352. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  353. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  354. PRIMARY KEY (`id`),
  355. UNIQUE KEY `uk_ogr_coach_coach_id` (`coach_id`),
  356. KEY `idx_ogr_order_order_id` (`order_id`),
  357. CONSTRAINT `fk_grab_records_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  358. CONSTRAINT `fk_grab_records_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  359. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '抢单记录表';
  360. -- 评论表
  361. CREATE TABLE IF NOT EXISTS `order_comments` (
  362. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '评论编号',
  363. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  364. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  365. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  366. `content` text COMMENT '评论内容',
  367. `rating` tinyint unsigned NOT NULL DEFAULT '5' COMMENT '评论星级',
  368. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  369. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  370. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  371. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  372. PRIMARY KEY (`id`),
  373. UNIQUE KEY `uk_ocmt_order_order_id` (`order_id`),
  374. KEY `idx_ocmt_muser_user_id` (`user_id`),
  375. KEY `idx_ocmt_coach_coach_id` (`coach_id`),
  376. CONSTRAINT `fk_comments_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  377. CONSTRAINT `fk_comments_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
  378. CONSTRAINT `fk_comments_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  379. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '评论表';
  380. -- 钱包表
  381. CREATE TABLE IF NOT EXISTS `wallet` (
  382. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '钱包编号',
  383. `owner_id` BIGINT UNSIGNED NOT NULL COMMENT '所属主体编号',
  384. `owner_type` varchar(255) NOT NULL DEFAULT '' COMMENT '钱包类型',
  385. `total_balance` DECIMAL(20, 2) NOT NULL DEFAULT 0.00 COMMENT '总余额',
  386. `available_balance` DECIMAL(20, 2) NOT NULL DEFAULT 0.00 COMMENT '可用余额',
  387. `frozen_amount` DECIMAL(20, 2) NOT NULL DEFAULT 0.00 COMMENT '冻结金额',
  388. `total_income` DECIMAL(20, 2) NOT NULL DEFAULT 0.00 COMMENT '累计收入',
  389. `total_expense` DECIMAL(20, 2) NOT NULL DEFAULT 0.00 COMMENT '累计支出',
  390. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态:ENABLE-启用,DISABLE-禁用',
  391. `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  392. `updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  393. PRIMARY KEY (`id`),
  394. UNIQUE KEY `uk_owner` (`owner_id`, `owner_type`)
  395. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '钱包表';
  396. -- 钱包交易记录表
  397. CREATE TABLE IF NOT EXISTS `wallet_trans_records` (
  398. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '交易记录编号',
  399. `wallet_id` BIGINT UNSIGNED NOT NULL COMMENT '钱包编号',
  400. `owner_type` varchar(255) NOT NULL COMMENT '业务类型(profit:分账 recharge:充值 withdraw:提现 refund:退款 payment:支付 gift:赠送 breach:违约 compensation:补偿)',
  401. `owner_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '业务编号',
  402. `trans_type` varchar(32) NOT NULL COMMENT '交易类型(income:收入 expense:支出)',
  403. `storage_type` varchar(32) NOT NULL COMMENT '存储类型(balance:余额 recharge:充值)',
  404. `amount` decimal(10, 2) NOT NULL COMMENT '交易金额',
  405. `before_balance` decimal(10, 2) NOT NULL COMMENT '交易前余额',
  406. `after_balance` decimal(10, 2) NOT NULL COMMENT '交易后余额',
  407. `before_recharge_balance` decimal(10, 2) NOT NULL COMMENT '交易前充值余额',
  408. `after_recharge_balance` decimal(10, 2) NOT NULL COMMENT '交易后充值余额',
  409. `trans_time` datetime NOT NULL COMMENT '交易时间',
  410. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  411. `state` varchar(32) NOT NULL COMMENT '交易状态(processing:进行中 success:成功 fail:失败 cancel:取消)',
  412. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  413. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  414. PRIMARY KEY (`id`),
  415. KEY `idx_wallet_id` (`wallet_id`),
  416. CONSTRAINT `fk_wallet_trans_records_wallet` FOREIGN KEY (`wallet_id`) REFERENCES `wallet` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  417. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '钱包交易记录表';
  418. -- 提现记录表
  419. CREATE TABLE IF NOT EXISTS `wallet_withdraw_records` (
  420. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '提现编号',
  421. `wallet_id` bigint unsigned NOT NULL COMMENT '钱包编号',
  422. `trans_record_id` bigint unsigned DEFAULT NULL COMMENT '交易记录编号',
  423. `external_no` varchar(100) DEFAULT NULL COMMENT '外部交易单号',
  424. `withdraw_type` varchar(255) NOT NULL COMMENT '提现方式',
  425. `withdraw_account` varchar(100) NOT NULL COMMENT '提现账户',
  426. `withdraw_account_name` varchar(100) NOT NULL COMMENT '提现账户名',
  427. `amount` decimal(10, 2) NOT NULL COMMENT '提现金额',
  428. `fee` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '提现手续费',
  429. `withdraw_time` timestamp NOT NULL COMMENT '提现时间',
  430. `area_code` varchar(6) NOT NULL COMMENT '行政区划代码',
  431. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  432. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  433. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  434. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  435. `audit_state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '审核状态',
  436. `state` varchar(255) NOT NULL DEFAULT 'PROCESSING' COMMENT '状态',
  437. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  438. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  439. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  440. PRIMARY KEY (`id`),
  441. KEY `idx_wallet_id` (`wallet_id`),
  442. KEY `idx_trans_record_id` (`trans_record_id`),
  443. KEY `idx_external_no` (`external_no`),
  444. CONSTRAINT `fk_withdraws_wallet_id` FOREIGN KEY (`wallet_id`) REFERENCES `wallet` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
  445. CONSTRAINT `fk_withdraws_trans_record_id` FOREIGN KEY (`trans_record_id`) REFERENCES `wallet_trans_records` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  446. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '提现记录表';
  447. -- 支付记录表
  448. CREATE TABLE IF NOT EXISTS `wallet_payment_records` (
  449. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '支付编号',
  450. `order_id` BIGINT UNSIGNED NOT NULL COMMENT '订单编号',
  451. `wallet_id` BIGINT UNSIGNED NOT NULL COMMENT '钱包编号',
  452. `trans_record_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '交易记录编号',
  453. `payment_no` VARCHAR(32) NOT NULL COMMENT '交易单号',
  454. `payment_method` VARCHAR(32) NOT NULL COMMENT '支付方式',
  455. `total_amount` DECIMAL(12, 2) NOT NULL COMMENT '合计支付金额',
  456. `actual_amount` DECIMAL(12, 2) NOT NULL COMMENT '实际支付金额',
  457. `used_wallet_balance` DECIMAL(12, 2) NOT NULL COMMENT '使用钱包余额',
  458. `used_recharge_balance` DECIMAL(12, 2) NOT NULL COMMENT '使用充值余额',
  459. `payment_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
  460. `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注',
  461. `state` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '状态',
  462. PRIMARY KEY (`id`),
  463. CONSTRAINT `fk_payment_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
  464. CONSTRAINT `fk_payment_wallet_id` FOREIGN KEY (`wallet_id`) REFERENCES `wallet` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
  465. CONSTRAINT `fk_payment_trans_record_id` FOREIGN KEY (`trans_record_id`) REFERENCES `wallet_trans_records` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  466. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '支付记录表';
  467. -- 退款记录表
  468. CREATE TABLE IF NOT EXISTS `wallet_refund_records` (
  469. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '退款编号',
  470. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  471. `wallet_id` bigint unsigned NOT NULL COMMENT '钱包编号',
  472. `trans_record_id` bigint unsigned DEFAULT NULL COMMENT '交易记录编号',
  473. `external_no` varchar(100) DEFAULT NULL COMMENT '外部交易单号',
  474. `refund_method` VARCHAR(32) NOT NULL COMMENT '退款方式',
  475. `total_refund_amount` decimal(12, 2) NOT NULL COMMENT '合计退款金额',
  476. `actual_refund_amount` decimal(12, 2) NOT NULL COMMENT '实际退款金额',
  477. `wallet_balance_refund_amount` decimal(12, 2) NOT NULL COMMENT '钱包余额退款金额',
  478. `recharge_balance_refund_amount` decimal(12, 2) NOT NULL COMMENT '充值余额退款金额',
  479. `refund_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '退款时间',
  480. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  481. `state` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '状态',
  482. PRIMARY KEY (`id`),
  483. KEY `idx_order_id` (`order_id`),
  484. KEY `idx_wallet_id` (`wallet_id`),
  485. CONSTRAINT `fk_refund_records_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  486. CONSTRAINT `fk_refund_records_wallet_id` FOREIGN KEY (`wallet_id`) REFERENCES `wallet` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  487. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '退款记录表';
  488. -- 分账记录表
  489. CREATE TABLE IF NOT EXISTS `wallet_split_records` (
  490. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '分账记录编号',
  491. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  492. `rule_id` bigint unsigned NOT NULL COMMENT '分账规则配置编号',
  493. `split_type` varchar(255) NOT NULL COMMENT '分账类型(服务佣金、平台分成、邀请奖励、团队邀请奖励、推荐奖励)',
  494. `amount` decimal(10, 2) NOT NULL COMMENT '参与分账金额',
  495. `split_ratio` decimal(5, 2) NOT NULL COMMENT '分账比例',
  496. `split_amount` decimal(10, 2) NOT NULL COMMENT '分账金额',
  497. `entry_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入账时间',
  498. `remark` varchar(255) DEFAULT NULL COMMENT '入账备注',
  499. `state` VARCHAR(32) NOT NULL DEFAULT 'pending' COMMENT '状态',
  500. PRIMARY KEY (`id`),
  501. KEY `idx_order_id` (`order_id`),
  502. KEY `idx_rule_id` (`rule_id`)
  503. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '分账记录表';
  504. -- 营销活动表
  505. CREATE TABLE IF NOT EXISTS `market_activities` (
  506. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '营销活动编号',
  507. `object_id` bigint unsigned NOT NULL COMMENT '对象编号',
  508. `object_type` varchar(255) NOT NULL COMMENT '对象类型',
  509. `activity_name` varchar(255) NOT NULL COMMENT '活动名称',
  510. `activity_desc` text COMMENT '活动描述',
  511. `activity_type` varchar(255) NOT NULL COMMENT '活动类型',
  512. `start_time` timestamp NOT NULL COMMENT '开始时间',
  513. `end_time` timestamp NOT NULL COMMENT '结束时间',
  514. `budget_amount` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '预算金额',
  515. `join_count` int NOT NULL DEFAULT '0' COMMENT '参与数量',
  516. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  517. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  518. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  519. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  520. PRIMARY KEY (`id`),
  521. KEY `idx_object_id` (`object_id`),
  522. KEY `idx_object_type` (`object_type`)
  523. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '营销活动表';
  524. -- 优惠券表
  525. CREATE TABLE IF NOT EXISTS `market_coupons` (
  526. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '优惠券编号',
  527. `activity_id` bigint unsigned NOT NULL COMMENT '营销活动编号',
  528. `coupon_name` varchar(255) NOT NULL COMMENT '优惠券名称',
  529. `coupon_desc` text COMMENT '优惠券描述',
  530. `coupon_type` varchar(255) NOT NULL COMMENT '优惠券类型',
  531. `discount_type` varchar(255) NOT NULL COMMENT '优惠类型',
  532. `discount_value` decimal(10, 2) NOT NULL COMMENT '优惠值',
  533. `min_amount` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '最低消费金额',
  534. `valid_days` int DEFAULT NULL COMMENT '有效天数',
  535. `valid_start` timestamp NULL DEFAULT NULL COMMENT '有效期开始',
  536. `valid_end` timestamp NULL DEFAULT NULL COMMENT '有效期结束',
  537. `total_count` int NOT NULL DEFAULT '0' COMMENT '发放总量',
  538. `used_count` int NOT NULL DEFAULT '0' COMMENT '已使用数量',
  539. `per_limit` int NOT NULL DEFAULT '1' COMMENT '每人限领',
  540. `use_range` varchar(255) NOT NULL COMMENT '使用范围',
  541. `use_rule` json DEFAULT NULL COMMENT '使用规则',
  542. `sort` int NOT NULL DEFAULT '0' COMMENT '排序',
  543. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  544. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  545. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  546. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  547. PRIMARY KEY (`id`),
  548. KEY `idx_activity_id` (`activity_id`),
  549. CONSTRAINT `fk_coupons_activity_id` FOREIGN KEY (`activity_id`) REFERENCES `market_activities` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  550. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '优惠券表';
  551. -- 优惠券领取记录表
  552. CREATE TABLE IF NOT EXISTS `market_coupon_records` (
  553. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '领取记录编号',
  554. `coupon_id` bigint unsigned NOT NULL COMMENT '优惠券编号',
  555. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  556. `order_id` bigint unsigned DEFAULT NULL COMMENT '使用订单编号',
  557. `get_time` timestamp NOT NULL COMMENT '领取时间',
  558. `use_time` timestamp NULL DEFAULT NULL COMMENT '使用时间',
  559. `state` varchar(255) NOT NULL COMMENT '状态',
  560. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  561. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  562. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  563. PRIMARY KEY (`id`),
  564. KEY `idx_coupon_id` (`coupon_id`),
  565. KEY `idx_user_id` (`user_id`),
  566. KEY `idx_order_id` (`order_id`),
  567. CONSTRAINT `fk_coupon_records_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `market_coupons` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  568. CONSTRAINT `fk_coupon_records_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  569. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '优惠券领取记录表';
  570. -- 分销团队表
  571. CREATE TABLE IF NOT EXISTS `market_dist_teams` (
  572. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '分销团队编号',
  573. `object_id` bigint unsigned NOT NULL COMMENT '对象编号',
  574. `object_type` varchar(255) NOT NULL COMMENT '对象类型',
  575. `user_id` bigint unsigned NOT NULL COMMENT '被邀用户编号',
  576. `level` varchar(255) NOT NULL DEFAULT 'LEVEL_1' COMMENT '层级',
  577. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  578. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  579. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  580. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  581. PRIMARY KEY (`id`),
  582. UNIQUE KEY `uk_object_user` (
  583. `object_id`,
  584. `object_type`,
  585. `user_id`
  586. ),
  587. KEY `idx_user_id` (`user_id`),
  588. CONSTRAINT `fk_dist_teams_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  589. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '分销团队表';
  590. -- 分销规则表
  591. CREATE TABLE IF NOT EXISTS `market_dist_rules` (
  592. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '分销规则编号',
  593. `object_id` bigint unsigned NOT NULL COMMENT '对象编号',
  594. `object_type` varchar(255) NOT NULL COMMENT '对象类型',
  595. `rule_type` varchar(255) NOT NULL COMMENT '规则类型',
  596. `level` varchar(255) NOT NULL COMMENT '层级',
  597. `commission_rate` decimal(5, 2) NOT NULL DEFAULT '0.00' COMMENT '佣金比例',
  598. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  599. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  600. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  601. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  602. PRIMARY KEY (`id`),
  603. KEY `idx_object_id` (`object_id`),
  604. KEY `idx_status` (`state`)
  605. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '分销规则表';
  606. -- 分销记录表
  607. CREATE TABLE IF NOT EXISTS `market_dist_records` (
  608. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '分销记录编号',
  609. `team_id` bigint unsigned NOT NULL COMMENT '分销团队编号',
  610. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  611. `commission_amount` decimal(10, 2) NOT NULL DEFAULT '0.00' COMMENT '佣金金额',
  612. `state` varchar(255) NOT NULL COMMENT '状态',
  613. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  614. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  615. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  616. PRIMARY KEY (`id`),
  617. KEY `idx_team_id` (`team_id`),
  618. KEY `idx_order_id` (`order_id`),
  619. CONSTRAINT `fk_dist_records_team_id` FOREIGN KEY (`team_id`) REFERENCES `market_dist_teams` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  620. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '分销记录表';
  621. -- 项目分类表
  622. CREATE TABLE IF NOT EXISTS `project_cate` (
  623. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '项目分类编号',
  624. `name` varchar(255) NOT NULL COMMENT '项目分类名称',
  625. `cover` varchar(255) DEFAULT NULL COMMENT '分类封面',
  626. `sort` int DEFAULT NULL COMMENT '排序',
  627. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  628. PRIMARY KEY (`id`)
  629. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '项目分类表';
  630. -- 服务项目表
  631. CREATE TABLE IF NOT EXISTS `project_service` (
  632. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '服务项目编号',
  633. `cate_id` bigint unsigned NOT NULL COMMENT '项目分类编号',
  634. `cover` varchar(255) DEFAULT NULL COMMENT '项目封面',
  635. `title` varchar(255) NOT NULL COMMENT '项目标题',
  636. `subtitle` varchar(255) DEFAULT NULL COMMENT '项目副标题',
  637. `price` decimal(10, 2) NOT NULL COMMENT '项目金额',
  638. `original_price` decimal(10, 2) NOT NULL COMMENT '项目原价',
  639. `sales` int DEFAULT '0' COMMENT '虚拟销量',
  640. `duration` int NOT NULL COMMENT '服务时长',
  641. `project_desc` text COMMENT '项目介绍',
  642. `service_desc` text COMMENT '服务说明',
  643. `type` varchar(255) NOT NULL COMMENT '服务类型',
  644. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  645. PRIMARY KEY (`id`)
  646. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '服务项目表';
  647. -- 系统参数配置表
  648. CREATE TABLE IF NOT EXISTS `sys_configs` (
  649. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '参数编号',
  650. `param_name` varchar(255) NOT NULL COMMENT '参数名称',
  651. `param_key` varchar(255) NOT NULL COMMENT '参数键名',
  652. `param_value` varchar(255) NOT NULL COMMENT '参数键值',
  653. `param_type` varchar(255) NOT NULL COMMENT '参数类型',
  654. `is_system` varchar(255) NOT NULL DEFAULT 'NO' COMMENT '是否系统内置',
  655. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  656. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  657. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  658. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  659. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  660. PRIMARY KEY (`id`),
  661. UNIQUE KEY `uk_param_key` (`param_key`)
  662. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统参数配置表';
  663. -- 业务规则配置表
  664. CREATE TABLE IF NOT EXISTS `sys_business_rules` (
  665. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '规则编号',
  666. `rule_code` varchar(255) NOT NULL COMMENT '规则代码',
  667. `rule_name` varchar(255) NOT NULL COMMENT '规则名称',
  668. `rule_type` varchar(255) NOT NULL COMMENT '规则类型',
  669. `rule_content` json NOT NULL COMMENT '规则内容',
  670. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  671. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  672. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  673. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  674. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  675. PRIMARY KEY (`id`),
  676. UNIQUE KEY `uk_rule_code` (`rule_code`),
  677. KEY `idx_rule_type` (`rule_type`)
  678. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '业务规则配置表';
  679. -- 状态流转规则表
  680. CREATE TABLE IF NOT EXISTS `sys_status_rules` (
  681. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '状态流转规则编号',
  682. `business_type` varchar(255) NOT NULL COMMENT '业务类型',
  683. `current_status` varchar(255) NOT NULL COMMENT '当前状态',
  684. `target_status` varchar(255) NOT NULL COMMENT '目标状态',
  685. `is_allowed` varchar(255) NOT NULL DEFAULT 'NO' COMMENT '是否允许',
  686. `conditions` json DEFAULT NULL COMMENT '流转条件',
  687. `sort` int NOT NULL DEFAULT '0' COMMENT '排序',
  688. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  689. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  690. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  691. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  692. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  693. PRIMARY KEY (`id`),
  694. KEY `idx_business_type` (`business_type`),
  695. KEY `idx_current_status` (`current_status`)
  696. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '状态流转规则表';
  697. -- 状态变更记录表
  698. CREATE TABLE IF NOT EXISTS `sys_status_logs` (
  699. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '状态变更记录编号',
  700. `business_type` varchar(255) NOT NULL COMMENT '业务类型',
  701. `business_id` bigint unsigned NOT NULL COMMENT '业务编号',
  702. `from_status` varchar(255) NOT NULL COMMENT '原状态',
  703. `to_status` varchar(255) NOT NULL COMMENT '新状态',
  704. `operator_id` bigint unsigned DEFAULT NULL COMMENT '操作人编号',
  705. `operator_type` varchar(255) DEFAULT NULL COMMENT '操作人类型',
  706. `change_reason` varchar(255) DEFAULT NULL COMMENT '变更原因',
  707. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  708. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  709. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  710. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  711. PRIMARY KEY (`id`),
  712. KEY `idx_business_type_id` (
  713. `business_type`,
  714. `business_id`
  715. ),
  716. KEY `idx_operator_id` (`operator_id`)
  717. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '状态变更记录表';
  718. -- 定时任务表
  719. CREATE TABLE IF NOT EXISTS `sys_scheduled_tasks` (
  720. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '任务编号',
  721. `task_code` varchar(255) NOT NULL COMMENT '任务代码',
  722. `task_name` varchar(255) NOT NULL COMMENT '任务名称',
  723. `task_group` varchar(255) NOT NULL COMMENT '任务组',
  724. `task_class` varchar(255) NOT NULL COMMENT '执行类',
  725. `cron_expression` varchar(255) NOT NULL COMMENT 'CRON表达式',
  726. `task_params` json DEFAULT NULL COMMENT '执行参数',
  727. `concurrent` varchar(255) NOT NULL DEFAULT 'NO' COMMENT '是否并发执行',
  728. `error_strategy` varchar(255) NOT NULL DEFAULT 'CONTINUE' COMMENT '错误策略',
  729. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  730. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  731. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  732. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  733. PRIMARY KEY (`id`),
  734. UNIQUE KEY `uk_task_code` (`task_code`),
  735. KEY `idx_task_group` (`task_group`)
  736. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '定时任务表';
  737. -- 任务执行日志表
  738. CREATE TABLE IF NOT EXISTS `sys_task_logs` (
  739. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '任务日志编号',
  740. `task_id` bigint unsigned NOT NULL COMMENT '任务编号',
  741. `execution_time` timestamp NOT NULL COMMENT '执行时间',
  742. `execution_result` varchar(255) NOT NULL COMMENT '执行结果',
  743. `error_message` text DEFAULT NULL COMMENT '错误信息',
  744. `execution_duration` int NOT NULL DEFAULT '0' COMMENT '执行时长(毫秒)',
  745. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  746. PRIMARY KEY (`id`),
  747. KEY `idx_task_id` (`task_id`),
  748. KEY `idx_execution_time` (`execution_time`),
  749. CONSTRAINT `fk_task_logs_task_id` FOREIGN KEY (`task_id`) REFERENCES `sys_scheduled_tasks` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  750. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '任务执行日志表';
  751. -- 缓存配置表
  752. CREATE TABLE IF NOT EXISTS `sys_cache_configs` (
  753. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '缓存配置编号',
  754. `cache_key` varchar(255) NOT NULL COMMENT '缓存键前缀',
  755. `cache_type` varchar(255) NOT NULL COMMENT '缓存类型',
  756. `expire_time` int NOT NULL DEFAULT '3600' COMMENT '过期时间(秒)',
  757. `update_strategy` varchar(255) NOT NULL COMMENT '更新策略',
  758. `allow_null` varchar(255) NOT NULL DEFAULT 'NO' COMMENT '是否允许空值',
  759. `max_size` int DEFAULT NULL COMMENT '最大容量',
  760. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  761. `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  762. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  763. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  764. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  765. PRIMARY KEY (`id`),
  766. UNIQUE KEY `uk_cache_key` (`cache_key`),
  767. KEY `idx_cache_type` (`cache_type`)
  768. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '缓存配置表';
  769. -- 店铺表
  770. CREATE TABLE IF NOT EXISTS `shop_infos` (
  771. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '店铺编号',
  772. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  773. `auth_record_id` bigint unsigned DEFAULT NULL COMMENT '店铺认证记录编号',
  774. `salesperson_id` bigint unsigned DEFAULT NULL COMMENT '业务员编号',
  775. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  776. PRIMARY KEY (`id`)
  777. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '店铺表';
  778. -- 店铺认证记录表
  779. CREATE TABLE IF NOT EXISTS `shop_auth_records` (
  780. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '店铺认证记录编号',
  781. `shop_id` bigint unsigned NOT NULL COMMENT '店铺编号',
  782. `shop_name` varchar(100) NOT NULL COMMENT '店铺名称',
  783. `shop_desc` text DEFAULT NULL COMMENT '店铺描述',
  784. `shop_address` varchar(255) NOT NULL COMMENT '店铺地址',
  785. `contact_phone` varchar(11) NOT NULL COMMENT '店铺联系电话',
  786. `contact_name` varchar(50) NOT NULL COMMENT '店铺联系人',
  787. `contact_id_card` varchar(18) NOT NULL COMMENT '店铺联系人身份证',
  788. `id_card_front_photo` varchar(255) NOT NULL COMMENT '店铺联系人身份证正面',
  789. `id_card_back_photo` varchar(255) NOT NULL COMMENT '店铺联系人身份证反面',
  790. `business_license` varchar(255) NOT NULL COMMENT '店铺营业执照',
  791. `license_front_photo` varchar(255) NOT NULL COMMENT '店铺营业执照正面',
  792. `license_back_photo` varchar(255) NOT NULL COMMENT '店铺营业执照反面',
  793. `storefront_photo` varchar(255) NOT NULL COMMENT '店铺门头照',
  794. `storefront_front_photo` varchar(255) NOT NULL COMMENT '店铺门头照正面',
  795. `storefront_back_photo` varchar(255) NOT NULL COMMENT '店铺门头照反面',
  796. `longitude` decimal(10, 7) NOT NULL COMMENT '店铺经营地址经度',
  797. `latitude` decimal(10, 7) NOT NULL COMMENT '店铺经营地址纬度',
  798. `operating_area` decimal(10, 2) NOT NULL COMMENT '店铺经营面积',
  799. `operating_years` int NOT NULL COMMENT '店铺经营年限',
  800. `technician_count` int NOT NULL COMMENT '店铺技师人数',
  801. `business_hours` json DEFAULT NULL COMMENT '店铺营业时间',
  802. `rating` decimal(3, 1) DEFAULT NULL COMMENT '评分',
  803. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  804. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  805. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回馈',
  806. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '审核状态',
  807. PRIMARY KEY (`id`),
  808. CONSTRAINT `fk_auth_record_shop` FOREIGN KEY (`shop_id`) REFERENCES `shop_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  809. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '店铺认证记录表';
  810. -- 店铺会员表
  811. CREATE TABLE IF NOT EXISTS `shop_members` (
  812. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '店铺会员编号',
  813. `shop_id` bigint unsigned NOT NULL COMMENT '店铺编号',
  814. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  815. PRIMARY KEY (`id`)
  816. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '店铺会员表';
  817. -- 店铺服务项目表
  818. CREATE TABLE IF NOT EXISTS `shop_services` (
  819. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '店铺服务项目编号',
  820. `shop_id` bigint unsigned NOT NULL COMMENT '店铺编号',
  821. `service_id` bigint unsigned NOT NULL COMMENT '服务项目编号',
  822. `name` varchar(100) NOT NULL COMMENT '服务项目名称',
  823. `cover` varchar(255) DEFAULT NULL COMMENT '服务项目封面',
  824. `price` decimal(10, 2) NOT NULL COMMENT '服务项目价格',
  825. `duration` int NOT NULL COMMENT '服务时长(分钟)',
  826. `type` varchar(255) NOT NULL COMMENT '服务类型',
  827. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  828. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  829. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  830. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  831. PRIMARY KEY (`id`),
  832. KEY `idx_ss_shop_shop_id` (`shop_id`),
  833. KEY `idx_service_id` (`service_id`)
  834. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '店铺服务项目表';
  835. -- 店铺技师服务项目表
  836. CREATE TABLE IF NOT EXISTS `shop_coach_services` (
  837. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '店铺技师所属项目编号',
  838. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  839. `service_id` bigint unsigned NOT NULL COMMENT '店铺服务项目编号',
  840. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  841. PRIMARY KEY (`id`),
  842. CONSTRAINT `fk_shop_coach_services_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  843. CONSTRAINT `fk_shop_coach_services_service_id` FOREIGN KEY (`service_id`) REFERENCES `shop_services` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  844. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '店铺技师开通项目表';
  845. -- 店铺评价表
  846. CREATE TABLE IF NOT EXISTS `shop_comments` (
  847. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '店铺评价编号',
  848. `shop_id` bigint unsigned NOT NULL COMMENT '店铺编号',
  849. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  850. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  851. `content` text COMMENT '评价内容',
  852. `rating` decimal(2, 1) NOT NULL DEFAULT '5.0' COMMENT '评分',
  853. `comment_type` varchar(255) NOT NULL COMMENT '评价类型',
  854. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  855. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  856. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  857. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  858. PRIMARY KEY (`id`),
  859. KEY `idx_sc_shop_shop_id` (`shop_id`),
  860. KEY `idx_sc_muser_user_id` (`user_id`),
  861. KEY `idx_order_id` (`order_id`),
  862. CONSTRAINT `fk_shop_comments_shop_id` FOREIGN KEY (`shop_id`) REFERENCES `shop_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  863. CONSTRAINT `fk_shop_comments_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  864. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '店铺评价表';
  865. -- 代理商表
  866. CREATE TABLE IF NOT EXISTS `agent_infos` (
  867. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '代理商编号',
  868. `user_id` bigint unsigned NOT NULL COMMENT '用户编号',
  869. `info_record_id` bigint unsigned DEFAULT NULL COMMENT '代理商信息记录编号',
  870. `real_auth_record_id` bigint unsigned DEFAULT NULL COMMENT '代理商实名认证记录编号',
  871. `qual_record_id` bigint unsigned DEFAULT NULL COMMENT '代理商资质认证记录编号',
  872. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  873. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  874. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  875. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  876. PRIMARY KEY (`id`),
  877. UNIQUE KEY `uk_user_id` (`user_id`)
  878. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商表';
  879. -- 代理商信息记录表
  880. CREATE TABLE IF NOT EXISTS `agent_info_records` (
  881. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '代理商信息记录编号',
  882. `agent_id` bigint unsigned NOT NULL COMMENT '代理商编号',
  883. `company_name` varchar(255) NOT NULL COMMENT '公司名称',
  884. `company_address` varchar(255) NOT NULL COMMENT '公司地址',
  885. `contact_name` varchar(50) NOT NULL COMMENT '联系人姓名',
  886. `contact_mobile` varchar(11) NOT NULL COMMENT '联系人手机号',
  887. `business_area` varchar(255) NOT NULL COMMENT '经营区域',
  888. `business_scope` varchar(255) NOT NULL COMMENT '经营范围',
  889. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  890. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  891. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  892. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  893. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  894. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  895. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  896. PRIMARY KEY (`id`),
  897. KEY `idx_air_agent_agent_id` (`agent_id`),
  898. CONSTRAINT `fk_info_records_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `agent_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  899. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商信息记录表';
  900. -- 代理商实名认证记录表
  901. CREATE TABLE IF NOT EXISTS `agent_real_auth_records` (
  902. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '代理商实名认证记录编号',
  903. `agent_id` bigint unsigned NOT NULL COMMENT '代理商编号',
  904. `real_name` varchar(50) NOT NULL COMMENT '法人姓名',
  905. `id_card` varchar(18) NOT NULL COMMENT '法人身份证号',
  906. `id_card_front_photo` varchar(255) NOT NULL COMMENT '法人身份证正面照片',
  907. `id_card_back_photo` varchar(255) NOT NULL COMMENT '法人身份证反面照片',
  908. `business_license` varchar(255) NOT NULL COMMENT '营业执照照片',
  909. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  910. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  911. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  912. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  913. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  914. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  915. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  916. PRIMARY KEY (`id`),
  917. KEY `idx_arar_agent_agent_id` (`agent_id`),
  918. CONSTRAINT `fk_real_auth_records_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `agent_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  919. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商实名认证记录表';
  920. -- 代理商资质认证记录表
  921. CREATE TABLE IF NOT EXISTS `agent_qual_records` (
  922. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '代理商资质认证记录编号',
  923. `agent_id` bigint unsigned NOT NULL COMMENT '代理商编号',
  924. `qual_type` varchar(255) NOT NULL COMMENT '资质类型',
  925. `qual_no` varchar(100) DEFAULT NULL COMMENT '资质证书编号',
  926. `qual_photo` varchar(255) NOT NULL COMMENT '资质证书照片',
  927. `valid_start` date DEFAULT NULL COMMENT '有效期开始日期',
  928. `valid_end` date DEFAULT NULL COMMENT '有效期结束日期',
  929. `auditor` varchar(50) DEFAULT NULL COMMENT '审核人',
  930. `audit_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
  931. `audit_remark` varchar(255) DEFAULT NULL COMMENT '审核回执',
  932. `state` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '状态',
  933. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  934. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  935. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  936. PRIMARY KEY (`id`),
  937. KEY `idx_aqr_agent_agent_id` (`agent_id`),
  938. CONSTRAINT `fk_qual_records_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `agent_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  939. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商资质认证记录表';
  940. -- 代理商结算账户表
  941. CREATE TABLE IF NOT EXISTS `agent_settlement_accounts` (
  942. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '结算账户编号',
  943. `agent_id` bigint unsigned NOT NULL COMMENT '代理商编号',
  944. `account_type` varchar(255) NOT NULL COMMENT '账户类型',
  945. `acct_name` varchar(100) NOT NULL COMMENT '开户名',
  946. `acct_no` varchar(50) NOT NULL COMMENT '账号',
  947. `bank_name` varchar(100) DEFAULT NULL COMMENT '开户行',
  948. `bank_branch` varchar(100) DEFAULT NULL COMMENT '支行名称',
  949. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  950. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  951. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  952. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  953. PRIMARY KEY (`id`),
  954. KEY `idx_asa_agent_agent_id` (`agent_id`),
  955. CONSTRAINT `fk_settlement_accounts_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `agent_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  956. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商结算账户表';
  957. -- 代理商分成规则表
  958. CREATE TABLE IF NOT EXISTS `agent_commission_rules` (
  959. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '分成规则编号',
  960. `agent_id` bigint unsigned NOT NULL COMMENT '代理商编号',
  961. `rule_type` varchar(255) NOT NULL COMMENT '规则类型',
  962. `commission_rate` decimal(5, 2) NOT NULL DEFAULT '0.00' COMMENT '分成比例',
  963. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  964. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  965. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  966. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  967. PRIMARY KEY (`id`),
  968. KEY `idx_acr_agent_agent_id` (`agent_id`),
  969. CONSTRAINT `fk_commission_rules_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `agent_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  970. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商分成规则表';
  971. -- 代理商项目分类表
  972. CREATE TABLE `agent_project_cate` (
  973. `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  974. `agent_id` bigint UNSIGNED NOT NULL COMMENT '代理商ID',
  975. `cate_id` bigint UNSIGNED NOT NULL COMMENT '项目分类ID',
  976. `state` varchar(20) NOT NULL DEFAULT 'enable' COMMENT '状态(enable:启用 disable:禁用)',
  977. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  978. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  979. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  980. PRIMARY KEY (`id`),
  981. KEY `idx_agent_id` (`agent_id`),
  982. KEY `idx_category_id` (`cate_id`),
  983. KEY `idx_state` (`state`)
  984. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商项目分类表';
  985. -- 代理商服务项目表
  986. CREATE TABLE `agent_project` (
  987. `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
  988. `cate_id` bigint UNSIGNED NOT NULL COMMENT '代理商项目分类ID',
  989. `project_id` bigint UNSIGNED NOT NULL COMMENT '项目ID',
  990. `agent_id` bigint UNSIGNED NOT NULL COMMENT '代理商ID',
  991. `price` decimal(10, 2) NOT NULL DEFAULT 0.00 COMMENT '项目金额',
  992. `duration` int NOT NULL DEFAULT 0 COMMENT '服务时长(分钟)',
  993. `distance` int NOT NULL DEFAULT 0 COMMENT '接单距离(米)',
  994. `state` varchar(20) NOT NULL DEFAULT 'enable' COMMENT '状态(enable:启用 disable:禁用)',
  995. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  996. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  997. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  998. PRIMARY KEY (`id`),
  999. UNIQUE KEY `uk_agent_project` (`cate_id`, `project_id`),
  1000. KEY `idx_project_id` (`project_id`),
  1001. KEY `idx_state` (`state`),
  1002. CONSTRAINT `fk_apc_agent_project_cate` FOREIGN KEY (`cate_id`) REFERENCES `agent_project_cate` (`id`),
  1003. CONSTRAINT `fk_apc_project` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`)
  1004. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商服务项目表';
  1005. -- 统计维度表
  1006. CREATE TABLE IF NOT EXISTS `stat_dimensions` (
  1007. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '统计维度编号',
  1008. `dimension_code` varchar(255) NOT NULL COMMENT '维度代码',
  1009. `dimension_name` varchar(255) NOT NULL COMMENT '维度名称',
  1010. `dimension_type` varchar(255) NOT NULL COMMENT '维度类型',
  1011. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  1012. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1013. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1014. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1015. PRIMARY KEY (`id`),
  1016. UNIQUE KEY `uk_dimension_code` (`dimension_code`)
  1017. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '统计维度表';
  1018. -- 统计指标表
  1019. CREATE TABLE IF NOT EXISTS `stat_metrics` (
  1020. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '统计指标编号',
  1021. `metric_code` varchar(255) NOT NULL COMMENT '指标代码',
  1022. `metric_name` varchar(255) NOT NULL COMMENT '指标名称',
  1023. `metric_type` varchar(255) NOT NULL COMMENT '指标类型',
  1024. `metric_unit` varchar(255) DEFAULT NULL COMMENT '指标单位',
  1025. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  1026. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1027. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1028. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1029. PRIMARY KEY (`id`),
  1030. UNIQUE KEY `uk_metric_code` (`metric_code`)
  1031. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '统计指标表';
  1032. -- 统计任务表
  1033. CREATE TABLE IF NOT EXISTS `stat_tasks` (
  1034. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '统计任务编号',
  1035. `task_code` varchar(255) NOT NULL COMMENT '任务代码',
  1036. `task_name` varchar(255) NOT NULL COMMENT '任务名称',
  1037. `task_type` varchar(255) NOT NULL COMMENT '任务类型',
  1038. `task_cron` varchar(255) NOT NULL COMMENT '任务执行表达式',
  1039. `task_params` json DEFAULT NULL COMMENT '任务参数',
  1040. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  1041. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1042. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1043. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1044. PRIMARY KEY (`id`),
  1045. UNIQUE KEY `uk_task_code` (`task_code`)
  1046. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '统计任务表';
  1047. -- 规则配置表
  1048. CREATE TABLE IF NOT EXISTS `rule_configs` (
  1049. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '规则编号',
  1050. `rule_code` varchar(255) NOT NULL COMMENT '规则代码',
  1051. `rule_name` varchar(255) NOT NULL COMMENT '规则名称',
  1052. `rule_type` varchar(255) NOT NULL COMMENT '规则类型',
  1053. `rule_desc` varchar(500) DEFAULT NULL COMMENT '规则描述',
  1054. `rule_content` json NOT NULL COMMENT '规则内容',
  1055. `priority` int NOT NULL DEFAULT '0' COMMENT '优先级',
  1056. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  1057. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1058. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1059. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1060. PRIMARY KEY (`id`),
  1061. UNIQUE KEY `uk_rule_code` (`rule_code`),
  1062. KEY `idx_rule_type` (`rule_type`)
  1063. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '规则配置表';
  1064. -- 规则版本表
  1065. CREATE TABLE IF NOT EXISTS `rule_versions` (
  1066. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '版本编号',
  1067. `rule_id` bigint unsigned NOT NULL COMMENT '规则编号',
  1068. `version_no` varchar(50) NOT NULL COMMENT '版本号',
  1069. `rule_content` json NOT NULL COMMENT '规则内容',
  1070. `change_desc` varchar(500) DEFAULT NULL COMMENT '变更说明',
  1071. `state` varchar(255) NOT NULL DEFAULT 'DRAFT' COMMENT '状态',
  1072. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1073. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1074. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1075. PRIMARY KEY (`id`),
  1076. UNIQUE KEY `uk_rule_version` (`rule_id`, `version_no`),
  1077. KEY `idx_rv_rc_rule_id` (`rule_id`),
  1078. CONSTRAINT `fk_versions_rule_id` FOREIGN KEY (`rule_id`) REFERENCES `rule_configs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1079. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '规则版本表';
  1080. -- 规则执行记录表
  1081. CREATE TABLE IF NOT EXISTS `rule_execution_records` (
  1082. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '执行记录编号',
  1083. `rule_id` bigint unsigned NOT NULL COMMENT '规则编号',
  1084. `version_id` bigint unsigned NOT NULL COMMENT '版本编号',
  1085. `business_id` varchar(255) NOT NULL COMMENT '业务编号',
  1086. `business_type` varchar(255) NOT NULL COMMENT '业务类型',
  1087. `input_params` json DEFAULT NULL COMMENT '输入参数',
  1088. `output_result` json DEFAULT NULL COMMENT '输出结果',
  1089. `execution_time` timestamp NOT NULL COMMENT '执行时间',
  1090. `exec_duration` int NOT NULL DEFAULT '0' COMMENT '执行时长(毫秒)',
  1091. `exec_status` varchar(255) NOT NULL COMMENT '执行状态',
  1092. `err_msg` text COMMENT '错误信息',
  1093. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1094. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1095. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1096. PRIMARY KEY (`id`),
  1097. KEY `idx_rer_rc_rule_id` (`rule_id`),
  1098. KEY `idx_rer_rv_version_id` (`version_id`),
  1099. KEY `idx_business_id` (`business_id`),
  1100. KEY `idx_execution_time` (`execution_time`),
  1101. KEY `idx_execution_status` (`exec_status`),
  1102. CONSTRAINT `fk_execution_records_rule_id` FOREIGN KEY (`rule_id`) REFERENCES `rule_configs` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
  1103. CONSTRAINT `fk_execution_records_version_id` FOREIGN KEY (`version_id`) REFERENCES `rule_versions` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  1104. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '规则执行记录表';
  1105. -- 规则参数配置表
  1106. CREATE TABLE IF NOT EXISTS `rule_param_configs` (
  1107. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '参数配置编号',
  1108. `rule_id` bigint unsigned NOT NULL COMMENT '规则编号',
  1109. `param_code` varchar(255) NOT NULL COMMENT '参数代码',
  1110. `param_name` varchar(255) NOT NULL COMMENT '参数名称',
  1111. `param_type` varchar(255) NOT NULL COMMENT '参数类型',
  1112. `param_value` varchar(500) DEFAULT NULL COMMENT '参数值',
  1113. `param_desc` varchar(500) DEFAULT NULL COMMENT '参数描述',
  1114. `is_required` varchar(255) NOT NULL DEFAULT 'NO' COMMENT '是否必填',
  1115. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  1116. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1117. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1118. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1119. PRIMARY KEY (`id`),
  1120. UNIQUE KEY `uk_rule_param` (`rule_id`, `param_code`),
  1121. KEY `idx_rpc_rc_rule_id` (`rule_id`),
  1122. CONSTRAINT `fk_param_configs_rule_id` FOREIGN KEY (`rule_id`) REFERENCES `rule_configs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1123. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '规则参数配置表';
  1124. -- 规则依赖关系表
  1125. CREATE TABLE IF NOT EXISTS `rule_dependencies` (
  1126. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '依赖关系编号',
  1127. `rule_id` bigint unsigned NOT NULL COMMENT '规则编号',
  1128. `depend_rule_id` bigint unsigned NOT NULL COMMENT '依赖规则编号',
  1129. `dependency_type` varchar(255) NOT NULL COMMENT '依赖类型',
  1130. `state` varchar(255) NOT NULL DEFAULT 'ENABLE' COMMENT '状态',
  1131. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1132. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1133. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1134. PRIMARY KEY (`id`),
  1135. UNIQUE KEY `uk_rule_dependency` (`rule_id`, `depend_rule_id`),
  1136. KEY `idx_rd_rc_rule_id` (`rule_id`),
  1137. KEY `idx_rd_rc_depend_rule_id` (`depend_rule_id`),
  1138. CONSTRAINT `fk_dependencies_rule_id` FOREIGN KEY (`rule_id`) REFERENCES `rule_configs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  1139. CONSTRAINT `fk_dependencies_depend_rule_id` FOREIGN KEY (`depend_rule_id`) REFERENCES `rule_configs` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1140. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '规则依赖关系表';
  1141. -- 业务员表
  1142. CREATE TABLE IF NOT EXISTS `salesmen` (
  1143. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '业务员编号',
  1144. `user_id` BIGINT UNSIGNED NOT NULL COMMENT '用户编号',
  1145. `name` VARCHAR(255) NOT NULL COMMENT '姓名',
  1146. `contact_phone` VARCHAR(11) NOT NULL COMMENT '联系电话',
  1147. `contact_address` VARCHAR(255) NOT NULL COMMENT '联系地址',
  1148. `id_card` VARCHAR(18) NOT NULL COMMENT '身份证',
  1149. `id_card_front_photo` VARCHAR(255) NOT NULL COMMENT '身份证正面',
  1150. `id_card_back_photo` VARCHAR(255) NOT NULL COMMENT '身份证反面',
  1151. `id_card_hand_photo` VARCHAR(255) NOT NULL COMMENT '手持身份证',
  1152. `activity_area` VARCHAR(255) NOT NULL COMMENT '活动区域',
  1153. `invite_code` VARCHAR(50) NOT NULL COMMENT '邀请码',
  1154. `audit_time` TIMESTAMP NULL DEFAULT NULL COMMENT '审核时间',
  1155. `auditor` VARCHAR(50) DEFAULT NULL COMMENT '审核人',
  1156. `audit_remark` VARCHAR(255) DEFAULT NULL COMMENT '审核回馈',
  1157. `audit_status` ENUM('待审核', '审核通过', '审核拒绝') NOT NULL DEFAULT '待审核' COMMENT '审核状态',
  1158. `state` ENUM('开启', '关闭') NOT NULL DEFAULT '开启' COMMENT '状态',
  1159. `created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
  1160. `updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
  1161. `deleted_at` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
  1162. PRIMARY KEY (`id`),
  1163. CONSTRAINT `fk_salesmen_user_id` FOREIGN KEY (`user_id`) REFERENCES `member_users` (`id`) ON DELETE RESTRICT ON UPDATE CASCADE
  1164. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '业务员表';
  1165. -- 业务员变更记录表
  1166. CREATE TABLE IF NOT EXISTS `salesmen_change_records` (
  1167. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '业务员审核记录编号',
  1168. `salesman_id` BIGINT UNSIGNED NOT NULL COMMENT '业务员编号',
  1169. `change_before` TEXT NOT NULL COMMENT '变更前',
  1170. `change_after` TEXT NOT NULL COMMENT '变更后',
  1171. `changer` VARCHAR(255) NOT NULL COMMENT '变更人',
  1172. `created_at` TIMESTAMP NULL DEFAULT NULL COMMENT '创建时间',
  1173. `updated_at` TIMESTAMP NULL DEFAULT NULL COMMENT '更新时间',
  1174. `deleted_at` TIMESTAMP NULL DEFAULT NULL COMMENT '删除时间',
  1175. PRIMARY KEY (`id`),
  1176. CONSTRAINT `fk_change_records_salesman_id` FOREIGN KEY (`salesman_id`) REFERENCES `salesmen` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1177. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '业务员变更记录表';
  1178. -- 技师报警表
  1179. CREATE TABLE IF NOT EXISTS `coach_alerts` (
  1180. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '技师报警编号',
  1181. `coach_id` bigint unsigned NOT NULL COMMENT '技师编号',
  1182. `order_id` bigint unsigned NOT NULL COMMENT '订单编号',
  1183. `alert_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '报警时间',
  1184. `alert_type` varchar(255) NOT NULL COMMENT '报警类型',
  1185. `alert_reason` varchar(255) NOT NULL COMMENT '报警原因',
  1186. `alert_status` varchar(255) NOT NULL DEFAULT 'PENDING' COMMENT '报警状态',
  1187. `created_at` timestamp NULL DEFAULT NULL COMMENT '创建时间',
  1188. `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间',
  1189. `deleted_at` timestamp NULL DEFAULT NULL COMMENT '删除时间',
  1190. PRIMARY KEY (`id`),
  1191. KEY `idx_coach_id` (`coach_id`),
  1192. KEY `idx_order_id` (`order_id`),
  1193. CONSTRAINT `fk_alerts_coach_id` FOREIGN KEY (`coach_id`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  1194. CONSTRAINT `fk_alerts_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1195. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师报警表';
  1196. -- 技师变更记录表
  1197. CREATE TABLE IF NOT EXISTS `coach_change_records` (
  1198. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '技师变更记录编号',
  1199. `order_id` BIGINT UNSIGNED NOT NULL COMMENT '订单编号',
  1200. `coach_id_before` BIGINT UNSIGNED NOT NULL COMMENT '技师编号(变更前)',
  1201. `coach_id_after` BIGINT UNSIGNED NOT NULL COMMENT '技师编号(变更后)',
  1202. `change_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '变更时间',
  1203. PRIMARY KEY (`id`),
  1204. CONSTRAINT `fk_ccr_order_id` FOREIGN KEY (`order_id`) REFERENCES `order_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  1205. CONSTRAINT `fk_ccr_coach_id_before` FOREIGN KEY (`coach_id_before`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  1206. CONSTRAINT `fk_ccr_coach_id_after` FOREIGN KEY (`coach_id_after`) REFERENCES `coach_users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1207. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '技师变更记录表';
  1208. -- 代理商项目配置表
  1209. CREATE TABLE agent_project_config (
  1210. `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '服务范围编号',
  1211. `agent_id` BIGINT UNSIGNED NULL COMMENT '代理商编号',
  1212. `min_fee` DECIMAL(10, 2) NOT NULL DEFAULT 9 COMMENT '服务的起步价',
  1213. `min_distance` INT NOT NULL DEFAULT 3 COMMENT '最小距离',
  1214. `per_km_fee` DECIMAL(10, 2) NOT NULL DEFAULT 3 COMMENT '每公里的费用',
  1215. `state` VARCHAR(50) NOT NULL COMMENT '状态',
  1216. PRIMARY KEY (`id`),
  1217. CONSTRAINT `fk_apc_agent_id` FOREIGN KEY (`agent_id`) REFERENCES `agent_infos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
  1218. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '代理商项目配置表';