综合设计——多源异构数据采集与融合应用综合实践
这个项目属于哪个课程 | 2024数据采集与融合技术实践 |
---|---|
组名 | 数据"融合炖" 异构 "大杂绘"队 |
项目简介 | 项目名称:味谱魔法 项目logo:![]() 智能购物菜谱助手是一款结合AI技术的智能化应用,旨在为用户提供从食材购买到菜肴烹饪的一站式服务。通过该平台,用户不仅可以完成食材的在线选购,还能根据选购的食材生成个性化菜谱。 |
团队成员学号 | 102202156 王贺雯 102202156 高涛 102202157 王党兵 102202119 吴佳辉 032004126 曾祥宝 |
项目目标 | 本系统旨在实现用户将食品加入购物车,生成对应的食谱核心功能 |
其他参考文献 | https://www.spkx.net.cn/CN/abstract/abstract58653.shtml |
gitee链接 | https://gitee.com/jyppx000/data-collection-and-fusion |
系统总体技术概述
1.系统架构概述
系统分为后端管理系统、安卓、模型训练及其搭建、爬取数据、调用模型算法接口,部署等多层。
后端管理系统:管理员对安卓端的商家、客户进行管理。
安卓:
- 用户可以在安卓手机端浏览生鲜品类
- 商家可以在安卓手机端发布商品
模型训练及搭建
- 使用开源模型——ChatGLM-6B
爬取数据:核心涉及到js
逆向
2 各模块技术实现(购物车)
包括:
- 包含一个
ShopModel
对象,存储当前商品的详细信息,包括shopId
(商品ID)、shopName
(商品名称)、shopMessage
(商品描述)、shopImg
(商品图片URL)和shopMoney
(商品价格)。 - 维护一个
list_result_choice
列表,用于存储用户选择的商品列表,便于后续支付处理。
逻辑实现:
-
页面加载与初始化:
- 使用
Intent
接收从上个页面传递的ShopModel
对象,动态填充商品详情信息。 - 动态加载商品图片。
- 设置异常捕获机制,确保图片加载失败时程序不会崩溃。
private void initShopMessage(ShopModel noticeModel) {// 设置商品名称和价格TextView shopName = findViewById(R.id.shopName);TextView shopPrice = findViewById(R.id.shopPrice);shopName.setText(noticeModel.getShopName());shopPrice.setText("¥" + noticeModel.getShopMoney());// 设置轮播图,展示商品多张图片try {List<SelectImageItem> images = new ArrayList<>();images.add(new SelectImageItem(noticeModel.getShopImg()));images.add(new SelectImageItem(noticeModel.getShopImg2())); // 假设有第二张图CycleViewPager cycleViewPager = findViewById(R.id.cycleViewPager);cycleViewPager.setImages(images);} catch (Exception e) {e.printStackTrace();} }
- 使用
1.加入购物车功能:
-
监听按钮点击事件:
Button mbtnChat = findViewById(R.id.mbtnChat); mbtnChat.setOnClickListener(view -> addCar());
-
实现
addCar()
方法:- 构造请求参数,包含商品ID和用户ID,向后端发送 POST 请求。
- 后端接口返回成功后,通过回调更新购物车状态,并显示成功提示。
private void addCar() {// 构造请求参数AjaxParams params = new AjaxParams();params.put("action_flag", "addCar");params.put("carShopId", noticeModel.getShopId()); // 当前商品IDparams.put("carUserId", MemberUserUtils.getUid(this) + ""); // 当前用户ID// 异步发送请求httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultState, true, "正在加载..."); }@Override public void callBackSuccess(int actionFlag, Object object) {// 请求回调,显示操作成功的 Toastif (actionFlag == Consts.actionId.resultState) {Toast.makeText(this, "商品已加入购物车!", Toast.LENGTH_SHORT).show();} }
2.立即购买功能:
-
监听
mbtnPay
按钮事件,将当前商品加入支付列表list_result_choice
,并跳转到支付页面。Button mbtnPay = findViewById(R.id.mbtnPay); mbtnPay.setOnClickListener(view -> {list_result_choice.add(noticeModel); // 将当前商品加入列表Intent intent = new Intent(this, PayShopMessageActivity.class);intent.putExtra("msg", (Serializable) list_result_choice); // 传递商品列表intent.putExtra("payMoney", noticeModel.getShopMoney() + ""); // 传递总价startActivity(intent); // 跳转到支付页面 });
3.商品图片点击预览功能:
-
点击商品图片时,跳转到大图预览页面,显示商品图片的全尺寸图。
ImageView shopImg = findViewById(R.id.shopImg); shopImg.setOnClickListener(view -> {Intent intent = new Intent(this, ShowPictureActivity.class);intent.putExtra("imageUrl", noticeModel.getShopImg());startActivity(intent); });
完整功能交互:
- 购物车数据同步:
借助CarObservable
通知购物车模块其他页面,确保前后端购物车数据一致。 - 异常处理:
商品图片加载异常时记录日志,避免页面崩溃。 - 支付页面跳转:
将商品信息作为序列化对象传递给支付页面,便于后续操作。
总结:
该购物车功能通过动态数据绑定和与后端接口的交互,实现了商品详情展示、加入购物车和立即购买功能。功能的核心逻辑主要依赖 HTTP 异步请求和 Intent 跳转,为用户提供了流畅的购物体验。