feat:下载历史修改
This commit is contained in:
@@ -62,9 +62,12 @@ async function handleAdd(userId, event) {
|
||||
return { code: 0, data: { _id, ...record } };
|
||||
}
|
||||
|
||||
const MAX_LIST_PAGE_SIZE = 30;
|
||||
|
||||
async function handleList(userId, event) {
|
||||
const { page = 1, pageSize = 20 } = event;
|
||||
const skip = (page - 1) * pageSize;
|
||||
const { page = 1, pageSize = MAX_LIST_PAGE_SIZE } = event;
|
||||
const limit = Math.min(Math.max(1, Number(pageSize) || 1), MAX_LIST_PAGE_SIZE);
|
||||
const skip = (page - 1) * limit;
|
||||
|
||||
const collection = db.collection('download_logs');
|
||||
|
||||
@@ -72,7 +75,7 @@ async function handleList(userId, event) {
|
||||
.where({ userId })
|
||||
.orderBy('createdAt', 'desc')
|
||||
.skip(skip)
|
||||
.limit(pageSize)
|
||||
.limit(limit)
|
||||
.get();
|
||||
|
||||
if (logs.length === 0) {
|
||||
|
||||
+9
-2
@@ -25,6 +25,8 @@
|
||||
|
||||
## 我的建议
|
||||
|
||||
涂鸦丫|儿童打印练习纸
|
||||
|
||||
优先考虑「涂鸦丫-幼儿打印练习纸」或「涂鸦丫-儿童打印学习卡」。理由:
|
||||
|
||||
1. 「幼儿/儿童」比「育儿」更精准地指向你的用户群体(家长为孩子找内容)
|
||||
@@ -42,7 +44,7 @@
|
||||
回顾整个代码库和产品文档,v3.0 的产品已经远远超出了最初「数感识字」的范畴:
|
||||
|
||||
| 模块 | 当前状态 |
|
||||
|------|----------|
|
||||
| -------- | -------------------------------------------------- |
|
||||
| 数学启蒙 | 26 种题型(数字认知 → 凑十破十 → 九九乘法) |
|
||||
| 专注力 | 13 种题型(图形配对、找规律、格子仿画等) |
|
||||
| 中文识字 | 涂色识字卡 + 自定义字卡生成 |
|
||||
@@ -69,12 +71,14 @@
|
||||
### 关于「涂鸦丫」这个品牌名
|
||||
|
||||
优势:
|
||||
|
||||
- 谐音双关:涂鸦 = doodle + 丫 ≈ 鸭,刚好呼应小黄鸭 IP 形象
|
||||
- 「丫」在中文里有「小孩子」的亲切感(小丫、丫头)
|
||||
- 三个字,不长,有节奏感
|
||||
- 在同类小程序中辨识度高——不会和「XX 练习纸」「XX 启蒙」混淆
|
||||
|
||||
劣势:
|
||||
|
||||
- 「涂鸦」第一反应是乱涂乱画,和家长想要的「学习」「练习」调性有偏差
|
||||
- 没有任何品类关键词,自己就是零搜索流量的孤岛
|
||||
- 「丫」字在部分手机上输入法不友好
|
||||
@@ -86,7 +90,7 @@
|
||||
后缀的候选词,按微信搜索价值排序:
|
||||
|
||||
| 后缀关键词 | 搜索量感 | 精准度 | 竞品密度 | 评价 |
|
||||
|-----------|---------|--------|---------|------|
|
||||
| ------------ | -------- | ------ | -------- | ------------------------------ |
|
||||
| 幼儿练习纸 | 高 | 很高 | 中 | 最直接描述产品形态 |
|
||||
| 儿童打印练习 | 高 | 高 | 低 | 「打印」是核心差异点 |
|
||||
| 早教打印 | 中 | 高 | 低 | 简洁,但「早教」覆盖偏宽 |
|
||||
@@ -104,6 +108,7 @@
|
||||
```
|
||||
|
||||
理由:
|
||||
|
||||
- 「幼儿打印练习纸」六个字精确描述了产品:给幼儿 + 可打印 + 练习纸形态
|
||||
- 微信搜索「幼儿练习纸」「打印练习纸」都能命中
|
||||
- 「打印」是核心壁垒——大部分竞品是纯展示或 PDF 下载,你的动态 Canvas 生成 + 打印是真正差异点
|
||||
@@ -116,6 +121,7 @@
|
||||
```
|
||||
|
||||
理由:
|
||||
|
||||
- 「全科」暗示了数学+语文+英语+专注力的品类广度,进来的用户不会觉得「只有数学」
|
||||
- 「儿童」比「幼儿」覆盖更宽(3-8 岁边缘其实跨了幼儿和学龄)
|
||||
- 风险:「全科」偏概念性,家长搜索习惯不如「练习纸」强
|
||||
@@ -127,6 +133,7 @@
|
||||
```
|
||||
|
||||
理由:
|
||||
|
||||
- 「宝宝」是家长口语搜索高频词,真实搜索行为更接近「宝宝练习纸」「宝宝数学题」
|
||||
- 「打印」放最后也有命中可能(微信搜索会分词匹配)
|
||||
- 偏口语化,和「涂鸦丫」的童趣调性一致
|
||||
|
||||
@@ -14,10 +14,10 @@ export const defaultPrintConfig: PrintConfig = {
|
||||
};
|
||||
|
||||
export const defaultShareConfig = {
|
||||
// title: '涂鸦丫 - 一张会“教知识”的涂色卡',
|
||||
title: '涂鸦丫 - 快来生成宝宝的专属学习卡',
|
||||
path: '/pages/mathIndex/mathIndex',
|
||||
imageUrl: 'https://cdn.joeyone.cn/doodle/share-img/index-share-v2.png',
|
||||
// title: '涂鸦丫·儿童打印练习纸,数学练字拼音一键打印',
|
||||
title: '涂鸦丫|轻松生成幼儿练习纸,幼小衔接宝妈推荐',
|
||||
path: '/pages/home/home',
|
||||
imageUrl: 'https://cdn.joeyone.cn/doodle/share-img/share-v3-800.png',
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { NAV_INNER_PX } from '../../utils/navMetrics';
|
||||
import { getFavoriteList, removeFavorite } from '../../utils/favorites';
|
||||
import { getDownloadLogs } from '../../utils/downloadLogs';
|
||||
import {
|
||||
DOWNLOAD_HISTORY_MAX,
|
||||
getDownloadLogs,
|
||||
} from '../../utils/downloadLogs';
|
||||
import type { FavoriteRecord } from '../../utils/favorites';
|
||||
import type { DownloadLogRecord } from '../../utils/downloadLogs';
|
||||
import { getCategoryName } from '../../core/data/categories';
|
||||
@@ -225,7 +228,7 @@ Page({
|
||||
async loadDownloads() {
|
||||
this.setData({ dlLoading: true });
|
||||
try {
|
||||
const records = await getDownloadLogs();
|
||||
const records = await getDownloadLogs(1, DOWNLOAD_HISTORY_MAX);
|
||||
this.setData({ downloadSections: groupDownloadsByDate(records) });
|
||||
} finally {
|
||||
this.setData({ dlLoading: false });
|
||||
|
||||
@@ -34,12 +34,15 @@ export async function addDownloadLog(worksheetId: string): Promise<boolean> {
|
||||
}
|
||||
}
|
||||
|
||||
/** 收藏页下载历史展示条数上限 */
|
||||
export const DOWNLOAD_HISTORY_MAX = 30;
|
||||
|
||||
/**
|
||||
* 获取下载历史
|
||||
* 获取下载历史(默认最近 30 条)
|
||||
*/
|
||||
export async function getDownloadLogs(
|
||||
page = 1,
|
||||
pageSize = 20,
|
||||
pageSize = DOWNLOAD_HISTORY_MAX,
|
||||
): Promise<DownloadLogRecord[]> {
|
||||
try {
|
||||
await getUser();
|
||||
|
||||
Reference in New Issue
Block a user