Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gxpt_ht
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pseer
gxpt_ht
Commits
08279793
Commit
08279793
authored
Oct 12, 2023
by
wuwenlong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
小程序端接口服务
parent
38925589
Show whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
3943 additions
and
0 deletions
+3943
-0
pom.xml
share-front/pom.xml
+97
-0
ShareApplication.java
share-front/src/main/java/share/ShareApplication.java
+20
-0
ShareServletInitializer.java
share-front/src/main/java/share/ShareServletInitializer.java
+18
-0
CaptchaController.java
...n/java/share/web/controller/common/CaptchaController.java
+94
-0
CommonController.java
...in/java/share/web/controller/common/CommonController.java
+163
-0
CacheController.java
...in/java/share/web/controller/monitor/CacheController.java
+120
-0
ServerController.java
...n/java/share/web/controller/monitor/ServerController.java
+27
-0
SysLogininforController.java
...share/web/controller/monitor/SysLogininforController.java
+82
-0
SysOperlogController.java
...va/share/web/controller/monitor/SysOperlogController.java
+69
-0
SysUserOnlineController.java
...share/web/controller/monitor/SysUserOnlineController.java
+83
-0
SCleanRecordsController.java
.../share/web/controller/system/SCleanRecordsController.java
+104
-0
SConsumerController.java
...java/share/web/controller/system/SConsumerController.java
+104
-0
SConsumptionRecordsController.java
.../web/controller/system/SConsumptionRecordsController.java
+104
-0
SCouponController.java
...n/java/share/web/controller/system/SCouponController.java
+104
-0
SOrderController.java
...in/java/share/web/controller/system/SOrderController.java
+104
-0
SRoomController.java
...ain/java/share/web/controller/system/SRoomController.java
+105
-0
SStoreController.java
...in/java/share/web/controller/system/SStoreController.java
+104
-0
STimeSlotController.java
...java/share/web/controller/system/STimeSlotController.java
+104
-0
SysConfigController.java
...java/share/web/controller/system/SysConfigController.java
+133
-0
SysDeptController.java
...n/java/share/web/controller/system/SysDeptController.java
+132
-0
SysDictDataController.java
...va/share/web/controller/system/SysDictDataController.java
+121
-0
SysDictTypeController.java
...va/share/web/controller/system/SysDictTypeController.java
+131
-0
SysIndexController.java
.../java/share/web/controller/system/SysIndexController.java
+29
-0
SysLoginController.java
.../java/share/web/controller/system/SysLoginController.java
+86
-0
SysMenuController.java
...n/java/share/web/controller/system/SysMenuController.java
+143
-0
SysNoticeController.java
...java/share/web/controller/system/SysNoticeController.java
+91
-0
SysPostController.java
...n/java/share/web/controller/system/SysPostController.java
+129
-0
SysProfileController.java
...ava/share/web/controller/system/SysProfileController.java
+136
-0
SysRegisterController.java
...va/share/web/controller/system/SysRegisterController.java
+38
-0
SysRoleController.java
...n/java/share/web/controller/system/SysRoleController.java
+262
-0
SysUserController.java
...n/java/share/web/controller/system/SysUserController.java
+251
-0
TestController.java
...c/main/java/share/web/controller/tool/TestController.java
+183
-0
SwaggerConfig.java
...nt/src/main/java/share/web/core/config/SwaggerConfig.java
+125
-0
spring-devtools.properties
...nt/src/main/resources/META-INF/spring-devtools.properties
+2
-0
application-druid.yml
share-front/src/main/resources/application-druid.yml
+62
-0
application.yml
share-front/src/main/resources/application.yml
+131
-0
banner.txt
share-front/src/main/resources/banner.txt
+0
-0
messages.properties
share-front/src/main/resources/i18n/messages.properties
+38
-0
logback.xml
share-front/src/main/resources/logback.xml
+94
-0
mybatis-config.xml
share-front/src/main/resources/mybatis/mybatis-config.xml
+20
-0
No files found.
share-front/pom.xml
0 → 100644
View file @
08279793
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
share
</artifactId>
<groupId>
share
</groupId>
<version>
3.8.6
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<packaging>
jar
</packaging>
<artifactId>
share-front
</artifactId>
<description>
web服务入口
</description>
<dependencies>
<!-- spring-boot-devtools -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-devtools
</artifactId>
<optional>
true
</optional>
<!-- 表示依赖不会传递 -->
</dependency>
<!-- swagger3-->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-boot-starter
</artifactId>
</dependency>
<!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
<dependency>
<groupId>
io.swagger
</groupId>
<artifactId>
swagger-models
</artifactId>
<version>
1.6.2
</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>
share
</groupId>
<artifactId>
share-framework
</artifactId>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>
share
</groupId>
<artifactId>
share-quartz
</artifactId>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>
share
</groupId>
<artifactId>
share-generator
</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
2.5.15
</version>
<configuration>
<fork>
true
</fork>
<!-- 如果没有该配置,devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-war-plugin
</artifactId>
<version>
3.1.0
</version>
<configuration>
<failOnMissingWebXml>
false
</failOnMissingWebXml>
<warName>
${project.artifactId}
</warName>
</configuration>
</plugin>
</plugins>
<finalName>
${project.artifactId}
</finalName>
</build>
</project>
\ No newline at end of file
share-front/src/main/java/share/ShareApplication.java
0 → 100644
View file @
08279793
package
share
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
/**
* 启动程序
*
* @author ruoyi
*/
@SpringBootApplication
(
exclude
=
{
DataSourceAutoConfiguration
.
class
})
public
class
ShareApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ShareApplication
.
class
,
args
);
System
.
out
.
println
(
"启动成功"
);
}
}
share-front/src/main/java/share/ShareServletInitializer.java
0 → 100644
View file @
08279793
package
share
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.boot.web.servlet.support.SpringBootServletInitializer
;
/**
* web容器中进行部署
*
* @author ruoyi
*/
public
class
ShareServletInitializer
extends
SpringBootServletInitializer
{
@Override
protected
SpringApplicationBuilder
configure
(
SpringApplicationBuilder
application
)
{
return
application
.
sources
(
ShareApplication
.
class
);
}
}
share-front/src/main/java/share/web/controller/common/CaptchaController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
common
;
import
java.awt.image.BufferedImage
;
import
java.io.IOException
;
import
java.util.concurrent.TimeUnit
;
import
javax.annotation.Resource
;
import
javax.imageio.ImageIO
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.FastByteArrayOutputStream
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.google.code.kaptcha.Producer
;
import
share.common.config.RuoYiConfig
;
import
share.common.constant.CacheConstants
;
import
share.common.constant.Constants
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.redis.RedisCache
;
import
share.common.utils.sign.Base64
;
import
share.common.utils.uuid.IdUtils
;
import
share.system.service.ISysConfigService
;
/**
* 验证码操作处理
*
* @author ruoyi
*/
@RestController
public
class
CaptchaController
{
@Resource
(
name
=
"captchaProducer"
)
private
Producer
captchaProducer
;
@Resource
(
name
=
"captchaProducerMath"
)
private
Producer
captchaProducerMath
;
@Autowired
private
RedisCache
redisCache
;
@Autowired
private
ISysConfigService
configService
;
/**
* 生成验证码
*/
@GetMapping
(
"/captchaImage"
)
public
AjaxResult
getCode
(
HttpServletResponse
response
)
throws
IOException
{
AjaxResult
ajax
=
AjaxResult
.
success
();
boolean
captchaEnabled
=
configService
.
selectCaptchaEnabled
();
ajax
.
put
(
"captchaEnabled"
,
captchaEnabled
);
if
(!
captchaEnabled
)
{
return
ajax
;
}
// 保存验证码信息
String
uuid
=
IdUtils
.
simpleUUID
();
String
verifyKey
=
CacheConstants
.
CAPTCHA_CODE_KEY
+
uuid
;
String
capStr
=
null
,
code
=
null
;
BufferedImage
image
=
null
;
// 生成验证码
String
captchaType
=
RuoYiConfig
.
getCaptchaType
();
if
(
"math"
.
equals
(
captchaType
))
{
String
capText
=
captchaProducerMath
.
createText
();
capStr
=
capText
.
substring
(
0
,
capText
.
lastIndexOf
(
"@"
));
code
=
capText
.
substring
(
capText
.
lastIndexOf
(
"@"
)
+
1
);
image
=
captchaProducerMath
.
createImage
(
capStr
);
}
else
if
(
"char"
.
equals
(
captchaType
))
{
capStr
=
code
=
captchaProducer
.
createText
();
image
=
captchaProducer
.
createImage
(
capStr
);
}
redisCache
.
setCacheObject
(
verifyKey
,
code
,
Constants
.
CAPTCHA_EXPIRATION
,
TimeUnit
.
MINUTES
);
// 转换流信息写出
FastByteArrayOutputStream
os
=
new
FastByteArrayOutputStream
();
try
{
ImageIO
.
write
(
image
,
"jpg"
,
os
);
}
catch
(
IOException
e
)
{
return
AjaxResult
.
error
(
e
.
getMessage
());
}
ajax
.
put
(
"uuid"
,
uuid
);
ajax
.
put
(
"img"
,
Base64
.
encode
(
os
.
toByteArray
()));
return
ajax
;
}
}
share-front/src/main/java/share/web/controller/common/CommonController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
common
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
share.common.config.RuoYiConfig
;
import
share.common.constant.Constants
;
import
share.common.core.domain.AjaxResult
;
import
share.common.utils.StringUtils
;
import
share.common.utils.file.FileUploadUtils
;
import
share.common.utils.file.FileUtils
;
import
share.framework.config.ServerConfig
;
/**
* 通用请求处理
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/common"
)
public
class
CommonController
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
CommonController
.
class
);
@Autowired
private
ServerConfig
serverConfig
;
private
static
final
String
FILE_DELIMETER
=
","
;
/**
* 通用下载请求
*
* @param fileName 文件名称
* @param delete 是否删除
*/
@GetMapping
(
"/download"
)
public
void
fileDownload
(
String
fileName
,
Boolean
delete
,
HttpServletResponse
response
,
HttpServletRequest
request
)
{
try
{
if
(!
FileUtils
.
checkAllowDownload
(
fileName
))
{
throw
new
Exception
(
StringUtils
.
format
(
"文件名称({})非法,不允许下载。 "
,
fileName
));
}
String
realFileName
=
System
.
currentTimeMillis
()
+
fileName
.
substring
(
fileName
.
indexOf
(
"_"
)
+
1
);
String
filePath
=
RuoYiConfig
.
getDownloadPath
()
+
fileName
;
response
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
FileUtils
.
setAttachmentResponseHeader
(
response
,
realFileName
);
FileUtils
.
writeBytes
(
filePath
,
response
.
getOutputStream
());
if
(
delete
)
{
FileUtils
.
deleteFile
(
filePath
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"下载文件失败"
,
e
);
}
}
/**
* 通用上传请求(单个)
*/
@PostMapping
(
"/upload"
)
public
AjaxResult
uploadFile
(
MultipartFile
file
)
throws
Exception
{
try
{
// 上传文件路径
String
filePath
=
RuoYiConfig
.
getUploadPath
();
// 上传并返回新文件名称
String
fileName
=
FileUploadUtils
.
upload
(
filePath
,
file
);
String
url
=
serverConfig
.
getUrl
()
+
fileName
;
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"url"
,
url
);
ajax
.
put
(
"fileName"
,
fileName
);
ajax
.
put
(
"newFileName"
,
FileUtils
.
getName
(
fileName
));
ajax
.
put
(
"originalFilename"
,
file
.
getOriginalFilename
());
return
ajax
;
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
(
e
.
getMessage
());
}
}
/**
* 通用上传请求(多个)
*/
@PostMapping
(
"/uploads"
)
public
AjaxResult
uploadFiles
(
List
<
MultipartFile
>
files
)
throws
Exception
{
try
{
// 上传文件路径
String
filePath
=
RuoYiConfig
.
getUploadPath
();
List
<
String
>
urls
=
new
ArrayList
<
String
>();
List
<
String
>
fileNames
=
new
ArrayList
<
String
>();
List
<
String
>
newFileNames
=
new
ArrayList
<
String
>();
List
<
String
>
originalFilenames
=
new
ArrayList
<
String
>();
for
(
MultipartFile
file
:
files
)
{
// 上传并返回新文件名称
String
fileName
=
FileUploadUtils
.
upload
(
filePath
,
file
);
String
url
=
serverConfig
.
getUrl
()
+
fileName
;
urls
.
add
(
url
);
fileNames
.
add
(
fileName
);
newFileNames
.
add
(
FileUtils
.
getName
(
fileName
));
originalFilenames
.
add
(
file
.
getOriginalFilename
());
}
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"urls"
,
StringUtils
.
join
(
urls
,
FILE_DELIMETER
));
ajax
.
put
(
"fileNames"
,
StringUtils
.
join
(
fileNames
,
FILE_DELIMETER
));
ajax
.
put
(
"newFileNames"
,
StringUtils
.
join
(
newFileNames
,
FILE_DELIMETER
));
ajax
.
put
(
"originalFilenames"
,
StringUtils
.
join
(
originalFilenames
,
FILE_DELIMETER
));
return
ajax
;
}
catch
(
Exception
e
)
{
return
AjaxResult
.
error
(
e
.
getMessage
());
}
}
/**
* 本地资源通用下载
*/
@GetMapping
(
"/download/resource"
)
public
void
resourceDownload
(
String
resource
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
Exception
{
try
{
if
(!
FileUtils
.
checkAllowDownload
(
resource
))
{
throw
new
Exception
(
StringUtils
.
format
(
"资源文件({})非法,不允许下载。 "
,
resource
));
}
// 本地资源路径
String
localPath
=
RuoYiConfig
.
getProfile
();
// 数据库资源地址
String
downloadPath
=
localPath
+
StringUtils
.
substringAfter
(
resource
,
Constants
.
RESOURCE_PREFIX
);
// 下载名称
String
downloadName
=
StringUtils
.
substringAfterLast
(
downloadPath
,
"/"
);
response
.
setContentType
(
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
);
FileUtils
.
setAttachmentResponseHeader
(
response
,
downloadName
);
FileUtils
.
writeBytes
(
downloadPath
,
response
.
getOutputStream
());
}
catch
(
Exception
e
)
{
log
.
error
(
"下载文件失败"
,
e
);
}
}
}
share-front/src/main/java/share/web/controller/monitor/CacheController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
monitor
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.Set
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.RedisCallback
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.constant.CacheConstants
;
import
share.common.core.domain.AjaxResult
;
import
share.common.utils.StringUtils
;
import
share.system.domain.SysCache
;
/**
* 缓存监控
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/monitor/cache"
)
public
class
CacheController
{
@Autowired
private
RedisTemplate
<
String
,
String
>
redisTemplate
;
private
final
static
List
<
SysCache
>
caches
=
new
ArrayList
<
SysCache
>();
{
caches
.
add
(
new
SysCache
(
CacheConstants
.
LOGIN_TOKEN_KEY
,
"用户信息"
));
caches
.
add
(
new
SysCache
(
CacheConstants
.
SYS_CONFIG_KEY
,
"配置信息"
));
caches
.
add
(
new
SysCache
(
CacheConstants
.
SYS_DICT_KEY
,
"数据字典"
));
caches
.
add
(
new
SysCache
(
CacheConstants
.
CAPTCHA_CODE_KEY
,
"验证码"
));
caches
.
add
(
new
SysCache
(
CacheConstants
.
REPEAT_SUBMIT_KEY
,
"防重提交"
));
caches
.
add
(
new
SysCache
(
CacheConstants
.
RATE_LIMIT_KEY
,
"限流处理"
));
caches
.
add
(
new
SysCache
(
CacheConstants
.
PWD_ERR_CNT_KEY
,
"密码错误次数"
));
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@GetMapping
()
public
AjaxResult
getInfo
()
throws
Exception
{
Properties
info
=
(
Properties
)
redisTemplate
.
execute
((
RedisCallback
<
Object
>)
connection
->
connection
.
info
());
Properties
commandStats
=
(
Properties
)
redisTemplate
.
execute
((
RedisCallback
<
Object
>)
connection
->
connection
.
info
(
"commandstats"
));
Object
dbSize
=
redisTemplate
.
execute
((
RedisCallback
<
Object
>)
connection
->
connection
.
dbSize
());
Map
<
String
,
Object
>
result
=
new
HashMap
<>(
3
);
result
.
put
(
"info"
,
info
);
result
.
put
(
"dbSize"
,
dbSize
);
List
<
Map
<
String
,
String
>>
pieList
=
new
ArrayList
<>();
commandStats
.
stringPropertyNames
().
forEach
(
key
->
{
Map
<
String
,
String
>
data
=
new
HashMap
<>(
2
);
String
property
=
commandStats
.
getProperty
(
key
);
data
.
put
(
"name"
,
StringUtils
.
removeStart
(
key
,
"cmdstat_"
));
data
.
put
(
"value"
,
StringUtils
.
substringBetween
(
property
,
"calls="
,
",usec"
));
pieList
.
add
(
data
);
});
result
.
put
(
"commandStats"
,
pieList
);
return
AjaxResult
.
success
(
result
);
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@GetMapping
(
"/getNames"
)
public
AjaxResult
cache
()
{
return
AjaxResult
.
success
(
caches
);
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@GetMapping
(
"/getKeys/{cacheName}"
)
public
AjaxResult
getCacheKeys
(
@PathVariable
String
cacheName
)
{
Set
<
String
>
cacheKeys
=
redisTemplate
.
keys
(
cacheName
+
"*"
);
return
AjaxResult
.
success
(
cacheKeys
);
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@GetMapping
(
"/getValue/{cacheName}/{cacheKey}"
)
public
AjaxResult
getCacheValue
(
@PathVariable
String
cacheName
,
@PathVariable
String
cacheKey
)
{
String
cacheValue
=
redisTemplate
.
opsForValue
().
get
(
cacheKey
);
SysCache
sysCache
=
new
SysCache
(
cacheName
,
cacheKey
,
cacheValue
);
return
AjaxResult
.
success
(
sysCache
);
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@DeleteMapping
(
"/clearCacheName/{cacheName}"
)
public
AjaxResult
clearCacheName
(
@PathVariable
String
cacheName
)
{
Collection
<
String
>
cacheKeys
=
redisTemplate
.
keys
(
cacheName
+
"*"
);
redisTemplate
.
delete
(
cacheKeys
);
return
AjaxResult
.
success
();
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@DeleteMapping
(
"/clearCacheKey/{cacheKey}"
)
public
AjaxResult
clearCacheKey
(
@PathVariable
String
cacheKey
)
{
redisTemplate
.
delete
(
cacheKey
);
return
AjaxResult
.
success
();
}
@PreAuthorize
(
"@ss.hasPermi('monitor:cache:list')"
)
@DeleteMapping
(
"/clearCacheAll"
)
public
AjaxResult
clearCacheAll
()
{
Collection
<
String
>
cacheKeys
=
redisTemplate
.
keys
(
"*"
);
redisTemplate
.
delete
(
cacheKeys
);
return
AjaxResult
.
success
();
}
}
share-front/src/main/java/share/web/controller/monitor/ServerController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
monitor
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.core.domain.AjaxResult
;
import
share.framework.web.domain.Server
;
/**
* 服务器监控
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/monitor/server"
)
public
class
ServerController
{
@PreAuthorize
(
"@ss.hasPermi('monitor:server:list')"
)
@GetMapping
()
public
AjaxResult
getInfo
()
throws
Exception
{
Server
server
=
new
Server
();
server
.
copyTo
();
return
AjaxResult
.
success
(
server
);
}
}
share-front/src/main/java/share/web/controller/monitor/SysLogininforController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
monitor
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.framework.web.service.SysPasswordService
;
import
share.system.domain.SysLogininfor
;
import
share.system.service.ISysLogininforService
;
/**
* 系统访问记录
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/monitor/logininfor"
)
public
class
SysLogininforController
extends
BaseController
{
@Autowired
private
ISysLogininforService
logininforService
;
@Autowired
private
SysPasswordService
passwordService
;
@PreAuthorize
(
"@ss.hasPermi('monitor:logininfor:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysLogininfor
logininfor
)
{
startPage
();
List
<
SysLogininfor
>
list
=
logininforService
.
selectLogininforList
(
logininfor
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"登录日志"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('monitor:logininfor:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysLogininfor
logininfor
)
{
List
<
SysLogininfor
>
list
=
logininforService
.
selectLogininforList
(
logininfor
);
ExcelUtil
<
SysLogininfor
>
util
=
new
ExcelUtil
<
SysLogininfor
>(
SysLogininfor
.
class
);
util
.
exportExcel
(
response
,
list
,
"登录日志"
);
}
@PreAuthorize
(
"@ss.hasPermi('monitor:logininfor:remove')"
)
@Log
(
title
=
"登录日志"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{infoIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
infoIds
)
{
return
toAjax
(
logininforService
.
deleteLogininforByIds
(
infoIds
));
}
@PreAuthorize
(
"@ss.hasPermi('monitor:logininfor:remove')"
)
@Log
(
title
=
"登录日志"
,
businessType
=
BusinessType
.
CLEAN
)
@DeleteMapping
(
"/clean"
)
public
AjaxResult
clean
()
{
logininforService
.
cleanLogininfor
();
return
success
();
}
@PreAuthorize
(
"@ss.hasPermi('monitor:logininfor:unlock')"
)
@Log
(
title
=
"账户解锁"
,
businessType
=
BusinessType
.
OTHER
)
@GetMapping
(
"/unlock/{userName}"
)
public
AjaxResult
unlock
(
@PathVariable
(
"userName"
)
String
userName
)
{
passwordService
.
clearLoginRecordCache
(
userName
);
return
success
();
}
}
share-front/src/main/java/share/web/controller/monitor/SysOperlogController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
monitor
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.domain.SysOperLog
;
import
share.system.service.ISysOperLogService
;
/**
* 操作日志记录
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/monitor/operlog"
)
public
class
SysOperlogController
extends
BaseController
{
@Autowired
private
ISysOperLogService
operLogService
;
@PreAuthorize
(
"@ss.hasPermi('monitor:operlog:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysOperLog
operLog
)
{
startPage
();
List
<
SysOperLog
>
list
=
operLogService
.
selectOperLogList
(
operLog
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"操作日志"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('monitor:operlog:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysOperLog
operLog
)
{
List
<
SysOperLog
>
list
=
operLogService
.
selectOperLogList
(
operLog
);
ExcelUtil
<
SysOperLog
>
util
=
new
ExcelUtil
<
SysOperLog
>(
SysOperLog
.
class
);
util
.
exportExcel
(
response
,
list
,
"操作日志"
);
}
@Log
(
title
=
"操作日志"
,
businessType
=
BusinessType
.
DELETE
)
@PreAuthorize
(
"@ss.hasPermi('monitor:operlog:remove')"
)
@DeleteMapping
(
"/{operIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
operIds
)
{
return
toAjax
(
operLogService
.
deleteOperLogByIds
(
operIds
));
}
@Log
(
title
=
"操作日志"
,
businessType
=
BusinessType
.
CLEAN
)
@PreAuthorize
(
"@ss.hasPermi('monitor:operlog:remove')"
)
@DeleteMapping
(
"/clean"
)
public
AjaxResult
clean
()
{
operLogService
.
cleanOperLog
();
return
success
();
}
}
share-front/src/main/java/share/web/controller/monitor/SysUserOnlineController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
monitor
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.constant.CacheConstants
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.model.LoginUser
;
import
share.common.core.page.TableDataInfo
;
import
share.common.core.redis.RedisCache
;
import
share.common.enums.BusinessType
;
import
share.common.utils.StringUtils
;
import
share.system.domain.SysUserOnline
;
import
share.system.service.ISysUserOnlineService
;
/**
* 在线用户监控
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/monitor/online"
)
public
class
SysUserOnlineController
extends
BaseController
{
@Autowired
private
ISysUserOnlineService
userOnlineService
;
@Autowired
private
RedisCache
redisCache
;
@PreAuthorize
(
"@ss.hasPermi('monitor:online:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
String
ipaddr
,
String
userName
)
{
Collection
<
String
>
keys
=
redisCache
.
keys
(
CacheConstants
.
LOGIN_TOKEN_KEY
+
"*"
);
List
<
SysUserOnline
>
userOnlineList
=
new
ArrayList
<
SysUserOnline
>();
for
(
String
key
:
keys
)
{
LoginUser
user
=
redisCache
.
getCacheObject
(
key
);
if
(
StringUtils
.
isNotEmpty
(
ipaddr
)
&&
StringUtils
.
isNotEmpty
(
userName
))
{
userOnlineList
.
add
(
userOnlineService
.
selectOnlineByInfo
(
ipaddr
,
userName
,
user
));
}
else
if
(
StringUtils
.
isNotEmpty
(
ipaddr
))
{
userOnlineList
.
add
(
userOnlineService
.
selectOnlineByIpaddr
(
ipaddr
,
user
));
}
else
if
(
StringUtils
.
isNotEmpty
(
userName
)
&&
StringUtils
.
isNotNull
(
user
.
getUser
()))
{
userOnlineList
.
add
(
userOnlineService
.
selectOnlineByUserName
(
userName
,
user
));
}
else
{
userOnlineList
.
add
(
userOnlineService
.
loginUserToUserOnline
(
user
));
}
}
Collections
.
reverse
(
userOnlineList
);
userOnlineList
.
removeAll
(
Collections
.
singleton
(
null
));
return
getDataTable
(
userOnlineList
);
}
/**
* 强退用户
*/
@PreAuthorize
(
"@ss.hasPermi('monitor:online:forceLogout')"
)
@Log
(
title
=
"在线用户"
,
businessType
=
BusinessType
.
FORCE
)
@DeleteMapping
(
"/{tokenId}"
)
public
AjaxResult
forceLogout
(
@PathVariable
String
tokenId
)
{
redisCache
.
deleteObject
(
CacheConstants
.
LOGIN_TOKEN_KEY
+
tokenId
);
return
success
();
}
}
share-front/src/main/java/share/web/controller/system/SCleanRecordsController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SCleanRecords
;
import
share.system.service.ISCleanRecordsService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 保洁记录Controller
*
* @author ruoyi
* @date 2023-09-28
*/
@RestController
@RequestMapping
(
"/system/cleanRecords"
)
public
class
SCleanRecordsController
extends
BaseController
{
@Autowired
private
ISCleanRecordsService
sCleanRecordsService
;
/**
* 查询保洁记录列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SCleanRecords
sCleanRecords
)
{
startPage
();
List
<
SCleanRecords
>
list
=
sCleanRecordsService
.
selectSCleanRecordsList
(
sCleanRecords
);
return
getDataTable
(
list
);
}
/**
* 导出保洁记录列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:export')"
)
@Log
(
title
=
"保洁记录"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SCleanRecords
sCleanRecords
)
{
List
<
SCleanRecords
>
list
=
sCleanRecordsService
.
selectSCleanRecordsList
(
sCleanRecords
);
ExcelUtil
<
SCleanRecords
>
util
=
new
ExcelUtil
<
SCleanRecords
>(
SCleanRecords
.
class
);
util
.
exportExcel
(
response
,
list
,
"保洁记录数据"
);
}
/**
* 获取保洁记录详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sCleanRecordsService
.
selectSCleanRecordsById
(
id
));
}
/**
* 新增保洁记录
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:add')"
)
@Log
(
title
=
"保洁记录"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SCleanRecords
sCleanRecords
)
{
return
toAjax
(
sCleanRecordsService
.
insertSCleanRecords
(
sCleanRecords
));
}
/**
* 修改保洁记录
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:edit')"
)
@Log
(
title
=
"保洁记录"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SCleanRecords
sCleanRecords
)
{
return
toAjax
(
sCleanRecordsService
.
updateSCleanRecords
(
sCleanRecords
));
}
/**
* 删除保洁记录
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:remove')"
)
@Log
(
title
=
"保洁记录"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sCleanRecordsService
.
deleteSCleanRecordsByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SConsumerController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SConsumer
;
import
share.system.service.ISConsumerService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 会员用户Controller
*
* @author ruoyi
* @date 2023-09-27
*/
@RestController
@RequestMapping
(
"/system/consumer"
)
public
class
SConsumerController
extends
BaseController
{
@Autowired
private
ISConsumerService
sConsumerService
;
/**
* 查询会员用户列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:consumer:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SConsumer
sConsumer
)
{
startPage
();
List
<
SConsumer
>
list
=
sConsumerService
.
selectSConsumerList
(
sConsumer
);
return
getDataTable
(
list
);
}
/**
* 导出会员用户列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:consumer:export')"
)
@Log
(
title
=
"会员用户"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SConsumer
sConsumer
)
{
List
<
SConsumer
>
list
=
sConsumerService
.
selectSConsumerList
(
sConsumer
);
ExcelUtil
<
SConsumer
>
util
=
new
ExcelUtil
<
SConsumer
>(
SConsumer
.
class
);
util
.
exportExcel
(
response
,
list
,
"会员用户数据"
);
}
/**
* 获取会员用户详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:consumer:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sConsumerService
.
selectSConsumerById
(
id
));
}
/**
* 新增会员用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:consumer:add')"
)
@Log
(
title
=
"会员用户"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SConsumer
sConsumer
)
{
return
toAjax
(
sConsumerService
.
insertSConsumer
(
sConsumer
));
}
/**
* 修改会员用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:consumer:edit')"
)
@Log
(
title
=
"会员用户"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SConsumer
sConsumer
)
{
return
toAjax
(
sConsumerService
.
updateSConsumer
(
sConsumer
));
}
/**
* 删除会员用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:consumer:remove')"
)
@Log
(
title
=
"会员用户"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sConsumerService
.
deleteSConsumerByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SConsumptionRecordsController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SConsumptionRecords
;
import
share.system.service.ISConsumptionRecordsService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 消费记录Controller
*
* @author ruoyi
* @date 2023-09-27
*/
@RestController
@RequestMapping
(
"/system/records"
)
public
class
SConsumptionRecordsController
extends
BaseController
{
@Autowired
private
ISConsumptionRecordsService
sConsumptionRecordsService
;
/**
* 查询消费记录列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SConsumptionRecords
sConsumptionRecords
)
{
startPage
();
List
<
SConsumptionRecords
>
list
=
sConsumptionRecordsService
.
selectSConsumptionRecordsList
(
sConsumptionRecords
);
return
getDataTable
(
list
);
}
/**
* 导出消费记录列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:export')"
)
@Log
(
title
=
"消费记录"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SConsumptionRecords
sConsumptionRecords
)
{
List
<
SConsumptionRecords
>
list
=
sConsumptionRecordsService
.
selectSConsumptionRecordsList
(
sConsumptionRecords
);
ExcelUtil
<
SConsumptionRecords
>
util
=
new
ExcelUtil
<
SConsumptionRecords
>(
SConsumptionRecords
.
class
);
util
.
exportExcel
(
response
,
list
,
"消费记录数据"
);
}
/**
* 获取消费记录详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sConsumptionRecordsService
.
selectSConsumptionRecordsById
(
id
));
}
/**
* 新增消费记录
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:add')"
)
@Log
(
title
=
"消费记录"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SConsumptionRecords
sConsumptionRecords
)
{
return
toAjax
(
sConsumptionRecordsService
.
insertSConsumptionRecords
(
sConsumptionRecords
));
}
/**
* 修改消费记录
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:edit')"
)
@Log
(
title
=
"消费记录"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SConsumptionRecords
sConsumptionRecords
)
{
return
toAjax
(
sConsumptionRecordsService
.
updateSConsumptionRecords
(
sConsumptionRecords
));
}
/**
* 删除消费记录
*/
@PreAuthorize
(
"@ss.hasPermi('system:records:remove')"
)
@Log
(
title
=
"消费记录"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sConsumptionRecordsService
.
deleteSConsumptionRecordsByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SCouponController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SCoupon
;
import
share.system.service.ISCouponService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 优惠券Controller
*
* @author ruoyi
* @date 2023-09-27
*/
@RestController
@RequestMapping
(
"/system/coupon"
)
public
class
SCouponController
extends
BaseController
{
@Autowired
private
ISCouponService
sCouponService
;
/**
* 查询优惠券列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:coupon:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SCoupon
sCoupon
)
{
startPage
();
List
<
SCoupon
>
list
=
sCouponService
.
selectSCouponList
(
sCoupon
);
return
getDataTable
(
list
);
}
/**
* 导出优惠券列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:coupon:export')"
)
@Log
(
title
=
"优惠券"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SCoupon
sCoupon
)
{
List
<
SCoupon
>
list
=
sCouponService
.
selectSCouponList
(
sCoupon
);
ExcelUtil
<
SCoupon
>
util
=
new
ExcelUtil
<
SCoupon
>(
SCoupon
.
class
);
util
.
exportExcel
(
response
,
list
,
"优惠券数据"
);
}
/**
* 获取优惠券详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:coupon:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sCouponService
.
selectSCouponById
(
id
));
}
/**
* 新增优惠券
*/
@PreAuthorize
(
"@ss.hasPermi('system:coupon:add')"
)
@Log
(
title
=
"优惠券"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SCoupon
sCoupon
)
{
return
toAjax
(
sCouponService
.
insertSCoupon
(
sCoupon
));
}
/**
* 修改优惠券
*/
@PreAuthorize
(
"@ss.hasPermi('system:coupon:edit')"
)
@Log
(
title
=
"优惠券"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SCoupon
sCoupon
)
{
return
toAjax
(
sCouponService
.
updateSCoupon
(
sCoupon
));
}
/**
* 删除优惠券
*/
@PreAuthorize
(
"@ss.hasPermi('system:coupon:remove')"
)
@Log
(
title
=
"优惠券"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sCouponService
.
deleteSCouponByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SOrderController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SOrder
;
import
share.system.service.ISOrderService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 订单Controller
*
* @author ruoyi
* @date 2023-10-09
*/
@RestController
@RequestMapping
(
"/system/order"
)
public
class
SOrderController
extends
BaseController
{
@Autowired
private
ISOrderService
sOrderService
;
/**
* 查询订单列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:order:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SOrder
sOrder
)
{
startPage
();
List
<
SOrder
>
list
=
sOrderService
.
selectSOrderList
(
sOrder
);
return
getDataTable
(
list
);
}
/**
* 导出订单列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:order:export')"
)
@Log
(
title
=
"订单"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SOrder
sOrder
)
{
List
<
SOrder
>
list
=
sOrderService
.
selectSOrderList
(
sOrder
);
ExcelUtil
<
SOrder
>
util
=
new
ExcelUtil
<
SOrder
>(
SOrder
.
class
);
util
.
exportExcel
(
response
,
list
,
"订单数据"
);
}
/**
* 获取订单详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:order:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sOrderService
.
selectSOrderById
(
id
));
}
/**
* 新增订单
*/
@PreAuthorize
(
"@ss.hasPermi('system:order:add')"
)
@Log
(
title
=
"订单"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SOrder
sOrder
)
{
return
toAjax
(
sOrderService
.
insertSOrder
(
sOrder
));
}
/**
* 修改订单
*/
@PreAuthorize
(
"@ss.hasPermi('system:order:edit')"
)
@Log
(
title
=
"订单"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SOrder
sOrder
)
{
return
toAjax
(
sOrderService
.
updateSOrder
(
sOrder
));
}
/**
* 删除订单
*/
@PreAuthorize
(
"@ss.hasPermi('system:order:remove')"
)
@Log
(
title
=
"订单"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sOrderService
.
deleteSOrderByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SRoomController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SRoom
;
import
share.system.domain.vo.SRoomVo
;
import
share.system.service.ISRoomService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 房间Controller
*
* @author ruoyi
* @date 2023-09-27
*/
@RestController
@RequestMapping
(
"/system/room"
)
public
class
SRoomController
extends
BaseController
{
@Autowired
private
ISRoomService
sRoomService
;
/**
* 查询房间列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:room:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SRoom
sRoom
)
{
startPage
();
List
<
SRoomVo
>
list
=
sRoomService
.
selectSRoomList
(
sRoom
);
return
getDataTable
(
list
);
}
/**
* 导出房间列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:room:export')"
)
@Log
(
title
=
"房间"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SRoom
sRoom
)
{
List
<
SRoomVo
>
list
=
sRoomService
.
selectSRoomList
(
sRoom
);
ExcelUtil
<
SRoomVo
>
util
=
new
ExcelUtil
<
SRoomVo
>(
SRoomVo
.
class
);
util
.
exportExcel
(
response
,
list
,
"房间数据"
);
}
/**
* 获取房间详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:room:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sRoomService
.
selectSRoomById
(
id
));
}
/**
* 新增房间
*/
@PreAuthorize
(
"@ss.hasPermi('system:room:add')"
)
@Log
(
title
=
"房间"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SRoom
sRoom
)
{
return
toAjax
(
sRoomService
.
insertSRoom
(
sRoom
));
}
/**
* 修改房间
*/
@PreAuthorize
(
"@ss.hasPermi('system:room:edit')"
)
@Log
(
title
=
"房间"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SRoom
sRoom
)
{
return
toAjax
(
sRoomService
.
updateSRoom
(
sRoom
));
}
/**
* 删除房间
*/
@PreAuthorize
(
"@ss.hasPermi('system:room:remove')"
)
@Log
(
title
=
"房间"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sRoomService
.
deleteSRoomByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SStoreController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.service.ISStoreService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
import
share.system.domain.SStore
;
/**
* 门店Controller
*
* @author ruoyi
* @date 2023-09-27
*/
@RestController
@RequestMapping
(
"/system/store"
)
public
class
SStoreController
extends
BaseController
{
@Autowired
private
ISStoreService
sStoreService
;
/**
* 查询门店列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:store:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SStore
sStore
)
{
startPage
();
List
<
SStore
>
list
=
sStoreService
.
selectSStoreList
(
sStore
);
return
getDataTable
(
list
);
}
/**
* 导出门店列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:store:export')"
)
@Log
(
title
=
"门店"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SStore
sStore
)
{
List
<
SStore
>
list
=
sStoreService
.
selectSStoreList
(
sStore
);
ExcelUtil
<
SStore
>
util
=
new
ExcelUtil
<
SStore
>(
SStore
.
class
);
util
.
exportExcel
(
response
,
list
,
"门店数据"
);
}
/**
* 获取门店详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:store:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sStoreService
.
selectSStoreById
(
id
));
}
/**
* 新增门店
*/
@PreAuthorize
(
"@ss.hasPermi('system:store:add')"
)
@Log
(
title
=
"门店"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
SStore
sStore
)
{
return
toAjax
(
sStoreService
.
insertSStore
(
sStore
));
}
/**
* 修改门店
*/
@PreAuthorize
(
"@ss.hasPermi('system:store:edit')"
)
@Log
(
title
=
"门店"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
SStore
sStore
)
{
return
toAjax
(
sStoreService
.
updateSStore
(
sStore
));
}
/**
* 删除门店
*/
@PreAuthorize
(
"@ss.hasPermi('system:store:remove')"
)
@Log
(
title
=
"门店"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sStoreService
.
deleteSStoreByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/STimeSlotController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.enums.BusinessType
;
import
share.system.domain.STimeSlot
;
import
share.system.service.ISTimeSlotService
;
import
share.common.utils.poi.ExcelUtil
;
import
share.common.core.page.TableDataInfo
;
/**
* 套餐Controller
*
* @author ruoyi
* @date 2023-09-27
*/
@RestController
@RequestMapping
(
"/system/slot"
)
public
class
STimeSlotController
extends
BaseController
{
@Autowired
private
ISTimeSlotService
sTimeSlotService
;
/**
* 查询套餐列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:slot:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
STimeSlot
sTimeSlot
)
{
startPage
();
List
<
STimeSlot
>
list
=
sTimeSlotService
.
selectSTimeSlotList
(
sTimeSlot
);
return
getDataTable
(
list
);
}
/**
* 导出套餐列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:slot:export')"
)
@Log
(
title
=
"套餐"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
STimeSlot
sTimeSlot
)
{
List
<
STimeSlot
>
list
=
sTimeSlotService
.
selectSTimeSlotList
(
sTimeSlot
);
ExcelUtil
<
STimeSlot
>
util
=
new
ExcelUtil
<
STimeSlot
>(
STimeSlot
.
class
);
util
.
exportExcel
(
response
,
list
,
"套餐数据"
);
}
/**
* 获取套餐详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:slot:query')"
)
@GetMapping
(
value
=
"/{id}"
)
public
AjaxResult
getInfo
(
@PathVariable
(
"id"
)
Long
id
)
{
return
success
(
sTimeSlotService
.
selectSTimeSlotById
(
id
));
}
/**
* 新增套餐
*/
@PreAuthorize
(
"@ss.hasPermi('system:slot:add')"
)
@Log
(
title
=
"套餐"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@RequestBody
STimeSlot
sTimeSlot
)
{
return
toAjax
(
sTimeSlotService
.
insertSTimeSlot
(
sTimeSlot
));
}
/**
* 修改套餐
*/
@PreAuthorize
(
"@ss.hasPermi('system:slot:edit')"
)
@Log
(
title
=
"套餐"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@RequestBody
STimeSlot
sTimeSlot
)
{
return
toAjax
(
sTimeSlotService
.
updateSTimeSlot
(
sTimeSlot
));
}
/**
* 删除套餐
*/
@PreAuthorize
(
"@ss.hasPermi('system:slot:remove')"
)
@Log
(
title
=
"套餐"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{ids}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
ids
)
{
return
toAjax
(
sTimeSlotService
.
deleteSTimeSlotByIds
(
ids
));
}
}
share-front/src/main/java/share/web/controller/system/SysConfigController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.domain.SysConfig
;
import
share.system.service.ISysConfigService
;
/**
* 参数配置 信息操作处理
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/config"
)
public
class
SysConfigController
extends
BaseController
{
@Autowired
private
ISysConfigService
configService
;
/**
* 获取参数配置列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:config:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysConfig
config
)
{
startPage
();
List
<
SysConfig
>
list
=
configService
.
selectConfigList
(
config
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"参数管理"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:config:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysConfig
config
)
{
List
<
SysConfig
>
list
=
configService
.
selectConfigList
(
config
);
ExcelUtil
<
SysConfig
>
util
=
new
ExcelUtil
<
SysConfig
>(
SysConfig
.
class
);
util
.
exportExcel
(
response
,
list
,
"参数数据"
);
}
/**
* 根据参数编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:config:query')"
)
@GetMapping
(
value
=
"/{configId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
configId
)
{
return
success
(
configService
.
selectConfigById
(
configId
));
}
/**
* 根据参数键名查询参数值
*/
@GetMapping
(
value
=
"/configKey/{configKey}"
)
public
AjaxResult
getConfigKey
(
@PathVariable
String
configKey
)
{
return
success
(
configService
.
selectConfigByKey
(
configKey
));
}
/**
* 新增参数配置
*/
@PreAuthorize
(
"@ss.hasPermi('system:config:add')"
)
@Log
(
title
=
"参数管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysConfig
config
)
{
if
(!
configService
.
checkConfigKeyUnique
(
config
))
{
return
error
(
"新增参数'"
+
config
.
getConfigName
()
+
"'失败,参数键名已存在"
);
}
config
.
setCreateBy
(
getUsername
());
return
toAjax
(
configService
.
insertConfig
(
config
));
}
/**
* 修改参数配置
*/
@PreAuthorize
(
"@ss.hasPermi('system:config:edit')"
)
@Log
(
title
=
"参数管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysConfig
config
)
{
if
(!
configService
.
checkConfigKeyUnique
(
config
))
{
return
error
(
"修改参数'"
+
config
.
getConfigName
()
+
"'失败,参数键名已存在"
);
}
config
.
setUpdateBy
(
getUsername
());
return
toAjax
(
configService
.
updateConfig
(
config
));
}
/**
* 删除参数配置
*/
@PreAuthorize
(
"@ss.hasPermi('system:config:remove')"
)
@Log
(
title
=
"参数管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{configIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
configIds
)
{
configService
.
deleteConfigByIds
(
configIds
);
return
success
();
}
/**
* 刷新参数缓存
*/
@PreAuthorize
(
"@ss.hasPermi('system:config:remove')"
)
@Log
(
title
=
"参数管理"
,
businessType
=
BusinessType
.
CLEAN
)
@DeleteMapping
(
"/refreshCache"
)
public
AjaxResult
refreshCache
()
{
configService
.
resetConfigCache
();
return
success
();
}
}
share-front/src/main/java/share/web/controller/system/SysDeptController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.constant.UserConstants
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysDept
;
import
share.common.enums.BusinessType
;
import
share.common.utils.StringUtils
;
import
share.system.service.ISysDeptService
;
/**
* 部门信息
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/dept"
)
public
class
SysDeptController
extends
BaseController
{
@Autowired
private
ISysDeptService
deptService
;
/**
* 获取部门列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:dept:list')"
)
@GetMapping
(
"/list"
)
public
AjaxResult
list
(
SysDept
dept
)
{
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
dept
);
return
success
(
depts
);
}
/**
* 查询部门列表(排除节点)
*/
@PreAuthorize
(
"@ss.hasPermi('system:dept:list')"
)
@GetMapping
(
"/list/exclude/{deptId}"
)
public
AjaxResult
excludeChild
(
@PathVariable
(
value
=
"deptId"
,
required
=
false
)
Long
deptId
)
{
List
<
SysDept
>
depts
=
deptService
.
selectDeptList
(
new
SysDept
());
depts
.
removeIf
(
d
->
d
.
getDeptId
().
intValue
()
==
deptId
||
ArrayUtils
.
contains
(
StringUtils
.
split
(
d
.
getAncestors
(),
","
),
deptId
+
""
));
return
success
(
depts
);
}
/**
* 根据部门编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:dept:query')"
)
@GetMapping
(
value
=
"/{deptId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
deptId
)
{
deptService
.
checkDeptDataScope
(
deptId
);
return
success
(
deptService
.
selectDeptById
(
deptId
));
}
/**
* 新增部门
*/
@PreAuthorize
(
"@ss.hasPermi('system:dept:add')"
)
@Log
(
title
=
"部门管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysDept
dept
)
{
if
(!
deptService
.
checkDeptNameUnique
(
dept
))
{
return
error
(
"新增部门'"
+
dept
.
getDeptName
()
+
"'失败,部门名称已存在"
);
}
dept
.
setCreateBy
(
getUsername
());
return
toAjax
(
deptService
.
insertDept
(
dept
));
}
/**
* 修改部门
*/
@PreAuthorize
(
"@ss.hasPermi('system:dept:edit')"
)
@Log
(
title
=
"部门管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysDept
dept
)
{
Long
deptId
=
dept
.
getDeptId
();
deptService
.
checkDeptDataScope
(
deptId
);
if
(!
deptService
.
checkDeptNameUnique
(
dept
))
{
return
error
(
"修改部门'"
+
dept
.
getDeptName
()
+
"'失败,部门名称已存在"
);
}
else
if
(
dept
.
getParentId
().
equals
(
deptId
))
{
return
error
(
"修改部门'"
+
dept
.
getDeptName
()
+
"'失败,上级部门不能是自己"
);
}
else
if
(
StringUtils
.
equals
(
UserConstants
.
DEPT_DISABLE
,
dept
.
getStatus
())
&&
deptService
.
selectNormalChildrenDeptById
(
deptId
)
>
0
)
{
return
error
(
"该部门包含未停用的子部门!"
);
}
dept
.
setUpdateBy
(
getUsername
());
return
toAjax
(
deptService
.
updateDept
(
dept
));
}
/**
* 删除部门
*/
@PreAuthorize
(
"@ss.hasPermi('system:dept:remove')"
)
@Log
(
title
=
"部门管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{deptId}"
)
public
AjaxResult
remove
(
@PathVariable
Long
deptId
)
{
if
(
deptService
.
hasChildByDeptId
(
deptId
))
{
return
warn
(
"存在下级部门,不允许删除"
);
}
if
(
deptService
.
checkDeptExistUser
(
deptId
))
{
return
warn
(
"部门存在用户,不允许删除"
);
}
deptService
.
checkDeptDataScope
(
deptId
);
return
toAjax
(
deptService
.
deleteDeptById
(
deptId
));
}
}
share-front/src/main/java/share/web/controller/system/SysDictDataController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysDictData
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.StringUtils
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.service.ISysDictDataService
;
import
share.system.service.ISysDictTypeService
;
/**
* 数据字典信息
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/dict/data"
)
public
class
SysDictDataController
extends
BaseController
{
@Autowired
private
ISysDictDataService
dictDataService
;
@Autowired
private
ISysDictTypeService
dictTypeService
;
@PreAuthorize
(
"@ss.hasPermi('system:dict:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysDictData
dictData
)
{
startPage
();
List
<
SysDictData
>
list
=
dictDataService
.
selectDictDataList
(
dictData
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"字典数据"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:dict:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysDictData
dictData
)
{
List
<
SysDictData
>
list
=
dictDataService
.
selectDictDataList
(
dictData
);
ExcelUtil
<
SysDictData
>
util
=
new
ExcelUtil
<
SysDictData
>(
SysDictData
.
class
);
util
.
exportExcel
(
response
,
list
,
"字典数据"
);
}
/**
* 查询字典数据详细
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:query')"
)
@GetMapping
(
value
=
"/{dictCode}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
dictCode
)
{
return
success
(
dictDataService
.
selectDictDataById
(
dictCode
));
}
/**
* 根据字典类型查询字典数据信息
*/
@GetMapping
(
value
=
"/type/{dictType}"
)
public
AjaxResult
dictType
(
@PathVariable
String
dictType
)
{
List
<
SysDictData
>
data
=
dictTypeService
.
selectDictDataByType
(
dictType
);
if
(
StringUtils
.
isNull
(
data
))
{
data
=
new
ArrayList
<
SysDictData
>();
}
return
success
(
data
);
}
/**
* 新增字典类型
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:add')"
)
@Log
(
title
=
"字典数据"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysDictData
dict
)
{
dict
.
setCreateBy
(
getUsername
());
return
toAjax
(
dictDataService
.
insertDictData
(
dict
));
}
/**
* 修改保存字典类型
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:edit')"
)
@Log
(
title
=
"字典数据"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysDictData
dict
)
{
dict
.
setUpdateBy
(
getUsername
());
return
toAjax
(
dictDataService
.
updateDictData
(
dict
));
}
/**
* 删除字典类型
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:remove')"
)
@Log
(
title
=
"字典类型"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{dictCodes}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
dictCodes
)
{
dictDataService
.
deleteDictDataByIds
(
dictCodes
);
return
success
();
}
}
share-front/src/main/java/share/web/controller/system/SysDictTypeController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysDictType
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.service.ISysDictTypeService
;
/**
* 数据字典信息
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/dict/type"
)
public
class
SysDictTypeController
extends
BaseController
{
@Autowired
private
ISysDictTypeService
dictTypeService
;
@PreAuthorize
(
"@ss.hasPermi('system:dict:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysDictType
dictType
)
{
startPage
();
List
<
SysDictType
>
list
=
dictTypeService
.
selectDictTypeList
(
dictType
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"字典类型"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:dict:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysDictType
dictType
)
{
List
<
SysDictType
>
list
=
dictTypeService
.
selectDictTypeList
(
dictType
);
ExcelUtil
<
SysDictType
>
util
=
new
ExcelUtil
<
SysDictType
>(
SysDictType
.
class
);
util
.
exportExcel
(
response
,
list
,
"字典类型"
);
}
/**
* 查询字典类型详细
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:query')"
)
@GetMapping
(
value
=
"/{dictId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
dictId
)
{
return
success
(
dictTypeService
.
selectDictTypeById
(
dictId
));
}
/**
* 新增字典类型
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:add')"
)
@Log
(
title
=
"字典类型"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysDictType
dict
)
{
if
(!
dictTypeService
.
checkDictTypeUnique
(
dict
))
{
return
error
(
"新增字典'"
+
dict
.
getDictName
()
+
"'失败,字典类型已存在"
);
}
dict
.
setCreateBy
(
getUsername
());
return
toAjax
(
dictTypeService
.
insertDictType
(
dict
));
}
/**
* 修改字典类型
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:edit')"
)
@Log
(
title
=
"字典类型"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysDictType
dict
)
{
if
(!
dictTypeService
.
checkDictTypeUnique
(
dict
))
{
return
error
(
"修改字典'"
+
dict
.
getDictName
()
+
"'失败,字典类型已存在"
);
}
dict
.
setUpdateBy
(
getUsername
());
return
toAjax
(
dictTypeService
.
updateDictType
(
dict
));
}
/**
* 删除字典类型
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:remove')"
)
@Log
(
title
=
"字典类型"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{dictIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
dictIds
)
{
dictTypeService
.
deleteDictTypeByIds
(
dictIds
);
return
success
();
}
/**
* 刷新字典缓存
*/
@PreAuthorize
(
"@ss.hasPermi('system:dict:remove')"
)
@Log
(
title
=
"字典类型"
,
businessType
=
BusinessType
.
CLEAN
)
@DeleteMapping
(
"/refreshCache"
)
public
AjaxResult
refreshCache
()
{
dictTypeService
.
resetDictCache
();
return
success
();
}
/**
* 获取字典选择框列表
*/
@GetMapping
(
"/optionselect"
)
public
AjaxResult
optionselect
()
{
List
<
SysDictType
>
dictTypes
=
dictTypeService
.
selectDictTypeAll
();
return
success
(
dictTypes
);
}
}
share-front/src/main/java/share/web/controller/system/SysIndexController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.config.RuoYiConfig
;
import
share.common.utils.StringUtils
;
/**
* 首页
*
* @author ruoyi
*/
@RestController
public
class
SysIndexController
{
/** 系统基础配置 */
@Autowired
private
RuoYiConfig
ruoyiConfig
;
/**
* 访问首页,提示语
*/
@RequestMapping
(
"/"
)
public
String
index
()
{
return
StringUtils
.
format
(
"欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。"
,
ruoyiConfig
.
getName
(),
ruoyiConfig
.
getVersion
());
}
}
share-front/src/main/java/share/web/controller/system/SysLoginController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
java.util.Set
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.constant.Constants
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysMenu
;
import
share.common.core.domain.entity.SysUser
;
import
share.common.core.domain.model.LoginBody
;
import
share.common.utils.SecurityUtils
;
import
share.framework.web.service.SysLoginService
;
import
share.framework.web.service.SysPermissionService
;
import
share.system.service.ISysMenuService
;
/**
* 登录验证
*
* @author ruoyi
*/
@RestController
public
class
SysLoginController
{
@Autowired
private
SysLoginService
loginService
;
@Autowired
private
ISysMenuService
menuService
;
@Autowired
private
SysPermissionService
permissionService
;
/**
* 登录方法
*
* @param loginBody 登录信息
* @return 结果
*/
@PostMapping
(
"/login"
)
public
AjaxResult
login
(
@RequestBody
LoginBody
loginBody
)
{
AjaxResult
ajax
=
AjaxResult
.
success
();
// 生成令牌
String
token
=
loginService
.
login
(
loginBody
.
getUsername
(),
loginBody
.
getPassword
(),
loginBody
.
getCode
(),
loginBody
.
getUuid
());
ajax
.
put
(
Constants
.
TOKEN
,
token
);
return
ajax
;
}
/**
* 获取用户信息
*
* @return 用户信息
*/
@GetMapping
(
"getInfo"
)
public
AjaxResult
getInfo
()
{
SysUser
user
=
SecurityUtils
.
getLoginUser
().
getUser
();
// 角色集合
Set
<
String
>
roles
=
permissionService
.
getRolePermission
(
user
);
// 权限集合
Set
<
String
>
permissions
=
permissionService
.
getMenuPermission
(
user
);
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"user"
,
user
);
ajax
.
put
(
"roles"
,
roles
);
ajax
.
put
(
"permissions"
,
permissions
);
return
ajax
;
}
/**
* 获取路由信息
*
* @return 路由信息
*/
@GetMapping
(
"getRouters"
)
public
AjaxResult
getRouters
()
{
Long
userId
=
SecurityUtils
.
getUserId
();
List
<
SysMenu
>
menus
=
menuService
.
selectMenuTreeByUserId
(
userId
);
return
AjaxResult
.
success
(
menuService
.
buildMenus
(
menus
));
}
}
share-front/src/main/java/share/web/controller/system/SysMenuController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.constant.UserConstants
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysMenu
;
import
share.common.enums.BusinessType
;
import
share.common.utils.StringUtils
;
import
share.system.service.ISysMenuService
;
/**
* 菜单信息
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/menu"
)
public
class
SysMenuController
extends
BaseController
{
@Autowired
private
ISysMenuService
menuService
;
/**
* 获取菜单列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:menu:list')"
)
@GetMapping
(
"/list"
)
public
AjaxResult
list
(
SysMenu
menu
)
{
List
<
SysMenu
>
menus
=
menuService
.
selectMenuList
(
menu
,
getUserId
());
return
success
(
menus
);
}
/**
* 根据菜单编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:menu:query')"
)
@GetMapping
(
value
=
"/{menuId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
menuId
)
{
return
success
(
menuService
.
selectMenuById
(
menuId
));
}
/**
* 获取菜单下拉树列表
*/
@GetMapping
(
"/treeselect"
)
public
AjaxResult
treeselect
(
SysMenu
menu
)
{
List
<
SysMenu
>
menus
=
menuService
.
selectMenuList
(
menu
,
getUserId
());
return
success
(
menuService
.
buildMenuTreeSelect
(
menus
));
}
/**
* 加载对应角色菜单列表树
*/
@GetMapping
(
value
=
"/roleMenuTreeselect/{roleId}"
)
public
AjaxResult
roleMenuTreeselect
(
@PathVariable
(
"roleId"
)
Long
roleId
)
{
List
<
SysMenu
>
menus
=
menuService
.
selectMenuList
(
getUserId
());
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"checkedKeys"
,
menuService
.
selectMenuListByRoleId
(
roleId
));
ajax
.
put
(
"menus"
,
menuService
.
buildMenuTreeSelect
(
menus
));
return
ajax
;
}
/**
* 新增菜单
*/
@PreAuthorize
(
"@ss.hasPermi('system:menu:add')"
)
@Log
(
title
=
"菜单管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysMenu
menu
)
{
if
(!
menuService
.
checkMenuNameUnique
(
menu
))
{
return
error
(
"新增菜单'"
+
menu
.
getMenuName
()
+
"'失败,菜单名称已存在"
);
}
else
if
(
UserConstants
.
YES_FRAME
.
equals
(
menu
.
getIsFrame
())
&&
!
StringUtils
.
ishttp
(
menu
.
getPath
()))
{
return
error
(
"新增菜单'"
+
menu
.
getMenuName
()
+
"'失败,地址必须以http(s)://开头"
);
}
menu
.
setCreateBy
(
getUsername
());
return
toAjax
(
menuService
.
insertMenu
(
menu
));
}
/**
* 修改菜单
*/
@PreAuthorize
(
"@ss.hasPermi('system:menu:edit')"
)
@Log
(
title
=
"菜单管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysMenu
menu
)
{
if
(!
menuService
.
checkMenuNameUnique
(
menu
))
{
return
error
(
"修改菜单'"
+
menu
.
getMenuName
()
+
"'失败,菜单名称已存在"
);
}
else
if
(
UserConstants
.
YES_FRAME
.
equals
(
menu
.
getIsFrame
())
&&
!
StringUtils
.
ishttp
(
menu
.
getPath
()))
{
return
error
(
"修改菜单'"
+
menu
.
getMenuName
()
+
"'失败,地址必须以http(s)://开头"
);
}
else
if
(
menu
.
getMenuId
().
equals
(
menu
.
getParentId
()))
{
return
error
(
"修改菜单'"
+
menu
.
getMenuName
()
+
"'失败,上级菜单不能选择自己"
);
}
menu
.
setUpdateBy
(
getUsername
());
return
toAjax
(
menuService
.
updateMenu
(
menu
));
}
/**
* 删除菜单
*/
@PreAuthorize
(
"@ss.hasPermi('system:menu:remove')"
)
@Log
(
title
=
"菜单管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{menuId}"
)
public
AjaxResult
remove
(
@PathVariable
(
"menuId"
)
Long
menuId
)
{
if
(
menuService
.
hasChildByMenuId
(
menuId
))
{
return
warn
(
"存在子菜单,不允许删除"
);
}
if
(
menuService
.
checkMenuExistRole
(
menuId
))
{
return
warn
(
"菜单已分配,不允许删除"
);
}
return
toAjax
(
menuService
.
deleteMenuById
(
menuId
));
}
}
\ No newline at end of file
share-front/src/main/java/share/web/controller/system/SysNoticeController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.system.domain.SysNotice
;
import
share.system.service.ISysNoticeService
;
/**
* 公告 信息操作处理
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/notice"
)
public
class
SysNoticeController
extends
BaseController
{
@Autowired
private
ISysNoticeService
noticeService
;
/**
* 获取通知公告列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:notice:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysNotice
notice
)
{
startPage
();
List
<
SysNotice
>
list
=
noticeService
.
selectNoticeList
(
notice
);
return
getDataTable
(
list
);
}
/**
* 根据通知公告编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:notice:query')"
)
@GetMapping
(
value
=
"/{noticeId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
noticeId
)
{
return
success
(
noticeService
.
selectNoticeById
(
noticeId
));
}
/**
* 新增通知公告
*/
@PreAuthorize
(
"@ss.hasPermi('system:notice:add')"
)
@Log
(
title
=
"通知公告"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysNotice
notice
)
{
notice
.
setCreateBy
(
getUsername
());
return
toAjax
(
noticeService
.
insertNotice
(
notice
));
}
/**
* 修改通知公告
*/
@PreAuthorize
(
"@ss.hasPermi('system:notice:edit')"
)
@Log
(
title
=
"通知公告"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysNotice
notice
)
{
notice
.
setUpdateBy
(
getUsername
());
return
toAjax
(
noticeService
.
updateNotice
(
notice
));
}
/**
* 删除通知公告
*/
@PreAuthorize
(
"@ss.hasPermi('system:notice:remove')"
)
@Log
(
title
=
"通知公告"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{noticeIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
noticeIds
)
{
return
toAjax
(
noticeService
.
deleteNoticeByIds
(
noticeIds
));
}
}
share-front/src/main/java/share/web/controller/system/SysPostController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.domain.SysPost
;
import
share.system.service.ISysPostService
;
/**
* 岗位信息操作处理
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/post"
)
public
class
SysPostController
extends
BaseController
{
@Autowired
private
ISysPostService
postService
;
/**
* 获取岗位列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:post:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysPost
post
)
{
startPage
();
List
<
SysPost
>
list
=
postService
.
selectPostList
(
post
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"岗位管理"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:post:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysPost
post
)
{
List
<
SysPost
>
list
=
postService
.
selectPostList
(
post
);
ExcelUtil
<
SysPost
>
util
=
new
ExcelUtil
<
SysPost
>(
SysPost
.
class
);
util
.
exportExcel
(
response
,
list
,
"岗位数据"
);
}
/**
* 根据岗位编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:post:query')"
)
@GetMapping
(
value
=
"/{postId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
postId
)
{
return
success
(
postService
.
selectPostById
(
postId
));
}
/**
* 新增岗位
*/
@PreAuthorize
(
"@ss.hasPermi('system:post:add')"
)
@Log
(
title
=
"岗位管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysPost
post
)
{
if
(!
postService
.
checkPostNameUnique
(
post
))
{
return
error
(
"新增岗位'"
+
post
.
getPostName
()
+
"'失败,岗位名称已存在"
);
}
else
if
(!
postService
.
checkPostCodeUnique
(
post
))
{
return
error
(
"新增岗位'"
+
post
.
getPostName
()
+
"'失败,岗位编码已存在"
);
}
post
.
setCreateBy
(
getUsername
());
return
toAjax
(
postService
.
insertPost
(
post
));
}
/**
* 修改岗位
*/
@PreAuthorize
(
"@ss.hasPermi('system:post:edit')"
)
@Log
(
title
=
"岗位管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysPost
post
)
{
if
(!
postService
.
checkPostNameUnique
(
post
))
{
return
error
(
"修改岗位'"
+
post
.
getPostName
()
+
"'失败,岗位名称已存在"
);
}
else
if
(!
postService
.
checkPostCodeUnique
(
post
))
{
return
error
(
"修改岗位'"
+
post
.
getPostName
()
+
"'失败,岗位编码已存在"
);
}
post
.
setUpdateBy
(
getUsername
());
return
toAjax
(
postService
.
updatePost
(
post
));
}
/**
* 删除岗位
*/
@PreAuthorize
(
"@ss.hasPermi('system:post:remove')"
)
@Log
(
title
=
"岗位管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{postIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
postIds
)
{
return
toAjax
(
postService
.
deletePostByIds
(
postIds
));
}
/**
* 获取岗位选择框列表
*/
@GetMapping
(
"/optionselect"
)
public
AjaxResult
optionselect
()
{
List
<
SysPost
>
posts
=
postService
.
selectPostAll
();
return
success
(
posts
);
}
}
share-front/src/main/java/share/web/controller/system/SysProfileController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
share.common.annotation.Log
;
import
share.common.config.RuoYiConfig
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysUser
;
import
share.common.core.domain.model.LoginUser
;
import
share.common.enums.BusinessType
;
import
share.common.utils.SecurityUtils
;
import
share.common.utils.StringUtils
;
import
share.common.utils.file.FileUploadUtils
;
import
share.common.utils.file.MimeTypeUtils
;
import
share.framework.web.service.TokenService
;
import
share.system.service.ISysUserService
;
/**
* 个人信息 业务处理
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/user/profile"
)
public
class
SysProfileController
extends
BaseController
{
@Autowired
private
ISysUserService
userService
;
@Autowired
private
TokenService
tokenService
;
/**
* 个人信息
*/
@GetMapping
public
AjaxResult
profile
()
{
LoginUser
loginUser
=
getLoginUser
();
SysUser
user
=
loginUser
.
getUser
();
AjaxResult
ajax
=
AjaxResult
.
success
(
user
);
ajax
.
put
(
"roleGroup"
,
userService
.
selectUserRoleGroup
(
loginUser
.
getUsername
()));
ajax
.
put
(
"postGroup"
,
userService
.
selectUserPostGroup
(
loginUser
.
getUsername
()));
return
ajax
;
}
/**
* 修改用户
*/
@Log
(
title
=
"个人信息"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
updateProfile
(
@RequestBody
SysUser
user
)
{
LoginUser
loginUser
=
getLoginUser
();
SysUser
currentUser
=
loginUser
.
getUser
();
currentUser
.
setNickName
(
user
.
getNickName
());
currentUser
.
setEmail
(
user
.
getEmail
());
currentUser
.
setPhonenumber
(
user
.
getPhonenumber
());
currentUser
.
setSex
(
user
.
getSex
());
if
(
StringUtils
.
isNotEmpty
(
user
.
getPhonenumber
())
&&
!
userService
.
checkPhoneUnique
(
currentUser
))
{
return
error
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,手机号码已存在"
);
}
if
(
StringUtils
.
isNotEmpty
(
user
.
getEmail
())
&&
!
userService
.
checkEmailUnique
(
currentUser
))
{
return
error
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,邮箱账号已存在"
);
}
if
(
userService
.
updateUserProfile
(
currentUser
)
>
0
)
{
// 更新缓存用户信息
tokenService
.
setLoginUser
(
loginUser
);
return
success
();
}
return
error
(
"修改个人信息异常,请联系管理员"
);
}
/**
* 重置密码
*/
@Log
(
title
=
"个人信息"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/updatePwd"
)
public
AjaxResult
updatePwd
(
String
oldPassword
,
String
newPassword
)
{
LoginUser
loginUser
=
getLoginUser
();
String
userName
=
loginUser
.
getUsername
();
String
password
=
loginUser
.
getPassword
();
if
(!
SecurityUtils
.
matchesPassword
(
oldPassword
,
password
))
{
return
error
(
"修改密码失败,旧密码错误"
);
}
if
(
SecurityUtils
.
matchesPassword
(
newPassword
,
password
))
{
return
error
(
"新密码不能与旧密码相同"
);
}
if
(
userService
.
resetUserPwd
(
userName
,
SecurityUtils
.
encryptPassword
(
newPassword
))
>
0
)
{
// 更新缓存用户密码
loginUser
.
getUser
().
setPassword
(
SecurityUtils
.
encryptPassword
(
newPassword
));
tokenService
.
setLoginUser
(
loginUser
);
return
success
();
}
return
error
(
"修改密码异常,请联系管理员"
);
}
/**
* 头像上传
*/
@Log
(
title
=
"用户头像"
,
businessType
=
BusinessType
.
UPDATE
)
@PostMapping
(
"/avatar"
)
public
AjaxResult
avatar
(
@RequestParam
(
"avatarfile"
)
MultipartFile
file
)
throws
Exception
{
if
(!
file
.
isEmpty
())
{
LoginUser
loginUser
=
getLoginUser
();
String
avatar
=
FileUploadUtils
.
upload
(
RuoYiConfig
.
getAvatarPath
(),
file
,
MimeTypeUtils
.
IMAGE_EXTENSION
);
if
(
userService
.
updateUserAvatar
(
loginUser
.
getUsername
(),
avatar
))
{
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"imgUrl"
,
avatar
);
// 更新缓存用户头像
loginUser
.
getUser
().
setAvatar
(
avatar
);
tokenService
.
setLoginUser
(
loginUser
);
return
ajax
;
}
}
return
error
(
"上传图片异常,请联系管理员"
);
}
}
share-front/src/main/java/share/web/controller/system/SysRegisterController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.model.RegisterBody
;
import
share.common.utils.StringUtils
;
import
share.framework.web.service.SysRegisterService
;
import
share.system.service.ISysConfigService
;
/**
* 注册验证
*
* @author ruoyi
*/
@RestController
public
class
SysRegisterController
extends
BaseController
{
@Autowired
private
SysRegisterService
registerService
;
@Autowired
private
ISysConfigService
configService
;
@PostMapping
(
"/register"
)
public
AjaxResult
register
(
@RequestBody
RegisterBody
user
)
{
if
(!(
"true"
.
equals
(
configService
.
selectConfigByKey
(
"sys.account.registerUser"
))))
{
return
error
(
"当前系统没有开启注册功能!"
);
}
String
msg
=
registerService
.
register
(
user
);
return
StringUtils
.
isEmpty
(
msg
)
?
success
()
:
error
(
msg
);
}
}
share-front/src/main/java/share/web/controller/system/SysRoleController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysDept
;
import
share.common.core.domain.entity.SysRole
;
import
share.common.core.domain.entity.SysUser
;
import
share.common.core.domain.model.LoginUser
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.StringUtils
;
import
share.common.utils.poi.ExcelUtil
;
import
share.framework.web.service.SysPermissionService
;
import
share.framework.web.service.TokenService
;
import
share.system.domain.SysUserRole
;
import
share.system.service.ISysDeptService
;
import
share.system.service.ISysRoleService
;
import
share.system.service.ISysUserService
;
/**
* 角色信息
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/role"
)
public
class
SysRoleController
extends
BaseController
{
@Autowired
private
ISysRoleService
roleService
;
@Autowired
private
TokenService
tokenService
;
@Autowired
private
SysPermissionService
permissionService
;
@Autowired
private
ISysUserService
userService
;
@Autowired
private
ISysDeptService
deptService
;
@PreAuthorize
(
"@ss.hasPermi('system:role:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysRole
role
)
{
startPage
();
List
<
SysRole
>
list
=
roleService
.
selectRoleList
(
role
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:role:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysRole
role
)
{
List
<
SysRole
>
list
=
roleService
.
selectRoleList
(
role
);
ExcelUtil
<
SysRole
>
util
=
new
ExcelUtil
<
SysRole
>(
SysRole
.
class
);
util
.
exportExcel
(
response
,
list
,
"角色数据"
);
}
/**
* 根据角色编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:query')"
)
@GetMapping
(
value
=
"/{roleId}"
)
public
AjaxResult
getInfo
(
@PathVariable
Long
roleId
)
{
roleService
.
checkRoleDataScope
(
roleId
);
return
success
(
roleService
.
selectRoleById
(
roleId
));
}
/**
* 新增角色
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:add')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysRole
role
)
{
if
(!
roleService
.
checkRoleNameUnique
(
role
))
{
return
error
(
"新增角色'"
+
role
.
getRoleName
()
+
"'失败,角色名称已存在"
);
}
else
if
(!
roleService
.
checkRoleKeyUnique
(
role
))
{
return
error
(
"新增角色'"
+
role
.
getRoleName
()
+
"'失败,角色权限已存在"
);
}
role
.
setCreateBy
(
getUsername
());
return
toAjax
(
roleService
.
insertRole
(
role
));
}
/**
* 修改保存角色
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:edit')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysRole
role
)
{
roleService
.
checkRoleAllowed
(
role
);
roleService
.
checkRoleDataScope
(
role
.
getRoleId
());
if
(!
roleService
.
checkRoleNameUnique
(
role
))
{
return
error
(
"修改角色'"
+
role
.
getRoleName
()
+
"'失败,角色名称已存在"
);
}
else
if
(!
roleService
.
checkRoleKeyUnique
(
role
))
{
return
error
(
"修改角色'"
+
role
.
getRoleName
()
+
"'失败,角色权限已存在"
);
}
role
.
setUpdateBy
(
getUsername
());
if
(
roleService
.
updateRole
(
role
)
>
0
)
{
// 更新缓存用户权限
LoginUser
loginUser
=
getLoginUser
();
if
(
StringUtils
.
isNotNull
(
loginUser
.
getUser
())
&&
!
loginUser
.
getUser
().
isAdmin
())
{
loginUser
.
setPermissions
(
permissionService
.
getMenuPermission
(
loginUser
.
getUser
()));
loginUser
.
setUser
(
userService
.
selectUserByUserName
(
loginUser
.
getUser
().
getUserName
()));
tokenService
.
setLoginUser
(
loginUser
);
}
return
success
();
}
return
error
(
"修改角色'"
+
role
.
getRoleName
()
+
"'失败,请联系管理员"
);
}
/**
* 修改保存数据权限
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:edit')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/dataScope"
)
public
AjaxResult
dataScope
(
@RequestBody
SysRole
role
)
{
roleService
.
checkRoleAllowed
(
role
);
roleService
.
checkRoleDataScope
(
role
.
getRoleId
());
return
toAjax
(
roleService
.
authDataScope
(
role
));
}
/**
* 状态修改
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:edit')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/changeStatus"
)
public
AjaxResult
changeStatus
(
@RequestBody
SysRole
role
)
{
roleService
.
checkRoleAllowed
(
role
);
roleService
.
checkRoleDataScope
(
role
.
getRoleId
());
role
.
setUpdateBy
(
getUsername
());
return
toAjax
(
roleService
.
updateRoleStatus
(
role
));
}
/**
* 删除角色
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:remove')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{roleIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
roleIds
)
{
return
toAjax
(
roleService
.
deleteRoleByIds
(
roleIds
));
}
/**
* 获取角色选择框列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:query')"
)
@GetMapping
(
"/optionselect"
)
public
AjaxResult
optionselect
()
{
return
success
(
roleService
.
selectRoleAll
());
}
/**
* 查询已分配用户角色列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:list')"
)
@GetMapping
(
"/authUser/allocatedList"
)
public
TableDataInfo
allocatedList
(
SysUser
user
)
{
startPage
();
List
<
SysUser
>
list
=
userService
.
selectAllocatedList
(
user
);
return
getDataTable
(
list
);
}
/**
* 查询未分配用户角色列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:list')"
)
@GetMapping
(
"/authUser/unallocatedList"
)
public
TableDataInfo
unallocatedList
(
SysUser
user
)
{
startPage
();
List
<
SysUser
>
list
=
userService
.
selectUnallocatedList
(
user
);
return
getDataTable
(
list
);
}
/**
* 取消授权用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:edit')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
GRANT
)
@PutMapping
(
"/authUser/cancel"
)
public
AjaxResult
cancelAuthUser
(
@RequestBody
SysUserRole
userRole
)
{
return
toAjax
(
roleService
.
deleteAuthUser
(
userRole
));
}
/**
* 批量取消授权用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:edit')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
GRANT
)
@PutMapping
(
"/authUser/cancelAll"
)
public
AjaxResult
cancelAuthUserAll
(
Long
roleId
,
Long
[]
userIds
)
{
return
toAjax
(
roleService
.
deleteAuthUsers
(
roleId
,
userIds
));
}
/**
* 批量选择用户授权
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:edit')"
)
@Log
(
title
=
"角色管理"
,
businessType
=
BusinessType
.
GRANT
)
@PutMapping
(
"/authUser/selectAll"
)
public
AjaxResult
selectAuthUserAll
(
Long
roleId
,
Long
[]
userIds
)
{
roleService
.
checkRoleDataScope
(
roleId
);
return
toAjax
(
roleService
.
insertAuthUsers
(
roleId
,
userIds
));
}
/**
* 获取对应角色部门树列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:role:query')"
)
@GetMapping
(
value
=
"/deptTree/{roleId}"
)
public
AjaxResult
deptTree
(
@PathVariable
(
"roleId"
)
Long
roleId
)
{
AjaxResult
ajax
=
AjaxResult
.
success
();
ajax
.
put
(
"checkedKeys"
,
deptService
.
selectDeptListByRoleId
(
roleId
));
ajax
.
put
(
"depts"
,
deptService
.
selectDeptTreeList
(
new
SysDept
()));
return
ajax
;
}
}
share-front/src/main/java/share/web/controller/system/SysUserController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
system
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
share.common.annotation.Log
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.AjaxResult
;
import
share.common.core.domain.entity.SysDept
;
import
share.common.core.domain.entity.SysRole
;
import
share.common.core.domain.entity.SysUser
;
import
share.common.core.page.TableDataInfo
;
import
share.common.enums.BusinessType
;
import
share.common.utils.SecurityUtils
;
import
share.common.utils.StringUtils
;
import
share.common.utils.poi.ExcelUtil
;
import
share.system.service.ISysDeptService
;
import
share.system.service.ISysPostService
;
import
share.system.service.ISysRoleService
;
import
share.system.service.ISysUserService
;
/**
* 用户信息
*
* @author ruoyi
*/
@RestController
@RequestMapping
(
"/system/user"
)
public
class
SysUserController
extends
BaseController
{
@Autowired
private
ISysUserService
userService
;
@Autowired
private
ISysRoleService
roleService
;
@Autowired
private
ISysDeptService
deptService
;
@Autowired
private
ISysPostService
postService
;
/**
* 获取用户列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:list')"
)
@GetMapping
(
"/list"
)
public
TableDataInfo
list
(
SysUser
user
)
{
startPage
();
List
<
SysUser
>
list
=
userService
.
selectUserList
(
user
);
return
getDataTable
(
list
);
}
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
EXPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:user:export')"
)
@PostMapping
(
"/export"
)
public
void
export
(
HttpServletResponse
response
,
SysUser
user
)
{
List
<
SysUser
>
list
=
userService
.
selectUserList
(
user
);
ExcelUtil
<
SysUser
>
util
=
new
ExcelUtil
<
SysUser
>(
SysUser
.
class
);
util
.
exportExcel
(
response
,
list
,
"用户数据"
);
}
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
IMPORT
)
@PreAuthorize
(
"@ss.hasPermi('system:user:import')"
)
@PostMapping
(
"/importData"
)
public
AjaxResult
importData
(
MultipartFile
file
,
boolean
updateSupport
)
throws
Exception
{
ExcelUtil
<
SysUser
>
util
=
new
ExcelUtil
<
SysUser
>(
SysUser
.
class
);
List
<
SysUser
>
userList
=
util
.
importExcel
(
file
.
getInputStream
());
String
operName
=
getUsername
();
String
message
=
userService
.
importUser
(
userList
,
updateSupport
,
operName
);
return
success
(
message
);
}
@PostMapping
(
"/importTemplate"
)
public
void
importTemplate
(
HttpServletResponse
response
)
{
ExcelUtil
<
SysUser
>
util
=
new
ExcelUtil
<
SysUser
>(
SysUser
.
class
);
util
.
importTemplateExcel
(
response
,
"用户数据"
);
}
/**
* 根据用户编号获取详细信息
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:query')"
)
@GetMapping
(
value
=
{
"/"
,
"/{userId}"
})
public
AjaxResult
getInfo
(
@PathVariable
(
value
=
"userId"
,
required
=
false
)
Long
userId
)
{
userService
.
checkUserDataScope
(
userId
);
AjaxResult
ajax
=
AjaxResult
.
success
();
List
<
SysRole
>
roles
=
roleService
.
selectRoleAll
();
ajax
.
put
(
"roles"
,
SysUser
.
isAdmin
(
userId
)
?
roles
:
roles
.
stream
().
filter
(
r
->
!
r
.
isAdmin
()).
collect
(
Collectors
.
toList
()));
ajax
.
put
(
"posts"
,
postService
.
selectPostAll
());
if
(
StringUtils
.
isNotNull
(
userId
))
{
SysUser
sysUser
=
userService
.
selectUserById
(
userId
);
ajax
.
put
(
AjaxResult
.
DATA_TAG
,
sysUser
);
ajax
.
put
(
"postIds"
,
postService
.
selectPostListByUserId
(
userId
));
ajax
.
put
(
"roleIds"
,
sysUser
.
getRoles
().
stream
().
map
(
SysRole:
:
getRoleId
).
collect
(
Collectors
.
toList
()));
}
return
ajax
;
}
/**
* 新增用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:add')"
)
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
public
AjaxResult
add
(
@Validated
@RequestBody
SysUser
user
)
{
if
(!
userService
.
checkUserNameUnique
(
user
))
{
return
error
(
"新增用户'"
+
user
.
getUserName
()
+
"'失败,登录账号已存在"
);
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getPhonenumber
())
&&
!
userService
.
checkPhoneUnique
(
user
))
{
return
error
(
"新增用户'"
+
user
.
getUserName
()
+
"'失败,手机号码已存在"
);
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getEmail
())
&&
!
userService
.
checkEmailUnique
(
user
))
{
return
error
(
"新增用户'"
+
user
.
getUserName
()
+
"'失败,邮箱账号已存在"
);
}
user
.
setCreateBy
(
getUsername
());
user
.
setPassword
(
SecurityUtils
.
encryptPassword
(
user
.
getPassword
()));
return
toAjax
(
userService
.
insertUser
(
user
));
}
/**
* 修改用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:edit')"
)
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
public
AjaxResult
edit
(
@Validated
@RequestBody
SysUser
user
)
{
userService
.
checkUserAllowed
(
user
);
userService
.
checkUserDataScope
(
user
.
getUserId
());
if
(!
userService
.
checkUserNameUnique
(
user
))
{
return
error
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,登录账号已存在"
);
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getPhonenumber
())
&&
!
userService
.
checkPhoneUnique
(
user
))
{
return
error
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,手机号码已存在"
);
}
else
if
(
StringUtils
.
isNotEmpty
(
user
.
getEmail
())
&&
!
userService
.
checkEmailUnique
(
user
))
{
return
error
(
"修改用户'"
+
user
.
getUserName
()
+
"'失败,邮箱账号已存在"
);
}
user
.
setUpdateBy
(
getUsername
());
return
toAjax
(
userService
.
updateUser
(
user
));
}
/**
* 删除用户
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:remove')"
)
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
DELETE
)
@DeleteMapping
(
"/{userIds}"
)
public
AjaxResult
remove
(
@PathVariable
Long
[]
userIds
)
{
if
(
ArrayUtils
.
contains
(
userIds
,
getUserId
()))
{
return
error
(
"当前用户不能删除"
);
}
return
toAjax
(
userService
.
deleteUserByIds
(
userIds
));
}
/**
* 重置密码
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:resetPwd')"
)
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/resetPwd"
)
public
AjaxResult
resetPwd
(
@RequestBody
SysUser
user
)
{
userService
.
checkUserAllowed
(
user
);
userService
.
checkUserDataScope
(
user
.
getUserId
());
user
.
setPassword
(
SecurityUtils
.
encryptPassword
(
user
.
getPassword
()));
user
.
setUpdateBy
(
getUsername
());
return
toAjax
(
userService
.
resetPwd
(
user
));
}
/**
* 状态修改
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:edit')"
)
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/changeStatus"
)
public
AjaxResult
changeStatus
(
@RequestBody
SysUser
user
)
{
userService
.
checkUserAllowed
(
user
);
userService
.
checkUserDataScope
(
user
.
getUserId
());
user
.
setUpdateBy
(
getUsername
());
return
toAjax
(
userService
.
updateUserStatus
(
user
));
}
/**
* 根据用户编号获取授权角色
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:query')"
)
@GetMapping
(
"/authRole/{userId}"
)
public
AjaxResult
authRole
(
@PathVariable
(
"userId"
)
Long
userId
)
{
AjaxResult
ajax
=
AjaxResult
.
success
();
SysUser
user
=
userService
.
selectUserById
(
userId
);
List
<
SysRole
>
roles
=
roleService
.
selectRolesByUserId
(
userId
);
ajax
.
put
(
"user"
,
user
);
ajax
.
put
(
"roles"
,
SysUser
.
isAdmin
(
userId
)
?
roles
:
roles
.
stream
().
filter
(
r
->
!
r
.
isAdmin
()).
collect
(
Collectors
.
toList
()));
return
ajax
;
}
/**
* 用户授权角色
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:edit')"
)
@Log
(
title
=
"用户管理"
,
businessType
=
BusinessType
.
GRANT
)
@PutMapping
(
"/authRole"
)
public
AjaxResult
insertAuthRole
(
Long
userId
,
Long
[]
roleIds
)
{
userService
.
checkUserDataScope
(
userId
);
userService
.
insertUserAuth
(
userId
,
roleIds
);
return
success
();
}
/**
* 获取部门树列表
*/
@PreAuthorize
(
"@ss.hasPermi('system:user:list')"
)
@GetMapping
(
"/deptTree"
)
public
AjaxResult
deptTree
(
SysDept
dept
)
{
return
success
(
deptService
.
selectDeptTreeList
(
dept
));
}
}
share-front/src/main/java/share/web/controller/tool/TestController.java
0 → 100644
View file @
08279793
package
share
.
web
.
controller
.
tool
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.springframework.web.bind.annotation.DeleteMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PutMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
share.common.core.controller.BaseController
;
import
share.common.core.domain.R
;
import
share.common.utils.StringUtils
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiOperation
;
/**
* swagger 用户测试方法
*
* @author ruoyi
*/
@Api
(
"用户信息管理"
)
@RestController
@RequestMapping
(
"/test/user"
)
public
class
TestController
extends
BaseController
{
private
final
static
Map
<
Integer
,
UserEntity
>
users
=
new
LinkedHashMap
<
Integer
,
UserEntity
>();
{
users
.
put
(
1
,
new
UserEntity
(
1
,
"admin"
,
"admin123"
,
"15888888888"
));
users
.
put
(
2
,
new
UserEntity
(
2
,
"ry"
,
"admin123"
,
"15666666666"
));
}
@ApiOperation
(
"获取用户列表"
)
@GetMapping
(
"/list"
)
public
R
<
List
<
UserEntity
>>
userList
()
{
List
<
UserEntity
>
userList
=
new
ArrayList
<
UserEntity
>(
users
.
values
());
return
R
.
ok
(
userList
);
}
@ApiOperation
(
"获取用户详细"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户ID"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"path"
,
dataTypeClass
=
Integer
.
class
)
@GetMapping
(
"/{userId}"
)
public
R
<
UserEntity
>
getUser
(
@PathVariable
Integer
userId
)
{
if
(!
users
.
isEmpty
()
&&
users
.
containsKey
(
userId
))
{
return
R
.
ok
(
users
.
get
(
userId
));
}
else
{
return
R
.
fail
(
"用户不存在"
);
}
}
@ApiOperation
(
"新增用户"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户id"
,
dataType
=
"Integer"
,
dataTypeClass
=
Integer
.
class
),
@ApiImplicitParam
(
name
=
"username"
,
value
=
"用户名称"
,
dataType
=
"String"
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"password"
,
value
=
"用户密码"
,
dataType
=
"String"
,
dataTypeClass
=
String
.
class
),
@ApiImplicitParam
(
name
=
"mobile"
,
value
=
"用户手机"
,
dataType
=
"String"
,
dataTypeClass
=
String
.
class
)
})
@PostMapping
(
"/save"
)
public
R
<
String
>
save
(
UserEntity
user
)
{
if
(
StringUtils
.
isNull
(
user
)
||
StringUtils
.
isNull
(
user
.
getUserId
()))
{
return
R
.
fail
(
"用户ID不能为空"
);
}
users
.
put
(
user
.
getUserId
(),
user
);
return
R
.
ok
();
}
@ApiOperation
(
"更新用户"
)
@PutMapping
(
"/update"
)
public
R
<
String
>
update
(
@RequestBody
UserEntity
user
)
{
if
(
StringUtils
.
isNull
(
user
)
||
StringUtils
.
isNull
(
user
.
getUserId
()))
{
return
R
.
fail
(
"用户ID不能为空"
);
}
if
(
users
.
isEmpty
()
||
!
users
.
containsKey
(
user
.
getUserId
()))
{
return
R
.
fail
(
"用户不存在"
);
}
users
.
remove
(
user
.
getUserId
());
users
.
put
(
user
.
getUserId
(),
user
);
return
R
.
ok
();
}
@ApiOperation
(
"删除用户信息"
)
@ApiImplicitParam
(
name
=
"userId"
,
value
=
"用户ID"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"path"
,
dataTypeClass
=
Integer
.
class
)
@DeleteMapping
(
"/{userId}"
)
public
R
<
String
>
delete
(
@PathVariable
Integer
userId
)
{
if
(!
users
.
isEmpty
()
&&
users
.
containsKey
(
userId
))
{
users
.
remove
(
userId
);
return
R
.
ok
();
}
else
{
return
R
.
fail
(
"用户不存在"
);
}
}
}
@ApiModel
(
value
=
"UserEntity"
,
description
=
"用户实体"
)
class
UserEntity
{
@ApiModelProperty
(
"用户ID"
)
private
Integer
userId
;
@ApiModelProperty
(
"用户名称"
)
private
String
username
;
@ApiModelProperty
(
"用户密码"
)
private
String
password
;
@ApiModelProperty
(
"用户手机"
)
private
String
mobile
;
public
UserEntity
()
{
}
public
UserEntity
(
Integer
userId
,
String
username
,
String
password
,
String
mobile
)
{
this
.
userId
=
userId
;
this
.
username
=
username
;
this
.
password
=
password
;
this
.
mobile
=
mobile
;
}
public
Integer
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Integer
userId
)
{
this
.
userId
=
userId
;
}
public
String
getUsername
()
{
return
username
;
}
public
void
setUsername
(
String
username
)
{
this
.
username
=
username
;
}
public
String
getPassword
()
{
return
password
;
}
public
void
setPassword
(
String
password
)
{
this
.
password
=
password
;
}
public
String
getMobile
()
{
return
mobile
;
}
public
void
setMobile
(
String
mobile
)
{
this
.
mobile
=
mobile
;
}
}
share-front/src/main/java/share/web/core/config/SwaggerConfig.java
0 → 100644
View file @
08279793
package
share
.
web
.
core
.
config
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
share.common.config.RuoYiConfig
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.models.auth.In
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.service.ApiKey
;
import
springfox.documentation.service.AuthorizationScope
;
import
springfox.documentation.service.Contact
;
import
springfox.documentation.service.SecurityReference
;
import
springfox.documentation.service.SecurityScheme
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spi.service.contexts.SecurityContext
;
import
springfox.documentation.spring.web.plugins.Docket
;
/**
* Swagger2的接口配置
*
* @author ruoyi
*/
@Configuration
public
class
SwaggerConfig
{
/** 系统基础配置 */
@Autowired
private
RuoYiConfig
ruoyiConfig
;
/** 是否开启swagger */
@Value
(
"${swagger.enabled}"
)
private
boolean
enabled
;
/** 设置请求的统一前缀 */
@Value
(
"${swagger.pathMapping}"
)
private
String
pathMapping
;
/**
* 创建API
*/
@Bean
public
Docket
createRestApi
()
{
return
new
Docket
(
DocumentationType
.
OAS_30
)
// 是否启用Swagger
.
enable
(
enabled
)
// 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
.
apiInfo
(
apiInfo
())
// 设置哪些接口暴露给Swagger展示
.
select
()
// 扫描所有有注解的api,用这种方式更灵活
.
apis
(
RequestHandlerSelectors
.
withMethodAnnotation
(
ApiOperation
.
class
))
// 扫描指定包中的swagger注解
// .apis(RequestHandlerSelectors.basePackage("share.project.tool.swagger"))
// 扫描所有 .apis(RequestHandlerSelectors.any())
.
paths
(
PathSelectors
.
any
())
.
build
()
/* 设置安全模式,swagger可以设置访问token */
.
securitySchemes
(
securitySchemes
())
.
securityContexts
(
securityContexts
())
.
pathMapping
(
pathMapping
);
}
/**
* 安全模式,这里指定token通过Authorization头请求头传递
*/
private
List
<
SecurityScheme
>
securitySchemes
()
{
List
<
SecurityScheme
>
apiKeyList
=
new
ArrayList
<
SecurityScheme
>();
apiKeyList
.
add
(
new
ApiKey
(
"Authorization"
,
"Authorization"
,
In
.
HEADER
.
toValue
()));
return
apiKeyList
;
}
/**
* 安全上下文
*/
private
List
<
SecurityContext
>
securityContexts
()
{
List
<
SecurityContext
>
securityContexts
=
new
ArrayList
<>();
securityContexts
.
add
(
SecurityContext
.
builder
()
.
securityReferences
(
defaultAuth
())
.
operationSelector
(
o
->
o
.
requestMappingPattern
().
matches
(
"/.*"
))
.
build
());
return
securityContexts
;
}
/**
* 默认的安全上引用
*/
private
List
<
SecurityReference
>
defaultAuth
()
{
AuthorizationScope
authorizationScope
=
new
AuthorizationScope
(
"global"
,
"accessEverything"
);
AuthorizationScope
[]
authorizationScopes
=
new
AuthorizationScope
[
1
];
authorizationScopes
[
0
]
=
authorizationScope
;
List
<
SecurityReference
>
securityReferences
=
new
ArrayList
<>();
securityReferences
.
add
(
new
SecurityReference
(
"Authorization"
,
authorizationScopes
));
return
securityReferences
;
}
/**
* 添加摘要信息
*/
private
ApiInfo
apiInfo
()
{
// 用ApiInfoBuilder进行定制
return
new
ApiInfoBuilder
()
// 设置标题
.
title
(
"标题:若依管理系统_接口文档"
)
// 描述
.
description
(
"描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块..."
)
// 作者信息
.
contact
(
new
Contact
(
ruoyiConfig
.
getName
(),
null
,
null
))
// 版本
.
version
(
"版本号:"
+
ruoyiConfig
.
getVersion
())
.
build
();
}
}
share-front/src/main/resources/META-INF/spring-devtools.properties
0 → 100644
View file @
08279793
restart.include.json
=
/com.alibaba.fastjson.*.jar
\ No newline at end of file
share-front/src/main/resources/application-druid.yml
0 → 100644
View file @
08279793
# 数据源配置
spring
:
datasource
:
type
:
com.alibaba.druid.pool.DruidDataSource
driverClassName
:
com.mysql.cj.jdbc.Driver
druid
:
# 主库数据源
master
:
url
:
jdbc:mysql://129.211.46.84:3306/sharedb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
username
:
root
password
:
whxz2019
# 从库数据源
slave
:
# 从数据源开关/默认关闭
enabled
:
false
url
:
username
:
password
:
# 初始连接数
initialSize
:
5
# 最小连接池数量
minIdle
:
10
# 最大连接池数量
maxActive
:
20
# 配置获取连接等待超时的时间
maxWait
:
60000
# 配置连接超时时间
connectTimeout
:
30000
# 配置网络超时时间
socketTimeout
:
60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis
:
60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis
:
300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis
:
900000
# 配置检测连接是否有效
validationQuery
:
SELECT 1 FROM DUAL
testWhileIdle
:
true
testOnBorrow
:
false
testOnReturn
:
false
webStatFilter
:
enabled
:
true
statViewServlet
:
enabled
:
true
# 设置白名单,不填则允许所有访问
allow
:
url-pattern
:
/druid/*
# 控制台管理用户名和密码
login-username
:
ruoyi
login-password
:
123456
filter
:
stat
:
enabled
:
true
# 慢SQL记录
log-slow-sql
:
true
slow-sql-millis
:
1000
merge-sql
:
true
wall
:
config
:
multi-statement-allow
:
true
\ No newline at end of file
share-front/src/main/resources/application.yml
0 → 100644
View file @
08279793
# 项目相关配置
ruoyi
:
# 名称
name
:
Share
# 版本
version
:
3.8.6
# 版权年份
copyrightYear
:
2023
# 实例演示开关
demoEnabled
:
true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile
:
/home/share/uploadPath
# 获取ip地址开关
addressEnabled
:
false
# 验证码类型 math 数字计算 char 字符验证
captchaType
:
char
# 开发环境配置
server
:
# 服务器的HTTP端口,默认为8080
port
:
8882
servlet
:
# 应用的访问路径
context-path
:
/
tomcat
:
# tomcat的URI编码
uri-encoding
:
UTF-8
# 连接数满后的排队数,默认为100
accept-count
:
1000
threads
:
# tomcat最大线程数,默认为200
max
:
800
# Tomcat启动初始化的线程数,默认值10
min-spare
:
100
# 日志配置
logging
:
level
:
share
:
debug
org.springframework
:
warn
# 用户配置
user
:
password
:
# 密码最大错误次数
maxRetryCount
:
5
# 密码锁定时间(默认10分钟)
lockTime
:
10
# Spring配置
spring
:
# 资源信息
messages
:
# 国际化资源文件路径
basename
:
i18n/messages
profiles
:
active
:
druid
# 文件上传
servlet
:
multipart
:
# 单个文件大小
max-file-size
:
10MB
# 设置总上传的文件大小
max-request-size
:
20MB
# 服务模块
devtools
:
restart
:
# 热部署开关
enabled
:
true
# redis 配置
redis
:
# 地址
host
:
129.211.46.84
# 端口,默认为6379
port
:
6379
# 数据库索引
database
:
0
# 密码
password
:
whxz2019
# 连接超时时间
timeout
:
10s
lettuce
:
pool
:
# 连接池中的最小空闲连接
min-idle
:
0
# 连接池中的最大空闲连接
max-idle
:
8
# 连接池的最大数据库连接数
max-active
:
8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait
:
-1ms
# token配置
token
:
# 令牌自定义标识
header
:
Authorization
# 令牌密钥
secret
:
abcdefghijklmnopqrstuvwxyz
# 令牌有效期(默认30分钟)
expireTime
:
30
# MyBatis配置
mybatis
:
# 搜索指定包别名
typeAliasesPackage
:
share.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations
:
classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation
:
classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper
:
helperDialect
:
mysql
supportMethodsArguments
:
true
params
:
count=countSql
# Swagger配置
swagger
:
# 是否开启swagger
enabled
:
true
# 请求前缀
pathMapping
:
/dev-api
# 防止XSS攻击
xss
:
# 过滤开关
enabled
:
true
# 排除链接(多个用逗号分隔)
excludes
:
/system/notice
# 匹配链接
urlPatterns
:
/system/*,/monitor/*,/tool/*
share-front/src/main/resources/banner.txt
0 → 100644
View file @
08279793
share-front/src/main/resources/i18n/messages.properties
0 → 100644
View file @
08279793
#错误消息
not.null
=
* 必须填写
user.jcaptcha.error
=
验证码错误
user.jcaptcha.expire
=
验证码已失效
user.not.exists
=
用户不存在/密码错误
user.password.not.match
=
用户不存在/密码错误
user.password.retry.limit.count
=
密码输入错误{0}次
user.password.retry.limit.exceed
=
密码输入错误{0}次,帐户锁定{1}分钟
user.password.delete
=
对不起,您的账号已被删除
user.blocked
=
用户已封禁,请联系管理员
role.blocked
=
角色已封禁,请联系管理员
login.blocked
=
很遗憾,访问IP已被列入系统黑名单
user.logout.success
=
退出成功
length.not.valid
=
长度必须在{min}到{max}个字符之间
user.username.not.valid
=
* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
user.password.not.valid
=
* 5-50个字符
user.email.not.valid
=
邮箱格式错误
user.mobile.phone.number.not.valid
=
手机号格式错误
user.login.success
=
登录成功
user.register.success
=
注册成功
user.notfound
=
请重新登录
user.forcelogout
=
管理员强制退出,请重新登录
user.unknown.error
=
未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize
=
上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
upload.filename.exceed.length
=
上传的文件名最长{0}个字符
##权限
no.permission
=
您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission
=
您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission
=
您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission
=
您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission
=
您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission
=
您没有查看数据的权限,请联系管理员添加权限 [{0}]
share-front/src/main/resources/logback.xml
0 → 100644
View file @
08279793
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property
name=
"log.path"
value=
"/home/gxpt/logs"
/>
<!-- 日志输出格式 -->
<property
name=
"log.pattern"
value=
"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"
/>
<!-- 控制台输出 -->
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender
name=
"file_info"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${log.path}/sys-info.log
</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 日志文件名格式 -->
<fileNamePattern>
${log.path}/sys-info.%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<!-- 过滤的级别 -->
<level>
INFO
</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>
ACCEPT
</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<appender
name=
"file_error"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${log.path}/sys-error.log
</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 日志文件名格式 -->
<fileNamePattern>
${log.path}/sys-error.%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<!-- 过滤的级别 -->
<level>
ERROR
</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>
ACCEPT
</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>
DENY
</onMismatch>
</filter>
</appender>
<!-- 用户访问日志输出 -->
<appender
name=
"sys-user"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<file>
${log.path}/sys-user.log
</file>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 按天回滚 daily -->
<fileNamePattern>
${log.path}/sys-user.%d{yyyy-MM-dd}.log
</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
${log.pattern}
</pattern>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger
name=
"share"
level=
"info"
/>
<!-- Spring日志级别控制 -->
<logger
name=
"org.springframework"
level=
"warn"
/>
<root
level=
"info"
>
<appender-ref
ref=
"console"
/>
</root>
<!--系统操作日志-->
<root
level=
"info"
>
<appender-ref
ref=
"file_info"
/>
<appender-ref
ref=
"file_error"
/>
</root>
<!--系统用户操作日志-->
<logger
name=
"sys-user"
level=
"info"
>
<appender-ref
ref=
"sys-user"
/>
</logger>
</configuration>
\ No newline at end of file
share-front/src/main/resources/mybatis/mybatis-config.xml
0 → 100644
View file @
08279793
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 全局参数 -->
<settings>
<!-- 使全局的映射器启用或禁用缓存 -->
<setting
name=
"cacheEnabled"
value=
"true"
/>
<!-- 允许JDBC 支持自动生成主键 -->
<setting
name=
"useGeneratedKeys"
value=
"true"
/>
<!-- 配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新 -->
<setting
name=
"defaultExecutorType"
value=
"SIMPLE"
/>
<!-- 指定 MyBatis 所用日志的具体实现 -->
<setting
name=
"logImpl"
value=
"SLF4J"
/>
<!-- 使用驼峰命名法转换字段 -->
<!-- <setting name="mapUnderscoreToCamelCase" value="true"/> -->
</settings>
</configuration>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment