Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

260
init_business_items.sql Normal file
View 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
$$;