From 36085b7f5c901b1c63f641c4de538ecddb018c36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E4=BD=B3=E9=BE=99?= <2861807725@qq.com>
Date: Mon, 28 Apr 2025 20:41:16 +0800
Subject: [PATCH 1/2] 01
---
untitled/.gitignore | 29 +++++++++++++++++++
untitled/.idea/.gitignore | 8 +++++
.../.idea/artifacts/untitled_war_exploded.xml | 13 +++++++++
untitled/.idea/misc.xml | 6 ++++
untitled/.idea/modules.xml | 8 +++++
untitled/.idea/webContexts.xml | 10 +++++++
untitled/src/Main.java | 15 ++++++++++
untitled/untitled.iml | 23 +++++++++++++++
untitled/web/404.jsp | 18 ++++++++++++
untitled/web/500.jsp | 18 ++++++++++++
untitled/web/WEB-INF/web.xml | 11 +++++++
untitled/web/a.jsp | 18 ++++++++++++
untitled/web/b.jsp | 28 ++++++++++++++++++
untitled/web/index.jsp | 16 ++++++++++
14 files changed, 221 insertions(+)
create mode 100644 untitled/.gitignore
create mode 100644 untitled/.idea/.gitignore
create mode 100644 untitled/.idea/artifacts/untitled_war_exploded.xml
create mode 100644 untitled/.idea/misc.xml
create mode 100644 untitled/.idea/modules.xml
create mode 100644 untitled/.idea/webContexts.xml
create mode 100644 untitled/src/Main.java
create mode 100644 untitled/untitled.iml
create mode 100644 untitled/web/404.jsp
create mode 100644 untitled/web/500.jsp
create mode 100644 untitled/web/WEB-INF/web.xml
create mode 100644 untitled/web/a.jsp
create mode 100644 untitled/web/b.jsp
create mode 100644 untitled/web/index.jsp
diff --git a/untitled/.gitignore b/untitled/.gitignore
new file mode 100644
index 0000000..f68d109
--- /dev/null
+++ b/untitled/.gitignore
@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/untitled/.idea/.gitignore b/untitled/.idea/.gitignore
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ b/untitled/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/untitled/.idea/artifacts/untitled_war_exploded.xml b/untitled/.idea/artifacts/untitled_war_exploded.xml
new file mode 100644
index 0000000..bc06e80
--- /dev/null
+++ b/untitled/.idea/artifacts/untitled_war_exploded.xml
@@ -0,0 +1,13 @@
+
+
+ $PROJECT_DIR$/out/artifacts/untitled_war_exploded
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/untitled/.idea/misc.xml b/untitled/.idea/misc.xml
new file mode 100644
index 0000000..e1f830b
--- /dev/null
+++ b/untitled/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/untitled/.idea/modules.xml b/untitled/.idea/modules.xml
new file mode 100644
index 0000000..3007dae
--- /dev/null
+++ b/untitled/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/untitled/.idea/webContexts.xml b/untitled/.idea/webContexts.xml
new file mode 100644
index 0000000..58c8f10
--- /dev/null
+++ b/untitled/.idea/webContexts.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/untitled/src/Main.java b/untitled/src/Main.java
new file mode 100644
index 0000000..fe7aa2b
--- /dev/null
+++ b/untitled/src/Main.java
@@ -0,0 +1,15 @@
+//TIP 要运行代码,请按 或
+// 点击装订区域中的 图标。
+public class Main {
+ public static void main(String[] args) {
+ //TIP 当文本光标位于高亮显示的文本处时按
+ // 查看 IntelliJ IDEA 建议如何修正。
+ System.out.printf("Hello and welcome!");
+
+ for (int i = 1; i <= 5; i++) {
+ //TIP 按 开始调试代码。我们已经设置了一个 断点
+ // 但您始终可以通过按 添加更多断点。
+ System.out.println("i = " + i);
+ }
+ }
+}
\ No newline at end of file
diff --git a/untitled/untitled.iml b/untitled/untitled.iml
new file mode 100644
index 0000000..abfa2d4
--- /dev/null
+++ b/untitled/untitled.iml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/untitled/web/404.jsp b/untitled/web/404.jsp
new file mode 100644
index 0000000..ccc4a93
--- /dev/null
+++ b/untitled/web/404.jsp
@@ -0,0 +1,18 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: 12762
+ Date: 2025/4/22
+ Time: 下午2:30
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+
+ 404 - 页面未找到
+
+
+404 错误
+抱歉,您访问的页面不存在。
+
+
\ No newline at end of file
diff --git a/untitled/web/500.jsp b/untitled/web/500.jsp
new file mode 100644
index 0000000..1e19d69
--- /dev/null
+++ b/untitled/web/500.jsp
@@ -0,0 +1,18 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: 12762
+ Date: 2025/4/22
+ Time: 下午2:34
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+
+ 500 - 页面未找到
+
+
+500 错误
+抱歉,您访问的页面不存在。
+
+
\ No newline at end of file
diff --git a/untitled/web/WEB-INF/web.xml b/untitled/web/WEB-INF/web.xml
new file mode 100644
index 0000000..58f9322
--- /dev/null
+++ b/untitled/web/WEB-INF/web.xml
@@ -0,0 +1,11 @@
+
+
+
+ 404
+ /404.jsp
+
+
+ 500
+ /500.jsp
+
+
\ No newline at end of file
diff --git a/untitled/web/a.jsp b/untitled/web/a.jsp
new file mode 100644
index 0000000..668754c
--- /dev/null
+++ b/untitled/web/a.jsp
@@ -0,0 +1,18 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: 12762
+ Date: 2025/4/22
+ Time: 下午2:17
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+
+
+
+
+ Page A
+
+
+这是 A 页面的内容
+
+
\ No newline at end of file
diff --git a/untitled/web/b.jsp b/untitled/web/b.jsp
new file mode 100644
index 0000000..a649da7
--- /dev/null
+++ b/untitled/web/b.jsp
@@ -0,0 +1,28 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: 12762
+ Date: 2025/4/22
+ Time: 下午2:14
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+
+
+
+
+ Page B
+
+
+
+这是 B 页面的内容
+
+
+
+
+
\ No newline at end of file
diff --git a/untitled/web/index.jsp b/untitled/web/index.jsp
new file mode 100644
index 0000000..ca6655d
--- /dev/null
+++ b/untitled/web/index.jsp
@@ -0,0 +1,16 @@
+<%--
+ Created by IntelliJ IDEA.
+ User: 12762
+ Date: 2025/4/22
+ Time: 下午2:10
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ $Title$
+
+
+ $END$
+
+
From 64919b08678f47710f97908829a026c697639d0d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E4=BD=B3=E9=BE=99?= <2861807725@qq.com>
Date: Mon, 28 Apr 2025 21:04:56 +0800
Subject: [PATCH 2/2] 1
---
.../superMarket-backend/.gitignore | 37 ++
.../superMarket-backend/doc/db_market.sql | 554 ++++++++++++++++
.../superMarket-backend/pom.xml | 76 +++
.../shanzhu/market/BackendApplication.java | 28 +
.../advice/ExceptionControllerAdvice.java | 35 +
.../market/common/config/BaseWebConfig.java | 80 +++
.../market/common/config/MpConfig.java | 27 +
.../market/common/constants/HttpStatus.java | 24 +
.../common/exception/BusinessException.java | 26 +
.../market/common/exception/SysException.java | 46 ++
.../common/redis/config/RedisConfig.java | 31 +
.../common/redis/constants/RedisKeys.java | 123 ++++
.../redis/service/RedisTemplateService.java | 343 ++++++++++
.../sercurity/annotation/HasPermisson.java | 19 +
.../sercurity/annotation/NoRequireLogin.java | 16 +
.../interceptor/EmpLoginInterceptor.java | 117 ++++
.../resolver/UserInfoArgumentResolver.java | 66 ++
.../common/sercurity/resolver/UserParam.java | 16 +
.../shanzhu/market/common/util/DateUtil.java | 16 +
.../shanzhu/market/common/util/PathUtils.java | 80 +++
.../market/common/util/UploadUtil.java | 36 ++
.../common/web/response/JsonResult.java | 172 +++++
.../market/controller/DeptController.java | 76 +++
.../market/controller/EmployeeController.java | 159 +++++
...xchangePointProductsRecordsController.java | 138 ++++
.../controller/GoodsCategoryController.java | 138 ++++
.../market/controller/GoodsController.java | 164 +++++
.../controller/GoodsStoreController.java | 64 ++
.../market/controller/LoginEmpController.java | 96 +++
.../market/controller/MemberController.java | 103 +++
.../market/controller/MenuController.java | 37 ++
.../market/controller/NoticeController.java | 98 +++
.../market/controller/PersonalController.java | 56 ++
.../controller/PointProductController.java | 105 +++
.../market/controller/RoleController.java | 115 ++++
.../controller/SaleRecordController.java | 55 ++
.../controller/StatisticSaleController.java | 30 +
.../StorageSituationController.java | 38 ++
.../market/controller/StoreController.java | 59 ++
.../market/controller/StoreInController.java | 61 ++
.../market/controller/StoreOutController.java | 73 +++
.../market/controller/SupplierController.java | 60 ++
.../shanzhu/market/entity/domain/Dept.java | 72 +++
.../entity/domain/DetailSaleRecords.java | 77 +++
.../entity/domain/DetailStoreGoods.java | 244 +++++++
.../market/entity/domain/Employee.java | 325 ++++++++++
.../entity/domain/ExchangePointProducts.java | 132 ++++
.../shanzhu/market/entity/domain/Goods.java | 238 +++++++
.../market/entity/domain/GoodsCategory.java | 69 ++
.../market/entity/domain/GoodsStore.java | 77 +++
.../shanzhu/market/entity/domain/Member.java | 113 ++++
.../shanzhu/market/entity/domain/Menu.java | 167 +++++
.../market/entity/domain/NoticeIn.java | 68 ++
.../market/entity/domain/NoticeOut.java | 68 ++
.../market/entity/domain/PointProducts.java | 114 ++++
.../shanzhu/market/entity/domain/Role.java | 74 +++
.../market/entity/domain/SaleRecords.java | 172 +++++
.../shanzhu/market/entity/domain/Store.java | 80 +++
.../market/entity/domain/Supplier.java | 88 +++
.../market/entity/query/BaseQuery.java | 49 ++
.../market/entity/query/MenuQuery.java | 17 +
.../market/entity/query/QueryDept.java | 29 +
.../query/QueryDetailStorageSituation.java | 29 +
.../entity/query/QueryDetailStoreGoods.java | 65 ++
.../query/QueryDetailStoreGoodsOut.java | 77 +++
.../market/entity/query/QueryEditPwd.java | 43 ++
.../shanzhu/market/entity/query/QueryEmp.java | 77 +++
.../QueryExchangePointProductsRecords.java | 53 ++
.../market/entity/query/QueryGoods.java | 89 +++
.../entity/query/QueryGoodsCategory.java | 120 ++++
.../market/entity/query/QueryGoodsStore.java | 17 +
.../market/entity/query/QueryMember.java | 41 ++
.../market/entity/query/QueryNoticeIn.java | 17 +
.../market/entity/query/QueryNoticeOut.java | 29 +
.../entity/query/QueryPointProducts.java | 17 +
.../market/entity/query/QuerySaleRecords.java | 65 ++
.../entity/query/QueryStatisticSale.java | 17 +
.../entity/query/QueryStorageSituation.java | 17 +
.../market/entity/query/QueryStore.java | 31 +
.../market/entity/query/QuerySupplier.java | 41 ++
.../market/entity/query/RoleQuery.java | 29 +
.../shanzhu/market/entity/vo/DetailEmpVo.java | 241 +++++++
.../entity/vo/DetailStorageSituationVo.java | 63 ++
.../entity/vo/DetailStoreGoodsOutVo.java | 157 +++++
.../market/entity/vo/DetailStoreGoodsVo.java | 221 +++++++
.../shanzhu/market/entity/vo/EditEmpVo.java | 163 +++++
.../shanzhu/market/entity/vo/GoodsListVo.java | 167 +++++
.../market/entity/vo/GoodsStoreVo.java | 67 ++
.../market/entity/vo/InformationVo.java | 151 +++++
.../market/entity/vo/NoticeInNotNormalVo.java | 121 ++++
.../market/entity/vo/RolePermissonVo.java | 86 +++
.../shanzhu/market/entity/vo/SaleGoodsVo.java | 82 +++
.../market/entity/vo/SalesStatisticsVo.java | 35 +
.../market/entity/vo/StorageSituationVo.java | 45 ++
.../com/shanzhu/market/job/CacheDataJob.java | 47 ++
.../com/shanzhu/market/mapper/DeptMapper.java | 17 +
.../mapper/DetailSaleRecordsMapper.java | 17 +
.../market/mapper/DetailStoreGoodsMapper.java | 17 +
.../shanzhu/market/mapper/EmployeeMapper.java | 17 +
.../mapper/ExchangePointProductsMapper.java | 17 +
.../market/mapper/GoodsCategoryMapper.java | 17 +
.../shanzhu/market/mapper/GoodsMapper.java | 30 +
.../market/mapper/GoodsStoreMapper.java | 28 +
.../shanzhu/market/mapper/MemberMapper.java | 17 +
.../com/shanzhu/market/mapper/MenuMapper.java | 17 +
.../market/mapper/PointProductsMapper.java | 17 +
.../com/shanzhu/market/mapper/RoleMapper.java | 72 +++
.../market/mapper/SaleRecordsMapper.java | 17 +
.../shanzhu/market/mapper/StoreMapper.java | 17 +
.../shanzhu/market/mapper/SupplierMapper.java | 17 +
.../shanzhu/market/service/IDeptService.java | 35 +
.../service/IDetailSaleRecordsService.java | 7 +
.../service/IDetailStoreGoodsService.java | 33 +
.../market/service/IEmployeeService.java | 40 ++
.../IExchangePointProductsService.java | 30 +
.../market/service/IGoodsCategoryService.java | 34 +
.../shanzhu/market/service/IGoodsService.java | 54 ++
.../market/service/IGoodsStoreService.java | 24 +
.../shanzhu/market/service/ILoginService.java | 36 ++
.../market/service/IMemberService.java | 20 +
.../shanzhu/market/service/IMenuService.java | 34 +
.../market/service/IPointProductsService.java | 21 +
.../shanzhu/market/service/IRoleService.java | 51 ++
.../market/service/ISaleRecordsService.java | 19 +
.../shanzhu/market/service/IStoreService.java | 22 +
.../market/service/ISupplierService.java | 22 +
.../market/service/impl/DeptServiceImpl.java | 88 +++
.../impl/DetailSaleRecordsServiceImpl.java | 19 +
.../impl/DetailStoreGoodsServiceImpl.java | 344 ++++++++++
.../service/impl/EmployeeServiceImpl.java | 296 +++++++++
.../ExchangePointProductsServiceImpl.java | 244 +++++++
.../impl/GoodsCategoryServiceImpl.java | 140 ++++
.../market/service/impl/GoodsServiceImpl.java | 609 ++++++++++++++++++
.../service/impl/GoodsStoreServiceImpl.java | 144 +++++
.../market/service/impl/LoginServiceImpl.java | 142 ++++
.../service/impl/MemberServiceImpl.java | 79 +++
.../market/service/impl/MenuServiceImpl.java | 168 +++++
.../impl/PointProductsServiceImpl.java | 95 +++
.../market/service/impl/RoleServiceImpl.java | 274 ++++++++
.../service/impl/SaleRecordsServiceImpl.java | 117 ++++
.../market/service/impl/StoreServiceImpl.java | 74 +++
.../service/impl/SupplierServiceImpl.java | 101 +++
.../src/main/resources/application.yaml | 24 +
.../src/main/resources/mapper/GoodsMapper.xml | 53 ++
.../resources/mapper/GoodsStoreMapper.xml | 22 +
.../src/main/resources/mapper/MenuMapper.xml | 22 +
.../src/main/resources/mapper/RoleMapper.xml | 40 ++
.../static/files/1694324278293_file.jpg | Bin 0 -> 644045 bytes
.../static/files/1694434162457_07.jpg | Bin 0 -> 179715 bytes
.../static/files/1694434783850_04.jpg | Bin 0 -> 162732 bytes
.../static/files/1694434840737_05.jpg | Bin 0 -> 791642 bytes
.../static/files/1694434883855_03.jpg | Bin 0 -> 213820 bytes
.../static/files/1694434945440_02.jpg | Bin 0 -> 403288 bytes
...21618_e04f06dc02b84d38bc4d1ba2b39add0d.jpg | Bin 0 -> 243897 bytes
.../static/files/1725800498537_1.png | Bin 0 -> 49057 bytes
.../static/files/1725801956845_1.jpg | Bin 0 -> 196433 bytes
.../static/files/1725840264635_1.jpg | Bin 0 -> 196433 bytes
.../static/files/1726318271296_R-C.jpg | Bin 0 -> 51508 bytes
.../static/files/1726322332719_1.jpeg | Bin 0 -> 6028 bytes
.../static/files/1726328928308_R-C.jpg | Bin 0 -> 51508 bytes
160 files changed, 12397 insertions(+)
create mode 100644 superMarket-backend/superMarket-backend/.gitignore
create mode 100644 superMarket-backend/superMarket-backend/doc/db_market.sql
create mode 100644 superMarket-backend/superMarket-backend/pom.xml
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/BackendApplication.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/advice/ExceptionControllerAdvice.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/BaseWebConfig.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/MpConfig.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/constants/HttpStatus.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/BusinessException.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/SysException.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/redis/config/RedisConfig.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/redis/constants/RedisKeys.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/redis/service/RedisTemplateService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/sercurity/annotation/HasPermisson.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/sercurity/annotation/NoRequireLogin.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/sercurity/interceptor/EmpLoginInterceptor.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/sercurity/resolver/UserInfoArgumentResolver.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/sercurity/resolver/UserParam.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/util/DateUtil.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/util/PathUtils.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/util/UploadUtil.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/web/response/JsonResult.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/DeptController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/EmployeeController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/ExchangePointProductsRecordsController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/GoodsCategoryController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/GoodsController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/GoodsStoreController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/LoginEmpController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/MemberController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/MenuController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/NoticeController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/PersonalController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/PointProductController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/RoleController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/SaleRecordController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/StatisticSaleController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/StorageSituationController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/StoreController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/StoreInController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/StoreOutController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/controller/SupplierController.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Dept.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/DetailSaleRecords.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/DetailStoreGoods.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Employee.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/ExchangePointProducts.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Goods.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/GoodsCategory.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/GoodsStore.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Member.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Menu.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/NoticeIn.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/NoticeOut.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/PointProducts.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Role.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/SaleRecords.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Store.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/domain/Supplier.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/BaseQuery.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/MenuQuery.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryDept.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryDetailStorageSituation.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryDetailStoreGoods.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryDetailStoreGoodsOut.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryEditPwd.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryEmp.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryExchangePointProductsRecords.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryGoods.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryGoodsCategory.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryGoodsStore.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryMember.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryNoticeIn.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryNoticeOut.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryPointProducts.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QuerySaleRecords.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryStatisticSale.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryStorageSituation.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QueryStore.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/QuerySupplier.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/query/RoleQuery.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/DetailEmpVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/DetailStorageSituationVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/DetailStoreGoodsOutVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/DetailStoreGoodsVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/EditEmpVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/GoodsListVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/GoodsStoreVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/InformationVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/NoticeInNotNormalVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/RolePermissonVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/SaleGoodsVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/SalesStatisticsVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/entity/vo/StorageSituationVo.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/job/CacheDataJob.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/DeptMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/DetailSaleRecordsMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/DetailStoreGoodsMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/EmployeeMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/ExchangePointProductsMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/GoodsCategoryMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/GoodsMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/GoodsStoreMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/MemberMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/MenuMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/PointProductsMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/RoleMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/SaleRecordsMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/StoreMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/mapper/SupplierMapper.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IDeptService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IDetailSaleRecordsService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IDetailStoreGoodsService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IEmployeeService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IExchangePointProductsService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IGoodsCategoryService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IGoodsService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IGoodsStoreService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/ILoginService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IMemberService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IMenuService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IPointProductsService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IRoleService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/ISaleRecordsService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/IStoreService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/ISupplierService.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/DeptServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/DetailSaleRecordsServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/DetailStoreGoodsServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/EmployeeServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/ExchangePointProductsServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/GoodsCategoryServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/GoodsServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/GoodsStoreServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/LoginServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/MemberServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/MenuServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/PointProductsServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/RoleServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/SaleRecordsServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/StoreServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/service/impl/SupplierServiceImpl.java
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/application.yaml
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/mapper/GoodsMapper.xml
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/mapper/GoodsStoreMapper.xml
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/mapper/MenuMapper.xml
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/mapper/RoleMapper.xml
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694324278293_file.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694434162457_07.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694434783850_04.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694434840737_05.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694434883855_03.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694434945440_02.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1694435421618_e04f06dc02b84d38bc4d1ba2b39add0d.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1725800498537_1.png
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1725801956845_1.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1725840264635_1.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1726318271296_R-C.jpg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1726322332719_1.jpeg
create mode 100644 superMarket-backend/superMarket-backend/src/main/resources/static/files/1726328928308_R-C.jpg
diff --git a/superMarket-backend/superMarket-backend/.gitignore b/superMarket-backend/superMarket-backend/.gitignore
new file mode 100644
index 0000000..24062a7
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/.gitignore
@@ -0,0 +1,37 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target
+/.mvn/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+*.log
+*.jar
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+
+### VS Code ###
+.vscode/
diff --git a/superMarket-backend/superMarket-backend/doc/db_market.sql b/superMarket-backend/superMarket-backend/doc/db_market.sql
new file mode 100644
index 0000000..0ed766a
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/doc/db_market.sql
@@ -0,0 +1,554 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : local
+ Source Server Type : MySQL
+ Source Server Version : 80029 (8.0.29)
+ Source Host : localhost:3306
+ Source Schema : db_market
+
+ Target Server Type : MySQL
+ Target Server Version : 80029 (8.0.29)
+ File Encoding : 65001
+
+ Date: 09/09/2024 08:11:51
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for department
+-- ----------------------------
+DROP TABLE IF EXISTS `department`;
+CREATE TABLE `department` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `name` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '部门名称',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '状态',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of department
+-- ----------------------------
+BEGIN;
+INSERT INTO `department` (`id`, `name`, `info`, `state`) VALUES (8, '销售部', '销售部门', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for detail_sale_records
+-- ----------------------------
+DROP TABLE IF EXISTS `detail_sale_records`;
+CREATE TABLE `detail_sale_records` (
+ `sell_cn` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '销售订单号',
+ `goods_id` bigint NOT NULL COMMENT '商品编号',
+ `goods_num` bigint NOT NULL COMMENT '商品数量',
+ `goods_price` double(10,2) NOT NULL COMMENT '销售单价',
+ `goods_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '商品名'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of detail_sale_records
+-- ----------------------------
+BEGIN;
+INSERT INTO `detail_sale_records` (`sell_cn`, `goods_id`, `goods_num`, `goods_price`, `goods_name`) VALUES ('1701213155180429314', 7, 1, 120.00, '运动鞋');
+INSERT INTO `detail_sale_records` (`sell_cn`, `goods_id`, `goods_num`, `goods_price`, `goods_name`) VALUES ('1701220094014722049', 9, 1, 350.00, '桌椅套装');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for employee
+-- ----------------------------
+DROP TABLE IF EXISTS `employee`;
+CREATE TABLE `employee` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `phone` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '用户名',
+ `email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '邮箱',
+ `address` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '住址',
+ `sex` char(1) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '性别',
+ `password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '密码',
+ `nick_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '昵称',
+ `head_img` longtext CHARACTER SET utf8mb3 COLLATE utf8_bin COMMENT '头像',
+ `state` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '状态 0:在职 1:离职',
+ `isAdmin` bit(1) DEFAULT NULL COMMENT '是否是超管 1:是 0不是',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
+ `createby` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `age` int DEFAULT NULL COMMENT '年龄',
+ `deptId` bigint DEFAULT NULL COMMENT '部门主键',
+ `id_card` varchar(18) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '身份证号',
+ `leave_time` datetime DEFAULT NULL COMMENT '离职时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of employee
+-- ----------------------------
+BEGIN;
+INSERT INTO `employee` (`id`, `phone`, `email`, `address`, `sex`, `password`, `nick_name`, `head_img`, `state`, `isAdmin`, `info`, `createby`, `create_time`, `age`, `deptId`, `id_card`, `leave_time`) VALUES (1, '13333333333', '123@qq.com', '杭州市余杭区水果摊', '1', '123456', '杭州水果捞', '/files/1725801956845_1.jpg', '0', b'1', '系统管理员', '张三', '2024-09-08 13:26:31', 29, NULL, '411111199905089999', NULL);
+INSERT INTO `employee` (`id`, `phone`, `email`, `address`, `sex`, `password`, `nick_name`, `head_img`, `state`, `isAdmin`, `info`, `createby`, `create_time`, `age`, `deptId`, `id_card`, `leave_time`) VALUES (15, '14788888888', NULL, '北京市海淀区', '1', '123456', '李四', '/files/1694434162457_07.jpg', '0', b'0', '销售人员', '杭州水果捞', '2024-09-09 00:06:51', 18, 8, '411111199501019999', NULL);
+INSERT INTO `employee` (`id`, `phone`, `email`, `address`, `sex`, `password`, `nick_name`, `head_img`, `state`, `isAdmin`, `info`, `createby`, `create_time`, `age`, `deptId`, `id_card`, `leave_time`) VALUES (16, '15455555555', NULL, NULL, '1', '123456', '叶子', '/files/1694434162457_07.jpg', '0', b'0', '仓库管理员', '张三', '2023-09-11 13:06:52', 18, 8, '511111199501015555', NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for exchange_point_products_records
+-- ----------------------------
+DROP TABLE IF EXISTS `exchange_point_products_records`;
+CREATE TABLE `exchange_point_products_records` (
+ `cn` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '订单号',
+ `goods_id` bigint DEFAULT NULL COMMENT '商品编号',
+ `member_id` bigint DEFAULT NULL COMMENT '会员编号',
+ `integral` bigint DEFAULT NULL COMMENT '积分',
+ `update_time` datetime DEFAULT NULL COMMENT '最近操作时间',
+ `updateby` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '操作者',
+ `update_id` bigint DEFAULT NULL COMMENT '操作者编号',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '状态',
+ PRIMARY KEY (`cn`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of exchange_point_products_records
+-- ----------------------------
+BEGIN;
+INSERT INTO `exchange_point_products_records` (`cn`, `goods_id`, `member_id`, `integral`, `update_time`, `updateby`, `update_id`, `state`) VALUES ('1701220420541288450', 10, 5, 60, '2023-09-11 13:05:30', '张三', 1, '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for goods
+-- ----------------------------
+DROP TABLE IF EXISTS `goods`;
+CREATE TABLE `goods` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '商品名',
+ `createby` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '创建者',
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
+ `category_id` bigint DEFAULT NULL COMMENT '商品分类id',
+ `sell_price` double(10,2) DEFAULT NULL COMMENT '销售价格',
+ `purchash_price` double(10,2) DEFAULT NULL COMMENT '进货价格',
+ `update_time` datetime DEFAULT NULL COMMENT '更改时间',
+ `updateby` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '更改者',
+ `category_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci DEFAULT NULL COMMENT '分类名',
+ `cover_url` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '商品封面',
+ `state` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT '状态',
+ `residue_num` bigint DEFAULT NULL COMMENT '剩余数量',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
+ `sales_volume` bigint DEFAULT NULL COMMENT '销量',
+ `inventory` bigint DEFAULT NULL COMMENT '需库存量',
+ `shelves` bigint DEFAULT NULL COMMENT '货架上需摆放的数量',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of goods
+-- ----------------------------
+BEGIN;
+INSERT INTO `goods` (`id`, `name`, `createby`, `create_time`, `category_id`, `sell_price`, `purchash_price`, `update_time`, `updateby`, `category_name`, `cover_url`, `state`, `residue_num`, `info`, `sales_volume`, `inventory`, `shelves`) VALUES (7, '运动鞋', '张三', '2023-09-11 12:20:02', 9, 150.00, 120.00, '2023-09-11 12:20:02', '张三', '服装', '/files/1694434783850_04.jpg', '0', 19, '适合打球跑步的运动鞋', 1, 100, 10);
+INSERT INTO `goods` (`id`, `name`, `createby`, `create_time`, `category_id`, `sell_price`, `purchash_price`, `update_time`, `updateby`, `category_name`, `cover_url`, `state`, `residue_num`, `info`, `sales_volume`, `inventory`, `shelves`) VALUES (8, '《PASLMS》英文版', '张三', '2023-09-11 12:21:11', 11, 55.00, 50.00, '2023-09-11 12:21:11', '张三', '书籍', '/files/1694434840737_05.jpg', '0', 60, '著名书籍《PASLMS》英文版', NULL, 200, 50);
+INSERT INTO `goods` (`id`, `name`, `createby`, `create_time`, `category_id`, `sell_price`, `purchash_price`, `update_time`, `updateby`, `category_name`, `cover_url`, `state`, `residue_num`, `info`, `sales_volume`, `inventory`, `shelves`) VALUES (9, '桌椅套装', '张三', '2023-09-11 12:21:43', 13, 400.00, 350.00, '2023-09-11 12:22:00', '张三', '办公用具', '/files/1694434883855_03.jpg', '0', 9, '桌子加椅子', 1, 300, 20);
+INSERT INTO `goods` (`id`, `name`, `createby`, `create_time`, `category_id`, `sell_price`, `purchash_price`, `update_time`, `updateby`, `category_name`, `cover_url`, `state`, `residue_num`, `info`, `sales_volume`, `inventory`, `shelves`) VALUES (10, '短袖', '张三', '2023-09-11 12:22:50', 9, 60.00, 40.00, '2023-09-11 12:22:50', '张三', '服装', '/files/1694434945440_02.jpg', '0', 60, '夏季短袖', NULL, NULL, NULL);
+INSERT INTO `goods` (`id`, `name`, `createby`, `create_time`, `category_id`, `sell_price`, `purchash_price`, `update_time`, `updateby`, `category_name`, `cover_url`, `state`, `residue_num`, `info`, `sales_volume`, `inventory`, `shelves`) VALUES (11, '变形金刚玩具套装', '张三', '2023-09-11 12:30:45', 13, 165.00, 140.00, '2023-09-11 12:30:45', '张三', '办公用具', '/files/1694435421618_e04f06dc02b84d38bc4d1ba2b39add0d.jpg', '0', 20, '变形金刚玩具套装', NULL, NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for goods_category
+-- ----------------------------
+DROP TABLE IF EXISTS `goods_category`;
+CREATE TABLE `goods_category` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '分类名',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '状态',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of goods_category
+-- ----------------------------
+BEGIN;
+INSERT INTO `goods_category` (`id`, `name`, `info`, `state`) VALUES (9, '服装', '衣服鞋袜', '0');
+INSERT INTO `goods_category` (`id`, `name`, `info`, `state`) VALUES (10, '零食', '饭后零食', '0');
+INSERT INTO `goods_category` (`id`, `name`, `info`, `state`) VALUES (11, '书籍', NULL, '0');
+INSERT INTO `goods_category` (`id`, `name`, `info`, `state`) VALUES (12, '饮料酒水', '饮料酒水类别', '0');
+INSERT INTO `goods_category` (`id`, `name`, `info`, `state`) VALUES (13, '办公用具', '办公用具', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for point_products
+-- ----------------------------
+DROP TABLE IF EXISTS `point_products`;
+CREATE TABLE `point_products` (
+ `goods_id` bigint DEFAULT NULL,
+ `goods_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ `integral` bigint DEFAULT NULL,
+ `updateby` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ `update_time` datetime DEFAULT NULL,
+ `update_id` bigint DEFAULT NULL,
+ `cover_url` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of point_products
+-- ----------------------------
+BEGIN;
+INSERT INTO `point_products` (`goods_id`, `goods_name`, `integral`, `updateby`, `update_time`, `update_id`, `cover_url`, `state`) VALUES (11, '变形金刚玩具套装', 50, '张三', '2023-09-11 12:59:48', 1, '/files/1694435421618_e04f06dc02b84d38bc4d1ba2b39add0d.jpg', '0');
+INSERT INTO `point_products` (`goods_id`, `goods_name`, `integral`, `updateby`, `update_time`, `update_id`, `cover_url`, `state`) VALUES (10, '短袖', 60, '张三', '2023-09-11 12:59:57', 1, '/files/1694434945440_02.jpg', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for store
+-- ----------------------------
+DROP TABLE IF EXISTS `store`;
+CREATE TABLE `store` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '仓库名称',
+ `address` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '仓库地址',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '状态',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of store
+-- ----------------------------
+BEGIN;
+INSERT INTO `store` (`id`, `name`, `address`, `state`, `info`) VALUES (5, '一号仓库', '北京市海淀区', '0', '超市一号仓库');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for supplier
+-- ----------------------------
+DROP TABLE IF EXISTS `supplier`;
+CREATE TABLE `supplier` (
+ `cn` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
+ `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '名称',
+ `address` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '地址',
+ `tel` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '联系电话',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ PRIMARY KEY (`cn`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of supplier
+-- ----------------------------
+BEGIN;
+INSERT INTO `supplier` (`cn`, `name`, `address`, `tel`, `info`, `state`) VALUES (7, '阿里巴巴', '浙江省杭州市', '19955555555', '1688商家供货商', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_detail_store_goods
+-- ----------------------------
+DROP TABLE IF EXISTS `t_detail_store_goods`;
+CREATE TABLE `t_detail_store_goods` (
+ `cn` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL,
+ `goods_id` bigint NOT NULL,
+ `goods_num` int DEFAULT NULL,
+ `goods_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL,
+ `goods_price` double DEFAULT NULL COMMENT '0:入库 1:出库',
+ `type` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL,
+ `createid` bigint NOT NULL,
+ `create_time` datetime NOT NULL,
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '0:正常 1:过期 2:下架',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ `expiry_time` datetime DEFAULT NULL COMMENT '过期时间',
+ `createby` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ `birth_time` datetime DEFAULT NULL COMMENT '生产时间',
+ `state1` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '0:正常 1:删除 2:待处理',
+ `store_id` bigint DEFAULT NULL,
+ `supplier_id` bigint DEFAULT NULL COMMENT '供货商编号',
+ `supplier_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '供货商名称',
+ `untreated_num` bigint DEFAULT NULL COMMENT '待处理数量',
+ PRIMARY KEY (`cn`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_detail_store_goods
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701212006578667522', 7, 200, '运动鞋', 120, '0', 1, '2023-09-11 12:32:04', '0', '运动鞋入库', '2029-06-25 16:00:00', '张三', '2023-09-10 16:00:00', '0', 5, 7, '阿里巴巴', NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701212043736006658', 8, 200, '《PASLMS》英文版', 50, '0', 1, '2023-09-11 12:32:13', '0', '', '2029-06-25 16:00:00', '张三', '2023-09-10 16:00:00', '0', 5, 7, '阿里巴巴', NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701212067161194498', 9, 200, '桌椅套装', 350, '0', 1, '2023-09-11 12:32:18', '0', '', '2029-06-25 16:00:00', '张三', '2023-09-10 16:00:00', '0', 5, 7, '阿里巴巴', NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701212086803120129', 10, 200, '短袖', 40, '0', 1, '2023-09-11 12:32:23', '0', '', '2029-06-25 16:00:00', '张三', '2023-09-10 16:00:00', '0', 5, 7, '阿里巴巴', NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701212102829555713', 11, 200, '变形金刚玩具套装', 140, '0', 1, '2023-09-11 12:32:27', '0', '', '2029-06-25 16:00:00', '张三', '2023-09-10 16:00:00', '0', 5, 7, '阿里巴巴', NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701212176804495361', 7, 20, '运动鞋', NULL, '1', 1, '2023-09-11 12:32:45', '0', '', NULL, '张三', NULL, '0', 5, NULL, NULL, NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701218295690104833', 8, 50, '《PASLMS》英文版', NULL, '1', 1, '2023-09-11 12:57:03', '0', '', NULL, '张三', NULL, '0', 5, NULL, NULL, NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701218352346763266', 9, 10, '桌椅套装', NULL, '1', 1, '2023-09-11 12:57:17', '0', '', NULL, '张三', NULL, '0', 5, NULL, NULL, NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701218386224156674', 10, 60, '短袖', NULL, '1', 1, '2023-09-11 12:57:25', '0', '', NULL, '张三', NULL, '0', 5, NULL, NULL, NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701218444214603778', 11, 20, '变形金刚玩具套装', NULL, '1', 1, '2023-09-11 12:57:39', '0', '', NULL, '张三', NULL, '0', 5, NULL, NULL, NULL);
+INSERT INTO `t_detail_store_goods` (`cn`, `goods_id`, `goods_num`, `goods_name`, `goods_price`, `type`, `createid`, `create_time`, `state`, `info`, `expiry_time`, `createby`, `birth_time`, `state1`, `store_id`, `supplier_id`, `supplier_name`, `untreated_num`) VALUES ('1701219991275245570', 8, 10, '《PASLMS》英文版', NULL, '1', 1, '2023-09-11 13:03:48', '0', '', NULL, '张三', NULL, '0', 5, NULL, NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_emp_role
+-- ----------------------------
+DROP TABLE IF EXISTS `t_emp_role`;
+CREATE TABLE `t_emp_role` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `eid` bigint NOT NULL COMMENT '用户id',
+ `rid` bigint NOT NULL COMMENT '角色id',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_emp_role
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_emp_role` (`id`, `eid`, `rid`) VALUES (1, 1, 2);
+INSERT INTO `t_emp_role` (`id`, `eid`, `rid`) VALUES (20, 15, 3);
+INSERT INTO `t_emp_role` (`id`, `eid`, `rid`) VALUES (21, 16, 4);
+INSERT INTO `t_emp_role` (`id`, `eid`, `rid`) VALUES (22, 16, 5);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_goods_store
+-- ----------------------------
+DROP TABLE IF EXISTS `t_goods_store`;
+CREATE TABLE `t_goods_store` (
+ `goods_id` bigint NOT NULL COMMENT '商品编号',
+ `store_id` bigint NOT NULL COMMENT '仓库编号',
+ `in_num` bigint NOT NULL COMMENT '入库数数量',
+ `residue_num` bigint NOT NULL COMMENT '剩余数量',
+ `store_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '仓库名'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_goods_store
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_goods_store` (`goods_id`, `store_id`, `in_num`, `residue_num`, `store_name`) VALUES (7, 5, 200, 180, '一号仓库');
+INSERT INTO `t_goods_store` (`goods_id`, `store_id`, `in_num`, `residue_num`, `store_name`) VALUES (8, 5, 200, 140, '一号仓库');
+INSERT INTO `t_goods_store` (`goods_id`, `store_id`, `in_num`, `residue_num`, `store_name`) VALUES (9, 5, 200, 190, '一号仓库');
+INSERT INTO `t_goods_store` (`goods_id`, `store_id`, `in_num`, `residue_num`, `store_name`) VALUES (10, 5, 200, 140, '一号仓库');
+INSERT INTO `t_goods_store` (`goods_id`, `store_id`, `in_num`, `residue_num`, `store_name`) VALUES (11, 5, 200, 180, '一号仓库');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_member
+-- ----------------------------
+DROP TABLE IF EXISTS `t_member`;
+CREATE TABLE `t_member` (
+ `id` bigint NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
+ `phone` varchar(11) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '手机号',
+ `password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '密码',
+ `email` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '邮箱',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '状态',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
+ `integral` bigint DEFAULT NULL COMMENT '会员积分',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_member
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_member` (`id`, `name`, `phone`, `password`, `email`, `state`, `info`, `integral`) VALUES (5, '陈小明', '19955555555', '123456', '123@qq.com', '0', '新会员', 2622);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `t_menu`;
+CREATE TABLE `t_menu` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `label` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '名称',
+ `purl` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '地址',
+ `type` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '类型 0:目录 1 菜单 2 按钮',
+ `parent_id` bigint DEFAULT NULL COMMENT '父id',
+ `parent_label` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '父名称',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
+ `state` varchar(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '状态',
+ `flag` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '权限的唯一标识',
+ `icon` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '图标',
+ `component` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '组件路径',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (1, '销售管理', NULL, '0', NULL, NULL, NULL, '0', 'sale_management', 'iconfont icon-r-shield', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (2, '人事管理', NULL, '0', NULL, NULL, NULL, '0', 'personnel_management', 'iconfont icon-r-team', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (3, '个人中心', NULL, '0', NULL, NULL, NULL, '0', 'personal', 'iconfont icon-r-user2', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (4, '库存管理', NULL, '0', NULL, NULL, NULL, '0', 'inventory_management', 'iconfont icon-r-building', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (5, '会员管理', NULL, '0', NULL, NULL, NULL, '0', 'member_management', 'iconfont icon-r-mark1', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (6, '系统管理', NULL, '0', NULL, NULL, NULL, '0', 'system', 'iconfont icon-r-setting', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (7, '密码修改', '/personal/edit_pwd', '1', 3, '个人中心', NULL, '0', 'personal:edit_pwd', 'iconfont icon-r-lock', 'views/personal/Edit_pwd');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (8, '角色管理', '/system/role/list', '1', 6, '系统管理', NULL, '0', 'system:role:list', 'iconfont icon-r-user3', 'views/system/role/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (9, '创建角色', NULL, '2', 8, '角色管理', NULL, '0', 'system:role:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (10, '修改角色', NULL, '2', 8, '角色管理', NULL, '0', 'system:role:edit_role', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (11, '停用角色', NULL, '2', 8, '角色管理', NULL, '0', 'system:role:forbiddenRole', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (12, '角色授权', NULL, '2', 8, '角色管理', NULL, '0', 'system:role:saveRolePermissons', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (14, '菜单管理', '/system/menu/list', '1', 6, '系统管理', NULL, '0', 'system:menu:list', 'iconfont icon-r-list', 'views/system/menu/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (15, '仓库管理', '/inventory_management/store/list', '1', 4, '库存管理', NULL, '0', 'inventory_management:store:list', 'iconfont icon-r-building', 'views/inventory_management/store/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (16, '新创仓库', '', '2', 15, '仓库管理', NULL, '0', 'inventory_management:store:save', NULL, '');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (17, '修改仓库', '', '2', 15, '仓库管理', NULL, '0', 'inventory_management:store:update', NULL, '');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (18, '停用仓库', '', '2', 15, '仓库管理', NULL, '0', 'inventory_management:store:deactivate', NULL, '');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (19, '商品管理', NULL, '0', NULL, NULL, NULL, '0', 'goods_management:goods_category', 'iconfont icon-r-mark2', NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (20, '分类管理', '/goods_management/goods_category/list', '1', 19, '商品管理', NULL, '0', 'goods_management:goods_category:list', 'iconfont icon-r-list', 'views/goods_management/goods_category/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (21, '创建商品分类', '', '2', 20, '商品分类管理', NULL, '0', 'goods_management:goods_category:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (22, '修改商品分类', '', '2', 20, '商品分类管理', NULL, '0', 'goods_management:goods_category:update', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (23, '停用商品分类', '', '2', 20, '商品分类管理', NULL, '0', 'goods_management:goods_category:deactivate', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (24, '部门管理', '/personnel_management/dept/list', '1', 2, '人事管理', NULL, '0', 'personnel_management:dept:list', 'iconfont icon-r-team', 'views/personnel_management/dept/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (25, '创建部门', NULL, '2', 24, '部门管理', NULL, '0', 'personnel_management:dept:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (26, '修改部门', NULL, '2', 24, '部门管理', NULL, '0', 'personnel_management:dept:update', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (27, '停用部门', NULL, '2', 24, '部门管理', NULL, '0', 'personnel_management:dept:deactivate', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (28, '员工管理', '/personnel_management/employee/list', '1', 2, '人事管理', NULL, '0', 'personnel_management:employee:list', 'iconfont icon-r-user2', 'views/personnel_management/employee/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (29, '商品信息', '/goods_management/goods/list', '1', 19, '商品管理', NULL, '0', 'goods_management:goods:list', 'iconfont icon-r-shield', 'views/goods_management/goods/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (31, '会员信息', '/member_management/member/list', '1', 5, '会员管理', NULL, '0', 'member_management:member:list', 'iconfont icon-r-mark1', 'views/member_management/member/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (32, '个人资料', '/personal/information', '1', 3, '个人中心', NULL, '0', 'personnel_management:employee:update', 'iconfont icon-r-paper', 'views/personal/Information');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (33, '出库明细', '/inventory_management/detail_store_goods_out/list', '1', 4, '库存管理', NULL, '0', 'inventory_management:detail_store_goods_out:list', 'iconfont icon-r-left', 'views/inventory_management/detail_store_goods_out/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (34, '入库明细', '/inventory_management/detail_store_goods_in/list', '1', 4, '库存管理', NULL, '0', 'inventory_management:detail_store_goods_in:list', 'iconfont icon-r-right', 'views/inventory_management/detail_store_goods_in/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (35, '销售主页', '/sale_management/sale_cmd/list', '1', 1, '销售管理', NULL, '0', 'sale_management:sale_cmd:list', 'iconfont icon-r-home', 'views/sale_management/sale_cmd/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (36, '销售记录', '/sale_management/sale_records/list', '1', 1, '销售管理', NULL, '0', 'sale_management:sale_records:list', 'iconfont icon-r-paper', 'views/sale_management/sale_records/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (37, '供货商信息', '/inventory_management/supplier/list', '1', 4, '库存管理', NULL, '0', 'inventory_management:supplier:list', 'iconfont icon-r-mark3', 'views/inventory_management/supplier/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (41, '积分商品', '/goods_management/point_products/list', '1', 19, '商品管理', NULL, '0', 'goods_management:point_products:list', 'iconfont icon-r-mark1', 'views/goods_management/point_products/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (42, '销售统计', '/goods_management/statistic_sale/list', '1', 19, '商品管理', NULL, '0', 'goods_management:statistic_sale:list', 'iconfont icon-r-add', 'views/goods_management/statistic_sale/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (43, '库存统计', '/inventory_management/store/storage_situation', '1', 4, '库存管理', NULL, '0', 'inventory_management:store:storage_situation', 'iconfont icon-r-add', 'views/inventory_management/store/StorageSituation');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (44, '积分兑换记录', '/sale_management/exchange_point_products_records/list', '1', 1, '销售管理', NULL, '0', 'sale_management:exchange_point_products_records:list', 'iconfont icon-r-paper', 'views//sale_management/exchange_point_products_records/List');
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (45, '员工创建', NULL, '2', 28, '员工管理', NULL, '0', 'personnel_management:employee:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (46, '员工修改', NULL, '2', 28, '员工管理', NULL, '0', 'personnel_management:employee:update', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (47, '员工分配职务', NULL, '2', 28, '员工管理', NULL, '0', 'personnel_management:employee:queryRoleIdsByEid', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (48, '重置员工密码', NULL, '2', 28, '员工管理', NULL, '0', 'personnel_management:employee:resetPwd', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (49, '商品入库', NULL, '2', 34, '入库明细', NULL, '0', 'inventory_management:detail_store_goods_in:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (50, '入库记录删除', NULL, '2', 34, '入库明细', NULL, '0', 'inventory_management:detail_store_goods_in:delIn', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (51, '商品出库', NULL, '2', 33, '出库明细', NULL, '0', 'inventory_management:detail_store_goods_out:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (52, '出库记录删除', NULL, '2', 33, '出库明细', NULL, '0', 'inventory_management:detail_store_goods_out:delOut', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (53, '创建', NULL, '2', 37, '供货商信息', NULL, '0', 'inventory_management:supplier:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (54, '修改', NULL, '2', 37, '供货商信息', NULL, '0', 'inventory_management:supplier:update', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (55, '删除', NULL, '2', 37, '供货商信息', NULL, '0', 'inventory_management:supplier:deactivate', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (56, '商品上架处理', NULL, '2', 40, '出库通知', NULL, '0', 'inventory_management:detail_store_goods_out:notice:saveOut_shelves', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (57, '商品过期/下架处理', NULL, '2', 40, '出库通知', NULL, '0', 'inventory_management:detail_store_goods_out:notice:resolveOutUntreatedForm', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (58, '创建', NULL, '2', 31, '会员信息管理', NULL, '0', 'member_management:member:save', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (59, '兑换商品', NULL, '2', 31, '会员信息管理', NULL, '0', 'sale_management:exchange_point_products_records:saveExchangePointProductRecords', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (60, '修改', NULL, '2', 31, '会员信息管理', NULL, '0', 'member_management:member:update', NULL, NULL);
+INSERT INTO `t_menu` (`id`, `label`, `purl`, `type`, `parent_id`, `parent_label`, `info`, `state`, `flag`, `icon`, `component`) VALUES (61, '删除', NULL, '2', 31, '会员信息管理', NULL, '0', 'member_management:member:delMember', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_role
+-- ----------------------------
+DROP TABLE IF EXISTS `t_role`;
+CREATE TABLE `t_role` (
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '角色名',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '状态 0: 正常 -1:停用',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_role
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (1, '系统管理员', '系统拥有者', '0');
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (2, '超级系统拥有者', '超级系统拥有者', '0');
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (3, '收银员', '负责销售收钱', '0');
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (4, '仓库管理员', '负责管理库存', '0');
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (5, '商品管理员', '负责商品货架的商品数量、通知仓库管理员入库和出库', '0');
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (6, '人事主管', '负责管理部门信息和员工信息', '0');
+INSERT INTO `t_role` (`id`, `name`, `info`, `state`) VALUES (7, '员工', '超市工作人员', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `t_role_menu`;
+CREATE TABLE `t_role_menu` (
+ `id` int NOT NULL AUTO_INCREMENT,
+ `rid` bigint NOT NULL COMMENT '角色id',
+ `mid` bigint NOT NULL COMMENT '菜单id',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=134 DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_role_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (64, 4, 32);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (65, 4, 33);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (66, 4, 34);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (67, 4, 3);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (68, 4, 4);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (69, 4, 37);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (70, 4, 7);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (73, 4, 43);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (74, 4, 15);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (75, 4, 16);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (76, 4, 17);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (77, 4, 49);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (78, 4, 18);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (79, 4, 50);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (80, 4, 51);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (81, 4, 52);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (82, 4, 53);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (83, 4, 54);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (84, 4, 55);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (85, 4, 56);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (86, 4, 57);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (87, 5, 19);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (88, 5, 20);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (89, 5, 21);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (90, 5, 22);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (92, 5, 23);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (93, 5, 41);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (94, 5, 42);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (95, 5, 29);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (96, 6, 48);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (97, 6, 2);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (98, 6, 24);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (99, 6, 25);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (100, 6, 26);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (101, 6, 27);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (102, 6, 28);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (103, 6, 45);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (104, 6, 46);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (105, 6, 47);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (109, 7, 32);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (110, 7, 3);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (111, 7, 7);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (121, 3, 32);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (122, 3, 1);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (123, 3, 3);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (124, 3, 35);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (125, 3, 36);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (126, 3, 5);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (127, 3, 7);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (128, 3, 44);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (129, 3, 58);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (130, 3, 59);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (131, 3, 60);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (132, 3, 61);
+INSERT INTO `t_role_menu` (`id`, `rid`, `mid`) VALUES (133, 3, 31);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for t_sale_records
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sale_records`;
+CREATE TABLE `t_sale_records` (
+ `cn` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL,
+ `eid` bigint NOT NULL,
+ `sellway` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL,
+ `sell_time` datetime NOT NULL,
+ `state` char(2) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '0:正常 1:删除',
+ `info` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
+ `sellby` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL,
+ `sell_total` bigint NOT NULL COMMENT '销售总数量',
+ `sell_totalmoney` double NOT NULL COMMENT '销售总金额',
+ `type` char(1) CHARACTER SET utf8mb3 COLLATE utf8_bin NOT NULL COMMENT '0:非会员消费 1:会员消费',
+ `member_phone` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8_bin DEFAULT NULL COMMENT '顾客会员号码',
+ PRIMARY KEY (`cn`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin ROW_FORMAT=COMPACT;
+
+-- ----------------------------
+-- Records of t_sale_records
+-- ----------------------------
+BEGIN;
+INSERT INTO `t_sale_records` (`cn`, `eid`, `sellway`, `sell_time`, `state`, `info`, `sellby`, `sell_total`, `sell_totalmoney`, `type`, `member_phone`) VALUES ('1701213155180429314', 15, '0', '2023-09-11 12:37:16', '0', '', '李四', 1, 120, '0', NULL);
+INSERT INTO `t_sale_records` (`cn`, `eid`, `sellway`, `sell_time`, `state`, `info`, `sellby`, `sell_total`, `sell_totalmoney`, `type`, `member_phone`) VALUES ('1701220094014722049', 1, '1', '2023-09-11 13:04:45', '0', '', '张三', 1, 315, '1', '19955555555');
+COMMIT;
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/superMarket-backend/superMarket-backend/pom.xml b/superMarket-backend/superMarket-backend/pom.xml
new file mode 100644
index 0000000..60613fe
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/pom.xml
@@ -0,0 +1,76 @@
+
+
+ 4.0.0
+
+ com.shasnzhu
+ superMarket-backend
+ 1.0.0
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.3.2.RELEASE
+
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.11
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.2
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.71
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ org.mindrot
+ jbcrypt
+ 0.4
+
+
+ commons-io
+ commons-io
+ 2.6
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.10
+ provided
+
+
+
\ No newline at end of file
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/BackendApplication.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/BackendApplication.java
new file mode 100644
index 0000000..f87776b
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/BackendApplication.java
@@ -0,0 +1,28 @@
+package com.shanzhu.market;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * SpringBoot 启动类
+ * 项目启动入口(点击右键 选择 "run BackendApplication" 启动项目)
+ *
+ * 什么是SpringBoot?(https://www.php.cn/faq/498384.html)
+ *
+ * @author: ShanZhu
+ * @date: 2024-08-16
+ */
+@Slf4j
+@SpringBootApplication
+public class BackendApplication {
+
+ public static void main(String[] args) {
+
+ //SpringBoot 执行启动
+ SpringApplication.run(BackendApplication.class, args);
+
+ log.info("=====================项目后端启动成功============================");
+ }
+
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/advice/ExceptionControllerAdvice.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/advice/ExceptionControllerAdvice.java
new file mode 100644
index 0000000..e3455e7
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/advice/ExceptionControllerAdvice.java
@@ -0,0 +1,35 @@
+package com.shanzhu.market.common.advice;
+
+import com.shanzhu.market.common.constants.HttpStatus; // 导入HTTP状态码常量类
+import com.shanzhu.market.common.exception.BusinessException; // 导入业务异常类
+import com.shanzhu.market.common.web.response.JsonResult; // 导入JSON结果封装类
+import org.springframework.web.bind.annotation.ExceptionHandler; // 导入异常处理器注解
+import org.springframework.web.bind.annotation.RestControllerAdvice; // 导入REST控制器增强注解
+
+/**
+ * 统一异常处理类的基类
+ */
+@RestControllerAdvice // 标记该类为REST控制器的全局异常处理器
+public class ExceptionControllerAdvice {
+
+ /**
+ * 处理所有运行时异常
+ * @param ex 运行时异常对象
+ * @return 包含错误信息的JSON结果
+ */
+ @ExceptionHandler(RuntimeException.class) // 指定处理的异常类型为RuntimeException
+ public JsonResult> commonExceptionHandler(RuntimeException ex){
+ ex.printStackTrace(); // 打印异常堆栈信息到控制台
+ return JsonResult.error(HttpStatus.CODE_BUSINESS_ERROR, ex.getMessage()); // 返回错误的JSON结果
+ }
+
+ /**
+ * 处理业务异常
+ * @param ex 业务异常对象
+ * @return 包含错误信息的JSON结果
+ */
+ @ExceptionHandler(BusinessException.class) // 指定处理的异常类型为BusinessException
+ public JsonResult> businessHanler(BusinessException ex){
+ return JsonResult.error(HttpStatus.CODE_BUSINESS_ERROR, ex.getMessage()); // 返回错误的JSON结果
+ }
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/BaseWebConfig.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/BaseWebConfig.java
new file mode 100644
index 0000000..923b665
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/BaseWebConfig.java
@@ -0,0 +1,80 @@
+package com.shanzhu.market.common.config;
+
+import com.shanzhu.market.common.sercurity.interceptor.EmpLoginInterceptor; // 导入员工登录拦截器类
+import com.shanzhu.market.common.util.PathUtils; // 导入路径工具类
+import org.springframework.context.annotation.Bean; // 导入Bean注解
+import org.springframework.context.annotation.Configuration; // 导入配置注解
+import org.springframework.web.servlet.config.annotation.CorsRegistry; // 导入跨域注册类
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry; // 导入拦截器注册类
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; // 导入资源处理器注册类
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; // 导入Web MVC配置接口
+
+/**
+ * 解决:1.跨域问题
+ */
+@Configuration // 标记该类为Spring配置类
+public class BaseWebConfig implements WebMvcConfigurer {
+
+ /**
+ * 创建并返回EmpLoginInterceptor实例
+ * @return EmpLoginInterceptor实例
+ */
+ @Bean // 标记该方法返回的对象为Spring管理的Bean
+ public EmpLoginInterceptor empLoginInterceptor(){
+ return new EmpLoginInterceptor(); // 创建并返回EmpLoginInterceptor实例
+ }
+
+ /**
+ * 添加拦截器
+ * @param registry 拦截器注册器
+ */
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ // 注册EmpLoginInterceptor拦截器,并设置拦截路径和排除路径
+// registry.addInterceptor(empLoginInterceptor())
+// .addPathPatterns("/**") // 拦截所有路径
+// .excludePathPatterns("/","/login") // 排除根路径和登录路径
+// .excludePathPatterns("/files/**") // 排除文件路径
+// .excludePathPatterns("/static/**"); // 排除静态资源路径
+ }
+
+ /**
+ * 配置跨域访问
+ * @return WebMvcConfigurer实例
+ */
+ @Bean // 标记该方法返回的对象为Spring管理的Bean
+ public WebMvcConfigurer corsConfigurer() {
+ return new WebMvcConfigurer() { // 创建并返回WebMvcConfigurer实例
+ @Override
+ // 重写父类提供的跨域请求处理的接口
+ public void addCorsMappings(CorsRegistry registry) {
+ // 添加映射路径
+ registry.addMapping("/**")
+ // 放行哪些原始域
+ .allowedOrigins("*")
+ // 是否发送Cookie信息
+ .allowCredentials(true)
+ // 放行哪些原始域(请求方式)
+ .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
+ // 放行哪些原始域(头部信息)
+ .allowedHeaders("*")
+ // 暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
+ .exposedHeaders("Header1", "Header2");
+ }
+ };
+ }
+
+ /**
+ * 添加资源处理器
+ * @param registry 资源处理器注册器
+ */
+ @Override
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
+ String winPath = PathUtils.getClassLoadRootPath() + "/src/main/resources/static/files/"; // 获取静态文件路径
+
+ // 第一个方法设置访问路径前缀,第二个方法设置资源路径
+ registry.addResourceHandler("/files/**") // 设置访问路径前缀为/files/**
+ .addResourceLocations("file:" + winPath); // 设置资源路径为静态文件路径
+ WebMvcConfigurer.super.addResourceHandlers(registry); // 调用父类的addResourceHandlers方法
+ }
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/MpConfig.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/MpConfig.java
new file mode 100644
index 0000000..0a98209
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/config/MpConfig.java
@@ -0,0 +1,27 @@
+package com.shanzhu.market.common.config;
+
+import com.baomidou.mybatisplus.annotation.DbType; // 导入数据库类型枚举类
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; // 导入MyBatis Plus拦截器类
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; // 导入分页拦截器类
+import org.springframework.context.annotation.Bean; // 导入Bean注解
+import org.springframework.context.annotation.Configuration; // 导入配置注解
+
+/**
+ * MyBatis Plus配置类
+ */
+@Configuration // 标记该类为Spring配置类
+public class MpConfig {
+
+ /**
+ * 配置MyBatis Plus分页插件
+ * @return MybatisPlusInterceptor实例
+ */
+ @Bean // 标记该方法返回的对象为Spring管理的Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); // 创建MybatisPlusInterceptor实例
+ PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); // 创建分页拦截器实例,并指定数据库类型为MySQL
+ paginationInnerInterceptor.setOverflow(true); // 启用合理化分页,避免页码超出范围
+ interceptor.addInnerInterceptor(paginationInnerInterceptor); // 将分页拦截器添加到MybatisPlusInterceptor中
+ return interceptor; // 返回配置好的MybatisPlusInterceptor实例
+ }
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/constants/HttpStatus.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/constants/HttpStatus.java
new file mode 100644
index 0000000..220724c
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/constants/HttpStatus.java
@@ -0,0 +1,24 @@
+package com.shanzhu.market.common.constants;
+
+public interface HttpStatus {
+ /**
+ * 操作成功
+ */
+ Integer CODE_SUCCESS = 200;
+ /**
+ * 请先登录
+ */
+ Integer CODE_NOLOGIN = 401;
+ /**
+ * 系统异常,请联系管理员
+ */
+ Integer CODE_ERROR = 500;
+ /**
+ * 参数异常
+ */
+ Integer CODE_ERROR_PARAM = 400;
+
+ /**业务异常*/
+ Integer CODE_BUSINESS_ERROR=50000;
+
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/BusinessException.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/BusinessException.java
new file mode 100644
index 0000000..17e9707
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/BusinessException.java
@@ -0,0 +1,26 @@
+package com.shanzhu.market.common.exception;
+
+import com.shanzhu.market.common.constants.HttpStatus; // 导入HTTP状态码常量类
+
+/**
+ * 自定义业务异常类
+ */
+public class BusinessException extends SysException {
+
+ /**
+ * 构造函数,使用自定义消息和状态码
+ * @param message 异常消息
+ * @param code 状态码
+ */
+ public BusinessException(String message, Integer code) {
+ super(message, code); // 调用父类构造函数,传递消息和状态码
+ }
+
+ /**
+ * 构造函数,使用自定义消息,默认状态码为业务错误
+ * @param msg 异常消息
+ */
+ public BusinessException(String msg) {
+ super(msg, HttpStatus.CODE_BUSINESS_ERROR); // 调用父类构造函数,传递消息和默认业务错误状态码
+ }
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/SysException.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/SysException.java
new file mode 100644
index 0000000..bc52b70
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/exception/SysException.java
@@ -0,0 +1,46 @@
+package com.shanzhu.market.common.exception;
+
+import com.shanzhu.market.common.constants.HttpStatus; // 导入HTTP状态码常量类
+
+/**
+ * 自定义系统异常类
+ */
+public class SysException extends RuntimeException {
+
+ private Integer code; // 定义状态码字段
+
+ /**
+ * 构造函数,使用自定义消息和状态码
+ * @param message 异常消息
+ * @param code 状态码
+ */
+ public SysException(String message, Integer code) {
+ super(message); // 调用父类构造函数,传递消息
+ this.code = code; // 设置状态码
+ }
+
+ /**
+ * 构造函数,使用自定义消息,默认状态码为系统错误
+ * @param msg 异常消息
+ */
+ public SysException(String msg) {
+ super(msg); // 调用父类构造函数,传递消息
+ this.code = HttpStatus.CODE_ERROR; // 设置默认系统错误状态码
+ }
+
+ /**
+ * 获取状态码
+ * @return 状态码
+ */
+ public Integer getCode() {
+ return code; // 返回状态码
+ }
+
+ /**
+ * 设置状态码
+ * @param code 状态码
+ */
+ public void setCode(Integer code) {
+ this.code = code; // 设置状态码
+ }
+}
diff --git a/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/redis/config/RedisConfig.java b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/redis/config/RedisConfig.java
new file mode 100644
index 0000000..a10d7d1
--- /dev/null
+++ b/superMarket-backend/superMarket-backend/src/main/java/com/shanzhu/market/common/redis/config/RedisConfig.java
@@ -0,0 +1,31 @@
+package com.shanzhu.market.common.redis.config;
+
+import org.springframework.context.annotation.Bean; // 导入Bean注解
+import org.springframework.context.annotation.Configuration; // 导入配置注解
+import org.springframework.data.redis.connection.RedisConnectionFactory; // 导入Redis连接工厂接口
+import org.springframework.data.redis.core.RedisTemplate; // 导入Redis模板类
+import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; // 导入Jackson序列化器
+import org.springframework.data.redis.serializer.StringRedisSerializer; // 导入字符串序列化器
+
+/**
+ * Redis配置类
+ */
+@Configuration // 标记该类为Spring配置类
+public class RedisConfig {
+
+ /**
+ * 配置RedisTemplate实例
+ * @param connectionFactory Redis连接工厂
+ * @return 配置好的RedisTemplate实例
+ */
+ @Bean // 标记该方法返回的对象为Spring管理的Bean
+ public RedisTemplate