初始项目
This commit is contained in:
8
.gitignore
vendored
8
.gitignore
vendored
@@ -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
Normal file
29
2019-03-15
Normal file
@@ -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
Normal file
158
3
Normal file
@@ -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
|
||||
|
||||
191
LICENSE
Normal file
191
LICENSE
Normal file
@@ -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
Normal file
379
README-DEV.md
Normal file
@@ -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
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)
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
### 组织结构
|
||||
|
||||
``` 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项目效果图
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
## 目前小程序项目已实现功能
|
||||
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)
|
||||
|
||||
#### 架构图
|
||||
|
||||
##### 系统架构图
|
||||
|
||||

|
||||
|
||||
##### 业务架构图
|
||||
|
||||

|
||||
|
||||
#### 模块介绍
|
||||
|
||||
##### 后台管理系统 `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)
|
||||
|
||||
#### 开发进度
|
||||
|
||||

|
||||
|
||||
## 环境搭建
|
||||
|
||||
### 开发工具
|
||||
|
||||
工具 | 说明 | 官网
|
||||
----|----|----
|
||||
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
Normal file
107
addSql
Normal file
@@ -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
Normal file
106
changelog
Normal file
@@ -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
Normal file
17
h
Normal file
@@ -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
Normal file
BIN
mallcloud介绍文档.xlsx
Normal file
Binary file not shown.
256
mallplus-admin/pom.xml
Normal file
256
mallplus-admin/pom.xml
Normal file
@@ -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>
|
||||
@@ -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");
|
||||
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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
Normal file
180
mallplus-admin/src/main/java/com/zscat/mallplus/bo/Tree.java
Normal file
@@ -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
Normal file
144
mallplus-admin/src/main/java/com/zscat/mallplus/bo/WebLog.java
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
@@ -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 have changed in this diff Show More
Reference in New Issue
Block a user