当前位置: 首页 > news >正文

基于SpringBoot的超市信息管理系

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

随着我国经济的不断发展,许多零售企业在发展过程中面临着业务不断增长,而管理水平相对滞后的困境。尤其是许多企业在逐年经营过程中,积累了大量历史数据,但是信息比较分散、相互独立。在信息技术迅猛发展的今天,处于竞争性行业的中小型零售企业如何在未来的市场竞争中借助信息化实时掌握营销动态,不断提升服务水平,提高资源配置水平和核心竞争力,成为他们不得不面对的问题。
在零售企业中引入超市信息管理系统,利用收银机将超市中各种商品的进货、退货、销售等信息输入电脑,使得经营管理者能够及时掌控经营信息,作出合适的各种采购及货物库存决策。
超市信息管理系统,可完成商品采购订货、销售、盘点库存、财务分析等管理功能,并对商品的购销存状态实时跟踪记录。本论文主要介绍超市信息管理系统中的系统登录、商品录入、库存管理、商品销售等部分内容,以展现设计一个完整信息管理系统的思路和步骤。

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. Spring:Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
  3. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  4. Mybatis:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
    iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。
  5. Thymeleaf:thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。

Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
6. Redis:redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

1:‘销售账单表’(bill)

字段名类型默认值列注释
idbigintNULL账单项目编号
product_idvarcharNULL商品编号
product_namevarcharNULL商品名称
category_idbigintNULL分类编号
category_namevarcharNULL所属分类
purchase_pricedecimalNULL进货价
sale_pricedecimalNULL销售价
profitsdecimalNULL净利润
numberbigintNULL购买数量
create_timedatetimeNULL创建日期

2:‘代码生成业务表’(gen_table)

字段名类型默认值列注释
table_idbigintNULL编号
table_namevarcharNULL表名称
table_commentvarcharNULL表描述
sub_table_namevarcharNULL关联子表的表名
sub_table_fk_namevarcharNULL子表关联的外键名
class_namevarcharNULL实体类名称
tpl_categoryvarcharNULL使用的模板(crud单表操作 tree树表操作 sub主子表操作)
package_namevarcharNULL生成包路径
module_namevarcharNULL生成模块名
business_namevarcharNULL生成业务名
function_namevarcharNULL生成功能名
function_authorvarcharNULL生成功能作者
gen_typecharNULL生成代码方式(0zip压缩包 1自定义路径)
gen_pathvarcharNULL生成路径(不填默认项目路径)
optionsvarcharNULL其它生成选项
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

3:‘代码生成业务表字段’(gen_table_column)

字段名类型默认值列注释
column_idbigintNULL编号
table_idvarcharNULL归属表编号
column_namevarcharNULL列名称
column_commentvarcharNULL列描述
column_typevarcharNULL列类型
java_typevarcharNULLJAVA类型
java_fieldvarcharNULLJAVA字段名
is_pkcharNULL是否主键(1是)
is_incrementcharNULL是否自增(1是)
is_requiredcharNULL是否必填(1是)
is_insertcharNULL是否为插入字段(1是)
is_editcharNULL是否编辑字段(1是)
is_listcharNULL是否列表字段(1是)
is_querycharNULL是否查询字段(1是)
query_typevarcharNULL查询方式(等于、不等于、大于、小于、范围)
html_typevarcharNULL显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)
dict_typevarcharNULL字典类型
sortintNULL排序
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间

4:‘商品表’(product)

字段名类型默认值列注释
auto_idintNULL商品分类编号
idvarcharNULL条形码
category_idbigintNULL商品分类编号
provider_idbigintNULL供应商编号
namevarcharNULL商品名称
factory_addressvarcharNULL生产地址
purchase_pricedecimalNULL进货价
sale_pricedecimalNULL销售价
stockintNULL库存

5:‘商品分类表’(product_category)

字段名类型默认值列注释
idintNULL商品分类编号
namevarcharNULL商品分类名称

6:‘供应商表’(product_provider)

字段名类型默认值列注释
idbigintNULL供应商编号
namevarcharNULL供应商名称
contact_namevarcharNULL联系人姓名
contact_phonevarcharNULL联系人电话
addressvarcharNULL供应商地址

7:‘Blob类型的触发器表’(qrtz_blob_triggers)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
trigger_namevarcharNULLqrtz_triggers表trigger_name的外键
trigger_groupvarcharNULLqrtz_triggers表trigger_group的外键
blob_datablobNULL存放持久化Trigger对象

8:‘日历信息表’(qrtz_calendars)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
calendar_namevarcharNULL日历名称
calendarblobNULL存放持久化calendar对象

9:‘Cron类型的触发器表’(qrtz_cron_triggers)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
trigger_namevarcharNULLqrtz_triggers表trigger_name的外键
trigger_groupvarcharNULLqrtz_triggers表trigger_group的外键
cron_expressionvarcharNULLcron表达式
time_zone_idvarcharNULL时区

10:‘已触发的触发器表’(qrtz_fired_triggers)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
entry_idvarcharNULL调度器实例id
trigger_namevarcharNULLqrtz_triggers表trigger_name的外键
trigger_groupvarcharNULLqrtz_triggers表trigger_group的外键
instance_namevarcharNULL调度器实例名
fired_timebigintNULL触发的时间
sched_timebigintNULL定时器制定的时间
priorityintNULL优先级
statevarcharNULL状态
job_namevarcharNULL任务名称
job_groupvarcharNULL任务组名
is_nonconcurrentvarcharNULL是否并发
requests_recoveryvarcharNULL是否接受恢复执行

11:‘任务详细信息表’(qrtz_job_details)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
job_namevarcharNULL任务名称
job_groupvarcharNULL任务组名
descriptionvarcharNULL相关介绍
job_class_namevarcharNULL执行任务类名称
is_durablevarcharNULL是否持久化
is_nonconcurrentvarcharNULL是否并发
is_update_datavarcharNULL是否更新数据
requests_recoveryvarcharNULL是否接受恢复执行
job_datablobNULL存放持久化job对象

12:‘存储的悲观锁信息表’(qrtz_locks)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
lock_namevarcharNULL悲观锁名称

13:‘暂停的触发器表’(qrtz_paused_trigger_grps)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
trigger_groupvarcharNULLqrtz_triggers表trigger_group的外键

14:‘调度器状态表’(qrtz_scheduler_state)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
instance_namevarcharNULL实例名称
last_checkin_timebigintNULL上次检查时间
checkin_intervalbigintNULL检查间隔时间

15:‘简单触发器的信息表’(qrtz_simple_triggers)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
trigger_namevarcharNULLqrtz_triggers表trigger_name的外键
trigger_groupvarcharNULLqrtz_triggers表trigger_group的外键
repeat_countbigintNULL重复的次数统计
repeat_intervalbigintNULL重复的间隔时间
times_triggeredbigintNULL已经触发的次数

16:‘同步机制的行锁表’(qrtz_simprop_triggers)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
trigger_namevarcharNULLqrtz_triggers表trigger_name的外键
trigger_groupvarcharNULLqrtz_triggers表trigger_group的外键
str_prop_1varcharNULLString类型的trigger的第一个参数
str_prop_2varcharNULLString类型的trigger的第二个参数
str_prop_3varcharNULLString类型的trigger的第三个参数
int_prop_1intNULLint类型的trigger的第一个参数
int_prop_2intNULLint类型的trigger的第二个参数
long_prop_1bigintNULLlong类型的trigger的第一个参数
long_prop_2bigintNULLlong类型的trigger的第二个参数
dec_prop_1decimalNULLdecimal类型的trigger的第一个参数
dec_prop_2decimalNULLdecimal类型的trigger的第二个参数
bool_prop_1varcharNULLBoolean类型的trigger的第一个参数
bool_prop_2varcharNULLBoolean类型的trigger的第二个参数

17:‘触发器详细信息表’(qrtz_triggers)

字段名类型默认值列注释
sched_namevarcharNULL调度名称
trigger_namevarcharNULL触发器的名字
trigger_groupvarcharNULL触发器所属组的名字
job_namevarcharNULLqrtz_job_details表job_name的外键
job_groupvarcharNULLqrtz_job_details表job_group的外键
descriptionvarcharNULL相关介绍
next_fire_timebigintNULL上一次触发时间(毫秒)
prev_fire_timebigintNULL下一次触发时间(默认为-1表示不触发)
priorityintNULL优先级
trigger_statevarcharNULL触发器状态
trigger_typevarcharNULL触发器的类型
start_timebigintNULL开始时间
end_timebigintNULL结束时间
calendar_namevarcharNULL日程表名称
misfire_instrsmallintNULL补偿执行的策略
job_datablobNULL存放持久化job对象

18:‘参数配置表’(sys_config)

字段名类型默认值列注释
config_idintNULL参数主键
config_namevarcharNULL参数名称
config_keyvarcharNULL参数键名
config_valuevarcharNULL参数键值
config_typecharNULL系统内置(Y是 N否)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

19:‘部门表’(sys_dept)

字段名类型默认值列注释
dept_idbigintNULL部门id
parent_idbigintNULL父部门id
ancestorsvarcharNULL祖级列表
dept_namevarcharNULL部门名称
order_numintNULL显示顺序
leadervarcharNULL负责人
phonevarcharNULL联系电话
emailvarcharNULL邮箱
statuscharNULL部门状态(0正常 1停用)
del_flagcharNULL删除标志(0代表存在 2代表删除)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间

20:‘字典数据表’(sys_dict_data)

字段名类型默认值列注释
dict_codebigintNULL字典编码
dict_sortintNULL字典排序
dict_labelvarcharNULL字典标签
dict_valuevarcharNULL字典键值
dict_typevarcharNULL字典类型
css_classvarcharNULL样式属性(其他样式扩展)
list_classvarcharNULL表格回显样式
is_defaultcharNULL是否默认(Y是 N否)
statuscharNULL状态(0正常 1停用)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

21:‘字典类型表’(sys_dict_type)

字段名类型默认值列注释
dict_idbigintNULL字典主键
dict_namevarcharNULL字典名称
dict_typevarcharNULL字典类型
statuscharNULL状态(0正常 1停用)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

22:‘定时任务调度表’(sys_job)

字段名类型默认值列注释
job_idbigintNULL任务ID
job_namevarcharNULL任务名称
job_groupvarcharNULL任务组名
invoke_targetvarcharNULL调用目标字符串
cron_expressionvarcharNULLcron执行表达式
misfire_policyvarcharNULL计划执行错误策略(1立即执行 2执行一次 3放弃执行)
concurrentcharNULL是否并发执行(0允许 1禁止)
statuscharNULL状态(0正常 1暂停)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注信息

23:‘定时任务调度日志表’(sys_job_log)

字段名类型默认值列注释
job_log_idbigintNULL任务日志ID
job_namevarcharNULL任务名称
job_groupvarcharNULL任务组名
invoke_targetvarcharNULL调用目标字符串
job_messagevarcharNULL日志信息
statuscharNULL执行状态(0正常 1失败)
exception_infovarcharNULL异常信息
create_timedatetimeNULL创建时间

24:‘系统访问记录’(sys_logininfor)

字段名类型默认值列注释
info_idbigintNULL访问ID
login_namevarcharNULL登录账号
ipaddrvarcharNULL登录IP地址
login_locationvarcharNULL登录地点
browservarcharNULL浏览器类型
osvarcharNULL操作系统
statuscharNULL登录状态(0成功 1失败)
msgvarcharNULL提示消息
login_timedatetimeNULL访问时间

25:‘菜单权限表’(sys_menu)

字段名类型默认值列注释
menu_idbigintNULL菜单ID
menu_namevarcharNULL菜单名称
parent_idbigintNULL父菜单ID
order_numintNULL显示顺序
urlvarcharNULL请求地址
targetvarcharNULL打开方式(menuItem页签 menuBlank新窗口)
menu_typecharNULL菜单类型(M目录 C菜单 F按钮)
visiblecharNULL菜单状态(0显示 1隐藏)
is_refreshcharNULL是否刷新(0刷新 1不刷新)
permsvarcharNULL权限标识
iconvarcharNULL菜单图标
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

26:‘通知公告表’(sys_notice)

字段名类型默认值列注释
notice_idintNULL公告ID
notice_titlevarcharNULL公告标题
notice_typecharNULL公告类型(1通知 2公告)
notice_contentvarcharNULL公告内容
statuscharNULL公告状态(0正常 1关闭)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

27:‘操作日志记录’(sys_oper_log)

字段名类型默认值列注释
oper_idbigintNULL日志主键
titlevarcharNULL模块标题
business_typeintNULL业务类型(0其它 1新增 2修改 3删除)
methodvarcharNULL方法名称
request_methodvarcharNULL请求方式
operator_typeintNULL操作类别(0其它 1后台用户 2手机端用户)
oper_namevarcharNULL操作人员
dept_namevarcharNULL部门名称
oper_urlvarcharNULL请求URL
oper_ipvarcharNULL主机地址
oper_locationvarcharNULL操作地点
oper_paramvarcharNULL请求参数
json_resultvarcharNULL返回参数
statusintNULL操作状态(0正常 1异常)
error_msgvarcharNULL错误消息
oper_timedatetimeNULL操作时间

28:‘岗位信息表’(sys_post)

字段名类型默认值列注释
post_idbigintNULL岗位ID
post_codevarcharNULL岗位编码
post_namevarcharNULL岗位名称
post_sortintNULL显示顺序
statuscharNULL状态(0正常 1停用)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

29:‘角色信息表’(sys_role)

字段名类型默认值列注释
role_idbigintNULL角色ID
role_namevarcharNULL角色名称
role_keyvarcharNULL角色权限字符串
role_sortintNULL显示顺序
data_scopecharNULL数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
statuscharNULL角色状态(0正常 1停用)
del_flagcharNULL删除标志(0代表存在 2代表删除)
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

30:‘角色和部门关联表’(sys_role_dept)

字段名类型默认值列注释
role_idbigintNULL角色ID
dept_idbigintNULL部门ID

31:‘角色和菜单关联表’(sys_role_menu)

字段名类型默认值列注释
role_idbigintNULL角色ID
menu_idbigintNULL菜单ID

32:‘用户信息表’(sys_user)

字段名类型默认值列注释
user_idbigintNULL用户ID
dept_idbigintNULL部门ID
login_namevarcharNULL登录账号
user_namevarcharNULL用户昵称
user_typevarcharNULL用户类型(00系统用户 01注册用户)
emailvarcharNULL用户邮箱
phonenumbervarcharNULL手机号码
sexcharNULL用户性别(0男 1女 2未知)
avatarvarcharNULL头像路径
passwordvarcharNULL密码
saltvarcharNULL盐加密
statuscharNULL帐号状态(0正常 1停用)
del_flagcharNULL删除标志(0代表存在 2代表删除)
login_ipvarcharNULL最后登录IP
login_datedatetimeNULL最后登录时间
pwd_update_datedatetimeNULL密码最后更新时间
create_byvarcharNULL创建者
create_timedatetimeNULL创建时间
update_byvarcharNULL更新者
update_timedatetimeNULL更新时间
remarkvarcharNULL备注

33:‘在线用户记录’(sys_user_online)

字段名类型默认值列注释
sessionIdvarcharNULL用户会话id
login_namevarcharNULL登录账号
dept_namevarcharNULL部门名称
ipaddrvarcharNULL登录IP地址
login_locationvarcharNULL登录地点
browservarcharNULL浏览器类型
osvarcharNULL操作系统
statusvarcharNULL在线状态on_line在线off_line离线
start_timestampdatetimeNULLsession创建时间
last_access_timedatetimeNULLsession最后访问时间
expire_timeintNULL超时时间,单位为分钟

34:‘用户与岗位关联表’(sys_user_post)

字段名类型默认值列注释
user_idbigintNULL用户ID
post_idbigintNULL岗位ID

35:‘用户和角色关联表’(sys_user_role)

字段名类型默认值列注释
user_idbigintNULL用户ID
role_idbigintNULL角色ID

五、功能模块:

  1. 登录:通过管理员给与的账号登录进入到系统中,不同的账号拥有不同的权限,而权限不同登录进系统所看到的和能够使用的功能也不一样

    登录注册

  2. 系统首页:在系统首页可以查看系统的数据统计信息,系统的用户订单收入等多维度的统计信息

    系统首页

  3. 超市收银台:在超市收银台中输入商品信息和数量系统回自己统计价格,在结账后系统回将金额统计进入销售账单中,并且同步到系统首页的大屏统计中,同时对应的库存也会对应的减少

    超市收银台

  4. 销售账单:销售账单中为收银台的每一笔记账信息

    销售账单

  5. 库存管理:

    库存管理

  6. 商品分类:在商品分类管理中系统回将每个商品进行分类,而可以选择的类型则是在商品分类中进行管理

    商品分类

  7. 供应商:供应商列表对是对超市的供应商做了一个清单管理,超市人员可以很直观的了解超市的供应商信息

    供应商

  8. 数据权限管理:在超市管理中有用户,角色,菜单,部门,岗位等信息的管理,他们的关系是每个用户都拥有有属于的部门,并且管理员可以通过设置不同的角色,角色拥有的菜单和数据权限,用户拥有不同的角色来达到对系统的额权限进行管理.

    数据权限管理

12

10

9

8

六、代码示例:

;@Controller
@RequestMapping("/system/checkout")
public class CheckOutController extends BaseController {private String prefix = "system/checkout";@Autowiredprivate CheckoutService checkoutService;//  @RequiresPermissions("system:checkout:view")@GetMapping()public String product() {return prefix + "/checkout";}/*** 新增保存商品分类*/@PostMapping("/tmp-bill-item/add")@ResponseBodypublic AjaxResult saveTempBillItem(AddTempBillItemDto addTempBillItemDto){User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();boolean success = checkoutService.saveTempBillItem(userId, addTempBillItemDto);if (success) {return AjaxResult.success("添加成功");} else {return AjaxResult.error("找不到商品,请检查商品编号是否正确");}}/*** 获取数据集合*/@PostMapping("/tmp-bill-item")@ResponseBodypublic TableDataInfo getTempBillItem() {User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();return getDataTable(checkoutService.getTempBillItems(userId));}/*** 获取数据集合*/@GetMapping("/search-product")@ResponseBodypublic AjaxResult collection(@RequestParam("id") String id){AjaxResult ajax = new AjaxResult();ajax.put("result", checkoutService.matchProductSuggestByProductId(id));return ajax;}/*** 获取数据集合*/@GetMapping("/total-should-pay")@ResponseBodypublic AjaxResult countTempBillItemsTotalShouldPay() {User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();AjaxResult ajax = new AjaxResult();ajax.put("result", checkoutService.countTempBillItemsTotalShouldPay(userId).toString());return ajax;}@GetMapping("/tmp-bill-item/remove")@ResponseBodypublic AjaxResult removeTempBillItem(@RequestParam("index") int index){User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();checkoutService.removeTempBillItem(userId, index);return AjaxResult.success("删除成功");}@GetMapping("/tmp-bill-item/close")@ResponseBodypublic AjaxResult closeTempBillItem(){User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();checkoutService.closeTempBillItem(userId);return AjaxResult.success("删除成功");}/*确认结算*/@GetMapping("/tmp-bill-item/submit")@ResponseBodypublic AjaxResult submitTempBillItem(){User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();checkoutService.submitTempBillItem(userId);return AjaxResult.success("结算成功");}
}@Controller
@RequestMapping("/system/product")
public class ProductController extends BaseController
{private String prefix = "system/product";@Autowiredprivate IProductService productService;@RequiresPermissions("system:product:view")@GetMapping()public String product(){return prefix + "/product";}/*** 查询商品列表*/@RequiresPermissions("system:product:list")@PostMapping("/list")@ResponseBodypublic TableDataInfo list(Product product){startPage();List<Product> list = productService.selectProductList(product);return getDataTable(list);}/*** 导出商品列表*/@RequiresPermissions("system:product:export")@Log(title = "商品", businessType = BusinessType.EXPORT)@PostMapping("/export")@ResponseBodypublic AjaxResult export(Product product){List<Product> list = productService.selectProductList(product);ExcelUtil<Product> util = new ExcelUtil<Product>(Product.class);return util.exportExcel(list, "商品数据");}/*** 新增商品*/@GetMapping("/add")public String add(){return prefix + "/add";}/*** 新增保存商品*/@RequiresPermissions("system:product:add")@Log(title = "商品", businessType = BusinessType.INSERT)@PostMapping("/add")@ResponseBodypublic AjaxResult addSave(Product product){return toAjax(productService.insertProduct(product));}/*** 修改商品*/@RequiresPermissions("system:product:edit")@GetMapping("/edit/{id}")public String edit(@PathVariable("id") String id, ModelMap mmap){Product product = productService.selectProductById(id);mmap.put("product", product);return prefix + "/edit";}/*** 修改保存商品*/@RequiresPermissions("system:product:edit")@Log(title = "商品", businessType = BusinessType.UPDATE)@PostMapping("/edit")@ResponseBodypublic AjaxResult editSave(Product product){return toAjax(productService.updateProduct(product));}/*** 删除商品*/@RequiresPermissions("system:product:remove")@Log(title = "商品", businessType = BusinessType.DELETE)@PostMapping( "/remove")@ResponseBodypublic AjaxResult remove(String ids){return toAjax(productService.deleteProductByIds(ids));}
}

七、论文参考:

论文参考···论文参考图

八、项目总结:

通过对基于springboot的超市信息管理系的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于springboot的超市信息管理系的程序时,
我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,
程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,
借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于springboot的超市信息管理系得以正常运行。
基于springboot的超市信息管理系在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:
(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。
(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于springboot的超市信息管理系中的相关网站更贴合。
(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,
同时对服务器上资源占用的比例进行降低。
基于springboot的超市信息管理系的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。
基于springboot的超市信息管理系的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

九、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻

链接点击直达:下载链接

相关文章:

基于SpringBoot的超市信息管理系

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着我国经济的不断发…...

【计算机组成原理】存储系统

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理计算机组成原理中 存储系统的知识点和值得注意的地方 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以…...

基于SSM的旅游管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

JeecgBoot3.0 漏洞升级 — 快速文档

近几年来&#xff0c;黑客攻击行为呈现出日益复杂和隐蔽的趋势&#xff0c;对个人和组织的安全造成了严重威胁。黑客们不断寻找新的漏洞和安全漏洞&#xff0c;利用各种手段进行网络攻击&#xff0c;包括恶意软件、网络钓鱼、勒索软件等。因此&#xff0c;我们每个人都需要关注…...

6.一维数组——用冒泡法,选择法将5个整数由大到小排序

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码&#xff08;冒泡法&#xff09;程序运行代码&#xff08;选择法&#xff09; 前言 本系列为一维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 用冒泡法将5个整数由大到小排序 二、题目…...

YOLOv8 onnx 文件推理多线程加速视频流

运行环境&#xff1a; MacOS&#xff1a;14.0Python 3.9Pytorch2.1onnx 运行时 模型文件&#xff1a; https://wwxd.lanzouu.com/iBqiA1g49pbc 密码:f40v 下载 best.apk后将后缀名修改为 onnx 即可模型在英伟达 T4GPU 使用 coco128 训练了 200 轮如遇下载不了可私信获取 代码…...

CVE-2017-12615 文件上传

CVE-2017-12615 文件上传 当存在漏洞的Tomcat运行在Windows/Linux主机上&#xff0c; 且启用了HTTP PUT请求方法&#xff08; 例如&#xff0c; 将readonly初始化参数由默认值设置为false&#xff09; &#xff0c; 攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传…...

c++没有返回值的返回值

上面的函数search没有返回值,因为a不等于1,但是输出的时候会输出6.这恰巧是x的值,如果我们希望a不等于1时返回x,那么这种结果反而是正确的.有时候这种错误的代码可能产生正确的结果反而会加大debug难度 int search(int n) { 00007FF66DB723E0 mov dword ptr [rsp8],e…...

全网最全卡方检验汇总

一文整理了卡方检验全部内容&#xff0c;包括卡方检验的定义&#xff08;基本思想、卡方值计算、适用条件分析&#xff09;、卡方检验分类&#xff08;2*2四格表卡方、R*C表格卡方、配对卡方、卡方拟合优度检验、分层卡方&#xff09;、卡方检验如何分析&#xff08;数据格式、…...

Java基础-中级-高级面试题汇(一)

第一部分&#xff1a; Java基础面试题汇总 1.面向对象和面向过程的区别&#xff1f; 面向对象和面向过程是两种不同的编程思想。面向对象是一种以对象为中心的编程思想&#xff0c;将数据和处理数据的方法封装在一起&#xff0c;形成一个类。程序通过创建对象来调用类中的方法…...

数据结构 / day04 作业

1. 单链表任意位置删除, 单链表任意位置修改, 单链表任意位置查找, 单链表任意元素查找, 单链表任意元素修改, 单链表任意元素删除, 单链表逆置 // main.c#include "head.h"int main(int argc, const char *argv[]) {Linklist headNULL; //head 是头指针// printf(&q…...

Java核心知识点整理大全20-笔记

目录 17. 设计模式 17.1.1. 设计原则 17.1.24. 解释器模式 18. 负载均衡 18.1.1.1. 四层负载均衡&#xff08;目标地址和端口交换&#xff09; 18.1.1.2. 七层负载均衡&#xff08;内容交换&#xff09; 18.1.2. 负载均衡算法/策略 18.1.2.1. 轮循均衡&#xff08;Roun…...

Spark---转换算子、行动算子、持久化算子

一、转换算子和行动算子 1、Transformations转换算子 1&#xff09;、概念 Transformations类算子是一类算子&#xff08;函数&#xff09;叫做转换算子&#xff0c;如map、flatMap、reduceByKey等。Transformations算子是延迟执行&#xff0c;也叫懒加载执行。 2)、Transf…...

什么是关系型数据库?

什么是关系型数据库&#xff1f; 关系型数据库&#xff08;RDBMS&#xff09;是建立在关系模型基础上的数据库系统。关系模型是一种数据模型&#xff0c;它表示数据之间的联系&#xff0c;包括一对一、一对多和多对多的关系。在关系型数据库中&#xff0c;数据以表格的形式存储…...

【LeetCode】挑战100天 Day12(热题+面试经典150题)

【LeetCode】挑战100天 Day12&#xff08;热题面试经典150题&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-142.1 题目2.2 题解 三、面试经典 150 题-143.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&…...

ArcGIS10.x系列 Python工具箱教程

ArcGIS10.x系列 Python工具箱教程 目录 1.前提 2.需要了解的资料 3.Python工具箱制作教程 4. Python工具箱具体样例代码&#xff08;DEM流域分析-河网等级矢量化&#xff09; 1.前提 如果你想自己写Python工具箱&#xff0c;那么假定你已经会ArcPy&#xff0c;如果只是自己…...

【蓝桥杯】刷题

刷题网站 记录总结刷题过程中遇到的一些问题 1、最大公约数与最小公倍数 a,bmap(int,input().split())sa*bwhile a%b:a,bb,a%bprint(b,s//b)2.迭代法求平方根(题号1021) #include<stdio.h> #include<math.h> int main() {double x11.0,x2;int a;scanf("%d&…...

软件产品登记的材料条件

(1&#xff09;申请双软认证前应该要获得信息产业部授权的软件检测机构出具的检测证明&#xff0c;这份检测证明可以到软件行业协会申请&#xff0c;然后协会会派专家到公司进行“检测”&#xff0c;检测通过后出具证明&#xff0c;这份证明的申请与软件著作权等无关&#xff0…...

春节后跟进客户开发信模板?外贸邮件模板?

适合新年的客户开发信模板&#xff1f;年后给客户的邮件怎么写&#xff1f; 在春节这一传统的中国节日结束后&#xff0c;跟进客户对于维持和发展业务至关重要。客户开发信模板是一种有效的工具。蜂邮将介绍一些春节后跟进客户开发信模板的关键技巧&#xff0c;以确保您的业务…...

个人财务管理软件CheckBook Pro mac中文版特点介绍

CheckBook Pro mac是一款Mac平台的个人财务管理软件&#xff0c;主要用于跟踪个人收入、支出和账户余额等信息。 CheckBook Pro mac 软件特点 简单易用&#xff1a;该软件的用户界面非常简洁明了&#xff0c;即使您是初学者也可以轻松上手。 多账户管理&#xff1a;该软件支持…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...