# poetry **Repository Path**: mayuanwei/poetry ## Basic Information - **Project Name**: poetry - **Description**: 以代码为笔,以思想为墨,将古典诗词的韵律之美与现代编程的精确逻辑巧妙融合,打造一座连接传统与未来的桥梁。通过数字化的匠心独运,让诗词在虚拟世界中焕发新生,既传承了千年文脉,又赋予了科技以诗意。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-03-25 - **Last Updated**: 2025-05-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # poem ## 介绍 诗词项目,包含服务端、网页端(待完成)、移动端。 > ​ 以代码为笔,以思想为墨,将古典诗词的韵律之美与现代编程的精确逻辑巧妙融合,打造一座连接传统与未来的桥梁。通过数字化的匠心独运,让诗词在虚拟世界中焕发新生,既传承了千年文脉,又赋予了科技以诗意。 > ​ 该demo为大学随堂授课记录,服务端(杜姣姣老师)+纯血鸿蒙(帝心老师),供大家学习交流。可以提issues提供建议。后期优化。 --- # 鸿蒙端 `OneAutumn`:纯血鸿蒙源码。 | 未登录:我的收藏 | 登录页面 | 注册页面 |登录后:我的收藏| | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |--------------| | ![](screenshots/README/image-20250325143902419.png) | ![](screenshots/README/image-20250325143921112.png) | ![](screenshots/README/image-20250325144213151.png) |![image-20250325144441761](screenshots/README/image-20250325144441761.png)| | **`tarBar0`:未收藏状态** | **`tarBar0`:已收藏状态** | **`tarBar0`:点击更新每日一句** |**`tarBar`:主页数据**| | ![image-20250325144615305](screenshots/README/image-20250325144615305.png) | ![image-20250325144640650](screenshots/README/image-20250325144640650.png) | ![今日诗词动画效果](screenshots/README/今日诗词动画效果.gif) |![image-20250325144938662](screenshots/README/image-20250325144938662.png)| | **`tarBar1`:热门推荐之古诗** | **`tarBar1`:热门推荐之彩蛋** | **`tarBar1`:热门诗人之诗词** |**`tabBar2`:收藏榜**| | ![image-20250325145025924](screenshots/README/image-20250325145025924.png) | ![image-20250325145145334](screenshots/README/image-20250325145145334.png) | ![image-20250325145231479](screenshots/README/image-20250325145231479.png) |![image-20250325145414334](screenshots/README/image-20250325145414334.png)| | 功能 | 描述 | 状态 | | ------------------- | ---------------------------------------------------------- | ---- | | 登录、注册、退出 | 用户信息基本操作 | 1 | | 今日诗词 | 随机给出一句内容 | 1 | | `tarBar1`:收藏功能 | 收藏诗句会同步到个人中心和收藏榜 | 1 | | `tarBar2`:推荐内容 | 展示固定数据,目前为假数据,待优化为数据库数据 | 0 | | `tarBar3`:排行榜 | 收藏榜展示所有用户收藏排行。 | 1 | | | 收藏榜数据添加一个收藏标记。当前用户根据兴趣是否**点击**。 | 1 | | | 我的收藏左右滑**删除**数据 | 1 | | UI美化 | 交给网友设计和建议 | 0 | | 功能优化 | 交给网友设计和建议 | 0 | 要求:在纯血鸿蒙模拟器或真机运行该项目(API14+)。 > 因为本项目在帝心老师电脑构建编译,且签名后真机运行。所以你拿到源码后,根目录下的 `OneAutumn/build-profile.json5`会报错。 > > 解决办法1:自己重新签名,然后真机或者模拟器运行。 > > 解决办法2:删除该文件中`signingConfigs`字段对应的数组数据。即,将该签名数组置空。 --- # 后台 ## 注册 ### [请求url](http://http://***.**.**.**:****/user/regist) ``` http://***.**.**.**:****/user/regist ``` ### 请求参数: `json` 参数 | 参数名 | 类型 | 描述 | | ---------- | ------ | ------ | | `phone` | String | 手机号 | | `password` | String | 密码 | ```c { "phone":"15838256567", "password":"anan123" } ``` ### 响应示例 1. 如果用户名已经被注册,响应结果如下 ```c { "code": 301, "msg": "用户名已经注册过" } ``` 2. 如果手机号已经被注册,响应结果如下 ```c { "code": 302, "msg": "手机号已经注册过" } ``` 2. 如果注册成功,响应结果如下: ```c { "code": 200, "msg": "注册成功" } ``` 3. 如果注册失败,响应结果: ```c { "code": 304, "msg": "注册失败" } ``` --- ## 验证手机号是否已注册 ### url ```text http://***.***.**.*/user/checkByPhone ``` ### 参数(非json参数) | 参数名 | 类型 | 描述 | | ------ | ------ | ------ | | phone | String | 手机号 | ### 响应 手机号已注册: ```c { "isExist": "true" } ``` 手机号未注册: ```c { "isExist": "false" } ``` ## 验证用户名是否已注册 ### url [http://localhost:8081/user/checkByUserName](http://localhost:8081/user/checkByUserName) ### 参数(非json参数) | 参数名 | 类型 | 描述 | | -------- | ------ | ------ | | userName | String | 用户名 | ### 响应 用户名已注册: ```c { "isExist": "true" } ``` 用户名未注册: ```c { "isExist": "false" } ``` ## --- ## 登录 ### url ``` http://***.**.**.**:****/user/login ``` ### 请求参数: json 参数 | 参数名 | 类型 | 描述 | | ---------- | -------- | ------ | | `phone` | `String` | 手机号 | | `password` | `String` | 密码 | ```c { "phone":"15838256567", "password":"anan123" } ``` ### 响应 ```c { "msg": "登录成功", "code": 200, "user": { "id": 3, "password": "anan123", "phone": "15838256567", "userName": "安安" } } ``` ```c { "code": 304, "msg": "用户名或密码错误" } ``` --- ## 收藏功能 #### 收藏功能参数示例: ```json { "userId":"18", "poemId":"57" } ``` ### 收藏当前诗句 #### urL ```text http://***.**.**.**:****/poem/collect ``` #### 请求参数:json参数 | 参数名 | 类型 | 是否必须 | 描述 | | -------- | ----- | -------- | ---------- | | `userId` | `int` | `true` | 当前用户id | | `poemId` | `int` | `true` | 当前诗词id | #### 响应示例 收藏成功 ```json { "collectFlag": true } ``` 收藏失败 ```json { "collectFlag": false } ``` --- ### 取消收藏当前诗句 #### urL ```text http://***.**.**.**:****/poem/unCollect ``` #### 请求参数:json参数 | 参数名 | 类型 | 是否必须 | 描述 | | -------- | ----- | -------- | ---------- | | `userId` | `int` | `true` | 当前用户id | | `poemId` | `int` | `true` | 当前诗词id | #### 响应示例 取消成功后,当前诗句收藏状态为:`false` ```json { "collectFlag": false } ``` 取消收藏失败,当前诗句依旧在收藏表中。当前诗句的收藏状态为:`true` ```json { "collectFlag": true } ``` ---- ### ### 是否收藏过当前诗词 #### urL ```text http://***.**.**.**:****/poem/isCollected ``` #### 请求参数:json参数 | 参数名 | 类型 | 是否必须 | 描述 | | -------- | ----- | -------- | ---------- | | `userId` | `int` | `true` | 当前用户id | | `poemId` | `int` | `true` | 当前诗词id | #### 响应示例 收藏过当前诗句 ```json { "collectFlag": true } ``` 未收藏过当前诗句 ``` { "collectFlag": false } ``` ---- ### 收藏排行榜 #### url:get/post ```text http://***.**.**.**:****/poem/collectRank ``` #### 请求参数:`json参数` | 参数名 | 类型 | 是否必须 | 描述 | | ---------- | ----- | -------- | -------------------------------- | | `pageNo` | `int` | `false` | 当前页码,非必须,不传默认为`1` | | `pageSize` | `int` | `false` | 每一页的诗词个数,不传默认为`20` | #### 响应示例 > 直接响应数组数据,收藏者数组字段名用 `userNameArr` ```c [ { "author": "高适", "categoryId": 0, "collectCount": 1, "content": "怨别自惊千里外,论交却忆十年时。", "id": 1, "origin": "东平别前卫县李寀少府 / 送前卫县李宷少府", "userName": [ "dxin" ] }, { "author": "李白", "categoryId": 0, "collectCount": 1, "content": "故人宿茅宇,夕鸟栖杨园。", "id": 4, "origin": "之广陵宿常二南郭幽居", "userName": [ "dxin" ] }, { "author": "何梦桂", "categoryId": 0, "collectCount": 1, "content": "数人世相逢,百年欢笑,能得几回又。", "id": 2, "origin": "摸鱼儿·记年时人人何处", "userName": [ "dxin" ] }, { "author": "詹玉", "categoryId": 0, "collectCount": 1, "content": "相逢唤醒京华梦,吴尘暗斑吟发。", "id": 5, "origin": "齐天乐·送童瓮天兵后归杭", "userName": [ "dxin" ] }, { "author": "王之涣", "categoryId": 0, "collectCount": 1, "content": "蓟庭萧瑟故人稀,何处登高且送归。", "id": 3, "origin": "九日送别", "userName": [ "dxin" ] } ] ``` --- ### 查询我的所有收藏的诗词 #### url ```text http://***.**.**.**:****/poem/myCollect ``` #### 请求参数:json参数 | 参数名 | 类型 | 必须 | 描述 | | ---------- | ----- | ------- | ---------------------------------------- | | `userId` | `int` | `true` | 根据`用户id`获取该用户收text藏的诗词列表 | | `pageNo` | `int` | `false` | 当前页码,非必须,不传默认为1 | | `pageSize` | `int` | `false` | 每一页的诗词个数,非必须,不传默认`20` | > 只传递userId ```json { "userId":11 } ``` > 传递非必须参数 ```json { "pageNo":1, "pageSize":20, "userId":11 } ``` #### 响应示例 ```c [ { "author": "王恽", "categoryId": 12, "content": "当年紫禁烟花,相逢恨不知音早。", "id": 11, "level2Categoryname": "友情", "origin": "水龙吟·送焦和之赴西夏行省" }, { "author": "王恽", "categoryId": 12, "content": "当年紫禁烟花,相逢恨不知音早。", "id": 11, "level2Categoryname": "友情", "origin": "水龙吟·送焦和之赴西夏行省" } ] ``` --- ## 查询所有分类 ### url ```text http://***.**.**.**:****/category/listall ``` ### 响应示例 ```c [ { "categoryId": 1, "categoryName": "抒情", "level2categorys": [ { "categoryId": 12, "categoryName": "友情", "parentId": 1, "pinyin": "youqing" }, { "categoryId": 13, "categoryName": "离别", "parentId": 1, "pinyin": "libie" }, { "categoryId": 14, "categoryName": "思念", "parentId": 1, "pinyin": "sinian" }, { "categoryId": 15, "categoryName": "思乡", "parentId": 1, "pinyin": "sixiang" }, { "categoryId": 16, "categoryName": "伤感", "parentId": 1, "pinyin": "shanggan" }, { "categoryId": 17, "categoryName": "孤独", "parentId": 1, "pinyin": "gudu" }, { "categoryId": 18, "categoryName": "闺怨", "parentId": 1, "pinyin": "guiyuan" }, { "categoryId": 19, "categoryName": "悼亡", "parentId": 1, "pinyin": "daowang" }, { "categoryId": 20, "categoryName": "怀古", "parentId": 1, "pinyin": "huaigu" }, { "categoryId": 21, "categoryName": "爱国", "parentId": 1, "pinyin": "aiguo" }, { "categoryId": 22, "categoryName": "感恩", "parentId": 1, "pinyin": "ganen" } ], "parentId": 0, "pinyin": "shuqing" }, { "categoryId": 2, "categoryName": "四季", "level2categorys": [ { "categoryId": 23, "categoryName": "春天", "parentId": 2, "pinyin": "chuntian" }, { "categoryId": 24, "categoryName": "夏天", "parentId": 2, "pinyin": "xiatian" }, { "categoryId": 25, "categoryName": "秋天", "parentId": 2, "pinyin": "qiutian" }, { "categoryId": 26, "categoryName": "冬天", "parentId": 2, "pinyin": "dongtian" } ], "parentId": 0, "pinyin": "siji" } ] ``` ## 今日诗词 ### url ``` http://***.**.**.**:****/poem/todayPoem ``` ### 响应示例 ```c { "author": "刘长卿", "categoryId": 12, "content": "古路无行客,寒山独见君。", "id": 73, "level2Categoryname": "友情", "origin": "碧涧别墅喜皇甫侍御相访" } ``` ## 点击“一级分类名” ### url ``` http://***.**.**.**:****/poem/listByLevel1 ``` ### 请求参数:json参数 | 参数名 | 类型 | 描述 | | ------------- | -------- | ---------------- | | `level1Cname` | `String` | 一级分类名 | | `pageSize` | `int` | 每一页的诗词个数 | ```c { "level1Cname":"抒情", "pageSize":20 } ``` ### 响应示例 `level2Categorys`: 对应的二级分类信息 `poemList`: 第一个二级分类下第一页的诗词 ```c { "level2Categorys": [ { "categoryId": 21, "categoryName": "爱国", "parentId": 1, "pinyin": "aiguo" }, { "categoryId": 22, "categoryName": "感恩", "parentId": 1, "pinyin": "ganen" } ], "poemList": [ { "author": "孟浩然", "categoryId": 12, "content": "不才明主弃,多病故人疏。", "id": 19, "level2Categoryname": "友情", "origin": "岁暮归南山 / 归故园作 / 归终南山" }, { "author": "戴叔伦", "categoryId": 12, "content": "羁旅长堪醉,相留畏晓钟。", "id": 20, "level2Categoryname": "友情", "origin": "客夜与故人偶集 / 江乡故人偶集客舍" } ] } ``` ## 点击“二级分类名”/ 点击“下一页或上一页” ### url ``` http://***.**.**.**:****/poem/listByLevel2 ``` ### 请求参数:json参数 | 参数名 | 类型 | 描述 | | ------------- | ------ | ----------------------------- | | `level2Cname` | String | 二级分类名 | | `pageNo` | int | 当前页码,非必须,不传默认为1 | | `pageSize` | int | 每一页的诗词个数 | ```c { "level2Cname":"离别", "pageNo":2, "pageSize":20 } ``` ### 响应示例 ```c { "离别": [ { "author": "戴复古", "categoryId": 13, "content": "木落山空天远大,送飞鸿、北去伤怀久。", "id": 138, "level2Categoryname": "离别", "origin": "贺新郎·寄丰真州" }, { "author": "徐凝", "categoryId": 13, "content": "别离还有经年客,怅望不如河鼓星。", "id": 139, "level2Categoryname": "离别", "origin": "七夕" } ] } ``` ## 关闭的时候添加收藏 ### url ``` http://***.**.**.**:****/collect/add ``` ### 参数:所有要收藏的诗词的`Id` | 参数名 | 类型 | 描述 | | --------- | -------- | ------------------------------ | | `poemIds` | `String` | 收藏id,每个id间用英文逗号分隔 | 示例: ![](https://cdn.nlark.com/yuque/0/2025/png/50542716/1735888700545-02465bb2-f707-4152-986f-266ffaff08e2.png) ### 响应示例 1. 未登录时响应结果 ```c { "msg": "请先登录" } ``` 2. 收藏成功后的响应结果 ```c { "msg": "收藏成功" } ```