数据采集与融合综合实践

news/2025/2/28 19:55:58/文章来源:https://www.cnblogs.com/wujiahui/p/18608101

综合设计——多源异构数据采集与融合应用综合实践

这个项目属于哪个课程 2024数据采集与融合技术实践
组名 数据"融合炖" 异构 "大杂绘"队
项目简介 项目名称:味谱魔法 项目logoimage 项目介绍
智能购物菜谱助手是一款结合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 列表,用于存储用户选择的商品列表,便于后续支付处理。

逻辑实现:

  1. 页面加载与初始化:

    • 使用 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 跳转,为用户提供了流畅的购物体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/853324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交易系统:退款单模型设计详解

大家好,我是汤师爷~ 和退款单作为整个交易逆向系统的核心,支撑着售后管理环节。 售后域核心概念模型1、退款单 退款单是记录和跟踪退款处理过程的核心业务单据,包含以下关键信息:租户ID:标识所属商户或组织 退款单ID:退款单的唯一标识 原订单ID:关联的原始订单 业务类型…

DDPM论文解读

Denoising Diffusion Probabilistic Models论文解读DDPM(Denoising Diffusion Probabilistic Models) 论文研究背景扩散概率模型(Denoising Diffusion Probabilistic Models, 简称DDPM)是近年来生成建模领域的重要发展之一。 生成模型的目标是学习数据分布并能够从中采样,…

AtCoder Beginner Contest 384 Solution

AtCoder Beginner Contest 384 (A-E) 题解A - aaaadaa (abc384 A) 题目大意 给个长度为n的字符串,以及两个字母a和b,要求把字符串中不是a的字符全部都变成b。 解题思路 一个循环判断一下就行了。 代码 #include<bits/stdc++.h> using namespace std; int main() {int n…

vs编译cpp时设置排除项

cpp编译排除 一个c++文件不需要被编译但还保留在工程中(阅读),可使用ExcludedFromBuild,有两种方法实现:图形化操作 改vs的项目配置文件图形化操作 在vs的资源管理器选中文件 - 右键 - 属性 - 切到当前的编译配置项(debug/release),有个选项【从生成中排除】,选择为是…

纪念程云大侠

与程云兄的缘份,起始于Delphi大富翁论坛,因 “程云的一堆SQL”而结缘,在论坛发起的第二次(玉渊潭)和第三次(香山)大富翁聚会中逐渐相熟。自2002年5月3日那场坛友初聚起,加上中间各种小聚,至近年来的4年多共事时光,不经意间,二十余载岁月已悄然流逝,往昔匆匆,仿若弹…

css第三天案例练习

案例一:新闻详情 字体颜色:color 字体大小:font-size 段落开头空两行:font-indent:2em 水平居中:图片(出错点)/文字text-align:center 字体粗细:font-weight:400(取消加粗)案例二:css简介 超链接设置格式

DVR4 pg walkthrough Intermediate window

nmap ┌──(root㉿kali)-[~/lab] └─# nmap -p- -A -sS 192.168.219.179 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-15 04:22 UTC Stats: 0:00:22 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 34.76% d…

计算机网络课程笔记

计算机网络课程 该笔记于 2024年12月15日15:14:02 编写 常用命令以及简写完整命令 简写形式 解释configure terminal conf t 进入全局配置模式enable en enableexit ex 退出当前模式hostname host 重启设备interface int 进入接口配置模式shutdown shut 禁用接口no shutdown no…

监测预警智能分析中心建设项目方案

随着科技的不断进步,地理信息与遥感技术在国家治理、环境保护、灾害预警等领域发挥着越来越重要的作用。监测预警智能分析中心的建设,旨在通过集成先进的遥感技术、地理信息系统(GIS)、大数据分析和人工智能(AI)技术,实现对环境变化、灾害风险的实时监测和智能预警。本文…

2024-2025-1 20241421《计算机基础与程序设计》第十二周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计 这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十二周作业 这个作业的目标 复习巩固前面所学的内容 作业正文 https://www.cnblogs.com/118qa/p/18608015 教材学习内容总结 一、文件的基本概念 文件是存储在外…

Three.js案例-360全景房看

在 360 看房功能中,我们需要在浏览器中创建一个类似虚拟现实的场景,使得用户能够查看环境的每一个角落。这一功能的实现本质上是利用 球体映射技术,即通过将全景图作为纹理贴图映射到一个反向的球体上,用户可以通过旋转视角来“环顾四周”。 我们先来看一下效果 ![file](Ma…

性能测试-内存溢出时的分析工具使用

下载内存分析工具地址:https://eclipse.dev/mat/downloads.phphp)下载对应的版本,我这里使用的windows的就下载windows版本的包,下载完成后解压配置启动时的jdk的依赖,目前1.15.0版本的需要jdk17以上,我们在启动时需要手工修改MemoryAnalyzer.ini文件,添加指定的jdk的本地…