基于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的超市信息管理系的开发最终目标就是让系统更具人性化,同时在逻辑设计上,让系统能够更加的严谨。

九、源码获取:

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

链接点击直达:下载链接

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

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

相关文章

【Linux】第二十站:模拟实现shell

文章目录 一、shell的实现细节1.shell的一些细节2.用户名、主机名、工作目录2.输入命令3.改为循环4.切割字符串5.普通命令的执行6.内建命令的处理7.子进程的退出码8.总结 二、模式实现shell完整代码 一、shell的实现细节 1.shell的一些细节 shell操作系统的一个外壳程序。 s…

笔记:pycharm当有多个plt.show()时候,只显示第一个plt.show()

import matplotlib.pyplot as plt import numpy as np# 创建数据 x np.linspace(0, 10, 100) y1 np.sin(x) y2 np.cos(x) y3 np.tan(x) y4 np.exp(x)# 创建一个2x2的子图网格 # fig plt.figure() fig,((ax1, ax2), (ax3, ax4)) plt.subplots(nrows2, ncols2, figsize(8,…

【matlab程序】matlab画台风符号和实例应用

【matlab程序】matlab画台风符号和实例应用 没有看文献&#xff0c;不知道文献中的符号什么样子&#xff0c;据我理解为这样子的&#xff1a; 因此&#xff0c;按照自己的理解做了这期。 结果浏览&#xff1a; 台风符号一切可改&#xff0c;可细细改。可是我不发论文&#xf…

Oracle 中的操作符

1.union:对两个结果集进行并集操作&#xff0c;不包括重复行&#xff0c;同时进行默认规则的排序&#xff1b; SELECT * FROM emp WHERE sal < 1500 UNION SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000 order by 1 2.union All&#xff1a;对两个结果集进行并集操…

[C/C++]数据结构 堆排序(详细图解)

一:前言 在[C/C]数据结构 堆的详解中,介绍了什么是堆,并且完成了堆的实现和一系列接口,包括向上调整法和向下调整法等,接下来小编介绍一个有点量级的排序方法------堆排序,时间复杂度为O(n*lgn) 二:堆排序详解 2.1 方法介绍 1.首先将待排序数组建为大堆,此时堆顶元素就为数组…

给国外客户价格报低了怎么办

前一段时间有一个单子的货发出去了&#xff0c;被朋友提醒才发现自己报错了价格&#xff0c;造成了亏损&#xff0c;而报错价格的原因并不是自己看错了或者是抄错了价格&#xff0c;而是自己的脑子里记错了产品的价格列表。 如果不是朋友善意的提醒&#xff0c;大概我会一直错…

【心得】XXE漏洞利用个人笔记

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别) xxe的利用 XML Entity 实体注入 当程序处理xml文件时&#xff0c;没有禁止对外部实体的处理&#xff0c;容易造成xxe漏洞 危害 主流是任意文件读取 XML 文件 一般表示带有结构的数据 祖父 3个叔父 8个堂弟堂妹 …

python-opencv 人脸68点特征点检测

python-opencv 人脸68点特征点检测 不是很难&#xff0c;主要还是掉包&#xff0c;来看一下代码啊&#xff1a; # coding: utf-8 # 导包 import numpy as np import dlib import cv2class face_emotion(object):def __init__(self):# 人脸检测器对象&#xff0c;通过它拿到人…

Rust UI开发(三):iced如何打开图片(对话框)并在窗口显示图片?

注&#xff1a;此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库&#xff0c;用于为rust语言程序构建UI界面。 这是一个系列博文&#xff0c;本文是第三篇&#xff0c;前两篇的链接&#xff1a; 1、Rust UI开发&#xff08;一&#xff09;&#xff1a;使用iced构建…

【LeetCode:1457. 二叉树中的伪回文路径 | 二叉树 + DFS +回文数】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

使用 OpenCV 发现圆角矩形的轮廓

OpenCV - 如何找到圆角矩形的矩形轮廓? 问题: 在图像中,我试图找到矩形对象的圆角轮廓。然而,我对两者的尝试 HoughLinesP 并 findContours 没有产生预期的结果。 我的目标是找到一个类似于以下形状的矩形: 。 代码: import cv2 import matplotlib.pyplot as plt…

能让PDF看起来像是扫描件的Look Scanned

什么是 Look Scanned ? Look Scanned 是一个能够让 PDF 看起来就像是扫描件一样的纯前端网站。你再也不需要麻烦地打印之后扫描了&#xff0c;你所需要的就是鼠标点几下。 这是个挺有意思的软件&#xff0c;但是老苏不确定什么场景下会用到这个软件&#xff0c;如果不想自己搭…

OBS Studio 30.0 正式发布:支持 WebRTC

导读OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 主要变化包括&#xff1a; 支持 WebRTC&#xff08;详情查看 OBS Stu…

【YOLOv5入门】目标检测

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍YOLOv5入门-目标检测的任务、性能指标、yolo算法基本思想、yolov5网络架构图。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下吧】 上一篇…

Android 单元测试初体验

Android 单元测试初体验 前言一、单元测试是什么&#xff1f;二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候&#xff0c;老师敢教学进度&#xff0c;翻到单元测试这一章节的时候提了两句&#xff0c;没有把单元测试当重点讲&#xff0c;只…

详解Python对Excel处理

Excel是一种常见的电子表格文件格式&#xff0c;广泛用于数据记录和处理。Python提供了多个第三方库&#xff0c;可以方便地对Excel文件进行读写、数据操作和处理。本文将介绍如何使用Python对Excel文件进行处理&#xff0c;并提供相应的代码示例和详细说明。 一、安装第三方库…

java设计模式学习之【抽象工厂模式】

文章目录 引言抽象工厂模式简介定义与用途实现方式&#xff1a; 使用场景优势与劣势工厂模式在spring中的应用银行和贷款服务示例代码地址 引言 在我们之前的讨论中&#xff0c;我们探索了工厂方法模式——一种简化单一产品创建的设计模式。现在&#xff0c;我们将视角转向抽象…

2023年亚太杯APMCM数学建模大赛A题水果采摘机器人的图像识别

2023年亚太杯APMCM数学建模大赛 A题 水果采摘机器人的图像识别 原题再现 中国是世界上最大的苹果生产国&#xff0c;年产量约3500万吨。同时&#xff0c;中国也是世界上最大的苹果出口国&#xff0c;世界上每两个苹果中就有一个是中国出口的&#xff0c;世界上超过六分之一的…

Star History 十月开源精选 |AI for Postgres

在 2023 年 Stack Overflow 开发者调查中&#xff0c;Postgres 顶替了 MySQL 被评为最受欢迎的数据库。一个重要因素应该是 Postgres 支持扩展&#xff1a;可扩展的架构 Postgres 仍然由社区拥有&#xff0c;Postgres 生态近年来蓬勃发展。 扩展可以看作是内置功能&#xff0c…

跟着chatgpt学习|1.spark入门

首先先让chatgpt帮我规划学习路径&#xff0c;使用Markdown格式返回&#xff0c;并转成思维导图的形式 目录 目录 1. 了解spark 1.1 Spark的概念 1.2 Spark的架构 1.3 Spark的基本功能 2.spark中的数据抽象和操作方式 2.1.RDD&#xff08;弹性分布式数据集&#xff09; 2…