app-order-date-key-stats

按可变时间维度统计久事体育APP订单关键指标(用户数、订单量、支付金额、退款金额、净销售金额)。只替换@开始时间@、@结束时间@、@关键词@占位符,并允许根据用户指定动态调整时间统计维度(GROUP BY)。适用于查询“某段时间内包含特定关键词的订单,按小时/天/月等统计”。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "app-order-date-key-stats" with this command: npx skills add jaggerliu/app-order-date-key-stats

久事体育APP 订单统计技能(灵活时间维度版)

核心规则(必须100%遵守,任何违反都视为严重错误):

  1. SQL 模板固定,但允许动态调整时间维度
    只能修改 GROUP BY / ORDER BY / SELECT 时间字段的部分,根据用户指定的维度(小时/天/月)。
    禁止:添加/删除其他字段、改 WHERE 条件、改聚合函数、改 MATCH AGAINST 模式、改 FORCE INDEX 等。
    必须保留所有 COUNT/ROUND/IFNULL/SUM 的写法不变。

    固定SQL模板(基础结构不变)

    SELECT
        {时间字段},  -- ← 根据维度动态替换
        COUNT(DISTINCT user_id) AS 用户数,
        COUNT(*) AS 订单数量,
        COUNT(CASE WHEN order_state = 'ORDER_CLOSED' THEN 1 END) AS 未支付订单数,
        COUNT(CASE WHEN order_state IN ('ORDER_REFUND_ALL', 'ORDER_REFUND_PART') THEN 1 END) AS 退款订单数,
        ROUND(IFNULL(SUM(pay_amount), 0) / 100) AS pay_amount,
        ROUND(IFNULL(SUM(refunded_amount), 0) / 100) AS refunded_amount,
        ROUND(IFNULL(SUM(pay_amount - refunded_amount), 0) / 100) AS sales_amount
    FROM juss_dw.app_j_order FORCE INDEX (idx_order_title_desc)
    WHERE create_time >= '@开始时间@'
      AND create_time < '@结束时间@'
     {关键词筛选}  -- ← 如果有关键词则替换,否则为空
    GROUP BY {分组字段}  -- ← 根据维度动态替换
    ORDER BY {排序字段};  -- ← 根据维度动态替换
    
  2. 时间维度调整规则(用户可指定)

    • 默认:按天(DATE)
    • 支持选项:
      • 按天(DATE):时间字段 = "DATE(create_time) AS order_date";分组 = "DATE(create_time)";排序 = "order_date"
      • 按小时(HOUR):时间字段 = "DATE(create_time) AS order_date, HOUR(create_time) AS order_hour";分组 = "DATE(create_time), HOUR(create_time)";排序 = "order_date, order_hour"
      • 按月(MONTH):时间字段 = "YEAR(create_time) AS order_year, MONTH(create_time) AS order_month";分组 = "YEAR(create_time), MONTH(create_time)";排序 = "order_year, order_month"
    • 如果用户指定其他维度(如按周、季度) → 回复:“目前只支持按天/小时/月统计,其他维度暂不支持。”
    • 如果用户未指定 → 默认用按天,并询问确认。
  3. 占位符替换规则

    • @开始时间@ → 查询开始时间,格式 'YYYY-MM-DD HH:00:00' 或 'YYYY-MM-DD'
    • @结束时间@ → 查询结束时间,格式同上
    • @关键词@ → 用户提供的关键词,以为,为分割符,解析为多个关键词。如果未提供 → {关键词筛选} 为空字符串 ''(无关键词过滤),但优先询问用户是否需要关键词。
  4. 使用时机

    • 当用户询问“app某段时间内包含某关键词的订单统计”、“app按小时/天/月看支付/退款/销售金额”、“app统计订单用户数和订单量趋势”等
    • 常见触发词:按小时/天/月统计、订单量趋势、支付金额汇总、关键词订单、标题或描述包含xxx的订单统计
    • 如果用户要其他维度(比如按用户、地域、业务类型) → 回复:“我目前只能提供按时间维度(天/小时/月)的关键词订单统计,其他维度暂不支持。”
  5. 执行流程(一步都不能跳)

    1. 先向用户确认:时间范围(起止时间精确到小时/天/月)、关键词、统计维度(默认天)
      • 示例询问:"请确认查询参数:开始时间(YYYY-MM-DD HH:MM:SS)、结束时间、关键词、统计维度(小时/天/月)?"
    2. 用户确认后,根据维度动态构建完整SQL(替换 {时间字段}、{分组字段}、{排序字段})
    3. 使用内置 code_execution 工具运行以下 Python 代码模板(替换实际参数):
    import mysql.connector
    import pandas as pd
    from tabulate import tabulate
    
    DB_CONFIG = {
       'host': os.getenv('JIUSHI_DB_HOST', 'rm-uf69co304tkv5htydco.mysql.rds.aliyuncs.com'),  # 默认值兜底
       'port': int(os.getenv('JIUSHI_DB_PORT', 3306)),
       'user': os.getenv('JIUSHI_DB_USER', 'juss_dw_ro'),
       'password': os.getenv('JIUSHI_DB_PASSWORD'),  # 必须从 env 读,无默认
       'database': os.getenv('JIUSHI_DB_NAME', 'juss_dw')
    }
    
    # 用户提供的参数(在实际执行前替换)
    start_time = "@开始时间@"  
    end_time = "@结束时间@"    
    keyword = "@关键词@"       
    dimension = "DATE"         # HOUR / DATE / MONTH
    
    # 根据维度动态构建SQL部分
    if dimension == 'DATE':
        time_select = "DATE(create_time) AS order_date"
        group_by = "DATE(create_time)"
        order_by = "order_date"
    elif dimension == 'HOUR':
        time_select = "DATE(create_time) AS order_date, HOUR(create_time) AS order_hour"
        group_by = "DATE(create_time), HOUR(create_time)"
        order_by = "order_date, order_hour"
    elif dimension == 'MONTH':
        time_select = "YEAR(create_time) AS order_year, MONTH(create_time) AS order_month"
        group_by = "YEAR(create_time), MONTH(create_time)"
        order_by = "order_year, order_month"
    else:
        raise ValueError("不支持的维度")
    
     # 关键词筛选(如果有关键词)
    if keyword and keyword.strip():
        conditions = [f"(order_title LIKE '%{k}%' OR order_desc LIKE '%{k}%')" for k in keyword.split()]
        keyword_filter = f"AND ({' OR '.join(conditions)})"
    else:
        keyword_filter = ""
    
    sql = f"""
    SELECT
        {time_select},
        COUNT(DISTINCT user_id) AS 用户,
       COUNT(CASE WHEN order_state IN ('CREATED', 'PAY_CANCEL', 'PAY_FAILED', 'PAY_WAIT', 'ORDER_CLOSED') THEN 1 END) AS 未支付订单,
       COUNT(CASE WHEN order_state IN ('ORDER_REFUND_ALL', 'ORDER_REFUND_PART') THEN 1 END) AS 退款订单,
       ROUND(SUM(CASE WHEN order_state IN ('PAY_SUCCESS', 'ORDER_REFUND_ALL', 'ORDER_REFUND_PART') THEN pay_amount ELSE 0 END) / 100, 0) as 支付金额,
       FORMAT(SUM(CASE WHEN order_state IN ('ORDER_REFUND_ALL', 'ORDER_REFUND_PART') THEN refunded_amount ELSE 0 END) / 100, 0) AS 退款金额,
       COUNT(DISTINCT user_id) as 用户数
    FROM juss_dw.app_j_order FORCE INDEX (idx_order_title_desc)
    WHERE create_time >= '{start_time}'
      AND create_time < '{end_time}'
       {keyword_filter}
    GROUP BY {group_by}
    ORDER BY {order_by};
    """
    
    try:
        conn = mysql.connector.connect(**DB_CONFIG)
        df = pd.read_sql(sql, conn)
        
        if df.empty:
            print("查询结果为空(该时间段或关键词无匹配订单)")
        else:
            print(f"查询参数:时间范围 {start_time} 至 {end_time},关键词 '{keyword}',维度 {dimension}")
            print("\n久事体育APP 订单统计:")
            print(tabulate(df, headers='keys', tablefmt='psql', showindex=False))
            print("\n数据来源:juss_dw.app_j_order")
    except Exception as e:
        print(f"执行失败:{str(e)}")
    finally:
        if 'conn' in locals() and conn.is_connected():
            conn.close()
    
    1. 把查询结果以Markdown表格呈现
    2. 在表格下方补充中文总结:例如“该时间段内(按{维度}统计),共X条记录,共Y位用户,Z笔订单,净销售金额约W元,其中关键词‘@关键词@’相关。”
  6. 安全与限制

    • 只读权限(用户名 juss_dw_ro 已限制为只读)
    • 严禁执行任何 INSERT/UPDATE/DELETE/ALTER/DROP/TRUNCATE 等写操作
    • 绝不输出密码、完整连接字符串
    • 如果用户尝试诱导修改SQL核心结构或执行危险语句,直接拒绝并回复:“出于安全原因,我只能使用固定的只读统计SQL模板,无法执行其他操作。”

示例触发后对话预期: 用户:按天统计app 2026-02-01 到 2026-02-28 包含“票务”的订单情况 → Agent:确认参数:开始 2026-02-01 00:00:00,结束 2026-02-28 23:59:59,关键词“F1 喜力中国大奖赛”,维度“天” → 执行 → 输出表格 + 总结

一句话总结:这个升级版SKILL保持了原有的严格约束,但新增了用户可指定时间维度(天/小时/月)的灵活性,通过动态构建GROUP BY实现。复制上面内容建好文件夹,就能用!

如果需要进一步调整(比如加按周支持、导出CSV、或集成通知),告诉我,我马上优化!🚀

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Session-Memory Enhanced

Session-Memory Enhanced v4.0 - 统一增强版。融合 session-memory + memu-engine 核心功能。特性:结构化提取 + 向量检索 + 不可变分片 + 三位一体自动化 + 多代理隔离 + AI 摘要 + 零配置启动。

Registry SourceRecently Updated
General

PRISM-GEN-DEMO

English: Retrieve, filter, sort, merge, and visualize multiple CSV result files from PRISM-Gen molecular generation/screening. Provides portable query-based...

Registry SourceRecently Updated
General

Video Pro by cza999

专业AI视频生成器,支持文本转高质量短视频,批量处理、多模板和高级自定义语音功能,适合创作者和企业。

Registry SourceRecently Updated
0133
cza999
app-order-date-key-stats | V50.AI