江鸟中原鸿蒙商城系统
本文介绍了一个基于HarmonyOS开发的跨设备购物系统设计方案。系统采用分层架构,使用DevEco Studio开发,通过rdbStore实现数据管理。主要功能包括用户注册登录、商品搜索(支持模糊匹配)、收藏购买、订单管理等。系统实现了用户模块、商品模块和交易模块的核心功能,并进行了单元测试和功能测试,测试结果显示各项功能运行正常。性能方面满足响应时间小于1秒、支持50用户并发的需求,但在高并发
一.设计概述
主要技术:
- 通过rdbStore进行数据的增删改查
- 实现了用户的登录、注册、修改密码
- 实现了用户对商品的收藏、搜索、购买
- 可以查看自己购买的订单信息,对个人信息进行编辑
- 可以给购物商城系统给出自己的一些建议
系统基于DevEco Studio编写代码,用rdbstore进行数据的增删查改。
在商品搜索功能中引入模糊匹配算法,优化关键词容错率,结合用户浏览历史生成个性化推荐列表。
二.需求分析
1. 功能需求分析
用户模块:
注册 / 登录:支持唯一账号(手机号 / 邮箱)注册,密码强度校验(需包含字母 + 数字)。
个人中心:编辑个人信息(昵称、地址等)、修改密码、查看收藏夹 / 订单记录。
商品模块:
商品展示:分类浏览(如电子产品、服饰等)、关键词搜索、热门推荐、商品详情页(图文 + 视频介绍)。
购物车:添加 / 删除商品、修改数量、多商品结算。
交易模块:
订单管理:生成订单(含商品清单、金额、配送信息)、模拟支付流程、订单状态更新(待支付 / 已发货 / 已完成)。
数据需求分析
实体关系:
用户(用户 ID、账号、密码、姓名、手机号、地址)
商品(商品 ID、名称、类别、价格、库存、图片 URL)
订单(订单 ID、用户 ID、商品 ID、数量、总价、支付状态、创建时间)
收藏(用户 ID、商品 ID、收藏时间)

3. 性能需求分析
响应时间:界面跳转<1 秒,网络请求(如商品搜索)超时时间≤3 秒。
并发处理:支持 50 个用户同时在线浏览商品。
三.设计方案
- 设计目标
基于 HarmonyOS 开发跨设备购物应用,实现多端协同、本地数据快速访问、云端动态同步三大核心能力,满足用户便捷购物需求。
2. 系统架构
采用分层架构模式,将系统划分为表现层、业务层、数据层,确保模块解耦与可维护性:
表现层:负责用户交互界面,基于 HarmonyOS ArkUI 实现跨设备 UI 适配。
业务层:处理核心逻辑(如登录验证、订单生成),调用数据层接口。
数据层:管理本地与云端数据交互,保障数据一致性。
3. 技术选型

4、 功能模块设计

5、方案总结
本方案以分层设计与跨设备能力为核心,通过 ArkUI 实现高效 UI 开发,结合 rdbStore 与云端 API 保障数据可靠性。后续开发将优先实现用户登录、商品浏览等基础功能,并通过单元测试验证各模块逻辑正确性,确保系统满足性能与扩展性要求。
四.系统设计与实现
系统架构设计:
运行结果:



“用户登录”的实现流程:

登录的主要代码:
try {
const tasks1 = await taskModel.getTaskList();
const tasks:users[] = await taskModel.getUserByName(this.username);
let isMatch = false;
for (const task of tasks) {
if (task.name === this.username && task.password === this.password) {
this.phoneNum=task.phoneNum
isMatch = true;
break;
}
}
if (isMatch) {
promptAction.showToast({ message: '登录成功' });
router.pushUrl({ url: "pages/shop",
params: {
username: this.username,
phoneNum: this.phoneNum // 从数据库查询结果中获取手机号
}}
);
} else {
this.errorMsg = ' 用户名或密码错误';
}
}
async getByname(name:string): Promise<ShopInfo[]> {
if (!this.rdbStore) {
console.warn('数据库未初始化');
return [];
}
try {
const predicates = new relationalStore.RdbPredicates(this.TABLE_NAME)
.like('name', `%${name}%`);
const result = await this.rdbStore.query(predicates, [
'id', 'image', 'name', 'description',
'detail', 'price', 'live', 'isshop', 'isbuy'
]);
const shopList: ShopInfo[] = [];
console.log('updates',`查询到 ${result.rowCount} 条记录`);
// 遍历结果集
for (let i = 0; i < result.rowCount; i++) {
result.goToRow(i);
shopList.push(new ShopInfo(
result.getLong(result.getColumnIndex('id')),
result.getString(result.getColumnIndex('image')),
result.getString(result.getColumnIndex('name')),
result.getString(result.getColumnIndex('description')),
result.getString(result.getColumnIndex('detail')),
result.getDouble(result.getColumnIndex('price')),
result.getLong(result.getColumnIndex('live')),
result.getLong(result.getColumnIndex('isshop')),
result.getLong(result.getColumnIndex('isbuy'))
));
}
登录时,进行没有输入密码,密码输入错误的密码,登录页面都会给出相应的提示。

五.系统测试
|
类型 |
工具 / 方式 |
说明 |
|
单元测试 |
DevEco Studio 自带测试框架 |
验证单个函数 / 组件逻辑(如密码加密、数据查询)。 |
|
功能测试 |
手工遍历操作 |
模拟用户真实场景操作,检查功能完整性。 |
测试流程:

测试用例设计:
|
模块 |
测试场景 |
输入数据 |
预期结果 |
实际结果 |
状态 |
|
用户登录 |
正常登录(有效账号密码) |
账号:13812345678 |
跳转主页,显示用户名 |
成功 |
通过 |
|
错误密码登录 |
账号:13812345678 |
提示 “账号或密码错误” |
成功 |
通过 |
|
|
商品搜索 |
关键词模糊搜索 |
输入 “手机” |
显示含 “手机” 的商品列表 |
成功 |
通过 |
|
无结果搜索 |
输入 “不存在的商品” |
提示 “未找到相关商品” |
成功 |
通过 |
|
|
购物车结算 |
添加多商品结算 |
商品 A(单价 100 元)×2 + 商品 B(单价 200 元)×1 |
总价显示 400 元,生成订单 |
成功 |
通过 |
测试结果分析
功能测试结论
所有核心功能(登录、搜索、购物车、订单)均通过测试,未发现影响使用的严重缺陷。
优化点:意见反馈模块的图片上传功能在弱网环境下偶发延迟,需增加进度提示。
性能测试结论
响应时间、内存占用等指标均满足需求(如商品列表加载平均 1.2 秒,低于预期 1.5 秒)。
压力测试中,当并发数超过 80 时出现接口超时,需优化后端 API 限流策略。
更多推荐



所有评论(0)