帝可得智能售货机运营管理系统

news2024/11/15 10:38:12

1.项目介绍

帝可得是一个基于物联网概念下的智能售货机运营管理系统

应用场景:智能家居、共享充电中、智能售货机

智能售货机的优势在于其自我管理能力

  • 物联网技术:像是售货机的顺风耳和千里眼。

  • 智能分析与推荐

  • 人员设备绑定管理

  • 移动支付支持

  • 线上线下融合(OMO):顾客可以在线上浏览商品,然后直接在售货机上购买,或者在售货机上看到喜欢的商品后,直接在线上下单。

1.1售货机术语

区域管理: 为了更高效地进行经营管理,公司将运营范围划分为若干个逻辑区域。这些区域的划分基于业务需求,可能与地理上的行政区域有所区别,以确保更合理的资源分配和更高效的运营管理。

点位选择: 点位指的是智能售货机的具体放置位置。选择点位时,我们会考虑人流量、目标顾客群体、可见度以及便利性等因素,以最大化售货机的使用效率和顾客的购买体验。

售货机功能: 智能售货机就像是一个自动的小店,里面摆满了各种商品。顾客想要什么,直接在机器上选,然后机器就会把商品送到他们手中,就像是一个自动化的仓库。

货道设计:售货机里面的货道,你可以想象成超市里的那种货架。每一层都有好几个位置可以放商品,这样就能放很多种不同的商品,而且每一层都能放很多,这样顾客的选择就会更多。

1.2平台管理

平台管理员:主要作用有基础数据的管理和创建工单排除员工完成维修或补货。

1.3产品原型

帝可得项目点击链接立即查看 腾讯 CoDesign - 腾讯 CoDesign

1.4库表设计

2.初始AI

2.1AIGC

AIGC(AI Generated Content):AIGC是AI领域的一个应用分支,专注于利用AI技术自动生成内容,包括文本,代码,图片,音频,视频。

AI大模型:通常指的是具有大量参数的深度学习模型,经过大量数据训练,具备复杂计算能力的人工智能系统,它们能够执行多种高级任务,其中包括内容生成。eg:通义千问,智谱清言。

2.2提示工程

1.Prompt

提示(Prompt)是我们对大模型提出的问题。

2.提示工程

提示工程(Prompt Engineering)也被称为上下文提示,它涉及到设计和优化输入文本,也就是Prompt,来引导AI模型生成预期的输出。

简单来说,就像是给AI出一个好问题,让它给我们一个满意的答案。

3.Prompt的组成

  • 角色:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」

  • 指示:对任务进行描述

  • 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中)

  • 例子:必要时给出举例,[实践证明其对输出正确性有帮助]

  • 输入:任务的输入信息;在提示词中明确的标识出输入

  • 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、Java)

例如:表结构,生成数据库说明文档,生成代码,生成代码流程图

3.项目搭建

3.1搭建后端项目

1.初始化项目

Git下载

通过idea克隆源码,仓库地址:dkd-parent: 帝可得后台管理系统

Maven构建

使用idea打开项目(get from VCS)后,等待环境检查(主要是Maven下载项目依赖)

2.MySQL相关

导入sql

1、创建数据库create schema dkd;

2、执行sql脚本文件,完成导入

配置信息

dkd-admin模块下,编辑resources目录下的application-druid.yml,修改数据库连接

3.Redis相关

启动

在redis解压目录下,编辑redis.windows.conf配置文件,设置redis密码

在redis解压目录下,执行redis-server.exe redis.windows.conf启动

配置信息

dkd-admin模块下,resources目录下的application.yml,设置redis密码等相关信息

4.项目运行

dkd-admin模块下,运行com.ruoyi.DkdApplication.java

3.2搭建前端项目

1.初始化项目

通过vscode克隆源码,仓库地址:dkd-vue: 帝可得前端

需要关闭文件夹

2.安装依赖

右上角控制面板

npm install

3.项目运行

npm run dev

4.点位管理

4.1流程

4.2库表设计

你是一位软件工程师,帮我生成MySQL的表结构
需求如下:
1,区域表,表名tb_region,字段有主键id、区域名称
2,合作商表,表名tb_partner,字段有主键id、合作商名称、联系人、联系电话、分成比例(int类型)、账号、密码
3,点位表,表名tb_node,字段有主键id、点位名称、详细地址、商圈类型(int类型)
其他要求:
1,每张表中都有创建时间(create_time)、修改时间(date_time)、创建人(create_by)、修改人(update_by)、备注(remark)这些字段
2,每张表的主键都是自增的
3,区域与点位是一对多的关系,合作商与点位是一对多的关系,请用字段表示出来,并建立外键约束
4,请为所有字段都添加上comment
5,帮我给生成的表中插入一些北京城市相关区域、点位、合作商的测试数据

4.3步骤

①创建目录菜单

创建点位管理目录菜单

②添加数据字典

先创建商圈的字典类型

再创建商圈的字典数据

③配置代码生成信息

导入三张表(代码生成器)

④下载代码并导入项目

导入后端代码:右键main

4.4区域管理改造

1.参考页面原型,完成基础布局展示改造

将主键改为序号并升序排序

删除和新增的图标进行删除

2.在区域列表查询中,需要显示每个区域的点位数

实现思路

(1)同步存储:在区域表中有点位数的字段,当点位发生变化时,同步区域表中的点位数。

  • 优点:由于是单表查询操作,查询列表效率最高。

  • 缺点:需要在点位增删改时修改区域表中的数据,有额外的开销,数据也可能不一致。

(2)关联查询:编写关联查询语句,在mapper 层封装。

  • 优点:实时查询,数据100%正确,不需要单独维护。

  • 缺点:SQL语句较复杂,如果数据量大,性能比较低。

区域和点位表,记录个数都不是很多,所以我们采用关联查询这种方案。

1.SQL查询:先聚合统计每个区域的点位数,然后与区域表进行关联查询

-- 传统模式
-- 1.先聚合统计每个区域下的点位数
-- 确定查询表 tb_node
-- 确定分组字段 region_id
select region_id,count(*) as node_count from tb_node group by region_id;
-- 2.然后与区域表进行关联查询
select r.id,r.region_name,r.remark,ifnull(n.node_count,0) as node_count from tb_region r
    left join (select region_id,count(*) as node_count from tb_node group by region_id) n on r.id=n.region_id;

-- AI辅助编程模式
-- 查询区域表所有的信息,需要显示每个区域的点位数
SELECT r.*, COUNT(n.id) AS node_count FROM tb_region r LEFT JOIN tb_node n ON r.id = n.region_id GROUP BY r.id;

2.根据接口文档和sql创建RegionVo(返回给前端的类)

创建包VO

创建RegionVo类

在mapper和xml文件中增加对应的方法

用全类名

改成小写的long

字段别名r.region_name

Mybatis开启自动驼峰命名转换admin-mybatis

然后依次修改service serviceimpl mapper层的方法

4.5合作商管理改造

1.前端修改根据页面原型

2.在PartnerServiceImpl的新增方法中修改将数据库中的密码加密,不能直接看到

使用SecurityUtil工具类,对密码加密,增加系统安全性,避免泄露风险

3.查看详情按钮

1.前端改造

2.查询合作商列表,显示点位数(与区域列表实现方式相同。ctrl+f9实现热部署 

1.SQL(联表查询)

2.PartnerVo

3.mapper和xml

sql语句后面不能加;

因为用到了分页查询,后面还会自动拼接limit

4.Controller

4.重置密码

开发流程

后端:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

下一代皮克斯:AI如何融合电影与游戏

故事是人类体验的核心,通过故事我们理解世界、寻找意义并与他人建立联系。技术的进步不断推动着故事叙述的形式,从迪士尼的多平面摄影机到皮克斯的3D图形技术,每一次技术革命都带来了故事叙述的新方式。 游戏:现代叙事的前沿 今天,有两个主要的趋势正在加速下一代叙事公…

球球大作战

代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdbool.h> #include<graphics.h> #include<stdlib.h> #include<conio.h> #include<time.h>//随机数库文件 #include<math.h> #include<tchar.h…

单点登录CAS

CAS&#xff08;Central Authentication Service&#xff09;是耶鲁大学发起的一个开源项目&#xff0c;旨在为Web应用系统提供一种可靠的单点登录解决方案。CAS服务器独立部署&#xff0c;作为独立的Web应用&#xff0c;负责处理用户的认证请求并颁发票据&#xff08;Ticket&a…

P0.7全倒装COB超微小间距LED显示屏厂家已量产,加速高清显示的发展

随着P0.7全倒装COB超微小间距LED显示屏技术的成功量产&#xff0c;这一里程碑式的成就不仅标志着高清显示技术迈入了全新纪元&#xff0c;更预示着未来视觉体验将迎来前所未有的变革。各大应用场景&#xff0c;如指挥中心、会议中心、大型活动直播、高端影院乃至家庭娱乐&#…

如何高效学习越南语,求方法,急!!!

高效学习越南语需要掌握基础语法和词汇&#xff0c;并通过将自己置于语言环境中来加强实际应用。与母语为越南语的人进行语言交换&#xff0c;利用语言学习应用&#xff0c;制定学习计划&#xff0c;以及进行阅读和写作练习都是提高语言能力的有效方法。同时&#xff0c;通过听…

【JavaSE基础】Java 基础知识

Java 转义字符 Java 常用的转义字符 在控制台&#xff0c;输入 tab 键&#xff0c;可以实现命令补全 转义字符含义作用\t制表符一个制表位&#xff0c;实现对齐的功能\n &#xff1a;换行符\n换行符一个换行符\r回车符一个回车键 System.out.println(“韩顺平教育\r 北京”);&…

C语言第一周课

目录 1.程序设计的基本概念是什么?C语言是什么?算法是什么? 2.开发环境 3.第一个C语言程序 4.搭建VC6编译环境 5.实际操作,完成第一个C语言程序 6.体验在线编译环境 1.程序设计的基本概念是什么?C语言是什么?算法是什么? C语言是一种较早的程序设计语言&#xff0c…

DORIS - DORIS行存编码格式JSONB

是什么&#xff1f; JSONB(JavaScript Object Notation Binary)是PostgreSQL、MySQL数据库中的一种数据类型&#xff0c;用于存储和查询JSON数据。它提供了在数据库中存储和操作JSON数据的能力&#xff0c;使得数据库能够更好地处理半结构化数据。JSONB是一种半结构化的数据雷…

Hive SQL基础语法及查询实践

目录 基础语法 1. 官网地址 2. 查询语句语法 基本查询&#xff08;Select…From&#xff09; 数据准备 &#xff08;0&#xff09;原始数据 &#xff08;1&#xff09;创建部门表 &#xff08;2&#xff09;创建员工表 &#xff08;3&#xff09;导入数据 全表和特定列查…

HNU-2023电路与电子学-实验1

写在前面&#xff1a; 这是电路与电子学课程的第一次实验&#xff0c;按照指导书的需求在Multisim软件搭建一个电路传感器模型&#xff0c;难度较小&#xff0c;细心完成就没有问题。 小tips&#xff1a;22级实验是采用上传到测试平台来进行功能检测&#xff0c;如果不通过则…

嵌入式s3c2240: ADC

ADC &#xff1a;模数转换 10 位 CMOS ADC &#xff08;模 / 数转换器&#xff09;是一个 8 通道模拟输入的再循环类型设备。其转换模拟输入信号为 10 位二进制数字编码&#xff0c;最大转换率为 2.5MHz A/D 转换器时钟下的 500 KSPS 。 模拟&#xff1a;连续信号 数字…

乘法问题c++

题目描述 小 A 最近刚刚学习了乘法&#xff0c;为了帮助他练习&#xff0c;我们给他若干个正整数&#xff0c;并要求他将这些数乘起来。 对于大部分题目&#xff0c;小 A 可以精准地算出答案&#xff0c;不过&#xff0c;如果这些数的乘积超过 &#xff0c;小 A 就不会做了。 …

MySQL学习--加强

流程控制函数 mysql表查询--加强 分页查询

5款ai智能改写工具,自动改写文章效率惊人

在这个信息迭代加速的时代&#xff0c;ai智能改写工具犹如一把魔法钥匙&#xff0c;轻轻一转&#xff0c;便能开启文章改写的大门。想象一下&#xff0c;那些曾经费尽心思打磨的文章&#xff0c;如今只需几秒钟&#xff0c;就能以全新的面貌示人&#xff0c;这不仅是一场效率的…

PDF样本图册转换为一个链接,随时打开无需印刷

想象一下&#xff0c;您手中有一本厚重的样本图册&#xff0c;里面包含了丰富多样的内容&#xff0c;如产品介绍、项目方案、学术论文等。在过去&#xff0c;您需要逐一翻阅、筛选&#xff0c;甚至为了便于查看&#xff0c;不得不将其印刷出来。如今&#xff0c;借助先进的数字…

python tkinter 文本类组件

Label组件 Label(win,text文本,justifycenter) win指定Label组件的父容器&#xff1b;text指定标签中的文本&#xff1b;justify指定标签中拥有多行文本时&#xff0c;最后一行文本的对齐方式。 from tkinter import * from PIL import Image,ImageTkroot Tk() root.title(…

栈 | 队列

系统栈主要保存以下内容&#xff1a; 1.局部变量&#xff0c;2.函数的形参和返回值 3.函数的调用关系 一、栈 1.基本概念 栈是一种特殊的线性表&#xff0c;具有线性结构。表尾为栈顶&#xff0c;表头为栈顶。遵循先进后出原则&#xff0c;只能在栈顶进行插入和删除操作。 …

KADAL | Kriging代理模型Python工具箱推荐

用于分析、设计优化和探索的Kriging工具箱 简介Required packagesQuick ExamplesContact特别感谢&#xff1a;参考资料 简介 用于分析、设计优化和探索的克里金法 (Kriging for Analysis, Design optimization, And expLoration, KADAL) 是由万隆理工学院 (Institut Teknologi…

Linux——解压大型zip文件报错:bad zipfile offset (local header sig) 的解决方法

一、现象描述 完整一行报错信息&#xff1a; error: invalid compressed data to inflate file #14: bad zipfile offset (local header sig) 二、解决办法 利用 -F 去修复&#xff1a; zip -F xxx.zip --out large.zip得到&#xff1a; 解压&#xff1a; unzip large.zi…

COI实验室技能:图像到图像的深度学习开发框架(pytorch版)

Basic deep learning framework for image-to-image 这个开发框架旨在帮助科研人员快速地实现图像到图像之间的模型开发。 github连接&#xff1a;https://github.com/SituLab/Basic-deep-learning-framework-for-image-to-image 目录 1模型开发 1-1克隆项目到本地1-2深度学…