基于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等客户端,使用很方便。

三、系统功能模块介绍:

基于SpringBoot的超市信息管理系_第1张图片

四、数据库设计:

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

字段名 类型 默认值 列注释
id bigint NULL 账单项目编号
product_id varchar NULL 商品编号
product_name varchar NULL 商品名称
category_id bigint NULL 分类编号
category_name varchar NULL 所属分类
purchase_price decimal NULL 进货价
sale_price decimal NULL 销售价
profits decimal NULL 净利润
number bigint NULL 购买数量
create_time datetime NULL 创建日期

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

字段名 类型 默认值 列注释
table_id bigint NULL 编号
table_name varchar NULL 表名称
table_comment varchar NULL 表描述
sub_table_name varchar NULL 关联子表的表名
sub_table_fk_name varchar NULL 子表关联的外键名
class_name varchar NULL 实体类名称
tpl_category varchar NULL 使用的模板(crud单表操作 tree树表操作 sub主子表操作)
package_name varchar NULL 生成包路径
module_name varchar NULL 生成模块名
business_name varchar NULL 生成业务名
function_name varchar NULL 生成功能名
function_author varchar NULL 生成功能作者
gen_type char NULL 生成代码方式(0zip压缩包 1自定义路径)
gen_path varchar NULL 生成路径(不填默认项目路径)
options varchar NULL 其它生成选项
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
column_id bigint NULL 编号
table_id varchar NULL 归属表编号
column_name varchar NULL 列名称
column_comment varchar NULL 列描述
column_type varchar NULL 列类型
java_type varchar NULL JAVA类型
java_field varchar NULL JAVA字段名
is_pk char NULL 是否主键(1是)
is_increment char NULL 是否自增(1是)
is_required char NULL 是否必填(1是)
is_insert char NULL 是否为插入字段(1是)
is_edit char NULL 是否编辑字段(1是)
is_list char NULL 是否列表字段(1是)
is_query char NULL 是否查询字段(1是)
query_type varchar NULL 查询方式(等于、不等于、大于、小于、范围)
html_type varchar NULL 显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)
dict_type varchar NULL 字典类型
sort int NULL 排序
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间

4:‘商品表’(product)

字段名 类型 默认值 列注释
auto_id int NULL 商品分类编号
id varchar NULL 条形码
category_id bigint NULL 商品分类编号
provider_id bigint NULL 供应商编号
name varchar NULL 商品名称
factory_address varchar NULL 生产地址
purchase_price decimal NULL 进货价
sale_price decimal NULL 销售价
stock int NULL 库存

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

字段名 类型 默认值 列注释
id int NULL 商品分类编号
name varchar NULL 商品分类名称

6:‘供应商表’(product_provider)

字段名 类型 默认值 列注释
id bigint NULL 供应商编号
name varchar NULL 供应商名称
contact_name varchar NULL 联系人姓名
contact_phone varchar NULL 联系人电话
address varchar NULL 供应商地址

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
trigger_name varchar NULL qrtz_triggers表trigger_name的外键
trigger_group varchar NULL qrtz_triggers表trigger_group的外键
blob_data blob NULL 存放持久化Trigger对象

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
calendar_name varchar NULL 日历名称
calendar blob NULL 存放持久化calendar对象

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
trigger_name varchar NULL qrtz_triggers表trigger_name的外键
trigger_group varchar NULL qrtz_triggers表trigger_group的外键
cron_expression varchar NULL cron表达式
time_zone_id varchar NULL 时区

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
entry_id varchar NULL 调度器实例id
trigger_name varchar NULL qrtz_triggers表trigger_name的外键
trigger_group varchar NULL qrtz_triggers表trigger_group的外键
instance_name varchar NULL 调度器实例名
fired_time bigint NULL 触发的时间
sched_time bigint NULL 定时器制定的时间
priority int NULL 优先级
state varchar NULL 状态
job_name varchar NULL 任务名称
job_group varchar NULL 任务组名
is_nonconcurrent varchar NULL 是否并发
requests_recovery varchar NULL 是否接受恢复执行

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
job_name varchar NULL 任务名称
job_group varchar NULL 任务组名
description varchar NULL 相关介绍
job_class_name varchar NULL 执行任务类名称
is_durable varchar NULL 是否持久化
is_nonconcurrent varchar NULL 是否并发
is_update_data varchar NULL 是否更新数据
requests_recovery varchar NULL 是否接受恢复执行
job_data blob NULL 存放持久化job对象

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
lock_name varchar NULL 悲观锁名称

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
trigger_group varchar NULL qrtz_triggers表trigger_group的外键

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
instance_name varchar NULL 实例名称
last_checkin_time bigint NULL 上次检查时间
checkin_interval bigint NULL 检查间隔时间

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
trigger_name varchar NULL qrtz_triggers表trigger_name的外键
trigger_group varchar NULL qrtz_triggers表trigger_group的外键
repeat_count bigint NULL 重复的次数统计
repeat_interval bigint NULL 重复的间隔时间
times_triggered bigint NULL 已经触发的次数

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
trigger_name varchar NULL qrtz_triggers表trigger_name的外键
trigger_group varchar NULL qrtz_triggers表trigger_group的外键
str_prop_1 varchar NULL String类型的trigger的第一个参数
str_prop_2 varchar NULL String类型的trigger的第二个参数
str_prop_3 varchar NULL String类型的trigger的第三个参数
int_prop_1 int NULL int类型的trigger的第一个参数
int_prop_2 int NULL int类型的trigger的第二个参数
long_prop_1 bigint NULL long类型的trigger的第一个参数
long_prop_2 bigint NULL long类型的trigger的第二个参数
dec_prop_1 decimal NULL decimal类型的trigger的第一个参数
dec_prop_2 decimal NULL decimal类型的trigger的第二个参数
bool_prop_1 varchar NULL Boolean类型的trigger的第一个参数
bool_prop_2 varchar NULL Boolean类型的trigger的第二个参数

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

字段名 类型 默认值 列注释
sched_name varchar NULL 调度名称
trigger_name varchar NULL 触发器的名字
trigger_group varchar NULL 触发器所属组的名字
job_name varchar NULL qrtz_job_details表job_name的外键
job_group varchar NULL qrtz_job_details表job_group的外键
description varchar NULL 相关介绍
next_fire_time bigint NULL 上一次触发时间(毫秒)
prev_fire_time bigint NULL 下一次触发时间(默认为-1表示不触发)
priority int NULL 优先级
trigger_state varchar NULL 触发器状态
trigger_type varchar NULL 触发器的类型
start_time bigint NULL 开始时间
end_time bigint NULL 结束时间
calendar_name varchar NULL 日程表名称
misfire_instr smallint NULL 补偿执行的策略
job_data blob NULL 存放持久化job对象

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

字段名 类型 默认值 列注释
config_id int NULL 参数主键
config_name varchar NULL 参数名称
config_key varchar NULL 参数键名
config_value varchar NULL 参数键值
config_type char NULL 系统内置(Y是 N否)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

19:‘部门表’(sys_dept)

字段名 类型 默认值 列注释
dept_id bigint NULL 部门id
parent_id bigint NULL 父部门id
ancestors varchar NULL 祖级列表
dept_name varchar NULL 部门名称
order_num int NULL 显示顺序
leader varchar NULL 负责人
phone varchar NULL 联系电话
email varchar NULL 邮箱
status char NULL 部门状态(0正常 1停用)
del_flag char NULL 删除标志(0代表存在 2代表删除)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间

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

字段名 类型 默认值 列注释
dict_code bigint NULL 字典编码
dict_sort int NULL 字典排序
dict_label varchar NULL 字典标签
dict_value varchar NULL 字典键值
dict_type varchar NULL 字典类型
css_class varchar NULL 样式属性(其他样式扩展)
list_class varchar NULL 表格回显样式
is_default char NULL 是否默认(Y是 N否)
status char NULL 状态(0正常 1停用)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
dict_id bigint NULL 字典主键
dict_name varchar NULL 字典名称
dict_type varchar NULL 字典类型
status char NULL 状态(0正常 1停用)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
job_id bigint NULL 任务ID
job_name varchar NULL 任务名称
job_group varchar NULL 任务组名
invoke_target varchar NULL 调用目标字符串
cron_expression varchar NULL cron执行表达式
misfire_policy varchar NULL 计划执行错误策略(1立即执行 2执行一次 3放弃执行)
concurrent char NULL 是否并发执行(0允许 1禁止)
status char NULL 状态(0正常 1暂停)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注信息

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

字段名 类型 默认值 列注释
job_log_id bigint NULL 任务日志ID
job_name varchar NULL 任务名称
job_group varchar NULL 任务组名
invoke_target varchar NULL 调用目标字符串
job_message varchar NULL 日志信息
status char NULL 执行状态(0正常 1失败)
exception_info varchar NULL 异常信息
create_time datetime NULL 创建时间

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

字段名 类型 默认值 列注释
info_id bigint NULL 访问ID
login_name varchar NULL 登录账号
ipaddr varchar NULL 登录IP地址
login_location varchar NULL 登录地点
browser varchar NULL 浏览器类型
os varchar NULL 操作系统
status char NULL 登录状态(0成功 1失败)
msg varchar NULL 提示消息
login_time datetime NULL 访问时间

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

字段名 类型 默认值 列注释
menu_id bigint NULL 菜单ID
menu_name varchar NULL 菜单名称
parent_id bigint NULL 父菜单ID
order_num int NULL 显示顺序
url varchar NULL 请求地址
target varchar NULL 打开方式(menuItem页签 menuBlank新窗口)
menu_type char NULL 菜单类型(M目录 C菜单 F按钮)
visible char NULL 菜单状态(0显示 1隐藏)
is_refresh char NULL 是否刷新(0刷新 1不刷新)
perms varchar NULL 权限标识
icon varchar NULL 菜单图标
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
notice_id int NULL 公告ID
notice_title varchar NULL 公告标题
notice_type char NULL 公告类型(1通知 2公告)
notice_content varchar NULL 公告内容
status char NULL 公告状态(0正常 1关闭)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
oper_id bigint NULL 日志主键
title varchar NULL 模块标题
business_type int NULL 业务类型(0其它 1新增 2修改 3删除)
method varchar NULL 方法名称
request_method varchar NULL 请求方式
operator_type int NULL 操作类别(0其它 1后台用户 2手机端用户)
oper_name varchar NULL 操作人员
dept_name varchar NULL 部门名称
oper_url varchar NULL 请求URL
oper_ip varchar NULL 主机地址
oper_location varchar NULL 操作地点
oper_param varchar NULL 请求参数
json_result varchar NULL 返回参数
status int NULL 操作状态(0正常 1异常)
error_msg varchar NULL 错误消息
oper_time datetime NULL 操作时间

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

字段名 类型 默认值 列注释
post_id bigint NULL 岗位ID
post_code varchar NULL 岗位编码
post_name varchar NULL 岗位名称
post_sort int NULL 显示顺序
status char NULL 状态(0正常 1停用)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
role_id bigint NULL 角色ID
role_name varchar NULL 角色名称
role_key varchar NULL 角色权限字符串
role_sort int NULL 显示顺序
data_scope char NULL 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限)
status char NULL 角色状态(0正常 1停用)
del_flag char NULL 删除标志(0代表存在 2代表删除)
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
role_id bigint NULL 角色ID
dept_id bigint NULL 部门ID

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

字段名 类型 默认值 列注释
role_id bigint NULL 角色ID
menu_id bigint NULL 菜单ID

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

字段名 类型 默认值 列注释
user_id bigint NULL 用户ID
dept_id bigint NULL 部门ID
login_name varchar NULL 登录账号
user_name varchar NULL 用户昵称
user_type varchar NULL 用户类型(00系统用户 01注册用户)
email varchar NULL 用户邮箱
phonenumber varchar NULL 手机号码
sex char NULL 用户性别(0男 1女 2未知)
avatar varchar NULL 头像路径
password varchar NULL 密码
salt varchar NULL 盐加密
status char NULL 帐号状态(0正常 1停用)
del_flag char NULL 删除标志(0代表存在 2代表删除)
login_ip varchar NULL 最后登录IP
login_date datetime NULL 最后登录时间
pwd_update_date datetime NULL 密码最后更新时间
create_by varchar NULL 创建者
create_time datetime NULL 创建时间
update_by varchar NULL 更新者
update_time datetime NULL 更新时间
remark varchar NULL 备注

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

字段名 类型 默认值 列注释
sessionId varchar NULL 用户会话id
login_name varchar NULL 登录账号
dept_name varchar NULL 部门名称
ipaddr varchar NULL 登录IP地址
login_location varchar NULL 登录地点
browser varchar NULL 浏览器类型
os varchar NULL 操作系统
status varchar NULL 在线状态on_line在线off_line离线
start_timestamp datetime NULL session创建时间
last_access_time datetime NULL session最后访问时间
expire_time int NULL 超时时间,单位为分钟

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

字段名 类型 默认值 列注释
user_id bigint NULL 用户ID
post_id bigint NULL 岗位ID

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

字段名 类型 默认值 列注释
user_id bigint NULL 用户ID
role_id bigint NULL 角色ID

五、功能模块:

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

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

    基于SpringBoot的超市信息管理系_第2张图片

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

    基于SpringBoot的超市信息管理系_第3张图片

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

    基于SpringBoot的超市信息管理系_第4张图片

  5. 库存管理:

    基于SpringBoot的超市信息管理系_第5张图片

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

    基于SpringBoot的超市信息管理系_第6张图片

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

    基于SpringBoot的超市信息管理系_第7张图片

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

    基于SpringBoot的超市信息管理系_第8张图片

基于SpringBoot的超市信息管理系_第9张图片

基于SpringBoot的超市信息管理系_第10张图片

基于SpringBoot的超市信息管理系_第11张图片

基于SpringBoot的超市信息管理系_第12张图片

六、代码示例:

;

@Controller
@RequestMapping("/system/checkout")
public class CheckOutController extends BaseController {

  private String prefix = "system/checkout";

  @Autowired
  private CheckoutService checkoutService;

//  @RequiresPermissions("system:checkout:view")
  @GetMapping()
  public String product() {
    return prefix + "/checkout";
  }

  /**
   * 新增保存商品分类
   */
  @PostMapping("/tmp-bill-item/add")
  @ResponseBody
  public 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")
  @ResponseBody
  public TableDataInfo getTempBillItem() {
    User currentUser = ShiroUtils.getSysUser();
    Long userId = currentUser.getUserId();
    return getDataTable(checkoutService.getTempBillItems(userId));
  }

  /**
   * 获取数据集合
   */
  @GetMapping("/search-product")
  @ResponseBody
  public AjaxResult collection(@RequestParam("id") String id)
  {
    AjaxResult ajax = new AjaxResult();
    ajax.put("result", checkoutService.matchProductSuggestByProductId(id));
    return ajax;
  }

  /**
   * 获取数据集合
   */
  @GetMapping("/total-should-pay")
  @ResponseBody
  public 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")
  @ResponseBody
  public 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")
  @ResponseBody
  public AjaxResult closeTempBillItem()
  {
    User currentUser = ShiroUtils.getSysUser();
    Long userId = currentUser.getUserId();
    checkoutService.closeTempBillItem(userId);
    return AjaxResult.success("删除成功");
  }

  /*
    确认结算
   */
  @GetMapping("/tmp-bill-item/submit")
  @ResponseBody
  public 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";

    @Autowired
    private IProductService productService;

    @RequiresPermissions("system:product:view")
    @GetMapping()
    public String product()
    {
        return prefix + "/product";
    }

    /**
     * 查询商品列表
     */
    @RequiresPermissions("system:product:list")
    @PostMapping("/list")
    @ResponseBody
    public 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")
    @ResponseBody
    public 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")
    @ResponseBody
    public 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")
    @ResponseBody
    public AjaxResult editSave(Product product)
    {
        return toAjax(productService.updateProduct(product));
    }

    /**
     * 删除商品
     */
    @RequiresPermissions("system:product:remove")
    @Log(title = "商品", businessType = BusinessType.DELETE)
    @PostMapping( "/remove")
    @ResponseBody
    public AjaxResult remove(String ids)
    {
        return toAjax(productService.deleteProductByIds(ids));
    }
}


七、论文参考:

论文参考···基于SpringBoot的超市信息管理系_第13张图片

八、项目总结:

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

九、源码获取:

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

链接点击直达:下载链接

你可能感兴趣的:(优质毕业设计,spring,boot,vue.js,后端,超市,货物管理,计算机毕业设计)