Compare commits
19 Commits
Author | SHA1 | Date |
---|---|---|
yovinchen | d47d5f70c7 | |
yovinchen | 4e0c367ba5 | |
yovinchen | 559022f558 | |
yovinchen | ae1b46ada0 | |
yovinchen | 9da453fa54 | |
yovinchen | 75963c02db | |
yovinchen | b16157a9f9 | |
yovinchen | f0c9941478 | |
yovinchen | 90a4284707 | |
yovinchen | 0d2680a3a2 | |
yovinchen | 39d46336f7 | |
yovinchen | 27445144e4 | |
yovinchen | 5b44f607ed | |
yovinchen | 2638e3b26e | |
yovinchen | 381b5f6731 | |
yovinchen | 71f4be93d5 | |
yovinchen | efcc15ce34 | |
yovinchen | deadc1b7b0 | |
yovinchen | 03e717c1cf |
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="GrepConsole">
|
||||||
|
<option name="tailHistory">
|
||||||
|
<TailHistory>
|
||||||
|
<option name="items">
|
||||||
|
<set>
|
||||||
|
<TailItem>
|
||||||
|
<option name="path" value="$PROJECT_DIR$/README.md" />
|
||||||
|
</TailItem>
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</TailHistory>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -1,6 +1,11 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="RemoteRepositoriesConfiguration">
|
<component name="RemoteRepositoriesConfiguration">
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="central" />
|
||||||
|
<option name="url" value="https://repo.maven.apache.org/maven2" />
|
||||||
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="central" />
|
<option name="id" value="central" />
|
||||||
<option name="name" value="Central Repository" />
|
<option name="name" value="Central Repository" />
|
||||||
|
@ -21,6 +26,11 @@
|
||||||
<option name="name" value="Nexus aliyun" />
|
<option name="name" value="Nexus aliyun" />
|
||||||
<option name="url" value="https://maven.aliyun.com/repository/public" />
|
<option name="url" value="https://maven.aliyun.com/repository/public" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="alimaven" />
|
||||||
|
<option name="name" value="aliyun maven" />
|
||||||
|
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
|
||||||
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="spring" />
|
<option name="id" value="spring" />
|
||||||
<option name="name" value="spring" />
|
<option name="name" value="spring" />
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-acl" />
|
<module name="service-acl" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceAclApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceAclApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Acl -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Acl -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-activity" />
|
<module name="service-activity" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceActivityApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceActivityApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Activity -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Activity -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-cart" />
|
<module name="service-cart" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceCartApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceCartApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Cart -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Cart -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<configuration default="false" name="ServiceGatewayApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
|
<configuration default="false" name="ServiceGatewayApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
|
||||||
<module name="service-gateway" />
|
<module name="service-gateway" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceGatewayApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceGatewayApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Gateway -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Gateway -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-home" />
|
<module name="service-home" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceHomeApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceHomeApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Home -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Home -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-order" />
|
<module name="service-order" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceOrderApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceOrderApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Order -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Order -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-payment" />
|
<module name="service-payment" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServicePaymentApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServicePaymentApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Payment -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Payment -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-product" />
|
<module name="service-product" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceProductApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceProductApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Product -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Product -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-search" />
|
<module name="service-search" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceSearchApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceSearchApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Search -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Search -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-sys" />
|
<module name="service-sys" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceSysApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceSysApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-Sys -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=Sys -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
<option name="FRAME_DEACTIVATION_UPDATE_POLICY" value="UpdateClassesAndResources" />
|
||||||
<module name="service-user" />
|
<module name="service-user" />
|
||||||
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceUserApplication" />
|
<option name="SPRING_BOOT_MAIN_CLASS" value="com.yovinchen.xlcs.ServiceUserApplication" />
|
||||||
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ms::xlcs-parent-service-User -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
<option name="VM_PARAMETERS" value="-javaagent:$PROJECT_DIR$/../skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=User -Dskywalking.collector.backend_service=10.211.55.50:11800" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|
141
README.md
141
README.md
|
@ -1,6 +1,91 @@
|
||||||
# 小鹿超市项目
|
# 小鹿超市项目
|
||||||
|
|
||||||
## 后端技术栈
|
## 配置信息
|
||||||
|
|
||||||
|
### 服务器硬件配置
|
||||||
|
|
||||||
|
| 硬件 | 配置 | 数量 | 参考单价 |
|
||||||
|
|-----|----------------------------|----|------------|
|
||||||
|
| CPU | E5 2673v3 | 2 | 56 |
|
||||||
|
| 主板 | 华南金牌 x99-8D3 双路 | 1 | 580 |
|
||||||
|
| 内存 | 三星 32G DDR3 ECC 4R*4 1866L | 2 | 88 |
|
||||||
|
| 机箱 | 金河田 凌霜Pro 黑色 | 1 | 148 |
|
||||||
|
| 电源 | 鑫谷 GN650 650W 金牌 | 1 | 299 |
|
||||||
|
| 风扇 | A500 风扇 | 2 | 40 |
|
||||||
|
| 显卡 | 亮机卡 | 1 | 20 |
|
||||||
|
| 硬盘 | 三星 970EVO 512G | 1 | 600(笔记本拆机) |
|
||||||
|
| 硬盘 | 希捷 紫盘 4T | 1 | 439 |
|
||||||
|
| | | 总价 | 2454 |
|
||||||
|
|
||||||
|
### 内网穿透服务器(测试服务器)
|
||||||
|
|
||||||
|
| 厂商 | 配置 | IP | 时间 | 地区 |
|
||||||
|
|-----|---------|----|---------|------|
|
||||||
|
| 腾讯云 | 2c2g3m | | 2024-06 | 北京 |
|
||||||
|
| 腾讯云 | 4c4g8m | | 2024-06 | 北京 |
|
||||||
|
| 华为云 | 2c4g1m | | 2024-02 | 北京 |
|
||||||
|
| 阿里云 | 2c2g2m | | 2024-06 | 乌兰察布 |
|
||||||
|
| 雨云 | 8c8g80m | | 2024-03 | 洛杉矶 |
|
||||||
|
| | | | | |
|
||||||
|
|
||||||
|
### 服务器参数
|
||||||
|
|
||||||
|
| 指标 | 参数 |
|
||||||
|
|-----------|------|
|
||||||
|
| 核心 | 24 |
|
||||||
|
| 线程 | 48 |
|
||||||
|
| 内存 | 64 |
|
||||||
|
| 固态硬盘 | 512G |
|
||||||
|
| 机械硬盘(未购买) | |
|
||||||
|
| | |
|
||||||
|
|
||||||
|
### 环境配置需求
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|-------|-----------------|
|
||||||
|
| 底层虚拟化 | Debian12 PVE |
|
||||||
|
| 集群系统 | CentOS 8 Stream |
|
||||||
|
| | |
|
||||||
|
|
||||||
|
### 集群分配设置
|
||||||
|
|
||||||
|
| 模块 | 简称 | 核心 | 内存 | 硬盘 | 数量 | IP | 端口 |
|
||||||
|
|-------|----------|----|----|-----|----|----|----|
|
||||||
|
| 权限模块 | acl | 1 | 1 | 10 | 2 | | |
|
||||||
|
| 区域模块 | Sys | 1 | 1 | 10 | 2 | | |
|
||||||
|
| 订单模块 | order | 2 | 2 | 10 | 2 | | |
|
||||||
|
| 支付模块 | payment | 1 | 2 | 10 | 2 | | |
|
||||||
|
| 搜索模块 | search | 2 | 2 | 10 | 2 | | |
|
||||||
|
| 用户模块 | user | 1 | 1 | 10 | 2 | | |
|
||||||
|
| 商品模块 | product | 1 | 2 | 10 | 2 | | |
|
||||||
|
| 区域模块 | sys | 1 | 1 | 10 | 2 | | |
|
||||||
|
| 购物车模块 | cart | 2 | 1 | 10 | 2 | | |
|
||||||
|
| 优惠券模块 | activity | 1 | 1 | 10 | 2 | | |
|
||||||
|
| 网关 | gateway | 1 | 2 | 10 | 3 | | |
|
||||||
|
| 后台 | admin | 1 | 2 | 5 | 2 | | |
|
||||||
|
| 小程序 | user | | | | | | |
|
||||||
|
| 总数 | | 25 | 33 | 110 | 23 | | |
|
||||||
|
|
||||||
|
### 环境配置
|
||||||
|
|
||||||
|
| 模块 | 版本 | 核心 | 内存 | 硬盘 | 数量 | IP | |
|
||||||
|
|---------------|------------------------------|----|----|----|----|----|------|
|
||||||
|
| MySQL | 8.0.30 | | | | | | |
|
||||||
|
| Redis | 7.2.4 | | | | | | |
|
||||||
|
| Minio | RELEASE.2023-08-16T20-17-30Z | | | | | | |
|
||||||
|
| RabbitMQ | 3.12.12 | | | | | | |
|
||||||
|
| Elasticsearch | 7.17.7 | | | | | | |
|
||||||
|
| Kinbana | 7.17.7 | | | | | | |
|
||||||
|
| Nacos | 2.2.3 | | | | | | |
|
||||||
|
| | | | | | | | |
|
||||||
|
| SkyWalking | 9.7.0 | | | | | | |
|
||||||
|
| DevOps | | | | | | | |
|
||||||
|
| Gitea | 1.21.3 | | | | | | |
|
||||||
|
| Nexus3 | 2023-12-27T07:29 | | | | | | |
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
### 后端技术栈
|
||||||
|
|
||||||
| 核心技术 |
|
| 核心技术 |
|
||||||
| :----------------------------------------------------------- |
|
| :----------------------------------------------------------- |
|
||||||
|
@ -24,7 +109,7 @@
|
||||||
| |
|
| |
|
||||||
| |
|
| |
|
||||||
|
|
||||||
## 前端技术栈
|
### 前端技术栈
|
||||||
|
|
||||||
| 核心技术 |
|
| 核心技术 |
|
||||||
| ------------------ |
|
| ------------------ |
|
||||||
|
@ -38,9 +123,7 @@
|
||||||
| |
|
| |
|
||||||
| |
|
| |
|
||||||
|
|
||||||
|
### 开发工具
|
||||||
|
|
||||||
## 开发工具
|
|
||||||
|
|
||||||
| 开发工具 | 版本 |
|
| 开发工具 | 版本 |
|
||||||
| ----------------------------- | -------------- |
|
| ----------------------------- | -------------- |
|
||||||
|
@ -55,16 +138,22 @@
|
||||||
| Termius | 8.4.0 |
|
| Termius | 8.4.0 |
|
||||||
| 微信开发者工具 | 1.06.2306020 |
|
| 微信开发者工具 | 1.06.2306020 |
|
||||||
|
|
||||||
## 操作系统
|
### 操作系统
|
||||||
|
|
||||||
| 开发工具 | 版本 |
|
| 开发工具 | 版本 |
|
||||||
| ------------------- | ------ |
|
|---------------------|--------|
|
||||||
| Mac OS Ventura | 13.6.3 |
|
| Mac OS Ventura | 13.6.3 |
|
||||||
| Linux CentOS Stream | 9 |
|
|
||||||
| Linux CentOS | 7.9 |
|
| Linux CentOS | 7.9 |
|
||||||
|
| Linux CentOS Stream | 8 |
|
||||||
|
| Linux CentOS Stream | 9 |
|
||||||
|
|
||||||
## 项目环境部署
|
## 项目环境部署
|
||||||
|
|
||||||
|
### portainer docker 可视化
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
|
||||||
|
```
|
||||||
### Mysql 数据库
|
### Mysql 数据库
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -104,15 +193,33 @@ nacos/nacos-server:v2.2.3
|
||||||
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
|
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
|
||||||
-e "discovery.type=single-node" \
|
-e "discovery.type=single-node" \
|
||||||
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
|
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
|
||||||
-d elasticsearch:7.8.0
|
-d elasticsearch:7.17.7
|
||||||
|
|
||||||
docker exec -it elasticsearch /bin/bash
|
docker exec -it elasticsearch /bin/bash
|
||||||
|
|
||||||
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.5/elasticsearch-analysis-ik-7.17.5.zip
|
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.7/elasticsearch-analysis-ik-7.17.7.zip
|
||||||
|
|
||||||
docker restart elasticsearch
|
docker restart elasticsearch
|
||||||
|
|
||||||
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.8.0
|
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.17.7
|
||||||
|
```
|
||||||
|
|
||||||
|
其中服务器可能因为网络原因下载不下来 ik 分词器,我们下载后本地导入安装
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# ik 分词器在服务器中的位置 /root/elasticsearch-analysis-ik-7.17.7.zip
|
||||||
|
# 导入 docker 中
|
||||||
|
docker cp /root/elasticsearch-analysis-ik-7.17.7.zip elasticsearch:/tmp/elasticsearch-analysis-ik-7.17.7.zip
|
||||||
|
|
||||||
|
# 进入容器
|
||||||
|
docker exec -it elasticsearch /bin/bash
|
||||||
|
|
||||||
|
# 安装
|
||||||
|
./bin/elasticsearch-plugin install file:///tmp/elasticsearch-analysis-ik-7.17.7.zip
|
||||||
|
|
||||||
|
# 退出后继续按照上述内容重启 安装 kibana
|
||||||
|
exit
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### GrayLog 日志框架 (已弃用,日志服务整合到 SkyWalking)
|
### GrayLog 日志框架 (已弃用,日志服务整合到 SkyWalking)
|
||||||
|
@ -194,7 +301,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
SW_HEALTH_CHECKER: default
|
SW_HEALTH_CHECKER: default
|
||||||
SW_STORAGE: elasticsearch
|
SW_STORAGE: elasticsearch
|
||||||
SW_STORAGE_ES_CLUSTER_NODES: 124.70.87.134:9200
|
SW_STORAGE_ES_CLUSTER_NODES: 192.168.31.50:9200
|
||||||
JAVA_OPTS: "-Xms2048m -Xmx2048m"
|
JAVA_OPTS: "-Xms2048m -Xmx2048m"
|
||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
SW_TELEMETRY: prometheus
|
SW_TELEMETRY: prometheus
|
||||||
|
@ -219,7 +326,7 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
environment:
|
environment:
|
||||||
SW_OAP_ADDRESS: http://124.70.87.134:12800
|
SW_OAP_ADDRESS: http://192.168.31.50:12800
|
||||||
SW_HEALTH_CHECKER: default
|
SW_HEALTH_CHECKER: default
|
||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
@ -229,3 +336,11 @@ services:
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 60s #⾸次检测延迟时间
|
start_period: 60s #⾸次检测延迟时间
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 开发需求
|
||||||
|
|
||||||
|
| | | |
|
||||||
|
|------|------|------|
|
||||||
|
| | | |
|
||||||
|
| | | |
|
||||||
|
| | | |
|
||||||
|
|
|
@ -3,4 +3,4 @@ ENV = 'development'
|
||||||
|
|
||||||
# base api
|
# base api
|
||||||
# VUE_APP_BASE_API = '/dev-api'
|
# VUE_APP_BASE_API = '/dev-api'
|
||||||
VUE_APP_BASE_API = 'http://localhost:8200'
|
VUE_APP_BASE_API = 'http://192.168.31.67:8200'
|
||||||
|
|
|
@ -3,5 +3,5 @@ ENV = 'production'
|
||||||
|
|
||||||
# base api
|
# base api
|
||||||
#VUE_APP_BASE_API = '/prod-api'
|
#VUE_APP_BASE_API = '/prod-api'
|
||||||
VUE_APP_BASE_API = 'http://localhost:8200'
|
VUE_APP_BASE_API = 'http://192.168.31.67:8200'
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
FROM nginx:latest
|
||||||
|
EXPOSE 80
|
||||||
|
WORKDIR /app
|
||||||
|
# 替换nginx配置
|
||||||
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
# 将第一阶段的静态文件复制到nginx中
|
||||||
|
RUN rm -rf /usr/share/nginx/html
|
||||||
|
RUN mkdir /usr/share/nginx/html
|
||||||
|
COPY ./dist /usr/share/nginx/html
|
||||||
|
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
|
@ -0,0 +1,21 @@
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
access_log /var/log/nginx/host.access.log main;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
|
||||||
|
# 新增下面这句,其他是默认nginx配置
|
||||||
|
# 解决部分前端框架的路由问题,在浏览器刷新报错404
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,10 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
import Router from 'vue-router'
|
import Router from 'vue-router'
|
||||||
|
|
||||||
Vue.use(Router)
|
|
||||||
|
|
||||||
/* Layout */
|
/* Layout */
|
||||||
import Layout from '@/layout'
|
import Layout from '@/layout'
|
||||||
|
|
||||||
|
Vue.use(Router)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Note: sub-menu only appear when route children.length >= 1
|
* Note: sub-menu only appear when route children.length >= 1
|
||||||
* Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
|
* Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
|
||||||
|
@ -315,20 +314,20 @@ export const constantRoutes = [
|
||||||
component: Layout,
|
component: Layout,
|
||||||
redirect: '/user/leader/list',
|
redirect: '/user/leader/list',
|
||||||
name: 'Leader',
|
name: 'Leader',
|
||||||
meta: { title: '团长管理', icon: 'table' },
|
meta: {title: '配送员管理', icon: 'table'},
|
||||||
alwaysShow: true,
|
alwaysShow: true,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'leader/checkList',
|
path: 'leader/checkList',
|
||||||
name: 'LeaderCheck',
|
name: 'LeaderCheck',
|
||||||
component: () => import('@/views/user/leader/checkList'),
|
component: () => import('@/views/user/leader/checkList'),
|
||||||
meta: { title: '团长待审核' }
|
meta: {title: '配送员待审核'}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'leader/list',
|
path: 'leader/list',
|
||||||
name: 'leader',
|
name: 'leader',
|
||||||
component: () => import('@/views/user/leader/list'),
|
component: () => import('@/views/user/leader/list'),
|
||||||
meta: { title: '团长已审核' }
|
meta: {title: '配送员已审核'}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -3,41 +3,41 @@
|
||||||
|
|
||||||
<!-- 工具条 -->
|
<!-- 工具条 -->
|
||||||
<div class="tools-div">
|
<div class="tools-div">
|
||||||
<el-button type="success" icon="el-icon-plus" size="mini" @click="add()">添 加</el-button>
|
<el-button icon="el-icon-plus" size="mini" type="success" @click="add()">添 加</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
:data="sysMenuList"
|
:data="sysMenuList"
|
||||||
style="width: 100%;margin-bottom: 20px;margin-top: 10px;"
|
|
||||||
row-key="id"
|
|
||||||
border
|
|
||||||
:default-expand-all="false"
|
:default-expand-all="false"
|
||||||
:tree-props="{children: 'children'}"
|
:tree-props="{children: 'children'}"
|
||||||
|
border
|
||||||
|
row-key="id"
|
||||||
|
style="width: 100%;margin-bottom: 20px;margin-top: 10px;"
|
||||||
>
|
>
|
||||||
|
|
||||||
<el-table-column prop="name" label="菜单名称" width="200" />
|
<el-table-column label="菜单名称" prop="name" width="200"/>
|
||||||
|
|
||||||
<el-table-column prop="code" label="权限标识" width="180" />
|
<el-table-column label="权限标识" prop="code" width="180"/>
|
||||||
|
|
||||||
<el-table-column prop="createTime" label="创建时间" width="200" />
|
<el-table-column label="创建时间" prop="createTime" width="200"/>
|
||||||
|
|
||||||
<el-table-column prop="updateTime" label="修改时间" width="200" />
|
<el-table-column label="修改时间" prop="updateTime" width="200"/>
|
||||||
<el-table-column label="操作" align="center">
|
<el-table-column align="center" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
v-if="scope.row.type !== 2"
|
v-if="scope.row.type !== 2"
|
||||||
type="success"
|
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
size="mini"
|
size="mini"
|
||||||
title="添加下级节点"
|
title="添加下级节点"
|
||||||
|
type="success"
|
||||||
@click="add(scope.row)"
|
@click="add(scope.row)"
|
||||||
/>
|
/>
|
||||||
<el-button type="primary" icon="el-icon-edit" size="mini" title="修改" @click="edit(scope.row)" />
|
<el-button icon="el-icon-edit" size="mini" title="修改" type="primary" @click="edit(scope.row)"/>
|
||||||
<el-button
|
<el-button
|
||||||
type="danger"
|
:disabled="scope.row.children.length > 0"
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
size="mini"
|
size="mini"
|
||||||
title="删除"
|
title="删除"
|
||||||
:disabled="scope.row.children.length > 0"
|
type="danger"
|
||||||
@click="removeDataById(scope.row.id)"
|
@click="removeDataById(scope.row.id)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -47,36 +47,36 @@
|
||||||
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="40%">
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="40%">
|
||||||
<el-form ref="dataForm" :model="sysMenu" label-width="150px" size="small" style="padding-right: 40px;">
|
<el-form ref="dataForm" :model="sysMenu" label-width="150px" size="small" style="padding-right: 40px;">
|
||||||
<el-form-item v-if="sysMenu.id === ''" label="上级部门">
|
<el-form-item v-if="sysMenu.id === ''" label="上级部门">
|
||||||
<el-input v-model="sysMenu.parentName" disabled="true" />
|
<el-input v-model="sysMenu.parentName" disabled="true"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="菜单类型" prop="type">
|
<el-form-item label="菜单类型" prop="type">
|
||||||
<el-radio-group v-model="sysMenu.type" :disabled="typeDisabled">
|
<el-radio-group v-model="sysMenu.type" :disabled="typeDisabled">
|
||||||
<el-radio :label="0" :disabled="type0Disabled">目录</el-radio>
|
<el-radio :disabled="type0Disabled" :label="0">目录</el-radio>
|
||||||
<el-radio :label="1" :disabled="type1Disabled">菜单</el-radio>
|
<el-radio :disabled="type1Disabled" :label="1">菜单</el-radio>
|
||||||
<el-radio :label="2" :disabled="type2Disabled">按钮</el-radio>
|
<el-radio :disabled="type2Disabled" :label="2">按钮</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="菜单名称" prop="name">
|
<el-form-item label="菜单名称" prop="name">
|
||||||
<el-input v-model="sysMenu.name" />
|
<el-input v-model="sysMenu.name"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item v-if="sysMenu.type !== 0" prop="to_code">
|
<el-form-item v-if="sysMenu.type !== 0" prop="to_code">
|
||||||
<span slot="label">
|
<span slot="label">
|
||||||
<el-tooltip content="访问的组件路径,如:`system/user/index`,默认在`views`目录下" placement="top">
|
<el-tooltip content="访问的组件路径,如:`system/user/index`,默认在`views`目录下" placement="top">
|
||||||
<i class="el-icon-question" />
|
<i class="el-icon-question"/>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
组件路径
|
组件路径
|
||||||
</span>
|
</span>
|
||||||
<el-input v-model="sysMenu.to_code" placeholder="请输入组件路径" />
|
<el-input v-model="sysMenu.to_code" placeholder="请输入组件路径"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="sysMenu.type === 2">
|
<el-form-item v-if="sysMenu.type === 2">
|
||||||
<el-input v-model="sysMenu.code" placeholder="请输入权限标识" maxlength="100" />
|
<el-input v-model="sysMenu.code" maxlength="100" placeholder="请输入权限标识"/>
|
||||||
<span slot="label">
|
<span slot="label">
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
content="控制器中定义的权限字符,如:@PreAuthorize(hasAuthority('bnt.sysRole.list'))"
|
content="控制器中定义的权限字符,如:@PreAuthorize(hasAuthority('bnt.sysRole.list'))"
|
||||||
placement="top"
|
placement="top"
|
||||||
>
|
>
|
||||||
<i class="el-icon-question" />
|
<i class="el-icon-question"/>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
权限字符
|
权限字符
|
||||||
</span>
|
</span>
|
||||||
|
@ -84,8 +84,8 @@
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button size="small" icon="el-icon-refresh-right" @click="dialogVisible = false">取 消</el-button>
|
<el-button icon="el-icon-refresh-right" size="small" @click="dialogVisible = false">取 消</el-button>
|
||||||
<el-button type="primary" icon="el-icon-check" size="small" @click="saveOrUpdate()">确 定</el-button>
|
<el-button icon="el-icon-check" size="small" type="primary" @click="saveOrUpdate()">确 定</el-button>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
|
|
||||||
<el-card class="operate-container" shadow="never">
|
<el-card class="operate-container" shadow="never">
|
||||||
<div style="margin-top: 15px">
|
<div style="margin-top: 15px">
|
||||||
<el-form :inline="true" size="small" label-width="140px">
|
<el-form :inline="true" label-width="140px" size="small">
|
||||||
<el-form-item label="输入搜索:">
|
<el-form-item label="输入搜索:">
|
||||||
<el-input v-model="tempSearchObj.roleName" style="width: 203px" placeholder="角色名称" />
|
<el-input v-model="tempSearchObj.roleName" placeholder="角色名称" style="width: 203px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
|
<el-button icon="el-icon-search" type="primary" @click="search()">查询</el-button>
|
||||||
<el-button type="default" @click="resetSearch()">清空</el-button>
|
<el-button type="default" @click="resetSearch()">清空</el-button>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,14 +16,14 @@
|
||||||
|
|
||||||
<!-- 工具条 -->
|
<!-- 工具条 -->
|
||||||
<el-card class="operate-container" shadow="never">
|
<el-card class="operate-container" shadow="never">
|
||||||
<i class="el-icon-tickets" style="margin-top: 5px" />
|
<i class="el-icon-tickets" style="margin-top: 5px"/>
|
||||||
<span style="margin-top: 5px">数据列表</span>
|
<span style="margin-top: 5px">数据列表</span>
|
||||||
|
|
||||||
<el-button class="btn-add" size="mini" @click="addRole">添加</el-button>
|
<el-button class="btn-add" size="mini" @click="addRole">添加</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
|
:disabled="selectedRoles.length === 0"
|
||||||
class="btn-add"
|
class="btn-add"
|
||||||
size="mini"
|
size="mini"
|
||||||
:disabled="selectedRoles.length === 0"
|
|
||||||
style="margin: 0 10px;"
|
style="margin: 0 10px;"
|
||||||
@click="removeRoles()"
|
@click="removeRoles()"
|
||||||
>批量删除
|
>批量删除
|
||||||
|
@ -32,9 +32,9 @@
|
||||||
|
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
|
:data="roles"
|
||||||
border
|
border
|
||||||
stripe
|
stripe
|
||||||
:data="roles"
|
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
@ -44,20 +44,20 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
type="index"
|
|
||||||
label="序号"
|
|
||||||
width="100"
|
|
||||||
align="center"
|
align="center"
|
||||||
|
label="序号"
|
||||||
|
type="index"
|
||||||
|
width="100"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column label="角色名称" width="500" align="center">
|
<el-table-column align="center" label="角色名称" width="500">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<template v-if="row.edit">
|
<template v-if="row.edit">
|
||||||
<el-input v-model="row.roleName" class="edit-input" size="small" />
|
<el-input v-model="row.roleName" class="edit-input" size="small"/>
|
||||||
<el-button
|
<el-button
|
||||||
class="cancel-btn"
|
class="cancel-btn"
|
||||||
size="small"
|
|
||||||
icon="el-icon-refresh"
|
icon="el-icon-refresh"
|
||||||
|
size="small"
|
||||||
type="warning"
|
type="warning"
|
||||||
@click="cancelEdit(row)"
|
@click="cancelEdit(row)"
|
||||||
>
|
>
|
||||||
|
@ -68,37 +68,37 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="操作" align="center">
|
<el-table-column align="center" label="操作">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<HintButton
|
<HintButton
|
||||||
size="mini"
|
|
||||||
type="info"
|
|
||||||
icon="el-icon-info"
|
icon="el-icon-info"
|
||||||
|
size="mini"
|
||||||
title="分配权限"
|
title="分配权限"
|
||||||
|
type="info"
|
||||||
@click="$router.push(`/acl/role/auth/${row.id}?roleName=${row.roleName}`)"
|
@click="$router.push(`/acl/role/auth/${row.id}?roleName=${row.roleName}`)"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<HintButton
|
<HintButton
|
||||||
v-if="row.edit"
|
v-if="row.edit"
|
||||||
size="mini"
|
|
||||||
type="primary"
|
|
||||||
icon="el-icon-check"
|
icon="el-icon-check"
|
||||||
|
size="mini"
|
||||||
title="确定"
|
title="确定"
|
||||||
|
type="primary"
|
||||||
@click="updateRole(row)"
|
@click="updateRole(row)"
|
||||||
/>
|
/>
|
||||||
<HintButton
|
<HintButton
|
||||||
v-if="!row.edit"
|
v-if="!row.edit"
|
||||||
size="mini"
|
|
||||||
type="primary"
|
|
||||||
icon="el-icon-edit"
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
title="修改角色"
|
title="修改角色"
|
||||||
|
type="primary"
|
||||||
@click="row.edit= true"
|
@click="row.edit= true"
|
||||||
/>
|
/>
|
||||||
<HintButton
|
<HintButton
|
||||||
size="mini"
|
|
||||||
type="danger"
|
|
||||||
icon="el-icon-delete"
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
title="删除角色"
|
title="删除角色"
|
||||||
|
type="danger"
|
||||||
@click="removeRole(row)"
|
@click="removeRole(row)"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
@ -108,11 +108,11 @@
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<el-pagination
|
<el-pagination
|
||||||
:current-page="page"
|
:current-page="page"
|
||||||
:total="total"
|
|
||||||
:page-size="limit"
|
:page-size="limit"
|
||||||
:page-sizes="[5, 10, 20]"
|
:page-sizes="[5, 10, 20]"
|
||||||
style="padding: 10px;"
|
:total="total"
|
||||||
layout="prev, pager, next, jumper, ->, sizes, total"
|
layout="prev, pager, next, jumper, ->, sizes, total"
|
||||||
|
style="padding: 10px;"
|
||||||
@current-change="getRoles"
|
@current-change="getRoles"
|
||||||
@size-change="handleSizeChange"
|
@size-change="handleSizeChange"
|
||||||
/>
|
/>
|
||||||
|
@ -161,7 +161,7 @@ export default {
|
||||||
更新角色
|
更新角色
|
||||||
*/
|
*/
|
||||||
updateRole(role) {
|
updateRole(role) {
|
||||||
this.$API.role.updateById({ id: role.id, roleName: role.roleName })
|
this.$API.role.updateById({id: role.id, roleName: role.roleName})
|
||||||
.then(result => {
|
.then(result => {
|
||||||
this.$message.success(result.message || '更新角色成功!')
|
this.$message.success(result.message || '更新角色成功!')
|
||||||
this.getRoles(this.page)
|
this.getRoles(this.page)
|
||||||
|
@ -184,8 +184,8 @@ export default {
|
||||||
this.$prompt('请输入新名称', '添加角色', {
|
this.$prompt('请输入新名称', '添加角色', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消'
|
cancelButtonText: '取消'
|
||||||
}).then(({ value }) => {
|
}).then(({value}) => {
|
||||||
this.$API.role.save({ roleName: value }).then(result => {
|
this.$API.role.save({roleName: value}).then(result => {
|
||||||
this.$message.success(result.message || '添加角色成功')
|
this.$message.success(result.message || '添加角色成功')
|
||||||
this.getRoles()
|
this.getRoles()
|
||||||
})
|
})
|
||||||
|
@ -200,10 +200,10 @@ export default {
|
||||||
getRoles(page = 1) {
|
getRoles(page = 1) {
|
||||||
this.page = page
|
this.page = page
|
||||||
this.listLoading = true
|
this.listLoading = true
|
||||||
const { limit, searchObj } = this
|
const {limit, searchObj} = this
|
||||||
this.$API.role.getPageList(page, limit, searchObj).then(
|
this.$API.role.getPageList(page, limit, searchObj).then(
|
||||||
result => {
|
result => {
|
||||||
const { records, total } = result.data
|
const {records, total} = result.data
|
||||||
this.roles = records.map(item => {
|
this.roles = records.map(item => {
|
||||||
item.edit = false // 用于标识是否显示编辑输入框的属性
|
item.edit = false // 用于标识是否显示编辑输入框的属性
|
||||||
item.originRoleName = item.roleName // 缓存角色名称, 用于取消
|
item.originRoleName = item.roleName // 缓存角色名称, 用于取消
|
||||||
|
@ -220,7 +220,7 @@ export default {
|
||||||
根据搜索条件进行搜索
|
根据搜索条件进行搜索
|
||||||
*/
|
*/
|
||||||
search() {
|
search() {
|
||||||
this.searchObj = { ...this.tempSearchObj }
|
this.searchObj = {...this.tempSearchObj}
|
||||||
this.getRoles()
|
this.getRoles()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -240,10 +240,10 @@ export default {
|
||||||
/*
|
/*
|
||||||
删除指定的角色
|
删除指定的角色
|
||||||
*/
|
*/
|
||||||
removeRole({ id, roleName }) {
|
removeRole({id, roleName}) {
|
||||||
this.$confirm(`确定删除 '${roleName}' 吗?`, '提示', {
|
this.$confirm(`确定删除 '${roleName}' 吗?`, '提示', {
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(async() => {
|
}).then(async () => {
|
||||||
const result = await this.$API.role.removeById(id)
|
const result = await this.$API.role.removeById(id)
|
||||||
this.getRoles(this.roles.length === 1 ? this.page - 1 : this.page)
|
this.getRoles(this.roles.length === 1 ? this.page - 1 : this.page)
|
||||||
this.$message.success(result.message || '删除成功!')
|
this.$message.success(result.message || '删除成功!')
|
||||||
|
@ -265,7 +265,7 @@ export default {
|
||||||
removeRoles() {
|
removeRoles() {
|
||||||
this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
this.$confirm('此操作将永久删除该记录, 是否继续?', '提示', {
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).then(async() => {
|
}).then(async () => {
|
||||||
const ids = this.selectedRoles.map(role => role.id)
|
const ids = this.selectedRoles.map(role => role.id)
|
||||||
const result = await this.$API.role.removeRoles(ids)
|
const result = await this.$API.role.removeRoles(ids)
|
||||||
this.getRoles()
|
this.getRoles()
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-input disabled :value="$route.query.roleName" />
|
<el-input :value="$route.query.roleName" disabled/>
|
||||||
<el-tree
|
<el-tree
|
||||||
ref="tree"
|
ref="tree"
|
||||||
style="margin: 20px 0"
|
|
||||||
:data="allPermissions"
|
:data="allPermissions"
|
||||||
|
:default-checked-keys="assignPermission"
|
||||||
|
:props="defaultProps"
|
||||||
|
default-expand-all
|
||||||
node-key="id"
|
node-key="id"
|
||||||
show-checkbox
|
show-checkbox
|
||||||
default-expand-all
|
style="margin: 20px 0"
|
||||||
:props="defaultProps"
|
|
||||||
/>
|
/>
|
||||||
<el-button :loading="loading" type="primary" @click="save">保存</el-button>
|
<el-button :loading="loading" type="primary" @click="save">保存</el-button>
|
||||||
<el-button @click="$router.replace({name: 'Role'})">取消</el-button>
|
<el-button @click="$router.replace({name: 'Role'})">取消</el-button>
|
||||||
|
@ -48,8 +49,11 @@ export default {
|
||||||
*/
|
*/
|
||||||
getPermissions(roleId) {
|
getPermissions(roleId) {
|
||||||
this.$API.permission.toAssign(roleId).then(result => {
|
this.$API.permission.toAssign(roleId).then(result => {
|
||||||
const allPermissions = result.data
|
const allPermissions = result.data.allPermissionList
|
||||||
this.allPermissions = allPermissions
|
this.allPermissions = allPermissions
|
||||||
|
const assignPermission = result.data.assignPermission
|
||||||
|
this.assignPermission = assignPermission
|
||||||
|
|
||||||
const checkedIds = this.getCheckedIds(allPermissions)
|
const checkedIds = this.getCheckedIds(allPermissions)
|
||||||
// console.log('getPermissions() checkedIds', checkedIds)
|
// console.log('getPermissions() checkedIds', checkedIds)
|
||||||
this.$refs.tree.setCheckedKeys(checkedIds)
|
this.$refs.tree.setCheckedKeys(checkedIds)
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
>
|
>
|
||||||
|
|
||||||
<div class="title-container">
|
<div class="title-container">
|
||||||
<h3 class="title">购物商城管理端</h3>
|
<h3 class="title">小鹿超市管理端</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-form-item prop="username">
|
<el-form-item prop="username">
|
||||||
|
|
|
@ -52,9 +52,9 @@
|
||||||
align="center"
|
align="center"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<el-table-column prop="leaderName" label="团长" width="90" />
|
<el-table-column label="配送员" prop="leaderName" width="90"/>
|
||||||
<el-table-column prop="leaderPhone" label="团长电话" width="100" />
|
<el-table-column label="配送员电话" prop="leaderPhone" width="100"/>
|
||||||
<el-table-column prop="takeName" label="提货点" width="130" />
|
<el-table-column label="配送点" prop="takeName" width="130"/>
|
||||||
<el-table-column prop="skuNum" label="商品数量" width="80" />
|
<el-table-column prop="skuNum" label="商品数量" width="80" />
|
||||||
<el-table-column prop="driverName" label="司机" width="90" />
|
<el-table-column prop="driverName" label="司机" width="90" />
|
||||||
<el-table-column prop="driverPhone" label="司机电话" width="100" />
|
<el-table-column prop="driverPhone" label="司机电话" width="100" />
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<el-card class="operate-container" shadow="never">
|
<el-card class="operate-container" shadow="never">
|
||||||
<el-form inline>
|
<el-form inline>
|
||||||
<el-form-item label="订单号">
|
<el-form-item label="订单号">
|
||||||
<el-input v-model="searchObj.outTradeNo" type="text" width="100" placeholder="订单号" clearable />
|
<el-input v-model="searchObj.orderNo" clearable placeholder="订单号" type="text" width="100"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="订单状态">
|
<el-form-item label="订单状态">
|
||||||
|
@ -89,10 +89,10 @@
|
||||||
<p>电话:{{ scope.row.receiverPhone }}</p>
|
<p>电话:{{ scope.row.receiverPhone }}</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="团长信息">
|
<el-table-column label="配送员信息">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<p>姓名:{{ scope.row.leaderName }}</p>
|
<p>姓名:{{ scope.row.leaderName }}</p>
|
||||||
<p>提货点:{{ scope.row.takeName }}</p>
|
<p>配送点:{{ scope.row.takeName }}</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作时间" width="200px">
|
<el-table-column label="操作时间" width="200px">
|
||||||
|
@ -127,7 +127,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import api from '@/api/order/orderInfo'
|
import api from '@/api/order/orderInfo'
|
||||||
import leaderApi from '@/api/user/leader'
|
|
||||||
import wareApi from '@/api/sys/ware'
|
import wareApi from '@/api/sys/ware'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
@ -34,9 +34,9 @@
|
||||||
<td width="35%">{{ orderInfo.receiverPhone }}</td>
|
<td width="35%">{{ orderInfo.receiverPhone }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>团长名称</th>
|
<th>配送员名称</th>
|
||||||
<td>{{ orderInfo.leaderName }}</td>
|
<td>{{ orderInfo.leaderName }}</td>
|
||||||
<th>提货点</th>
|
<th>配送点</th>
|
||||||
<td>{{ orderInfo.takeName }}</td>
|
<td>{{ orderInfo.takeName }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
<el-table-column prop="name" label="姓名" width="100px" />
|
<el-table-column prop="name" label="姓名" width="100px" />
|
||||||
<el-table-column prop="phone" label="手机号码" width="100px" />
|
<el-table-column prop="phone" label="手机号码" width="100px" />
|
||||||
<el-table-column prop="takeName" label="提货点名称" />
|
<el-table-column label="配送点名称" prop="takeName"/>
|
||||||
<el-table-column prop="param.provinceName" label="省" width="70px" />
|
<el-table-column prop="param.provinceName" label="省" width="70px" />
|
||||||
<el-table-column prop="param.cityName" label="城市" width="70px" />
|
<el-table-column prop="param.cityName" label="城市" width="70px" />
|
||||||
<el-table-column prop="param.districtName" label="区/县" width="70px" />
|
<el-table-column prop="param.districtName" label="区/县" width="70px" />
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
|
|
||||||
<el-dialog title="添加/修改" :visible.sync="dialogVisible" width="60%">
|
<el-dialog title="添加/修改" :visible.sync="dialogVisible" width="60%">
|
||||||
<el-form ref="flashPromotionForm" label-width="150px" size="small" style="padding-right: 40px;">
|
<el-form ref="flashPromotionForm" label-width="150px" size="small" style="padding-right: 40px;">
|
||||||
<el-form-item label="团长名称">
|
<el-form-item label="配送员名称">
|
||||||
<el-input v-model="leader.name" />
|
<el-input v-model="leader.name" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="手机号码">
|
<el-form-item label="手机号码">
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
<el-form-item label="身份证">
|
<el-form-item label="身份证">
|
||||||
<el-input v-model="leader.idNo" />
|
<el-input v-model="leader.idNo" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="提货点名称">
|
<el-form-item label="配送点名称">
|
||||||
<el-input v-model="leader.takeName" />
|
<el-input v-model="leader.takeName" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="选择地址">
|
<el-form-item label="选择地址">
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<el-card class="operate-container" shadow="never">
|
<el-card class="operate-container" shadow="never">
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
<el-form-item label="输入搜索:">
|
<el-form-item label="输入搜索:">
|
||||||
<el-input v-model="searchObj.keyword" style="width: 203px" placeholder="关键字" />
|
<el-input v-model="searchObj.keyword" placeholder="关键字" style="width: 203px"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-button type="primary" icon="el-icon-search" @click="fetchData()">查询</el-button>
|
<el-button type="primary" icon="el-icon-search" @click="fetchData()">查询</el-button>
|
||||||
|
@ -32,17 +32,17 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="name" label="姓名" width="100px" />
|
<el-table-column label="姓名" prop="name" width="100px"/>
|
||||||
<el-table-column prop="phone" label="手机号码" width="120px" />
|
<el-table-column label="手机号码" prop="phone" width="120px"/>
|
||||||
<el-table-column prop="takeName" label="提货点名称" />
|
<el-table-column label="配送点名称" prop="takeName"/>
|
||||||
<el-table-column prop="param.regionName" label="所属区域" width="80px" />
|
<el-table-column label="所属区域" prop="param.regionName" width="80px"/>
|
||||||
<el-table-column label="状态" width="100">
|
<el-table-column label="状态" width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<p>{{ scope.row.checkStatus === 0 ? '待审核' : scope.row.checkStatus === 1 ? '通过' : '未通过' }}</p>
|
<p>{{ scope.row.checkStatus === 0 ? '待审核' : scope.row.checkStatus === 1 ? '通过' : '未通过' }}</p>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="checkTime" label="审核时间" width="150px" />
|
<el-table-column label="审核时间" prop="checkTime" width="150px"/>
|
||||||
<el-table-column prop="createTime" label="申请时间" width="150px" />
|
<el-table-column label="申请时间" prop="createTime" width="150px"/>
|
||||||
|
|
||||||
<el-table-column label="操作" width="200" align="center">
|
<el-table-column label="操作" width="200" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
target/
|
|
||||||
!.mvn/wrapper/maven-wrapper.jar
|
|
||||||
!**/src/main/**/target/
|
|
||||||
!**/src/test/**/target/
|
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
|
||||||
.idea/modules.xml
|
|
||||||
.idea/jarRepositories.xml
|
|
||||||
.idea/compiler.xml
|
|
||||||
.idea/libraries/
|
|
||||||
*.iws
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
|
|
||||||
### Eclipse ###
|
|
||||||
.apt_generated
|
|
||||||
.classpath
|
|
||||||
.factorypath
|
|
||||||
.project
|
|
||||||
.settings
|
|
||||||
.springBeans
|
|
||||||
.sts4-cache
|
|
||||||
|
|
||||||
### NetBeans ###
|
|
||||||
/nbproject/private/
|
|
||||||
/nbbuild/
|
|
||||||
/dist/
|
|
||||||
/nbdist/
|
|
||||||
/.nb-gradle/
|
|
||||||
build/
|
|
||||||
!**/src/main/**/build/
|
|
||||||
!**/src/test/**/build/
|
|
||||||
|
|
||||||
### VS Code ###
|
|
||||||
.vscode/
|
|
||||||
|
|
||||||
### Mac OS ###
|
|
||||||
.DS_Store
|
|
|
@ -13,7 +13,7 @@ import java.util.Date;
|
||||||
* 日期操作工具类
|
* 日期操作工具类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/10/12 18:04
|
* @since 2023/10/12 18:04
|
||||||
*/
|
*/
|
||||||
public class DateUtil {
|
public class DateUtil {
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import java.util.Date;
|
||||||
* Package: com.yovinchen.xlcs.common.utils
|
* Package: com.yovinchen.xlcs.common.utils
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/22 15:50
|
* @since 2023/9/22 15:50
|
||||||
*/
|
*/
|
||||||
public class JwtHelper {
|
public class JwtHelper {
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
|
||||||
* Package: com.yovinchen.xlcs.mq.config
|
* Package: com.yovinchen.xlcs.mq.config
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/16 23:32
|
* @since 2023/9/16 23:32
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class MQConfig {
|
public class MQConfig {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import javax.annotation.PostConstruct;
|
||||||
* Package: com.yovinchen.xlcs.mq.config
|
* Package: com.yovinchen.xlcs.mq.config
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/16 23:33
|
* @since 2023/9/16 23:33
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class MQProducerAckConfig implements RabbitTemplate.ReturnCallback, RabbitTemplate.ConfirmCallback {
|
public class MQProducerAckConfig implements RabbitTemplate.ReturnCallback, RabbitTemplate.ConfirmCallback {
|
||||||
|
|
|
@ -5,7 +5,7 @@ package com.yovinchen.xlcs.mq.constant;
|
||||||
* Package: com.yovinchen.xlcs.mq.constant
|
* Package: com.yovinchen.xlcs.mq.constant
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/16 23:34
|
* @since 2023/9/16 23:34
|
||||||
*/
|
*/
|
||||||
public class MqConst {
|
public class MqConst {
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -9,7 +9,7 @@ import org.springframework.stereotype.Service;
|
||||||
* Package: com.yovinchen.xlcs.common.service
|
* Package: com.yovinchen.xlcs.common.service
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/16 18:12
|
* @since 2023/9/16 18:12
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class RabbitService {
|
public class RabbitService {
|
||||||
|
|
|
@ -27,7 +27,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
* Package: com.yovinchen.xlcs.common.aspect
|
* Package: com.yovinchen.xlcs.common.aspect
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2024/1/23 10:43
|
* @since 2024/1/23 10:43
|
||||||
*/
|
*/
|
||||||
@Aspect
|
@Aspect
|
||||||
@Component
|
@Component
|
||||||
|
|
|
@ -7,7 +7,7 @@ import com.yovinchen.xlcs.vo.user.UserLoginVo;
|
||||||
* Package: com.yovinchen.xlcs.common.auth
|
* Package: com.yovinchen.xlcs.common.auth
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/22 17:40
|
* @since 2023/9/22 17:40
|
||||||
*/
|
*/
|
||||||
//ThreadLocal工具类
|
//ThreadLocal工具类
|
||||||
public class AuthContextHolder {
|
public class AuthContextHolder {
|
||||||
|
|
|
@ -12,7 +12,7 @@ import javax.annotation.Resource;
|
||||||
* Package: com.yovinchen.xlcs.common.auth
|
* Package: com.yovinchen.xlcs.common.auth
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/22 23:58
|
* @since 2023/9/22 23:58
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class LoginMvcConfigurerAdapter extends WebMvcConfigurationSupport {
|
public class LoginMvcConfigurerAdapter extends WebMvcConfigurationSupport {
|
||||||
|
|
|
@ -15,7 +15,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||||
* Package: com.yovinchen.xlcs.common.auth
|
* Package: com.yovinchen.xlcs.common.auth
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/22 23:47
|
* @since 2023/9/22 23:47
|
||||||
*/
|
*/
|
||||||
public class UserLoginInterceptor implements HandlerInterceptor {
|
public class UserLoginInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
* MybatisPlus配置类
|
* MybatisPlus配置类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 12:56
|
* @since 2023/9/13 12:56
|
||||||
*/
|
*/
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|
|
@ -26,7 +26,7 @@ import java.time.Duration;
|
||||||
* Redis配置类
|
* Redis配置类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/22 15:55
|
* @since 2023/9/22 15:55
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|
|
@ -15,7 +15,7 @@ import org.springframework.util.StringUtils;
|
||||||
* Package: com.yovinchen.xlcs.common.config
|
* Package: com.yovinchen.xlcs.common.config
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/10/12 16:48
|
* @since 2023/10/12 16:48
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|
|
@ -22,7 +22,7 @@ import java.util.List;
|
||||||
* Package: com.yovinchen.xlcs.common.config
|
* Package: com.yovinchen.xlcs.common.config
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 13:18
|
* @since 2023/9/13 13:18
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableSwagger2WebMvc
|
@EnableSwagger2WebMvc
|
||||||
|
|
|
@ -6,7 +6,7 @@ package com.yovinchen.xlcs.common.constant;
|
||||||
* Redis常量配置类
|
* Redis常量配置类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/22 15:57
|
* @since 2023/9/22 15:57
|
||||||
*/
|
*/
|
||||||
public class RedisConst {
|
public class RedisConst {
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
* 统一异常处理类
|
* 统一异常处理类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 13:03
|
* @since 2023/9/13 13:03
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ControllerAdvice
|
@ControllerAdvice
|
||||||
|
|
|
@ -9,7 +9,7 @@ import lombok.Data;
|
||||||
* 自定义异常类
|
* 自定义异常类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 13:05
|
* @since 2023/9/13 13:05
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
|
@ -8,7 +8,7 @@ import lombok.Data;
|
||||||
* 统一返回结果类
|
* 统一返回结果类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 13:01
|
* @since 2023/9/13 13:01
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class Result<T> {
|
public class Result<T> {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import lombok.Getter;
|
||||||
* 统一返回结果状态信息类
|
* 统一返回结果状态信息类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 12:59
|
* @since 2023/9/13 12:59
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public enum ResultCodeEnum {
|
public enum ResultCodeEnum {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
|
||||||
* Package: com.yovinchen.xlcs
|
* Package: com.yovinchen.xlcs
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 08:49
|
* @since 2023/9/14 08:49
|
||||||
*/
|
*/
|
||||||
public class CodeGet {
|
public class CodeGet {
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ public class CodeGet {
|
||||||
// 2、全局配置
|
// 2、全局配置
|
||||||
// 全局配置
|
// 全局配置
|
||||||
GlobalConfig gc = new GlobalConfig();
|
GlobalConfig gc = new GlobalConfig();
|
||||||
gc.setOutputDir("yovinchen-xlcs-parent/service/service-order" + "/src/main/java");
|
gc.setOutputDir("xlcs-parent/service/service-user" + "/src/main/java");
|
||||||
|
|
||||||
gc.setServiceName("%sService"); //去掉Service接口的首字母I
|
gc.setServiceName("%sService"); //去掉Service接口的首字母I
|
||||||
gc.setAuthor("yovinchen");
|
gc.setAuthor("yovinchen");
|
||||||
|
@ -34,17 +34,17 @@ public class CodeGet {
|
||||||
|
|
||||||
// 3、数据源配置
|
// 3、数据源配置
|
||||||
DataSourceConfig dsc = new DataSourceConfig();
|
DataSourceConfig dsc = new DataSourceConfig();
|
||||||
dsc.setUrl("jdbc:mysql://82.157.68.223:3306/shequ-order?serverTimezone=GMT%2B8&useSSL=false");
|
dsc.setUrl("jdbc:mysql://82.157.68.223:3306/shequ-user?serverTimezone=GMT%2B8&useSSL=false");
|
||||||
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
|
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
|
||||||
dsc.setUsername("shequ-order");
|
dsc.setUsername("shequ-user");
|
||||||
dsc.setPassword("shequ-order");
|
dsc.setPassword("shequ-user");
|
||||||
dsc.setDbType(DbType.MYSQL);
|
dsc.setDbType(DbType.MYSQL);
|
||||||
mpg.setDataSource(dsc);
|
mpg.setDataSource(dsc);
|
||||||
|
|
||||||
// 4、包配置
|
// 4、包配置
|
||||||
PackageConfig pc = new PackageConfig();
|
PackageConfig pc = new PackageConfig();
|
||||||
pc.setParent("com.yovinchen.xlcs");
|
pc.setParent("com.yovinchen.xlcs");
|
||||||
pc.setModuleName("order"); //模块名
|
pc.setModuleName("user"); //模块名
|
||||||
pc.setController("controller");
|
pc.setController("controller");
|
||||||
pc.setService("service");
|
pc.setService("service");
|
||||||
pc.setMapper("mapper");
|
pc.setMapper("mapper");
|
||||||
|
@ -53,7 +53,7 @@ public class CodeGet {
|
||||||
// 5、策略配置
|
// 5、策略配置
|
||||||
StrategyConfig strategy = new StrategyConfig();
|
StrategyConfig strategy = new StrategyConfig();
|
||||||
|
|
||||||
strategy.setInclude("cart_info", "order_info", "order_deliver", "order_item", "order_log", "order_return_apply", "order_return_reason", "order_set", "payment_info", "refund_info");
|
strategy.setInclude("driver", "leader", "leader_account", "leader_bank", "leader_bill", "leader_user", "region", "user_delivery", "user_login_log");
|
||||||
|
|
||||||
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
|
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package com.yovinchen.xlcs.model.acl;
|
package com.yovinchen.xlcs.model.acl;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -12,8 +12,8 @@ import lombok.Data;
|
||||||
* 用户
|
* 用户
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "用户")
|
@ApiModel(description = "用户")
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.yovinchen.xlcs.model.acl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 后台用户登录日志表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ApiModel(description = "后台用户登录日志表")
|
||||||
|
@TableName("admin_login_log")
|
||||||
|
public class AdminLoginLog extends BaseEntity {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
@TableField("admin_id")
|
||||||
|
private Long adminId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "IP地址")
|
||||||
|
@TableField("ip")
|
||||||
|
private String ip;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "地址")
|
||||||
|
@TableField("address")
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "浏览器登录类型")
|
||||||
|
@TableField("user_agent")
|
||||||
|
private String userAgent;
|
||||||
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
package com.yovinchen.xlcs.model.acl;
|
package com.yovinchen.xlcs.model.acl;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -12,8 +12,8 @@ import lombok.Data;
|
||||||
* 用户角色
|
* 用户角色
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "用户角色")
|
@ApiModel(description = "用户角色")
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
//
|
//
|
||||||
package com.yovinchen.xlcs.model.acl;
|
package com.yovinchen.xlcs.model.acl;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -16,8 +16,8 @@ import java.util.List;
|
||||||
* 权限
|
* 权限
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "权限")
|
@ApiModel(description = "权限")
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
//
|
//
|
||||||
package com.yovinchen.xlcs.model.acl;
|
package com.yovinchen.xlcs.model.acl;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -14,8 +14,8 @@ import lombok.Data;
|
||||||
* 角色
|
* 角色
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "角色")
|
@ApiModel(description = "角色")
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
//
|
//
|
||||||
package com.yovinchen.xlcs.model.acl;
|
package com.yovinchen.xlcs.model.acl;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -14,8 +14,8 @@ import lombok.Data;
|
||||||
* 角色权限
|
* 角色权限
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "角色权限")
|
@ApiModel(description = "角色权限")
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package com.yovinchen.xlcs.model.activity;
|
package com.yovinchen.xlcs.model.activity;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.enums.ActivityType;
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.yovinchen.xlcs.enums.ActivityType;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -16,7 +16,7 @@ import java.util.Date;
|
||||||
* ActivityInfo
|
* ActivityInfo
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "ActivityInfo")
|
@ApiModel(description = "ActivityInfo")
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.yovinchen.xlcs.model.activity;
|
package com.yovinchen.xlcs.model.activity;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.enums.ActivityType;
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.enums.ActivityType;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -15,7 +15,7 @@ import java.math.BigDecimal;
|
||||||
* ActivityRule
|
* ActivityRule
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "ActivityRule")
|
@ApiModel(description = "ActivityRule")
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package com.yovinchen.xlcs.model.activity;
|
package com.yovinchen.xlcs.model.activity;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -12,7 +12,7 @@ import lombok.Data;
|
||||||
* ActivitySku
|
* ActivitySku
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "ActivitySku")
|
@ApiModel(description = "ActivitySku")
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.yovinchen.xlcs.model.activity;
|
package com.yovinchen.xlcs.model.activity;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.enums.CouponRangeType;
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.enums.CouponRangeType;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -13,7 +13,7 @@ import lombok.Data;
|
||||||
* CouponRange
|
* CouponRange
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "CouponRange")
|
@ApiModel(description = "CouponRange")
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
package com.yovinchen.xlcs.model.activity;
|
package com.yovinchen.xlcs.model.activity;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.enums.CouponStatus;
|
|
||||||
import com.yovinchen.xlcs.model.base.BaseEntity;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.yovinchen.xlcs.enums.CouponStatus;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -15,7 +15,7 @@ import java.util.Date;
|
||||||
* CouponUse
|
* CouponUse
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "优惠券领取记录表")
|
@ApiModel(description = "优惠券领取记录表")
|
||||||
|
|
|
@ -13,8 +13,8 @@ import java.io.Serializable;
|
||||||
* 用户查询实体
|
* 用户查询实体
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "用户查询实体")
|
@ApiModel(description = "用户查询实体")
|
||||||
|
|
|
@ -13,8 +13,8 @@ import java.io.Serializable;
|
||||||
* 角色查询实体
|
* 角色查询实体
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
* @since 2019-11-08
|
* @since 2023-09-21
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "角色查询实体")
|
@ApiModel(description = "角色查询实体")
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
||||||
* OrderDetailActivity
|
* OrderDetailActivity
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class CartInfoVo implements Serializable {
|
public class CartInfoVo implements Serializable {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.yovinchen.xlcs.vo.order;
|
package com.yovinchen.xlcs.vo.order;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.vo.user.LeaderAddressVo;
|
|
||||||
import com.yovinchen.xlcs.model.activity.CouponInfo;
|
import com.yovinchen.xlcs.model.activity.CouponInfo;
|
||||||
|
import com.yovinchen.xlcs.vo.user.LeaderAddressVo;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import java.util.List;
|
||||||
* OrderDetailActivity
|
* OrderDetailActivity
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class OrderConfirmVo implements Serializable {
|
public class OrderConfirmVo implements Serializable {
|
||||||
|
|
|
@ -12,7 +12,7 @@ import java.util.List;
|
||||||
* OrderDetailActivity
|
* OrderDetailActivity
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class OrderMqVo implements Serializable {
|
public class OrderMqVo implements Serializable {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.yovinchen.xlcs.vo.user;
|
package com.yovinchen.xlcs.vo.user;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -10,7 +9,7 @@ import lombok.Data;
|
||||||
* UserAddress
|
* UserAddress
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author qy
|
* @author yovinchen
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "用户地址")
|
@ApiModel(description = "用户地址")
|
||||||
|
|
|
@ -158,5 +158,36 @@
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>central</id>
|
||||||
|
<url>https://repo.maven.apache.org/maven2</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
|
<!-- <repositories>-->
|
||||||
|
<!-- <repository>-->
|
||||||
|
<!-- <id>spring</id>-->
|
||||||
|
<!-- <url>https://maven.aliyun.com/repository/spring</url>-->
|
||||||
|
<!-- <releases>-->
|
||||||
|
<!-- <enabled>true</enabled>-->
|
||||||
|
<!-- </releases>-->
|
||||||
|
<!-- <snapshots>-->
|
||||||
|
<!-- <enabled>true</enabled>-->
|
||||||
|
<!-- </snapshots>-->
|
||||||
|
<!-- </repository>-->
|
||||||
|
<!-- </repositories>-->
|
||||||
|
|
||||||
|
<!-- <pluginRepositories>-->
|
||||||
|
<!-- <pluginRepository>-->
|
||||||
|
<!-- <id>alimaven</id>-->
|
||||||
|
<!-- <name>aliyun maven</name>-->
|
||||||
|
<!-- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>-->
|
||||||
|
<!-- <releases>-->
|
||||||
|
<!-- <enabled>true</enabled>-->
|
||||||
|
<!-- </releases>-->
|
||||||
|
<!-- <snapshots>-->
|
||||||
|
<!-- <enabled>false</enabled>-->
|
||||||
|
<!-- </snapshots>-->
|
||||||
|
<!-- </pluginRepository>-->
|
||||||
|
<!-- </pluginRepositories>-->
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -19,7 +19,7 @@ import java.util.Map;
|
||||||
* Package: com.yovinchen.xlcs.client.activity
|
* Package: com.yovinchen.xlcs.client.activity
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/26 14:10
|
* @since 2023/9/26 14:10
|
||||||
*/
|
*/
|
||||||
@FeignClient(value = "service-activity")
|
@FeignClient(value = "service-activity")
|
||||||
public interface ActivityFeignClient {
|
public interface ActivityFeignClient {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
||||||
* Package: com.yovinchen.xlcs.client.cart
|
* Package: com.yovinchen.xlcs.client.cart
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/10/12 15:49
|
* @since 2023/10/12 15:49
|
||||||
*/
|
*/
|
||||||
@FeignClient(value = "service-cart")
|
@FeignClient(value = "service-cart")
|
||||||
public interface CartFeignClient {
|
public interface CartFeignClient {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import org.springframework.web.bind.annotation.PathVariable;
|
||||||
* Package: com.yovinchen.xlcs.client.order
|
* Package: com.yovinchen.xlcs.client.order
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/10/13 11:03
|
* @since 2023/10/13 11:03
|
||||||
*/
|
*/
|
||||||
@FeignClient(value = "service-order")
|
@FeignClient(value = "service-order")
|
||||||
public interface OrderFeignClient {
|
public interface OrderFeignClient {
|
||||||
|
|
|
@ -17,7 +17,7 @@ import java.util.List;
|
||||||
* Package: com.yovinchen.xlcs.client.product
|
* Package: com.yovinchen.xlcs.client.product
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/16 17:45
|
* @since 2023/9/16 17:45
|
||||||
*/
|
*/
|
||||||
@FeignClient(value = "service-product")
|
@FeignClient(value = "service-product")
|
||||||
public interface ProductFeignClient {
|
public interface ProductFeignClient {
|
||||||
|
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
||||||
* Package: com.yovinchen.xlcs.client.search
|
* Package: com.yovinchen.xlcs.client.search
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/25 22:44
|
* @since 2023/9/25 22:44
|
||||||
*/
|
*/
|
||||||
@FeignClient("service-search")
|
@FeignClient("service-search")
|
||||||
public interface SkuFeignClient {
|
public interface SkuFeignClient {
|
||||||
|
|
|
@ -10,13 +10,13 @@ import org.springframework.web.bind.annotation.PathVariable;
|
||||||
* Package: com.yovinchen.xlcs.client.user
|
* Package: com.yovinchen.xlcs.client.user
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/25 12:27
|
* @since 2023/9/25 12:27
|
||||||
*/
|
*/
|
||||||
@FeignClient(value = "service-user")
|
@FeignClient(value = "service-user")
|
||||||
public interface UserFeignClient {
|
public interface UserFeignClient {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提货点地址信息
|
* 配送点地址信息
|
||||||
*
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
* @return
|
* @return
|
||||||
|
|
|
@ -8,7 +8,7 @@ ARG WORK_PATH="/skywalking"
|
||||||
|
|
||||||
ENV JAR_FILE=${JAR_FILE}
|
ENV JAR_FILE=${JAR_FILE}
|
||||||
ENV SW_AGENT_NAME=${APP_NAME}
|
ENV SW_AGENT_NAME=${APP_NAME}
|
||||||
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="10.211.55.50:11800"
|
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="192.168.31.50:11800"
|
||||||
|
|
||||||
RUN rm /skywalking/agent/plugins/apm-armeria-* \
|
RUN rm /skywalking/agent/plugins/apm-armeria-* \
|
||||||
/skywalking/agent/plugins/apm-cxf-* \
|
/skywalking/agent/plugins/apm-cxf-* \
|
||||||
|
|
|
@ -9,7 +9,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
* Package: com.yovinchen.xlcs
|
* Package: com.yovinchen.xlcs
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/20 16:51
|
* @since 2023/9/20 16:51
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.springframework.web.util.pattern.PathPatternParser;
|
||||||
* Package: com.yovinchen.xlcs.config.config
|
* Package: com.yovinchen.xlcs.config.config
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/20 16:52
|
* @since 2023/9/20 16:52
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class CorsConfig {
|
public class CorsConfig {
|
||||||
|
|
|
@ -7,7 +7,7 @@ ARG WORK_PATH="/skywalking"
|
||||||
|
|
||||||
ENV JAR_FILE=${JAR_FILE}
|
ENV JAR_FILE=${JAR_FILE}
|
||||||
ENV SW_AGENT_NAME=${APP_NAME}
|
ENV SW_AGENT_NAME=${APP_NAME}
|
||||||
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="10.211.55.50:11800"
|
ENV SW_AGENT_COLLECTOR_BACKEND_SERVICES="192.168.31.50:11800"
|
||||||
|
|
||||||
RUN rm /skywalking/agent/plugins/apm-cxf-* \
|
RUN rm /skywalking/agent/plugins/apm-cxf-* \
|
||||||
/skywalking/agent/plugins/apm-dubbo-* \
|
/skywalking/agent/plugins/apm-dubbo-* \
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
* 权限管理模块启动类
|
* 权限管理模块启动类
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 17:38
|
* @since 2023/9/13 17:38
|
||||||
*/
|
*/
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableDiscoveryClient
|
@EnableDiscoveryClient
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
package com.yovinchen.xlcs.acl.controller;
|
package com.yovinchen.xlcs.acl.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.yovinchen.xlcs.acl.service.AdminService;
|
import com.yovinchen.xlcs.acl.service.AdminService;
|
||||||
import com.yovinchen.xlcs.acl.service.RoleService;
|
import com.yovinchen.xlcs.acl.service.RoleService;
|
||||||
import com.yovinchen.xlcs.common.result.Result;
|
import com.yovinchen.xlcs.common.result.Result;
|
||||||
import com.yovinchen.xlcs.common.utils.MD5;
|
import com.yovinchen.xlcs.common.utils.MD5;
|
||||||
import com.yovinchen.xlcs.model.acl.Admin;
|
import com.yovinchen.xlcs.model.acl.Admin;
|
||||||
import com.yovinchen.xlcs.vo.acl.AdminQueryVo;
|
import com.yovinchen.xlcs.vo.acl.AdminQueryVo;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
|
@ -25,7 +25,7 @@ import java.util.Map;
|
||||||
* 用户管理 前端控制器
|
* 用户管理 前端控制器
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 10:38
|
* @since 2023/9/14 10:38
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/admin/acl/user")
|
@RequestMapping("/admin/acl/user")
|
||||||
|
|
|
@ -15,7 +15,7 @@ import java.util.Map;
|
||||||
* Package: com.yovinchen.xlcs.acl.controller
|
* Package: com.yovinchen.xlcs.acl.controller
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/13 18:00
|
* @since 2023/9/13 18:00
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Api(tags = "登录接口")
|
@Api(tags = "登录接口")
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.yovinchen.xlcs.acl.controller;
|
package com.yovinchen.xlcs.acl.controller;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.acl.service.PermissionService;
|
import com.yovinchen.xlcs.acl.service.PermissionService;
|
||||||
|
import com.yovinchen.xlcs.acl.service.RoleService;
|
||||||
import com.yovinchen.xlcs.common.result.Result;
|
import com.yovinchen.xlcs.common.result.Result;
|
||||||
import com.yovinchen.xlcs.model.acl.Permission;
|
import com.yovinchen.xlcs.model.acl.Permission;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
@ -10,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassName: PermissionController
|
* ClassName: PermissionController
|
||||||
|
@ -17,17 +19,18 @@ import java.util.List;
|
||||||
* 菜单服务
|
* 菜单服务
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 14:03
|
* @since 2023/9/14 14:03
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/admin/acl/permission")
|
@RequestMapping("/admin/acl/permission")
|
||||||
@Api(tags = "菜单服务")
|
@Api(tags = "菜单服务")
|
||||||
|
|
||||||
public class PermissionController {
|
public class PermissionController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PermissionService permissionService;
|
private PermissionService permissionService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoleService roleService;
|
||||||
@ApiOperation(value = "获取菜单")
|
@ApiOperation(value = "获取菜单")
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public Result index() {
|
public Result index() {
|
||||||
|
@ -71,4 +74,29 @@ public class PermissionController {
|
||||||
throw new RuntimeException("递归删除菜单异常", e);
|
throw new RuntimeException("递归删除菜单异常", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "根据角色获取菜单数据")
|
||||||
|
@GetMapping("/toAssign/{roleId}")
|
||||||
|
public Result toAssign(@PathVariable Long roleId) {
|
||||||
|
Map<String, Object> roleMap = permissionService.findPermissionByRoleId(roleId);
|
||||||
|
return Result.ok(roleMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "根据用户分配角色")
|
||||||
|
@PostMapping("/doAssign")
|
||||||
|
public Result doAssign(@RequestParam Long roleId, @RequestParam Long[] permissionId) {
|
||||||
|
permissionService.saveRolePermissionRealtionShip(roleId, permissionId);
|
||||||
|
return Result.ok(null);
|
||||||
|
}
|
||||||
|
// @ApiOperation(value = "获取一个角色的所有权限列表")
|
||||||
|
// @GetMapping("toAssign/{id}")
|
||||||
|
// public Result toAssign(@PathVariable Long id) {
|
||||||
|
// try {
|
||||||
|
// Map<String, Object> result = permissionService.getPermissionById(id);
|
||||||
|
// return Result.ok(result);
|
||||||
|
// } catch (Exception e) {
|
||||||
|
// // 处理异常,例如记录日志或者抛出自定义异常
|
||||||
|
// throw new RuntimeException("获取一个角色的所有权限列表异常", e);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,12 +10,10 @@ import com.yovinchen.xlcs.vo.acl.RoleQueryVo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import io.swagger.annotations.ApiParam;
|
import io.swagger.annotations.ApiParam;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassName: RoleController
|
* ClassName: RoleController
|
||||||
|
@ -23,13 +21,11 @@ import java.util.Map;
|
||||||
* 角色管理 前端控制器
|
* 角色管理 前端控制器
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 09:09
|
* @since 2023/9/14 09:09
|
||||||
*/
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/admin/acl/role")
|
@RequestMapping("/admin/acl/role")
|
||||||
@Api(tags = "角色管理")
|
@Api(tags = "角色管理")
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
public class RoleController {
|
public class RoleController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -111,16 +107,4 @@ public class RoleController {
|
||||||
throw new RuntimeException("根据id列表删除角色异常", e);
|
throw new RuntimeException("根据id列表删除角色异常", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "获取一个角色的所有权限列表")
|
|
||||||
@GetMapping("toAssign/{id}")
|
|
||||||
public Result toAssign(@PathVariable Long id) {
|
|
||||||
try {
|
|
||||||
Map<String, Object> result = permissionService.getPermissionById(id);
|
|
||||||
return Result.ok(result);
|
|
||||||
} catch (Exception e) {
|
|
||||||
// 处理异常,例如记录日志或者抛出自定义异常
|
|
||||||
throw new RuntimeException("获取一个角色的所有权限列表异常", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.yovinchen.xlcs.acl.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 角色权限 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/admin/acl/rolePermission")
|
||||||
|
@Api(tags = "用户权限")
|
||||||
|
public class RolePermissionController {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.yovinchen.xlcs.acl.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.AdminLoginLog;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 后台用户登录日志表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
public interface AdminLoginLogMapper extends BaseMapper<AdminLoginLog> {
|
||||||
|
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
package com.yovinchen.xlcs.acl.mapper;
|
package com.yovinchen.xlcs.acl.mapper;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.Admin;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Admin;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,7 +10,7 @@ import org.springframework.stereotype.Repository;
|
||||||
* 用户管理
|
* 用户管理
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 10:45
|
* @since 2023/9/14 10:45
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface AdminMapper extends BaseMapper<Admin> {
|
public interface AdminMapper extends BaseMapper<Admin> {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.yovinchen.xlcs.acl.mapper;
|
package com.yovinchen.xlcs.acl.mapper;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.AdminRole;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.AdminRole;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9,7 +9,7 @@ import org.springframework.stereotype.Repository;
|
||||||
* Package: com.yovinchen.xlcs.acl.mapper
|
* Package: com.yovinchen.xlcs.acl.mapper
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 11:15
|
* @since 2023/9/14 11:15
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface AdminRoleMapper extends BaseMapper<AdminRole> {
|
public interface AdminRoleMapper extends BaseMapper<AdminRole> {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.yovinchen.xlcs.acl.mapper;
|
package com.yovinchen.xlcs.acl.mapper;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.Permission;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Permission;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,7 +10,7 @@ import org.springframework.stereotype.Repository;
|
||||||
* 菜单Mapper接口
|
* 菜单Mapper接口
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 13:59
|
* @since 2023/9/14 13:59
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface PermissionMapper extends BaseMapper<Permission> {
|
public interface PermissionMapper extends BaseMapper<Permission> {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.yovinchen.xlcs.acl.mapper;
|
package com.yovinchen.xlcs.acl.mapper;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.Role;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Role;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -10,7 +10,7 @@ import org.springframework.stereotype.Repository;
|
||||||
* 角色管理
|
* 角色管理
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 09:11
|
* @since 2023/9/14 09:11
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
public interface RoleMapper extends BaseMapper<Role> {
|
public interface RoleMapper extends BaseMapper<Role> {
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
package com.yovinchen.xlcs.acl.mapper;
|
package com.yovinchen.xlcs.acl.mapper;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.RolePermission;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.RolePermission;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassName: RolePermissionMapper
|
* ClassName: RolePermissionMapper
|
||||||
* Package: com.yovinchen.xlcs.acl.mapper
|
* Package: com.yovinchen.xlcs.acl.mapper
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 15:07
|
* @since 2023/9/14 15:07
|
||||||
*/
|
*/
|
||||||
public interface RolePermissionMapper extends BaseMapper<RolePermission> {
|
public interface RolePermissionMapper extends BaseMapper<RolePermission> {
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.yovinchen.xlcs.acl.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.AdminLoginLog;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 后台用户登录日志表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
public interface AdminLoginLogService extends IService<AdminLoginLog> {
|
||||||
|
|
||||||
|
}
|
|
@ -1,14 +1,14 @@
|
||||||
package com.yovinchen.xlcs.acl.service;
|
package com.yovinchen.xlcs.acl.service;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.AdminRole;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.AdminRole;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassName: AdminRoleService
|
* ClassName: AdminRoleService
|
||||||
* Package: com.yovinchen.xlcs.acl.service
|
* Package: com.yovinchen.xlcs.acl.service
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 11:15
|
* @since 2023/9/14 11:15
|
||||||
*/
|
*/
|
||||||
public interface AdminRoleService extends IService<AdminRole> {
|
public interface AdminRoleService extends IService<AdminRole> {
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package com.yovinchen.xlcs.acl.service;
|
package com.yovinchen.xlcs.acl.service;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.Admin;
|
|
||||||
import com.yovinchen.xlcs.vo.acl.AdminQueryVo;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Admin;
|
||||||
|
import com.yovinchen.xlcs.vo.acl.AdminQueryVo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassName: AdminService
|
* ClassName: AdminService
|
||||||
|
@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
* 用户管理
|
* 用户管理
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 10:44
|
* @since 2023/9/14 10:44
|
||||||
*/
|
*/
|
||||||
public interface AdminService extends IService<Admin> {
|
public interface AdminService extends IService<Admin> {
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.yovinchen.xlcs.acl.service;
|
package com.yovinchen.xlcs.acl.service;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.Permission;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Permission;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -12,7 +12,7 @@ import java.util.Map;
|
||||||
* 权限服务
|
* 权限服务
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 14:01
|
* @since 2023/9/14 14:01
|
||||||
*/
|
*/
|
||||||
public interface PermissionService extends IService<Permission> {
|
public interface PermissionService extends IService<Permission> {
|
||||||
|
|
||||||
|
@ -23,4 +23,8 @@ public interface PermissionService extends IService<Permission> {
|
||||||
boolean removeChildById(Long id);
|
boolean removeChildById(Long id);
|
||||||
|
|
||||||
Map<String, Object> getPermissionById(Long id);
|
Map<String, Object> getPermissionById(Long id);
|
||||||
|
|
||||||
|
void saveRolePermissionRealtionShip(Long roleId, Long[] permissionId);
|
||||||
|
|
||||||
|
Map<String, Object> findPermissionByRoleId(Long roleId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.yovinchen.xlcs.acl.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.RolePermission;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 角色权限 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
public interface RolePermissionService extends IService<RolePermission> {
|
||||||
|
|
||||||
|
}
|
|
@ -1,10 +1,10 @@
|
||||||
package com.yovinchen.xlcs.acl.service;
|
package com.yovinchen.xlcs.acl.service;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.model.acl.Role;
|
|
||||||
import com.yovinchen.xlcs.vo.acl.RoleQueryVo;
|
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Role;
|
||||||
|
import com.yovinchen.xlcs.vo.acl.RoleQueryVo;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import java.util.Map;
|
||||||
* 用户管理
|
* 用户管理
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 09:10
|
* @since 2023/9/14 09:10
|
||||||
*/
|
*/
|
||||||
public interface RoleService extends IService<Role> {
|
public interface RoleService extends IService<Role> {
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.yovinchen.xlcs.acl.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.yovinchen.xlcs.acl.mapper.AdminLoginLogMapper;
|
||||||
|
import com.yovinchen.xlcs.acl.service.AdminLoginLogService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.AdminLoginLog;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 后台用户登录日志表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class AdminLoginLogServiceImpl extends ServiceImpl<AdminLoginLogMapper, AdminLoginLog> implements AdminLoginLogService {
|
||||||
|
|
||||||
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
package com.yovinchen.xlcs.acl.service.impl;
|
package com.yovinchen.xlcs.acl.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.yovinchen.xlcs.acl.mapper.AdminRoleMapper;
|
import com.yovinchen.xlcs.acl.mapper.AdminRoleMapper;
|
||||||
import com.yovinchen.xlcs.acl.service.AdminRoleService;
|
import com.yovinchen.xlcs.acl.service.AdminRoleService;
|
||||||
import com.yovinchen.xlcs.model.acl.AdminRole;
|
import com.yovinchen.xlcs.model.acl.AdminRole;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
|
||||||
* Package: com.yovinchen.xlcs.acl.service.impl
|
* Package: com.yovinchen.xlcs.acl.service.impl
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 11:15
|
* @since 2023/9/14 11:15
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole>
|
public class AdminRoleServiceImpl extends ServiceImpl<AdminRoleMapper, AdminRole>
|
||||||
|
|
|
@ -20,7 +20,7 @@ import org.springframework.util.StringUtils;
|
||||||
* 用户管理
|
* 用户管理
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 10:44
|
* @since 2023/9/14 10:44
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
|
|
|
@ -1,27 +1,38 @@
|
||||||
package com.yovinchen.xlcs.acl.service.impl;
|
package com.yovinchen.xlcs.acl.service.impl;
|
||||||
|
|
||||||
import com.yovinchen.xlcs.acl.mapper.PermissionMapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.yovinchen.xlcs.acl.service.PermissionService;
|
|
||||||
import com.yovinchen.xlcs.acl.utils.PermissionHelper;
|
|
||||||
import com.yovinchen.xlcs.model.acl.Permission;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.yovinchen.xlcs.acl.mapper.PermissionMapper;
|
||||||
|
import com.yovinchen.xlcs.acl.service.PermissionService;
|
||||||
|
import com.yovinchen.xlcs.acl.service.RolePermissionService;
|
||||||
|
import com.yovinchen.xlcs.acl.utils.PermissionHelper;
|
||||||
|
import com.yovinchen.xlcs.model.acl.Permission;
|
||||||
|
import com.yovinchen.xlcs.model.acl.RolePermission;
|
||||||
|
import com.yovinchen.xlcs.model.base.BaseEntity;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClassName: PermissionServiceImpl
|
* ClassName: PermissionServiceImpl
|
||||||
* Package: com.yovinchen.xlcs.acl.service.impl
|
* Package: com.yovinchen.xlcs.acl.service.impl
|
||||||
*
|
*
|
||||||
* @author yovinchen
|
* @author yovinchen
|
||||||
* @Create 2023/9/14 14:02
|
* @since 2023/9/14 14:02
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PermissionService {
|
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PermissionService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RolePermissionService rolePermissionService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取所有菜单
|
* 获取所有菜单
|
||||||
|
@ -57,6 +68,71 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分配菜单
|
||||||
|
*
|
||||||
|
* @param roleId
|
||||||
|
* @param permissionIds
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void saveRolePermissionRealtionShip(Long roleId, Long[] permissionIds) {
|
||||||
|
//删除用户分配的角色数据
|
||||||
|
rolePermissionService.remove(new LambdaQueryWrapper<RolePermission>().eq(RolePermission::getRoleId, roleId));
|
||||||
|
|
||||||
|
//分配新的角色
|
||||||
|
List<RolePermission> rolePermissionList = new ArrayList<>();
|
||||||
|
for (Long permissionId : permissionIds) {
|
||||||
|
if (StringUtils.isEmpty(roleId)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
RolePermission rolePermission = new RolePermission();
|
||||||
|
rolePermission.setRoleId(roleId);
|
||||||
|
rolePermission.setPermissionId(permissionId);
|
||||||
|
rolePermissionList.add(rolePermission);
|
||||||
|
}
|
||||||
|
rolePermissionService.saveBatch(rolePermissionList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户获取菜单数据
|
||||||
|
*
|
||||||
|
* @param roleId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> findPermissionByRoleId(Long roleId) {
|
||||||
|
//查询所有的角色
|
||||||
|
List<Permission> allPermissionList = queryAllMenu();
|
||||||
|
List<Permission> assignPermission1 = baseMapper.selectList(null);
|
||||||
|
|
||||||
|
//拥有的角色id
|
||||||
|
List<RolePermission> existRolePermissionList = rolePermissionService.list(new LambdaQueryWrapper<RolePermission>().eq(RolePermission::getRoleId, roleId)
|
||||||
|
.select(RolePermission::getPermissionId));
|
||||||
|
|
||||||
|
List<Long> existPermissionList = existRolePermissionList.stream()
|
||||||
|
.map(RolePermission::getPermissionId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
//对角色进行分类
|
||||||
|
List<Permission> assignPermission2 = new ArrayList<>();
|
||||||
|
for (Permission permission : assignPermission1) {
|
||||||
|
//已分配
|
||||||
|
if (existPermissionList.contains(permission.getId())) {
|
||||||
|
assignPermission2.add(permission);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<Long> assignPermission = assignPermission2.stream()
|
||||||
|
.map(BaseEntity::getId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
Map<String, Object> roleMap = new HashMap<>();
|
||||||
|
roleMap.put("assignPermission", assignPermission);
|
||||||
|
roleMap.put("allPermissionList", allPermissionList);
|
||||||
|
return roleMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 递归获取子节点
|
* 递归获取子节点
|
||||||
*
|
*
|
||||||
|
@ -64,8 +140,7 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
|
||||||
* @param idList
|
* @param idList
|
||||||
*/
|
*/
|
||||||
private void selectChildListById(Long id, List<Long> idList) {
|
private void selectChildListById(Long id, List<Long> idList) {
|
||||||
List<Permission> childList = baseMapper.selectList(new QueryWrapper<Permission>()
|
List<Permission> childList = baseMapper.selectList(new QueryWrapper<Permission>().eq("pid", id)
|
||||||
.eq("pid", id)
|
|
||||||
.select("id"));
|
.select("id"));
|
||||||
childList.forEach(item -> {
|
childList.forEach(item -> {
|
||||||
idList.add(item.getId());
|
idList.add(item.getId());
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.yovinchen.xlcs.acl.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.yovinchen.xlcs.acl.mapper.RolePermissionMapper;
|
||||||
|
import com.yovinchen.xlcs.acl.service.RolePermissionService;
|
||||||
|
import com.yovinchen.xlcs.model.acl.RolePermission;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 角色权限 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author yovinchen
|
||||||
|
* @since 2024-01-24
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class RolePermissionServiceImpl extends ServiceImpl<RolePermissionMapper, RolePermission> implements RolePermissionService {
|
||||||
|
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue