Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
civil-bigdata
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
civil
civil-bigdata
Commits
18a10678
Commit
18a10678
authored
Jan 29, 2023
by
wqc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
app数据修改
parent
9060fe45
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
2862 additions
and
2770 deletions
+2862
-2770
api-server/src/main/java/com/zq/api/controller/ApiController.java
+149
-149
api-server/src/main/java/com/zq/api/feign/PortalFeign.java
+79
-76
api-server/src/main/java/com/zq/api/service/ApiService.java
+139
-139
api-server/src/main/java/com/zq/api/service/IApiLogic.java
+120
-117
api-server/src/main/java/com/zq/api/service/impl/ApiV100Logic.java
+197
-192
portal-server/src/main/java/com/zq/portal/controller/app/HyStatsController.java
+47
-41
portal-server/src/main/java/com/zq/portal/dao/HyStatsDao.java
+79
-72
portal-server/src/main/java/com/zq/portal/entity/VMarriageStats.java
+98
-98
portal-server/src/main/java/com/zq/portal/manager/PortalCacheKeys.java
+151
-147
portal-server/src/main/java/com/zq/portal/service/HyStatsService.java
+434
-393
portal-server/src/main/java/com/zq/portal/vo/HYVo.java
+184
-184
portal-server/src/main/java/com/zq/portal/vo/SearchReqVo.java
+29
-25
portal-server/src/main/resources/mapper/CjStatsMapper.xml
+159
-157
portal-server/src/main/resources/mapper/HyStatsMapper.xml
+194
-179
portal-server/src/main/resources/mapper/ShjzStatsDao.xml
+242
-242
resource-server/src/main/java/com/zq/resource/controller/DeptController.java
+86
-84
sys-server/src/main/java/com/zq/system/modules/system/service/VerifyService.java
+43
-43
sys-server/src/main/java/com/zq/system/modules/system/service/impl/UserServiceImpl.java
+432
-432
No files found.
api-server/src/main/java/com/zq/api/controller/ApiController.java
View file @
18a10678
package
com
.
zq
.
api
.
controller
;
package
com
.
zq
.
api
.
controller
;
import
cn.hutool.core.exceptions.ExceptionUtil
;
import
cn.hutool.core.exceptions.ExceptionUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
import
cn.hutool.extra.servlet.ServletUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.zq.api.constant.ApiCodeEnum
;
import
com.zq.api.constant.ApiCodeEnum
;
import
com.zq.api.constant.ApiMethod
;
import
com.zq.api.constant.ApiMethod
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.service.ApiService
;
import
com.zq.api.service.ApiService
;
import
com.zq.api.service.IApiLogic
;
import
com.zq.api.service.IApiLogic
;
import
com.zq.api.utils.ApiUtils
;
import
com.zq.api.utils.ApiUtils
;
import
com.zq.common.utils.ThrowableUtil
;
import
com.zq.common.utils.ThrowableUtil
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.ResultVo
;
import
feign.FeignException
;
import
feign.FeignException
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.core.annotation.AnnotationUtils
;
import
org.springframework.core.annotation.AnnotationUtils
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@Api
(
tags
=
"API接口"
)
@Api
(
tags
=
"API接口"
)
@RestController
@RestController
@RequiredArgsConstructor
@RequiredArgsConstructor
@RequestMapping
(
"/api"
)
@RequestMapping
(
"/api"
)
public
class
ApiController
{
public
class
ApiController
{
private
final
ApiService
apiService
;
private
final
ApiService
apiService
;
/**
/**
* 获取信息入口
* 获取信息入口
* <p>
* <p>
* 2016年10月3日 下午1:38:27
* 2016年10月3日 下午1:38:27
*/
*/
@RequestMapping
(
"/action"
)
@RequestMapping
(
"/action"
)
public
ApiResp
action
(
@RequestHeader
(
required
=
false
)
String
appId
,
@RequestHeader
(
required
=
false
)
String
appSecret
,
@RequestHeader
(
required
=
false
)
String
Authorization
,
HttpServletRequest
request
)
{
public
ApiResp
action
(
@RequestHeader
(
required
=
false
)
String
appId
,
@RequestHeader
(
required
=
false
)
String
appSecret
,
@RequestHeader
(
required
=
false
)
String
Authorization
,
HttpServletRequest
request
)
{
long
start
=
System
.
currentTimeMillis
();
long
start
=
System
.
currentTimeMillis
();
ApiForm
form
=
ServletUtil
.
toBean
(
request
,
ApiForm
.
class
,
true
);
ApiForm
form
=
ServletUtil
.
toBean
(
request
,
ApiForm
.
class
,
true
);
// 不处理Request Method:OPTIONS的请求
// 不处理Request Method:OPTIONS的请求
if
(
request
.
getMethod
().
equals
(
"OPTIONS"
))
{
if
(
request
.
getMethod
().
equals
(
"OPTIONS"
))
{
return
ApiUtils
.
getSuccessResp
(
form
);
return
ApiUtils
.
getSuccessResp
(
form
);
}
}
form
.
setType
(
2
);
form
.
setType
(
1
);
String
method
=
form
.
getMethod
();
String
method
=
form
.
getMethod
();
if
(
StrUtil
.
isBlank
(
method
))
{
if
(
StrUtil
.
isBlank
(
method
))
{
method
=
request
.
getParameter
(
"method"
);
method
=
request
.
getParameter
(
"method"
);
form
.
setMethod
(
method
);
form
.
setMethod
(
method
);
}
}
String
stackTrace
=
""
;
String
stackTrace
=
""
;
ApiResp
resp
;
ApiResp
resp
;
try
{
try
{
// 身份验证
// 身份验证
resp
=
apiService
.
auth
(
form
,
appId
,
appSecret
,
Authorization
);
resp
=
apiService
.
auth
(
form
,
appId
,
appSecret
,
Authorization
);
if
(
resp
.
isSuccess
())
{
if
(
resp
.
isSuccess
())
{
//解析业务参数
//解析业务参数
if
(!
form
.
parseBizContent
())
{
if
(!
form
.
parseBizContent
())
{
return
ApiUtils
.
getParamError
(
form
);
return
ApiUtils
.
getParamError
(
form
);
}
}
// 调用接口方法
// 调用接口方法
resp
=
apiService
.
action
(
form
);
resp
=
apiService
.
action
(
form
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
stackTrace
=
ThrowableUtil
.
getStackTrace
(
e
);
stackTrace
=
ThrowableUtil
.
getStackTrace
(
e
);
// 判断指定异常是否来自或者包含指定异常
// 判断指定异常是否来自或者包含指定异常
if
(
ExceptionUtil
.
isFromOrSuppressedThrowable
(
e
,
FeignException
.
Unauthorized
.
class
))
{
if
(
ExceptionUtil
.
isFromOrSuppressedThrowable
(
e
,
FeignException
.
Unauthorized
.
class
))
{
resp
=
ApiUtils
.
toApiResp
(
form
,
ResultVo
.
fail
(
401
,
"Unauthorized"
));
resp
=
ApiUtils
.
toApiResp
(
form
,
ResultVo
.
fail
(
401
,
"Unauthorized"
));
}
else
if
(
stackTrace
.
contains
(
"Load balancer does not have available server for client"
))
{
}
else
if
(
stackTrace
.
contains
(
"Load balancer does not have available server for client"
))
{
resp
=
ApiUtils
.
getServiceNotAvailableError
(
form
);
resp
=
ApiUtils
.
getServiceNotAvailableError
(
form
);
}
else
if
(
stackTrace
.
contains
(
"Connection refused: connect executing"
))
{
}
else
if
(
stackTrace
.
contains
(
"Connection refused: connect executing"
))
{
resp
=
ApiUtils
.
getServiceNotAvailableError
(
form
);
resp
=
ApiUtils
.
getServiceNotAvailableError
(
form
);
}
else
{
}
else
{
resp
=
ApiUtils
.
getMethodHandlerError
(
form
);
resp
=
ApiUtils
.
getMethodHandlerError
(
form
);
}
}
}
}
// 没有数据输出空
// 没有数据输出空
resp
=
resp
==
null
?
new
ApiResp
(
form
)
:
resp
;
resp
=
resp
==
null
?
new
ApiResp
(
form
)
:
resp
;
String
logType
=
resp
.
isSuccess
()
?
"INFO"
:
"400"
.
equals
(
resp
.
getCode
())
?
"WARN"
:
"ERROR"
;
String
logType
=
resp
.
isSuccess
()
?
"INFO"
:
"400"
.
equals
(
resp
.
getCode
())
?
"WARN"
:
"ERROR"
;
// 如果是500错误, 服务会返回错误的堆栈信息
// 如果是500错误, 服务会返回错误的堆栈信息
if
(
resp
.
getCode
().
equals
(
ApiCodeEnum
.
SERVER_ERROR
.
code
()))
{
if
(
resp
.
getCode
().
equals
(
ApiCodeEnum
.
SERVER_ERROR
.
code
()))
{
stackTrace
=
resp
.
getMsg
();
stackTrace
=
resp
.
getMsg
();
resp
.
setMsg
(
ApiCodeEnum
.
SERVER_ERROR
.
msg
());
resp
.
setMsg
(
ApiCodeEnum
.
SERVER_ERROR
.
msg
());
}
}
// 调试日志
// 调试日志
if
(
ApiUtils
.
DEBUG
)
{
if
(
ApiUtils
.
DEBUG
)
{
System
.
out
.
println
(
"API DEBUG ACTION \n[from="
+
form
+
"]"
+
"\n[resp="
+
JSON
.
toJSONString
(
resp
)
+
"]"
+
"\n[time="
+
(
System
.
currentTimeMillis
()
-
start
)
+
"ms]"
);
System
.
out
.
println
(
"API DEBUG ACTION \n[from="
+
form
+
"]"
+
"\n[resp="
+
JSON
.
toJSONString
(
resp
)
+
"]"
+
"\n[time="
+
(
System
.
currentTimeMillis
()
-
start
)
+
"ms]"
);
}
}
String
clientIP
=
ServletUtil
.
getClientIP
(
request
);
String
clientIP
=
ServletUtil
.
getClientIP
(
request
);
apiService
.
addLog
(
form
,
clientIP
,
logType
,
resp
.
getMsg
(),
stackTrace
,
System
.
currentTimeMillis
()
-
start
);
apiService
.
addLog
(
form
,
clientIP
,
logType
,
resp
.
getMsg
(),
stackTrace
,
System
.
currentTimeMillis
()
-
start
);
return
resp
;
return
resp
;
}
}
/**
/**
* 开关调试日志
* 开关调试日志
* <p>
* <p>
* 2016年10月3日 下午5:47:46
* 2016年10月3日 下午5:47:46
*/
*/
@RequestMapping
(
"/debug"
)
@RequestMapping
(
"/debug"
)
public
ApiResp
debug
(
HttpServletRequest
request
)
{
public
ApiResp
debug
(
HttpServletRequest
request
)
{
ApiForm
from
=
ServletUtil
.
toBean
(
request
,
ApiForm
.
class
,
true
);
ApiForm
from
=
ServletUtil
.
toBean
(
request
,
ApiForm
.
class
,
true
);
ApiUtils
.
DEBUG
=
!
ApiUtils
.
DEBUG
;
ApiUtils
.
DEBUG
=
!
ApiUtils
.
DEBUG
;
return
new
ApiResp
(
from
).
setData
(
ApiUtils
.
DEBUG
);
return
new
ApiResp
(
from
).
setData
(
ApiUtils
.
DEBUG
);
}
}
@RequestMapping
(
"/method"
)
@RequestMapping
(
"/method"
)
public
ApiResp
getAllMethod
(
@RequestParam
(
required
=
false
)
String
service
,
@RequestParam
(
required
=
false
)
String
name
)
{
public
ApiResp
getAllMethod
(
@RequestParam
(
required
=
false
)
String
service
,
@RequestParam
(
required
=
false
)
String
name
)
{
List
<
Map
<
String
,
Object
>>
methodList
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
methodList
=
new
ArrayList
<>();
Method
[]
methods
=
IApiLogic
.
class
.
getMethods
();
Method
[]
methods
=
IApiLogic
.
class
.
getMethods
();
for
(
Method
method
:
methods
)
{
for
(
Method
method
:
methods
)
{
Class
<?>[]
params
=
method
.
getParameterTypes
();
Class
<?>[]
params
=
method
.
getParameterTypes
();
if
(
params
.
length
==
1
&&
(
params
[
0
]
==
ApiForm
.
class
))
{
if
(
params
.
length
==
1
&&
(
params
[
0
]
==
ApiForm
.
class
))
{
ApiMethod
apiMethod
=
AnnotationUtils
.
getAnnotation
(
method
,
ApiMethod
.
class
);
ApiMethod
apiMethod
=
AnnotationUtils
.
getAnnotation
(
method
,
ApiMethod
.
class
);
if
(
StrUtil
.
isNotBlank
(
service
))
{
if
(
StrUtil
.
isNotBlank
(
service
))
{
if
(
apiMethod
==
null
||
!
apiMethod
.
service
().
equals
(
service
))
{
if
(
apiMethod
==
null
||
!
apiMethod
.
service
().
equals
(
service
))
{
continue
;
continue
;
}
}
}
}
if
(
StrUtil
.
isNotBlank
(
name
))
{
if
(
StrUtil
.
isNotBlank
(
name
))
{
if
((
apiMethod
==
null
||
!
apiMethod
.
value
().
contains
(
name
))
&&
!
method
.
getName
().
toLowerCase
().
contains
(
name
.
toLowerCase
()))
{
if
((
apiMethod
==
null
||
!
apiMethod
.
value
().
contains
(
name
))
&&
!
method
.
getName
().
toLowerCase
().
contains
(
name
.
toLowerCase
()))
{
continue
;
continue
;
}
}
}
}
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
Map
<
String
,
Object
>
data
=
new
HashMap
<>();
data
.
put
(
"value"
,
method
.
getName
());
data
.
put
(
"value"
,
method
.
getName
());
data
.
put
(
"name"
,
apiMethod
==
null
?
""
:
apiMethod
.
value
());
data
.
put
(
"name"
,
apiMethod
==
null
?
""
:
apiMethod
.
value
());
data
.
put
(
"service"
,
apiMethod
==
null
?
""
:
apiMethod
.
service
());
data
.
put
(
"service"
,
apiMethod
==
null
?
""
:
apiMethod
.
service
());
methodList
.
add
(
data
);
methodList
.
add
(
data
);
}
}
}
}
return
ApiUtils
.
toApiResp
(
new
ApiForm
(),
ResultVo
.
success
(
methodList
));
return
ApiUtils
.
toApiResp
(
new
ApiForm
(),
ResultVo
.
success
(
methodList
));
}
}
}
}
api-server/src/main/java/com/zq/api/feign/PortalFeign.java
View file @
18a10678
package
com
.
zq
.
api
.
feign
;
package
com
.
zq
.
api
.
feign
;
import
com.zq.api.config.FeignConfig
;
import
com.zq.api.config.FeignConfig
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.ResultVo
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
import
java.util.Map
;
@FeignClient
(
name
=
"PORTAL-SERVER"
,
configuration
=
FeignConfig
.
class
)
//指定调用哪个微服务
@FeignClient
(
name
=
"PORTAL-SERVER"
,
configuration
=
FeignConfig
.
class
)
//指定调用哪个微服务
@RequestMapping
(
"/portal/app"
)
@RequestMapping
(
"/portal/app"
)
public
interface
PortalFeign
{
public
interface
PortalFeign
{
@GetMapping
(
"/area/getChildAreaList"
)
@GetMapping
(
"/area/getChildAreaList"
)
ResultVo
getChildAreaList
(
@RequestParam
String
areaCode
);
ResultVo
getChildAreaList
(
@RequestParam
String
areaCode
);
@PostMapping
(
"/stats/getMarriageStats"
)
@PostMapping
(
"/stats/getMarriageStats"
)
ResultVo
getMarriageStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getMarriageStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAreaUnderMarriageStatsList"
)
@PostMapping
(
"/stats/getYearMarriedCouple"
)
ResultVo
getAreaUnderMarriageStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getYearMarriedCouple
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getFivesYearMarriageLine"
)
@PostMapping
(
"/stats/getAreaUnderMarriageStatsList"
)
ResultVo
getFivesYearMarriageLine
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAreaUnderMarriageStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAreaDisabledIssueStats"
)
@PostMapping
(
"/stats/getFivesYearMarriageLine"
)
ResultVo
getAreaDisabledIssueStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getFivesYearMarriageLine
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getYearDisabledIssueStats"
)
@PostMapping
(
"/stats/getAreaDisabledIssueStats"
)
ResultVo
getYearDisabledIssueStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAreaDisabledIssueStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAreaShjzStats"
)
@PostMapping
(
"/stats/getYearDisabledIssueStats"
)
ResultVo
getAreaShjzStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getYearDisabledIssueStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getFivesYearShjzAchieveStats"
)
@PostMapping
(
"/stats/getAreaShjzStats"
)
ResultVo
getFivesYearShjzAchieveStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAreaShjzStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getFivesYearShjzProvideStats"
)
@PostMapping
(
"/stats/getFivesYearShjzAchieveStats"
)
ResultVo
getFivesYearShjzProvideStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getFivesYearShjzAchieveStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getSoorganStats"
)
@PostMapping
(
"/stats/getFivesYearShjzProvideStats"
)
ResultVo
getSoorganStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getFivesYearShjzProvideStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAreaUnderSoorganStatsList"
)
@PostMapping
(
"/stats/getSoorganStats"
)
ResultVo
getAreaUnderSoorganStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getSoorganStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAppMapStats"
)
@PostMapping
(
"/stats/getAreaUnderSoorganStatsList"
)
ResultVo
getAppMapStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAreaUnderSoorganStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/gatherSearch"
)
@PostMapping
(
"/stats/getAppMapStats"
)
ResultVo
gatherSearch
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAppMapStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAgencyChildStats"
)
@PostMapping
(
"/stats/gatherSearch"
)
ResultVo
getAgencyChildStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
gatherSearch
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAgencyChildStatsList"
)
@PostMapping
(
"/stats/getAgencyChildStats"
)
ResultVo
getAgencyChildStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAgencyChildStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getCremationStats"
)
@PostMapping
(
"/stats/getAgencyChildStatsList"
)
ResultVo
getCremationStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAgencyChildStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getCremationStatsList"
)
@PostMapping
(
"/stats/getCremationStats"
)
ResultVo
getCremationStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getCremationStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getCremationStatsById"
)
@PostMapping
(
"/stats/getCremationStatsList"
)
ResultVo
getCremationStatsById
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getCremationStatsList
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getAreaUnderNumStats"
)
@PostMapping
(
"/stats/getCremationStatsById"
)
ResultVo
getAreaUnderNumStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getCremationStatsById
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getEnjoySubsidyStats"
)
@PostMapping
(
"/stats/getAreaUnderNumStats"
)
ResultVo
getEnjoySubsidyStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getAreaUnderNumStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
@PostMapping
(
"/stats/getEnjoySumStatsData"
)
@PostMapping
(
"/stats/getEnjoySubsidyStats"
)
ResultVo
getEnjoySumStatsData
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
ResultVo
getEnjoySubsidyStats
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
}
@PostMapping
(
"/stats/getEnjoySumStatsData"
)
ResultVo
getEnjoySumStatsData
(
@RequestBody
Map
<
String
,
Object
>
paramsMap
);
}
api-server/src/main/java/com/zq/api/service/ApiService.java
View file @
18a10678
package
com
.
zq
.
api
.
service
;
package
com
.
zq
.
api
.
service
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.codec.Base64
;
import
cn.hutool.core.codec.Base64
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.core.util.URLUtil
;
import
com.zq.api.dao.ApiLogDao
;
import
com.zq.api.dao.ApiLogDao
;
import
com.zq.api.entity.ApiLog
;
import
com.zq.api.entity.ApiLog
;
import
com.zq.api.entity.ApiUser
;
import
com.zq.api.entity.ApiUser
;
import
com.zq.api.feign.SysFeign
;
import
com.zq.api.feign.SysFeign
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.utils.ApiUtils
;
import
com.zq.api.utils.ApiUtils
;
import
com.zq.api.utils.ReflectionUtils
;
import
com.zq.api.utils.ReflectionUtils
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.vo.ApiTokenVo
;
import
com.zq.common.vo.ApiTokenVo
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.ResultVo
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Method
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* @author wilmiam
* @author wilmiam
* @since 2021-09-28 15:44
* @since 2021-09-28 15:44
*/
*/
@Slf4j
@Slf4j
@Service
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
ApiService
{
public
class
ApiService
{
private
final
ApiLogDao
apiLogDao
;
private
final
ApiLogDao
apiLogDao
;
private
final
SysFeign
sysFeign
;
private
final
SysFeign
sysFeign
;
private
final
RedisUtils
redisUtils
;
private
final
RedisUtils
redisUtils
;
/**
/**
* 允许用户未登录状态下执行的方法名
* 允许用户未登录状态下执行的方法名
*/
*/
private
final
String
[]
allowMethod
=
{
"sendCode"
,
"resetPassword"
,
"phoneLogin"
,
"passwdLogin"
,
"getAppVersion"
,
"cremationSearch"
,
"marriageSearch"
,
"naturalPersonSearch"
};
private
final
String
[]
allowMethod
=
{
"sendCode"
,
"resetPassword"
,
"phoneLogin"
,
"passwdLogin"
,
"getAppVersion"
,
"cremationSearch"
,
"marriageSearch"
,
"naturalPersonSearch"
};
private
static
final
List
<
String
>
METHOD_LIST
;
private
static
final
List
<
String
>
METHOD_LIST
;
static
{
static
{
METHOD_LIST
=
methodList
();
METHOD_LIST
=
methodList
();
}
}
public
IApiLogic
getApiLogic
(
ApiForm
form
)
{
public
IApiLogic
getApiLogic
(
ApiForm
form
)
{
IApiLogic
apiLogic
=
ApiUtils
.
getApiLogic
(
form
);
IApiLogic
apiLogic
=
ApiUtils
.
getApiLogic
(
form
);
return
apiLogic
;
return
apiLogic
;
}
}
public
static
List
<
String
>
methodList
()
{
public
static
List
<
String
>
methodList
()
{
List
<
String
>
methodList
=
new
ArrayList
<>();
List
<
String
>
methodList
=
new
ArrayList
<>();
Method
[]
methods
=
IApiLogic
.
class
.
getMethods
();
Method
[]
methods
=
IApiLogic
.
class
.
getMethods
();
for
(
Method
method
:
methods
)
{
for
(
Method
method
:
methods
)
{
Class
<?>[]
params
=
method
.
getParameterTypes
();
Class
<?>[]
params
=
method
.
getParameterTypes
();
if
(
params
.
length
==
1
&&
(
params
[
0
]
==
ApiForm
.
class
))
{
if
(
params
.
length
==
1
&&
(
params
[
0
]
==
ApiForm
.
class
))
{
methodList
.
add
(
method
.
getName
());
methodList
.
add
(
method
.
getName
());
}
}
}
}
return
methodList
;
return
methodList
;
}
}
public
ApiResp
action
(
ApiForm
form
)
throws
Exception
{
public
ApiResp
action
(
ApiForm
form
)
throws
Exception
{
if
(!
METHOD_LIST
.
contains
(
form
.
getMethod
()))
{
if
(!
METHOD_LIST
.
contains
(
form
.
getMethod
()))
{
return
ApiUtils
.
getMethodError
(
form
);
return
ApiUtils
.
getMethodError
(
form
);
}
}
// 调用接口方法,利用反射更简洁
// 调用接口方法,利用反射更简洁
IApiLogic
apiLogic
=
getApiLogic
(
form
);
IApiLogic
apiLogic
=
getApiLogic
(
form
);
return
(
ApiResp
)
ReflectionUtils
.
invokeMethod
(
apiLogic
,
form
.
getMethod
(),
new
Class
<?>[]{
ApiForm
.
class
},
new
Object
[]{
form
});
return
(
ApiResp
)
ReflectionUtils
.
invokeMethod
(
apiLogic
,
form
.
getMethod
(),
new
Class
<?>[]{
ApiForm
.
class
},
new
Object
[]{
form
});
}
}
/**
/**
* 身份验证
* 身份验证
*
*
* @param form
* @param form
* @param appId
* @param appId
* @param appSecret
* @param appSecret
* @return
* @return
*/
*/
public
ApiResp
auth
(
ApiForm
form
,
String
appId
,
String
appSecret
,
String
token
)
{
public
ApiResp
auth
(
ApiForm
form
,
String
appId
,
String
appSecret
,
String
token
)
{
boolean
contains
=
Arrays
.
asList
(
allowMethod
).
contains
(
form
.
getMethod
());
boolean
contains
=
Arrays
.
asList
(
allowMethod
).
contains
(
form
.
getMethod
());
if
(
contains
)
{
if
(
contains
)
{
return
ApiUtils
.
getSuccessResp
(
form
);
return
ApiUtils
.
getSuccessResp
(
form
);
}
else
if
(
StrUtil
.
isBlank
(
token
))
{
}
else
if
(
StrUtil
.
isBlank
(
token
))
{
return
ApiUtils
.
getLoginValidError
(
form
);
return
ApiUtils
.
getLoginValidError
(
form
);
}
}
ResultVo
resultVo
=
sysFeign
.
getApiUserByAppId
(
appId
,
appSecret
);
ResultVo
resultVo
=
sysFeign
.
getApiUserByAppId
(
appId
,
appSecret
);
if
(!
resultVo
.
isSuccess
()
||
resultVo
.
getData
()
==
null
)
{
if
(!
resultVo
.
isSuccess
()
||
resultVo
.
getData
()
==
null
)
{
return
ApiUtils
.
getAppIdValidError
(
form
);
return
ApiUtils
.
getAppIdValidError
(
form
);
}
}
// 认证签名
// 认证签名
String
key
=
redisUtils
.
getStr
(
"civil.apiKey."
+
token
);
String
key
=
redisUtils
.
getStr
(
"civil.apiKey."
+
token
);
String
sign
=
ApiUtils
.
getSign
(
form
.
getSignStr
(
key
==
null
?
""
:
key
));
String
sign
=
ApiUtils
.
getSign
(
form
.
getSignStr
(
key
==
null
?
""
:
key
));
if
(!
sign
.
equals
(
form
.
getSign
()))
{
if
(!
sign
.
equals
(
form
.
getSign
()))
{
return
ApiUtils
.
getCheckSignValidError
(
form
);
return
ApiUtils
.
getCheckSignValidError
(
form
);
}
}
ApiUser
apiUser
=
BeanUtil
.
copyProperties
(
resultVo
.
getData
(),
ApiUser
.
class
);
ApiUser
apiUser
=
BeanUtil
.
copyProperties
(
resultVo
.
getData
(),
ApiUser
.
class
);
ApiTokenVo
apiTokenVo
=
ApiTokenVo
.
builder
()
ApiTokenVo
apiTokenVo
=
ApiTokenVo
.
builder
()
.
userId
(
apiUser
.
getId
())
.
userId
(
apiUser
.
getId
())
.
name
(
apiUser
.
getName
())
.
name
(
apiUser
.
getName
())
.
roleLevel
(
apiUser
.
getRoleLevel
())
.
roleLevel
(
apiUser
.
getRoleLevel
())
.
build
();
.
build
();
form
.
setUserId
(
apiUser
.
getId
()
==
null
?
null
:
apiUser
.
getId
().
toString
());
form
.
setUserId
(
apiUser
.
getId
()
==
null
?
null
:
apiUser
.
getId
().
toString
());
form
.
setAppId
(
apiUser
.
getAppId
());
form
.
setAppId
(
apiUser
.
getAppId
());
form
.
setApiTokenVo
(
apiTokenVo
);
form
.
setApiTokenVo
(
apiTokenVo
);
return
ApiUtils
.
getSuccessResp
(
form
);
return
ApiUtils
.
getSuccessResp
(
form
);
}
}
@Async
@Async
public
void
addLog
(
ApiForm
form
,
String
ip
,
String
logType
,
String
respMsg
,
String
errorInfo
,
Long
timeCost
)
{
public
void
addLog
(
ApiForm
form
,
String
ip
,
String
logType
,
String
respMsg
,
String
errorInfo
,
Long
timeCost
)
{
apiLogDao
.
insert
(
ApiLog
.
builder
()
apiLogDao
.
insert
(
ApiLog
.
builder
()
.
appId
(
form
.
getAppId
())
.
appId
(
form
.
getAppId
())
.
userId
(
form
.
getUserId
())
.
userId
(
form
.
getUserId
())
.
method
(
form
.
getMethod
())
.
method
(
form
.
getMethod
())
.
version
(
form
.
getVersion
())
.
version
(
form
.
getVersion
())
.
bizContent
(
form
.
getBizContent
())
.
bizContent
(
form
.
getBizContent
())
.
ip
(
ip
)
.
ip
(
ip
)
.
logType
(
logType
)
.
logType
(
logType
)
.
respMsg
(
respMsg
)
.
respMsg
(
respMsg
)
.
stackTrace
(
errorInfo
)
.
stackTrace
(
errorInfo
)
.
timeCost
(
timeCost
)
.
timeCost
(
timeCost
)
.
createTime
(
DateUtil
.
date
().
toJdkDate
())
.
createTime
(
DateUtil
.
date
().
toJdkDate
())
.
build
());
.
build
());
}
}
}
}
api-server/src/main/java/com/zq/api/service/IApiLogic.java
View file @
18a10678
package
com
.
zq
.
api
.
service
;
package
com
.
zq
.
api
.
service
;
import
com.zq.api.constant.ApiMethod
;
import
com.zq.api.constant.ApiMethod
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.form.ApiResp
;
/**
/**
* api实现接口
* api实现接口
* <p>
* <p>
* 2016年9月29日 上午11:45:08
* 2016年9月29日 上午11:45:08
*/
*/
public
interface
IApiLogic
extends
IApiCommon
{
public
interface
IApiLogic
extends
IApiCommon
{
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓SYS APP接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓SYS APP接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@ApiMethod
(
name
=
"获取用户信息"
,
service
=
"SYS-SERVER"
)
@ApiMethod
(
name
=
"获取用户信息"
,
service
=
"SYS-SERVER"
)
ApiResp
getUserInfo
(
ApiForm
form
);
ApiResp
getUserInfo
(
ApiForm
form
);
@ApiMethod
(
name
=
"发送验证码"
,
service
=
"SYS-SERVER"
)
@ApiMethod
(
name
=
"发送验证码"
,
service
=
"SYS-SERVER"
)
ApiResp
sendCode
(
ApiForm
form
);
ApiResp
sendCode
(
ApiForm
form
);
@ApiMethod
(
name
=
"重置密码"
,
service
=
"SYS-SERVER"
)
@ApiMethod
(
name
=
"重置密码"
,
service
=
"SYS-SERVER"
)
ApiResp
resetPassword
(
ApiForm
form
);
ApiResp
resetPassword
(
ApiForm
form
);
@ApiMethod
(
name
=
"用户手机号登录"
,
service
=
"SYS-SERVER"
)
@ApiMethod
(
name
=
"用户手机号登录"
,
service
=
"SYS-SERVER"
)
ApiResp
phoneLogin
(
ApiForm
form
);
ApiResp
phoneLogin
(
ApiForm
form
);
@ApiMethod
(
name
=
"密码登录"
,
service
=
"SYS-SERVER"
)
@ApiMethod
(
name
=
"密码登录"
,
service
=
"SYS-SERVER"
)
ApiResp
passwdLogin
(
ApiForm
form
);
ApiResp
passwdLogin
(
ApiForm
form
);
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓门户接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓门户接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@ApiMethod
(
name
=
"获取婚姻统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取婚姻统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getMarriageStats
(
ApiForm
form
);
ApiResp
getMarriageStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取区域下的婚姻统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取1年结婚离婚对数"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAreaUnderMarriageStatsList
(
ApiForm
form
);
ApiResp
getYearMarriedCouple
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取近5年婚姻走势"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取区域下的婚姻统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getFivesYearMarriageLine
(
ApiForm
form
);
ApiResp
getAreaUnderMarriageStatsList
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取区域残疾发放统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取近5年婚姻走势"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAreaDisabledIssueStats
(
ApiForm
form
);
ApiResp
getFivesYearMarriageLine
(
ApiForm
form
);
@ApiMethod
(
name
=
"近五年发放人数和金额统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取区域残疾发放统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getYearDisabledIssueStats
(
ApiForm
form
);
ApiResp
getAreaDisabledIssueStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取在享补贴统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"近五年发放人数和金额统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getEnjoySubsidyStats
(
ApiForm
form
);
ApiResp
getYearDisabledIssueStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取区域统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取在享补贴统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAreaShjzStats
(
ApiForm
form
);
ApiResp
getEnjoySubsidyStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取区域社会救助统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取区域统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAreaUnderNumStats
(
ApiForm
form
);
ApiResp
getAreaShjzStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取近五年城市农村低保发放人数统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取区域社会救助统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getFivesYearShjzAchieveStats
(
ApiForm
form
);
ApiResp
getAreaUnderNumStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取近五年城市农村低保发放金额统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取近五年城市农村低保发放人数统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getFivesYearShjzProvideStats
(
ApiForm
form
);
ApiResp
getFivesYearShjzAchieveStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"修改登录密码"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取近五年城市农村低保发放金额统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
modifyPasswd
(
ApiForm
form
);
ApiResp
getFivesYearShjzProvideStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取App最新版本"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"修改登录密码"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAppVersion
(
ApiForm
form
);
ApiResp
modifyPasswd
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取子区域列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取App最新版本"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getChildAreaList
(
ApiForm
form
);
ApiResp
getAppVersion
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取社会机构统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取子区域列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getSoorganStats
(
ApiForm
form
);
ApiResp
getChildAreaList
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取地区下面社会机构统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取社会机构统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAreaUnderSoorganStatsList
(
ApiForm
form
);
ApiResp
getSoorganStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取App首页地图数据"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取地区下面社会机构统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAppMapStats
(
ApiForm
form
);
ApiResp
getAreaUnderSoorganStatsList
(
ApiForm
form
);
@ApiMethod
(
name
=
"汇总搜索"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"获取App首页地图数据"
,
service
=
"PORTAL-SERVER"
)
ApiResp
gatherSearch
(
ApiForm
form
);
ApiResp
getAppMapStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"指定区域下的儿童福利数据统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"汇总搜索"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAgencyChildStats
(
ApiForm
form
);
ApiResp
gatherSearch
(
ApiForm
form
);
@ApiMethod
(
name
=
"指定区域下级区域的儿童福利数据统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"指定区域下的儿童福利数据统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getAgencyChildStatsList
(
ApiForm
form
);
ApiResp
getAgencyChildStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"火化量统计"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"指定区域下级区域的儿童福利数据统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getCremationStats
(
ApiForm
form
);
ApiResp
getAgencyChildStatsList
(
ApiForm
form
);
@ApiMethod
(
name
=
"火化量统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"火化量统计"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getCremationStatsList
(
ApiForm
form
);
ApiResp
getCremationStats
(
ApiForm
form
);
@ApiMethod
(
name
=
"殡仪馆火化量统计列表"
,
service
=
"PORTAL-SERVER"
)
@ApiMethod
(
name
=
"火化量统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getCremationStatsById
(
ApiForm
form
);
ApiResp
getCremationStatsList
(
ApiForm
form
);
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓SYS单点登录接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@ApiMethod
(
name
=
"殡仪馆火化量统计列表"
,
service
=
"PORTAL-SERVER"
)
ApiResp
getCremationStatsById
(
ApiForm
form
);
@ApiMethod
(
name
=
"获取单点登录用户信息"
,
service
=
"SYS-SERVER"
)
ApiResp
getSsoUserInfo
(
ApiForm
form
);
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓SYS单点登录接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@ApiMethod
(
name
=
"单点登出"
,
service
=
"SYS-SERVER"
)
@ApiMethod
(
name
=
"获取单点登录用户信息"
,
service
=
"SYS-SERVER"
)
ApiResp
ssoLogout
(
ApiForm
form
);
ApiResp
getSsoUserInfo
(
ApiForm
form
);
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓开放接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
@ApiMethod
(
name
=
"单点登出"
,
service
=
"SYS-SERVER"
)
ApiResp
ssoLogout
(
ApiForm
form
);
@ApiMethod
(
name
=
"婚姻搜索接口"
,
service
=
"OPEN-SERVER"
)
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓开放接口↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
ApiResp
marriageSearch
(
ApiForm
form
);
@ApiMethod
(
name
=
"自然人搜索接口"
,
service
=
"OPEN-SERVER"
)
@ApiMethod
(
name
=
"婚姻搜索接口"
,
service
=
"OPEN-SERVER"
)
ApiResp
naturalPersonSearch
(
ApiForm
form
);
ApiResp
marriageSearch
(
ApiForm
form
);
@ApiMethod
(
name
=
"火化搜索接口"
,
service
=
"OPEN-SERVER"
)
@ApiMethod
(
name
=
"自然人搜索接口"
,
service
=
"OPEN-SERVER"
)
ApiResp
cremationSearch
(
ApiForm
form
);
ApiResp
naturalPersonSearch
(
ApiForm
form
);
}
@ApiMethod
(
name
=
"火化搜索接口"
,
service
=
"OPEN-SERVER"
)
ApiResp
cremationSearch
(
ApiForm
form
);
}
api-server/src/main/java/com/zq/api/service/impl/ApiV100Logic.java
View file @
18a10678
package
com
.
zq
.
api
.
service
.
impl
;
package
com
.
zq
.
api
.
service
.
impl
;
import
com.zq.api.feign.OpenFeign
;
import
com.zq.api.feign.OpenFeign
;
import
com.zq.api.feign.PortalFeign
;
import
com.zq.api.feign.PortalFeign
;
import
com.zq.api.feign.SysFeign
;
import
com.zq.api.feign.SysFeign
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiForm
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.form.ApiResp
;
import
com.zq.api.service.IApiLogic
;
import
com.zq.api.service.IApiLogic
;
import
com.zq.api.utils.ApiUtils
;
import
com.zq.api.utils.ApiUtils
;
import
com.zq.common.config.security.ApiTokenUtils
;
import
com.zq.common.config.security.ApiTokenUtils
;
import
com.zq.common.vo.ApiTokenVo
;
import
com.zq.common.vo.ApiTokenVo
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.ResultVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Map
;
import
java.util.Map
;
@Component
@Component
public
class
ApiV100Logic
extends
BaseApiLogic
implements
IApiLogic
{
public
class
ApiV100Logic
extends
BaseApiLogic
implements
IApiLogic
{
@Autowired
@Autowired
private
SysFeign
sysFeign
;
private
SysFeign
sysFeign
;
@Autowired
@Autowired
private
PortalFeign
portalFeign
;
private
PortalFeign
portalFeign
;
@Autowired
@Autowired
private
OpenFeign
openFeign
;
private
OpenFeign
openFeign
;
@Override
@Override
public
ApiResp
getUserInfo
(
ApiForm
form
)
{
public
ApiResp
getUserInfo
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
ResultVo
.
success
(
ApiTokenUtils
.
getAppTokenVo
(
form
.
getToken
())));
return
ApiUtils
.
toApiResp
(
form
,
ResultVo
.
success
(
ApiTokenUtils
.
getAppTokenVo
(
form
.
getToken
())));
}
}
@Override
@Override
public
ApiResp
sendCode
(
ApiForm
form
)
{
public
ApiResp
sendCode
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
sendCode
(
form
.
getString
(
"phone"
)));
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
sendCode
(
form
.
getString
(
"phone"
)));
}
}
@Override
@Override
public
ApiResp
resetPassword
(
ApiForm
form
)
{
public
ApiResp
resetPassword
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
resetPassword
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
resetPassword
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
phoneLogin
(
ApiForm
form
)
{
public
ApiResp
phoneLogin
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
phoneLogin
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
phoneLogin
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
passwdLogin
(
ApiForm
form
)
{
public
ApiResp
passwdLogin
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
passwdLogin
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
passwdLogin
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
modifyPasswd
(
ApiForm
form
)
{
public
ApiResp
modifyPasswd
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
modifyPasswd
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
modifyPasswd
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAppVersion
(
ApiForm
form
)
{
public
ApiResp
getAppVersion
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
getAppVersion
(
form
.
getString
(
"appName"
)));
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
getAppVersion
(
form
.
getString
(
"appName"
)));
}
}
@Override
@Override
public
ApiResp
getChildAreaList
(
ApiForm
form
)
{
public
ApiResp
getChildAreaList
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getChildAreaList
(
form
.
getString
(
"areaCode"
)));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getChildAreaList
(
form
.
getString
(
"areaCode"
)));
}
}
@Override
@Override
public
ApiResp
getMarriageStats
(
ApiForm
form
)
{
public
ApiResp
getMarriageStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getMarriageStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getMarriageStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAreaUnderMarriageStatsList
(
ApiForm
form
)
{
public
ApiResp
getYearMarriedCouple
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaUnderMarriageStatsList
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getYearMarriedCouple
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getFivesYearMarriageLine
(
ApiForm
form
)
{
public
ApiResp
getAreaUnderMarriageStatsList
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getFivesYearMarriageLine
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaUnderMarriageStatsList
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAreaDisabledIssueStats
(
ApiForm
form
)
{
public
ApiResp
getFivesYearMarriageLine
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaDisabledIssueStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getFivesYearMarriageLine
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getYearDisabledIssueStats
(
ApiForm
form
)
{
public
ApiResp
getAreaDisabledIssueStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getYearDisabledIssueStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaDisabledIssueStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getEnjoySubsidyStats
(
ApiForm
form
)
{
public
ApiResp
getYearDisabledIssueStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getEnjoySubsidyStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getYearDisabledIssueStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAreaShjzStats
(
ApiForm
form
)
{
public
ApiResp
getEnjoySubsidyStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaShjzStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getEnjoySubsidyStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAreaUnderNumStats
(
ApiForm
form
)
{
public
ApiResp
getAreaShjzStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaUnderNumStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaShjzStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getFivesYearShjzAchieveStats
(
ApiForm
form
)
{
public
ApiResp
getAreaUnderNumStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getFivesYearShjzAchieveStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaUnderNumStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getFivesYearShjzProvideStats
(
ApiForm
form
)
{
public
ApiResp
getFivesYearShjzAchieveStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getFivesYearShjzProvideStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getFivesYearShjzAchieveStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getSoorganStats
(
ApiForm
form
)
{
public
ApiResp
getFivesYearShjzProvideStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getSoorganStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getFivesYearShjzProvideStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAreaUnderSoorganStatsList
(
ApiForm
form
)
{
public
ApiResp
getSoorganStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaUnderSoorganStatsList
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getSoorganStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAppMapStats
(
ApiForm
form
)
{
public
ApiResp
getAreaUnderSoorganStatsList
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAppMapStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAreaUnderSoorganStatsList
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
gatherSearch
(
ApiForm
form
)
{
public
ApiResp
getAppMapStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
gatherSearch
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAppMapStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAgencyChildStats
(
ApiForm
form
)
{
public
ApiResp
gatherSearch
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAgencyChildStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
gatherSearch
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getAgencyChildStatsList
(
ApiForm
form
)
{
public
ApiResp
getAgencyChildStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAgencyChildStatsList
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAgencyChildStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getCremationStats
(
ApiForm
form
)
{
public
ApiResp
getAgencyChildStatsList
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getCremationStats
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getAgencyChildStatsList
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getCremationStatsList
(
ApiForm
form
)
{
public
ApiResp
getCremationStats
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getCremationStatsList
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getCremationStats
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getCremationStatsById
(
ApiForm
form
)
{
public
ApiResp
getCremationStatsList
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getCremationStatsById
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getCremationStatsList
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
getSsoUserInfo
(
ApiForm
form
)
{
public
ApiResp
getCremationStatsById
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
getSsoUserInfo
(
form
.
getAppId
()));
return
ApiUtils
.
toApiResp
(
form
,
portalFeign
.
getCremationStatsById
(
form
.
getParamsMap
()));
}
}
@Override
@Override
public
ApiResp
ssoLogout
(
ApiForm
form
)
{
public
ApiResp
getSsoUserInfo
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
ssoLogout
());
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
getSsoUserInfo
(
form
.
getAppId
()));
}
}
@Override
@Override
public
ApiResp
marriageSearch
(
ApiForm
form
)
{
public
ApiResp
ssoLogout
(
ApiForm
form
)
{
Map
<
String
,
Object
>
paramsMap
=
form
.
getParamsMap
();
return
ApiUtils
.
toApiResp
(
form
,
sysFeign
.
ssoLogout
());
ApiTokenVo
apiTokenVo
=
form
.
getApiTokenVo
();
}
if
(
apiTokenVo
!=
null
&&
apiTokenVo
.
getRoleLevel
()
==
1
)
{
paramsMap
.
put
(
"queryType"
,
1
);
@Override
}
public
ApiResp
marriageSearch
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
openFeign
.
marriageSearch
(
paramsMap
));
Map
<
String
,
Object
>
paramsMap
=
form
.
getParamsMap
();
}
ApiTokenVo
apiTokenVo
=
form
.
getApiTokenVo
();
if
(
apiTokenVo
!=
null
&&
apiTokenVo
.
getRoleLevel
()
==
1
)
{
@Override
paramsMap
.
put
(
"queryType"
,
1
);
public
ApiResp
naturalPersonSearch
(
ApiForm
form
)
{
}
return
ApiUtils
.
toApiResp
(
form
,
openFeign
.
naturalPersonSearch
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
openFeign
.
marriageSearch
(
paramsMap
));
}
}
@Override
@Override
public
ApiResp
cremationSearch
(
ApiForm
form
)
{
public
ApiResp
naturalPersonSearch
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
openFeign
.
cremationSearch
(
form
.
getParamsMap
()));
return
ApiUtils
.
toApiResp
(
form
,
openFeign
.
naturalPersonSearch
(
form
.
getParamsMap
()));
}
}
}
@Override
public
ApiResp
cremationSearch
(
ApiForm
form
)
{
return
ApiUtils
.
toApiResp
(
form
,
openFeign
.
cremationSearch
(
form
.
getParamsMap
()));
}
}
portal-server/src/main/java/com/zq/portal/controller/app/HyStatsController.java
View file @
18a10678
package
com
.
zq
.
portal
.
controller
.
app
;
package
com
.
zq
.
portal
.
controller
.
app
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.portal.entity.VMarriageStats
;
import
com.zq.portal.entity.VMarriageStats
;
import
com.zq.portal.service.HyStatsService
;
import
com.zq.portal.service.HyStatsService
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
tags
=
"婚姻相关接口"
)
@Api
(
tags
=
"婚姻相关接口"
)
@RequiredArgsConstructor
@RequiredArgsConstructor
@RestController
@RestController
@RequestMapping
(
value
=
"/portal/app/stats"
)
@RequestMapping
(
value
=
"/portal/app/stats"
)
public
class
HyStatsController
{
public
class
HyStatsController
{
public
final
HyStatsService
hyStatsService
;
public
final
HyStatsService
hyStatsService
;
@ApiOperation
(
"获取结婚离婚人数"
)
@ApiOperation
(
"获取结婚离婚人数"
)
@PostMapping
(
value
=
"/getMarriageStats"
)
@PostMapping
(
value
=
"/getMarriageStats"
)
public
ResultVo
<
VMarriageStats
>
getMarriageStats
(
@RequestBody
StatsReqVo
vo
)
{
public
ResultVo
<
VMarriageStats
>
getMarriageStats
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheMarriageStats
(
vo
));
return
ResultVo
.
success
(
hyStatsService
.
getCacheMarriageStats
(
vo
));
}
}
@ApiOperation
(
"获取地区下面婚姻统计列表"
)
@ApiOperation
(
"获取地区下面婚姻统计列表"
)
@PostMapping
(
value
=
"/getAreaUnderMarriageStatsList"
)
@PostMapping
(
value
=
"/getAreaUnderMarriageStatsList"
)
public
ResultVo
getAreaUnderMarriageStatsList
(
@RequestBody
StatsReqVo
vo
)
{
public
ResultVo
getAreaUnderMarriageStatsList
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheAreaUnderMarriageStatsList
(
vo
));
return
ResultVo
.
success
(
hyStatsService
.
getCacheAreaUnderMarriageStatsList
(
vo
));
}
}
@ApiOperation
(
"获取近5年结婚离婚走势"
)
@ApiOperation
(
"获取近5年结婚离婚走势"
)
@PostMapping
(
value
=
"/getFivesYearMarriageLine"
)
@PostMapping
(
value
=
"/getFivesYearMarriageLine"
)
public
ResultVo
getFivesYearMarriageLine
(
@RequestBody
StatsReqVo
vo
)
{
public
ResultVo
getFivesYearMarriageLine
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheFivesYearMarriageLine
(
vo
));
return
ResultVo
.
success
(
hyStatsService
.
getCacheFivesYearMarriageLine
(
vo
));
}
}
}
@ApiOperation
(
"获取1年结婚离婚对数"
)
@PostMapping
(
value
=
"/getYearMarriedCouple"
)
public
ResultVo
getYearMarriedCouple
(
@RequestBody
StatsReqVo
vo
)
{
return
ResultVo
.
success
(
hyStatsService
.
getCacheYearMarriedCouple
(
vo
));
}
}
portal-server/src/main/java/com/zq/portal/dao/HyStatsDao.java
View file @
18a10678
package
com
.
zq
.
portal
.
dao
;
package
com
.
zq
.
portal
.
dao
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.zq.common.constant.DBName
;
import
com.zq.common.constant.DBName
;
import
com.zq.portal.vo.SearchReqVo
;
import
com.zq.portal.vo.SearchReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsVo
;
import
com.zq.portal.vo.StatsVo
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
@DS
(
DBName
.
GXHY
)
@DS
(
DBName
.
GXHY
)
@Repository
@Repository
public
interface
HyStatsDao
{
public
interface
HyStatsDao
{
/**
/**
* 获取近5年的折线
* 获取近5年的折线
*
*
* @return
* @return
*/
*/
List
<
StatsVo
>
getFivesYearMarriageLine
(
StatsReqVo
vo
);
List
<
StatsVo
>
getFivesYearMarriageLine
(
StatsReqVo
vo
);
/**
/**
* 月统计折线
* 月统计折线
*
*
* @return
* @return
*/
*/
List
<
StatsVo
>
getMonthMarriageLine
(
StatsReqVo
vo
);
List
<
StatsVo
>
getMonthMarriageLine
(
StatsReqVo
vo
);
/**
/**
* 获取结婚离婚人数
* 获取结婚离婚人数
*
*
* @param vo
* @param vo
* @return
* @return
*/
*/
List
<
StatsVo
>
getMarriageStats
(
StatsReqVo
vo
);
List
<
StatsVo
>
getMarriageStats
(
StatsReqVo
vo
);
/**
/**
* 获取下级区域婚姻统计列表
* 获取下级区域婚姻统计列表
*
*
* @param vo
* @param vo
* @return
* @return
*/
*/
List
<
StatsVo
>
getAreaUnderMarriageStatsList
(
StatsReqVo
vo
);
List
<
StatsVo
>
getAreaUnderMarriageStatsList
(
StatsReqVo
vo
);
/**
/**
* 获取跨地结婚离婚人数
* 获取跨地结婚离婚人数
*
*
* @param vo
* @param vo
* @return
* @return
*/
*/
List
<
StatsVo
>
getCrossMarriageStats
(
StatsReqVo
vo
);
List
<
StatsVo
>
getCrossMarriageStats
(
StatsReqVo
vo
);
// 获取结婚人数
// 获取结婚人数
StatsVo
getMarryNum
(
StatsReqVo
vo
);
StatsVo
getMarryNum
(
StatsReqVo
vo
);
// 获取离婚中的人数
// 获取离婚中的人数
StatsVo
getInDivorceNum
(
StatsReqVo
vo
);
StatsVo
getInDivorceNum
(
StatsReqVo
vo
);
// 获取每月冷静期数据
// 获取每月冷静期数据
List
<
StatsVo
>
getMonthDivorceCoolingData
(
StatsReqVo
vo
);
List
<
StatsVo
>
getMonthDivorceCoolingData
(
StatsReqVo
vo
);
/**
/**
* 搜索
* 搜索
*
*
* @param vo
* @param vo
* @return
* @return
*/
*/
List
<
Map
<
String
,
Object
>>
search
(
SearchReqVo
vo
);
List
<
Map
<
String
,
Object
>>
search
(
SearchReqVo
vo
);
}
/**
* 获取结婚离婚对数
*
* @param vo
* @return
*/
List
<
StatsVo
>
getYearMarriedCouple
(
StatsReqVo
vo
);
}
portal-server/src/main/java/com/zq/portal/entity/VMarriageStats.java
View file @
18a10678
package
com
.
zq
.
portal
.
entity
;
package
com
.
zq
.
portal
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
import
java.util.Date
;
/**
/**
* 地区婚姻统计(VMarriageStats)实体类
* 地区婚姻统计(VMarriageStats)实体类
*
*
* @author makejava
* @author makejava
* @since 2021-06-24 11:57:43
* @since 2021-06-24 11:57:43
*/
*/
@Data
@Data
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
@Builder
@Builder
@TableName
(
value
=
"v_marriage_stats"
)
@TableName
(
value
=
"v_marriage_stats"
)
public
class
VMarriageStats
{
public
class
VMarriageStats
{
/**
/**
* id
* id
*/
*/
@TableId
(
type
=
IdType
.
AUTO
)
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
id
;
private
Long
id
;
/**
/**
* 区域码
* 区域码
*/
*/
@ApiModelProperty
(
"区域码"
)
@ApiModelProperty
(
"区域码"
)
private
String
areaCode
;
private
String
areaCode
;
/**
/**
* 区域名
* 区域名
*/
*/
@ApiModelProperty
(
"区域名"
)
@ApiModelProperty
(
"区域名"
)
private
String
areaName
;
private
String
areaName
;
/**
/**
* 年份
* 年份
*/
*/
@ApiModelProperty
(
"年份"
)
@ApiModelProperty
(
"年份"
)
private
Integer
year
;
private
Integer
year
;
/**
/**
* 结婚人数
* 结婚人数
*/
*/
@ApiModelProperty
(
"结婚人数"
)
@ApiModelProperty
(
"结婚人数"
)
private
Integer
marryNum
;
private
Integer
marryNum
;
/**
/**
* 申请离婚人数
* 申请离婚人数
*/
*/
@ApiModelProperty
(
"申请离婚人数"
)
@ApiModelProperty
(
"申请离婚人数"
)
private
Integer
inDivorceNum
;
private
Integer
inDivorceNum
;
/**
/**
* 离婚成功
* 离婚成功
*/
*/
@ApiModelProperty
(
"离婚成功"
)
@ApiModelProperty
(
"离婚成功"
)
private
Integer
divorceNum
;
private
Integer
divorceNum
;
/**
/**
* 跨地区结婚人数
* 跨地区结婚人数
*/
*/
@ApiModelProperty
(
"跨地区结婚人数"
)
@ApiModelProperty
(
"跨地区结婚人数"
)
private
Integer
crossMarryNum
;
private
Integer
crossMarryNum
;
/**
/**
* 跨地区离婚人数
* 跨地区离婚人数
*/
*/
@ApiModelProperty
(
"跨地区离婚人数"
)
@ApiModelProperty
(
"跨地区离婚人数"
)
private
Integer
crossDivorceNum
;
private
Integer
crossDivorceNum
;
/**
/**
* 跨地区结婚人数
* 跨地区结婚人数
*/
*/
@ApiModelProperty
(
"补领结婚证人数"
)
@ApiModelProperty
(
"补领结婚证人数"
)
private
Integer
patchMarryCaNum
;
private
Integer
patchMarryCaNum
;
/**
/**
* 补领离婚证人数
* 补领离婚证人数
*/
*/
@ApiModelProperty
(
"补领离婚证人数"
)
@ApiModelProperty
(
"补领离婚证人数"
)
private
Integer
patchDivorceCaNum
;
private
Integer
patchDivorceCaNum
;
/**
/**
* createTime
* createTime
*/
*/
private
Date
createTime
;
private
Date
createTime
;
}
}
portal-server/src/main/java/com/zq/portal/manager/PortalCacheKeys.java
View file @
18a10678
package
com
.
zq
.
portal
.
manager
;
package
com
.
zq
.
portal
.
manager
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
public
abstract
class
PortalCacheKeys
{
public
abstract
class
PortalCacheKeys
{
public
static
final
String
PREFIX
=
"portal."
;
public
static
final
String
PREFIX
=
"portal."
;
// 获取婚姻统计列表key
// 获取婚姻统计列表key
public
static
String
getAreaUnderMarriageStatsListKey
(
StatsReqVo
vo
)
{
public
static
String
getAreaUnderMarriageStatsListKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAreaUnderMarriageStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAreaUnderMarriageStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取婚姻统计key
// 获取婚姻统计key
public
static
String
getMarriageStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getMarriageStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getMarriageStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getMarriageStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取近5年结婚离婚走势key
// 获取近5年结婚离婚走势key
public
static
String
getFivesYearMarriageLineKey
(
String
areaCode
)
{
public
static
String
getFivesYearMarriageLineKey
(
String
areaCode
)
{
return
PREFIX
+
"getFivesYearMarriageLine."
+
areaCode
;
return
PREFIX
+
"getFivesYearMarriageLine."
+
areaCode
;
}
}
// 获取近一年每个月结婚离婚走势key
// 获取近一年每个月结婚离婚走势key
public
static
String
getMonthMarriageLineKey
(
String
areaCode
)
{
public
static
String
getMonthMarriageLineKey
(
String
areaCode
)
{
return
PREFIX
+
"getMonthMarriageLine."
+
areaCode
;
return
PREFIX
+
"getMonthMarriageLine."
+
areaCode
;
}
}
// 获取社会机构统计
// 获取社会机构统计
public
static
String
getSoorganStatsListKey
(
StatsReqVo
vo
)
{
public
static
String
getSoorganStatsListKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getSoorganStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getSoorganStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取社会机构统计
// 获取社会机构统计
public
static
String
getSoorganStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getSoorganStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getSoorganStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getSoorganStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取社会机构区域占比统计
// 获取社会机构区域占比统计
public
static
String
getSoorganPercentageStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getSoorganPercentageStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getSoorganPercentageStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getSoorganPercentageStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 儿童机构福利统计列表
// 儿童机构福利统计列表
public
static
String
getAgencyChildStatsListKey
(
StatsReqVo
vo
)
{
public
static
String
getAgencyChildStatsListKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAgencyChildStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAgencyChildStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 儿童机构福利统计
// 儿童机构福利统计
public
static
String
getAgencyChildStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getAgencyChildStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAgencyChildStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAgencyChildStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 区域机构占比
// 区域机构占比
public
static
String
getAgencyPercentageStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getAgencyPercentageStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAgencyPercentageStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAgencyPercentageStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取福利院下的儿童统计
// 获取福利院下的儿童统计
public
static
String
getAgencyUnderChildStatsListKey
(
StatsReqVo
vo
)
{
public
static
String
getAgencyUnderChildStatsListKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAgencyUnderChildStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAgencyUnderChildStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 残疾等级统计
// 残疾等级统计
public
static
String
getDisabledLevelStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getDisabledLevelStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getDisabledLevelStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getDisabledLevelStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 统计年发放人数和金额
// 统计年发放人数和金额
public
static
String
getYearDisabledIssueStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getYearDisabledIssueStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getYearDisabledIssueStats."
+
vo
.
getAreaCode
();
return
PREFIX
+
"getYearDisabledIssueStats."
+
vo
.
getAreaCode
();
}
}
// 获取区域残疾统计
// 获取区域残疾统计
public
static
String
getAreaDisabledIssueStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getAreaDisabledIssueStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAreaDisabledIssueStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAreaDisabledIssueStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
public
static
String
getEnjoySubsidyStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getEnjoySubsidyStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getEnjoySubsidyStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getEnjoySubsidyStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取区域养老院统计列表
// 获取区域养老院统计列表
public
static
String
getAreaNursingStatsListKey
(
StatsReqVo
vo
)
{
public
static
String
getAreaNursingStatsListKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAreaNursingStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
()
+
"."
+
vo
.
getType
();
return
PREFIX
+
"getAreaNursingStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
()
+
"."
+
vo
.
getType
();
}
}
// 殡葬火化量统计列表
// 殡葬火化量统计列表
public
static
String
getCremationStatsListKey
(
StatsReqVo
vo
)
{
public
static
String
getCremationStatsListKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getCremationStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getCremationStatsList."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
//殡葬火化量殡仪馆数据统计
//殡葬火化量殡仪馆数据统计
public
static
String
getCremationStatsByIdKey
(
StatsReqVo
vo
)
{
public
static
String
getCremationStatsByIdKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getCremationStatsById."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getCremationStatsById."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 区域火化率占比
// 区域火化率占比
public
static
String
getCremationRateStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getCremationRateStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getCremationRateStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getCremationRateStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 火化量汇总Key
// 火化量汇总Key
public
static
String
getCremationStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getCremationStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getCremationStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getCremationStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 获取App首页地图
// 获取App首页地图
public
static
String
getAppMapStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getAppMapStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAppMapStats."
+
vo
.
getAreaCode
();
return
PREFIX
+
"getAppMapStats."
+
vo
.
getAreaCode
();
}
}
// 聚合搜索
// 聚合搜索
public
static
String
gatherSearchKey
(
StatsReqVo
vo
)
{
public
static
String
gatherSearchKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"gatherSearch."
+
vo
.
getKeyword
();
return
PREFIX
+
"gatherSearch."
+
vo
.
getKeyword
();
}
}
// 社会组织搜索
// 社会组织搜索
public
static
String
soorganSearchKey
()
{
public
static
String
soorganSearchKey
()
{
return
PREFIX
+
"soorganSearch."
;
return
PREFIX
+
"soorganSearch."
;
}
}
// 低保 获取当前享受低保人数
// 低保 获取当前享受低保人数
public
static
String
getEnjoyEnbuzNumKey
(
StatsReqVo
vo
)
{
public
static
String
getEnjoyEnbuzNumKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getEnjoyEnbuzNum."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getEnjoyEnbuzNum."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 低保 获取指定区域下的人数统计
// 低保 获取指定区域下的人数统计
public
static
String
getAreaUnderEnbuzNumStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getAreaUnderEnbuzNumStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAreaUnderEnbuzNumStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
return
PREFIX
+
"getAreaUnderEnbuzNumStats."
+
vo
.
getAreaCode
()
+
"."
+
vo
.
getYear
();
}
}
// 低保 获取近5年折线图
// 低保 获取近5年折线图
public
static
String
getFivesYearEnbuzEnjoyStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getFivesYearEnbuzEnjoyStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getFivesYearEnbuzEnjoyStats."
+
vo
.
getAreaCode
();
return
PREFIX
+
"getFivesYearEnbuzEnjoyStats."
+
vo
.
getAreaCode
();
}
}
// 获取区域下的救助统计
// 获取区域下的救助统计
public
static
String
getAreaShjzStats
(
StatsReqVo
vo
)
{
public
static
String
getAreaShjzStats
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getAreaShjzStats."
+
vo
.
getAreaCode
();
return
PREFIX
+
"getAreaShjzStats."
+
vo
.
getAreaCode
();
}
}
//获取两项补贴统计
//获取两项补贴统计
public
static
String
getEnjoySumStatsKey
(
StatsReqVo
vo
)
{
public
static
String
getEnjoySumStatsKey
(
StatsReqVo
vo
)
{
return
PREFIX
+
"getEnjoySumStats."
+
vo
.
getAreaCode
();
return
PREFIX
+
"getEnjoySumStats."
+
vo
.
getAreaCode
();
}
}
}
public
static
String
getYearMarriedCoupleKey
()
{
return
PREFIX
+
"getYearMarriedCouple"
;
}
}
portal-server/src/main/java/com/zq/portal/service/HyStatsService.java
View file @
18a10678
package
com
.
zq
.
portal
.
service
;
package
com
.
zq
.
portal
.
service
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.NumberUtil
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.utils.PagingUtils
;
import
com.zq.common.utils.PagingUtils
;
import
com.zq.common.utils.StringUtils
;
import
com.zq.common.utils.StringUtils
;
import
com.zq.portal.dao.AreaDao
;
import
com.zq.portal.dao.AreaDao
;
import
com.zq.portal.dao.HyStatsDao
;
import
com.zq.portal.dao.HyStatsDao
;
import
com.zq.portal.dao.VMarriageStatsDao
;
import
com.zq.portal.dao.VMarriageStatsDao
;
import
com.zq.portal.entity.SystemArea
;
import
com.zq.portal.entity.SystemArea
;
import
com.zq.portal.entity.VMarriageStats
;
import
com.zq.portal.entity.VMarriageStats
;
import
com.zq.portal.manager.PortalCacheKeys
;
import
com.zq.portal.manager.PortalCacheKeys
;
import
com.zq.portal.vo.LineDataVo
;
import
com.zq.portal.vo.LineDataVo
;
import
com.zq.portal.vo.SearchReqVo
;
import
com.zq.portal.vo.SearchReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsReqVo
;
import
com.zq.portal.vo.StatsVo
;
import
com.zq.portal.vo.StatsVo
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.*
;
@Service
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
public
class
HyStatsService
{
public
class
HyStatsService
{
private
final
HyStatsDao
hyStatsDao
;
private
final
HyStatsDao
hyStatsDao
;
private
final
AreaDao
areaDao
;
private
final
AreaDao
areaDao
;
private
final
VMarriageStatsDao
vMarriageStatsDao
;
private
final
VMarriageStatsDao
vMarriageStatsDao
;
private
final
RedisUtils
redisUtils
;
private
final
RedisUtils
redisUtils
;
/**
/**
* 获取缓存婚姻统计
* 获取缓存婚姻统计
*
*
* @param vo
* @param vo
* @return
* @return
*/
*/
public
VMarriageStats
getCacheMarriageStats
(
StatsReqVo
vo
)
{
public
VMarriageStats
getCacheMarriageStats
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
));
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
));
if
(
obj
!=
null
)
{
if
(
obj
!=
null
)
{
return
(
VMarriageStats
)
obj
;
return
(
VMarriageStats
)
obj
;
}
}
return
getMarriageStats
(
vo
);
return
getMarriageStats
(
vo
);
}
}
/**
/**
* 婚姻统计
* 婚姻统计
*
*
* @param vo
* @param vo
* @return
* @return
*/
*/
public
VMarriageStats
getMarriageStats
(
StatsReqVo
vo
)
{
public
VMarriageStats
getMarriageStats
(
StatsReqVo
vo
)
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
vo
.
setAreaCode
(
"450000000000"
);
vo
.
setAreaCode
(
"450000000000"
);
}
}
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
// 统计实体
// 统计实体
VMarriageStats
build
=
VMarriageStats
.
builder
()
VMarriageStats
build
=
VMarriageStats
.
builder
()
.
areaCode
(
area
.
getCode
())
.
areaCode
(
area
.
getCode
())
.
areaName
(
area
.
getName
())
.
areaName
(
area
.
getName
())
.
year
(
vo
.
getYear
())
.
year
(
2022
)
.
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
()))
.
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
()))
.
build
();
.
build
();
// 结婚 离婚 补领结婚证 补领离婚证
// 结婚 离婚 补领结婚证 补领离婚证
List
<
StatsVo
>
marriageStatsList
=
hyStatsDao
.
getMarriageStats
(
vo
);
List
<
StatsVo
>
marriageStatsList
=
hyStatsDao
.
getMarriageStats
(
vo
);
for
(
StatsVo
statsVo
:
marriageStatsList
)
{
for
(
StatsVo
statsVo
:
marriageStatsList
)
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
build
.
setMarryNum
(
statsVo
.
getNum
());
build
.
setMarryNum
(
statsVo
.
getNum
());
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
build
.
setDivorceNum
(
statsVo
.
getNum
());
build
.
setDivorceNum
(
statsVo
.
getNum
());
}
else
if
(
"ICA"
.
equals
(
statsVo
.
getType
()))
{
}
else
if
(
"ICA"
.
equals
(
statsVo
.
getType
()))
{
build
.
setPatchMarryCaNum
(
statsVo
.
getNum
());
build
.
setPatchMarryCaNum
(
statsVo
.
getNum
());
}
else
if
(
"ICB"
.
equals
(
statsVo
.
getType
()))
{
}
else
if
(
"ICB"
.
equals
(
statsVo
.
getType
()))
{
build
.
setPatchDivorceCaNum
(
statsVo
.
getNum
());
build
.
setPatchDivorceCaNum
(
statsVo
.
getNum
());
}
}
}
}
// 获取离婚中的人数
// 获取离婚中的人数
StatsVo
inDivorceNum
=
hyStatsDao
.
getInDivorceNum
(
vo
);
StatsVo
inDivorceNum
=
hyStatsDao
.
getInDivorceNum
(
vo
);
build
.
setInDivorceNum
(
inDivorceNum
.
getNum
());
build
.
setInDivorceNum
(
inDivorceNum
.
getNum
());
// 获取跨地结婚离婚人数
// 获取跨地结婚离婚人数
List
<
StatsVo
>
crossMarriageStats
=
hyStatsDao
.
getCrossMarriageStats
(
vo
);
List
<
StatsVo
>
crossMarriageStats
=
hyStatsDao
.
getCrossMarriageStats
(
vo
);
for
(
StatsVo
crossMarriageStat
:
crossMarriageStats
)
{
for
(
StatsVo
crossMarriageStat
:
crossMarriageStats
)
{
if
(
"IA"
.
equals
(
crossMarriageStat
.
getType
()))
{
if
(
"IA"
.
equals
(
crossMarriageStat
.
getType
()))
{
build
.
setCrossMarryNum
(
crossMarriageStat
.
getNum
());
build
.
setCrossMarryNum
(
crossMarriageStat
.
getNum
());
}
else
if
(
"IB"
.
equals
(
crossMarriageStat
.
getType
()))
{
}
else
if
(
"IB"
.
equals
(
crossMarriageStat
.
getType
()))
{
build
.
setCrossDivorceNum
(
crossMarriageStat
.
getNum
());
build
.
setCrossDivorceNum
(
crossMarriageStat
.
getNum
());
}
}
}
}
// 放进缓存
// 放进缓存
redisUtils
.
setObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
),
build
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getMarriageStatsKey
(
vo
),
build
);
// 放进数据库 有时间条件的不存库
// 放进数据库 有时间条件的不存库
VMarriageStats
marriageStats
=
vMarriageStatsDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
VMarriageStats
.
builder
().
year
(
vo
.
getYear
()
==
null
?
0
:
vo
.
getYear
()).
areaCode
(
area
.
getCode
()).
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
())).
build
()));
// VMarriageStats marriageStats = vMarriageStatsDao.selectOne(Wrappers.lambdaQuery(VMarriageStats.builder().year(vo.getYear() == null ? 0 : vo.getYear()).areaCode(area.getCode()).createTime(DateUtil.parseDate(DateUtil.today())).build()));
if
(
marriageStats
==
null
)
{
VMarriageStats
marriageStats
=
vMarriageStatsDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
VMarriageStats
.
builder
().
year
(
2022
).
areaCode
(
area
.
getCode
()).
createTime
(
DateUtil
.
parseDate
(
DateUtil
.
today
())).
build
()));
vMarriageStatsDao
.
insert
(
build
);
if
(
marriageStats
==
null
)
{
}
else
{
vMarriageStatsDao
.
insert
(
build
);
build
.
setId
(
marriageStats
.
getId
());
}
else
{
vMarriageStatsDao
.
updateById
(
build
);
build
.
setId
(
marriageStats
.
getId
());
}
vMarriageStatsDao
.
updateById
(
build
);
}
return
build
;
}
return
build
;
}
/**
* 获取缓存区域下的结婚离婚数据
/**
*
* 获取缓存区域下的结婚离婚数据
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getCacheAreaUnderMarriageStatsList
(
StatsReqVo
vo
)
{
*/
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getAreaUnderMarriageStatsListKey
(
vo
));
public
Object
getCacheAreaUnderMarriageStatsList
(
StatsReqVo
vo
)
{
if
(
obj
!=
null
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getAreaUnderMarriageStatsListKey
(
vo
));
return
obj
;
if
(
obj
!=
null
)
{
}
return
obj
;
return
getAreaUnderMarriageStatsList
(
vo
);
}
}
return
getAreaUnderMarriageStatsList
(
vo
);
}
/**
* 获取区域下的结婚离婚数据
/**
*
* 获取区域下的结婚离婚数据
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getAreaUnderMarriageStatsList
(
StatsReqVo
vo
)
{
*/
String
cacheKey
=
PortalCacheKeys
.
getAreaUnderMarriageStatsListKey
(
vo
);
public
Object
getAreaUnderMarriageStatsList
(
StatsReqVo
vo
)
{
SystemArea
area
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
String
cacheKey
=
PortalCacheKeys
.
getAreaUnderMarriageStatsListKey
(
vo
);
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
SystemArea
area
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
vo
.
setSize
(
SystemArea
.
getNextLevelLength
(
area
.
getType
()));
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setSize
(
SystemArea
.
getNextLevelLength
(
area
.
getType
()));
List
<
VMarriageStats
>
returnData
=
new
ArrayList
<>();
List
<
VMarriageStats
>
returnData
=
new
ArrayList
<>();
// List<StatsVo> statsList = hyStatsDao.getAreaUnderMarriageStatsList(vo);
// statsList:
// List<StatsVo> statsList = hyStatsDao.getAreaUnderMarriageStatsList(vo);
// for (StatsVo stats : statsList) {
// statsList:
// if ("IA".equals(stats.getType())) {
// for (StatsVo stats : statsList) {
// for (VMarriageStats marriageStats : returnData) {
// if ("IA".equals(stats.getType())) {
// if (marriageStats.getAreaCode().startsWith(stats.getCode())) {
// for (VMarriageStats marriageStats : returnData) {
// marriageStats.setMarryNum(stats.getNum());
// if (marriageStats.getAreaCode().startsWith(stats.getCode())) {
// continue statsList;// 继续下一个统计
// marriageStats.setMarryNum(stats.getNum());
// }
// continue statsList;// 继续下一个统计
// }
// }
//
// }
// SystemArea systemArea = areaDao.selectById(SystemArea.patchZero(stats.getCode()));
//
// VMarriageStats build = VMarriageStats.builder()
// SystemArea systemArea = areaDao.selectById(SystemArea.patchZero(stats.getCode()));
// .areaCode(systemArea.getCode())
// VMarriageStats build = VMarriageStats.builder()
// .areaName(systemArea.getName())
// .areaCode(systemArea.getCode())
// .year(vo.getYear())
// .areaName(systemArea.getName())
// .marryNum(stats.getNum())
// .year(vo.getYear())
// .build();
// .marryNum(stats.getNum())
// returnData.add(build);
// .build();
// } else if ("IB".equals(stats.getType())) {
// returnData.add(build);
// for (VMarriageStats marriageStats : returnData) {
// } else if ("IB".equals(stats.getType())) {
// if (marriageStats.getAreaCode().startsWith(stats.getCode())) {
// for (VMarriageStats marriageStats : returnData) {
// marriageStats.setDivorceNum(stats.getNum());
// if (marriageStats.getAreaCode().startsWith(stats.getCode())) {
// continue statsList;// 继续下一个统计
// marriageStats.setDivorceNum(stats.getNum());
// }
// continue statsList;// 继续下一个统计
// }
// }
//
// }
// SystemArea systemArea = areaDao.selectById(SystemArea.patchZero(stats.getCode()));
//
// VMarriageStats build = VMarriageStats.builder()
// SystemArea systemArea = areaDao.selectById(SystemArea.patchZero(stats.getCode()));
// .areaCode(systemArea.getCode())
// VMarriageStats build = VMarriageStats.builder()
// .areaName(systemArea.getName())
// .areaCode(systemArea.getCode())
// .year(vo.getYear())
// .areaName(systemArea.getName())
// .marryNum(stats.getNum())
// .year(vo.getYear())
// .build();
// .marryNum(stats.getNum())
// returnData.add(build);
// .build();
// }
// returnData.add(build);
// }
// }
// returnData.sort(Comparator.comparing(VMarriageStats::getAreaCode));
// }
// returnData.sort(Comparator.comparing(VMarriageStats::getAreaCode));
List
<
SystemArea
>
systemAreaList
=
areaDao
.
selectList
(
Wrappers
.
lambdaQuery
(
SystemArea
.
builder
().
parentId
(
vo
.
getAreaCode
()).
build
()));
for
(
SystemArea
systemArea
:
systemAreaList
)
{
List
<
SystemArea
>
systemAreaList
=
areaDao
.
selectList
(
Wrappers
.
lambdaQuery
(
SystemArea
.
builder
().
parentId
(
vo
.
getAreaCode
()).
build
()));
vo
.
setAreaCode
(
systemArea
.
getCode
());
for
(
SystemArea
systemArea
:
systemAreaList
)
{
VMarriageStats
marriageStats
=
getCacheMarriageStats
(
vo
);
vo
.
setAreaCode
(
systemArea
.
getCode
());
returnData
.
add
(
marriageStats
);
VMarriageStats
marriageStats
=
getCacheMarriageStats
(
vo
);
}
returnData
.
add
(
marriageStats
);
}
List
<
String
>
cityList
=
new
ArrayList
<>();
List
<
String
>
iaList
=
new
ArrayList
<>();
List
<
String
>
cityList
=
new
ArrayList
<>();
List
<
String
>
ibList
=
new
ArrayList
<>();
List
<
String
>
iaList
=
new
ArrayList
<>();
for
(
VMarriageStats
marriageStats
:
returnData
)
{
List
<
String
>
ibList
=
new
ArrayList
<>();
cityList
.
add
(
marriageStats
.
getAreaName
());
for
(
VMarriageStats
marriageStats
:
returnData
)
{
iaList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getMarryNum
(),
"0"
));
cityList
.
add
(
marriageStats
.
getAreaName
());
ibList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getDivorceNum
(),
"0"
));
iaList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getMarryNum
(),
"0"
));
}
ibList
.
add
(
NumberUtil
.
toStr
(
marriageStats
.
getDivorceNum
(),
"0"
));
}
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
returnMap
.
put
(
"cityList"
,
cityList
);
Map
<
String
,
Object
>
returnMap
=
new
HashMap
<>();
returnMap
.
put
(
"iaList"
,
iaList
);
returnMap
.
put
(
"cityList"
,
cityList
);
returnMap
.
put
(
"ibList"
,
ibList
);
returnMap
.
put
(
"iaList"
,
iaList
);
returnMap
.
put
(
"statsList"
,
returnData
);
returnMap
.
put
(
"ibList"
,
ibList
);
returnMap
.
put
(
"statsList"
,
returnData
);
redisUtils
.
setObj
(
cacheKey
,
returnMap
);
redisUtils
.
setObj
(
cacheKey
,
returnMap
);
return
returnMap
;
}
return
returnMap
;
}
/**
* 获取冷静期和真正离婚的折线图数据
/**
*
* 获取冷静期和真正离婚的折线图数据
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getDivorceCoolingLine
(
StatsReqVo
vo
)
{
*/
// 获取冷静期
public
Object
getDivorceCoolingLine
(
StatsReqVo
vo
)
{
List
<
StatsVo
>
statsVoList
=
hyStatsDao
.
getMonthDivorceCoolingData
(
vo
);
// 获取冷静期
return
null
;
List
<
StatsVo
>
statsVoList
=
hyStatsDao
.
getMonthDivorceCoolingData
(
vo
);
}
return
null
;
}
/**
* 缓存获取近5年结婚离婚走势
/**
*
* 缓存获取近5年结婚离婚走势
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getCacheFivesYearMarriageLine
(
StatsReqVo
vo
)
{
*/
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()));
public
Object
getCacheFivesYearMarriageLine
(
StatsReqVo
vo
)
{
if
(
obj
!=
null
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()));
return
obj
;
if
(
obj
!=
null
)
{
}
return
obj
;
return
getFivesYearMarriageLine
(
vo
);
}
}
return
getFivesYearMarriageLine
(
vo
);
}
/**
* 获取近5年结婚离婚走势
/**
*
* 获取近5年结婚离婚走势
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getFivesYearMarriageLine
(
StatsReqVo
vo
)
{
*/
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
public
Object
getFivesYearMarriageLine
(
StatsReqVo
vo
)
{
vo
.
setAreaCode
(
"450000000000"
);
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
}
vo
.
setAreaCode
(
"450000000000"
);
SystemArea
area
=
areaDao
.
getAreaByCode
(
SystemArea
.
patchZero
(
vo
.
getAreaCode
()));
}
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
SystemArea
area
=
areaDao
.
getAreaByCode
(
SystemArea
.
patchZero
(
vo
.
getAreaCode
()));
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setType
(
"IA"
);
List
<
StatsVo
>
ia
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
vo
.
setType
(
"IA"
);
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
StatsVo
>
ia
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
List
<
String
>
iaDateList
=
new
ArrayList
<>();
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
List
<
String
>
iaDateList
=
new
ArrayList
<>();
ia
.
forEach
(
statsVo
->
{
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
iaDateList
.
add
(
statsVo
.
getYear
());
ia
.
forEach
(
statsVo
->
{
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
iaDateList
.
add
(
statsVo
.
getYear
());
});
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
});
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
vo
.
setType
(
"IB"
);
List
<
StatsVo
>
ib
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
vo
.
setType
(
"IB"
);
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
StatsVo
>
ib
=
hyStatsDao
.
getFivesYearMarriageLine
(
vo
);
List
<
String
>
ibDateList
=
new
ArrayList
<>();
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getYear
));
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
List
<
String
>
ibDateList
=
new
ArrayList
<>();
ib
.
forEach
(
statsVo
->
{
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
ibDateList
.
add
(
statsVo
.
getYear
());
ib
.
forEach
(
statsVo
->
{
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
ibDateList
.
add
(
statsVo
.
getYear
());
});
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
});
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
// 结婚总对数
int
iaTotalNum
=
0
;
// 结婚总对数
for
(
String
num
:
iaAmountList
)
{
int
iaTotalNum
=
0
;
iaTotalNum
+=
Integer
.
parseInt
(
num
);
for
(
String
num
:
iaAmountList
)
{
}
iaTotalNum
+=
Integer
.
parseInt
(
num
);
}
// 后台管理数据
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
// 后台管理数据
adminData
.
put
(
"iaLineData"
,
iaLineData
);
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
adminData
.
put
(
"ibLineData"
,
ibLineData
);
adminData
.
put
(
"iaLineData"
,
iaLineData
);
adminData
.
put
(
"iaTotalNum"
,
iaTotalNum
);
adminData
.
put
(
"ibLineData"
,
ibLineData
);
adminData
.
put
(
"iaTotalNum"
,
iaTotalNum
);
//App数据
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
//App数据
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"name"
,
"结婚对数"
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"data"
,
iaAmountList
);
iaLine
.
put
(
"name"
,
"结婚对数"
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
iaLine
.
put
(
"data"
,
iaAmountList
);
ibLine
.
put
(
"name"
,
"离婚对数"
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
ibLine
.
put
(
"data"
,
ibAmountList
);
ibLine
.
put
(
"name"
,
"离婚对数"
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
ibLine
.
put
(
"data"
,
ibAmountList
);
seriesList
.
add
(
iaLine
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
seriesList
.
add
(
ibLine
);
seriesList
.
add
(
iaLine
);
appData
.
put
(
"series"
,
seriesList
);
seriesList
.
add
(
ibLine
);
appData
.
put
(
"series"
,
seriesList
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"admin"
,
adminData
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"app"
,
appData
);
returnData
.
put
(
"admin"
,
adminData
);
returnData
.
put
(
"app"
,
appData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
return
returnData
;
redisUtils
.
setObj
(
PortalCacheKeys
.
getFivesYearMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
}
return
returnData
;
}
/**
* 获取缓存月统计折线
/**
*
* 获取缓存月统计折线
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getCacheMonthMarriageLine
(
StatsReqVo
vo
)
{
*/
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()));
public
Object
getCacheMonthMarriageLine
(
StatsReqVo
vo
)
{
if
(
obj
!=
null
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()));
return
obj
;
if
(
obj
!=
null
)
{
}
return
obj
;
return
getMonthMarriageLine
(
vo
);
}
}
return
getMonthMarriageLine
(
vo
);
}
/**
* 月统计折线
/**
*
* 月统计折线
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
getMonthMarriageLine
(
StatsReqVo
vo
)
{
*/
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
public
Object
getMonthMarriageLine
(
StatsReqVo
vo
)
{
vo
.
setAreaCode
(
"450000000000"
);
if
(
StringUtils
.
isBlank
(
vo
.
getAreaCode
()))
{
}
vo
.
setAreaCode
(
"450000000000"
);
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
}
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
SystemArea
area
=
areaDao
.
getAreaByCode
(
vo
.
getAreaCode
());
vo
.
setSubAreaCode
(
area
.
subAreaCode
());
vo
.
setType
(
"IA"
);
List
<
StatsVo
>
ia
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
vo
.
setType
(
"IA"
);
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
StatsVo
>
ia
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
List
<
String
>
iaDateList
=
new
ArrayList
<>();
ia
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
List
<
String
>
iaDateList
=
new
ArrayList
<>();
ia
.
forEach
(
statsVo
->
{
List
<
String
>
iaAmountList
=
new
ArrayList
<>();
iaDateList
.
add
(
statsVo
.
getMonth
());
ia
.
forEach
(
statsVo
->
{
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
iaDateList
.
add
(
statsVo
.
getMonth
());
});
iaAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
});
LineDataVo
iaLineData
=
LineDataVo
.
builder
().
dateList
(
iaDateList
).
amountList
(
iaAmountList
).
build
();
vo
.
setType
(
"IB"
);
List
<
StatsVo
>
ib
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
vo
.
setType
(
"IB"
);
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
StatsVo
>
ib
=
hyStatsDao
.
getMonthMarriageLine
(
vo
);
List
<
String
>
ibDateList
=
new
ArrayList
<>();
ib
.
sort
(
Comparator
.
comparing
(
StatsVo:
:
getMonth
));
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
List
<
String
>
ibDateList
=
new
ArrayList
<>();
ib
.
forEach
(
statsVo
->
{
List
<
String
>
ibAmountList
=
new
ArrayList
<>();
ibDateList
.
add
(
statsVo
.
getMonth
());
ib
.
forEach
(
statsVo
->
{
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
ibDateList
.
add
(
statsVo
.
getMonth
());
});
ibAmountList
.
add
(
String
.
valueOf
(
statsVo
.
getNum
()));
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
});
LineDataVo
ibLineData
=
LineDataVo
.
builder
().
dateList
(
ibDateList
).
amountList
(
ibAmountList
).
build
();
// 后台管理数据
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
// 后台管理数据
adminData
.
put
(
"iaLineData"
,
iaLineData
);
Map
<
String
,
Object
>
adminData
=
new
HashMap
<>();
adminData
.
put
(
"ibLineData"
,
ibLineData
);
adminData
.
put
(
"iaLineData"
,
iaLineData
);
adminData
.
put
(
"ibLineData"
,
ibLineData
);
//App数据
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
//App数据
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
appData
=
new
HashMap
<>();
appData
.
put
(
"categories"
,
iaDateList
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"name"
,
"结婚对数"
);
Map
<
String
,
Object
>
iaLine
=
new
HashMap
<>();
iaLine
.
put
(
"data"
,
iaAmountList
);
iaLine
.
put
(
"name"
,
"结婚对数"
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
iaLine
.
put
(
"data"
,
iaAmountList
);
ibLine
.
put
(
"name"
,
"离婚对数"
);
Map
<
String
,
Object
>
ibLine
=
new
HashMap
<>();
ibLine
.
put
(
"data"
,
ibAmountList
);
ibLine
.
put
(
"name"
,
"离婚对数"
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
ibLine
.
put
(
"data"
,
ibAmountList
);
seriesList
.
add
(
iaLine
);
List
<
Map
<
String
,
Object
>>
seriesList
=
new
ArrayList
<>();
seriesList
.
add
(
ibLine
);
seriesList
.
add
(
iaLine
);
appData
.
put
(
"series"
,
seriesList
);
seriesList
.
add
(
ibLine
);
appData
.
put
(
"series"
,
seriesList
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"admin"
,
adminData
);
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
returnData
.
put
(
"app"
,
appData
);
returnData
.
put
(
"admin"
,
adminData
);
returnData
.
put
(
"app"
,
appData
);
redisUtils
.
setObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
return
returnData
;
redisUtils
.
setObj
(
PortalCacheKeys
.
getMonthMarriageLineKey
(
vo
.
getAreaCode
()),
returnData
);
}
return
returnData
;
}
/**
* 搜索
/**
*
* 搜索
* @param vo
*
* @return
* @param vo
*/
* @return
public
Object
marriageSearch
(
SearchReqVo
vo
)
{
*/
if
(
StrUtil
.
isBlank
(
vo
.
getKeyword
()))
{
public
Object
marriageSearch
(
SearchReqVo
vo
)
{
SystemArea
systemArea
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
if
(
StrUtil
.
isBlank
(
vo
.
getKeyword
()))
{
vo
.
setSubAreaCode
(
systemArea
.
subAreaCode
());
SystemArea
systemArea
=
areaDao
.
selectById
(
vo
.
getAreaCode
());
}
vo
.
setSubAreaCode
(
systemArea
.
subAreaCode
());
return
PagingUtils
.
paging
(
vo
,
hyStatsDao:
:
search
);
}
}
return
PagingUtils
.
paging
(
vo
,
hyStatsDao:
:
search
);
}
}
/**
* 获取缓存年统计结婚对数
*
* @param vo
* @return
*/
public
Object
getCacheYearMarriedCouple
(
StatsReqVo
vo
)
{
Object
obj
=
redisUtils
.
getObj
(
PortalCacheKeys
.
getYearMarriedCoupleKey
());
if
(
obj
!=
null
)
{
return
obj
;
}
return
getYearMarriedCouple
(
vo
);
}
/**
* 年统计结婚离婚对数
*
* @param vo
* @return
*/
private
Object
getYearMarriedCouple
(
StatsReqVo
vo
)
{
Integer
iaCount
=
null
;
Integer
ibCount
=
null
;
Map
<
String
,
Object
>
returnData
=
new
HashMap
<>();
List
<
StatsVo
>
yearMarriedCouple
=
hyStatsDao
.
getYearMarriedCouple
(
vo
);
for
(
StatsVo
statsVo:
yearMarriedCouple
)
{
if
(
"IA"
.
equals
(
statsVo
.
getType
()))
{
iaCount
=
statsVo
.
getNum
();
}
else
if
(
"IB"
.
equals
(
statsVo
.
getType
()))
{
ibCount
=
statsVo
.
getNum
();
}
}
returnData
.
put
(
"结婚对数"
,
iaCount
);
returnData
.
put
(
"离婚对数"
,
ibCount
);
return
returnData
;
}
}
portal-server/src/main/java/com/zq/portal/vo/HYVo.java
View file @
18a10678
package
com
.
zq
.
portal
.
vo
;
package
com
.
zq
.
portal
.
vo
;
import
lombok.*
;
import
lombok.*
;
/**
/**
* @author 婚姻
* @author 婚姻
*/
*/
@Getter
@Getter
@Setter
@Setter
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@Builder
@Builder
public
class
HYVo
{
public
class
HYVo
{
private
String
id
;
private
String
id
;
private
String
bookId
;
private
String
bookId
;
/**
/**
* IA或C 结婚 IB 离婚
* IA或C 结婚 IB 离婚
*/
*/
private
String
opType
;
private
String
opType
;
private
String
marryType
;
private
String
marryType
;
private
String
redoType
;
private
String
redoType
;
private
String
deptCode
;
private
String
deptCode
;
private
String
deptName
;
private
String
deptName
;
private
String
nameMan
;
private
String
nameMan
;
private
String
nameWoman
;
private
String
nameWoman
;
private
String
birthMan
;
private
String
birthMan
;
private
String
birthWoman
;
private
String
birthWoman
;
private
String
idTypeMan
;
private
String
idTypeMan
;
private
String
idTypeWoman
;
private
String
idTypeWoman
;
private
String
certTypeMan
;
private
String
certTypeMan
;
private
String
certTypeWoman
;
private
String
certTypeWoman
;
private
String
certNumMan
;
private
String
certNumMan
;
private
String
certNumWoman
;
private
String
certNumWoman
;
private
String
nationMan
;
private
String
nationMan
;
private
String
nationWoman
;
private
String
nationWoman
;
private
String
folkMan
;
private
String
folkMan
;
private
String
folkWoman
;
private
String
folkWoman
;
private
String
jobMan
;
private
String
jobMan
;
private
String
jobWoman
;
private
String
jobWoman
;
private
String
degreeMan
;
private
String
degreeMan
;
private
String
degreeWoman
;
private
String
degreeWoman
;
private
String
marryStatusMan
;
private
String
marryStatusMan
;
private
String
marryStatusWoman
;
private
String
marryStatusWoman
;
private
String
registypeMan
;
private
String
registypeMan
;
private
String
registypeWoman
;
private
String
registypeWoman
;
private
String
regSjMan
;
private
String
regSjMan
;
private
String
regSjWoman
;
private
String
regSjWoman
;
private
String
regDsMan
;
private
String
regDsMan
;
private
String
regDsWoman
;
private
String
regDsWoman
;
private
String
regQxMan
;
private
String
regQxMan
;
private
String
regQxWoman
;
private
String
regQxWoman
;
private
String
regJxMan
;
private
String
regJxMan
;
private
String
regJxWoman
;
private
String
regJxWoman
;
private
String
regDetailMan
;
private
String
regDetailMan
;
private
String
regDetailWoman
;
private
String
regDetailWoman
;
private
String
printNumMan
;
private
String
printNumMan
;
private
String
printNumWoman
;
private
String
printNumWoman
;
private
String
picIdMan
;
private
String
picIdMan
;
private
String
picIdWoman
;
private
String
picIdWoman
;
private
String
certProofMan
;
private
String
certProofMan
;
private
String
certProofWoman
;
private
String
certProofWoman
;
private
String
oldCertNo
;
private
String
oldCertNo
;
private
String
oldDeptId
;
private
String
oldDeptId
;
private
String
oldDeptCode
;
private
String
oldDeptCode
;
private
String
oldDeptName
;
private
String
oldDeptName
;
private
String
oldOpDate
;
private
String
oldOpDate
;
private
String
certNo
;
private
String
certNo
;
private
String
opDate
;
private
String
opDate
;
private
String
operator
;
private
String
operator
;
private
String
operatorId
;
private
String
operatorId
;
private
String
checkCode
;
private
String
checkCode
;
private
String
checkData
;
private
String
checkData
;
private
String
renewFlag
;
private
String
renewFlag
;
private
String
remedyFlag
;
private
String
remedyFlag
;
private
String
cohabitDate
;
private
String
cohabitDate
;
private
String
cancelProof
;
private
String
cancelProof
;
private
String
dataSource
;
private
String
dataSource
;
private
String
docCode
;
private
String
docCode
;
private
String
docYear
;
private
String
docYear
;
private
String
docPageNum
;
private
String
docPageNum
;
private
String
docNo
;
private
String
docNo
;
private
String
divorceReason
;
private
String
divorceReason
;
private
String
redoReason
;
private
String
redoReason
;
private
String
applyMan
;
private
String
applyMan
;
private
String
applyDate
;
private
String
applyDate
;
private
String
delegateFlag
;
private
String
delegateFlag
;
private
String
delegateType
;
private
String
delegateType
;
private
String
delegatedName
;
private
String
delegatedName
;
private
String
delegatedCertType
;
private
String
delegatedCertType
;
private
String
delegatedCertNo
;
private
String
delegatedCertNo
;
private
String
linkKindMan
;
private
String
linkKindMan
;
private
String
linkKindWoman
;
private
String
linkKindWoman
;
private
String
addressNowMan
;
private
String
addressNowMan
;
private
String
addressNowWoman
;
private
String
addressNowWoman
;
private
String
remark
;
private
String
remark
;
private
String
validFlag
;
private
String
validFlag
;
private
String
printRemark
;
private
String
printRemark
;
private
String
nameManEn
;
private
String
nameManEn
;
private
String
nameWomanEn
;
private
String
nameWomanEn
;
}
}
portal-server/src/main/java/com/zq/portal/vo/SearchReqVo.java
View file @
18a10678
package
com
.
zq
.
portal
.
vo
;
package
com
.
zq
.
portal
.
vo
;
import
com.zq.common.vo.PageReqVo
;
import
com.zq.common.vo.PageReqVo
;
import
com.zq.portal.entity.SystemArea
;
import
com.zq.portal.entity.SystemArea
;
import
lombok.*
;
import
lombok.*
;
@Data
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Builder
@Builder
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@NoArgsConstructor
public
class
SearchReqVo
extends
PageReqVo
{
public
class
SearchReqVo
extends
PageReqVo
{
@Builder
.
Default
@Builder
.
Default
private
String
areaCode
=
"450000000000"
;
private
String
areaCode
=
"450000000000"
;
private
String
subAreaCode
;
private
String
subAreaCode
;
private
String
keyword
;
private
String
keyword
;
public
String
getAreaCode
()
{
private
String
IAcount
;
return
SystemArea
.
patchZero
(
areaCode
);
}
private
String
IBcount
;
}
public
String
getAreaCode
()
{
return
SystemArea
.
patchZero
(
areaCode
);
}
}
portal-server/src/main/resources/mapper/CjStatsMapper.xml
View file @
18a10678
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.portal.dao.CjStatsDao"
>
<mapper
namespace=
"com.zq.portal.dao.CjStatsDao"
>
<select
id=
"getPeopleAmountStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getPeopleAmountStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', SUM( SUBSIDY_STANDARD_MONEY ) 'amount', `YEAR` 'year'
SELECT COUNT(1) 'num', SUM( SUBSIDY_STANDARD_MONEY ) 'amount', `YEAR` 'year'
FROM `cjrjz_application`
FROM `cjrjz_application`
WHERE CHECK_STATUS = 1
WHERE CHECK_STATUS = 1
AND `STATUS` = 0
AND `STATUS` = 0
AND APPROVE_DATE IS NOT NULL
AND APPROVE_DATE IS NOT NULL
GROUP BY `YEAR`
GROUP BY `YEAR`
ORDER BY `YEAR` DESC LIMIT 5
ORDER BY `YEAR` DESC LIMIT 5
</select>
</select>
<select
id=
"getDisabledLevelStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getDisabledLevelStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT ENSURE_LEVEL_ID 'type', COUNT( 1 ) 'num'
SELECT ENSURE_LEVEL_ID 'type', COUNT( 1 ) 'num'
FROM `cjrjz_proposer`
FROM `cjrjz_proposer`
WHERE ENSURE_LEVEL_ID IS NOT NULL
WHERE ENSURE_LEVEL_ID IS NOT NULL
<if
test=
"type != null"
>
<if
test=
"type != null"
>
AND ENSURE_LEVEL_ID = #{type}
AND ENSURE_LEVEL_ID = #{type}
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND LEFT(CREATE_DATE, 4) = #{year}
AND LEFT(CREATE_DATE, 4) = #{year}
</if>
</if>
GROUP BY ENSURE_LEVEL_ID
GROUP BY ENSURE_LEVEL_ID
</select>
</select>
<!--获取近年重度残疾人数-->
<!--获取近年重度残疾人数-->
<select
id=
"getYearSevereDisabledStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getYearSevereDisabledStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT ( CREATE_DATE, 4 ) 'year',
LEFT ( CREATE_DATE, 4 ) 'year',
COUNT( 1 ) 'num'
COUNT( 1 ) 'num'
FROM
FROM
`cjrjz_proposer`
`cjrjz_proposer`
WHERE
WHERE
ENSURE_LEVEL_ID IS NOT NULL
ENSURE_LEVEL_ID IS NOT NULL
AND ENSURE_LEVEL_ID IN (1,2)
AND ENSURE_LEVEL_ID IN (1,2)
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND LEFT(CREATE_DATE, 4) = #{year}
AND LEFT(CREATE_DATE, 4) = #{year}
</if>
</if>
GROUP BY LEFT ( CREATE_DATE, 4 )
GROUP BY LEFT ( CREATE_DATE, 4 )
ORDER BY LEFT ( CREATE_DATE, 4 ) DESC
ORDER BY LEFT ( CREATE_DATE, 4 ) DESC
LIMIT #{size}
LIMIT #{size}
</select>
</select>
<select
id=
"getSeverePeopleNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getSeverePeopleNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
COUNT( 1 ) 'num'
COUNT( 1 ) 'num'
FROM
FROM
`cjrjz_proposer`
`cjrjz_proposer`
WHERE
WHERE
ENSURE_LEVEL_ID IS NOT NULL
ENSURE_LEVEL_ID IS NOT NULL
AND ENSURE_LEVEL_ID IN (1,2)
AND ENSURE_LEVEL_ID IN (1,2)
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND LEFT(CREATE_DATE, 4) = #{year}
AND LEFT(CREATE_DATE, 4) = #{year}
</if>
</if>
</select>
</select>
<select
id=
"getDifficultPeopleNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getDifficultPeopleNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
COUNT( 1 ) 'num'
COUNT( 1 ) 'num'
FROM
FROM
`cjrjz_proposer`
`cjrjz_proposer`
WHERE
WHERE
ENSURE_LEVEL_ID IS NOT NULL
ENSURE_LEVEL_ID IS NOT NULL
AND ENSURE_LEVEL_ID IN (3,4)
AND ENSURE_LEVEL_ID IN (3,4)
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND LEFT(CREATE_DATE, 4) = #{year}
AND LEFT(CREATE_DATE, 4) = #{year}
</if>
</if>
</select>
</select>
<select
id=
"getAreaIssueStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getAreaIssueStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT LEFT(UNIT_ID, #{size}) 'code', APPLY_TYPE_ID 'type', GRANT_YEAR 'year', COUNT_PEOPLE 'num', SUM_MONEY
SELECT LEFT(UNIT_ID, #{size}) 'code', APPLY_TYPE_ID 'type', GRANT_YEAR 'year', COUNT_PEOPLE 'num', SUM_MONEY
'amount'
'amount'
FROM `statics_grant`
FROM `statics_grant`
WHERE DATE_FORMAT(create_time, '%Y-%m-%d') = (SELECT DATE_FORMAT(create_time, '%Y-%m-%d') FROM statics_grant ORDER BY create_time DESC LIMIT 1)
WHERE
AND CHAR_LENGTH (LEFT ( UNIT_ID, #{size} )) = #{size}
# DATE_FORMAT(create_time, '%Y-%m-%d') = (SELECT DATE_FORMAT(create_time, '%Y-%m-%d') FROM statics_grant ORDER BY create_time DESC LIMIT 1)
<if
test=
"year != null"
>
CHAR_LENGTH (LEFT ( UNIT_ID, #{size} )) = #{size}
AND GRANT_YEAR = #{year}
<if
test=
"year != null"
>
</if>
AND GRANT_YEAR = #{year}
<if
test=
"type != null"
>
</if>
AND APPLY_TYPE_ID = #{type}
<if
test=
"type != null"
>
</if>
AND APPLY_TYPE_ID = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
</if>
AND UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
</if>
AND UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
GROUP BY LEFT(UNIT_ID, #{size})
</if>
</select>
GROUP BY LEFT(UNIT_ID, #{size})
</select>
<select
id=
"getAreaSubsidyStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT LEFT(AREACODE, #{size}) 'code', FF_DATE 'month',SUM(FF_ZD_PC ) 'hlnum', SUM(FF_ZD_MC) 'hlamount',SUM(FF_KUN_PC) 'shnum', SUM(FF_KUN_MC) 'shamount'
<select
id=
"getAreaSubsidyStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
FROM `ff_data_jm`
SELECT LEFT(AREACODE, #{size}) 'code', FF_DATE 'month',SUM(FF_ZD_PC ) 'hlnum', SUM(FF_ZD_MC) 'hlamount',SUM(FF_KUN_PC) 'shnum', SUM(FF_KUN_MC) 'shamount'
WHERE
FROM `ff_data_jm`
CHAR_LENGTH (LEFT ( AREACODE, #{size} )) = #{size}
WHERE
AND FF_DATE = DATE_FORMAT(NOW(),'%Y-%m')
CHAR_LENGTH (LEFT ( AREACODE, #{size} )) = #{size}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND FF_DATE = DATE_FORMAT(NOW(),'%Y-%m')
AND AREACODE LIKE CONCAT(#{subAreaCode}, '%')
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
</if>
AND AREACODE LIKE CONCAT(#{subAreaCode}, '%')
GROUP BY LEFT(AREACODE, #{size})
</if>
</select>
GROUP BY LEFT(AREACODE, #{size})
</select>
<select
id=
"getEnjoySumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT SUM(S_PC) 'num' , SUM(S_MC) 'amount'
<select
id=
"getEnjoySumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
FROM ff_data_jm
SELECT SUM(S_PC) 'num' , SUM(S_MC) 'amount'
WHERE FF_DATE = DATE_FORMAT(NOW(),'%Y-%m')
FROM ff_data_jm
</select>
WHERE FF_DATE = DATE_FORMAT(NOW(),'%Y-%m')
</select>
<select
id=
"getYearIssueStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT APPLY_TYPE_ID 'type', GRANT_YEAR 'year', SUM( COUNT_PEOPLE ) 'num', SUM( SUM_MONEY ) 'amount'
<select
id=
"getYearIssueStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
FROM `statics_grant`
SELECT APPLY_TYPE_ID 'type', GRANT_YEAR 'year', SUM( COUNT_PEOPLE ) 'num', SUM( SUM_MONEY ) 'amount'
WHERE DATE_FORMAT(create_time, '%Y-%m-%d') = (SELECT DATE_FORMAT(create_time, '%Y-%m-%d') FROM statics_grant
FROM `statics_grant`
ORDER BY create_time DESC LIMIT 1)
WHERE 1=1
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
# DATE_FORMAT(create_time, '%Y-%m-%d') = (SELECT DATE_FORMAT(create_time, '%Y-%m-%d') FROM statics_grant
AND UNIT_ID LIKE CONCAT( #{subAreaCode}, '%' )
# ORDER BY create_time DESC LIMIT 1)
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"type != null"
>
AND UNIT_ID LIKE CONCAT( #{subAreaCode}, '%' )
AND APPLY_TYPE_ID = #{type}
</if>
</if>
<if
test=
"type != null"
>
GROUP BY GRANT_YEAR
AND APPLY_TYPE_ID = #{type}
ORDER BY GRANT_YEAR DESC LIMIT #{size}
</if>
</select>
GROUP BY GRANT_YEAR
ORDER BY GRANT_YEAR DESC LIMIT #{size}
<select
id=
"getYearList"
resultType=
"java.lang.String"
>
</select>
SELECT GRANT_YEAR 'year'
FROM `statics_grant`
<select
id=
"getYearList"
resultType=
"java.lang.String"
>
GROUP BY GRANT_YEAR
SELECT GRANT_YEAR 'year'
ORDER BY GRANT_YEAR DESC LIMIT 5
FROM `statics_grant`
</select>
GROUP BY GRANT_YEAR
ORDER BY GRANT_YEAR DESC LIMIT 5
<select
id=
"search"
resultType=
"java.util.Map"
>
</select>
SELECT NAME 'name', CARD_CODE 'idCard',MARRY_TYPE_ID 'marryType', REGISTER_ADDRESS_NAME
'addressName',ENSURE_LEVEL_ID 'levelId', CREATE_DATE 'createTime'
<select
id=
"search"
resultType=
"java.util.Map"
>
FROM
SELECT NAME 'name', CARD_CODE 'idCard',MARRY_TYPE_ID 'marryType', REGISTER_ADDRESS_NAME
cjrjz_proposer
'addressName',ENSURE_LEVEL_ID 'levelId', CREATE_DATE 'createTime'
WHERE 1=1
FROM
<if
test=
"keyword != null and keyword != ''"
>
cjrjz_proposer
AND (NAME =#{keyword} OR CARD_CODE =#{keyword})
WHERE 1=1
</if>
<if
test=
"keyword != null and keyword != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND (NAME =#{keyword} OR CARD_CODE =#{keyword})
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
ORDER BY CREATE_DATE DESC
AND CARD_CODE LIKE CONCAT(#{subAreaCode}, '%')
</select>
</if>
ORDER BY CREATE_DATE DESC
</mapper>
</select>
</mapper>
portal-server/src/main/resources/mapper/HyStatsMapper.xml
View file @
18a10678
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.portal.dao.HyStatsDao"
>
<mapper
namespace=
"com.zq.portal.dao.HyStatsDao"
>
<select
id=
"getFivesYearMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getFivesYearMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y" ) 'year'
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y" ) 'year'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0072 = '1'
WHERE m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
AND DATE_FORMAT(m.AIAX0048, "%Y")
<
= YEAR(NOW())
AND DATE_FORMAT(m.AIAX0048, "%Y")
<
= YEAR(NOW())
AND m.AIAX0001 = #{type}
AND m.AIAX0001 = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
GROUP BY DATE_FORMAT(m.AIAX0048, "%Y")
GROUP BY DATE_FORMAT(m.AIAX0048, "%Y")
ORDER BY DATE_FORMAT(m.AIAX0048, "%Y") DESC LIMIT 5
ORDER BY DATE_FORMAT(m.AIAX0048, "%Y") DESC LIMIT 5
</select>
</select>
<select
id=
"getMonthMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getMonthMarriageLine"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y-%m" ) 'month'
SELECT COUNT(1) 'num', m.AIAX0001 'type', DATE_FORMAT( m.AIAX0048, "%Y-%m" ) 'month'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0072 = '1'
WHERE m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
AND m.AIAX0001 = #{type}
AND m.AIAX0001 = #{type}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
GROUP BY DATE_FORMAT(m.AIAX0048, '%Y-%m')
GROUP BY DATE_FORMAT(m.AIAX0048, '%Y-%m')
ORDER BY DATE_FORMAT(m.AIAX0048, '%Y-%m') DESC LIMIT 12
ORDER BY DATE_FORMAT(m.AIAX0048, '%Y-%m') DESC LIMIT 12
</select>
</select>
<select
id=
"getMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
COUNT( 1 ) 'num',
COUNT( 1 ) 'num',
m.AIAX0001 'type'
m.AIAX0001 'type'
FROM
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
WHERE
m.AIAX0072 = '1'
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
AND m.AIAX0059 = #{year}
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
GROUP BY
GROUP BY
m.AIAX0001
m.AIAX0001
</select>
</select>
<!--获取下级区域婚姻统计列表-->
<!--获取下级区域婚姻统计列表-->
<select
id=
"getAreaUnderMarriageStatsList"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getAreaUnderMarriageStatsList"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT ( t.YAB003, #{size} ) 'code',
LEFT ( t.YAB003, #{size} ) 'code',
m.AIAX0001 'type' ,
m.AIAX0001 'type' ,
COUNT( 1 ) 'num'
COUNT( 1 ) 'num'
FROM
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
WHERE
m.AIAX0072 = '1'
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
AND CHAR_LENGTH (LEFT ( t.YAB003, #{size} )) = #{size}
AND CHAR_LENGTH (LEFT ( t.YAB003, #{size} )) = #{size}
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
AND m.AIAX0059 = #{year}
</if>
</if>
<if
test=
"type != null and type != ''"
>
<if
test=
"type != null and type != ''"
>
AND m.AIAX0001 = #{type}
AND m.AIAX0001 = #{type}
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT( #{subAreaCode}, '%' )
AND t.YAB003 LIKE CONCAT( #{subAreaCode}, '%' )
</if>
</if>
GROUP BY
GROUP BY
LEFT ( t.YAB003, #{size} ), m.AIAX0001
LEFT ( t.YAB003, #{size} ), m.AIAX0001
</select>
</select>
<!--获取跨地婚姻统计-->
<!--获取跨地婚姻统计-->
<select
id=
"getCrossMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getCrossMarriageStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
COUNT( 1 ) 'num',
COUNT( 1 ) 'num',
m.AIAX0001 'type'
m.AIAX0001 'type'
FROM
FROM
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE
WHERE
m.AIAX0072 = '1'
m.AIAX0072 = '1'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
AND LEFT(m.AIAP0013,4) != LEFT(t.YAB003,4)
AND LEFT(m.AIAP0013,4) != LEFT(t.YAB003,4)
AND LEFT(m.AIAP0014,4) != LEFT(t.YAB003,4)
AND LEFT(m.AIAP0014,4) != LEFT(t.YAB003,4)
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
AND m.AIAX0059 = #{year}
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
GROUP BY
GROUP BY
m.AIAX0001
m.AIAX0001
</select>
</select>
<!--获取离婚中的人数-->
<!--获取离婚中的人数-->
<select
id=
"getInDivorceNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getInDivorceNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type'
SELECT COUNT(1) 'num', m.AIAX0001 'type'
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
FROM mrcase m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0001 = 'IB'
WHERE m.AIAX0001 = 'IB'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
AND m.AIAX0072 != '1'
AND m.AIAX0072 != '1'
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
AND m.AIAX0059 = #{year}
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
</select>
</select>
<!--获取结婚人数-->
<!--获取结婚人数-->
<select
id=
"getMarryNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getMarryNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT COUNT(1) 'num', m.AIAX0001 'type'
SELECT COUNT(1) 'num', m.AIAX0001 'type'
FROM mrcase m JOIN taorg t ON m.AIAX0003 = t.ORGID
FROM mrcase m JOIN taorg t ON m.AIAX0003 = t.ORGID
WHERE m.AIAX0001 = 'IA'
WHERE m.AIAX0001 = 'IA'
AND m.BIAX0075 = '1'
AND m.BIAX0075 = '1'
AND m.AIAX0072 = '1'
AND m.AIAX0072 = '1'
<if
test=
"year != null"
>
<if
test=
"year != null"
>
AND m.AIAX0059 = #{year}
AND m.AIAX0059 = #{year}
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
</select>
</select>
<select
id=
"getMonthDivorceCoolingData"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getMonthDivorceCoolingData"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT (m.AIAX0048, 10),
LEFT (m.AIAX0048, 10),
COUNT (1) 'num'
COUNT (1) 'num'
FROM
FROM
mrcheck m
mrcheck m
LEFT JOIN mrcheckappend ma
LEFT JOIN mrcheckappend ma
ON m.BIAX0069 = ma.BIAX0069
ON m.BIAX0069 = ma.BIAX0069
WHERE
WHERE
m.AIAX0001 = 'IB'
m.AIAX0001 = 'IB'
AND m.AIAX0072 = '1'
AND m.AIAX0072 = '1'
AND m.BIAX0015 = '6'
AND m.BIAX0015 = '6'
AND ma.COLEENDTIME
AND ma.COLEENDTIME
<
CURDATE()
<
CURDATE()
GROUP BY LEFT (m.AIAX0048, 10)
GROUP BY LEFT (m.AIAX0048, 10)
</select>
</select>
<!-- <select id="search" resultType="java.util.Map">-->
<!-- <select id="search" resultType="java.util.Map">-->
<!-- SELECT m.AIAX0001 'businessType', m.AIAP0005 'manName', m.AIAP0006 'girlName', m.AIAP0013 'manIdCard', m.AIAP0014-->
<!-- SELECT m.AIAX0001 'businessType', m.AIAP0005 'manName', m.AIAP0006 'girlName', m.AIAP0013 'manIdCard', m.AIAP0014-->
<!-- 'girlIdCard',-->
<!-- 'girlIdCard',-->
<!-- m.AIAP0015 'manNationality', m.AIAP0016 'girlNationality', m.AIAP0023 'manState', m.AIAP0024 'girlState',-->
<!-- m.AIAP0015 'manNationality', m.AIAP0016 'girlNationality', m.AIAP0023 'manState', m.AIAP0024 'girlState',-->
<!-- m.AIAP0027-->
<!-- m.AIAP0027-->
<!-- 'manDomicile', m.AIAP0028 'girlDomicile', m.AIAX0035 'manContact', m.AIAX0036 'girlContact', m.AIAX0059-->
<!-- 'manDomicile', m.AIAP0028 'girlDomicile', m.AIAX0035 'manContact', m.AIAX0036 'girlContact', m.AIAX0059-->
<!-- 'archiveYear',-->
<!-- 'archiveYear',-->
<!-- LEFT (m.AIAX0048, 10) 'registerDate', m.AIAE0004 'orgName'-->
<!-- LEFT (m.AIAX0048, 10) 'registerDate', m.AIAE0004 'orgName'-->
<!-- FROM `mrcase` m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID-->
<!-- FROM `mrcase` m LEFT JOIN taorg t ON m.AIAX0003 = t.ORGID-->
<!-- WHERE 1=1-->
<!-- WHERE 1=1-->
<!-- <if test="keyword != null and keyword != ''">-->
<!-- <if test="keyword != null and keyword != ''">-->
<!-- AND (m.AIAP0005 = #{keyword} OR AIAP0006 = #{keyword} OR AIAP0013 = #{keyword} OR AIAP0014 = #{keyword})-->
<!-- AND (m.AIAP0005 = #{keyword} OR AIAP0006 = #{keyword} OR AIAP0013 = #{keyword} OR AIAP0014 = #{keyword})-->
<!-- </if>-->
<!-- </if>-->
<!-- <if test="subAreaCode != null and subAreaCode != ''">-->
<!-- <if test="subAreaCode != null and subAreaCode != ''">-->
<!-- AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')-->
<!-- AND t.YAB003 LIKE CONCAT(#{subAreaCode},'%')-->
<!-- </if>-->
<!-- </if>-->
<!-- ORDER BY m.AIAX0048 DESC-->
<!-- ORDER BY m.AIAX0048 DESC-->
<!-- </select>-->
<!-- </select>-->
<select
id=
"search"
resultType=
"java.util.Map"
>
<select
id=
"search"
resultType=
"java.util.Map"
>
SELECT businessType, manName, girlName, manIdCard, girlIdCard,
SELECT businessType, manName, girlName, manIdCard, girlIdCard,
manNationality, girlNationality, manState, girlState, manDomicile,
manNationality, girlNationality, manState, girlState, manDomicile,
girlDomicile, manContact, girlContact, archiveYear, registerDate, orgName, areaCode
girlDomicile, manContact, girlContact, archiveYear, registerDate, orgName, areaCode
FROM `search_data`
FROM `search_data`
WHERE 1=1
WHERE 1=1
<if
test=
"keyword != null and keyword != ''"
>
<if
test=
"keyword != null and keyword != ''"
>
AND (manName = #{keyword} OR girlName = #{keyword} OR manIdCard = #{keyword} OR girlIdCard = #{keyword})
AND (manName = #{keyword} OR girlName = #{keyword} OR manIdCard = #{keyword} OR girlIdCard = #{keyword})
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND areaCode LIKE CONCAT(#{subAreaCode},'%')
AND areaCode LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
ORDER BY registerDate DESC
ORDER BY registerDate DESC
</select>
</select>
<select
id=
"getYearMarriedCouple"
resultType=
"com.zq.portal.vo.StatsVo"
>
</mapper>
SELECT
COUNT( 1 )
FROM
MRCASE m
WHERE
1=1
<if
test=
"type != null and type != ''"
>
AND m.AIAX0001 = #{type}
</if>
AND BIAX0075 = '1'
AND AIAX0072 = '1'
AND DATE_FORMAT(AIAX0048,'%Y%m') >= '202201'
AND DATE_FORMAT(AIAX0048,'%Y%m')
<
= '202212'
</select>
</mapper>
portal-server/src/main/resources/mapper/ShjzStatsDao.xml
View file @
18a10678
<?xml version="1.0" encoding="UTF-8"?>
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.portal.dao.ShjzStatsDao"
>
<mapper
namespace=
"com.zq.portal.dao.ShjzStatsDao"
>
<!-- <select id="search" resultType="java.util.Map">-->
<!-- <select id="search" resultType="java.util.Map">-->
<!-- SELECT AXDF0002 'name', AXDF0004 'mainIdCard', AXDF0011 'phone',AXDF0008 'address', AXAA2701 'unitCode'-->
<!-- SELECT AXDF0002 'name', AXDF0004 'mainIdCard', AXDF0011 'phone',AXDF0008 'address', AXAA2701 'unitCode'-->
<!-- ,UPDATETIME 'createTime'-->
<!-- ,UPDATETIME 'createTime'-->
<!-- FROM-->
<!-- FROM-->
<!-- baf01-->
<!-- baf01-->
<!-- WHERE 1 = 1-->
<!-- WHERE 1 = 1-->
<!-- <choose>-->
<!-- <choose>-->
<!-- <when test="keyword != null and keyword != ''">-->
<!-- <when test="keyword != null and keyword != ''">-->
<!-- AND (AXDF0002 = #{keyword}-->
<!-- AND (AXDF0002 = #{keyword}-->
<!-- OR AXDF0004 = #{keyword})-->
<!-- OR AXDF0004 = #{keyword})-->
<!-- </when>-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- <otherwise>-->
<!-- ORDER BY UPDATETIME DESC LIMIT 20-->
<!-- ORDER BY UPDATETIME DESC LIMIT 20-->
<!-- </otherwise>-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- </choose>-->
<!-- </select>-->
<!-- </select>-->
<select
id=
"search"
resultType=
"java.util.Map"
>
<select
id=
"search"
resultType=
"java.util.Map"
>
SELECT
SELECT
REPLACE(address, '广西壮族自治区-', '') 'address',
REPLACE(address, '广西壮族自治区-', '') 'address',
NAME 'name',
NAME 'name',
id_card 'idCard',
id_card 'idCard',
help_type 'helpType',
help_type 'helpType',
help_amount 'helpAmount',
help_amount 'helpAmount',
provide_state 'provideState',
provide_state 'provideState',
start_provide_date 'startProvideDate',
start_provide_date 'startProvideDate',
end_provide_date 'endProvideDate'
end_provide_date 'endProvideDate'
FROM
FROM
`gw_temptable_20210630`
`gw_temptable_20210630`
WHERE 1 = 1
WHERE 1 = 1
<if
test=
"keyword != null and keyword != ''"
>
<if
test=
"keyword != null and keyword != ''"
>
AND (NAME = #{keyword}
AND (NAME = #{keyword}
OR id_card = #{keyword})
OR id_card = #{keyword})
</if>
</if>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND id_card LIKE CONCAT(#{subAreaCode},'%')
AND id_card LIKE CONCAT(#{subAreaCode},'%')
</if>
</if>
ORDER BY start_provide_date DESC
ORDER BY start_provide_date DESC
</select>
</select>
<select
id=
"getEnjoyNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getEnjoyNum"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
( CASE h.ISCITY
( CASE h.ISCITY
WHEN 0 THEN '农村低保'
WHEN 0 THEN '农村低保'
WHEN 1 THEN '城市低保'
WHEN 1 THEN '城市低保'
WHEN 6 THEN '特困供养'
WHEN 6 THEN '特困供养'
WHEN 10 THEN '农村低收入'
WHEN 10 THEN '农村低收入'
WHEN 11 THEN '城市低收入'
WHEN 11 THEN '城市低收入'
WHEN 21 THEN '住房救助'
WHEN 21 THEN '住房救助'
WHEN 31 THEN '城市特困'
WHEN 31 THEN '城市特困'
ELSE '其他' END ) 'type',
ELSE '其他' END ) 'type',
SUM( h.SURE_POPULATION ) 'num'
SUM( h.SURE_POPULATION ) 'num'
FROM ENBUZ_APPLY_HOME h
FROM ENBUZ_APPLY_HOME h
WHERE h.VP_STATE = 4
WHERE h.VP_STATE = 4
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m-%d" )
<
= #{date}
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m-%d" )
<
= #{date}
AND DATE_FORMAT( h.STOP_DATE, "%Y-%m-%d" ) >= #{date}
AND DATE_FORMAT( h.STOP_DATE, "%Y-%m-%d" ) >= #{date}
GROUP BY
GROUP BY
ISCITY
ISCITY
</select>
</select>
<select
id=
"getTemporaryNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getTemporaryNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT(h.UNIT_ID, 4) 'code',
LEFT(h.UNIT_ID, 4) 'code',
SUM(h.SURE_POPULATION ) 'num'
SUM(h.SURE_POPULATION ) 'num'
FROM
FROM
tem_home_his h
tem_home_his h
WHERE
WHERE
h.VP_STATE = 4
h.VP_STATE = 4
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<choose>
<choose>
<when
test=
"year != null"
>
<when
test=
"year != null"
>
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = #{year}
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = #{year}
</when>
</when>
<otherwise>
<otherwise>
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = DATE_FORMAT(NOW(), "%Y" )
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = DATE_FORMAT(NOW(), "%Y" )
</otherwise>
</otherwise>
</choose>
</choose>
</select>
</select>
<select
id=
"getBorderNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getBorderNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT(h.UNIT_ID, #{size}) 'code',
LEFT(h.UNIT_ID, #{size}) 'code',
sum( h.SURE_POPULATION ) 'num'
sum( h.SURE_POPULATION ) 'num'
FROM
FROM
border_region_home h
border_region_home h
WHERE h.VP_STATE = 4
WHERE h.VP_STATE = 4
AND h.ISCITY = 8
AND h.ISCITY = 8
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<choose>
<choose>
<when
test=
"year != null"
>
<when
test=
"year != null"
>
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = #{year}
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = #{year}
</when>
</when>
<otherwise>
<otherwise>
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = DATE_FORMAT(NOW(), "%Y" )
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) = DATE_FORMAT(NOW(), "%Y" )
</otherwise>
</otherwise>
</choose>
</choose>
</select>
</select>
<select
id=
"getAreaUnderNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getAreaUnderNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT(h.UNIT_ID, #{size}) 'code',
LEFT(h.UNIT_ID, #{size}) 'code',
h.ISCITY 'type',
h.ISCITY 'type',
SUM( h.SURE_POPULATION ) 'num'
SUM( h.SURE_POPULATION ) 'num'
FROM
FROM
ENBUZ_APPLY_HOME h
ENBUZ_APPLY_HOME h
WHERE h.VP_STATE = 4
WHERE h.VP_STATE = 4
AND LEFT(h.UNIT_ID, #{size}) IS NOT NULL
AND LEFT(h.UNIT_ID, #{size}) IS NOT NULL
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"type != null and type != ''"
>
<if
test=
"type != null and type != ''"
>
AND h.ISCITY = #{type}
AND h.ISCITY = #{type}
</if>
</if>
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m-%d" )
<
= '2021-12-01'
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m-%d" )
<
= '2021-12-01'
AND DATE_FORMAT( h.STOP_DATE, "%Y-%m-%d" ) >= '2021-12-01'
AND DATE_FORMAT( h.STOP_DATE, "%Y-%m-%d" ) >= '2021-12-01'
GROUP BY
GROUP BY
LEFT(h.UNIT_ID, #{size}),
LEFT(h.UNIT_ID, #{size}),
type
type
</select>
</select>
<select
id=
"getAreaTotalNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getAreaTotalNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
h.ISCITY 'type',
h.ISCITY 'type',
SUM( h.SURE_POPULATION ) 'num'
SUM( h.SURE_POPULATION ) 'num'
FROM
FROM
ENBUZ_APPLY_HOME h
ENBUZ_APPLY_HOME h
WHERE h.VP_STATE = 4
WHERE h.VP_STATE = 4
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m-%d" )
<
= '2021-12-01'
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m-%d" )
<
= '2021-12-01'
AND DATE_FORMAT( h.STOP_DATE, "%Y-%m-%d" ) >= '2021-12-01'
AND DATE_FORMAT( h.STOP_DATE, "%Y-%m-%d" ) >= '2021-12-01'
AND h.ISCITY IN(0,1)
AND h.ISCITY IN(0,1)
GROUP BY
GROUP BY
type
type
</select>
</select>
<!--
<!--
SELECT DATE_FORMAT(h.PERMIT_DATE, "%Y-%m") 'date',
SELECT DATE_FORMAT(h.PERMIT_DATE, "%Y-%m") 'date',
( CASE h.ISCITY
( CASE h.ISCITY
WHEN 0 THEN '农村低保'
WHEN 0 THEN '农村低保'
WHEN 1 THEN '城市低保'
WHEN 1 THEN '城市低保'
WHEN 6 THEN '特困供养'
WHEN 6 THEN '特困供养'
WHEN 10 THEN '农村低收入'
WHEN 10 THEN '农村低收入'
WHEN 11 THEN '城市低收入'
WHEN 11 THEN '城市低收入'
WHEN 21 THEN '住房救助'
WHEN 21 THEN '住房救助'
WHEN 31 THEN '城市特困'
WHEN 31 THEN '城市特困'
ELSE '其他' END ) 'type',
ELSE '其他' END ) 'type',
SUM( h.SURE_POPULATION ) 'num'
SUM( h.SURE_POPULATION ) 'num'
FROM ENBUZ_APPLY_HOME h
FROM ENBUZ_APPLY_HOME h
WHERE h.VP_STATE = 4
WHERE h.VP_STATE = 4
AND h.ISCITY IN(0, 1)
AND h.ISCITY IN(0, 1)
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) > DATE_FORMAT(NOW(), "%Y" ) - 5
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) > DATE_FORMAT(NOW(), "%Y" ) - 5
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) <= DATE_FORMAT(NOW(), "%Y" )
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) <= DATE_FORMAT(NOW(), "%Y" )
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m" ) <= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), "%Y-%m")
AND DATE_FORMAT( h.PERMIT_DATE, "%Y-%m" ) <= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), "%Y-%m")
AND h.UNIT_ID LIKE CONCAT('45', '%')
AND h.UNIT_ID LIKE CONCAT('45', '%')
GROUP BY
GROUP BY
DATE_FORMAT( h.PERMIT_DATE, "%Y-%m" ),
DATE_FORMAT( h.PERMIT_DATE, "%Y-%m" ),
ISCITY
ISCITY
-->
-->
<select
id=
"getFivesYearEnjoyStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getFivesYearEnjoyStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT LEFT(date, 4) 'year', type, SUM(num) 'num' FROM ( SELECT DATE_FORMAT(h.PERMIT_DATE, "%Y-%m") 'date',
SELECT LEFT(date, 4) 'year', type, SUM(num) 'num' FROM ( SELECT DATE_FORMAT(h.PERMIT_DATE, "%Y-%m") 'date',
( CASE h.ISCITY
( CASE h.ISCITY
WHEN 0 THEN '农村低保'
WHEN 0 THEN '农村低保'
WHEN 1 THEN '城市低保'
WHEN 1 THEN '城市低保'
WHEN 6 THEN '特困供养'
WHEN 6 THEN '特困供养'
WHEN 10 THEN '农村低收入'
WHEN 10 THEN '农村低收入'
WHEN 11 THEN '城市低收入'
WHEN 11 THEN '城市低收入'
WHEN 21 THEN '住房救助'
WHEN 21 THEN '住房救助'
WHEN 31 THEN '城市特困'
WHEN 31 THEN '城市特困'
ELSE '其他' END ) 'type',
ELSE '其他' END ) 'type',
SUM( h.SURE_POPULATION ) 'num'
SUM( h.SURE_POPULATION ) 'num'
FROM ENBUZ_APPLY_HOME h
FROM ENBUZ_APPLY_HOME h
WHERE h.VP_STATE = 4
WHERE h.VP_STATE = 4
AND h.ISCITY IN(0, 1)
AND h.ISCITY IN(0, 1)
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) > DATE_FORMAT(NOW(), "%Y" ) - 5
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" ) > DATE_FORMAT(NOW(), "%Y" ) - 5
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" )
<
= DATE_FORMAT(NOW(), "%Y" )
AND DATE_FORMAT( h.PERMIT_DATE, "%Y" )
<
= DATE_FORMAT(NOW(), "%Y" )
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
AND h.UNIT_ID LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
GROUP BY
GROUP BY
DATE_FORMAT( h.PERMIT_DATE, "%Y-%m" ),
DATE_FORMAT( h.PERMIT_DATE, "%Y-%m" ),
ISCITY) t
ISCITY) t
WHERE type IN("城市低保","农村低保")
WHERE type IN("城市低保","农村低保")
GROUP BY
GROUP BY
LEFT(date, 4),
LEFT(date, 4),
type
type
</select>
</select>
<select
id=
"getPeopleNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getPeopleNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT ( a.area_code, #{size} ) 'code',
LEFT ( a.area_code, #{size} ) 'code',
a.type 'type',
a.type 'type',
SUM(a.people_num) 'num'
SUM(a.people_num) 'num'
FROM city_coutry
_2021 a
FROM city_coutry
a
WHERE
WHERE
CHAR_LENGTH (LEFT ( a.area_code, #{size} )) = #{size}
CHAR_LENGTH (LEFT ( a.area_code, #{size} )) = #{size}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND a.area_code LIKE CONCAT(#{subAreaCode}, '%')
AND a.area_code LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"type != null and type != ''"
>
<if
test=
"type != null and type != ''"
>
AND a.type = #{type}
AND a.type = #{type}
</if>
</if>
GROUP BY
GROUP BY
LEFT ( a.area_code, #{size} ),
LEFT ( a.area_code, #{size} ),
a.type
a.type
</select>
</select>
<!-- iscity = 1 是城市 0是农村 -->
<!-- iscity = 1 是城市 0是农村 -->
<select
id=
"getMonyNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
<select
id=
"getMonyNumStats"
resultType=
"com.zq.portal.vo.StatsVo"
>
SELECT
SELECT
LEFT(p.unit_id, #{size}) 'code',
LEFT(p.unit_id, #{size}) 'code',
p.iscity 'type',
p.iscity 'type',
SUM( p.money ) 'amount'
SUM( p.money ) 'amount'
FROM
FROM
mon_pay p
mon_pay p
WHERE
WHERE
p.pay_state = 2
p.pay_state = 2
AND p.vp_state = 4
AND p.vp_state = 4
AND DATE_FORMAT( p.pmonth, "%Y-%m-%d" ) >= '2021-12-01'
AND DATE_FORMAT( p.pmonth, "%Y-%m-%d" ) >= '2021-12-01'
AND DATE_FORMAT( p.pmonth, "%Y-%m-%d" )
<
= '2021-12-01'
AND DATE_FORMAT( p.pmonth, "%Y-%m-%d" )
<
= '2021-12-01'
AND CHAR_LENGTH (LEFT ( p.unit_id, #{size} )) = #{size}
AND CHAR_LENGTH (LEFT ( p.unit_id, #{size} )) = #{size}
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
<if
test=
"subAreaCode != null and subAreaCode != ''"
>
AND p.unit_id LIKE CONCAT(#{subAreaCode}, '%')
AND p.unit_id LIKE CONCAT(#{subAreaCode}, '%')
</if>
</if>
<if
test=
"type != null and type != ''"
>
<if
test=
"type != null and type != ''"
>
AND p.iscity = #{type}
AND p.iscity = #{type}
</if>
</if>
GROUP BY
GROUP BY
LEFT(p.unit_id, #{size}),
LEFT(p.unit_id, #{size}),
p.iscity
p.iscity
</select>
</select>
</mapper>
</mapper>
resource-server/src/main/java/com/zq/resource/controller/DeptController.java
View file @
18a10678
package
com
.
zq
.
resource
.
controller
;
package
com
.
zq
.
resource
.
controller
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.annotation.AnonymousAccess
;
import
com.zq.common.vo.IdVo
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.vo.PageVo
;
import
com.zq.common.vo.IdVo
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.common.vo.PageVo
;
import
com.zq.resource.entity.OrgDept
;
import
com.zq.common.vo.ResultVo
;
import
com.zq.resource.service.DeptService
;
import
com.zq.resource.entity.OrgDept
;
import
com.zq.resource.vo.OrgDeptFindVo
;
import
com.zq.resource.service.DeptService
;
import
com.zq.resource.vo.OrgDeptVo
;
import
com.zq.resource.vo.OrgDeptFindVo
;
import
io.swagger.annotations.Api
;
import
com.zq.resource.vo.OrgDeptVo
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.Api
;
import
lombok.RequiredArgsConstructor
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
java.util.List
;
/**
* @author wilmiam
/**
* @since 2021/8/19 14:33
* @author wilmiam
*/
* @since 2021/8/19 14:33
@Api
(
tags
=
"机构部门相关接口"
)
*/
@RequiredArgsConstructor
@Api
(
tags
=
"机构部门相关接口"
)
@RestController
@RequiredArgsConstructor
@RequestMapping
(
value
=
"/resource/dept"
)
@RestController
public
class
DeptController
{
@RequestMapping
(
value
=
"/resource/dept"
)
public
class
DeptController
{
private
final
DeptService
deptService
;
private
final
DeptService
deptService
;
@ApiOperation
(
"获取机构列表"
)
@PostMapping
(
value
=
"/getDeptList"
)
@ApiOperation
(
"获取机构列表"
)
public
ResultVo
<
PageVo
<
OrgDept
>>
getDeptList
(
@RequestBody
OrgDeptFindVo
vo
)
{
@PostMapping
(
value
=
"/getDeptList"
)
vo
.
setState
(
1
);
public
ResultVo
<
PageVo
<
OrgDept
>>
getDeptList
(
@RequestBody
OrgDeptFindVo
vo
)
{
return
ResultVo
.
success
(
deptService
.
getDeptList
(
vo
));
vo
.
setState
(
1
);
}
return
ResultVo
.
success
(
deptService
.
getDeptList
(
vo
));
}
@ApiOperation
(
"获取机构信息"
)
@GetMapping
(
value
=
"/getDeptInfo/{deptId}"
)
@ApiOperation
(
"获取机构信息"
)
public
ResultVo
<
OrgDeptVo
>
getDeptInfo
(
@PathVariable
String
deptId
)
{
@GetMapping
(
value
=
"/getDeptInfo/{deptId}"
)
AssertUtils
.
notNull
(
deptId
,
"缺少机构ID"
);
public
ResultVo
<
OrgDeptVo
>
getDeptInfo
(
@PathVariable
String
deptId
)
{
return
ResultVo
.
success
(
deptService
.
getDeptInfo
(
deptId
));
AssertUtils
.
notNull
(
deptId
,
"缺少机构ID"
);
}
return
ResultVo
.
success
(
deptService
.
getDeptInfo
(
deptId
));
}
@ApiOperation
(
"根据部门PID查询子机构"
)
@GetMapping
(
value
=
"/getDeptByPid/{parentId}"
)
@ApiOperation
(
"根据部门PID查询子机构"
)
public
ResultVo
<
List
<
OrgDept
>>
getDeptByPid
(
@PathVariable
String
parentId
)
{
@GetMapping
(
value
=
"/getDeptByPid/{parentId}"
)
return
ResultVo
.
success
(
deptService
.
getDeptByPid
(
parentId
));
public
ResultVo
<
List
<
OrgDept
>>
getDeptByPid
(
@PathVariable
String
parentId
)
{
}
return
ResultVo
.
success
(
deptService
.
getDeptByPid
(
parentId
));
}
@ApiOperation
(
"添加机构"
)
@PostMapping
(
value
=
"/addDept"
)
@ApiOperation
(
"添加机构"
)
public
ResultVo
addDept
(
@RequestBody
OrgDept
vo
)
{
@PostMapping
(
value
=
"/addDept"
)
AssertUtils
.
hasText
(
vo
.
getDeptName
(),
"缺少机构名称"
);
public
ResultVo
addDept
(
@RequestBody
OrgDept
vo
)
{
AssertUtils
.
hasText
(
vo
.
getCreditCode
(),
"缺少部门的统一信用代码"
);
AssertUtils
.
hasText
(
vo
.
getDeptName
(),
"缺少机构名称"
);
AssertUtils
.
hasText
(
vo
.
getCreditCode
(),
"缺少部门的统一信用代码"
);
deptService
.
addDept
(
vo
);
return
ResultVo
.
success
();
deptService
.
addDept
(
vo
);
}
return
ResultVo
.
success
();
}
@ApiOperation
(
"修改机构"
)
@PostMapping
(
value
=
"/modifyDept"
)
@ApiOperation
(
"修改机构"
)
public
ResultVo
modifyDept
(
@RequestBody
OrgDept
vo
)
{
@PostMapping
(
value
=
"/modifyDept"
)
AssertUtils
.
hasText
(
vo
.
getId
(),
"ID不能为空"
);
public
ResultVo
modifyDept
(
@RequestBody
OrgDept
vo
)
{
AssertUtils
.
hasText
(
vo
.
getId
(),
"ID不能为空"
);
deptService
.
modifyDept
(
vo
);
return
ResultVo
.
success
();
deptService
.
modifyDept
(
vo
);
}
return
ResultVo
.
success
();
}
@ApiOperation
(
"获取机构树"
)
@GetMapping
(
value
=
"/getDeptTree"
)
@ApiOperation
(
"获取机构树"
)
public
ResultVo
getDeptTree
()
{
@GetMapping
(
value
=
"/getDeptTree"
)
return
ResultVo
.
success
(
deptService
.
getDeptTree
());
public
ResultVo
getDeptTree
()
{
}
return
ResultVo
.
success
(
deptService
.
getDeptTree
());
}
@ApiOperation
(
"机构注册"
)
@PostMapping
(
value
=
"/share/registerDept"
)
@ApiOperation
(
"机构注册"
)
public
ResultVo
registerDept
(
@RequestBody
IdVo
vo
)
{
@PostMapping
(
value
=
"/share/registerDept"
)
AssertUtils
.
notEmpty
(
vo
.
getIds
(),
"至少选择一项"
);
@AnonymousAccess
public
ResultVo
registerDept
(
@RequestBody
IdVo
vo
)
{
deptService
.
registerDept
(
vo
.
getIds
());
AssertUtils
.
notEmpty
(
vo
.
getIds
(),
"至少选择一项"
);
return
ResultVo
.
success
();
}
deptService
.
registerDept
(
vo
.
getIds
());
return
ResultVo
.
success
();
}
}
}
sys-server/src/main/java/com/zq/system/modules/system/service/VerifyService.java
View file @
18a10678
/*
/*
* Copyright 2019-2020 Zheng Jie
* Copyright 2019-2020 Zheng Jie
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
com
.
zq
.
system
.
modules
.
system
.
service
;
package
com
.
zq
.
system
.
modules
.
system
.
service
;
import
com.zq.system.modules.tools.domain.vo.EmailVo
;
import
com.zq.system.modules.tools.domain.vo.EmailVo
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
* @date 2018-12-26
* @date 2018-12-26
*/
*/
public
interface
VerifyService
{
public
interface
VerifyService
{
/**
/**
* 发送验证码
* 发送验证码
*
*
* @param email /
* @param email /
* @param key /
* @param key /
* @return /
* @return /
*/
*/
EmailVo
sendEmail
(
String
email
,
String
key
);
EmailVo
sendEmail
(
String
email
,
String
key
);
/**
/**
* 验证
* 验证
*
*
* @param code /
* @param code /
* @param key /
* @param key /
*/
*/
void
validated
(
String
key
,
String
code
);
void
validated
(
String
key
,
String
code
);
}
}
sys-server/src/main/java/com/zq/system/modules/system/service/impl/UserServiceImpl.java
View file @
18a10678
/*
/*
* Copyright 2019-2020 Zheng Jie
* Copyright 2019-2020 Zheng Jie
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
package
com
.
zq
.
system
.
modules
.
system
.
service
.
impl
;
package
com
.
zq
.
system
.
modules
.
system
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.config.redis.RedisUtils
;
import
com.zq.common.config.security.ApiTokenUtils
;
import
com.zq.common.config.security.ApiTokenUtils
;
import
com.zq.common.constant.SystemName
;
import
com.zq.common.constant.SystemName
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.utils.AssertUtils
;
import
com.zq.common.utils.StringUtils
;
import
com.zq.common.utils.StringUtils
;
import
com.zq.common.utils.UploadUtils
;
import
com.zq.common.utils.UploadUtils
;
import
com.zq.common.vo.ApiTokenVo
;
import
com.zq.common.vo.ApiTokenVo
;
import
com.zq.system.config.CacheKeys
;
import
com.zq.system.config.CacheKeys
;
import
com.zq.system.config.FileProperties
;
import
com.zq.system.config.FileProperties
;
import
com.zq.system.exception.EntityExistException
;
import
com.zq.system.exception.EntityExistException
;
import
com.zq.system.exception.EntityNotFoundException
;
import
com.zq.system.exception.EntityNotFoundException
;
import
com.zq.system.modules.system.dao.PfuserDao
;
import
com.zq.system.modules.system.dao.PfuserDao
;
import
com.zq.system.modules.system.domain.Job
;
import
com.zq.system.modules.system.domain.Job
;
import
com.zq.system.modules.system.domain.Role
;
import
com.zq.system.modules.system.domain.Role
;
import
com.zq.system.modules.system.domain.User
;
import
com.zq.system.modules.system.domain.User
;
import
com.zq.system.modules.system.domain.vo.LoginVo
;
import
com.zq.system.modules.system.domain.vo.LoginVo
;
import
com.zq.system.modules.system.entity.Pfuser
;
import
com.zq.system.modules.system.entity.Pfuser
;
import
com.zq.system.modules.system.repository.DeptRepository
;
import
com.zq.system.modules.system.repository.DeptRepository
;
import
com.zq.system.modules.system.repository.JobRepository
;
import
com.zq.system.modules.system.repository.JobRepository
;
import
com.zq.system.modules.system.repository.RoleRepository
;
import
com.zq.system.modules.system.repository.RoleRepository
;
import
com.zq.system.modules.system.repository.UserRepository
;
import
com.zq.system.modules.system.repository.UserRepository
;
import
com.zq.system.modules.system.service.OnlineUserService
;
import
com.zq.system.modules.system.service.OnlineUserService
;
import
com.zq.system.modules.system.service.UserCacheClean
;
import
com.zq.system.modules.system.service.UserCacheClean
;
import
com.zq.system.modules.system.service.UserService
;
import
com.zq.system.modules.system.service.UserService
;
import
com.zq.system.modules.system.service.dto.JobSmallDto
;
import
com.zq.system.modules.system.service.dto.JobSmallDto
;
import
com.zq.system.modules.system.service.dto.RoleSmallDto
;
import
com.zq.system.modules.system.service.dto.RoleSmallDto
;
import
com.zq.system.modules.system.service.dto.UserDto
;
import
com.zq.system.modules.system.service.dto.UserDto
;
import
com.zq.system.modules.system.service.dto.UserQueryCriteria
;
import
com.zq.system.modules.system.service.dto.UserQueryCriteria
;
import
com.zq.system.modules.system.service.mapstruct.UserMapper
;
import
com.zq.system.modules.system.service.mapstruct.UserMapper
;
import
com.zq.system.utils.*
;
import
com.zq.system.utils.*
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.security.crypto.password.PasswordEncoder
;
import
org.springframework.security.crypto.password.PasswordEncoder
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
* @author Zheng Jie
* @author Zheng Jie
* @date 2018-11-23
* @date 2018-11-23
*/
*/
@Slf4j
@Slf4j
@Service
@Service
@RequiredArgsConstructor
@RequiredArgsConstructor
@CacheConfig
(
cacheNames
=
"user"
)
@CacheConfig
(
cacheNames
=
"user"
)
public
class
UserServiceImpl
implements
UserService
{
public
class
UserServiceImpl
implements
UserService
{
private
final
UserRepository
userRepository
;
private
final
UserRepository
userRepository
;
private
final
UserMapper
userMapper
;
private
final
UserMapper
userMapper
;
private
final
FileProperties
properties
;
private
final
FileProperties
properties
;
private
final
RedisUtils
redisUtils
;
private
final
RedisUtils
redisUtils
;
private
final
UserCacheClean
userCacheClean
;
private
final
UserCacheClean
userCacheClean
;
private
final
OnlineUserService
onlineUserService
;
private
final
OnlineUserService
onlineUserService
;
private
final
PfuserDao
pfuserDao
;
private
final
PfuserDao
pfuserDao
;
private
final
PasswordEncoder
passwordEncoder
;
private
final
PasswordEncoder
passwordEncoder
;
private
final
DeptRepository
deptRepository
;
private
final
DeptRepository
deptRepository
;
private
final
RoleRepository
roleRepository
;
private
final
RoleRepository
roleRepository
;
private
final
JobRepository
jobRepository
;
private
final
JobRepository
jobRepository
;
@Override
@Override
public
Object
queryAll
(
UserQueryCriteria
criteria
,
Pageable
pageable
)
{
public
Object
queryAll
(
UserQueryCriteria
criteria
,
Pageable
pageable
)
{
Page
<
User
>
page
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
Page
<
User
>
page
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
),
pageable
);
return
PageUtil
.
toPage
(
page
.
map
(
userMapper:
:
toDto
));
return
PageUtil
.
toPage
(
page
.
map
(
userMapper:
:
toDto
));
}
}
@Override
@Override
public
List
<
UserDto
>
queryAll
(
UserQueryCriteria
criteria
)
{
public
List
<
UserDto
>
queryAll
(
UserQueryCriteria
criteria
)
{
List
<
User
>
users
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
));
List
<
User
>
users
=
userRepository
.
findAll
((
root
,
criteriaQuery
,
criteriaBuilder
)
->
QueryHelp
.
getPredicate
(
root
,
criteria
,
criteriaBuilder
));
return
userMapper
.
toDto
(
users
);
return
userMapper
.
toDto
(
users
);
}
}
@Override
@Override
@Cacheable
(
key
=
"'id:' + #p0"
)
@Cacheable
(
key
=
"'id:' + #p0"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
UserDto
findById
(
long
id
)
{
public
UserDto
findById
(
long
id
)
{
User
user
=
userRepository
.
findById
(
id
).
orElseGet
(
User:
:
new
);
User
user
=
userRepository
.
findById
(
id
).
orElseGet
(
User:
:
new
);
ValidationUtil
.
isNull
(
user
.
getId
(),
"User"
,
"id"
,
id
);
ValidationUtil
.
isNull
(
user
.
getId
(),
"User"
,
"id"
,
id
);
return
userMapper
.
toDto
(
user
);
return
userMapper
.
toDto
(
user
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
create
(
User
resources
)
{
public
void
create
(
User
resources
)
{
if
(
userRepository
.
findByUsername
(
resources
.
getUsername
())
!=
null
)
{
if
(
userRepository
.
findByUsername
(
resources
.
getUsername
())
!=
null
)
{
throw
new
EntityExistException
(
User
.
class
,
"username"
,
resources
.
getUsername
());
throw
new
EntityExistException
(
User
.
class
,
"username"
,
resources
.
getUsername
());
}
}
if
(
StringUtils
.
isNotBlank
(
resources
.
getEmail
())
&&
userRepository
.
findByEmail
(
resources
.
getEmail
())
!=
null
)
{
if
(
StringUtils
.
isNotBlank
(
resources
.
getEmail
())
&&
userRepository
.
findByEmail
(
resources
.
getEmail
())
!=
null
)
{
throw
new
EntityExistException
(
User
.
class
,
"email"
,
resources
.
getEmail
());
throw
new
EntityExistException
(
User
.
class
,
"email"
,
resources
.
getEmail
());
}
}
if
(
userRepository
.
findByPhone
(
resources
.
getPhone
())
!=
null
)
{
if
(
userRepository
.
findByPhone
(
resources
.
getPhone
())
!=
null
)
{
throw
new
EntityExistException
(
User
.
class
,
"phone"
,
resources
.
getPhone
());
throw
new
EntityExistException
(
User
.
class
,
"phone"
,
resources
.
getPhone
());
}
}
userRepository
.
save
(
resources
);
userRepository
.
save
(
resources
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
update
(
User
resources
)
throws
Exception
{
public
void
update
(
User
resources
)
throws
Exception
{
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
ValidationUtil
.
isNull
(
user
.
getId
(),
"User"
,
"id"
,
resources
.
getId
());
ValidationUtil
.
isNull
(
user
.
getId
(),
"User"
,
"id"
,
resources
.
getId
());
User
user1
=
userRepository
.
findByUsername
(
resources
.
getUsername
());
User
user1
=
userRepository
.
findByUsername
(
resources
.
getUsername
());
User
user2
=
userRepository
.
findByEmail
(
resources
.
getEmail
());
User
user2
=
userRepository
.
findByEmail
(
resources
.
getEmail
());
User
user3
=
userRepository
.
findByPhone
(
resources
.
getPhone
());
User
user3
=
userRepository
.
findByPhone
(
resources
.
getPhone
());
if
(
user1
!=
null
&&
!
user
.
getId
().
equals
(
user1
.
getId
()))
{
if
(
user1
!=
null
&&
!
user
.
getId
().
equals
(
user1
.
getId
()))
{
throw
new
EntityExistException
(
User
.
class
,
"username"
,
resources
.
getUsername
());
throw
new
EntityExistException
(
User
.
class
,
"username"
,
resources
.
getUsername
());
}
}
if
(
user2
!=
null
&&
!
user
.
getId
().
equals
(
user2
.
getId
()))
{
if
(
user2
!=
null
&&
!
user
.
getId
().
equals
(
user2
.
getId
()))
{
throw
new
EntityExistException
(
User
.
class
,
"email"
,
resources
.
getEmail
());
throw
new
EntityExistException
(
User
.
class
,
"email"
,
resources
.
getEmail
());
}
}
if
(
user3
!=
null
&&
!
user
.
getId
().
equals
(
user3
.
getId
()))
{
if
(
user3
!=
null
&&
!
user
.
getId
().
equals
(
user3
.
getId
()))
{
throw
new
EntityExistException
(
User
.
class
,
"phone"
,
resources
.
getPhone
());
throw
new
EntityExistException
(
User
.
class
,
"phone"
,
resources
.
getPhone
());
}
}
// 如果用户的角色改变
// 如果用户的角色改变
if
(!
resources
.
getRoles
().
equals
(
user
.
getRoles
()))
{
if
(!
resources
.
getRoles
().
equals
(
user
.
getRoles
()))
{
redisUtils
.
del
(
CacheKey
.
DATA_USER
+
resources
.
getId
());
redisUtils
.
del
(
CacheKey
.
DATA_USER
+
resources
.
getId
());
redisUtils
.
del
(
CacheKey
.
MENU_USER
+
resources
.
getId
());
redisUtils
.
del
(
CacheKey
.
MENU_USER
+
resources
.
getId
());
redisUtils
.
del
(
CacheKey
.
ROLE_AUTH
+
resources
.
getId
());
redisUtils
.
del
(
CacheKey
.
ROLE_AUTH
+
resources
.
getId
());
}
}
// 如果用户被禁用,则清除用户登录信息
// 如果用户被禁用,则清除用户登录信息
if
(!
resources
.
getEnabled
())
{
if
(!
resources
.
getEnabled
())
{
onlineUserService
.
kickOutForUsername
(
resources
.
getUsername
());
onlineUserService
.
kickOutForUsername
(
resources
.
getUsername
());
}
}
user
.
setUsername
(
resources
.
getUsername
());
user
.
setUsername
(
resources
.
getUsername
());
user
.
setEmail
(
resources
.
getEmail
());
user
.
setEmail
(
resources
.
getEmail
());
user
.
setEnabled
(
resources
.
getEnabled
());
user
.
setEnabled
(
resources
.
getEnabled
());
user
.
setRoles
(
resources
.
getRoles
());
user
.
setRoles
(
resources
.
getRoles
());
user
.
setDept
(
resources
.
getDept
());
user
.
setDept
(
resources
.
getDept
());
user
.
setJobs
(
resources
.
getJobs
());
user
.
setJobs
(
resources
.
getJobs
());
user
.
setPhone
(
resources
.
getPhone
());
user
.
setPhone
(
resources
.
getPhone
());
user
.
setNickName
(
resources
.
getNickName
());
user
.
setNickName
(
resources
.
getNickName
());
user
.
setGender
(
resources
.
getGender
());
user
.
setGender
(
resources
.
getGender
());
userRepository
.
save
(
user
);
userRepository
.
save
(
user
);
// 清除缓存
// 清除缓存
delCaches
(
user
.
getId
(),
user
.
getUsername
());
delCaches
(
user
.
getId
(),
user
.
getUsername
());
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateCenter
(
User
resources
)
{
public
void
updateCenter
(
User
resources
)
{
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
User
user
=
userRepository
.
findById
(
resources
.
getId
()).
orElseGet
(
User:
:
new
);
User
user1
=
userRepository
.
findByPhone
(
resources
.
getPhone
());
User
user1
=
userRepository
.
findByPhone
(
resources
.
getPhone
());
if
(
user1
!=
null
&&
!
user
.
getId
().
equals
(
user1
.
getId
()))
{
if
(
user1
!=
null
&&
!
user
.
getId
().
equals
(
user1
.
getId
()))
{
throw
new
EntityExistException
(
User
.
class
,
"phone"
,
resources
.
getPhone
());
throw
new
EntityExistException
(
User
.
class
,
"phone"
,
resources
.
getPhone
());
}
}
user
.
setNickName
(
resources
.
getNickName
());
user
.
setNickName
(
resources
.
getNickName
());
user
.
setPhone
(
resources
.
getPhone
());
user
.
setPhone
(
resources
.
getPhone
());
user
.
setGender
(
resources
.
getGender
());
user
.
setGender
(
resources
.
getGender
());
userRepository
.
save
(
user
);
userRepository
.
save
(
user
);
// 清理缓存
// 清理缓存
delCaches
(
user
.
getId
(),
user
.
getUsername
());
delCaches
(
user
.
getId
(),
user
.
getUsername
());
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
delete
(
Set
<
Long
>
ids
)
{
public
void
delete
(
Set
<
Long
>
ids
)
{
for
(
Long
id
:
ids
)
{
for
(
Long
id
:
ids
)
{
// 清理缓存
// 清理缓存
UserDto
user
=
findById
(
id
);
UserDto
user
=
findById
(
id
);
delCaches
(
user
.
getId
(),
user
.
getUsername
());
delCaches
(
user
.
getId
(),
user
.
getUsername
());
}
}
userRepository
.
deleteAllByIdIn
(
ids
);
userRepository
.
deleteAllByIdIn
(
ids
);
}
}
@Override
@Override
public
UserDto
findByName
(
String
userName
)
{
public
UserDto
findByName
(
String
userName
)
{
User
user
=
userRepository
.
findByUsername
(
userName
);
User
user
=
userRepository
.
findByUsername
(
userName
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
throw
new
EntityNotFoundException
(
User
.
class
,
"name"
,
userName
);
throw
new
EntityNotFoundException
(
User
.
class
,
"name"
,
userName
);
}
else
{
}
else
{
return
userMapper
.
toDto
(
user
);
return
userMapper
.
toDto
(
user
);
}
}
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updatePass
(
String
username
,
String
pass
)
{
public
void
updatePass
(
String
username
,
String
pass
)
{
userRepository
.
updatePass
(
username
,
pass
,
new
Date
());
userRepository
.
updatePass
(
username
,
pass
,
new
Date
());
flushCache
(
username
);
flushCache
(
username
);
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Map
<
String
,
String
>
updateAvatar
(
MultipartFile
multipartFile
)
{
public
Map
<
String
,
String
>
updateAvatar
(
MultipartFile
multipartFile
)
{
User
user
=
userRepository
.
findByUsername
(
SecurityUtils
.
getCurrentUsername
());
User
user
=
userRepository
.
findByUsername
(
SecurityUtils
.
getCurrentUsername
());
String
oldPath
=
user
.
getAvatarPath
();
String
oldPath
=
user
.
getAvatarPath
();
String
imaUrl
=
UploadUtils
.
saveImg
(
multipartFile
,
SystemName
.
SYS
);
String
imaUrl
=
UploadUtils
.
saveImg
(
multipartFile
,
SystemName
.
SYS
);
user
.
setAvatarPath
(
imaUrl
);
user
.
setAvatarPath
(
imaUrl
);
user
.
setAvatarName
(
imaUrl
);
user
.
setAvatarName
(
imaUrl
);
userRepository
.
save
(
user
);
userRepository
.
save
(
user
);
if
(
StringUtils
.
isNotBlank
(
oldPath
))
{
if
(
StringUtils
.
isNotBlank
(
oldPath
))
{
FileUtil
.
del
(
oldPath
);
FileUtil
.
del
(
oldPath
);
}
}
@NotBlank
String
username
=
user
.
getUsername
();
@NotBlank
String
username
=
user
.
getUsername
();
flushCache
(
username
);
flushCache
(
username
);
return
new
HashMap
<
String
,
String
>(
1
)
{{
return
new
HashMap
<
String
,
String
>(
1
)
{{
put
(
"avatar"
,
imaUrl
);
put
(
"avatar"
,
imaUrl
);
}};
}};
}
}
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
updateEmail
(
String
username
,
String
email
)
{
public
void
updateEmail
(
String
username
,
String
email
)
{
userRepository
.
updateEmail
(
username
,
email
);
userRepository
.
updateEmail
(
username
,
email
);
flushCache
(
username
);
flushCache
(
username
);
}
}
@Override
@Override
public
void
download
(
List
<
UserDto
>
queryAll
,
HttpServletResponse
response
)
throws
IOException
{
public
void
download
(
List
<
UserDto
>
queryAll
,
HttpServletResponse
response
)
throws
IOException
{
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
list
=
new
ArrayList
<>();
for
(
UserDto
userDTO
:
queryAll
)
{
for
(
UserDto
userDTO
:
queryAll
)
{
List
<
String
>
roles
=
userDTO
.
getRoles
().
stream
().
map
(
RoleSmallDto:
:
getName
).
collect
(
Collectors
.
toList
());
List
<
String
>
roles
=
userDTO
.
getRoles
().
stream
().
map
(
RoleSmallDto:
:
getName
).
collect
(
Collectors
.
toList
());
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"用户名"
,
userDTO
.
getUsername
());
map
.
put
(
"用户名"
,
userDTO
.
getUsername
());
map
.
put
(
"角色"
,
roles
);
map
.
put
(
"角色"
,
roles
);
map
.
put
(
"部门"
,
userDTO
.
getDept
().
getName
());
map
.
put
(
"部门"
,
userDTO
.
getDept
().
getName
());
map
.
put
(
"岗位"
,
userDTO
.
getJobs
().
stream
().
map
(
JobSmallDto:
:
getName
).
collect
(
Collectors
.
toList
()));
map
.
put
(
"岗位"
,
userDTO
.
getJobs
().
stream
().
map
(
JobSmallDto:
:
getName
).
collect
(
Collectors
.
toList
()));
map
.
put
(
"邮箱"
,
userDTO
.
getEmail
());
map
.
put
(
"邮箱"
,
userDTO
.
getEmail
());
map
.
put
(
"状态"
,
userDTO
.
getEnabled
()
?
"启用"
:
"禁用"
);
map
.
put
(
"状态"
,
userDTO
.
getEnabled
()
?
"启用"
:
"禁用"
);
map
.
put
(
"手机号码"
,
userDTO
.
getPhone
());
map
.
put
(
"手机号码"
,
userDTO
.
getPhone
());
map
.
put
(
"修改密码的时间"
,
userDTO
.
getPwdResetTime
());
map
.
put
(
"修改密码的时间"
,
userDTO
.
getPwdResetTime
());
map
.
put
(
"创建日期"
,
userDTO
.
getCreateTime
());
map
.
put
(
"创建日期"
,
userDTO
.
getCreateTime
());
list
.
add
(
map
);
list
.
add
(
map
);
}
}
FileUtil
.
downloadExcel
(
list
,
response
);
FileUtil
.
downloadExcel
(
list
,
response
);
}
}
/**
/**
* 清理缓存
* 清理缓存
*
*
* @param id /
* @param id /
*/
*/
public
void
delCaches
(
Long
id
,
String
username
)
{
public
void
delCaches
(
Long
id
,
String
username
)
{
redisUtils
.
del
(
CacheKey
.
USER_ID
+
id
);
redisUtils
.
del
(
CacheKey
.
USER_ID
+
id
);
flushCache
(
username
);
flushCache
(
username
);
}
}
/**
/**
* 清理 登陆时 用户缓存信息
* 清理 登陆时 用户缓存信息
*
*
* @param username /
* @param username /
*/
*/
private
void
flushCache
(
String
username
)
{
private
void
flushCache
(
String
username
)
{
userCacheClean
.
cleanUserCache
(
username
);
userCacheClean
.
cleanUserCache
(
username
);
}
}
@Override
@Override
public
void
sendCode
(
String
phone
)
{
public
void
sendCode
(
String
phone
)
{
User
user
=
userRepository
.
findByUsername
(
phone
);
User
user
=
userRepository
.
findByUsername
(
phone
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
Pfuser
pfuser
=
pfuserDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
Pfuser
.
builder
().
phone
(
phone
).
build
()));
Pfuser
pfuser
=
pfuserDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
Pfuser
.
builder
().
phone
(
phone
).
build
()));
AssertUtils
.
notNull
(
pfuser
,
"手机号不存在"
);
AssertUtils
.
notNull
(
pfuser
,
"手机号不存在"
);
}
}
String
code
=
RandomUtil
.
randomNumbers
(
6
);
String
code
=
RandomUtil
.
randomNumbers
(
6
);
String
content
=
"您的验证码为:"
+
code
+
"(5分钟内有效)。为了保障信息安全,如非本人操作请忽略本短信。"
;
String
content
=
"您的验证码为:"
+
code
+
"(5分钟内有效)。为了保障信息安全,如非本人操作请忽略本短信。"
;
boolean
sendMsg
=
MobileSmsUtils
.
sendMsg
(
phone
,
content
);
boolean
sendMsg
=
MobileSmsUtils
.
sendMsg
(
phone
,
content
);
log
.
info
(
">> phone: {}, sendCode: {}, success: {}"
,
phone
,
code
,
sendMsg
);
log
.
info
(
">> phone: {}, sendCode: {}, success: {}"
,
phone
,
code
,
sendMsg
);
redisUtils
.
setStr
(
CacheKeys
.
authCodeKey
(
phone
),
code
,
5
);
redisUtils
.
setStr
(
CacheKeys
.
authCodeKey
(
phone
),
code
,
5
);
}
}
@Override
@Override
public
void
resetPassword
(
LoginVo
vo
)
{
public
void
resetPassword
(
LoginVo
vo
)
{
verificationCode
(
vo
.
getPhone
(),
vo
.
getVerifyCode
());
verificationCode
(
vo
.
getPhone
(),
vo
.
getVerifyCode
());
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
addUser
(
vo
.
getPhone
());
user
=
addUser
(
vo
.
getPhone
());
}
}
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
updatePass
(
user
.
getUsername
(),
passwordEncoder
.
encode
(
vo
.
getPasswd
()));
updatePass
(
user
.
getUsername
(),
passwordEncoder
.
encode
(
vo
.
getPasswd
()));
}
}
/**
/**
* 保存用户
* 保存用户
*
*
* @param phone
* @param phone
* @return
* @return
*/
*/
private
User
addUser
(
String
phone
)
{
private
User
addUser
(
String
phone
)
{
Pfuser
pfuser
=
pfuserDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
Pfuser
.
builder
().
phone
(
phone
).
build
()));
Pfuser
pfuser
=
pfuserDao
.
selectOne
(
Wrappers
.
lambdaQuery
(
Pfuser
.
builder
().
phone
(
phone
).
build
()));
if
(
pfuser
==
null
)
{
if
(
pfuser
==
null
)
{
return
null
;
return
null
;
}
}
User
user
=
userRepository
.
findByUsername
(
phone
);
User
user
=
userRepository
.
findByUsername
(
phone
);
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
new
User
();
user
=
new
User
();
List
<
Role
>
roleList
=
roleRepository
.
findAllById
(
Collections
.
singletonList
(
2L
));
List
<
Role
>
roleList
=
roleRepository
.
findAllById
(
Collections
.
singletonList
(
2L
));
user
.
setRoles
(
new
HashSet
<>(
roleList
));
user
.
setRoles
(
new
HashSet
<>(
roleList
));
List
<
Job
>
jobList
=
jobRepository
.
findAllById
(
Collections
.
singletonList
(
13L
));
List
<
Job
>
jobList
=
jobRepository
.
findAllById
(
Collections
.
singletonList
(
13L
));
user
.
setJobs
(
new
HashSet
<>(
jobList
));
user
.
setJobs
(
new
HashSet
<>(
jobList
));
deptRepository
.
findById
(
8L
).
ifPresent
(
user:
:
setDept
);
deptRepository
.
findById
(
8L
).
ifPresent
(
user:
:
setDept
);
user
.
setUsername
(
phone
);
user
.
setUsername
(
phone
);
user
.
setNickName
(
pfuser
.
getUsername
());
user
.
setNickName
(
pfuser
.
getUsername
());
user
.
setGender
(
pfuser
.
getSex
()
==
null
?
"未知"
:
pfuser
.
getSex
()
==
0
?
"男"
:
"女"
);
user
.
setGender
(
pfuser
.
getSex
()
==
null
?
"未知"
:
pfuser
.
getSex
()
==
0
?
"男"
:
"女"
);
user
.
setPhone
(
phone
);
user
.
setPhone
(
phone
);
user
.
setEmail
(
pfuser
.
getSourcemail
());
user
.
setEmail
(
pfuser
.
getSourcemail
());
user
.
setPassword
(
passwordEncoder
.
encode
(
"gxmz!23"
));
user
.
setPassword
(
passwordEncoder
.
encode
(
"gxmz!23"
));
user
.
setIsAdmin
(
false
);
user
.
setIsAdmin
(
false
);
user
.
setEnabled
(
true
);
user
.
setEnabled
(
true
);
user
.
setCreateBy
(
"admin"
);
user
.
setCreateBy
(
"admin"
);
user
.
setUpdatedBy
(
"admin"
);
user
.
setUpdatedBy
(
"admin"
);
user
.
setCreateTime
(
DateUtil
.
date
().
toTimestamp
());
user
.
setCreateTime
(
DateUtil
.
date
().
toTimestamp
());
user
.
setUpdateTime
(
DateUtil
.
date
().
toTimestamp
());
user
.
setUpdateTime
(
DateUtil
.
date
().
toTimestamp
());
create
(
user
);
create
(
user
);
}
}
return
user
;
return
user
;
}
}
/**
/**
* 判断验证码
* 判断验证码
*
*
* @param phone
* @param phone
* @param code
* @param code
*/
*/
public
void
verificationCode
(
String
phone
,
String
code
)
{
public
void
verificationCode
(
String
phone
,
String
code
)
{
String
cacheCode
=
redisUtils
.
getStr
(
CacheKeys
.
authCodeKey
(
phone
));
String
cacheCode
=
redisUtils
.
getStr
(
CacheKeys
.
authCodeKey
(
phone
));
AssertUtils
.
isTrue
(
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
cacheCode
)
&&
cacheCode
.
equalsIgnoreCase
(
code
),
"验证码错误"
);
AssertUtils
.
isTrue
(
org
.
apache
.
commons
.
lang3
.
StringUtils
.
isNotBlank
(
cacheCode
)
&&
cacheCode
.
equalsIgnoreCase
(
code
),
"验证码错误"
);
redisUtils
.
deleteStr
(
CacheKeys
.
authCodeKey
(
phone
));
redisUtils
.
deleteStr
(
CacheKeys
.
authCodeKey
(
phone
));
}
}
@Override
@Override
public
void
modifyPasswd
(
LoginVo
vo
)
{
public
void
modifyPasswd
(
LoginVo
vo
)
{
verificationCode
(
vo
.
getPhone
(),
vo
.
getVerifyCode
());
verificationCode
(
vo
.
getPhone
(),
vo
.
getVerifyCode
());
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
updatePass
(
user
.
getUsername
(),
passwordEncoder
.
encode
(
vo
.
getPasswd
()));
updatePass
(
user
.
getUsername
(),
passwordEncoder
.
encode
(
vo
.
getPasswd
()));
}
}
@Override
@Override
public
ApiTokenVo
phoneLogin
(
LoginVo
vo
)
{
public
ApiTokenVo
phoneLogin
(
LoginVo
vo
)
{
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
if
(
user
==
null
)
{
if
(
user
==
null
)
{
user
=
addUser
(
vo
.
getPhone
());
user
=
addUser
(
vo
.
getPhone
());
}
}
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
verificationCode
(
vo
.
getPhone
(),
vo
.
getVerifyCode
());
verificationCode
(
vo
.
getPhone
(),
vo
.
getVerifyCode
());
AssertUtils
.
isTrue
(
user
.
getEnabled
(),
"账号已禁用"
);
AssertUtils
.
isTrue
(
user
.
getEnabled
(),
"账号已禁用"
);
return
getApiToken
(
user
);
return
getApiToken
(
user
);
}
}
/**
/**
* 获取ApiToken
* 获取ApiToken
*
*
* @param user
* @param user
* @return
* @return
*/
*/
private
ApiTokenVo
getApiToken
(
User
user
)
{
private
ApiTokenVo
getApiToken
(
User
user
)
{
ApiTokenVo
tokenVo
=
ApiTokenVo
.
builder
()
ApiTokenVo
tokenVo
=
ApiTokenVo
.
builder
()
.
userId
(
user
.
getId
())
.
userId
(
user
.
getId
())
.
phone
(
user
.
getPhone
())
.
phone
(
user
.
getPhone
())
.
username
(
user
.
getUsername
())
.
username
(
user
.
getUsername
())
.
name
(
user
.
getNickName
())
.
name
(
user
.
getNickName
())
.
nickname
(
user
.
getNickName
())
.
nickname
(
user
.
getNickName
())
.
sex
(
user
.
getGender
())
.
sex
(
user
.
getGender
())
.
avatar
(
user
.
getAvatarPath
())
.
avatar
(
user
.
getAvatarPath
())
.
build
();
.
build
();
String
token
=
ApiTokenUtils
.
createToken
(
tokenVo
,
CacheKeys
.
APP_TOKEN_EXPIRE_MINUTES
);
String
token
=
ApiTokenUtils
.
createToken
(
tokenVo
,
CacheKeys
.
APP_TOKEN_EXPIRE_MINUTES
);
tokenVo
.
setToken
(
token
);
tokenVo
.
setToken
(
token
);
// 重新登录删除前一个token实现单机登录
// 重新登录删除前一个token实现单机登录
String
cacheToken
=
redisUtils
.
getStr
(
CacheKeys
.
liveAppTokenKey
(
user
.
getId
().
toString
()));
String
cacheToken
=
redisUtils
.
getStr
(
CacheKeys
.
liveAppTokenKey
(
user
.
getId
().
toString
()));
redisUtils
.
deleteObj
(
CacheKeys
.
appTokenKey
(
cacheToken
));
redisUtils
.
deleteObj
(
CacheKeys
.
appTokenKey
(
cacheToken
));
redisUtils
.
deleteStr
(
CacheKeys
.
liveAppTokenKey
(
user
.
getId
().
toString
()));
redisUtils
.
deleteStr
(
CacheKeys
.
liveAppTokenKey
(
user
.
getId
().
toString
()));
// 缓存登录用户
// 缓存登录用户
redisUtils
.
setObj
(
CacheKeys
.
appTokenKey
(
token
),
tokenVo
,
CacheKeys
.
APP_TOKEN_EXPIRE_MINUTES
);
redisUtils
.
setObj
(
CacheKeys
.
appTokenKey
(
token
),
tokenVo
,
CacheKeys
.
APP_TOKEN_EXPIRE_MINUTES
);
// 用户ID作为key保存token, 再次登录可以找出该用户的token
// 用户ID作为key保存token, 再次登录可以找出该用户的token
redisUtils
.
setStr
(
CacheKeys
.
liveAppTokenKey
(
user
.
getId
().
toString
()),
token
,
CacheKeys
.
APP_TOKEN_EXPIRE_MINUTES
);
redisUtils
.
setStr
(
CacheKeys
.
liveAppTokenKey
(
user
.
getId
().
toString
()),
token
,
CacheKeys
.
APP_TOKEN_EXPIRE_MINUTES
);
return
tokenVo
;
return
tokenVo
;
}
}
@Override
@Override
public
ApiTokenVo
passwdLogin
(
LoginVo
vo
)
{
public
ApiTokenVo
passwdLogin
(
LoginVo
vo
)
{
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
User
user
=
userRepository
.
findByUsername
(
vo
.
getPhone
());
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
AssertUtils
.
notNull
(
user
,
"手机号不存在"
);
AssertUtils
.
hasText
(
user
.
getPassword
(),
"未设置密码"
);
AssertUtils
.
hasText
(
user
.
getPassword
(),
"未设置密码"
);
AssertUtils
.
isTrue
(
passwordEncoder
.
matches
(
vo
.
getPasswd
(),
user
.
getPassword
()),
"密码错误"
);
AssertUtils
.
isTrue
(
passwordEncoder
.
matches
(
vo
.
getPasswd
(),
user
.
getPassword
()),
"密码错误"
);
AssertUtils
.
isTrue
(
user
.
getEnabled
(),
"账号已禁用"
);
AssertUtils
.
isTrue
(
user
.
getEnabled
(),
"账号已禁用"
);
return
getApiToken
(
user
);
return
getApiToken
(
user
);
}
}
}
}
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