Initial commit of akmon project
This commit is contained in:
260
init_business_items.sql
Normal file
260
init_business_items.sql
Normal file
@@ -0,0 +1,260 @@
|
||||
-- ===================================================================
|
||||
-- 业务项目内容初始化脚本
|
||||
-- 基于 ak_contents 表,使用 content_type='business_item' 来区分业务项目
|
||||
-- ===================================================================
|
||||
|
||||
-- 首先确保 ak_contents 表中有 content_type 字段
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'ak_contents'
|
||||
AND column_name = 'content_type'
|
||||
) THEN
|
||||
ALTER TABLE public.ak_contents
|
||||
ADD COLUMN content_type VARCHAR(50) DEFAULT 'article';
|
||||
|
||||
-- 创建索引以提高查询性能
|
||||
CREATE INDEX idx_ak_contents_content_type ON public.ak_contents(content_type);
|
||||
|
||||
RAISE NOTICE '已为 ak_contents 表添加 content_type 字段';
|
||||
ELSE
|
||||
RAISE NOTICE 'content_type 字段已存在';
|
||||
END IF;
|
||||
END
|
||||
$$;
|
||||
|
||||
-- 确保有业务相关的分类
|
||||
INSERT INTO public.ak_content_categories (name_key, parent_id, level, ai_keywords, sort_order, is_active) VALUES
|
||||
('business.ai', NULL, 0, ARRAY['人工智能', 'AI', '机器学习', 'artificial intelligence'], 1, true),
|
||||
('business.bigdata', NULL, 0, ARRAY['大数据', 'big data', '数据分析', 'analytics'], 2, true),
|
||||
('business.iot', NULL, 0, ARRAY['物联网', 'IoT', '智能设备', 'smart devices'], 3, true),
|
||||
('business.cloud', NULL, 0, ARRAY['云计算', 'cloud computing', '云服务', 'cloud services'], 4, true),
|
||||
('business.blockchain', NULL, 0, ARRAY['区块链', 'blockchain', '数字货币', 'cryptocurrency'], 5, true),
|
||||
('business.mobile', NULL, 0, ARRAY['移动开发', 'mobile development', 'APP开发', 'mobile app'], 6, true),
|
||||
('business.web', NULL, 0, ARRAY['前端开发', 'web development', '网站建设', 'website'], 7, true),
|
||||
('business.database', NULL, 0, ARRAY['数据库', 'database', 'SQL', '数据管理'], 8, true)
|
||||
ON CONFLICT (name_key) DO NOTHING;
|
||||
|
||||
-- 获取分类ID以便插入内容
|
||||
DO $$
|
||||
DECLARE
|
||||
ai_category_id UUID;
|
||||
bigdata_category_id UUID;
|
||||
iot_category_id UUID;
|
||||
cloud_category_id UUID;
|
||||
blockchain_category_id UUID;
|
||||
mobile_category_id UUID;
|
||||
web_category_id UUID;
|
||||
database_category_id UUID;
|
||||
BEGIN
|
||||
-- 获取分类ID
|
||||
SELECT id INTO ai_category_id FROM public.ak_content_categories WHERE name_key = 'business.ai';
|
||||
SELECT id INTO bigdata_category_id FROM public.ak_content_categories WHERE name_key = 'business.bigdata';
|
||||
SELECT id INTO iot_category_id FROM public.ak_content_categories WHERE name_key = 'business.iot';
|
||||
SELECT id INTO cloud_category_id FROM public.ak_content_categories WHERE name_key = 'business.cloud';
|
||||
SELECT id INTO blockchain_category_id FROM public.ak_content_categories WHERE name_key = 'business.blockchain';
|
||||
SELECT id INTO mobile_category_id FROM public.ak_content_categories WHERE name_key = 'business.mobile';
|
||||
SELECT id INTO web_category_id FROM public.ak_content_categories WHERE name_key = 'business.web';
|
||||
SELECT id INTO database_category_id FROM public.ak_content_categories WHERE name_key = 'business.database';
|
||||
|
||||
-- 插入业务项目内容
|
||||
INSERT INTO public.ak_contents (
|
||||
title,
|
||||
content_summary,
|
||||
content_type,
|
||||
category_id,
|
||||
original_language,
|
||||
status,
|
||||
featured_image_url,
|
||||
view_count,
|
||||
published_at,
|
||||
tags,
|
||||
quality_score
|
||||
) VALUES
|
||||
(
|
||||
'人工智能解决方案',
|
||||
'为企业提供全方位的AI技术支持和解决方案,助力数字化转型升级。我们的AI服务包括机器学习模型开发、自然语言处理、计算机视觉等核心技术。',
|
||||
'business_item',
|
||||
ai_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=1',
|
||||
1285,
|
||||
NOW() - INTERVAL '5 days',
|
||||
ARRAY['人工智能', 'AI', '机器学习', '企业服务'],
|
||||
0.95
|
||||
),
|
||||
(
|
||||
'大数据分析平台',
|
||||
'专业的数据分析工具,帮助企业洞察商业价值,制定精准决策。支持实时数据处理、可视化报表、智能预测分析等功能。',
|
||||
'business_item',
|
||||
bigdata_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=2',
|
||||
892,
|
||||
NOW() - INTERVAL '8 days',
|
||||
ARRAY['大数据', '数据分析', '商业智能', 'BI'],
|
||||
0.92
|
||||
),
|
||||
(
|
||||
'物联网系统集成',
|
||||
'完整的IoT解决方案,实现设备互联和智能管理。提供硬件接入、数据采集、远程控制、智能分析等一站式服务。',
|
||||
'business_item',
|
||||
iot_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=3',
|
||||
756,
|
||||
NOW() - INTERVAL '10 days',
|
||||
ARRAY['物联网', 'IoT', '智能设备', '系统集成'],
|
||||
0.89
|
||||
),
|
||||
(
|
||||
'云计算服务',
|
||||
'稳定可靠的云端基础设施,为业务提供强大的技术支撑。包括云服务器、云存储、CDN加速、负载均衡等核心服务。',
|
||||
'business_item',
|
||||
cloud_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=4',
|
||||
643,
|
||||
NOW() - INTERVAL '12 days',
|
||||
ARRAY['云计算', '云服务', '基础设施', 'IaaS'],
|
||||
0.91
|
||||
),
|
||||
(
|
||||
'区块链技术',
|
||||
'安全可信的区块链解决方案,保障数据安全与透明。提供智能合约开发、数字资产管理、去中心化应用等服务。',
|
||||
'business_item',
|
||||
blockchain_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=5',
|
||||
521,
|
||||
NOW() - INTERVAL '15 days',
|
||||
ARRAY['区块链', '智能合约', '数字资产', 'DApp'],
|
||||
0.87
|
||||
),
|
||||
(
|
||||
'移动应用开发',
|
||||
'专业的移动端应用开发服务,覆盖iOS和Android平台。提供原生开发、混合开发、跨平台开发等多种解决方案。',
|
||||
'business_item',
|
||||
mobile_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=6',
|
||||
467,
|
||||
NOW() - INTERVAL '18 days',
|
||||
ARRAY['移动开发', 'APP', 'iOS', 'Android'],
|
||||
0.93
|
||||
),
|
||||
(
|
||||
'Web前端设计',
|
||||
'现代化的前端界面设计,提供优秀的用户体验。采用最新的前端技术栈,确保响应式设计和跨浏览器兼容性。',
|
||||
'business_item',
|
||||
web_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=7',
|
||||
389,
|
||||
NOW() - INTERVAL '20 days',
|
||||
ARRAY['前端开发', 'UI设计', '响应式', '用户体验'],
|
||||
0.90
|
||||
),
|
||||
(
|
||||
'数据库优化',
|
||||
'高性能数据库设计与优化,提升系统运行效率。包括数据库架构设计、性能调优、数据迁移、备份恢复等专业服务。',
|
||||
'business_item',
|
||||
database_category_id,
|
||||
'zh-CN',
|
||||
'published',
|
||||
'https://picsum.photos/400/300?random=8',
|
||||
324,
|
||||
NOW() - INTERVAL '22 days',
|
||||
ARRAY['数据库', '性能优化', 'SQL', '数据架构'],
|
||||
0.88
|
||||
);
|
||||
|
||||
RAISE NOTICE '业务项目内容初始化完成!';
|
||||
RAISE NOTICE '已插入 8 个业务项目到 ak_contents 表中';
|
||||
RAISE NOTICE '内容类型设置为: business_item';
|
||||
END
|
||||
$$;
|
||||
|
||||
-- 创建业务项目专用视图,方便查询和管理
|
||||
CREATE OR REPLACE VIEW public.vw_business_items AS
|
||||
SELECT
|
||||
c.id,
|
||||
c.title,
|
||||
c.content_summary as description,
|
||||
c.featured_image_url as image_url,
|
||||
cc.name_key as category_key,
|
||||
c.published_at,
|
||||
c.view_count,
|
||||
c.status,
|
||||
c.tags,
|
||||
c.quality_score,
|
||||
c.created_at,
|
||||
c.updated_at
|
||||
FROM public.ak_contents c
|
||||
LEFT JOIN public.ak_content_categories cc ON c.category_id = cc.id
|
||||
WHERE c.content_type = 'business_item'
|
||||
ORDER BY c.published_at DESC;
|
||||
|
||||
COMMENT ON VIEW public.vw_business_items IS '业务项目视图,基于ak_contents表的business_item类型内容';
|
||||
|
||||
-- 创建获取业务项目的函数
|
||||
CREATE OR REPLACE FUNCTION public.get_business_items(
|
||||
p_limit INTEGER DEFAULT 20,
|
||||
p_offset INTEGER DEFAULT 0,
|
||||
p_language VARCHAR(10) DEFAULT 'zh-CN'
|
||||
)
|
||||
RETURNS TABLE (
|
||||
id UUID,
|
||||
title TEXT,
|
||||
description TEXT,
|
||||
image_url TEXT,
|
||||
category_name TEXT,
|
||||
publish_time TEXT,
|
||||
view_count INTEGER,
|
||||
tags TEXT[]
|
||||
) AS $$
|
||||
BEGIN
|
||||
RETURN QUERY
|
||||
SELECT
|
||||
c.id,
|
||||
c.title,
|
||||
c.content_summary as description,
|
||||
c.featured_image_url as image_url,
|
||||
COALESCE(cc.name_key, '未分类') as category_name,
|
||||
TO_CHAR(c.published_at, 'YYYY-MM-DD') as publish_time,
|
||||
c.view_count,
|
||||
c.tags
|
||||
FROM public.ak_contents c
|
||||
LEFT JOIN public.ak_content_categories cc ON c.category_id = cc.id
|
||||
WHERE c.content_type = 'business_item'
|
||||
AND c.status = 'published'
|
||||
AND c.original_language = p_language
|
||||
ORDER BY c.published_at DESC
|
||||
LIMIT p_limit
|
||||
OFFSET p_offset;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
COMMENT ON FUNCTION public.get_business_items IS '获取业务项目列表的函数';
|
||||
|
||||
-- 输出完成信息
|
||||
DO $$
|
||||
BEGIN
|
||||
RAISE NOTICE '=================================';
|
||||
RAISE NOTICE '业务项目数据初始化完成!';
|
||||
RAISE NOTICE '- 已创建业务相关分类';
|
||||
RAISE NOTICE '- 已插入示例业务项目数据';
|
||||
RAISE NOTICE '- 已创建业务项目视图';
|
||||
RAISE NOTICE '- 已创建查询函数';
|
||||
RAISE NOTICE '现在可以在 comindex.uvue 页面中使用 ak_contents 表获取业务项目了';
|
||||
RAISE NOTICE '=================================';
|
||||
END
|
||||
$$;
|
||||
Reference in New Issue
Block a user