返回顶部
a

app-order-date-key-stats订单日期关键统计

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

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
279
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

app-order-date-key-stats

技能名称: app-order-date-key-stats

详细描述:

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

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

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

固定SQL模板(基础结构不变)
sql
SELECT
{时间字段}, -- ← 根据维度动态替换
COUNT(DISTINCT user_id) AS 用户数,
COUNT(*) AS 订单数量,
COUNT(CASE WHEN orderstate = ORDERCLOSED THEN 1 END) AS 未支付订单数,
COUNT(CASE WHEN orderstate IN (ORDERREFUNDALL, ORDERREFUND_PART) THEN 1 END) AS 退款订单数,
ROUND(IFNULL(SUM(payamount), 0) / 100) AS payamount,
ROUND(IFNULL(SUM(refundedamount), 0) / 100) AS refundedamount,
ROUND(IFNULL(SUM(payamount - refundedamount), 0) / 100) AS sales_amount
FROM jussdw.appjorder FORCE INDEX (idxordertitledesc)
WHERE create_time >= @开始时间@
AND create_time < @结束时间@
{关键词筛选} -- ← 如果有关键词则替换,否则为空
GROUP BY {分组字段} -- ← 根据维度动态替换
ORDER BY {排序字段}; -- ← 根据维度动态替换

  1. 2. 时间维度调整规则(用户可指定)
- 默认:按天(DATE) - 支持选项: - 按天(DATE):时间字段 = DATE(createtime) AS orderdate;分组 = DATE(createtime);排序 = orderdate - 按小时(HOUR):时间字段 = DATE(createtime) AS orderdate, HOUR(createtime) AS orderhour;分组 = DATE(createtime), HOUR(createtime);排序 = orderdate, orderhour - 按月(MONTH):时间字段 = YEAR(createtime) AS orderyear, MONTH(createtime) AS ordermonth;分组 = YEAR(createtime), MONTH(createtime);排序 = orderyear, ordermonth - 如果用户指定其他维度(如按周、季度) → 回复:“目前只支持按天/小时/月统计,其他维度暂不支持。” - 如果用户未指定 → 默认用按天,并询问确认。
  1. 3. 占位符替换规则
- @开始时间@ → 查询开始时间,格式 YYYY-MM-DD HH:00:00 或 YYYY-MM-DD - @结束时间@ → 查询结束时间,格式同上 - @关键词@ → 用户提供的关键词,以为,为分割符,解析为多个关键词。如果未提供 → {关键词筛选} 为空字符串 (无关键词过滤),但优先询问用户是否需要关键词。
  1. 4. 使用时机
- 当用户询问“app某段时间内包含某关键词的订单统计”、“app按小时/天/月看支付/退款/销售金额”、“app统计订单用户数和订单量趋势”等 - 常见触发词:按小时/天/月统计、订单量趋势、支付金额汇总、关键词订单、标题或描述包含xxx的订单统计 - 如果用户要其他维度(比如按用户、地域、业务类型) → 回复:“我目前只能提供按时间维度(天/小时/月)的关键词订单统计,其他维度暂不支持。”
  1. 5. 执行流程(一步都不能跳)
1. 先向用户确认:时间范围(起止时间精确到小时/天/月)、关键词、统计维度(默认天) - 示例询问:请确认查询参数:开始时间(YYYY-MM-DD HH:MM:SS)、结束时间、关键词、统计维度(小时/天/月)? 2. 用户确认后,根据维度动态构建完整SQL(替换 {时间字段}、{分组字段}、{排序字段}) 3. 使用内置 code_execution 工具运行以下 Python 代码模板(替换实际参数):

python
import mysql.connector
import pandas as pd
from tabulate import tabulate

DB_CONFIG = {
host: os.getenv(JIUSHIDBHOST, rm-uf69co304tkv5htydco.mysql.rds.aliyuncs.com), # 默认值兜底
port: int(os.getenv(JIUSHIDBPORT, 3306)),
user: os.getenv(JIUSHIDBUSER, jussdwro),
password: os.getenv(JIUSHIDBPASSWORD), # 必须从 env 读,无默认
database: os.getenv(JIUSHIDBNAME, juss_dw)
}

# 用户提供的参数(在实际执行前替换)
start_time = @开始时间@
end_time = @结束时间@
keyword = @关键词@
dimension = DATE # HOUR / DATE / MONTH

# 根据维度动态构建SQL部分
if dimension == DATE:
timeselect = DATE(createtime) AS order_date
groupby = DATE(createtime)
orderby = orderdate
elif dimension == HOUR:
timeselect = DATE(createtime) AS orderdate, HOUR(createtime) AS order_hour
groupby = DATE(createtime), HOUR(create_time)
orderby = orderdate, order_hour
elif dimension == MONTH:
timeselect = YEAR(createtime) AS orderyear, MONTH(createtime) AS order_month
groupby = YEAR(createtime), MONTH(create_time)
orderby = orderyear, order_month
else:
raise ValueError(不支持的维度)

# 关键词筛选(如果有关键词)
if keyword and keyword.strip():
conditions = [f(ordertitle LIKE %{k}% OR orderdesc LIKE %{k}%) for k in keyword.split()]
keyword_filter = fAND ({ OR .join(conditions)})
else:
keyword_filter =

sql = f
SELECT
{time_select},
COUNT(DISTINCT user_id) AS 用户,
COUNT(CASE WHEN orderstate IN (CREATED, PAYCANCEL, PAYFAILED, PAYWAIT, ORDER_CLOSED) THEN 1 END) AS 未支付订单,
COUNT(CASE WHEN orderstate IN (ORDERREFUNDALL, ORDERREFUND_PART) THEN 1 END) AS 退款订单,
ROUND(SUM(CASE WHEN orderstate IN (PAYSUCCESS, ORDERREFUNDALL, ORDERREFUNDPART) THEN pay_amount ELSE 0 END) / 100, 0) as 支付金额,
FORMAT(SUM(CASE WHEN orderstate IN (ORDERREFUNDALL, ORDERREFUNDPART) THEN refundedamount ELSE 0 END) / 100, 0) AS 退款金额,
COUNT(DISTINCT user_id) as 用户数
FROM jussdw.appjorder FORCE INDEX (idxordertitledesc)
WHERE createtime >= {starttime}
AND createtime < {endtime}
{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查询参数:时间范围 {starttime} 至 {endtime},关键词 {keyword},维度 {dimension})
print(\n久事体育APP 订单统计:)
print(tabulate(df, headers=keys, tablefmt=psql, showindex=False))
print(\n数据来源:jussdw.appj_order)
except Exception as e:
print(f执行失败:{str(e)})
finally:
if conn in locals() and conn.is_connected():
conn.close()

4. 把查询结果以Markdown表格呈现
5. 在表格下方补充中文总结:例如“该时间段内(

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 app-order-date-key-stats-1776197000 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 app-order-date-key-stats-1776197000 技能

通过命令行安装

skillhub install app-order-date-key-stats-1776197000

下载

⬇ 下载 app-order-date-key-stats v1.0.0(免费)

文件大小: 4.54 KB | 发布时间: 2026-4-15 10:28

v1.0.0 最新 2026-4-15 10:28
- 初始版本发布:严格按照固定SQL模板(仅允许调整时间维度相关部分)。
- 新增支持用户自定义时间统计维度(天/小时/月),按需求动态调整GROUP BY、SELECT、ORDER BY字段。
- 全流程指引:强制先确认时间范围、关键词和统计维度,询问并校验参数。
- 关键词支持多关键词过滤,自动构建SQL筛选条件。
- 明确限制和安全约束:仅能做时间维度(天/小时/月)关键词统计,严禁写操作和敏感SQL变更。
- 查询结果自动以Markdown表格+中文总结输出,提升数据解读体验。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部