中國(guó)企業(yè)培訓(xùn)網(wǎng)蘭州seo培訓(xùn)
?全網(wǎng)粉絲20W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn)?
🍅文末獲取項(xiàng)目下載方式🍅
一、項(xiàng)目背景介紹:
隨著我國(guó)經(jīng)濟(jì)的不斷發(fā)展,許多零售企業(yè)在發(fā)展過程中面臨著業(yè)務(wù)不斷增長(zhǎng),而管理水平相對(duì)滯后的困境。尤其是許多企業(yè)在逐年經(jīng)營(yíng)過程中,積累了大量歷史數(shù)據(jù),但是信息比較分散、相互獨(dú)立。在信息技術(shù)迅猛發(fā)展的今天,處于競(jìng)爭(zhēng)性行業(yè)的中小型零售企業(yè)如何在未來的市場(chǎng)競(jìng)爭(zhēng)中借助信息化實(shí)時(shí)掌握營(yíng)銷動(dòng)態(tài),不斷提升服務(wù)水平,提高資源配置水平和核心競(jìng)爭(zhēng)力,成為他們不得不面對(duì)的問題。
在零售企業(yè)中引入超市信息管理系統(tǒng),利用收銀機(jī)將超市中各種商品的進(jìn)貨、退貨、銷售等信息輸入電腦,使得經(jīng)營(yíng)管理者能夠及時(shí)掌控經(jīng)營(yíng)信息,作出合適的各種采購(gòu)及貨物庫(kù)存決策。
超市信息管理系統(tǒng),可完成商品采購(gòu)訂貨、銷售、盤點(diǎn)庫(kù)存、財(cái)務(wù)分析等管理功能,并對(duì)商品的購(gòu)銷存狀態(tài)實(shí)時(shí)跟蹤記錄。本論文主要介紹超市信息管理系統(tǒng)中的系統(tǒng)登錄、商品錄入、庫(kù)存管理、商品銷售等部分內(nèi)容,以展現(xiàn)設(shè)計(jì)一個(gè)完整信息管理系統(tǒng)的思路和步驟。
二、項(xiàng)目技術(shù)簡(jiǎn)介:
- JAVA:Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?#xff0c;允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。
- Spring:Spring框架是一個(gè)開放源代碼的J2EE應(yīng)用程序框架,由Rod Johnson發(fā)起,是針對(duì)bean的生命周期進(jìn)行管理的輕量級(jí)容器(lightweight container)。 Spring解決了開發(fā)者在J2EE開發(fā)中遇到的許多常見的問題,提供了功能強(qiáng)大IOC、AOP及Web MVC等功能。Spring可以單獨(dú)應(yīng)用于構(gòu)筑應(yīng)用程序,也可以和Struts、Webwork、Tapestry等眾多Web框架組合使用,并且可以與 Swing等桌面應(yīng)用程序AP組合。因此, Spring不僅僅能應(yīng)用于J2EE應(yīng)用程序之中,也可以應(yīng)用于桌面應(yīng)用程序以及小應(yīng)用程序之中。Spring框架主要由七部分組成,分別是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
- SpringBoot:Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
- Mybatis:MyBatis本是apache的一個(gè)開源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apache software foundation遷移到了google code,并且改名為MyBatis。2013年11月遷移到Github。
iBATIS一詞來源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAOs)。 - Thymeleaf:thymeleaf是一個(gè)XML/XHTML/HTML5模板引擎,可用于Web與非Web環(huán)境中的應(yīng)用開發(fā)。它是一個(gè)開源的Java庫(kù),基于Apache License 2.0許可,由Daniel Fernández創(chuàng)建,該作者還是Java加密庫(kù)Jasypt的作者。
Thymeleaf提供了一個(gè)用于整合Spring MVC的可選模塊,在應(yīng)用開發(fā)中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標(biāo)在于提供一種可被瀏覽器正確顯示的、格式良好的模板創(chuàng)建方式,因此也可以用作靜態(tài)建模。你可以使用它創(chuàng)建經(jīng)過驗(yàn)證的XML與HTML模板。相對(duì)于編寫邏輯或代碼,開發(fā)者只需將標(biāo)簽屬性添加到模板中即可。接下來,這些標(biāo)簽屬性就會(huì)在DOM(文檔對(duì)象模型)上執(zhí)行預(yù)先制定好的邏輯。
6. Redis:redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類似,它支持存儲(chǔ)的value類型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。
Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類key/value存儲(chǔ)的不足,在部 分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端,使用很方便。
三、系統(tǒng)功能模塊介紹:
四、數(shù)據(jù)庫(kù)設(shè)計(jì):
1:‘銷售賬單表’(bill)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
id | bigint | NULL | 賬單項(xiàng)目編號(hào) |
product_id | varchar | NULL | 商品編號(hào) |
product_name | varchar | NULL | 商品名稱 |
category_id | bigint | NULL | 分類編號(hào) |
category_name | varchar | NULL | 所屬分類 |
purchase_price | decimal | NULL | 進(jìn)貨價(jià) |
sale_price | decimal | NULL | 銷售價(jià) |
profits | decimal | NULL | 凈利潤(rùn) |
number | bigint | NULL | 購(gòu)買數(shù)量 |
create_time | datetime | NULL | 創(chuàng)建日期 |
2:‘代碼生成業(yè)務(wù)表’(gen_table)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
table_id | bigint | NULL | 編號(hào) |
table_name | varchar | NULL | 表名稱 |
table_comment | varchar | NULL | 表描述 |
sub_table_name | varchar | NULL | 關(guān)聯(lián)子表的表名 |
sub_table_fk_name | varchar | NULL | 子表關(guān)聯(lián)的外鍵名 |
class_name | varchar | NULL | 實(shí)體類名稱 |
tpl_category | varchar | NULL | 使用的模板(crud單表操作 tree樹表操作 sub主子表操作) |
package_name | varchar | NULL | 生成包路徑 |
module_name | varchar | NULL | 生成模塊名 |
business_name | varchar | NULL | 生成業(yè)務(wù)名 |
function_name | varchar | NULL | 生成功能名 |
function_author | varchar | NULL | 生成功能作者 |
gen_type | char | NULL | 生成代碼方式(0zip壓縮包 1自定義路徑) |
gen_path | varchar | NULL | 生成路徑(不填默認(rèn)項(xiàng)目路徑) |
options | varchar | NULL | 其它生成選項(xiàng) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
3:‘代碼生成業(yè)務(wù)表字段’(gen_table_column)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
column_id | bigint | NULL | 編號(hào) |
table_id | varchar | NULL | 歸屬表編號(hào) |
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 | 顯示類型(文本框、文本域、下拉框、復(fù)選框、單選框、日期控件) |
dict_type | varchar | NULL | 字典類型 |
sort | int | NULL | 排序 |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
4:‘商品表’(product)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
auto_id | int | NULL | 商品分類編號(hào) |
id | varchar | NULL | 條形碼 |
category_id | bigint | NULL | 商品分類編號(hào) |
provider_id | bigint | NULL | 供應(yīng)商編號(hào) |
name | varchar | NULL | 商品名稱 |
factory_address | varchar | NULL | 生產(chǎn)地址 |
purchase_price | decimal | NULL | 進(jìn)貨價(jià) |
sale_price | decimal | NULL | 銷售價(jià) |
stock | int | NULL | 庫(kù)存 |
5:‘商品分類表’(product_category)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
id | int | NULL | 商品分類編號(hào) |
name | varchar | NULL | 商品分類名稱 |
6:‘供應(yīng)商表’(product_provider)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
id | bigint | NULL | 供應(yīng)商編號(hào) |
name | varchar | NULL | 供應(yīng)商名稱 |
contact_name | varchar | NULL | 聯(lián)系人姓名 |
contact_phone | varchar | NULL | 聯(lián)系人電話 |
address | varchar | NULL | 供應(yīng)商地址 |
7:‘Blob類型的觸發(fā)器表’(qrtz_blob_triggers)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
trigger_name | varchar | NULL | qrtz_triggers表trigger_name的外鍵 |
trigger_group | varchar | NULL | qrtz_triggers表trigger_group的外鍵 |
blob_data | blob | NULL | 存放持久化Trigger對(duì)象 |
8:‘日歷信息表’(qrtz_calendars)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
calendar_name | varchar | NULL | 日歷名稱 |
calendar | blob | NULL | 存放持久化calendar對(duì)象 |
9:‘Cron類型的觸發(fā)器表’(qrtz_cron_triggers)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
trigger_name | varchar | NULL | qrtz_triggers表trigger_name的外鍵 |
trigger_group | varchar | NULL | qrtz_triggers表trigger_group的外鍵 |
cron_expression | varchar | NULL | cron表達(dá)式 |
time_zone_id | varchar | NULL | 時(shí)區(qū) |
10:‘已觸發(fā)的觸發(fā)器表’(qrtz_fired_triggers)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
entry_id | varchar | NULL | 調(diào)度器實(shí)例id |
trigger_name | varchar | NULL | qrtz_triggers表trigger_name的外鍵 |
trigger_group | varchar | NULL | qrtz_triggers表trigger_group的外鍵 |
instance_name | varchar | NULL | 調(diào)度器實(shí)例名 |
fired_time | bigint | NULL | 觸發(fā)的時(shí)間 |
sched_time | bigint | NULL | 定時(shí)器制定的時(shí)間 |
priority | int | NULL | 優(yōu)先級(jí) |
state | varchar | NULL | 狀態(tài) |
job_name | varchar | NULL | 任務(wù)名稱 |
job_group | varchar | NULL | 任務(wù)組名 |
is_nonconcurrent | varchar | NULL | 是否并發(fā) |
requests_recovery | varchar | NULL | 是否接受恢復(fù)執(zhí)行 |
11:‘任務(wù)詳細(xì)信息表’(qrtz_job_details)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
job_name | varchar | NULL | 任務(wù)名稱 |
job_group | varchar | NULL | 任務(wù)組名 |
description | varchar | NULL | 相關(guān)介紹 |
job_class_name | varchar | NULL | 執(zhí)行任務(wù)類名稱 |
is_durable | varchar | NULL | 是否持久化 |
is_nonconcurrent | varchar | NULL | 是否并發(fā) |
is_update_data | varchar | NULL | 是否更新數(shù)據(jù) |
requests_recovery | varchar | NULL | 是否接受恢復(fù)執(zhí)行 |
job_data | blob | NULL | 存放持久化job對(duì)象 |
12:‘存儲(chǔ)的悲觀鎖信息表’(qrtz_locks)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
lock_name | varchar | NULL | 悲觀鎖名稱 |
13:‘暫停的觸發(fā)器表’(qrtz_paused_trigger_grps)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
trigger_group | varchar | NULL | qrtz_triggers表trigger_group的外鍵 |
14:‘調(diào)度器狀態(tài)表’(qrtz_scheduler_state)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
instance_name | varchar | NULL | 實(shí)例名稱 |
last_checkin_time | bigint | NULL | 上次檢查時(shí)間 |
checkin_interval | bigint | NULL | 檢查間隔時(shí)間 |
15:‘簡(jiǎn)單觸發(fā)器的信息表’(qrtz_simple_triggers)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
trigger_name | varchar | NULL | qrtz_triggers表trigger_name的外鍵 |
trigger_group | varchar | NULL | qrtz_triggers表trigger_group的外鍵 |
repeat_count | bigint | NULL | 重復(fù)的次數(shù)統(tǒng)計(jì) |
repeat_interval | bigint | NULL | 重復(fù)的間隔時(shí)間 |
times_triggered | bigint | NULL | 已經(jīng)觸發(fā)的次數(shù) |
16:‘同步機(jī)制的行鎖表’(qrtz_simprop_triggers)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
trigger_name | varchar | NULL | qrtz_triggers表trigger_name的外鍵 |
trigger_group | varchar | NULL | qrtz_triggers表trigger_group的外鍵 |
str_prop_1 | varchar | NULL | String類型的trigger的第一個(gè)參數(shù) |
str_prop_2 | varchar | NULL | String類型的trigger的第二個(gè)參數(shù) |
str_prop_3 | varchar | NULL | String類型的trigger的第三個(gè)參數(shù) |
int_prop_1 | int | NULL | int類型的trigger的第一個(gè)參數(shù) |
int_prop_2 | int | NULL | int類型的trigger的第二個(gè)參數(shù) |
long_prop_1 | bigint | NULL | long類型的trigger的第一個(gè)參數(shù) |
long_prop_2 | bigint | NULL | long類型的trigger的第二個(gè)參數(shù) |
dec_prop_1 | decimal | NULL | decimal類型的trigger的第一個(gè)參數(shù) |
dec_prop_2 | decimal | NULL | decimal類型的trigger的第二個(gè)參數(shù) |
bool_prop_1 | varchar | NULL | Boolean類型的trigger的第一個(gè)參數(shù) |
bool_prop_2 | varchar | NULL | Boolean類型的trigger的第二個(gè)參數(shù) |
17:‘觸發(fā)器詳細(xì)信息表’(qrtz_triggers)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sched_name | varchar | NULL | 調(diào)度名稱 |
trigger_name | varchar | NULL | 觸發(fā)器的名字 |
trigger_group | varchar | NULL | 觸發(fā)器所屬組的名字 |
job_name | varchar | NULL | qrtz_job_details表job_name的外鍵 |
job_group | varchar | NULL | qrtz_job_details表job_group的外鍵 |
description | varchar | NULL | 相關(guān)介紹 |
next_fire_time | bigint | NULL | 上一次觸發(fā)時(shí)間(毫秒) |
prev_fire_time | bigint | NULL | 下一次觸發(fā)時(shí)間(默認(rèn)為-1表示不觸發(fā)) |
priority | int | NULL | 優(yōu)先級(jí) |
trigger_state | varchar | NULL | 觸發(fā)器狀態(tài) |
trigger_type | varchar | NULL | 觸發(fā)器的類型 |
start_time | bigint | NULL | 開始時(shí)間 |
end_time | bigint | NULL | 結(jié)束時(shí)間 |
calendar_name | varchar | NULL | 日程表名稱 |
misfire_instr | smallint | NULL | 補(bǔ)償執(zhí)行的策略 |
job_data | blob | NULL | 存放持久化job對(duì)象 |
18:‘參數(shù)配置表’(sys_config)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
config_id | int | NULL | 參數(shù)主鍵 |
config_name | varchar | NULL | 參數(shù)名稱 |
config_key | varchar | NULL | 參數(shù)鍵名 |
config_value | varchar | NULL | 參數(shù)鍵值 |
config_type | char | NULL | 系統(tǒng)內(nèi)置(Y是 N否) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
19:‘部門表’(sys_dept)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
dept_id | bigint | NULL | 部門id |
parent_id | bigint | NULL | 父部門id |
ancestors | varchar | NULL | 祖級(jí)列表 |
dept_name | varchar | NULL | 部門名稱 |
order_num | int | NULL | 顯示順序 |
leader | varchar | NULL | 負(fù)責(zé)人 |
phone | varchar | NULL | 聯(lián)系電話 |
varchar | NULL | 郵箱 | |
status | char | NULL | 部門狀態(tài)(0正常 1停用) |
del_flag | char | NULL | 刪除標(biāo)志(0代表存在 2代表刪除) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
20:‘字典數(shù)據(jù)表’(sys_dict_data)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
dict_code | bigint | NULL | 字典編碼 |
dict_sort | int | NULL | 字典排序 |
dict_label | varchar | NULL | 字典標(biāo)簽 |
dict_value | varchar | NULL | 字典鍵值 |
dict_type | varchar | NULL | 字典類型 |
css_class | varchar | NULL | 樣式屬性(其他樣式擴(kuò)展) |
list_class | varchar | NULL | 表格回顯樣式 |
is_default | char | NULL | 是否默認(rèn)(Y是 N否) |
status | char | NULL | 狀態(tài)(0正常 1停用) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
21:‘字典類型表’(sys_dict_type)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
dict_id | bigint | NULL | 字典主鍵 |
dict_name | varchar | NULL | 字典名稱 |
dict_type | varchar | NULL | 字典類型 |
status | char | NULL | 狀態(tài)(0正常 1停用) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
22:‘定時(shí)任務(wù)調(diào)度表’(sys_job)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
job_id | bigint | NULL | 任務(wù)ID |
job_name | varchar | NULL | 任務(wù)名稱 |
job_group | varchar | NULL | 任務(wù)組名 |
invoke_target | varchar | NULL | 調(diào)用目標(biāo)字符串 |
cron_expression | varchar | NULL | cron執(zhí)行表達(dá)式 |
misfire_policy | varchar | NULL | 計(jì)劃執(zhí)行錯(cuò)誤策略(1立即執(zhí)行 2執(zhí)行一次 3放棄執(zhí)行) |
concurrent | char | NULL | 是否并發(fā)執(zhí)行(0允許 1禁止) |
status | char | NULL | 狀態(tài)(0正常 1暫停) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注信息 |
23:‘定時(shí)任務(wù)調(diào)度日志表’(sys_job_log)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
job_log_id | bigint | NULL | 任務(wù)日志ID |
job_name | varchar | NULL | 任務(wù)名稱 |
job_group | varchar | NULL | 任務(wù)組名 |
invoke_target | varchar | NULL | 調(diào)用目標(biāo)字符串 |
job_message | varchar | NULL | 日志信息 |
status | char | NULL | 執(zhí)行狀態(tài)(0正常 1失敗) |
exception_info | varchar | NULL | 異常信息 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
24:‘系統(tǒng)訪問記錄’(sys_logininfor)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
info_id | bigint | NULL | 訪問ID |
login_name | varchar | NULL | 登錄賬號(hào) |
ipaddr | varchar | NULL | 登錄IP地址 |
login_location | varchar | NULL | 登錄地點(diǎn) |
browser | varchar | NULL | 瀏覽器類型 |
os | varchar | NULL | 操作系統(tǒng) |
status | char | NULL | 登錄狀態(tài)(0成功 1失敗) |
msg | varchar | NULL | 提示消息 |
login_time | datetime | NULL | 訪問時(shí)間 |
25:‘菜單權(quán)限表’(sys_menu)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
menu_id | bigint | NULL | 菜單ID |
menu_name | varchar | NULL | 菜單名稱 |
parent_id | bigint | NULL | 父菜單ID |
order_num | int | NULL | 顯示順序 |
url | varchar | NULL | 請(qǐng)求地址 |
target | varchar | NULL | 打開方式(menuItem頁(yè)簽 menuBlank新窗口) |
menu_type | char | NULL | 菜單類型(M目錄 C菜單 F按鈕) |
visible | char | NULL | 菜單狀態(tài)(0顯示 1隱藏) |
is_refresh | char | NULL | 是否刷新(0刷新 1不刷新) |
perms | varchar | NULL | 權(quán)限標(biāo)識(shí) |
icon | varchar | NULL | 菜單圖標(biāo) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
26:‘通知公告表’(sys_notice)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
notice_id | int | NULL | 公告ID |
notice_title | varchar | NULL | 公告標(biāo)題 |
notice_type | char | NULL | 公告類型(1通知 2公告) |
notice_content | varchar | NULL | 公告內(nèi)容 |
status | char | NULL | 公告狀態(tài)(0正常 1關(guān)閉) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
27:‘操作日志記錄’(sys_oper_log)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
oper_id | bigint | NULL | 日志主鍵 |
title | varchar | NULL | 模塊標(biāo)題 |
business_type | int | NULL | 業(yè)務(wù)類型(0其它 1新增 2修改 3刪除) |
method | varchar | NULL | 方法名稱 |
request_method | varchar | NULL | 請(qǐng)求方式 |
operator_type | int | NULL | 操作類別(0其它 1后臺(tái)用戶 2手機(jī)端用戶) |
oper_name | varchar | NULL | 操作人員 |
dept_name | varchar | NULL | 部門名稱 |
oper_url | varchar | NULL | 請(qǐng)求URL |
oper_ip | varchar | NULL | 主機(jī)地址 |
oper_location | varchar | NULL | 操作地點(diǎn) |
oper_param | varchar | NULL | 請(qǐng)求參數(shù) |
json_result | varchar | NULL | 返回參數(shù) |
status | int | NULL | 操作狀態(tài)(0正常 1異常) |
error_msg | varchar | NULL | 錯(cuò)誤消息 |
oper_time | datetime | NULL | 操作時(shí)間 |
28:‘崗位信息表’(sys_post)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
post_id | bigint | NULL | 崗位ID |
post_code | varchar | NULL | 崗位編碼 |
post_name | varchar | NULL | 崗位名稱 |
post_sort | int | NULL | 顯示順序 |
status | char | NULL | 狀態(tài)(0正常 1停用) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
29:‘角色信息表’(sys_role)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
role_id | bigint | NULL | 角色I(xiàn)D |
role_name | varchar | NULL | 角色名稱 |
role_key | varchar | NULL | 角色權(quán)限字符串 |
role_sort | int | NULL | 顯示順序 |
data_scope | char | NULL | 數(shù)據(jù)范圍(1:全部數(shù)據(jù)權(quán)限 2:自定數(shù)據(jù)權(quán)限 3:本部門數(shù)據(jù)權(quán)限 4:本部門及以下數(shù)據(jù)權(quán)限) |
status | char | NULL | 角色狀態(tài)(0正常 1停用) |
del_flag | char | NULL | 刪除標(biāo)志(0代表存在 2代表刪除) |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
30:‘角色和部門關(guān)聯(lián)表’(sys_role_dept)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
role_id | bigint | NULL | 角色I(xiàn)D |
dept_id | bigint | NULL | 部門ID |
31:‘角色和菜單關(guān)聯(lián)表’(sys_role_menu)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
role_id | bigint | NULL | 角色I(xiàn)D |
menu_id | bigint | NULL | 菜單ID |
32:‘用戶信息表’(sys_user)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
user_id | bigint | NULL | 用戶ID |
dept_id | bigint | NULL | 部門ID |
login_name | varchar | NULL | 登錄賬號(hào) |
user_name | varchar | NULL | 用戶昵稱 |
user_type | varchar | NULL | 用戶類型(00系統(tǒng)用戶 01注冊(cè)用戶) |
varchar | NULL | 用戶郵箱 | |
phonenumber | varchar | NULL | 手機(jī)號(hào)碼 |
sex | char | NULL | 用戶性別(0男 1女 2未知) |
avatar | varchar | NULL | 頭像路徑 |
password | varchar | NULL | 密碼 |
salt | varchar | NULL | 鹽加密 |
status | char | NULL | 帳號(hào)狀態(tài)(0正常 1停用) |
del_flag | char | NULL | 刪除標(biāo)志(0代表存在 2代表刪除) |
login_ip | varchar | NULL | 最后登錄IP |
login_date | datetime | NULL | 最后登錄時(shí)間 |
pwd_update_date | datetime | NULL | 密碼最后更新時(shí)間 |
create_by | varchar | NULL | 創(chuàng)建者 |
create_time | datetime | NULL | 創(chuàng)建時(shí)間 |
update_by | varchar | NULL | 更新者 |
update_time | datetime | NULL | 更新時(shí)間 |
remark | varchar | NULL | 備注 |
33:‘在線用戶記錄’(sys_user_online)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
sessionId | varchar | NULL | 用戶會(huì)話id |
login_name | varchar | NULL | 登錄賬號(hào) |
dept_name | varchar | NULL | 部門名稱 |
ipaddr | varchar | NULL | 登錄IP地址 |
login_location | varchar | NULL | 登錄地點(diǎn) |
browser | varchar | NULL | 瀏覽器類型 |
os | varchar | NULL | 操作系統(tǒng) |
status | varchar | NULL | 在線狀態(tài)on_line在線off_line離線 |
start_timestamp | datetime | NULL | session創(chuàng)建時(shí)間 |
last_access_time | datetime | NULL | session最后訪問時(shí)間 |
expire_time | int | NULL | 超時(shí)時(shí)間,單位為分鐘 |
34:‘用戶與崗位關(guān)聯(lián)表’(sys_user_post)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
user_id | bigint | NULL | 用戶ID |
post_id | bigint | NULL | 崗位ID |
35:‘用戶和角色關(guān)聯(lián)表’(sys_user_role)
字段名 | 類型 | 默認(rèn)值 | 列注釋 |
---|---|---|---|
user_id | bigint | NULL | 用戶ID |
role_id | bigint | NULL | 角色I(xiàn)D |
五、功能模塊:
-
登錄:通過管理員給與的賬號(hào)登錄進(jìn)入到系統(tǒng)中,不同的賬號(hào)擁有不同的權(quán)限,而權(quán)限不同登錄進(jìn)系統(tǒng)所看到的和能夠使用的功能也不一樣
-
系統(tǒng)首頁(yè):在系統(tǒng)首頁(yè)可以查看系統(tǒng)的數(shù)據(jù)統(tǒng)計(jì)信息,系統(tǒng)的用戶訂單收入等多維度的統(tǒng)計(jì)信息
-
超市收銀臺(tái):在超市收銀臺(tái)中輸入商品信息和數(shù)量系統(tǒng)回自己統(tǒng)計(jì)價(jià)格,在結(jié)賬后系統(tǒng)回將金額統(tǒng)計(jì)進(jìn)入銷售賬單中,并且同步到系統(tǒng)首頁(yè)的大屏統(tǒng)計(jì)中,同時(shí)對(duì)應(yīng)的庫(kù)存也會(huì)對(duì)應(yīng)的減少
-
銷售賬單:銷售賬單中為收銀臺(tái)的每一筆記賬信息
-
庫(kù)存管理:
-
商品分類:在商品分類管理中系統(tǒng)回將每個(gè)商品進(jìn)行分類,而可以選擇的類型則是在商品分類中進(jìn)行管理
-
供應(yīng)商:供應(yīng)商列表對(duì)是對(duì)超市的供應(yīng)商做了一個(gè)清單管理,超市人員可以很直觀的了解超市的供應(yīng)商信息
-
數(shù)據(jù)權(quán)限管理:在超市管理中有用戶,角色,菜單,部門,崗位等信息的管理,他們的關(guān)系是每個(gè)用戶都擁有有屬于的部門,并且管理員可以通過設(shè)置不同的角色,角色擁有的菜單和數(shù)據(jù)權(quán)限,用戶擁有不同的角色來達(dá)到對(duì)系統(tǒng)的額權(quán)限進(jìn)行管理.
六、代碼示例:
;@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("找不到商品,請(qǐng)檢查商品編號(hào)是否正確");}}/*** 獲取數(shù)據(jù)集合*/@PostMapping("/tmp-bill-item")@ResponseBodypublic TableDataInfo getTempBillItem() {User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();return getDataTable(checkoutService.getTempBillItems(userId));}/*** 獲取數(shù)據(jù)集合*/@GetMapping("/search-product")@ResponseBodypublic AjaxResult collection(@RequestParam("id") String id){AjaxResult ajax = new AjaxResult();ajax.put("result", checkoutService.matchProductSuggestByProductId(id));return ajax;}/*** 獲取數(shù)據(jù)集合*/@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("刪除成功");}/*確認(rèn)結(jié)算*/@GetMapping("/tmp-bill-item/submit")@ResponseBodypublic AjaxResult submitTempBillItem(){User currentUser = ShiroUtils.getSysUser();Long userId = currentUser.getUserId();checkoutService.submitTempBillItem(userId);return AjaxResult.success("結(jié)算成功");}
}@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);}/*** 導(dǎo)出商品列表*/@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, "商品數(shù)據(jù)");}/*** 新增商品*/@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));}
}
七、論文參考:
論文參考···
八、項(xiàng)目總結(jié):
通過對(duì)基于springboot的超市信息管理系的開發(fā),讓我深刻明白開發(fā)一個(gè)程序軟件需要經(jīng)歷的流程,當(dāng)確定要開發(fā)一個(gè)基于springboot的超市信息管理系的程序時(shí),
我在開發(fā)期間,對(duì)其功能進(jìn)行合理的需求分析,然后才是程序軟件的功能的框架設(shè)計(jì),數(shù)據(jù)庫(kù)的實(shí)體與數(shù)據(jù)表設(shè)計(jì),
程序軟件的功能詳細(xì)界面實(shí)現(xiàn),以及程序的功能測(cè)試等進(jìn)行全方位的細(xì)致考慮,雖然在此過程中,各個(gè)環(huán)節(jié)都遇到了大大小小的困難,但是通過對(duì)這些問題進(jìn)行反復(fù)的分析,深入的思考,
借助各種相關(guān)文獻(xiàn)資料提供的方法與解決思路成功解決面臨的各個(gè)問題,最后成功的讓我開發(fā)的基于springboot的超市信息管理系得以正常運(yùn)行。
基于springboot的超市信息管理系在功能上面是基本可以滿足用戶對(duì)系統(tǒng)的操作,但是這個(gè)程序軟件也有許多方面是不足的,因此,在下一個(gè)時(shí)間階段,有幾點(diǎn)需要改進(jìn)的地方需要提出來,它們分別是:
(1)操作頁(yè)面可以滿足用戶簡(jiǎn)易操作的要求,但是在頁(yè)面多樣化設(shè)計(jì)層面上需要把一些比較豐富的設(shè)計(jì)結(jié)構(gòu)考慮進(jìn)來。
(2)程序軟件的總體安全性能需要優(yōu)化,例如程序的退出安全性,以及程序的并發(fā)性等問題都需要進(jìn)行安全性升級(jí),讓開發(fā)的基于springboot的超市信息管理系中的相關(guān)網(wǎng)站更貼合。
(3)需要對(duì)程序的數(shù)據(jù)結(jié)構(gòu)方面,程序的代碼方面等進(jìn)行優(yōu)化,讓運(yùn)行起來的程序可以保持穩(wěn)定運(yùn)行,也讓程序能夠保證短時(shí)間內(nèi)處理相關(guān)事務(wù),節(jié)省處理事務(wù)的時(shí)間,提高事務(wù)處理的效率,
同時(shí)對(duì)服務(wù)器上資源占用的比例進(jìn)行降低。
基于springboot的超市信息管理系的開發(fā)一方面是對(duì)自身專業(yè)知識(shí)技能進(jìn)行最終考核,另一方面也是讓自己學(xué)會(huì)獨(dú)立解決程序開發(fā)過程中所遇到的問題,掌握將理論知識(shí)運(yùn)用于程序開發(fā)實(shí)踐的方法。
基于springboot的超市信息管理系的開發(fā)最終目標(biāo)就是讓系統(tǒng)更具人性化,同時(shí)在邏輯設(shè)計(jì)上,讓系統(tǒng)能夠更加的嚴(yán)謹(jǐn)。
九、源碼獲取:
大家點(diǎn)贊、收藏、關(guān)注、評(píng)論啦 、查看👇🏻👇🏻👇🏻獲取項(xiàng)目下載鏈接,博主聯(lián)系方式👇🏻👇🏻👇🏻
鏈接點(diǎn)擊直達(dá):下載鏈接