Browse Source

初始项目

master
liupopo 2 years ago
parent
commit
0b89e36064
  1. 8
      .gitignore
  2. 29
      2019-03-15
  3. 158
      3
  4. 3108
      API.md
  5. 1433
      API1.md
  6. 191
      LICENSE
  7. 379
      README-DEV.md
  8. 242
      README.md
  9. 107
      addSql
  10. 106
      changelog
  11. 17
      h
  12. BIN
      mallcloud介绍文档.xlsx
  13. 256
      mallplus-admin/pom.xml
  14. 36
      mallplus-admin/src/main/java/com/zscat/mallplus/CommandLineRunnerImpl.java
  15. 27
      mallplus-admin/src/main/java/com/zscat/mallplus/ExportGoods.java
  16. 21
      mallplus-admin/src/main/java/com/zscat/mallplus/ExportSubject.java
  17. 22
      mallplus-admin/src/main/java/com/zscat/mallplus/ExportUser.java
  18. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/MallAdminApplication.java
  19. 52
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillAftersalesController.java
  20. 51
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillDeliveryController.java
  21. 50
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillLadingController.java
  22. 50
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillPaymentsController.java
  23. 50
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillRefundController.java
  24. 50
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillReshipController.java
  25. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBakCategoryService.java
  26. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBakGoodsService.java
  27. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillAftersalesItemsService.java
  28. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillAftersalesService.java
  29. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillDeliveryItemsService.java
  30. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillDeliveryService.java
  31. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillLadingService.java
  32. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillPaymentsRelService.java
  33. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillPaymentsService.java
  34. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillRefundService.java
  35. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillReshipItemsService.java
  36. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillReshipService.java
  37. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BakCategoryServiceImpl.java
  38. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BakGoodsServiceImpl.java
  39. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillAftersalesItemsServiceImpl.java
  40. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillAftersalesServiceImpl.java
  41. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillDeliveryItemsServiceImpl.java
  42. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillDeliveryServiceImpl.java
  43. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillLadingServiceImpl.java
  44. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillPaymentsRelServiceImpl.java
  45. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillPaymentsServiceImpl.java
  46. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillRefundServiceImpl.java
  47. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillReshipItemsServiceImpl.java
  48. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillReshipServiceImpl.java
  49. 72
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/AdminUserDetails.java
  50. 91
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/ColumnDO.java
  51. 41
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/ColumnInfo.java
  52. 40
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/HomeOrderData.java
  53. 17
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/SmsFlashPromotionProducts.java
  54. 155
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/SysLogAspect.java
  55. 86
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/TableDO.java
  56. 34
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/TableInfo.java
  57. 180
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/Tree.java
  58. 144
      mallplus-admin/src/main/java/com/zscat/mallplus/bo/WebLog.java
  59. 169
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildAdvController.java
  60. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildApplyRoomController.java
  61. 153
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildGroupController.java
  62. 154
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildGroupMemberController.java
  63. 154
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildNoticeController.java
  64. 152
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildRepairController.java
  65. 155
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildTypePriceController.java
  66. 154
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildWuyeCompanyController.java
  67. 164
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildWuyePriceController.java
  68. 162
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingCommunityController.java
  69. 159
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingFloorController.java
  70. 167
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingOwnerController.java
  71. 197
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingRoomController.java
  72. 159
      mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingUnitController.java
  73. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildAdvService.java
  74. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildApplyRoomService.java
  75. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildGroupMemberService.java
  76. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildGroupService.java
  77. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildNoticeService.java
  78. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildRepairService.java
  79. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildTypePriceService.java
  80. 17
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildWuyeCompanyService.java
  81. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildWuyePriceService.java
  82. 17
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingCommunityService.java
  83. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingFloorService.java
  84. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingOwnerService.java
  85. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingRoomService.java
  86. 16
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingUnitService.java
  87. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildAdvServiceImpl.java
  88. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildApplyRoomServiceImpl.java
  89. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildGroupMemberServiceImpl.java
  90. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildGroupServiceImpl.java
  91. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildNoticeServiceImpl.java
  92. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildRepairServiceImpl.java
  93. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildTypePriceServiceImpl.java
  94. 70
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java
  95. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyePriceServiceImpl.java
  96. 66
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingCommunityServiceImpl.java
  97. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingFloorServiceImpl.java
  98. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingOwnerServiceImpl.java
  99. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingRoomServiceImpl.java
  100. 20
      mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingUnitServiceImpl.java

8
.gitignore

@ -11,3 +11,11 @@ buildNumber.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
# IDEA #
.idea/
*.iml
*.zip
# Eclipse #
.settings/
.classpath
.project

29
2019-03-15

@ -0,0 +1,29 @@
1.在后台用户表 商品表 订单表添加 添加供应商编号,达到后台商户入驻,商户只可以查询自己的商品和订单
2.修复mall-front-vue登录和注册 搜索 登录已修复
3.小程序添加记录formid接口,下单成功添加消息推送功能
-- 具体介绍
https://github.com/shenzhuan/mallplus/wikis/pages
二。后端代码 分支supp
https://github.com/shenzhuan/mallplus
三.下载项目下最新的sql
123
1、图片管理不防重名;
2、手机号登录无法支付;【这个应该接手机支付】
3、从redis缓存区数据交易,导致支付失败;【这个没懂 怎么个流程】
4、1、订单的状态问题:所有订单,进行支付,如微信支付时未付款,返回后再去支付,提示订单已支付,
不再进行支付。就像刚才的视频一样;【我一直余额测试的好像没有这个问题】
2、订单生成问题:在“我的”-“待付款”里,一个未付款订单,生成了几个相同订单;【加一行代码就行,只是前端重复展示】
3、订单生成问题-2:创建订单页,不点击创建订单,返回到商品页面,再点击直接购买,创建订单的数量会依次加一,
次数会影响问题2的多余订单数量;【这个已经修复,商品详情购买当时是直接先加入购物车,如果不下单,购物车数据旧没有删除】
4、取消未支付订单,所有重复订单也消失,但是刷新又回来了。点击“取消”, 【加一行代码就行,只是前端重复展示】
提示已支付,不可取消。点支付,进去后到最后支付界面提示“订单已关闭,请不要重复操作“。 【】
5、订单状态显示不一致问题:已关闭订单,在”全部“中显示正确,但是在”待付款“中显示还是待付款,【没有发现】
6、”申请售后“点击后,无法提交。【你把页面优化一下,应该是你没有勾选售后哪个商品】
7、商铺名称显示问题:创建订单页面,商铺名称常常抓错,显示测试的”mallplus多租户商城“【已修改】
8、购物车商品名字下方有个Null,看下是什么参数,不重要的删掉就好。【这个应该解决了,是规格】
9、支付完成后,提示下方显示Undfined字样,有用则留着,无关就删掉。【这个好像没有发现】
11、管理界面:”订单列表“不显示既有订单。【是后台管理吗? 你登录的是对应的那个商户吗】

158
3

@ -0,0 +1,158 @@
user mallplus;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 165;
client_header_timeout 45;
client_body_timeout 45;
send_timeout 45;
#gzip on;
server {
listen 8090;
server_name localhost;
client_max_body_size 10M;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /app/amllplus/dist;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 8016;
server_name localhost;
location / {
root /app/amllplus/ruoyi;
try_files $uri $uri/ /index.html;
index index.html index.htm;
proxy_pass http://localhost:8085/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name 182.92.124.53;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
alias /app/amllplus/h5/;
index index.html;
}
location /h5 {
alias /app/amllplus/mall/;
try_files $uri $uri/ @router;
index index.html;
}
location /api {
rewrite ^/api/(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://47.244.191.12:8081 ;
}
location @router {
rewrite ^.*$ /index.html last;
}
}
server {
listen 8082;
server_name _;
root /app/amllplus/h5;
index index.html;
}
server {
listen 8084;
server_name _;
root /app/amllplus/cms;
index index.html;
try_files $uri $uri/ /index.html;
}
server {
listen 8088;
server_name _;
root /app/amllplus/pc;
index index.html;
try_files $uri $uri/ /index.html;
}
server {
listen 8086;
server_name _;
root /app/amllplus/ecshop;
index index.html;
try_files $uri $uri/ /index.html;
}
server {
listen 8000;
server_name _;
root /app/amllplus/h5bak1;
index index.html;
try_files $uri $uri/ /index.html;
}
server {
listen 8010;
server_name _;
root /app/amllplus/pcbak;
index index.html;
try_files $uri $uri/ /index.html;
}
server {
listen 8018;
server_name _;
root /app/amllplus/pcbak1;
index index.html;
try_files $uri $uri/ /index.html;
}
}
nohup java -Xms128m -Xmx256m -jar /app/amllplus/meizhuang-admin-0.0.1-SNAPSHOT.jar >meizhuang.log 2>&1 &
nohup java -Xms128m -Xmx256m -jar /app/amllplus/mallplus-portal-0.0.1-SNAPSHOT.jar >web.log 2>&1 &
nohup java -Xms128m -Xmx256m -jar /app/amllplus/mallplus-admin-0.0.1-SNAPSHOT.jar >admin.log 2>&1 &
nohup java -Xms128m -Xmx256m -jar /app/amllplus/RuoYi.jar >rrr.log 2>&1 &
java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools shen123

3108
API.md

File diff suppressed because it is too large

1433
API1.md

File diff suppressed because one or more lines are too long

191
LICENSE

@ -0,0 +1,191 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and
distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright
owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities
that control, are controlled by, or are under common control with that entity.
For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising
permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including
but not limited to software source code, documentation source, and configuration
files.
"Object" form shall mean any form resulting from mechanical transformation or
translation of a Source form, including but not limited to compiled object code,
generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made
available under the License, as indicated by a copyright notice that is included
in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that
is based on (or derived from) the Work and for which the editorial revisions,
annotations, elaborations, or other modifications represent, as a whole, an
original work of authorship. For the purposes of this License, Derivative Works
shall not include works that remain separable from, or merely link (or bind by
name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version
of the Work and any modifications or additions to that Work or Derivative Works
thereof, that is intentionally submitted to Licensor for inclusion in the Work
by the copyright owner or by an individual or Legal Entity authorized to submit
on behalf of the copyright owner. For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, and
issue tracking systems that are managed by, or on behalf of, the Licensor for
the purpose of discussing and improving the Work, but excluding communication
that is conspicuously marked or otherwise designated in writing by the copyright
owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
of whom a Contribution has been received by Licensor and subsequently
incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such
Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such Contributor
that are necessarily infringed by their Contribution(s) alone or by combination
of their Contribution(s) with the Work to which such Contribution(s) was
submitted. If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
Contribution incorporated within the Work constitutes direct or contributory
patent infringement, then any patent licenses granted to You under this License
for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof
in any medium, with or without modifications, and in Source or Object form,
provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of
this License; and
You must cause any modified files to carry prominent notices stating that You
changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute,
all copyright, patent, trademark, and attribution notices from the Source form
of the Work, excluding those notices that do not pertain to any part of the
Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any
Derivative Works that You distribute must include a readable copy of the
attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the
following places: within a NOTICE text file distributed as part of the
Derivative Works; within the Source form or documentation, if provided along
with the Derivative Works; or, within a display generated by the Derivative
Works, if and wherever such third-party notices normally appear. The contents of
the NOTICE file are for informational purposes only and do not modify the
License. You may add Your own attribution notices within Derivative Works that
You distribute, alongside or as an addendum to the NOTICE text from the Work,
provided that such additional attribution notices cannot be construed as
modifying the License.
You may add Your own copyright statement to Your modifications and may provide
additional or different license terms and conditions for use, reproduction, or
distribution of Your modifications, or for any such Derivative Works as a whole,
provided Your use, reproduction, and distribution of the Work otherwise complies
with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted
for inclusion in the Work by You to the Licensor shall be under the terms and
conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of
any separate license agreement you may have executed with Licensor regarding
such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks,
service marks, or product names of the Licensor, except as required for
reasonable and customary use in describing the origin of the Work and
reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
including, without limitation, any warranties or conditions of TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
solely responsible for determining the appropriateness of using or
redistributing the Work and assume any risks associated with Your exercise of
permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence),
contract, or otherwise, unless required by applicable law (such as deliberate
and grossly negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, incidental,
or consequential damages of any character arising as a result of this License or
out of the use or inability to use the Work (including but not limited to
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
any and all other commercial damages or losses), even if such Contributor has
been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
other liability obligations and/or rights consistent with this License. However,
in accepting such obligations, You may act only on Your own behalf and on Your
sole responsibility, not on behalf of any other Contributor, and only if You
agree to indemnify, defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason of your
accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work
To apply the Apache License to your work, attach the following boilerplate
notice, with the fields enclosed by brackets "{}" replaced with your own
identifying information. (Don't include the brackets!) The text should be
enclosed in the appropriate comment syntax for the file format. We also
recommend that a file or class name and description of purpose be included on
the same "printed page" as the copyright notice for easier identification within
third-party archives.
Copyright 2019 zhuan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

379
README-DEV.md

@ -0,0 +1,379 @@
# mall
## 技术选型
### 后端技术
技术 | 名称
----|----
Spring Boot | 容器+MVC框架
Spring Security | 认证和授权框架
MyBatis | ORM框架
MyBatisGenerator | 数据层代码生成
PageHelper | MyBatis物理分页插件
Swagger-UI | 文档生产工具
Hibernator-Validator | 验证框架
Elasticsearch | 搜索引擎
RabbitMq | 消息队列
Redis | 分布式缓存
MongoDb | NoSql数据库
Docker | 应用容器引擎
Druid | 数据库连接池
### 前端技术
技术 | 名称
----|----
Vue | 前端框架
Vue-router | 路由框架
Vuex | 全局状态管理框架
Element | 前端UI框架
Axios | 前端HTTP框架
Js-cookie | cookie管理工具
### 框架搭建
功能 | 完成
----|----
集成MyBatis | ✔
集成MyBatisGenerator | ✔
集成SpringSecurity | ✔
集成Swagger-UI | ✔
集成Hibernator-Validator | ✔
集成日志功能 | ✔
集成监控功能 | ✔
crud操作demo | ✔
合理规划包结构 | ✔
SpringAOP通用日志处理 | ✔
SpringAOP通用验证失败结果返回 | ✔
CommonResult对通用返回结果进行封装 | ✔
SpringSecurity登录改为Restful形式 | ✔
JWT登录、注册、获取token | ✔
JTA事务处理 | ✔
集成单元测试 | ✔
OSS上传功能 | ✔
Elasticsearch搜索功能 | ✔
HTTPS支持 | ✔
Redis数字型ID生成 | ✔
SpringTask定时任务支持 | ✔
docker容器化部署 | ✔
配置区分生产和测试环境 | ✔
ELK日志收集功能 | ✔
RabbitMq异步通信 | ✔
RestTemplate服务间调用 | ✔
SpringSecurity权限管理功能 | ✔
集成SpringCloud |
### 使用工具
工具 | 下载地址
----|----
开发工具idea | https://www.jetbrains.com/idea/download
redis客户端连接工具 | https://redisdesktop.com/download
mongo客户端连接工具 | https://robomongo.org/download
本地host管理 | https://oldj.github.io/SwitchHosts/
Linux远程连接工具 | http://www.netsarang.com/download/software.html
数据库连接工具 | http://www.formysql.com/xiazai.html
数据库设计工具 | http://powerdesigner.de/
原型设计工具 | https://www.axure.com/
思维导图设计工具 | http://www.edrawsoft.cn/mindmaster
gif录制工具 | https://www.screentogif.com/
### 后台功能
#### 后台登录功能 ✔
- 后台用户注册功能
- 后台用户登录后获取token
- 刷新token功能
#### 商品管理 ✔
> **商品分类管理**
- 按父分类编号分页查看分类列表
- 添加、编辑、删除分类
- 转移分类商品
> **商品品牌管理**
- 按品牌名称搜索分页查看品牌列表
- 添加、编辑、删除品牌
- 查看当前品牌的所有产品
> **商品属性分类管理**
- 添加商品属性分类(名称)
- 分页查询全部商品属性分类
- 删除单个商品属性分类
- 修改单个属性分类名称
- 查询单个属性分类信息
> **商品属性管理**
- 根据分类查询属性列表或参数列表(分页,支持类型)
- 添加商品属性
- 查询单个商品属性
- 编辑商品属性
- 批量删除商品属性
- 分页查询全部商品属性
> **添加商品**
- 选择商品分类:根据商品分类id查找分类
- 选择品牌:查询全部品牌
- 选择运费模版:查询全部运费模版
- 设置会员价格:查询所有会员等级,传入List<PmsMemberPrice>
- 添加阶梯价格: 参数传入List<PmsProductLadder>
- 设置满减价格: 参数传入List<PmsProductFullReduction>
- 选择商品属性类别:获取所有商品属性分类,根据商品属性分类的id获取规格和参数(type=0->规格;type=1->参数)
- 选择规格并生成库存信息:前端实现
- 添加sku库存信息:参数传入List<PmsSkuStock>
- 设置属性图片:设置到pic和album_pics字段中去
- 添加商品参数:参数传入List<PmsProductAttributeValue>
- 添加自定义商品规格:参数传入List<PmsProductAttributeValue>
- 关联专题:参数传入List<CmsSubjectProductRelation>关系
- 关联优选:参数传入List<CmsPrefrenceAreaProductRelation>关系
> **修改商品**
- 根据商品id查询商品信息
- 查询商品基本信息:商品分类名称、品牌名称、运费模版名称
- 查询商品促销信息:商品的会员价格、阶梯价格、满减价格
- 查询商品属性信息:商品属性类别名称、sku库存信息、属性分类对应规格和参数值
- 查询商品关联信息:商品关联专题和关联优选
- 修改商品信息:商品属性分类及规格不可修改,只支持单个sku的修改、删除、新增;商品属性分类及规格可以修改:修改后同时显示原sku库存及属性分类
> **商品分页查询**
- 商品的状态:全部商品、已上架、未上架、待审核、未通过 (publishStatus verifyStatus)
- 商品名称(%name%)
- 商品货号(productSn)
- 商品分类id(productCategoryId)
- 商品品牌id(brandId)
- 批量操作:上下架、推荐、新品、转移分类、放入回收站、审核
- 查看记录:审核记录,操作日志
- sku:根据产品及sku编号获取sku信息,批量修改sku信息
> **商品回收管理**
- 分页展示回收商品列表
- 回收商品还原功能
#### 促销管理
> **秒杀活动管理**
- 活动列表展示
- 活动上下线
- 设置活动商品
- 添加、编辑、删除活动
> **优惠券管理**
- 优惠券列表展示
- 添加、编辑、删除优惠券
- 查看优惠券领取记录
> **活动管理**
- 活动列表展示
- 添加、编辑、删除活动
- 活动上下线
- 发布到广告
> **首页推荐**
- 品牌推荐:列表展示、是否推荐、排序、删除、多选加入品牌
- 新鲜好物:商品列表展示、是否推荐、排序、删除、多选加入商品
- 人气推荐:商品列表展示、是否推荐、排序、删除、多选加入商品
- 专题精选:专题列表展示、是否推荐、排序、删除、多选加入专题
- 广告管理:广告列表展示、是否上线、排序、删除、添加编辑广告
#### 内容管理
> **专题管理**
- 专题列表:查看、删除、推荐专题
- 添加、编辑专题:选择专题分类、添加、删除关联商品
- 专题分类管理:控制显示、排序、编辑删除分类
> **优选主题**
- 优选列表:控制显示、排序、删除
- 添加、编辑优选:关联和删除商品
> **话题管理**
- 专题列表:查看、删除、热门话题
- 话题分类管理:控制显示、排序、编辑删除分类
> **帮助管理**
- 帮助列表:查看、删除、控制显示
- 添加、编辑帮助:选择帮助分类
- 帮助分类管理:控制显示、排序、编辑删除分类
#### 用户管理
> **用户管理**
- 用户列表:帐号启用、删除、群发短信
- 批量操作:群发短信、站内信、推送、设置标签、赠送优惠券
- 查看、编辑用户信息:用户详情(统计信息、收货地址、订单记录)、编辑资料、登录日志
- 购买力筛选:最近消费、消费次数、消费金额、订单均价、商品分类、会员等级、用户标签
- 用户标签管理:标签列表、添加、编辑、删除
- 会员等级设置:列表、添加、编辑、设置默认会员等级
> **成才值及积分**
- 成长值及积分查询:列表展示、积分明细、成长值明细、修改数值
- 任务奖励设置:新手任务、日常任务
- 更多规则设置:成长值规则、积分规则、积分消费设置
#### 订单管理
> **订单列表**
- 订单搜索:订单编号、收货人姓名/号码、订单状态、订单分类、订单来源、提交时间
- 订单操作:查看订单、关闭订单、订单发货、订单跟踪、删除订单
- 批量操作:批量发货、关闭订单、删除订单
> **查看订单**
- 订单状态:提交订单、支付订单、平台发货、确认收货、完成评价
- 订单详情操作:修改发票信息、修改收货人信息、修改商品信息、修改费用信息、发送站内信、关闭订单、备注订单、取消订单、订单跟踪、删除订单
- 订单基本信息:订单信息、优惠信息、用户信息
- 发票信息:类型、抬头、内容、收票人信息
- 收货人信息:收货人、手机号、邮政编码、收货地址
- 商品信息:包含商品基本信息
- 费用信息:合计及优惠信息
- 操作信息:订单状态改变记录
> **订单设置**
- 秒杀订单超时时间
- 正常订单超时时间
- 订单自动完成时间
- 自动结束交易时间
- 自动好评时间
> **退货申请处理**
- 退货申请搜索:服务单号、收货人姓名/号码、处理状态、申请时间、操作人员、处理时间
- 批量操作:删除
- 查看详情:退货商品、服务单信息、确认退货、拒绝退货、确认收货
> **退货原因设置**
- 原因列表:类型、排序、是否启用、添加时间
- 添加、编辑原因:同上
- 批量操作:删除
#### 权限管理 ✔
> **权限管理**
- 权限管理:添加权限、删除权限、修改权限、以树形结构返回权限
- 角色管理:添加角色、删除角色、更新角色、角色列表、获取相应角色权限、修改相应角色权限
- 成员管理:添加、编辑、删除成员、成员列表、为成员分配角色、获取成员角色、分配+-权限、获取权限列表
角色 | 菜单
----|----
管理员 | 所有菜单权限
运营 | 首页、用户、促销、运营、内容
财务 | 首页、统计、财务
美工 | 首页、商品
客服 | 首页、商品、订单
### 前台功能
#### 商品搜索 ✔
> **综合搜索功能**
- 搜索:根据商品标题、副标题、关键字进行搜索;
- 筛选:未选择分类时聚合搜索结果,选择出现次数最多的分类,选择分类以后可以根据选择分类的筛选字段进行筛选;
- 排序:按新品、销量、价格进行排序
- 搜索返回结果:商品ID、商品图片、名称、副标题、价格、商品销量、新品、商品的参数、品牌名称、分类名称
- 接口:从数据库中查询相关数据并导入es,插入(修改)数据接口,删除数据接口
- 品牌分类筛选:根据搜索结果聚合返回品牌、分类及属性
> **商品推荐功能**
- 推荐某商品的相关商品、根据该商品的品牌(10)、分类(6)、名称(8)、关键字(2)、副标题(2)
- 根据用户一周浏览记录推荐商品,根据用户搜索记录推荐商品
> **商品热搜功能**
- 根据用户搜索记录聚合生成热搜词
> **商品搜索联想功能**
- 根据用户搜索记录聚合生成热搜词
#### 购物流程 ✔
> **购物车**
- 添加商品到购物车
- 购物车商品列表(商品主图、商品名称、商品数量、商品规格)
- 修改购物车中商品数量
- 购物车中商品重选规格
- 购物车中商品删除功能
> **生成确认单**
- 生成确认单信息:收货信息、商品信息、价格信息、发票信息、支付方式
- 选择收货地址:默认收货地址
- 选择优惠券及积分抵扣:展示可用优惠券和不可以优惠券
- 计算商品价格:商品合计、运费、优惠券抵扣、积分抵扣、活动优惠
- 选择支付方式:在线支付及货到付款
- 计算应付金额:合计+运费-优惠券抵扣-积分抵扣-活动优惠
> **提交订单**
- 将确认单信息转化为订单
- 删除购物车中相关商品
- 添加订单到数据库并锁定库存
- 在线支付选择支付方式:支付宝、微信、银联、ApplePay
> **支付订单**
- 支付完成后修改订单状态为已支付、扣除库存
> **取消订单(未支付情况下)**
- 订单超时后自动取消订单,解除商品库存锁定,返还优惠券,积分
#### 会员模块(我的)✔
> **我的关注**
- 关注品牌列表:品牌logo、名称、地址、关注数量
- 取消关注功能
- 关注列表展示
> **我的收藏**
- 收藏的商品:商品主图、名称、卖点、价格、找相似
- 收藏的专题:专题主图、标题、副标题、收藏数、浏览数、评论数
- 收藏的话题:话题主图、标题、副标题、收藏数、浏览数、评论数
> **我的足迹**
- 浏览过的商品:商品主图、名称、卖点、价格、找相似
- 删除记录功能
- 浏览列表展示
> **会员登录注册**
- 登录功能:https登录
- 注册功能:用户名、密码、手机号、手机验证码
- 获取验证码:后台生成验证码,验证码绑定手机号
- 忘记密码:手机号、短信验证码、新密码
- 登出功能
39.106.212.32:3306/mallplus
root
shen@123

242
README.md

@ -1,2 +1,242 @@
# mallplus
# mall
## 说明
> 基于SpringBoot+MyBatis-plus的电商系统,包括前台商城系统及后台管理系统。
> 如果该项目对您有帮助,您可以点右上角 "Star" 支持一下 谢谢!
> 或者您可以 "follow" 一下,该项目将持续更新,不断完善功能。
> 项目交流人QQ群:[195405248]
> 如有问题或者好的建议可以在 Issues 中提。
## 前言
`mallplus`项目致力于打造一个完整的电商系统,采用现阶段流行技术实现。
## 项目介绍
`mallplus`项目是一套电商系统,包括前台商城系统及后台管理系统,小程序,h5,基于SpringBoot+MyBatis实现。
前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。
后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、代码生成设置等模块。
### 项目演示
> 后台管理系统
小程序下载 地址 https://gitee.com/catshen/mall-applet
后台管理下载地址 https://github.com/shenzhuan/mallplus
项目演示地址: [http://39.98.190.128/index.html](http://39.98.190.128/index.html)
![后台管理系统功能演示.gif](/document/resource/mallplus-admin.gif)
### 组织结构
``` lua
mall
├── mallplus-mbg -- MyBatisGenerator生成的数据库操作代码
├── mallplus-admin -- 后台商城管理系统接口
├── mall-search -- 基于Elasticsearch的商品搜索系统
├── mallplus-portal -- 前台商城系统接口
└── mall-demo -- 框架搭建时的测试代码
├── 前端项目`mallplus-admin-web` 地址 请加群下载
├── h5前端项目`vue-js-master`地址 请加群下载
├── pc前端项目`Mall-Vue-master`地址 请加群下载
├── 小前端项目`wechatapp`地址 请加群下载
```
## 目前h5项目已实现功能
1. 首页数据的展示
2. 分类页数据的展示
3. 购物车
4. 我的
5. 注册
6. 登录
7. 商品详情页
8. 商品搜索
##h5项目效果图
![](https://images.gitee.com/uploads/images/2019/0217/112713_5f032a4c_134431.png)
![](https://images.gitee.com/uploads/images/2019/0217/112713_f4cb24ab_134431.png)
![](https://images.gitee.com/uploads/images/2019/0217/112713_a17c828d_134431.png)
![](https://images.gitee.com/uploads/images/2019/0217/112713_a7afcc52_134431.png)
![](https://images.gitee.com/uploads/images/2019/0217/112713_2d82d3c8_134431.png)
![](https://images.gitee.com/uploads/images/2019/0217/112714_62baf63a_134431.png)
![](https://images.gitee.com/uploads/images/2019/0217/112715_c571472d_134431.png)
## 目前小程序项目已实现功能
1. 首页数据的展示
2. 分类页数据的展示
3. 购物车
4. 我的
5. 注册
6. 登录
7. 商品详情页
8. 商品搜索
9.下单
10.用户详情
## 目前pc项目已实现功能
1. 首页数据的展示
2. 分类页数据的展示
3. 购物车
4. 我的
5. 注册
6. 登录
7. 商品详情页
8. 商品搜索
9.下单
10.用户详情
### 技术选型
#### 后端技术
技术 | 说明 | 官网
----|----|----
Spring Boot | 容器+MVC框架 | [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot)
Spring Security | 认证和授权框架 | [https://spring.io/projects/spring-security](https://spring.io/projects/spring-security)
MyBatis | ORM框架 | [http://www.mybatis.org/mybatis-3/zh/index.html](http://www.mybatis.org/mybatis-3/zh/index.html)
MyBatisGenerator | 数据层代码生成 | [http://www.mybatis.org/generator/index.html](http://www.mybatis.org/generator/index.html)
PageHelper | MyBatis物理分页插件 | [http://git.oschina.net/free/Mybatis_PageHelper](http://git.oschina.net/free/Mybatis_PageHelper)
Swagger-UI | 文档生产工具 | [https://github.com/swagger-api/swagger-ui](https://github.com/swagger-api/swagger-ui)
Hibernator-Validator | 验证框架 | [http://hibernate.org/validator/](http://hibernate.org/validator/)
Elasticsearch | 搜索引擎 | [https://github.com/elastic/elasticsearch](https://github.com/elastic/elasticsearch)
RabbitMq | 消息队列 | [https://www.rabbitmq.com/](https://www.rabbitmq.com/)
Redis | 分布式缓存 | [https://redis.io/](https://redis.io/)
MongoDb | NoSql数据库 | [https://www.mongodb.com/](https://www.mongodb.com/)
Docker | 应用容器引擎 | [https://www.docker.com/](https://www.docker.com/)
Druid | 数据库连接池 | [https://github.com/alibaba/druid](https://github.com/alibaba/druid)
OSS | 对象存储 | [https://github.com/aliyun/aliyun-oss-java-sdk](https://github.com/aliyun/aliyun-oss-java-sdk)
JWT | JWT登录支持 | [https://github.com/jwtk/jjwt](https://github.com/jwtk/jjwt)
LogStash | 日志收集 | [https://github.com/logstash/logstash-logback-encoder](https://github.com/logstash/logstash-logback-encoder)
Lombok | 简化对象封装工具 | [https://github.com/rzwitserloot/lombok](https://github.com/rzwitserloot/lombok)
#### 前端技术
技术 | 说明 | 官网
----|----|----
Vue | 前端框架 | [https://vuejs.org/](https://vuejs.org/)
Vue-router | 路由框架 | [https://router.vuejs.org/](https://router.vuejs.org/)
Vuex | 全局状态管理框架 | [https://vuex.vuejs.org/](https://vuex.vuejs.org/)
Element | 前端UI框架 | [https://element.eleme.io/](https://element.eleme.io/)
Axios | 前端HTTP框架 | [https://github.com/axios/axios](https://github.com/axios/axios)
v-charts | 基于Echarts的图表框架 | [https://v-charts.js.org/](https://v-charts.js.org/)
Js-cookie | cookie管理工具 | [https://github.com/js-cookie/js-cookie](https://github.com/js-cookie/js-cookie)
nprogress | 进度条控件 | [https://github.com/rstacruz/nprogress](https://github.com/rstacruz/nprogress)
#### 架构图
##### 系统架构图
![系统架构图](document/resource/mall_system_arch.png)
##### 业务架构图
![系统架构图](document/resource/mall_business_arch.png)
#### 模块介绍
##### 后台管理系统 `mallplus-admin`
- 商品管理:[功能结构图-商品.jpg](document/resource/mind_product.jpg)
- 订单管理:[功能结构图-订单.jpg](document/resource/mind_order.jpg)
- 促销管理:[功能结构图-促销.jpg](document/resource/mind_sale.jpg)
- 内容管理:[功能结构图-内容.jpg](document/resource/mind_content.jpg)
- 用户管理:[功能结构图-用户.jpg](document/resource/mind_member.jpg)
##### 前台商城系统 `mallplus-portal`
[功能结构图-前台.jpg](document/resource/mind_portal.jpg)
#### 开发进度
![项目开发进度图](document/resource/mall_dev_flow.png)
## 环境搭建
### 开发工具
工具 | 说明 | 官网
----|----|----
IDEA | 开发IDE | https://www.jetbrains.com/idea/download
RedisDesktop | redis客户端连接工具 | https://redisdesktop.com/download
Robomongo | mongo客户端连接工具 | https://robomongo.org/download
SwitchHosts| 本地host管理 | https://oldj.github.io/SwitchHosts/
X-shell | Linux远程连接工具 | http://www.netsarang.com/download/software.html
Navicat | 数据库连接工具 | http://www.formysql.com/xiazai.html
PowerDesigner | 数据库设计工具 | http://powerdesigner.de/
Axure | 原型设计工具 | https://www.axure.com/
MindMaster | 思维导图设计工具 | http://www.edrawsoft.cn/mindmaster
ScreenToGif | gif录制工具 | https://www.screentogif.com/
ProcessOn | 流程图绘制工具 | https://www.processon.com/
PicPick | 屏幕取色工具 | https://picpick.app/zh/
### 开发环境
工具 | 版本号 | 下载
----|----|----
JDK | 1.8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Mysql | 5.7 | https://www.mysql.com/
Redis | 3.2 | https://redis.io/download
Elasticsearch | 2.4.6 | https://www.elastic.co/downloads
MongoDb | 3.2 | https://www.mongodb.com/download-center
RabbitMq | 5.25 | http://www.rabbitmq.com/download.html
nginx | 1.10 | http://nginx.org/en/download.html
### 搭建步骤
> 本地环境搭建
- 本地安装开发环境中的所有工具并启动,具体参考
- 安装最新的数据库mallplus.sql,解压 前端vue mallplsu-admin-web.zip
- 克隆源代码到本地,使用IDEA或Eclipse打开,并完成编译;
- 在mysql中新建mall数据库,导入document/sql下的mall.sql文件;
- 启动mallplus-admin项目:直接运行com.zscat.mallplus.MallAdminApplication的main方法即可,
接口文档地址:http://localhost:8085/swagger-ui.html;
- 启动mall-search项目:直接运行com.zscat.mallplus.search.MallSearchApplication的main方法即可,
接口文档地址:http://localhost:8083/swagger-ui.html;
- 启动mallplus-portal项目:直接运行com.zscat.mallplus.portal.MallPortalApplication的main方法即可,
接口文档地址:http://localhost:8085/swagger-ui.html;
## 项目相关文档
## 参考资料
- [Spring实战(第4版)](https://book.douban.com/subject/26767354/)
- [Spring Boot实战](https://book.douban.com/subject/26857423/)
- [Spring Cloud微服务实战](https://book.douban.com/subject/27025912/)
- [Spring Cloud与Docker微服务架构实战](https://book.douban.com/subject/27028228/)
- [Spring Data实战](https://book.douban.com/subject/25975186/)
- [MyBatis从入门到精通](https://book.douban.com/subject/27074809/)
- [深入浅出MySQL](https://book.douban.com/subject/25817684/)
- [循序渐进Linux(第2版)](https://book.douban.com/subject/26758194/)
- [Elasticsearch 技术解析与实战](https://book.douban.com/subject/26967826/)
- [MongoDB实战(第二版)](https://book.douban.com/subject/27061123/)
- [Kubernetes权威指南](https://book.douban.com/subject/26902153/)
- [mall商城](https://github.com/shenzhuan/mallplus)
- [mybatis-plus](https://gitee.com/baomidou/mybatis-plus)
## 许可证
[MIT](https://github.com/zscatzheng/mall/blob/master/LICENSE)
Copyright (c) 2018-2019 zscatzheng

107
addSql

@ -0,0 +1,107 @@
alter table fenxiao_records add goodsId bigint not Null;
alter table fenxiao_records add type int not Null;
alter table sms_coupon_history add min_point decimal not Null;
alter table pms_product add is_fenxiao int ;
alter table oms_cart_item add is_fenxiao int ;
CREATE TABLE `mallplus_keyword` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keyword` varchar(127) NOT NULL DEFAULT '' COMMENT '关键字',
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '关键字的跳转链接',
`is_hot` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否是热门关键字',
`is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否是默认关键字',
`sort_order` int(11) NOT NULL DEFAULT '100' COMMENT '排序',
`add_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='关键字表';
CREATE TABLE `mallplus_search_history` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT '用户表的用户ID',
`keyword` varchar(63) NOT NULL COMMENT '搜索关键字',
`from` varchar(63) NOT NULL DEFAULT '' COMMENT '搜索来源,如pc、wx、app',
`add_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`deleted` tinyint(1) DEFAULT '0' COMMENT '逻辑删除',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='搜索历史表'
alter table pms_product alter column is_fenxiao set default 0;
alter table pms_product_attribute_category add column style set default 0;
alter table pms_product_attribute_category add style int ;
alter table pms_product_attribute_category add show_index int ;
-- 20200318 会员等级计算 会员升级 会员购买
alter table pms_product add is_vip int not null default 0; # 是否会员商品
alter table oms_order add vip_amount DECIMAL not null default 0; # 会员优惠价格
-- 20200321 商品分拥
alter table oms_order_item add is_fenxiao int not null default 0; # 是否分拥
alter table oms_order_item add invite_memberId int not null default 0; # 分佣商品 链接带过来的会员编号
-- 20200330 余额
alter table ums_member_blance_log add status int not null default 0; # 审核状态
alter table ums_member_blance_log add with_draw_type int not null default 0; # 提现类型 1 银行卡 2 微信 3支付宝
alter table ums_member_blance_log add obj_id int not null default 0; # 关联提现类型的编号
alter table ums_member_blance_log add objname varchar(127) ; # 关联提现类型的编号
alter table ums_member_receive_address add area_id varchar(12) ;
alter table pms_product_attribute_value add sort int default 0; #
-- 门店
CREATE TABLE `sys_shop` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`store_name` varchar(125) DEFAULT NULL COMMENT '门店名称',
`mobile` varchar(13) DEFAULT NULL COMMENT '门店电话/手机号',
`linkman` varchar(32) DEFAULT NULL COMMENT '门店联系人',
`logo` char(32) DEFAULT NULL COMMENT '门店logo',
`area_id` int(10) unsigned DEFAULT NULL COMMENT '门店地区id',
`address` varchar(200) DEFAULT NULL COMMENT '门店详细地址',
`coordinate` varchar(50) DEFAULT NULL,
`latitude` varchar(40) DEFAULT NULL COMMENT '纬度',
`longitude` varchar(40) DEFAULT NULL COMMENT '经度',
`ctime` datetime DEFAULT NULL COMMENT '创建时间',
`utime` datetime DEFAULT NULL COMMENT '更新时间',
`store_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
alter table sys_permission add component varchar(42) ;
update sys_permission set component ='Layout' where pid=0;
update sys_permission set component = concat('pms','/',uri,'/index') where type=1 and pid=1;
update sys_permission set component = concat('sys','/',uri,'/index') where type=1 and pid=19;
update sys_permission set component = concat('oms','/',uri,'/index') where type=1 and pid=23;
update sys_permission set component = concat('sms','/',uri,'/index') where type=1 and pid=31;
update sys_permission set component = concat('marking','/',uri,'/index') where type=1 and pid=350;
update sys_permission set component = concat('cms','/',uri,'/index') where type=1 and pid=47;
update sys_permission set component = concat('build','/',uri,'/index') where type=1 and pid=230;
update sys_permission set component = concat('fenxiao','/',uri,'/index') where type=1 and pid=314;
update sys_permission set component = concat('jifen','/',uri,'/index') where type=1 and pid=313;
update sys_permission set component = concat('setting','/',uri,'/index') where type=1 and pid=500;
update sys_permission set component = concat('tool','/',uri,'/index') where type=1 and pid=351;
update sys_permission set component = concat('ums','/',uri,'/index') where type=1 and pid=43;

106
changelog

@ -0,0 +1,106 @@
--0426
1.商品表 delete_status 1->未删除;0->已删除
2.订单列表和商品列表分别添加tab(快速刷选不同状态的数据)
3.如果演示有的菜单 你没有,需要对比最新的 sys_permission 表
4.小程序编译和登录优化
--0425
数据库密码加密(druid)
商城设置下添加 标签管理
店铺管理 添加 店内分类和商户评价
添加商品中增加店内分类和标签选择
uniapp 店铺 评价和收藏 标签页面和标签下的商品
alter table ums_member_tag add pic varchar(127) ;
alter table ums_member_tag add status BIGINT not null default 0;
alter table pms_product add tags varchar(127) ;
alter table pms_product add store_class_id bigint ;
-- 0423 拼团优化 文档https://gitee.com/zscat/mallplus/wikis/pages/preview?sort_id=1699565&doc_id=326093
alter table sms_group_member add group_id BIGINT not null default 0;
alter table sms_group_record add handle_status int not null default 1;
SELECT * from sys_store_class ; -- 店铺分类
SELECT * from sys_store_comment ; -- 店铺评论
CREATE TABLE `sys_store_class` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',
`create_time` datetime NOT NULL COMMENT '创建时间',
`pic` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '图片',
`sort` int DEFAULT NULL COMMENT '排序',
`memo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
`store_id` int DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `name` (`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
CREATE TABLE `sys_store_comment` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',
`create_time` datetime NOT NULL COMMENT '创建时间',
`pic` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '图片',
`sort` int DEFAULT NULL COMMENT '排序',
`memo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '备注',
`store_id` int DEFAULT NULL,
`member_id` int DEFAULT NULL,
`star` int DEFAULT NULL COMMENT '等级',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `name` (`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- 0425 退款定时任务
alter table oms_order_return_apply add refund_status int not null default 0;
-- 0421 首页推荐优化
alter table sms_home_recommend_subject add pic varchar(127) ;
alter table sms_home_recommend_subject add read_count int ;
alter table sms_home_recommend_subject add description varchar(127) ;
alter table sms_home_brand add logo varchar(127) ;
--0419
alter table sms_home_new_product add price decimal ;
alter table sms_home_new_product add pic varchar(127) ;
alter table sms_home_recommend_product add price decimal ;
alter table sms_home_recommend_product add pic varchar(127) ;
alter table oms_payments add store_id int not null default 0;
1.uniapp 首页添加人气推荐和新品推荐 添加版本信息页面 订单列表重复问题 。
2。后台管理 支付列表出不来(更新)
3.分销问题(二级分销获取用户信息错误)
4.拼团结构调整
--0316
后台商户系统
1.运营管理 添加门店维护
2.优化 设置管理下面的 小程序设置 积分设置和支付设置
3.登录添加租户判断,审核通过的才能登录
uniapp用户端
1.优化登录相关错误
2.会员折扣展示和购买
3.接入商户端数据统计(会员 订单和商品)
4.区域商品展示
5.分类页面优化
admin6918 898158
shop7586 985819
-- 预存款
update oms_order set create_time=now();
update pms_product set create_time=now();
update sys_store set pay_amount=0,amount=0;
delete FROM sys_store_deposit_log ;
delete FROM sys_store_cash ;
delete FROM admin_day_statics ;
商户等级 商户列表 商户充值 提现和提现审核
数据库密码 加密
https://blog.csdn.net/huijiangu4621/article/details/90403130
多租户版本 ums_member 用户名和store_id需要添加唯一索引

17
h

@ -0,0 +1,17 @@
支付宝回调
{
"alipay_trade_app_pay_response": {
"code": "10000",
"msg": "Success",
"app_id": "20204939183847",
"auth_app_id": "20204939183847",
"charset": "UTF-8",
"timestamp": "2020-04-21 15:04:58",
"out_trade_no": "2871031303901184",
"total_amount": "0.01",
"trade_no": "2020042122001458671441351997",
"seller_id": "20204939183847"
},
"sign": "YlpKPoPWuIpLKjbvfshhdhsbhcds&cds+taQE97xvT3C1r6a0tWekeTRCAQHZAg6QIBGWP2/OhrVQiEb4+NJil89l84UMMDKSH86sGDlDko8yKeG2BnXVtAv4eEBUtwG3jivivCnezZK/XgZmb/DHrW75MCKjdsjKldskv8cdshkIhncjdsj^tsaHHDdTXnMtVxTOifPw4etlkaKD8xKduIm132K+aJeYXpxq0y/lUAp2OSIjbvdfk(bjcGSHBKkd$3cshoffA==",
"sign_type": "RSA2"
}

BIN
mallcloud介绍文档.xlsx

Binary file not shown.

256
mallplus-admin/pom.xml

@ -0,0 +1,256 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zscat.mallplus</groupId>
<artifactId>mallplus-admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mallplus-admin</name>
<description>mallplus-admin project for mall</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!--<version>2.1.3.RELEASE</version>-->
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<repositories>
<repository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
<repository>
<id>aliyun_thirdparty</id>
<url>http://maven.aliyun.com/nexus/content/repositories/thirdparty/</url>
</repository>
<repository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<url>http://repo.spring.io/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<j2cache.version>2.7.2-release</j2cache.version>
<skipTests>true</skipTests>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
<dependency>
<groupId>com.geccocrawler</groupId>
<artifactId>gecco</artifactId>
<version>1.0.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.59</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
<!--模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- 定时任务 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<exclusions>
<exclusion>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.zscat.mallplus</groupId>
<artifactId>mallplus-mbg</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!--redis依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--Swagger-UI API文档生产工具-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<!--JWT(Json Web Token)登录支持-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
<!-- 阿里云OSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.5.0</version>
</dependency>
<!--集成logstash-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.8</version>
</dependency>
<!--redis依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<!--lombok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.ftl</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.ftl</include>
<include>**/*.properties</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!--<plugin>-->
<!--<groupId>com.spotify</groupId>-->
<!--<artifactId>docker-maven-plugin</artifactId>-->
<!--<version>1.1.0</version>-->
<!--<executions>-->
<!--<execution>-->
<!--<id>build-image</id>-->
<!--<phase>package</phase>-->
<!--<goals>-->
<!--<goal>build</goal>-->
<!--</goals>-->
<!--</execution>-->
<!--</executions>-->
<!--<configuration>-->
<!--<imageName>mall/${project.artifactId}:${project.version}</imageName>-->
<!--<dockerHost>http://39.98.190.128:2375</dockerHost>-->
<!--<baseImage>java:8</baseImage>-->
<!--<entryPoint>["java", "-jar", "-Dspring.profiles.active=prod","/${project.build.finalName}.jar"]</entryPoint>-->
<!--<resources>-->
<!--<resource>-->
<!--<targetPath>/</targetPath>-->
<!--<directory>${project.build.directory}</directory>-->
<!--<include>${project.build.finalName}.jar</include>-->
<!--</resource>-->
<!--</resources>-->
<!--</configuration>-->
<!--</plugin>-->
</plugins>
</build>
</project>

36
mallplus-admin/src/main/java/com/zscat/mallplus/CommandLineRunnerImpl.java

@ -0,0 +1,36 @@
package com.zscat.mallplus;
import com.zscat.mallplus.sys.mapper.GeneratorMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
/**
* @author lnj
* createTime 2018-11-07 22:25
**/
@Component
public class CommandLineRunnerImpl implements CommandLineRunner {
@Autowired
GeneratorMapper generatorMapper;
public static void main(String[] args) {
System.out.println("http://localhost:8083/cms/CmsSubjectCategory/list".replace("//", "a").indexOf("/") + 1);
}
@Override
public void run(String... args) throws Exception {
/*List<Map<String, Object>> tables = generatorMapper.list();
for (Map<String, Object> map : tables) {
List<Map<String, String>> colus = generatorMapper.listColumns(map.get("tableName").toString());
for (Map<String, String> mapc : colus) {
if (mapc.get("columnName").equals("store_id")) {
Constant.Tables.put(map.get("tableName").toString(), "1");
}
}
}*/
}
}

27
mallplus-admin/src/main/java/com/zscat/mallplus/ExportGoods.java

@ -0,0 +1,27 @@
package com.zscat.mallplus;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExportGoods {
@Excel(name = "去", width = 10)
private String username;
@Excel(name = "去去", width = 10)
private String img;
@Excel(name = "去去去", width = 10)
private String detail;
@Excel(name = "去去去去", width = 10)
private String price;
@Excel(name = "去去去去去", width = 10)
private String originprice;
@Excel(name = "去去去去去去", width = 10)
private String detail1;
}

21
mallplus-admin/src/main/java/com/zscat/mallplus/ExportSubject.java

@ -0,0 +1,21 @@
package com.zscat.mallplus;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExportSubject {
@Excel(name = "去", width = 10)
private String title;
@Excel(name = "去去", width = 10)
private String pic;
@Excel(name = "去去去", width = 10)
private String content;
}

22
mallplus-admin/src/main/java/com/zscat/mallplus/ExportUser.java

@ -0,0 +1,22 @@
package com.zscat.mallplus;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ExportUser {
@Excel(name = "用户名", width = 10)
private String username;
@Excel(name = "创建时间", format = "yyyy-MM-dd", width = 15)
private Date createTime;
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/MallAdminApplication.java

@ -0,0 +1,20 @@
package com.zscat.mallplus;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 应用启动入口
* https://github.com/shenzhuan/mallplus on 2018/4/26.
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@MapperScan({"com.zscat.mallplus.mapper", "com.zscat.mallplus.ums.mapper", "com.zscat.mallplus.sms.mapper", "com.zscat.mallplus.cms.mapper", "com.zscat.mallplus.sys.mapper", "com.zscat.mallplus.oms.mapper", "com.zscat.mallplus.pms.mapper"})
@EnableTransactionManagement
public class MallAdminApplication {
public static void main(String[] args) {
SpringApplication.run(MallAdminApplication.class, args);
}
}

52
mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillAftersalesController.java

@ -0,0 +1,52 @@
package com.zscat.mallplus.bill.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.bill.entity.BillAftersales;
import com.zscat.mallplus.bill.service.IBillAftersalesService;
import com.zscat.mallplus.utils.CommonResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 退货单表 前端控制器
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Slf4j
@RestController
@RequestMapping("/bill/billAftersales")
public class BillAftersalesController {
@Resource
private IBillAftersalesService billAftersalesService;
@SysLog(MODULE = "bill", REMARK = "根据条件查询所有退货单表")
@ApiOperation("根据条件查询所有退货单表")
@GetMapping(value = "/list")
public Object getCmsHelpByPage(BillAftersales entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(billAftersalesService.page(new Page<BillAftersales>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有帮助表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
}

51
mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillDeliveryController.java

@ -0,0 +1,51 @@
package com.zscat.mallplus.bill.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.bill.entity.BillDelivery;
import com.zscat.mallplus.bill.service.IBillDeliveryService;
import com.zscat.mallplus.utils.CommonResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 发货单表 前端控制器
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Slf4j
@RestController
@RequestMapping("/bill/billDelivery")
public class BillDeliveryController {
@Resource
private IBillDeliveryService billAftersalesService;
@SysLog(MODULE = "bill", REMARK = "根据条件查询所有发货单表")
@ApiOperation("根据条件查询所有发货单表")
@GetMapping(value = "/list")
public Object getCmsHelpByPage(BillDelivery entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(billAftersalesService.page(new Page<BillDelivery>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有帮助表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
}

50
mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillLadingController.java

@ -0,0 +1,50 @@
package com.zscat.mallplus.bill.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.bill.entity.BillLading;
import com.zscat.mallplus.bill.service.IBillLadingService;
import com.zscat.mallplus.utils.CommonResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 提货单表 前端控制器
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Slf4j
@RestController
@RequestMapping("/bill/billLading")
public class BillLadingController {
@Resource
private IBillLadingService billAftersalesService;
@SysLog(MODULE = "bill", REMARK = "根据条件查询所有提货单表")
@ApiOperation("根据条件查询提货单表")
@GetMapping(value = "/list")
public Object getCmsHelpByPage(BillLading entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(billAftersalesService.page(new Page<BillLading>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有帮助表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
}

50
mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillPaymentsController.java

@ -0,0 +1,50 @@
package com.zscat.mallplus.bill.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.bill.entity.BillPayments;
import com.zscat.mallplus.bill.service.IBillPaymentsService;
import com.zscat.mallplus.utils.CommonResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 支付单表 前端控制器
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Slf4j
@RestController
@RequestMapping("/bill/billPayments")
public class BillPaymentsController {
@Resource
private IBillPaymentsService billAftersalesService;
@SysLog(MODULE = "bill", REMARK = "根据条件查询所有支付单表")
@ApiOperation("根据条件查询所有支付单表")
@GetMapping(value = "/list")
public Object getCmsHelpByPage(BillPayments entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(billAftersalesService.page(new Page<BillPayments>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有帮助表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
}

50
mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillRefundController.java

@ -0,0 +1,50 @@
package com.zscat.mallplus.bill.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.bill.entity.BillRefund;
import com.zscat.mallplus.bill.service.IBillRefundService;
import com.zscat.mallplus.utils.CommonResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 退款单表 前端控制器
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Slf4j
@RestController
@RequestMapping("/bill/billRefund")
public class BillRefundController {
@Resource
private IBillRefundService billAftersalesService;
@SysLog(MODULE = "bill", REMARK = "根据条件查询所有退款单表")
@ApiOperation("根据条件查询所有退款单表")
@GetMapping(value = "/list")
public Object getCmsHelpByPage(BillRefund entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(billAftersalesService.page(new Page<BillRefund>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有帮助表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
}

50
mallplus-admin/src/main/java/com/zscat/mallplus/bill/controller/BillReshipController.java

@ -0,0 +1,50 @@
package com.zscat.mallplus.bill.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.bill.entity.BillReship;
import com.zscat.mallplus.bill.service.IBillReshipService;
import com.zscat.mallplus.utils.CommonResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* <p>
* 退货单表 前端控制器
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Slf4j
@RestController
@RequestMapping("/bill/billReship")
public class BillReshipController {
@Resource
private IBillReshipService billAftersalesService;
@SysLog(MODULE = "bill", REMARK = "根据条件查询所有退货单表表")
@ApiOperation("根据条件查询所有退货单表")
@GetMapping(value = "/list")
public Object getCmsHelpByPage(BillReship entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(billAftersalesService.page(new Page<BillReship>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有退货单表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBakCategoryService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BakCategory;
/**
* <p>
* 类目表 服务类
* </p>
*
* @author zscat
* @since 2019-09-17
*/
public interface IBakCategoryService extends IService<BakCategory> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBakGoodsService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BakGoods;
/**
* <p>
* 商品基本信息表 服务类
* </p>
*
* @author zscat
* @since 2019-09-17
*/
public interface IBakGoodsService extends IService<BakGoods> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillAftersalesItemsService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillAftersalesItems;
/**
* <p>
* 售后单明细表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillAftersalesItemsService extends IService<BillAftersalesItems> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillAftersalesService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillAftersales;
/**
* <p>
* 退货单表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillAftersalesService extends IService<BillAftersales> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillDeliveryItemsService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillDeliveryItems;
/**
* <p>
* 发货单详情表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillDeliveryItemsService extends IService<BillDeliveryItems> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillDeliveryService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillDelivery;
/**
* <p>
* 发货单表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillDeliveryService extends IService<BillDelivery> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillLadingService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillLading;
/**
* <p>
* 提货单表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillLadingService extends IService<BillLading> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillPaymentsRelService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillPaymentsRel;
/**
* <p>
* 支付单明细表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillPaymentsRelService extends IService<BillPaymentsRel> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillPaymentsService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillPayments;
/**
* <p>
* 支付单表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillPaymentsService extends IService<BillPayments> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillRefundService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillRefund;
/**
* <p>
* 退款单表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillRefundService extends IService<BillRefund> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillReshipItemsService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillReshipItems;
/**
* <p>
* 退货单明细表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillReshipItemsService extends IService<BillReshipItems> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/IBillReshipService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.bill.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.bill.entity.BillReship;
/**
* <p>
* 退货单表 服务类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
public interface IBillReshipService extends IService<BillReship> {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BakCategoryServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BakCategory;
import com.zscat.mallplus.bill.mapper.BakCategoryMapper;
import com.zscat.mallplus.bill.service.IBakCategoryService;
import org.springframework.stereotype.Service;
/**
* <p>
* 类目表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-17
*/
@Service
public class BakCategoryServiceImpl extends ServiceImpl<BakCategoryMapper, BakCategory> implements IBakCategoryService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BakGoodsServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BakGoods;
import com.zscat.mallplus.bill.mapper.BakGoodsMapper;
import com.zscat.mallplus.bill.service.IBakGoodsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 商品基本信息表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-17
*/
@Service
public class BakGoodsServiceImpl extends ServiceImpl<BakGoodsMapper, BakGoods> implements IBakGoodsService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillAftersalesItemsServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillAftersalesItems;
import com.zscat.mallplus.bill.mapper.BillAftersalesItemsMapper;
import com.zscat.mallplus.bill.service.IBillAftersalesItemsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 售后单明细表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillAftersalesItemsServiceImpl extends ServiceImpl<BillAftersalesItemsMapper, BillAftersalesItems> implements IBillAftersalesItemsService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillAftersalesServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillAftersales;
import com.zscat.mallplus.bill.mapper.BillAftersalesMapper;
import com.zscat.mallplus.bill.service.IBillAftersalesService;
import org.springframework.stereotype.Service;
/**
* <p>
* 退货单表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillAftersalesServiceImpl extends ServiceImpl<BillAftersalesMapper, BillAftersales> implements IBillAftersalesService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillDeliveryItemsServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillDeliveryItems;
import com.zscat.mallplus.bill.mapper.BillDeliveryItemsMapper;
import com.zscat.mallplus.bill.service.IBillDeliveryItemsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 发货单详情表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillDeliveryItemsServiceImpl extends ServiceImpl<BillDeliveryItemsMapper, BillDeliveryItems> implements IBillDeliveryItemsService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillDeliveryServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillDelivery;
import com.zscat.mallplus.bill.mapper.BillDeliveryMapper;
import com.zscat.mallplus.bill.service.IBillDeliveryService;
import org.springframework.stereotype.Service;
/**
* <p>
* 发货单表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillDeliveryServiceImpl extends ServiceImpl<BillDeliveryMapper, BillDelivery> implements IBillDeliveryService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillLadingServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillLading;
import com.zscat.mallplus.bill.mapper.BillLadingMapper;
import com.zscat.mallplus.bill.service.IBillLadingService;
import org.springframework.stereotype.Service;
/**
* <p>
* 提货单表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillLadingServiceImpl extends ServiceImpl<BillLadingMapper, BillLading> implements IBillLadingService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillPaymentsRelServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillPaymentsRel;
import com.zscat.mallplus.bill.mapper.BillPaymentsRelMapper;
import com.zscat.mallplus.bill.service.IBillPaymentsRelService;
import org.springframework.stereotype.Service;
/**
* <p>
* 支付单明细表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillPaymentsRelServiceImpl extends ServiceImpl<BillPaymentsRelMapper, BillPaymentsRel> implements IBillPaymentsRelService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillPaymentsServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillPayments;
import com.zscat.mallplus.bill.mapper.BillPaymentsMapper;
import com.zscat.mallplus.bill.service.IBillPaymentsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 支付单表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillPaymentsServiceImpl extends ServiceImpl<BillPaymentsMapper, BillPayments> implements IBillPaymentsService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillRefundServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillRefund;
import com.zscat.mallplus.bill.mapper.BillRefundMapper;
import com.zscat.mallplus.bill.service.IBillRefundService;
import org.springframework.stereotype.Service;
/**
* <p>
* 退款单表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillRefundServiceImpl extends ServiceImpl<BillRefundMapper, BillRefund> implements IBillRefundService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillReshipItemsServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillReshipItems;
import com.zscat.mallplus.bill.mapper.BillReshipItemsMapper;
import com.zscat.mallplus.bill.service.IBillReshipItemsService;
import org.springframework.stereotype.Service;
/**
* <p>
* 退货单明细表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillReshipItemsServiceImpl extends ServiceImpl<BillReshipItemsMapper, BillReshipItems> implements IBillReshipItemsService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/bill/service/impl/BillReshipServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.bill.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.bill.entity.BillReship;
import com.zscat.mallplus.bill.mapper.BillReshipMapper;
import com.zscat.mallplus.bill.service.IBillReshipService;
import org.springframework.stereotype.Service;
/**
* <p>
* 退货单表 服务实现类
* </p>
*
* @author zscat
* @since 2019-09-16
*/
@Service
public class BillReshipServiceImpl extends ServiceImpl<BillReshipMapper, BillReship> implements IBillReshipService {
}

72
mallplus-admin/src/main/java/com/zscat/mallplus/bo/AdminUserDetails.java

@ -0,0 +1,72 @@
package com.zscat.mallplus.bo;
import com.zscat.mallplus.sys.entity.SysPermission;
import com.zscat.mallplus.sys.entity.SysUser;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/**
* SpringSecurity需要的用户详情
* https://github.com/shenzhuan/mallplus on 2018/4/28.
*/
public class AdminUserDetails implements UserDetails {
private SysUser umsAdmin;
private List<SysPermission> permissionList;
public AdminUserDetails(SysUser umsAdmin, List<SysPermission> permissionList) {
this.umsAdmin = umsAdmin;
this.permissionList = permissionList;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
//返回当前用户的权限
return permissionList.stream()
.filter(permission -> permission.getValue() != null)
.map(permission -> new SimpleGrantedAuthority(permission.getValue()))
.collect(Collectors.toList());
}
@Override
public String getPassword() {
return umsAdmin.getPassword();
}
@Override
public String getUsername() {
return umsAdmin.getUsername();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return umsAdmin.getStatus().equals(1);
}
public SysUser getUmsAdmin() {
return umsAdmin;
}
public void setUmsAdmin(SysUser umsAdmin) {
this.umsAdmin = umsAdmin;
}
}

91
mallplus-admin/src/main/java/com/zscat/mallplus/bo/ColumnDO.java

@ -0,0 +1,91 @@
package com.zscat.mallplus.bo;
/**
* 列的属性
*/
public class ColumnDO {
// 列名
private String columnName;
// 列名类型
private String dataType;
// 列名备注
private String comments;
// 属性名称(第一个字母大写),如:user_name => UserName
private String attrName;
// 属性名称(第一个字母小写),如:user_name => userName
private String attrname;
// 属性类型
private String attrType;
// auto_increment
private String extra;
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
public String getDataType() {
return dataType;
}
public void setDataType(String dataType) {
this.dataType = dataType;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public String getAttrname() {
return attrname;
}
public void setAttrname(String attrname) {
this.attrname = attrname;
}
public String getAttrName() {
return attrName;
}
public void setAttrName(String attrName) {
this.attrName = attrName;
}
public String getAttrType() {
return attrType;
}
public void setAttrType(String attrType) {
this.attrType = attrType;
}
public String getExtra() {
return extra;
}
public void setExtra(String extra) {
this.extra = extra;
}
@Override
public String toString() {
return "ColumnDO{" +
"columnName='" + columnName + '\'' +
", dataType='" + dataType + '\'' +
", comments='" + comments + '\'' +
", attrName='" + attrName + '\'' +
", attrname='" + attrname + '\'' +
", attrType='" + attrType + '\'' +
", extra='" + extra + '\'' +
'}';
}
}

41
mallplus-admin/src/main/java/com/zscat/mallplus/bo/ColumnInfo.java

@ -0,0 +1,41 @@
package com.zscat.mallplus.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 列的数据信息
*
* @author mallplus
* @date 2019-01-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ColumnInfo {
// 数据库字段名称
private Object columnName;
// 允许空值
private Object isNullable;
// 数据库字段类型
private Object columnType;
// 数据库字段注释
private Object columnComment;
// 数据库字段键类型
private Object columnKey;
// 额外的参数
private Object extra;
// 查询 1:模糊 2:精确
private String columnQuery;
// 是否在列表显示
private String columnShow;
}

40
mallplus-admin/src/main/java/com/zscat/mallplus/bo/HomeOrderData.java

@ -0,0 +1,40 @@
package com.zscat.mallplus.bo;
import com.zscat.mallplus.oms.vo.OrderStstic;
import com.zscat.mallplus.vo.OrderStatusCount;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @Auther: shenzhuan
* @Date: 2019/2/23 13:12
* @Description:
*/
@Data
public class HomeOrderData implements Serializable {
int nowOrderCount = 0; // 今日订单
BigDecimal nowOrderPay = new BigDecimal(0); //今日销售总额
int yesOrderCount = 0; // 昨日订单
BigDecimal yesOrderPay = new BigDecimal(0); //日销售总额
int qiOrderCount = 0; // 7日订单
BigDecimal qiOrderPay = new BigDecimal(0); //7日销售总额
int monthOrderCount = 0; // 本月订单
BigDecimal monthOrderPay = new BigDecimal(0); //本月销售总额
int weekOrderCount = 0; // 本月订单
BigDecimal weekOrderPay = new BigDecimal(0); //本月销售总额
int yesToatlOrderCount = 0; // 昨日订单
BigDecimal yesTotalOrderPay = new BigDecimal(0); //日销售总额
int nowTotalOrderCount = 0; // 今日订单
BigDecimal nowToatlOrderPay = new BigDecimal(0); //今日销售总额
private OrderStatusCount orderStatusCount;
int lastWeekOrderCount = 0; // 上周订单
BigDecimal lastWeekOrderPay = new BigDecimal(0); //上周销售总额
int lastMonthOrderCount = 0; // 上月订单
BigDecimal lastMonthOrderPay = new BigDecimal(0); //上月销售总额
List<OrderStstic> orderStsticList;
}

17
mallplus-admin/src/main/java/com/zscat/mallplus/bo/SmsFlashPromotionProducts.java

@ -0,0 +1,17 @@
package com.zscat.mallplus.bo;
import com.zscat.mallplus.pms.entity.PmsProduct;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class SmsFlashPromotionProducts implements Serializable {
private Long id;
private BigDecimal flashPromotionPrice;
private Integer flashPromotionCount;
private Integer flashPromotionLimit;
private Integer sort;
private PmsProduct product;
}

155
mallplus-admin/src/main/java/com/zscat/mallplus/bo/SysLogAspect.java

@ -0,0 +1,155 @@
package com.zscat.mallplus.bo;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.sys.entity.SysAdminLog;
import com.zscat.mallplus.sys.entity.SysUser;
import com.zscat.mallplus.sys.service.ISysAdminLogService;
import com.zscat.mallplus.sys.service.ISysUserService;
import com.zscat.mallplus.util.IpAddressUtil;
import com.zscat.mallplus.util.UserUtils;
import com.zscat.mallplus.utils.ValidatorUtils;
import org.apache.commons.lang.StringUtils;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Objects;
/**
* 系统日志切面处理类
*/
@Aspect
@Component
public class SysLogAspect {
@Resource
public ISysAdminLogService fopSystemOperationLogService;
@Resource
public ISysUserService adminService;
private Logger logger = LoggerFactory.getLogger(SysLogAspect.class);
public static String getString(Object o) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
StringBuffer sb = new StringBuffer();
sb.append("entity[");
Field[] farr = o.getClass().getDeclaredFields();
for (Field field : farr) {
try {
field.setAccessible(true);
if (!ValidatorUtils.empty(field.get(o))) {
sb.append(field.getName());
sb.append("=");
if (field.get(o) instanceof Date) {
// 日期的处理
sb.append(sdf.format(field.get(o)));
} else {
sb.append(field.get(o));
}
sb.append("|");
}
} catch (Exception e) {
e.printStackTrace();
}
}
sb.append("]");
return sb.toString();
}
@Pointcut("@annotation(com.zscat.mallplus.annotation.SysLog)")
public void logPointCut() {
}
@Before("logPointCut()")
public void saveSysLog(JoinPoint joinPoint) {
try {
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
SysAdminLog sysLog = new SysAdminLog();
SysLog syslog1 = method.getAnnotation(SysLog.class);
if (syslog1 != null) {
//注解上的描述
sysLog.setServiceName(syslog1.MODULE());
sysLog.setOperationDesc(syslog1.REMARK());
}
//请求的方法名
String clazzName = joinPoint.getTarget().getClass().getName();
Class<?> clazz = Class.forName(clazzName);
String clazzSimpleName = clazz.getSimpleName();
String methodName = signature.getName();
sysLog.setMethod(clazzSimpleName + "." + methodName);
//请求的参数
String[] parameterNames = ((MethodSignature) joinPoint.getSignature()).getParameterNames();
StringBuilder sb = null;
if (Objects.nonNull(parameterNames)) {
sb = new StringBuilder();
for (int i = 0; i < parameterNames.length; i++) {
Object param = joinPoint.getArgs()[i] != null ? joinPoint.getArgs()[i] : "";
if (StringUtils.isNotEmpty(param.toString()) && !"request".equals(parameterNames[i]) && !"response".equals(parameterNames[i])
&& !"modelMap".equals(parameterNames[i])) {
if (param instanceof Integer) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof String) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof Double) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof Float) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof Long) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof Boolean) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof Date) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else if (param instanceof Timestamp) {
sb.append(parameterNames[i] + ":" + param + "; ");
} else {
sb.append(parameterNames[i] + ":" + getString(param) + "; ");
}
}
}
}
sb = sb == null ? new StringBuilder() : sb;
sysLog.setParams(sb.toString());
//设置IP地址
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
sysLog.setIp(IpAddressUtil.getIpAddr(request));
//用户名
SysUser sysUserEntity = UserUtils.getCurrentMember();
if (null != sysUserEntity && sysUserEntity.getId() != null) {
sysLog.setUserId(sysUserEntity.getId());
sysLog.setUserName(sysUserEntity.getUsername());
}
sysLog.setCreateTime(new Date());
logger.info(getString(sysLog));
//保存系统日志
// fopSystemOperationLogService.save(sysLog);
} catch (Exception ex) {
logger.error("保存系统日志失败" + ex.getMessage());
}
}
}

86
mallplus-admin/src/main/java/com/zscat/mallplus/bo/TableDO.java

@ -0,0 +1,86 @@
package com.zscat.mallplus.bo;
import java.util.List;
/**
* 表数据
*
* @author zscat
* @email sunlightcs@gmail.com
* @date 2016年12月20日 上午12:02:55
*/
public class TableDO {
//表的名称
private String tableName;
//表的备注
private String comments;
//表的主键
private ColumnDO pk;
//表的列名(不包含主键)
private List<ColumnDO> columns;
//类名(第一个字母大写),如:sys_user => SysUser
private String className;
//类名(第一个字母小写),如:sys_user => sysUser
private String classname;
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
}
public ColumnDO getPk() {
return pk;
}
public void setPk(ColumnDO pk) {
this.pk = pk;
}
public List<ColumnDO> getColumns() {
return columns;
}
public void setColumns(List<ColumnDO> columns) {
this.columns = columns;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname;
}
@Override
public String toString() {
return "TableDO{" +
"tableName='" + tableName + '\'' +
", comments='" + comments + '\'' +
", pk=" + pk +
", columns=" + columns +
", className='" + className + '\'' +
", classname='" + classname + '\'' +
'}';
}
}

34
mallplus-admin/src/main/java/com/zscat/mallplus/bo/TableInfo.java

@ -0,0 +1,34 @@
package com.zscat.mallplus.bo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 表的数据信息
*
* @author mallplus
* @date 2019-01-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TableInfo {
// 表名称
private Object tableName;
// 创建日期
private Object createTime;
// 数据库引擎
private Object engine;
// 编码集
private Object coding;
// 备注
private Object remark;
}

180
mallplus-admin/src/main/java/com/zscat/mallplus/bo/Tree.java

@ -0,0 +1,180 @@
package com.zscat.mallplus.bo;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* tree TODO <br>
*
* @author kangxu2 2017-1-7
*/
public class Tree<T> {
/**
* 节点ID
*/
private String id;
/**
* 显示节点文本
*/
private String title;
/**
* 节点状态open closed
*/
private Map<String, Object> state;
/**
* 节点是否被选中 true false
*/
private boolean checked = false;
/**
* 节点属性
*/
private Map<String, Object> meta;
/**
* 节点的子节点
*/
private List<Tree<T>> children = new ArrayList<Tree<T>>();
private String component;
/**
* 父ID
*/
private String parentId;
private String path;
private String name;
/**
* 是否有父节点
*/
private boolean hasParent = false;
/**
* 是否有子节点
*/
private boolean hasChildren = false;
public Tree(String id, String text, Map<String, Object> state, boolean checked, Map<String, Object> attributes,
List<Tree<T>> children, boolean isParent, boolean isChildren, String parentID) {
super();
this.id = id;
this.title = text;
this.state = state;
this.checked = checked;
this.meta = attributes;
this.children = children;
this.hasParent = isParent;
this.hasChildren = isChildren;
this.parentId = parentID;
}
public Tree() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getComponent() {
return component;
}
public void setComponent(String component) {
this.component = component;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Map<String, Object> getState() {
return state;
}
public void setState(Map<String, Object> state) {
this.state = state;
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
public Map<String, Object> getMeta() {
return meta;
}
public void setMeta(Map<String, Object> meta) {
this.meta = meta;
}
public List<Tree<T>> getChildren() {
return children;
}
public void setChildren(boolean isChildren) {
this.hasChildren = isChildren;
}
public void setChildren(List<Tree<T>> children) {
this.children = children;
}
public boolean isHasParent() {
return hasParent;
}
public void setHasParent(boolean isParent) {
this.hasParent = isParent;
}
public boolean isHasChildren() {
return hasChildren;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
}

144
mallplus-admin/src/main/java/com/zscat/mallplus/bo/WebLog.java

@ -0,0 +1,144 @@
package com.zscat.mallplus.bo;
/**
* Controller层的日志封装类
* https://github.com/shenzhuan/mallplus on 2018/4/28.
*/
public class WebLog {
/**
* 操作描述
*/
private String description;
/**
* 操作用户
*/
private String username;
/**
* 操作时间
*/
private Long startTime;
/**
* 消耗时间
*/
private Integer spendTime;
/**
* 根路径
*/
private String basePath;
/**
* URI
*/
private String uri;
/**
* URL
*/
private String url;
/**
* 请求类型
*/
private String method;
/**
* IP地址
*/
private String ip;
private Object parameter;
private Object result;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Long getStartTime() {
return startTime;
}
public void setStartTime(Long startTime) {
this.startTime = startTime;
}
public Integer getSpendTime() {
return spendTime;
}
public void setSpendTime(Integer spendTime) {
this.spendTime = spendTime;
}
public String getBasePath() {
return basePath;
}
public void setBasePath(String basePath) {
this.basePath = basePath;
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public Object getParameter() {
return parameter;
}
public void setParameter(Object parameter) {
this.parameter = parameter;
}
public Object getResult() {
return result;
}
public void setResult(Object result) {
this.result = result;
}
}

169
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildAdvController.java

@ -0,0 +1,169 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildAdv;
import com.zscat.mallplus.build.service.IBuildAdvService;
import com.zscat.mallplus.enums.StatusEnum;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
* 首页轮播广告表 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/adv")
public class BuildAdvController {
@Resource
private IBuildAdvService IBuildAdvService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有轮播广告列表")
@ApiOperation("根据条件查询所有轮播广告列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:adv:read')")
public Object getBuildAdvByPage(BuildAdv entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildAdvService.page(new Page<BuildAdv>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有轮播广告列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存轮播广告")
@ApiOperation("保存轮播广告")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:adv:create')")
public Object saveBuildAdv(@RequestBody BuildAdv entity) {
try {
entity.setStatus(StatusEnum.AuditType.INIT.code());
if (IBuildAdvService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存轮播广告:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新轮播广告")
@ApiOperation("更新轮播广告")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:adv:update')")
public Object updateBuildAdv(@RequestBody BuildAdv entity) {
try {
if (IBuildAdvService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新轮播广告:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除轮播广告")
@ApiOperation("删除轮播广告")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:adv:delete')")
public Object deleteBuildAdv(@ApiParam("轮播广告id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("轮播广告id");
}
if (IBuildAdvService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除轮播广告:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给轮播广告分配轮播广告")
@ApiOperation("查询轮播广告明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:adv:read')")
public Object getBuildAdvById(@ApiParam("轮播广告id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("轮播广告id");
}
BuildAdv coupon = IBuildAdvService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询轮播广告明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除轮播广告")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除轮播广告")
@PreAuthorize("hasAuthority('build:adv:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildAdvService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@SysLog(MODULE = "build", REMARK = "修改上下线状态")
@ApiOperation("修改上下线状态")
@RequestMapping(value = "/update/status/{id}", method = RequestMethod.POST)
@ResponseBody
public Object updateStatus(@PathVariable Long id, Integer status) {
BuildAdv record = new BuildAdv();
record.setId(id);
record.setStatus(status);
return IBuildAdvService.updateById(record);
}
@SysLog(MODULE = "build", REMARK = "导出社区数据")
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildAdv entity) {
// 模拟从数据库获取需要导出的数据
List<BuildAdv> personList = IBuildAdvService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildAdv.class, "导出社区数据.xls", response);
}
@SysLog(MODULE = "build", REMARK = "导入社区数据")
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildAdv> personList = EasyPoiUtils.importExcel(file, BuildAdv.class);
IBuildAdvService.saveBatch(personList);
}
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildApplyRoomController.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Controller
@RequestMapping("/build/buildApplyRoom")
public class BuildApplyRoomController {
}

153
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildGroupController.java

@ -0,0 +1,153 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildGroup;
import com.zscat.mallplus.enums.StatusEnum;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/group")
public class BuildGroupController {
@Resource
private com.zscat.mallplus.build.service.IBuildGroupService IBuildGroupService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有拼团列表")
@ApiOperation("根据条件查询所有拼团列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:group:read')")
public Object getBuildGroupByPage(BuildGroup entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildGroupService.page(new Page<BuildGroup>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有拼团列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存拼团")
@ApiOperation("保存拼团")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:group:create')")
public Object saveBuildGroup(@RequestBody BuildGroup entity) {
try {
entity.setStatus(StatusEnum.AuditType.INIT.code());
if (IBuildGroupService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存拼团:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新拼团")
@ApiOperation("更新拼团")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:group:update')")
public Object updateBuildGroup(@RequestBody BuildGroup entity) {
try {
if (IBuildGroupService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新拼团:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除拼团")
@ApiOperation("删除拼团")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:group:delete')")
public Object deleteBuildGroup(@ApiParam("拼团id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("拼团id");
}
if (IBuildGroupService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除拼团:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给拼团分配拼团")
@ApiOperation("查询拼团明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:group:read')")
public Object getBuildGroupById(@ApiParam("拼团id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("拼团id");
}
BuildGroup coupon = IBuildGroupService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询拼团明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除拼团")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除拼团")
@PreAuthorize("hasAuthority('build:group:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildGroupService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildGroup entity) {
// 模拟从数据库获取需要导出的数据
List<BuildGroup> personList = IBuildGroupService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildGroup.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildGroup> personList = EasyPoiUtils.importExcel(file, BuildGroup.class);
IBuildGroupService.saveBatch(personList);
}
}

154
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildGroupMemberController.java

@ -0,0 +1,154 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildGroupMember;
import com.zscat.mallplus.enums.StatusEnum;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/groupMember")
public class BuildGroupMemberController {
@Resource
private com.zscat.mallplus.build.service.IBuildGroupMemberService IBuildGroupMemberService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有拼团列表")
@ApiOperation("根据条件查询所有拼团列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:groupMember:read')")
public Object getBuildGroupMemberByPage(BuildGroupMember entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildGroupMemberService.page(new Page<BuildGroupMember>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有拼团列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存拼团")
@ApiOperation("保存拼团")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:groupMember:create')")
public Object saveBuildGroupMember(@RequestBody BuildGroupMember entity) {
try {
entity.setStatus(StatusEnum.AuditType.INIT.code());
if (IBuildGroupMemberService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存拼团:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新拼团")
@ApiOperation("更新拼团")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:groupMember:update')")
public Object updateBuildGroupMember(@RequestBody BuildGroupMember entity) {
try {
if (IBuildGroupMemberService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新拼团:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除拼团")
@ApiOperation("删除拼团")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:groupMember:delete')")
public Object deleteBuildGroupMember(@ApiParam("拼团id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("拼团id");
}
if (IBuildGroupMemberService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除拼团:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给拼团分配拼团")
@ApiOperation("查询拼团明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:groupMember:read')")
public Object getBuildGroupMemberById(@ApiParam("拼团id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("拼团id");
}
BuildGroupMember coupon = IBuildGroupMemberService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询拼团明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除拼团")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除拼团")
@PreAuthorize("hasAuthority('build:groupMember:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildGroupMemberService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildGroupMember entity) {
// 模拟从数据库获取需要导出的数据
List<BuildGroupMember> personList = IBuildGroupMemberService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildGroupMember.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildGroupMember> personList = EasyPoiUtils.importExcel(file, BuildGroupMember.class);
IBuildGroupMemberService.saveBatch(personList);
}
}

154
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildNoticeController.java

@ -0,0 +1,154 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildNotice;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 公告表 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/notice")
public class BuildNoticeController {
@Resource
private com.zscat.mallplus.build.service.IBuildNoticeService IBuildNoticeService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有公告表列表")
@ApiOperation("根据条件查询所有公告表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:notice:read')")
public Object getBuildNoticeByPage(BuildNotice entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildNoticeService.page(new Page<BuildNotice>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有公告表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存公告表")
@ApiOperation("保存公告表")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:notice:create')")
public Object saveBuildNotice(@RequestBody BuildNotice entity) {
try {
entity.setCreateTime(new Date());
if (IBuildNoticeService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存公告表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新公告表")
@ApiOperation("更新公告表")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:notice:update')")
public Object updateBuildNotice(@RequestBody BuildNotice entity) {
try {
if (IBuildNoticeService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新公告表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除公告表")
@ApiOperation("删除公告表")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:notice:delete')")
public Object deleteBuildNotice(@ApiParam("公告表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("公告表id");
}
if (IBuildNoticeService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除公告表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给公告表分配公告表")
@ApiOperation("查询公告表明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:notice:read')")
public Object getBuildNoticeById(@ApiParam("公告表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("公告表id");
}
BuildNotice coupon = IBuildNoticeService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询公告表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除公告表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除公告表")
@PreAuthorize("hasAuthority('build:notice:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildNoticeService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildNotice entity) {
// 模拟从数据库获取需要导出的数据
List<BuildNotice> personList = IBuildNoticeService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildNotice.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildNotice> personList = EasyPoiUtils.importExcel(file, BuildNotice.class);
IBuildNoticeService.saveBatch(personList);
}
}

152
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildRepairController.java

@ -0,0 +1,152 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildRepair;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/repair")
public class BuildRepairController {
@Resource
private com.zscat.mallplus.build.service.IBuildRepairService IBuildRepairService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有报修表列表")
@ApiOperation("根据条件查询所有报修表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:repair:read')")
public Object getBuildRepairByPage(BuildRepair entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildRepairService.page(new Page<BuildRepair>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有报修表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存报修表")
@ApiOperation("保存报修表")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:repair:create')")
public Object saveBuildRepair(@RequestBody BuildRepair entity) {
try {
if (IBuildRepairService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存报修表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新报修表")
@ApiOperation("更新报修表")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:repair:update')")
public Object updateBuildRepair(@RequestBody BuildRepair entity) {
try {
if (IBuildRepairService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新报修表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除报修表")
@ApiOperation("删除报修表")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:repair:delete')")
public Object deleteBuildRepair(@ApiParam("报修表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("报修表id");
}
if (IBuildRepairService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除报修表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给报修表分配报修表")
@ApiOperation("查询报修表明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:repair:read')")
public Object getBuildRepairById(@ApiParam("报修表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("报修表id");
}
BuildRepair coupon = IBuildRepairService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询报修表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除报修表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除报修表")
@PreAuthorize("hasAuthority('build:repair:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildRepairService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildRepair entity) {
// 模拟从数据库获取需要导出的数据
List<BuildRepair> personList = IBuildRepairService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildRepair.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildRepair> personList = EasyPoiUtils.importExcel(file, BuildRepair.class);
IBuildRepairService.saveBatch(personList);
}
}

155
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildTypePriceController.java

@ -0,0 +1,155 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildTypePrice;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/typePrice")
public class BuildTypePriceController {
@Resource
private com.zscat.mallplus.build.service.IBuildTypePriceService IBuildTypePriceService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有价格类型表列表")
@ApiOperation("根据条件查询所有价格类型表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:typePrice:read')")
public Object getBuildTypePriceByPage(BuildTypePrice entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildTypePriceService.page(new Page<BuildTypePrice>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有价格类型表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存价格类型表")
@ApiOperation("保存价格类型表")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:typePrice:create')")
public Object saveBuildTypePrice(@RequestBody BuildTypePrice entity) {
try {
entity.setCreateTime(new Date());
if (IBuildTypePriceService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存价格类型表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新价格类型表")
@ApiOperation("更新价格类型表")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:typePrice:update')")
public Object updateBuildTypePrice(@RequestBody BuildTypePrice entity) {
try {
if (IBuildTypePriceService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新价格类型表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除价格类型表")
@ApiOperation("删除价格类型表")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:typePrice:delete')")
public Object deleteBuildTypePrice(@ApiParam("价格类型表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("价格类型表id");
}
if (IBuildTypePriceService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除价格类型表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给价格类型表分配价格类型表")
@ApiOperation("查询价格类型表明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:typePrice:read')")
public Object getBuildTypePriceById(@ApiParam("价格类型表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("价格类型表id");
}
BuildTypePrice coupon = IBuildTypePriceService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询价格类型表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除价格类型表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除价格类型表")
@PreAuthorize("hasAuthority('build:typePrice:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildTypePriceService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildTypePrice entity) {
// 模拟从数据库获取需要导出的数据
List<BuildTypePrice> personList = IBuildTypePriceService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildTypePrice.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildTypePrice> personList = EasyPoiUtils.importExcel(file, BuildTypePrice.class);
IBuildTypePriceService.saveBatch(personList);
}
}

154
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildWuyeCompanyController.java

@ -0,0 +1,154 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildWuyeCompany;
import com.zscat.mallplus.enums.StatusEnum;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/wuyeCompany")
public class BuildWuyeCompanyController {
@Resource
private com.zscat.mallplus.build.service.IBuildWuyeCompanyService IBuildWuyeCompanyService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有物业公司表列表")
@ApiOperation("根据条件查询所有物业公司表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:wuyeCompany:read')")
public Object getBuildWuyeCompanyByPage(BuildWuyeCompany entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildWuyeCompanyService.page(new Page<BuildWuyeCompany>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有物业公司表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存物业公司表")
@ApiOperation("保存物业公司表")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:wuyeCompany:create')")
public Object saveBuildWuyeCompany(@RequestBody BuildWuyeCompany entity) {
try {
entity.setStatus(StatusEnum.AuditType.SUCESS.code());
if (IBuildWuyeCompanyService.saveCompany(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存物业公司表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新物业公司表")
@ApiOperation("更新物业公司表")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:wuyeCompany:update')")
public Object updateBuildWuyeCompany(@RequestBody BuildWuyeCompany entity) {
try {
if (IBuildWuyeCompanyService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新物业公司表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除物业公司表")
@ApiOperation("删除物业公司表")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:wuyeCompany:delete')")
public Object deleteBuildWuyeCompany(@ApiParam("物业公司表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("物业公司表id");
}
if (IBuildWuyeCompanyService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除物业公司表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给物业公司表分配物业公司表")
@ApiOperation("查询物业公司表明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:wuyeCompany:read')")
public Object getBuildWuyeCompanyById(@ApiParam("物业公司表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("物业公司表id");
}
BuildWuyeCompany coupon = IBuildWuyeCompanyService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询物业公司表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除物业公司表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除物业公司表")
@PreAuthorize("hasAuthority('build:wuyeCompany:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildWuyeCompanyService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildWuyeCompany entity) {
// 模拟从数据库获取需要导出的数据
List<BuildWuyeCompany> personList = IBuildWuyeCompanyService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildWuyeCompany.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildWuyeCompany> personList = EasyPoiUtils.importExcel(file, BuildWuyeCompany.class);
IBuildWuyeCompanyService.saveBatch(personList);
}
}

164
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildWuyePriceController.java

@ -0,0 +1,164 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildWuyePrice;
import com.zscat.mallplus.build.entity.BuildingRoom;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Slf4j
@RestController
@RequestMapping("/build/wuyePrice")
public class BuildWuyePriceController {
@Resource
private com.zscat.mallplus.build.service.IBuildWuyePriceService IBuildWuyePriceService;
@Resource
private com.zscat.mallplus.build.service.IBuildingRoomService IBuildingRoomService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有费用表列表")
@ApiOperation("根据条件查询所有费用表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('build:wuyePrice:read')")
public Object getBuildWuyePriceByPage(BuildWuyePrice entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildWuyePriceService.page(new Page<BuildWuyePrice>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有费用表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存费用表")
@ApiOperation("保存费用表")
@PostMapping(value = "/create")
@PreAuthorize("hasAuthority('build:wuyePrice:create')")
public Object saveBuildWuyePrice(@RequestBody BuildWuyePrice entity) {
try {
if (ValidatorUtils.empty(entity.getAmount()) || ValidatorUtils.empty(entity.getPrice())) {
return new CommonResult().failed("请输入价格");
}
BuildingRoom room = IBuildingRoomService.getById(entity.getRoomId());
if (room != null && room.getRoomDesc() != null) {
entity.setRoomDesc(room.getRoomDesc());
}
entity.setCreateDate(new Date());
entity.setMoneys(entity.getAmount().multiply(entity.getPrice()));
if (IBuildWuyePriceService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存费用表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新费用表")
@ApiOperation("更新费用表")
@PostMapping(value = "/update/{id}")
@PreAuthorize("hasAuthority('build:wuyePrice:update')")
public Object updateBuildWuyePrice(@RequestBody BuildWuyePrice entity) {
try {
if (IBuildWuyePriceService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新费用表:%s", e.getMessage(), e);
return new CommonResult().failed(e.getMessage());
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除费用表")
@ApiOperation("删除费用表")
@GetMapping(value = "/delete/{id}")
@PreAuthorize("hasAuthority('build:wuyePrice:delete')")
public Object deleteBuildWuyePrice(@ApiParam("费用表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("费用表id");
}
if (IBuildWuyePriceService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除费用表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给费用表分配费用表")
@ApiOperation("查询费用表明细")
@GetMapping(value = "/{id}")
@PreAuthorize("hasAuthority('build:wuyePrice:read')")
public Object getBuildWuyePriceById(@ApiParam("费用表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("费用表id");
}
BuildWuyePrice coupon = IBuildWuyePriceService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询费用表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除费用表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@SysLog(MODULE = "build", REMARK = "批量删除费用表")
@PreAuthorize("hasAuthority('build:wuyePrice:delete')")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildWuyePriceService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildWuyePrice entity) {
// 模拟从数据库获取需要导出的数据
List<BuildWuyePrice> personList = IBuildWuyePriceService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildWuyePrice.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildWuyePrice> personList = EasyPoiUtils.importExcel(file, BuildWuyePrice.class);
IBuildWuyePriceService.saveBatch(personList);
}
}

162
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingCommunityController.java

@ -0,0 +1,162 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildingCommunity;
import com.zscat.mallplus.enums.StatusEnum;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 小区 前端控制器
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Slf4j
@RestController
@RequestMapping("/building/community")
public class BuildingCommunityController {
@Resource
private com.zscat.mallplus.build.service.IBuildingCommunityService IBuildingCommunityService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有小区表列表")
@ApiOperation("根据条件查询所有小区表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('building:community:read')")
public Object getBuildingCommunityByPage(BuildingCommunity entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildingCommunityService.page(new Page<BuildingCommunity>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有小区表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存小区表")
@ApiOperation("保存小区表")
@PostMapping(value = "/create")
public Object saveBuildingCommunity(@RequestBody BuildingCommunity entity) {
try {
entity.setCreateTime(new Date());
entity.setStatus(StatusEnum.AuditType.SUCESS.code());
if (ValidatorUtils.empty(entity.getCompanyId())) {
// entity.setCompanyId(UserUtils.getCurrentMember().getStoreId());
}
if (ValidatorUtils.empty(entity.getCompanyId())) {
return new CommonResult().failed("请选择物业攻啊");
}
if (IBuildingCommunityService.saveCommunity(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存小区表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新小区表")
@ApiOperation("更新小区表")
@PostMapping(value = "/update/{id}")
public Object updateBuildingCommunity(@RequestBody BuildingCommunity entity) {
try {
if (IBuildingCommunityService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新小区表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除小区表")
@ApiOperation("删除小区表")
@GetMapping(value = "/delete/{id}")
public Object deleteBuildingCommunity(@ApiParam("小区表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("小区表id");
}
if (IBuildingCommunityService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除小区表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给小区表分配小区表")
@ApiOperation("查询小区表明细")
@GetMapping(value = "/{id}")
public Object getBuildingCommunityById(@ApiParam("小区表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("小区表id");
}
BuildingCommunity coupon = IBuildingCommunityService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询小区表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除小区表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@ResponseBody
@SysLog(MODULE = "build", REMARK = "批量删除小区表")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildingCommunityService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildingCommunity entity) {
// 模拟从数据库获取需要导出的数据
List<BuildingCommunity> personList = IBuildingCommunityService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出社区数据", "社区数据", BuildingCommunity.class, "导出社区数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildingCommunity> personList = EasyPoiUtils.importExcel(file, BuildingCommunity.class);
IBuildingCommunityService.saveBatch(personList);
}
}

159
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingFloorController.java

@ -0,0 +1,159 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildingCommunity;
import com.zscat.mallplus.build.entity.BuildingFloor;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Slf4j
@RestController
@RequestMapping("/building/floor")
public class BuildingFloorController {
@Resource
private com.zscat.mallplus.build.service.IBuildingFloorService IBuildingFloorService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有楼房表列表")
@ApiOperation("根据条件查询所有楼房表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('building:floor:read')")
public Object getBuildingFloorByPage(BuildingFloor entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildingFloorService.page(new Page<BuildingFloor>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有楼房表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存楼房表")
@ApiOperation("保存楼房表")
@PostMapping(value = "/create")
public Object saveBuildingFloor(@RequestBody BuildingFloor entity) {
try {
if (ValidatorUtils.empty(entity.getCommunityId())) {
return new CommonResult().failed("请选择小区");
}
entity.setCreateTime(new Date());
if (IBuildingFloorService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存楼房表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新楼房表")
@ApiOperation("更新楼房表")
@PostMapping(value = "/update/{id}")
public Object updateBuildingFloor(@RequestBody BuildingFloor entity) {
try {
if (IBuildingFloorService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新楼房表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除楼房表")
@ApiOperation("删除楼房表")
@GetMapping(value = "/delete/{id}")
public Object deleteBuildingFloor(@ApiParam("楼房表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("楼房表id");
}
if (IBuildingFloorService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除楼房表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给楼房表分配楼房表")
@ApiOperation("查询楼房表明细")
@GetMapping(value = "/{id}")
public Object getBuildingFloorById(@ApiParam("楼房表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("楼房表id");
}
BuildingFloor coupon = IBuildingFloorService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询楼房表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除楼房表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@ResponseBody
@SysLog(MODULE = "build", REMARK = "批量删除楼房表")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildingFloorService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildingFloor entity) {
// 模拟从数据库获取需要导出的数据
List<BuildingFloor> personList = IBuildingFloorService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出楼房数据", "楼房数据", BuildingCommunity.class, "导出楼房数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildingFloor> personList = EasyPoiUtils.importExcel(file, BuildingFloor.class);
IBuildingFloorService.saveBatch(personList);
}
}

167
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingOwnerController.java

@ -0,0 +1,167 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildingCommunity;
import com.zscat.mallplus.build.entity.BuildingOwner;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 业主成员表 前端控制器
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Slf4j
@RestController
@RequestMapping("/building/owner")
public class BuildingOwnerController {
@Resource
private com.zscat.mallplus.build.service.IBuildingOwnerService IBuildingOwnerService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有业主表列表")
@ApiOperation("根据条件查询所有业主表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('building:owner:read')")
public Object getBuildingOwnerByPage(BuildingOwner entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildingOwnerService.page(new Page<BuildingOwner>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有业主表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存业主表")
@ApiOperation("保存业主表")
@PostMapping(value = "/create")
public Object saveBuildingOwner(@RequestBody BuildingOwner entity) {
try {
if (ValidatorUtils.empty(entity.getRoomId())) {
return new CommonResult().failed("请选择房屋");
}
entity.setCreateTime(new Date());
if (entity.getType() == 2 || entity.getType() == 3) {
List<BuildingOwner> list = IBuildingOwnerService.list(new QueryWrapper<BuildingOwner>().eq("room_id", entity.getRoomId()).eq("type", 1).orderByAsc("id"));
if (list != null && list.size() > 0) {
entity.setOwnerId(list.get(0).getId());
} else {
return new CommonResult().failed("请先添加一个业主");
}
}
if (IBuildingOwnerService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存业主表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新业主表")
@ApiOperation("更新业主表")
@PostMapping(value = "/update/{id}")
public Object updateBuildingOwner(@RequestBody BuildingOwner entity) {
try {
if (IBuildingOwnerService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新业主表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除业主表")
@ApiOperation("删除业主表")
@GetMapping(value = "/delete/{id}")
public Object deleteBuildingOwner(@ApiParam("业主表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("业主表id");
}
if (IBuildingOwnerService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除业主表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给业主表分配业主表")
@ApiOperation("查询业主表明细")
@GetMapping(value = "/{id}")
public Object getBuildingOwnerById(@ApiParam("业主表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("业主表id");
}
BuildingOwner coupon = IBuildingOwnerService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询业主表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除业主表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@ResponseBody
@SysLog(MODULE = "build", REMARK = "批量删除业主表")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildingOwnerService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildingOwner entity) {
// 模拟从数据库获取需要导出的数据
List<BuildingOwner> personList = IBuildingOwnerService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出业主数据", "业主数据", BuildingCommunity.class, "导出业主数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildingOwner> personList = EasyPoiUtils.importExcel(file, BuildingOwner.class);
IBuildingOwnerService.saveBatch(personList);
}
}

197
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingRoomController.java

@ -0,0 +1,197 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildingCommunity;
import com.zscat.mallplus.build.entity.BuildingFloor;
import com.zscat.mallplus.build.entity.BuildingRoom;
import com.zscat.mallplus.build.entity.BuildingUnit;
import com.zscat.mallplus.build.service.IBuildingCommunityService;
import com.zscat.mallplus.build.service.IBuildingFloorService;
import com.zscat.mallplus.build.service.IBuildingUnitService;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.IdWorker;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 小区 前端控制器
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Slf4j
@RestController
@RequestMapping("/building/room")
public class BuildingRoomController {
@Resource
private com.zscat.mallplus.build.service.IBuildingRoomService IBuildingRoomService;
@Resource
private IBuildingUnitService unitService;
@Resource
private IBuildingFloorService floorService;
@Resource
private IBuildingCommunityService communityService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有房间表列表")
@ApiOperation("根据条件查询所有房间表列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('building:room:read')")
public Object getBuildingRoomByPage(BuildingRoom entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildingRoomService.page(new Page<BuildingRoom>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有房间表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "根据条件查询楼层和房间")
@ApiOperation("根据条件查询所有房间表列表")
@GetMapping(value = "/withChilds")
public Object withChilds(BuildingFloor entity) {
try {
List<BuildingFloor> floors = floorService.list(new QueryWrapper<>(entity));
for (BuildingFloor floor : floors) {
List<BuildingRoom> list = IBuildingRoomService.list(new QueryWrapper<BuildingRoom>().eq("floor_id", floor.getId()));
floor.setChildren(list);
}
return new CommonResult().success(floors);
} catch (Exception e) {
log.error("根据条件查询所有房间表列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存房间表")
@ApiOperation("保存房间表")
@PostMapping(value = "/create")
public Object saveBuildingRoom(@RequestBody BuildingRoom entity) {
try {
if (ValidatorUtils.empty(entity.getUnitId())) {
return new CommonResult().failed("请选择单元");
}
entity.setCreateTime(new Date());
BuildingUnit unit = unitService.getById(entity.getUnitId());
BuildingFloor floor = floorService.getById(unit.getFloorId());
entity.setFloorId(floor.getId());
entity.setCommunityId(floor.getCommunityId());
BuildingCommunity community = communityService.getById(floor.getCommunityId());
entity.setRoomDesc(community.getName() + "-" + floor.getName() + "-" + unit.getUnitNum() + "-" + entity.getRoomNum());
entity.setLayer(floor.getLayerCount());
entity.setId(IdWorker.getId());
if (IBuildingRoomService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存房间表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新房间表")
@ApiOperation("更新房间表")
@PostMapping(value = "/update/{id}")
public Object updateBuildingRoom(@RequestBody BuildingRoom entity) {
try {
if (IBuildingRoomService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新房间表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除房间表")
@ApiOperation("删除房间表")
@GetMapping(value = "/delete/{id}")
public Object deleteBuildingRoom(@ApiParam("房间表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("房间表id");
}
if (IBuildingRoomService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除房间表:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给房间表分配房间表")
@ApiOperation("查询房间表明细")
@GetMapping(value = "/{id}")
public Object getBuildingRoomById(@ApiParam("房间表id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("房间表id");
}
BuildingRoom coupon = IBuildingRoomService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询房间表明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除房间表")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@ResponseBody
@SysLog(MODULE = "build", REMARK = "批量删除房间表")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildingRoomService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildingRoom entity) {
// 模拟从数据库获取需要导出的数据
List<BuildingRoom> personList = IBuildingRoomService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出房屋数据", "房屋数据", BuildingRoom.class, "导出房屋数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildingRoom> personList = EasyPoiUtils.importExcel(file, BuildingRoom.class);
IBuildingRoomService.saveBatch(personList);
}
}

159
mallplus-admin/src/main/java/com/zscat/mallplus/build/controller/BuildingUnitController.java

@ -0,0 +1,159 @@
package com.zscat.mallplus.build.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zscat.mallplus.annotation.SysLog;
import com.zscat.mallplus.build.entity.BuildingCommunity;
import com.zscat.mallplus.build.entity.BuildingUnit;
import com.zscat.mallplus.util.EasyPoiUtils;
import com.zscat.mallplus.utils.CommonResult;
import com.zscat.mallplus.utils.ValidatorUtils;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Slf4j
@RestController
@RequestMapping("/building/unit")
public class BuildingUnitController {
@Resource
private com.zscat.mallplus.build.service.IBuildingUnitService IBuildingUnitService;
@SysLog(MODULE = "build", REMARK = "根据条件查询所有房屋单元列表")
@ApiOperation("根据条件查询所有房屋单元列表")
@GetMapping(value = "/list")
@PreAuthorize("hasAuthority('building:unit:read')")
public Object getBuildingUnitByPage(BuildingUnit entity,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize
) {
try {
return new CommonResult().success(IBuildingUnitService.page(new Page<BuildingUnit>(pageNum, pageSize), new QueryWrapper<>(entity)));
} catch (Exception e) {
log.error("根据条件查询所有房屋单元列表:%s", e.getMessage(), e);
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "保存房屋单元")
@ApiOperation("保存房屋单元")
@PostMapping(value = "/create")
public Object saveBuildingUnit(@RequestBody BuildingUnit entity) {
try {
if (ValidatorUtils.empty(entity.getFloorId())) {
return new CommonResult().failed("请选择楼");
}
entity.setCreateTime(new Date());
if (IBuildingUnitService.save(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("保存房屋单元:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "更新房屋单元")
@ApiOperation("更新房屋单元")
@PostMapping(value = "/update/{id}")
public Object updateBuildingUnit(@RequestBody BuildingUnit entity) {
try {
if (IBuildingUnitService.updateById(entity)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("更新房屋单元:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "删除房屋单元")
@ApiOperation("删除房屋单元")
@GetMapping(value = "/delete/{id}")
public Object deleteBuildingUnit(@ApiParam("房屋单元id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("房屋单元id");
}
if (IBuildingUnitService.removeById(id)) {
return new CommonResult().success();
}
} catch (Exception e) {
log.error("删除房屋单元:%s", e.getMessage(), e);
return new CommonResult().failed();
}
return new CommonResult().failed();
}
@SysLog(MODULE = "build", REMARK = "给房屋单元分配房屋单元")
@ApiOperation("查询房屋单元明细")
@GetMapping(value = "/{id}")
public Object getBuildingUnitById(@ApiParam("房屋单元id") @PathVariable Long id) {
try {
if (ValidatorUtils.empty(id)) {
return new CommonResult().paramFailed("房屋单元id");
}
BuildingUnit coupon = IBuildingUnitService.getById(id);
return new CommonResult().success(coupon);
} catch (Exception e) {
log.error("查询房屋单元明细:%s", e.getMessage(), e);
return new CommonResult().failed();
}
}
@ApiOperation(value = "批量删除房屋单元")
@RequestMapping(value = "/delete/batch", method = RequestMethod.GET)
@ResponseBody
@SysLog(MODULE = "build", REMARK = "批量删除房屋单元")
public Object deleteBatch(@RequestParam("ids") List<Long> ids) {
boolean count = IBuildingUnitService.removeByIds(ids);
if (count) {
return new CommonResult().success(count);
} else {
return new CommonResult().failed();
}
}
@GetMapping("/exportExcel")
public void export(HttpServletResponse response, BuildingUnit entity) {
// 模拟从数据库获取需要导出的数据
List<BuildingUnit> personList = IBuildingUnitService.list(new QueryWrapper<>(entity));
// 导出操作
EasyPoiUtils.exportExcel(personList, "导出单元数据", "单元数据", BuildingCommunity.class, "导出单元数据.xls", response);
}
@PostMapping("/importExcel")
public void importUsers(@RequestParam MultipartFile file) {
List<BuildingUnit> personList = EasyPoiUtils.importExcel(file, BuildingUnit.class);
IBuildingUnitService.saveBatch(personList);
}
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildAdvService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildAdv;
/**
* <p>
* 首页轮播广告表 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildAdvService extends IService<BuildAdv> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildApplyRoomService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildApplyRoom;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildApplyRoomService extends IService<BuildApplyRoom> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildGroupMemberService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildGroupMember;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildGroupMemberService extends IService<BuildGroupMember> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildGroupService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildGroup;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildGroupService extends IService<BuildGroup> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildNoticeService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildNotice;
/**
* <p>
* 公告表 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildNoticeService extends IService<BuildNotice> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildRepairService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildRepair;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildRepairService extends IService<BuildRepair> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildTypePriceService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildTypePrice;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildTypePriceService extends IService<BuildTypePrice> {
}

17
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildWuyeCompanyService.java

@ -0,0 +1,17 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildWuyeCompany;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildWuyeCompanyService extends IService<BuildWuyeCompany> {
boolean saveCompany(BuildWuyeCompany entity);
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildWuyePriceService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildWuyePrice;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
public interface IBuildWuyePriceService extends IService<BuildWuyePrice> {
}

17
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingCommunityService.java

@ -0,0 +1,17 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildingCommunity;
/**
* <p>
* 小区 服务类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
public interface IBuildingCommunityService extends IService<BuildingCommunity> {
boolean saveCommunity(BuildingCommunity entity);
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingFloorService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildingFloor;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
public interface IBuildingFloorService extends IService<BuildingFloor> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingOwnerService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildingOwner;
/**
* <p>
* 业主成员表 服务类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
public interface IBuildingOwnerService extends IService<BuildingOwner> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingRoomService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildingRoom;
/**
* <p>
* 小区 服务类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
public interface IBuildingRoomService extends IService<BuildingRoom> {
}

16
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/IBuildingUnitService.java

@ -0,0 +1,16 @@
package com.zscat.mallplus.build.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zscat.mallplus.build.entity.BuildingUnit;
/**
* <p>
* 服务类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
public interface IBuildingUnitService extends IService<BuildingUnit> {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildAdvServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildAdv;
import com.zscat.mallplus.build.mapper.BuildAdvMapper;
import com.zscat.mallplus.build.service.IBuildAdvService;
import org.springframework.stereotype.Service;
/**
* <p>
* 首页轮播广告表 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildAdvServiceImpl extends ServiceImpl<BuildAdvMapper, BuildAdv> implements IBuildAdvService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildApplyRoomServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildApplyRoom;
import com.zscat.mallplus.build.mapper.BuildApplyRoomMapper;
import com.zscat.mallplus.build.service.IBuildApplyRoomService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildApplyRoomServiceImpl extends ServiceImpl<BuildApplyRoomMapper, BuildApplyRoom> implements IBuildApplyRoomService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildGroupMemberServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildGroupMember;
import com.zscat.mallplus.build.mapper.BuildGroupMemberMapper;
import com.zscat.mallplus.build.service.IBuildGroupMemberService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildGroupMemberServiceImpl extends ServiceImpl<BuildGroupMemberMapper, BuildGroupMember> implements IBuildGroupMemberService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildGroupServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildGroup;
import com.zscat.mallplus.build.mapper.BuildGroupMapper;
import com.zscat.mallplus.build.service.IBuildGroupService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildGroupServiceImpl extends ServiceImpl<BuildGroupMapper, BuildGroup> implements IBuildGroupService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildNoticeServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildNotice;
import com.zscat.mallplus.build.mapper.BuildNoticeMapper;
import com.zscat.mallplus.build.service.IBuildNoticeService;
import org.springframework.stereotype.Service;
/**
* <p>
* 公告表 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildNoticeServiceImpl extends ServiceImpl<BuildNoticeMapper, BuildNotice> implements IBuildNoticeService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildRepairServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildRepair;
import com.zscat.mallplus.build.mapper.BuildRepairMapper;
import com.zscat.mallplus.build.service.IBuildRepairService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildRepairServiceImpl extends ServiceImpl<BuildRepairMapper, BuildRepair> implements IBuildRepairService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildTypePriceServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildTypePrice;
import com.zscat.mallplus.build.mapper.BuildTypePriceMapper;
import com.zscat.mallplus.build.service.IBuildTypePriceService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildTypePriceServiceImpl extends ServiceImpl<BuildTypePriceMapper, BuildTypePrice> implements IBuildTypePriceService {
}

70
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyeCompanyServiceImpl.java

@ -0,0 +1,70 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildWuyeCompany;
import com.zscat.mallplus.build.mapper.BuildWuyeCompanyMapper;
import com.zscat.mallplus.build.service.IBuildWuyeCompanyService;
import com.zscat.mallplus.exception.ApiMallPlusException;
import com.zscat.mallplus.sys.entity.SysUser;
import com.zscat.mallplus.sys.entity.SysUserRole;
import com.zscat.mallplus.sys.mapper.SysUserMapper;
import com.zscat.mallplus.sys.mapper.SysUserRoleMapper;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildWuyeCompanyServiceImpl extends ServiceImpl<BuildWuyeCompanyMapper, BuildWuyeCompany> implements IBuildWuyeCompanyService {
@Resource
private BuildWuyeCompanyMapper wuyeCompanyMapper;
@Resource
private SysUserMapper userMapper;
@Resource
private PasswordEncoder passwordEncoder;
@Resource
private SysUserRoleMapper userRoleMapper;
@Transactional
@Override
public boolean saveCompany(BuildWuyeCompany entity) {
//1 创建物业公司
entity.setCreateTime(new Date());
wuyeCompanyMapper.insert(entity);
// 2 创建物业公司账号
SysUser user = new SysUser();
user.setUsername(entity.getName());
SysUser umsAdminList = userMapper.selectByUserName(entity.getName());
if (umsAdminList != null) {
throw new ApiMallPlusException("此物业公司已存在");
}
user.setStatus(1);
// user.setStoreId(entity.getId());
user.setSupplyId(0L);
user.setPassword(passwordEncoder.encode("123456"));
user.setCreateTime(new Date());
user.setSupplyId(0L);
user.setNote("物业公司账户:物业公司ID=" + entity.getName() + "," + entity.getId());
user.setIcon(entity.getPic());
user.setNickName(entity.getName());
userMapper.insert(user);
// 3 分配物业公司角色
SysUserRole userRole = new SysUserRole();
userRole.setAdminId(user.getId());
userRole.setRoleId(5L);
userRoleMapper.insert(userRole);
return true;
}
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildWuyePriceServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildWuyePrice;
import com.zscat.mallplus.build.mapper.BuildWuyePriceMapper;
import com.zscat.mallplus.build.service.IBuildWuyePriceService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-12-02
*/
@Service
public class BuildWuyePriceServiceImpl extends ServiceImpl<BuildWuyePriceMapper, BuildWuyePrice> implements IBuildWuyePriceService {
}

66
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingCommunityServiceImpl.java

@ -0,0 +1,66 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildingCommunity;
import com.zscat.mallplus.build.mapper.BuildingCommunityMapper;
import com.zscat.mallplus.build.service.IBuildingCommunityService;
import com.zscat.mallplus.exception.ApiMallPlusException;
import com.zscat.mallplus.sys.entity.SysUser;
import com.zscat.mallplus.sys.entity.SysUserRole;
import com.zscat.mallplus.sys.mapper.SysUserMapper;
import com.zscat.mallplus.sys.mapper.SysUserRoleMapper;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
/**
* <p>
* 小区 服务实现类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Service
public class BuildingCommunityServiceImpl extends ServiceImpl<BuildingCommunityMapper, BuildingCommunity> implements IBuildingCommunityService {
@Resource
private BuildingCommunityMapper communityMapper;
@Resource
private SysUserMapper userMapper;
@Resource
private PasswordEncoder passwordEncoder;
@Resource
private SysUserRoleMapper userRoleMapper;
@Override
public boolean saveCommunity(BuildingCommunity entity) {
//1 创建小区
entity.setCreateTime(new Date());
communityMapper.insert(entity);
// 2 创建物业公司账号
SysUser user = new SysUser();
user.setUsername(entity.getName());
SysUser umsAdminList = userMapper.selectByUserName(entity.getName());
if (umsAdminList != null) {
throw new ApiMallPlusException("此小区已存在");
}
user.setStatus(1);
// user.setStoreId(entity.getId());
user.setPassword(passwordEncoder.encode("123456"));
user.setCreateTime(new Date());
user.setSupplyId(0L);
user.setNote("小区账户:小区ID=" + entity.getName() + "," + entity.getId());
user.setNickName(entity.getName());
userMapper.insert(user);
// 3 分配物业公司角色
SysUserRole userRole = new SysUserRole();
userRole.setAdminId(user.getId());
userRole.setRoleId(5L);
userRoleMapper.insert(userRole);
return true;
}
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingFloorServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildingFloor;
import com.zscat.mallplus.build.mapper.BuildingFloorMapper;
import com.zscat.mallplus.build.service.IBuildingFloorService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Service
public class BuildingFloorServiceImpl extends ServiceImpl<BuildingFloorMapper, BuildingFloor> implements IBuildingFloorService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingOwnerServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildingOwner;
import com.zscat.mallplus.build.mapper.BuildingOwnerMapper;
import com.zscat.mallplus.build.service.IBuildingOwnerService;
import org.springframework.stereotype.Service;
/**
* <p>
* 业主成员表 服务实现类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Service
public class BuildingOwnerServiceImpl extends ServiceImpl<BuildingOwnerMapper, BuildingOwner> implements IBuildingOwnerService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingRoomServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildingRoom;
import com.zscat.mallplus.build.mapper.BuildingRoomMapper;
import com.zscat.mallplus.build.service.IBuildingRoomService;
import org.springframework.stereotype.Service;
/**
* <p>
* 小区 服务实现类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Service
public class BuildingRoomServiceImpl extends ServiceImpl<BuildingRoomMapper, BuildingRoom> implements IBuildingRoomService {
}

20
mallplus-admin/src/main/java/com/zscat/mallplus/build/service/impl/BuildingUnitServiceImpl.java

@ -0,0 +1,20 @@
package com.zscat.mallplus.build.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zscat.mallplus.build.entity.BuildingUnit;
import com.zscat.mallplus.build.mapper.BuildingUnitMapper;
import com.zscat.mallplus.build.service.IBuildingUnitService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zscat
* @since 2019-11-27
*/
@Service
public class BuildingUnitServiceImpl extends ServiceImpl<BuildingUnitMapper, BuildingUnit> implements IBuildingUnitService {
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save