Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
sparrowzz
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
sgool
sparrowzz
Commits
962d323a
Commit
962d323a
authored
Nov 12, 2021
by
xiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加web后台;调整代码结构
parent
da172559
隐藏空白字符变更
内嵌
并排
正在显示
46 个修改的文件
包含
672 行增加
和
5 行删除
+672
-5
jinyun/availCap/build.gradle
+0
-0
jinyun/availCap/src/main/java/com/jinyun/cap/AvailCapMain.java
+1
-1
jinyun/availCap/src/main/java/com/jinyun/cap/AvailCapModel.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/CimConstants.java
+1
-1
jinyun/availCap/src/main/java/com/jinyun/cap/HistoryData.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LineCurrentData.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LineParamData.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LinePassRate.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LoadPos.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LoadPosSeason.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LoadPosSw.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/LoadPosTf.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/MaxMinAvailCap.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/SqliteDb.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/SwitchData.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/TFData.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/TfOverLoadRate.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/TfUb.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/WarnLine.java
+2
-0
jinyun/availCap/src/main/java/com/jinyun/cap/WarnTf.java
+2
-0
jinyun/availCap/src/main/kotlin/com/jinyun/cap/JyPowerSystem.kt
+1
-1
jinyun/availCap/src/main/kotlin/com/jinyun/cap/MeasureProvider.kt
+1
-0
jinyun/availCap/src/main/kotlin/com/jinyun/cap/PowerSystem.kt
+1
-1
jinyun/availCap/src/main/resources/log4j.properties
+0
-0
jinyun/availCap/src/main/resources/log4j2.xml
+0
-0
jinyun/web/build.gradle
+32
-0
jinyun/web/src/main/java/com/jinyun/web/DemoApplication.java
+15
-0
jinyun/web/src/main/java/com/jinyun/web/MybatisConfig.java
+30
-0
jinyun/web/src/main/java/com/jinyun/web/SwaggerConfig.java
+46
-0
jinyun/web/src/main/java/com/jinyun/web/annotation/PassToken.java
+13
-0
jinyun/web/src/main/java/com/jinyun/web/annotation/UserLoginToken.java
+12
-0
jinyun/web/src/main/java/com/jinyun/web/config/InterceptorConfig.java
+20
-0
jinyun/web/src/main/java/com/jinyun/web/controller/LoginController.java
+82
-0
jinyun/web/src/main/java/com/jinyun/web/controller/MainPageController.java
+47
-0
jinyun/web/src/main/java/com/jinyun/web/dao/SysUserMapper.java
+14
-0
jinyun/web/src/main/java/com/jinyun/web/entity/User.java
+14
-0
jinyun/web/src/main/java/com/jinyun/web/interceptor/AuthenticationInterceptor.java
+85
-0
jinyun/web/src/main/java/com/jinyun/web/interceptor/GloablExceptionHandler.java
+21
-0
jinyun/web/src/main/java/com/jinyun/web/service/CapService.java
+102
-0
jinyun/web/src/main/java/com/jinyun/web/service/SysUserService.java
+11
-0
jinyun/web/src/main/java/com/jinyun/web/service/TokenService.java
+21
-0
jinyun/web/src/main/java/com/jinyun/web/service/UserService.java
+23
-0
jinyun/web/src/main/java/com/jinyun/web/service/impl/SysUserServiceImpl.java
+20
-0
jinyun/web/src/main/resources/application.yaml
+8
-0
jinyun/web/src/main/resources/sqlmap/SysUserMapper.xml
+15
-0
settings.gradle
+2
-1
没有找到文件。
availCap/build.gradle
→
jinyun/
availCap/build.gradle
查看文件 @
962d323a
File moved
availCap/src/main/java
/AvailCapMain.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/AvailCapMain.java
查看文件 @
962d323a
//package availCap;
package
com
.
jinyun
.
cap
;
//package availCap;
import
java.io.File
;
import
java.io.FileInputStream
;
...
...
availCap/src/main/java
/AvailCapModel.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/AvailCapModel.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
org.jgrapht.UndirectedGraph
;
import
zju.devmodel.MapObject
;
...
...
availCap/src/main/java
/CimConstants.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/CimConstants.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
interface
CimConstants
{
...
...
availCap/src/main/java
/HistoryData.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/HistoryData.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
...
...
availCap/src/main/java
/LineCurrentData.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LineCurrentData.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
java.sql.Timestamp
;
public
class
LineCurrentData
{
...
...
availCap/src/main/java
/LineParamData.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LineParamData.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
LineParamData
{
String
devName
;
String
pole1
;
...
...
availCap/src/main/java
/LinePassRate.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LinePassRate.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
LinePassRate
{
String
feederName
;
...
...
availCap/src/main/java
/LoadPos.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LoadPos.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
availCap/src/main/java
/LoadPosSeason.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LoadPosSeason.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
LoadPosSeason
{
int
loadId
;
...
...
availCap/src/main/java
/LoadPosSw.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LoadPosSw.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
LoadPosSw
{
String
canIn
;
String
swName
;
...
...
availCap/src/main/java
/LoadPosTf.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/LoadPosTf.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
LoadPosTf
{
String
canIn
;
String
tfName
;
// 最优接入位置公变的mRID
...
...
availCap/src/main/java
/MaxMinAvailCap.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/MaxMinAvailCap.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
MaxMinAvailCap
{
String
feederName
;
double
availCap
;
...
...
availCap/src/main/java
/SqliteDb.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/SqliteDb.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
...
...
availCap/src/main/java
/SwitchData.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/SwitchData.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
java.sql.Timestamp
;
public
class
SwitchData
{
...
...
availCap/src/main/java
/TFData.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/TFData.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
import
java.sql.Timestamp
;
public
class
TFData
{
...
...
availCap/src/main/java
/TfOverLoadRate.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/TfOverLoadRate.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
TfOverLoadRate
{
String
feederName
;
...
...
availCap/src/main/java
/TfUb.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/TfUb.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
TfUb
{
int
loadState
;
String
devName
;
...
...
availCap/src/main/java
/WarnLine.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/WarnLine.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
WarnLine
{
int
loadState
;
...
...
availCap/src/main/java
/WarnTf.java
→
jinyun/availCap/src/main/java/com/jinyun/cap
/WarnTf.java
查看文件 @
962d323a
package
com
.
jinyun
.
cap
;
public
class
WarnTf
{
int
loadState
;
...
...
availCap/src/main/kotlin
/JyPowerSystem.kt
→
jinyun/availCap/src/main/kotlin/com/jinyun/cap
/JyPowerSystem.kt
查看文件 @
962d323a
package
com.jinyun.cap;
import
org.jgrapht.UndirectedGraph
import
org.jgrapht.graph.SimpleGraph
import
org.jgrapht.graph.Subgraph
...
...
availCap/src/main/kotlin
/MeasureProvider.kt
→
jinyun/availCap/src/main/kotlin/com/jinyun/cap
/MeasureProvider.kt
查看文件 @
962d323a
package
com.jinyun.cap;
import
zju.measure.DiscreteInfo
import
zju.measure.MeasureInfo
...
...
availCap/src/main/kotlin
/PowerSystem.kt
→
jinyun/availCap/src/main/kotlin/com/jinyun/cap
/PowerSystem.kt
查看文件 @
962d323a
package
com.jinyun.cap;
import
org.jgrapht.UndirectedGraph
import
org.jgrapht.alg.ConnectivityInspector
import
org.jgrapht.graph.SimpleGraph
...
...
availCap/src/main/resources/log4j.properties
→
jinyun/
availCap/src/main/resources/log4j.properties
查看文件 @
962d323a
File moved
availCap/src/main/resources/log4j2.xml
→
jinyun/
availCap/src/main/resources/log4j2.xml
查看文件 @
962d323a
File moved
jinyun/web/build.gradle
0 → 100644
查看文件 @
962d323a
plugins
{
id
'org.springframework.boot'
version
'2.1.6.RELEASE'
id
'io.spring.dependency-management'
version
'1.0.11.RELEASE'
id
'java'
}
group
=
'com.example'
version
=
'0.0.1-SNAPSHOT'
sourceCompatibility
=
'1.8'
repositories
{
mavenCentral
()
}
dependencies
{
compile
project
(
':jinyun:availCap'
)
implementation
'org.springframework.boot:spring-boot-starter'
implementation
'org.springframework.boot:spring-boot-starter-web'
implementation
group:
'io.springfox'
,
name:
'springfox-swagger2'
,
version:
'2.9.2'
implementation
group:
'io.springfox'
,
name:
'springfox-swagger-ui'
,
version:
'2.9.2'
implementation
group:
'com.auth0'
,
name:
'java-jwt'
,
version:
'3.18.2'
compile
group:
'org.mybatis.spring.boot'
,
name:
'mybatis-spring-boot-starter'
,
version:
'2.2.0'
compile
group:
'org.projectlombok'
,
name:
'lombok'
,
version:
'1.16.22'
compile
'com.alibaba:fastjson:1.2.4'
runtimeOnly
'org.xerial:sqlite-jdbc:3.28.0'
testImplementation
'org.springframework.boot:spring-boot-starter-test'
}
test
{
useJUnitPlatform
()
}
jinyun/web/src/main/java/com/jinyun/web/DemoApplication.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
@EnableSwagger2
@SpringBootApplication
public
class
DemoApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
DemoApplication
.
class
,
args
);
}
}
jinyun/web/src/main/java/com/jinyun/web/MybatisConfig.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
;
import
javax.sql.DataSource
;
import
org.apache.ibatis.session.SqlSessionFactory
;
import
org.mybatis.spring.SqlSessionFactoryBean
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.io.support.PathMatchingResourcePatternResolver
;
@Configuration
@MapperScan
(
"com.jinyun.**.dao"
)
// 扫描DAO
public
class
MybatisConfig
{
@Autowired
private
DataSource
dataSource
;
@Bean
public
SqlSessionFactory
sqlSessionFactory
()
throws
Exception
{
SqlSessionFactoryBean
sessionFactory
=
new
SqlSessionFactoryBean
();
sessionFactory
.
setDataSource
(
dataSource
);
sessionFactory
.
setTypeAliasesPackage
(
"com.jinyun.**.model"
);
// 扫描Model
PathMatchingResourcePatternResolver
resolver
=
new
PathMatchingResourcePatternResolver
();
sessionFactory
.
setMapperLocations
(
resolver
.
getResources
(
"classpath*:**/sqlmap/*.xml"
));
// 扫描映射文件
return
sessionFactory
.
getObject
();
}
}
jinyun/web/src/main/java/com/jinyun/web/SwaggerConfig.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
springfox.documentation.builders.ApiInfoBuilder
;
import
springfox.documentation.builders.ParameterBuilder
;
import
springfox.documentation.builders.PathSelectors
;
import
springfox.documentation.builders.RequestHandlerSelectors
;
import
springfox.documentation.schema.ModelRef
;
import
springfox.documentation.service.ApiInfo
;
import
springfox.documentation.service.Parameter
;
import
springfox.documentation.spi.DocumentationType
;
import
springfox.documentation.spring.web.plugins.Docket
;
import
springfox.documentation.swagger2.annotations.EnableSwagger2
;
import
java.util.ArrayList
;
import
java.util.List
;
@Configuration
@EnableSwagger2
public
class
SwaggerConfig
{
@Bean
public
Docket
createRestApi
(){
// 添加请求参数,我们这里把token作为请求头部参数传入后端
ParameterBuilder
parameterBuilder
=
new
ParameterBuilder
();
List
<
Parameter
>
parameters
=
new
ArrayList
<
Parameter
>();
parameterBuilder
.
name
(
"token"
).
description
(
"令牌"
)
.
modelRef
(
new
ModelRef
(
"string"
)).
parameterType
(
"header"
).
required
(
false
).
build
();
parameters
.
add
(
parameterBuilder
.
build
());
return
new
Docket
(
DocumentationType
.
SWAGGER_2
).
apiInfo
(
apiInfo
()).
select
()
.
apis
(
RequestHandlerSelectors
.
any
()).
paths
(
PathSelectors
.
any
())
.
build
().
globalOperationParameters
(
parameters
);
// return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
// .select()
// .apis(RequestHandlerSelectors.any())
// .paths(PathSelectors.any()).build();
}
private
ApiInfo
apiInfo
(){
return
new
ApiInfoBuilder
()
.
title
(
"SpringBoot API Doc"
)
.
description
(
"This is a restful api document of Spring Boot."
)
.
version
(
"1.0"
)
.
build
();
}
}
jinyun/web/src/main/java/com/jinyun/web/annotation/PassToken.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
@Target
({
ElementType
.
METHOD
,
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
PassToken
{
boolean
required
()
default
true
;
}
\ No newline at end of file
jinyun/web/src/main/java/com/jinyun/web/annotation/UserLoginToken.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
@Target
({
ElementType
.
METHOD
,
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
UserLoginToken
{
boolean
required
()
default
true
;
}
jinyun/web/src/main/java/com/jinyun/web/config/InterceptorConfig.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
config
;
import
com.jinyun.web.interceptor.AuthenticationInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
@Configuration
public
class
InterceptorConfig
implements
WebMvcConfigurer
{
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
authenticationInterceptor
())
.
addPathPatterns
(
"/**"
);
// 拦截所有请求,通过判断是否有 @LoginRequired 注解 决定是否需要登录
}
@Bean
public
AuthenticationInterceptor
authenticationInterceptor
()
{
return
new
AuthenticationInterceptor
();
}
}
jinyun/web/src/main/java/com/jinyun/web/controller/LoginController.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.jinyun.web.annotation.UserLoginToken
;
import
com.jinyun.web.entity.User
;
import
com.jinyun.web.service.TokenService
;
import
com.jinyun.web.service.UserService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.File
;
import
java.io.IOException
;
@Api
(
value
=
"desc of class"
,
tags
=
"Login"
,
description
=
"登录"
)
@RestController
@RequestMapping
(
"login"
)
public
class
LoginController
{
@Autowired
UserService
userService
;
@Autowired
TokenService
tokenService
;
//登录
@PostMapping
(
"/login"
)
public
Object
login
(
User
user
){
JSONObject
jsonObject
=
new
JSONObject
();
User
userForBase
=
userService
.
findByUsername
(
user
);
if
(
userForBase
==
null
){
jsonObject
.
put
(
"message"
,
"登录失败,用户不存在"
);
return
jsonObject
;
}
else
{
if
(!
userForBase
.
getPassword
().
equals
(
user
.
getPassword
())){
jsonObject
.
put
(
"message"
,
"登录失败,密码错误"
);
return
jsonObject
;
}
else
{
String
token
=
tokenService
.
getToken
(
userForBase
);
jsonObject
.
put
(
"token"
,
token
);
jsonObject
.
put
(
"user"
,
userForBase
);
return
jsonObject
;
}
}
}
@UserLoginToken
@GetMapping
(
"/getMessage"
)
public
String
getMessage
(){
return
"你已通过验证"
;
}
@ApiOperation
(
"数据导入"
)
@PostMapping
(
"/upload"
)
public
String
upload
(
@RequestBody
MultipartFile
[]
files
)
throws
IOException
{
for
(
MultipartFile
file:
files
){
String
fileName
=
file
.
getOriginalFilename
();
String
target
=
"d:/"
;
File
dest
=
new
File
(
target
+
fileName
);
try
{
file
.
transferTo
(
dest
);
System
.
out
.
println
(
"上传成功"
);;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
IllegalStateException
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
"上传失败"
);;
}
// String fileName = file.getOriginalFilename();
// String target = "d:/";
// File dest = new File(target+fileName);
// try {
// file.transferTo(dest);
// return "上传成功";
// } catch (IOException e) {
// e.printStackTrace();
// } catch (IllegalStateException e) {
// e.printStackTrace();
// }
return
"上传成功"
;
}
}
jinyun/web/src/main/java/com/jinyun/web/controller/MainPageController.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
controller
;
import
com.jinyun.web.service.CapService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
@Api
(
value
=
"desc of class"
,
tags
=
"MainPage"
,
description
=
"首页"
)
@RestController
@RequestMapping
(
"mainPage"
)
public
class
MainPageController
{
@Autowired
CapService
capService
;
@ApiOperation
(
value
=
"电网统计字段"
,
notes
=
""
)
@RequestMapping
(
value
=
"/gridStatistics"
,
method
=
RequestMethod
.
GET
)
public
Object
gridStatistics
()
{
Map
<
String
,
Object
>
result
=
capService
.
gridStatistics
();
return
result
;
}
@ApiOperation
(
value
=
"低裕度预警统计"
,
notes
=
""
)
@RequestMapping
(
value
=
"/lowMarginWarnStatistics"
,
method
=
RequestMethod
.
GET
)
public
Object
lowMarginWarnStatistics
()
{
Map
<
String
,
Object
>
result
=
capService
.
lowMarginWarnStatistics
();
return
result
;
}
@ApiOperation
(
value
=
"配变三相不平衡度"
,
notes
=
""
)
@RequestMapping
(
value
=
"/transformerUnbalance"
,
method
=
RequestMethod
.
GET
)
public
Object
transformerUnbalance
()
{
Map
<
String
,
Object
>
result
=
capService
.
transformerUnbalance
();
return
result
;
}
@ApiOperation
(
value
=
"配变三相不平衡度列表"
,
notes
=
""
)
@RequestMapping
(
value
=
"/transformerUnbalanceList"
,
method
=
RequestMethod
.
GET
)
public
Object
transformerUnbalanceList
()
{
Map
<
String
,
Object
>
result
=
capService
.
transformerUnbalanceList
();
return
result
;
}
}
jinyun/web/src/main/java/com/jinyun/web/dao/SysUserMapper.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
dao
;
import
com.jinyun.web.entity.User
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
public
interface
SysUserMapper
{
public
List
<
Map
<
String
,
Object
>>
selectAll
();
User
findByUsername
(
@Param
(
"username"
)
String
username
);
User
findUserById
(
@Param
(
"Id"
)
String
Id
);
}
jinyun/web/src/main/java/com/jinyun/web/entity/User.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
User
{
String
Id
;
String
username
;
String
password
;
}
jinyun/web/src/main/java/com/jinyun/web/interceptor/AuthenticationInterceptor.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
interceptor
;
import
com.auth0.jwt.JWT
;
import
com.auth0.jwt.JWTVerifier
;
import
com.auth0.jwt.algorithms.Algorithm
;
import
com.auth0.jwt.exceptions.JWTDecodeException
;
import
com.auth0.jwt.exceptions.JWTVerificationException
;
import
com.jinyun.web.annotation.PassToken
;
import
com.jinyun.web.annotation.UserLoginToken
;
import
com.jinyun.web.entity.User
;
import
com.jinyun.web.service.UserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.lang.reflect.Method
;
/**
* @author jinbin
* @date 2018-07-08 20:41
*/
public
class
AuthenticationInterceptor
implements
HandlerInterceptor
{
@Autowired
UserService
userService
;
@Override
public
boolean
preHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
object
)
throws
Exception
{
String
token
=
httpServletRequest
.
getHeader
(
"token"
);
// 从 http 请求头中取出 token
// 如果不是映射到方法直接通过
if
(!(
object
instanceof
HandlerMethod
)){
return
true
;
}
HandlerMethod
handlerMethod
=(
HandlerMethod
)
object
;
Method
method
=
handlerMethod
.
getMethod
();
//检查是否有passtoken注释,有则跳过认证
if
(
method
.
isAnnotationPresent
(
PassToken
.
class
))
{
PassToken
passToken
=
method
.
getAnnotation
(
PassToken
.
class
);
if
(
passToken
.
required
())
{
return
true
;
}
}
//检查有没有需要用户权限的注解
if
(
method
.
isAnnotationPresent
(
UserLoginToken
.
class
))
{
UserLoginToken
userLoginToken
=
method
.
getAnnotation
(
UserLoginToken
.
class
);
if
(
userLoginToken
.
required
())
{
// 执行认证
if
(
token
==
null
)
{
throw
new
RuntimeException
(
"无token,请重新登录"
);
}
// 获取 token 中的 user id
String
userId
;
try
{
userId
=
JWT
.
decode
(
token
).
getAudience
().
get
(
0
);
}
catch
(
JWTDecodeException
j
)
{
throw
new
RuntimeException
(
"401"
);
}
User
user
=
userService
.
findUserById
(
userId
);
if
(
user
==
null
)
{
throw
new
RuntimeException
(
"用户不存在,请重新登录"
);
}
// 验证 token
JWTVerifier
jwtVerifier
=
JWT
.
require
(
Algorithm
.
HMAC256
(
user
.
getPassword
())).
build
();
try
{
jwtVerifier
.
verify
(
token
);
}
catch
(
JWTVerificationException
e
)
{
throw
new
RuntimeException
(
"401"
);
}
return
true
;
}
}
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
ModelAndView
modelAndView
)
throws
Exception
{
}
@Override
public
void
afterCompletion
(
HttpServletRequest
httpServletRequest
,
HttpServletResponse
httpServletResponse
,
Object
o
,
Exception
e
)
throws
Exception
{
}
}
jinyun/web/src/main/java/com/jinyun/web/interceptor/GloablExceptionHandler.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
interceptor
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
@ControllerAdvice
public
class
GloablExceptionHandler
{
@ResponseBody
@ExceptionHandler
(
Exception
.
class
)
public
Object
handleException
(
Exception
e
)
{
String
msg
=
e
.
getMessage
();
if
(
msg
==
null
||
msg
.
equals
(
""
))
{
msg
=
"服务器出错"
;
}
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"message"
,
msg
);
return
jsonObject
;
}
}
jinyun/web/src/main/java/com/jinyun/web/service/CapService.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
service
;
import
com.jinyun.cap.SqliteDb
;
import
com.jinyun.cap.TfUb
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author jinbin
* @date 2018-07-08 20:52
*/
@Service
(
"CapService"
)
public
class
CapService
{
static
String
allFeederNameTable
=
"所有馈线名称"
;
static
String
allPsWarnTable
=
"所有馈线预警设备"
;
static
String
allPsLineWarnTable
=
"所有馈线线路预警设备"
;
static
String
allPsTfWarnTable
=
"所有馈线公变预警设备"
;
static
String
maxMinAvailCapTable
=
"最大最小可开放容量线路"
;
static
String
lineITableName
=
"电流"
;
static
String
switchTableName
=
"开关"
;
static
String
lineParamTableName
=
"参数"
;
static
String
oneLineParamTableName
=
"单线参数"
;
static
String
transformerTableName
=
"公变"
;
static
String
tfParamTableName
=
"公变参数"
;
static
String
availCapTableName
=
"可接入容量"
;
static
String
swToLineTableName
=
"开关线路对应"
;
static
String
swToTfTableName
=
"开关公变对应"
;
static
String
tfToLineTableName
=
"公变线路对应"
;
static
String
lineWarnTableName
=
"线路预警"
;
static
String
tfWarnTableName
=
"公变预警"
;
static
String
substationTableName
=
"变电站"
;
static
String
tfMonthUbTableName
=
"公变月不平衡度"
;
static
String
linePassRateTableName
=
"线路合格率"
;
static
String
tfOverLoadRateTableName
=
"公变越限率"
;
static
String
feederTableName
=
"馈线名称"
;
static
String
loadPosTable
=
"负荷接入位置"
;
static
String
allPsDbFile
=
"D:\\others\\yunqi\\项目\\缙云项目\\test\\allPsDb\\allPs.db"
;
static
String
feederDbFile
=
"D:\\others\\yunqi\\项目\\缙云项目\\test\\feederDb"
;
public
Map
<
String
,
Object
>
gridStatistics
()
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"110StationCount"
,
25
);
result
.
put
(
"35StationCount"
,
36
);
result
.
put
(
"10kVBusCount"
,
67
);
result
.
put
(
"busCount"
,
156
);
result
.
put
(
"transformerCount"
,
300
);
return
result
;
}
public
Map
<
String
,
Object
>
lowMarginWarnStatistics
()
{
SqliteDb
sqliteDb
=
new
SqliteDb
(
allPsDbFile
);
int
hardLineNum
=
sqliteDb
.
queryWarnDevNum
(
allPsWarnTable
,
1
,
1
);
int
overLineNum
=
sqliteDb
.
queryWarnDevNum
(
allPsWarnTable
,
2
,
1
);
int
hardTfNum
=
sqliteDb
.
queryWarnDevNum
(
allPsWarnTable
,
1
,
2
);
int
overTfNum
=
sqliteDb
.
queryWarnDevNum
(
allPsWarnTable
,
2
,
2
);
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
result
.
put
(
"hardLineNum"
,
hardLineNum
);
result
.
put
(
"overLineNum"
,
overLineNum
);
result
.
put
(
"hardTfNum"
,
hardTfNum
);
result
.
put
(
"overTfNum"
,
overTfNum
);
return
result
;
}
public
Map
<
String
,
Object
>
transformerUnbalance
()
{
SqliteDb
allPsDb
=
new
SqliteDb
(
allPsDbFile
);
List
<
String
>
feeders
=
allPsDb
.
queryAllFeederName
(
allFeederNameTable
);
// 查询馈线名称
List
<
TfUb
>
tfUbs
=
new
LinkedList
<>();
for
(
String
feeder
:
feeders
)
{
SqliteDb
sqliteDb
=
new
SqliteDb
(
feederDbFile
+
"\\"
+
feeder
+
".db"
);
tfUbs
.
addAll
(
sqliteDb
.
queryTfMonthUb
(
feeder
+
tfMonthUbTableName
));
}
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
int
count
=
0
;
for
(
TfUb
tfUb:
tfUbs
){
if
(
count
==
3
)
break
;
if
(
result
.
containsKey
(
tfUb
.
getDevName
()))
continue
;
result
.
put
(
tfUb
.
getDevName
(),
tfUb
.
getUb
());
count
++;
}
return
result
;
}
public
Map
<
String
,
Object
>
transformerUnbalanceList
()
{
SqliteDb
allPsDb
=
new
SqliteDb
(
allPsDbFile
);
List
<
String
>
feeders
=
allPsDb
.
queryAllFeederName
(
allFeederNameTable
);
// 查询馈线名称
List
<
TfUb
>
tfUbs
=
new
LinkedList
<>();
for
(
String
feeder
:
feeders
)
{
SqliteDb
sqliteDb
=
new
SqliteDb
(
feederDbFile
+
"\\"
+
feeder
+
".db"
);
tfUbs
.
addAll
(
sqliteDb
.
queryTfMonthUb
(
feeder
+
tfMonthUbTableName
));
}
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
for
(
TfUb
tfUb:
tfUbs
){
result
.
put
(
tfUb
.
getmRID
(),
tfUb
);
}
return
result
;
}
}
jinyun/web/src/main/java/com/jinyun/web/service/SysUserService.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
service
;
import
java.util.List
;
import
java.util.Map
;
public
interface
SysUserService
{
List
<
Map
<
String
,
Object
>>
findAll
();
}
\ No newline at end of file
jinyun/web/src/main/java/com/jinyun/web/service/TokenService.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
service
;
import
com.auth0.jwt.JWT
;
import
com.auth0.jwt.algorithms.Algorithm
;
import
com.jinyun.web.entity.User
;
import
org.springframework.stereotype.Service
;
/**
* @author jinbin
* @date 2018-07-08 21:04
*/
@Service
(
"TokenService"
)
public
class
TokenService
{
public
String
getToken
(
User
user
)
{
String
token
=
""
;
token
=
JWT
.
create
().
withAudience
(
user
.
getId
())
// 将 user id 保存到 token 里面
.
sign
(
Algorithm
.
HMAC256
(
user
.
getPassword
()));
// 以 password 作为 token 的密钥
return
token
;
}
}
jinyun/web/src/main/java/com/jinyun/web/service/UserService.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
service
;
import
com.jinyun.web.dao.SysUserMapper
;
import
com.jinyun.web.entity.User
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* @author jinbin
* @date 2018-07-08 20:52
*/
@Service
(
"UserService"
)
public
class
UserService
{
@Autowired
SysUserMapper
userMapper
;
public
User
findByUsername
(
User
user
){
return
userMapper
.
findByUsername
(
user
.
getUsername
());
}
public
User
findUserById
(
String
userId
)
{
return
userMapper
.
findUserById
(
userId
);
}
}
jinyun/web/src/main/java/com/jinyun/web/service/impl/SysUserServiceImpl.java
0 → 100644
查看文件 @
962d323a
package
com
.
jinyun
.
web
.
service
.
impl
;
import
com.jinyun.web.dao.SysUserMapper
;
import
com.jinyun.web.service.SysUserService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
@Service
public
class
SysUserServiceImpl
implements
SysUserService
{
@Autowired
SysUserMapper
sysUserMapper
;
@Override
public
List
<
Map
<
String
,
Object
>>
findAll
()
{
return
sysUserMapper
.
selectAll
();
}
}
jinyun/web/src/main/resources/application.yaml
0 → 100644
查看文件 @
962d323a
server
:
port
:
8080
spring
:
datasource
:
driverClassName
:
org.sqlite.JDBC
url
:
jdbc:sqlite:D:/test.db
username
:
password
:
jinyun/web/src/main/resources/sqlmap/SysUserMapper.xml
0 → 100644
查看文件 @
962d323a
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.jinyun.web.dao.SysUserMapper"
>
<select
id=
"selectAll"
resultType=
"map"
>
select * from test
</select>
<select
id=
"findUserById"
resultType=
"com.jinyun.web.entity.User"
>
select * from user where id=#{Id}
</select>
<select
id=
"findByUsername"
resultType=
"com.jinyun.web.entity.User"
>
select * from user where username=#{username}
</select>
</mapper>
\ No newline at end of file
settings.gradle
查看文件 @
962d323a
include
'availCap'
include
'jinyun:availCap'
,
'jinyun:web'
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论