feat(stats): 新增自录转化统计模块
支持后台用户手动录入个人业绩与账户消耗,独立计算转化指标,接入 DataScope 数据权限。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
-- 自录转化统计菜单(挂在「数据统计」目录下)
|
||||
-- 主页面: /stats/self_input
|
||||
-- 账户消耗: /stats/self_input/account_cost
|
||||
|
||||
SET @stats_root_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `paths` = '/stats' AND `type` = 'M'
|
||||
ORDER BY `id` ASC
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@stats_root_id, 'C', '自录转化统计', '', 5, 'stats.self_input/overview', '/stats/self_input', '/stats/self_input/index', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @stats_root_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'stats.self_input/overview'
|
||||
);
|
||||
|
||||
SET @self_input_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'stats.self_input/overview'
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @self_input_menu_id, 'A', '查看业绩', '', 1, 'stats.personal_yeji/lists', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/lists');
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @self_input_menu_id, 'A', '新增业绩', '', 2, 'stats.personal_yeji/add', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/add');
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @self_input_menu_id, 'A', '编辑业绩', '', 3, 'stats.personal_yeji/edit', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/edit');
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @self_input_menu_id, 'A', '删除业绩', '', 4, 'stats.personal_yeji/delete', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @self_input_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_yeji/delete');
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@stats_root_id, 'C', '账户消耗录入', '', 6, 'stats.personal_account_cost/lists', '/stats/self_input/account_cost', '/stats/self_input/account_cost', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @stats_root_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'stats.personal_account_cost/lists'
|
||||
);
|
||||
|
||||
SET @personal_cost_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'stats.personal_account_cost/lists'
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @personal_cost_menu_id, 'A', '新增消耗', '', 1, 'stats.personal_account_cost/add', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @personal_cost_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_account_cost/add');
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @personal_cost_menu_id, 'A', '编辑消耗', '', 2, 'stats.personal_account_cost/edit', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @personal_cost_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_account_cost/edit');
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT @personal_cost_menu_id, 'A', '删除消耗', '', 3, 'stats.personal_account_cost/delete', '', '', '', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL WHERE @personal_cost_menu_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM `zyt_system_menu` WHERE `perms` = 'stats.personal_account_cost/delete');
|
||||
@@ -0,0 +1,20 @@
|
||||
CREATE TABLE IF NOT EXISTS `zyt_personal_account_cost` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`cost_date` date NOT NULL COMMENT '消耗日期',
|
||||
`media_source` varchar(120) NOT NULL DEFAULT '' COMMENT '自媒体来源',
|
||||
`amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '账户消耗金额',
|
||||
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`creator_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '录入人ID',
|
||||
`creator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '录入人姓名',
|
||||
`updater_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后修改人ID',
|
||||
`updater_name` varchar(64) NOT NULL DEFAULT '' COMMENT '最后修改人姓名',
|
||||
`dept_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '录入时部门ID快照',
|
||||
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`delete_time` int(11) unsigned DEFAULT NULL COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_creator_date_media` (`creator_id`, `cost_date`, `media_source`),
|
||||
KEY `idx_cost_date` (`cost_date`),
|
||||
KEY `idx_creator_id` (`creator_id`),
|
||||
KEY `idx_dept_id` (`dept_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='个人账户消耗录入表';
|
||||
@@ -0,0 +1,27 @@
|
||||
CREATE TABLE IF NOT EXISTS `zyt_personal_yeji` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`yeji_date` date NOT NULL COMMENT '业绩日期',
|
||||
`media_source` varchar(120) NOT NULL DEFAULT '' COMMENT '自媒体来源',
|
||||
`add_fans_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '加粉数',
|
||||
`total_open_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '总开口',
|
||||
`unreplied_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '未回复',
|
||||
`paid_appointment_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '付费挂号',
|
||||
`free_appointment_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '免费挂号',
|
||||
`interview_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '面诊',
|
||||
`order_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单金额',
|
||||
`completed_order_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '接诊诊单',
|
||||
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`creator_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '录入人ID',
|
||||
`creator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '录入人姓名',
|
||||
`updater_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '最后修改人ID',
|
||||
`updater_name` varchar(64) NOT NULL DEFAULT '' COMMENT '最后修改人姓名',
|
||||
`dept_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '录入时部门ID快照',
|
||||
`create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`delete_time` int(11) unsigned DEFAULT NULL COMMENT '删除时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_creator_date_media` (`creator_id`, `yeji_date`, `media_source`),
|
||||
KEY `idx_yeji_date` (`yeji_date`),
|
||||
KEY `idx_creator_id` (`creator_id`),
|
||||
KEY `idx_dept_id` (`dept_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='个人业绩录入表';
|
||||
Reference in New Issue
Block a user