基于Springboot的超市信息管理系

81 篇文章 0 订阅
一、项目背景介绍:

随着我国经济的不断发展,许多零售企业在发展过程中面临着业务不断增长,而管理水平相对滞后的困境。尤其是许多企业在逐年经营过程中,积累了大量历史数据,但是信息比较分散、相互独立。在信息技术迅猛发展的今天,处于竞争性行业的中小型零售企业如何在未来的市场竞争中借助信息化实时掌握营销动态,不断提升服务水平,提高资源配置水平和核心竞争力,成为他们不得不面对的问题。

在零售企业中引入超市信息管理系统,利用收银机将超市中各种商品的进货、退货、销售等信息输入电脑,使得经营管理者能够及时掌控经营信息,作出合适的各种采购及货物库存决策。

超市信息管理系统,可完成商品采购订货、销售、盘点库存、财务分析等管理功能,并对商品的购销存状态实时跟踪记录。本论文主要介绍超市信息管理系统中的系统登录、商品录入、库存管理、商品销售等部分内容,以展现设计一个完整信息管理系统的思路和步骤。

二、项目技术简介:
  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(文档对象模型)上执行预先制定好的逻辑。

  1. 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)

字段名

类型

默认值

列注释

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

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

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

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

  1. 库存管理:

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

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

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

六、代码示例:
;

@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的超市信息管理系的开发,让我深刻明白开发一个程序软件需要经历的流程,当确定要开发一个基于springboot的超市信息管理系的程序时,

我在开发期间,对其功能进行合理的需求分析,然后才是程序软件的功能的框架设计,数据库的实体与数据表设计,

程序软件的功能详细界面实现,以及程序的功能测试等进行全方位的细致考虑,虽然在此过程中,各个环节都遇到了大大小小的困难,但是通过对这些问题进行反复的分析,深入的思考,

借助各种相关文献资料提供的方法与解决思路成功解决面临的各个问题,最后成功的让我开发的基于springboot的超市信息管理系得以正常运行。

基于springboot的超市信息管理系在功能上面是基本可以满足用户对系统的操作,但是这个程序软件也有许多方面是不足的,因此,在下一个时间阶段,有几点需要改进的地方需要提出来,它们分别是:

(1)操作页面可以满足用户简易操作的要求,但是在页面多样化设计层面上需要把一些比较丰富的设计结构考虑进来。

(2)程序软件的总体安全性能需要优化,例如程序的退出安全性,以及程序的并发性等问题都需要进行安全性升级,让开发的基于springboot的超市信息管理系中的相关网站更贴合。

(3)需要对程序的数据结构方面,程序的代码方面等进行优化,让运行起来的程序可以保持稳定运行,也让程序能够保证短时间内处理相关事务,节省处理事务的时间,提高事务处理的效率,

同时对服务器上资源占用的比例进行降低。

基于springboot的超市信息管理系的开发一方面是对自身专业知识技能进行最终考核,另一方面也是让自己学会独立解决程序开发过程中所遇到的问题,掌握将理论知识运用于程序开发实践的方法。

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

九、源码获取:

 此源码非开源,若需要此源码可扫码添加微信进行咨询!

  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值