##### jeeppay-plus S3 会员模块 表结构及菜单权限初始化数据SQL ##### -- 会员充值规则表 DROP TABLE IF EXISTS `t_member_recharge_rule`; CREATE TABLE `t_member_recharge_rule` ( `rule_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '规则ID', `mch_no` VARCHAR(64) NOT NULL COMMENT '所属商户', `recharge_amount` bigint(20) NOT NULL COMMENT '充值金额', `give_amount` bigint(20) DEFAULT 0 COMMENT '赠送金额', `state` tinyint(6) NOT NULL COMMENT '状态:0-停用 1-启用 ', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序字段, 规则:正序', `remark` VARCHAR(128) COMMENT '备注', `created_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', `updated_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY (`rule_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COMMENT='会员充值规则表'; -- 会员信息表 DROP TABLE IF EXISTS t_member_info; CREATE TABLE `t_member_info` ( `mbr_id` VARCHAR(64) NOT NULL COMMENT '会员ID', `mbr_name` VARCHAR(64) NOT NULL COMMENT '会员名称', `mbr_tel` VARCHAR(32) NOT NULL COMMENT '会员手机号', `wx_mp_open_id` VARCHAR(128) COMMENT '微信公众号用户标识open_id', `wx_lite_open_id` VARCHAR(128) COMMENT '微信小程序用户标识open_id', `ali_user_id` VARCHAR(128) COMMENT '支付宝用户标识user_id', `ysf_user_id` VARCHAR(128) COMMENT '云闪付用户标识user_id', `mch_no` VARCHAR(64) NOT NULL COMMENT '所属商户', `balance` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '账户余额 单位:分', `safe_key` VARCHAR(128) NOT NULL COMMENT '数据安全保护秘钥', `state` TINYINT(6) NOT NULL DEFAULT 1 COMMENT '状态: 0-停用, 1-正常', `avatar_url` VARCHAR(128) COMMENT '头像地址', `remark` VARCHAR(128) COMMENT '会员备注', `created_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', `updated_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY (`mbr_id`), UNIQUE KEY `UQ_MBR_TEL`(`mch_no`, `mbr_tel`), UNIQUE KEY `UQ_WX_MP_OPEN_ID`(`mch_no`, `wx_mp_open_id`), UNIQUE KEY `UQ_WX_LITE_OPEN_ID`(`mch_no`, `wx_lite_open_id`), UNIQUE KEY `UQ_ALI_USER_ID`(`mch_no`, `ali_user_id`), UNIQUE KEY `UQ_YSF_USER_ID`(`mch_no`, `ysf_user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员信息表'; -- 会员账户流水表 DROP TABLE IF EXISTS t_member_account_history; CREATE TABLE `t_member_account_history` ( `hid` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID', `mbr_id` VARCHAR(64) NOT NULL COMMENT '会员ID', `mbr_name` varchar(64) NOT NULL DEFAULT '' COMMENT '会员名称 快照', `mbr_tel` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '会员手机号 快照', `mch_no` VARCHAR(64) NOT NULL COMMENT '所属商户', `store_id` BIGINT(20) COMMENT '商户门店ID (快照)', `qrc_id` BIGINT(20) COMMENT '码牌ID (快照)', `before_amount` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '变动前账户余额, 单位:分', `change_amount` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '变动金额, 单位:分', `after_amount` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '变动后账户余额, 单位:分', `biz_type` TINYINT(6) NOT NULL COMMENT '业务类型:1-支付充值, 2-现金充值, 3-消费, 4-消费退款, 5-人工调账', `rela_biz_order_id` VARCHAR(30) COMMENT '关联订单号', `remark` VARCHAR(128) COMMENT '备注', `created_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', `updated_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY (`hid`) ) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8mb4 COMMENT='会员账户流水表'; -- 会员充值记录表 DROP TABLE IF EXISTS t_member_recharge_record; CREATE TABLE `t_member_recharge_record` ( `recharge_record_id` VARCHAR(30) COMMENT '充值记录ID', `mbr_id` VARCHAR(64) NOT NULL COMMENT '会员ID', `mbr_name` varchar(64) NOT NULL DEFAULT '' COMMENT '会员名称 快照', `mbr_tel` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '会员手机号 快照', `mch_no` VARCHAR(64) NOT NULL COMMENT '所属商户', `pay_amount` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '支付金额, 单位:分', `give_amount` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '赠送金额, 单位:分', `entry_amount` BIGINT(20) NOT NULL DEFAULT 0 COMMENT '会员入账金额, 单位:分', `after_balance` BIGINT(20) DEFAULT NULL COMMENT '会员余额, 单位:分', `way_code` VARCHAR(20) NOT NULL COMMENT '支付方式代码', `way_code_type` VARCHAR(20) NOT NULL COMMENT '支付方式代码分类', `state` TINYINT(6) NOT NULL COMMENT '充值状态:0-初始化, 1-充值中, 2-充值成功, 3-充值失败', `pay_order_id` VARCHAR(30) DEFAULT NULL COMMENT '支付订单号', `success_time` DATETIME DEFAULT NULL COMMENT '订单支付成功时间', `return_url` VARCHAR(256) NOT NULL default '' COMMENT '同步跳转地址', `notify_url` VARCHAR(256) NOT NULL default '' COMMENT '异步通知地址', `err_code` VARCHAR(128) DEFAULT NULL COMMENT '支付错误码', `err_msg` VARCHAR(256) DEFAULT NULL COMMENT '支付错误描述', `remark` VARCHAR(128) COMMENT '充值备注', `created_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', `updated_at` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY (`recharge_record_id`), UNIQUE KEY `Uni_Pay_Order_Id` (`pay_order_id`), INDEX(`created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员充值记录表'; -- 会员网关网址系统配置 INSERT INTO `t_sys_config` VALUES ('memberSiteUrl', '会员网关网址(不包含结尾/)', '会员网关网址(不包含结尾/)', 'applicationConfig', '系统应用配置', 'http://127.0.0.1:9221', 'text', 5, '2021-5-18 14:46:10'); -- 会员模块执行器 (appName) INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `address_type`, `address_list`, `update_time`) VALUES (3, 'jeepay-plus-member-executor', '会员模块', 0, NULL, '2022-09-01 00:00:00' ); -- 会员充值订单状态查询定时任务 INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `schedule_type`, `schedule_conf`, `misfire_strategy`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`, `trigger_status`, `trigger_last_time`, `trigger_next_time`) VALUES (16, 3, '会员充值订单状态查询定时任务', '2022-09-01 00:00:00', '2022-09-01 00:00:00', 'sys', '', 'CRON', '0 0/1 * * * ?', 'DO_NOTHING', 'FIRST', 'memberRechargeOrderTaskHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2022-09-01 00:00:00', '', 1, 0, 0); -- 会员短信发送 【需重新配置短信参数】,手动增加mbrTelBindTemplateId属性 -- update `t_sys_config` set `config_val` = '{"accessKeyId":"","accessKeySecret":"","signName":"","forgetPwdTemplateId":"","registerMchTemplateId":"","loginMchTemplateId":"","accountOpenTemplateId":"","mbrTelBindTemplateId":""}' where config_key = 'smsConfigValue'; -- 新增商户时会员默认配置 INSERT INTO `t_sys_config` VALUES ('mchRegisterMemberState', '商户注册/创建时[会员功能]默认状态', '商户注册/创建时[会员功能]默认状态', 'defaultConfig', '商户注册/创建时[会员功能]默认状态', '1', 'text', 0, '2023-3-09 16:53:30'); -- 新增商户时 默认会员最大储值余额 INSERT INTO `t_sys_config` VALUES ('mchMbrMaxBalance', '商户会员最大储值余额', '商户会员最大储值余额', 'defaultConfig', '商户会员最大储值余额', '10000000', 'text', 0, '2023-3-09 16:53:30'); -- 商户会员开关配置 默认关闭状态 insert into t_mch_config select mch_no, 'memberModelState', '会员模块状态开关', '0', 'memberConfig', 'radio', now(), now() from t_mch_info; -- 商户会员支付开关配置 默认关闭状态 insert into t_mch_config select mch_no, 'memberPayState', '会员支付开关', '0', 'memberConfig', 'radio', now(), now() from t_mch_info; -- 商户会员支付自定义金额开关 默认开启 insert into t_mch_config select mch_no, 'memberCustomAmountState', '充值自定义金额', '1', 'memberConfig', 'radio', now(), now() from t_mch_info; -- 【运营平台】会员管理 -- 商户会员管理菜单 insert into t_sys_entitlement values('ENT_MCH_MEMBER', '会员中心', 'team', '', 'RouteView', 'ML', 0, 1, 'ENT_MCH', '50', 'PLATFORM', NULL, now(), now()); -- 会员管理 insert into t_sys_entitlement values('ENT_MEMBER', '会员管理', 'user', '/member/memberInfo', 'MemberPage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '10', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_LIST', '页面:列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_ADD', '按钮:新增', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_EDIT', '按钮:编辑', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_MANUAL', '按钮:调账', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'PLATFORM', NULL, now(), now()); -- 充值规则 insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RULE', '充值规则', 'profile', '/member/rechargeRule', 'RechargeRulePage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '20', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_LIST', '页面:列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_ADD', '按钮:新增', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_EDIT', '按钮:编辑', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_DELETE', '按钮:删除', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'PLATFORM', NULL, now(), now()); -- 账户流水 insert into t_sys_entitlement values('ENT_MEMBER_ACCOUNT_HISTORY', '账户流水', 'exception', '/member/account', 'MemberAccountPage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '30', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_ACCOUNT_HISTORY_LIST', '页面:订单列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_ACCOUNT_HISTORY', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_ACCOUNT_HISTORY_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_ACCOUNT_HISTORY', '0', 'PLATFORM', NULL, now(), now()); -- 充值记录 insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RECORD', '充值记录', 'transaction', '/member/recharge', 'MemberRechargePage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '40', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RECORD_LIST', '页面:订单列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RECORD', '0', 'PLATFORM', NULL, now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RECORD_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RECORD', '0', 'PLATFORM', NULL, now(), now()); -- 【商户系统】 会员管理 -- 商户会员管理菜单 insert into t_sys_entitlement values('ENT_MCH_MEMBER', '会员中心', 'team', '', 'RouteView', 'ML', 0, 1, 'ROOT', '15', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); -- 会员配置 insert into t_sys_entitlement values('ENT_MEMBER_CONFIG', '会员配置', 'setting', '/member/memberConfig', 'MemberConfigPage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '5', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); -- 会员管理 insert into t_sys_entitlement values('ENT_MEMBER', '会员管理', 'user', '/member/memberInfo', 'MemberPage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '10', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_LIST', '页面:列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_ADD', '按钮:新增', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_EDIT', '按钮:编辑', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_MANUAL', '按钮:调账', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); -- 充值规则 insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RULE', '充值规则', 'profile', '/member/rechargeRule', 'RechargeRulePage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '20', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_LIST', '页面:列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_ADD', '按钮:新增', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_EDIT', '按钮:编辑', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_DELETE', '按钮:删除', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RULE', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); -- 账户流水 insert into t_sys_entitlement values('ENT_MEMBER_ACCOUNT_HISTORY', '账户流水', 'exception', '/member/account', 'MemberAccountPage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '30', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_ACCOUNT_HISTORY_LIST', '页面:订单列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_ACCOUNT_HISTORY', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_ACCOUNT_HISTORY_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_ACCOUNT_HISTORY', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); -- 充值记录 insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RECORD', '充值记录', 'transaction', '/member/recharge', 'MemberRechargePage', 'ML', 0, 1, 'ENT_MCH_MEMBER', '40', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RECORD_LIST', '页面:订单列表', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RECORD', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now()); insert into t_sys_entitlement values('ENT_MEMBER_RECHARGE_RECORD_VIEW', '按钮:详情', 'no-icon', '', '', 'PB', 0, 1, 'ENT_MEMBER_RECHARGE_RECORD', '0', 'MCH', '{userEntRules: ["USER_TYPE_11_INIT", "USER_TYPE_12_INIT"], mchLevelArray: ["M1"], mchMemberEnt: true}', now(), now());