Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gdtel-gztel-school-center
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
吴学德
gdtel-gztel-school-center
Commits
ef975899
Commit
ef975899
authored
Feb 23, 2021
by
陈浩建
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
7dcbd001
6b557a6e
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1083 additions
and
92 deletions
+1083
-92
apply-net/src/main/java/com/winsun/controller/DankuanController.java
+22
-12
apply-net/src/main/java/com/winsun/controller/ImgController.java
+6
-1
apply-net/src/main/java/com/winsun/controller/RongHeController.java
+2
-1
apply-net/src/main/java/com/winsun/controller/SyncController.java
+292
-0
common/src/main/java/com/winsun/bean/AppConfig.java
+67
-0
common/src/main/java/com/winsun/bean/School.java
+13
-0
common/src/main/java/com/winsun/mapper/AppConfigMapper.java
+17
-0
common/src/main/java/com/winsun/mapper/HhrUserMapper.java
+8
-0
common/src/main/java/com/winsun/outSideSystem/IntelligenceSendOrder.java
+20
-21
common/src/main/java/com/winsun/utils/EThreeDES.java
+166
-0
common/src/main/java/com/winsun/utils/PicturesUtil.java
+9
-7
common/src/main/java/com/winsun/utils/RandomUtil.java
+19
-0
common/src/main/resources/com/winsun/mapper/mapping/HhrUserMapper.xml
+14
-0
core-service/src/main/java/com/winsun/item/modular/system/controller/LoginPwdController.java
+188
-41
core-service/src/main/resources/application-prod.yml
+4
-2
core-service/src/main/resources/application.yml
+1
-0
migration/src/main/java/com/winsun/migration/mapper/db3/YrymDatabases.java
+38
-0
migration/src/main/resources/application.yml
+44
-0
service-manager/pom.xml
+2
-2
service-manager/src/main/java/com/winsun/controller/AppConfigController.java
+142
-0
service-manager/src/main/java/com/winsun/controller/ImgController.java
+2
-1
service-manager/src/main/java/com/winsun/controller/OrderController.java
+1
-1
service-manager/src/main/resources/application-prod.yml
+6
-3
No files found.
apply-net/src/main/java/com/winsun/controller/DankuanController.java
View file @
ef975899
...
@@ -222,7 +222,6 @@ public class DankuanController {
...
@@ -222,7 +222,6 @@ public class DankuanController {
try
{
try
{
String
uuid
=
UUID
.
randomUUID
().
toString
();
String
uuid
=
UUID
.
randomUUID
().
toString
();
String
id
=
uuid
.
split
(
"-"
)[
0
]
+
uuid
.
split
(
"-"
)[
1
];
String
id
=
uuid
.
split
(
"-"
)[
0
]
+
uuid
.
split
(
"-"
)[
1
];
order
.
setId
(
id
);
order
.
setId
(
id
);
order
.
setId
(
id
);
SimpleDateFormat
sd
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
SimpleDateFormat
sd
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
...
@@ -252,21 +251,24 @@ public class DankuanController {
...
@@ -252,21 +251,24 @@ public class DankuanController {
order
.
setHehuorenName
(
sysUser
.
getName
());
order
.
setHehuorenName
(
sysUser
.
getName
());
order
.
setHehuorenArea
(
sysUser
.
getSubstName
());
order
.
setHehuorenArea
(
sysUser
.
getSubstName
());
order
.
setSignImg
(
filePath
);
order
.
setSignImg
(
filePath
);
List
<
String
>
userId1
=
appMapper
.
selectsupervisorBySchool
(
schoolId
);
List
<
String
>
userId1
=
appMapper
.
selectsupervisorBySchool
(
schoolId
);
SysUser
user
=
sysUserMapper
.
selectById
(
userId1
.
get
(
0
));
if
(
userId1
!=
null
&&
userId1
.
size
()
!=
0
)
{
order
.
setSupervisorName
(
user
.
getName
());
SysUser
user
=
sysUserMapper
.
selectById
(
userId1
.
get
(
0
));
order
.
setSupervisorName
(
user
.
getName
());
}
order
.
setLzgh
(
school
.
getLzgh
());
order
.
setLzgh
(
school
.
getLzgh
());
order
.
setOrderStatus
(
orderStatus
);
order
.
setOrderStatus
(
orderStatus
);
// 根据订单号,获取该订单信息
// 根据订单号,获取该订单信息
// 根据学校名称,获取该学校信息
// 根据学校名称,获取该学校信息
Product
product
=
productMapper
.
selectById
(
productId
);
//
Product product = productMapper.selectById(productId);
Wrapper
<
UniversityInfo
>
uiWrapper
=
new
EntityWrapper
<>();
//
Wrapper<UniversityInfo> uiWrapper = new EntityWrapper<>();
uiWrapper
.
eq
(
"university_id"
,
product
.
getUniversityId
());
//
uiWrapper.eq("university_id", product.getUniversityId());
Map
<
String
,
Object
>
schoolMap
=
universityInfoMapper
.
selectMaps
(
uiWrapper
).
get
(
0
);
//
Map<String, Object> schoolMap = universityInfoMapper.selectMaps(uiWrapper).get(0);
orderMapper
.
insert
(
order
);
orderMapper
.
insert
(
order
);
appMapper
.
inserOrderHis
(
id
,
"待审核!"
,
new
Date
(),
orderView
.
getOrderName
());
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
e
.
getMessag
e
();
e
.
printStackTrac
e
();
Wrapper
<
OrderView
>
wrapper
=
new
EntityWrapper
<>();
Wrapper
<
OrderView
>
wrapper
=
new
EntityWrapper
<>();
wrapper
.
eq
(
StringUtils
.
isNotBlank
(
orderView
.
getOrderSeq
().
toString
()),
"orderSeq"
,
orderView
.
getOrderSeq
().
toString
());
wrapper
.
eq
(
StringUtils
.
isNotBlank
(
orderView
.
getOrderSeq
().
toString
()),
"orderSeq"
,
orderView
.
getOrderSeq
().
toString
());
orderViewMapper
.
delete
(
wrapper
);
orderViewMapper
.
delete
(
wrapper
);
...
@@ -310,8 +312,16 @@ public class DankuanController {
...
@@ -310,8 +312,16 @@ public class DankuanController {
Map
<
String
,
Object
>
dataMapping2
=
new
HashMap
<>();
Map
<
String
,
Object
>
dataMapping2
=
new
HashMap
<>();
dataMapping2
.
put
(
"order_status"
,
"未下单"
);
dataMapping2
.
put
(
"order_status"
,
"未下单"
);
orderMapper
.
updateForSet
(
MyBatisPlusUpdateUtils
.
toUpdateSet
(
dataMapping2
),
objectEntityWrapper
);
orderMapper
.
updateForSet
(
MyBatisPlusUpdateUtils
.
toUpdateSet
(
dataMapping2
),
objectEntityWrapper
);
List
<
Order
>
orders
=
orderMapper
.
selectList
(
objectEntityWrapper
);
Map
<
String
,
Object
>
stringObjectMap
=
orderMapper
.
selectKdOrder
(
orderseq
);
appMapper
.
inserOrderHis
(
orders
.
get
(
0
).
getId
(),
"支付完成,未下单!"
,
new
Date
(),
orders
.
get
(
0
).
getCustomerName
());
if
(
stringObjectMap
!=
null
)
{
appMapper
.
inserOrderHis
(
stringObjectMap
.
get
(
"id"
)
!=
null
?
stringObjectMap
.
get
(
"id"
).
toString
()
:
""
,
"支付完成,待提交!"
,
new
Date
(),
stringObjectMap
.
get
(
"customer_name"
)
!=
null
?
stringObjectMap
.
get
(
"customer_name"
).
toString
()
:
""
);
log
.
info
(
"------------单宽提交智能平台--------------"
);
// 提交智能平台
log
.
info
(
JSONObject
.
toJSONString
(
stringObjectMap
));
intelligenceSendOrder
.
singleBroadSendOrder
(
stringObjectMap
);
}
}
}
/**
/**
...
@@ -495,7 +505,7 @@ public class DankuanController {
...
@@ -495,7 +505,7 @@ public class DankuanController {
map
.
put
(
"MERCHANTURL"
,
MERCHANTURL
);
map
.
put
(
"MERCHANTURL"
,
MERCHANTURL
);
//单宽回调后端接口地址
//单宽回调后端接口地址
// 正式环境
// 正式环境
map
.
put
(
"BACKDROPURL"
,
"https://dx.dianyuanjiangli.com/app
ly-net
/ciop/dankuan/toSubmisOrderPreser"
);
map
.
put
(
"BACKDROPURL"
,
"https://dx.dianyuanjiangli.com/app/ciop/dankuan/toSubmisOrderPreser"
);
//测试地址
//测试地址
// map.put("BACKDROPURL", "http://3715zj2369.qicp.vip/ciop/dankuan/toSubmisOrderPreser");
// map.put("BACKDROPURL", "http://3715zj2369.qicp.vip/ciop/dankuan/toSubmisOrderPreser");
...
...
apply-net/src/main/java/com/winsun/controller/ImgController.java
View file @
ef975899
...
@@ -20,12 +20,17 @@ import java.io.IOException;
...
@@ -20,12 +20,17 @@ import java.io.IOException;
@RestController
@RestController
public
class
ImgController
{
public
class
ImgController
{
/**
* 服务器访问路径
*/
private
static
String
pathPre
=
"/springboot/school_center/manager/"
;
//menuname = "图片路径" 只支持jpeg 和 png
//menuname = "图片路径" 只支持jpeg 和 png
@RequestMapping
(
value
=
"/images/**"
,
produces
={
MediaType
.
IMAGE_JPEG_VALUE
,
MediaType
.
IMAGE_PNG_VALUE
}
)
@RequestMapping
(
value
=
"/images/**"
,
produces
={
MediaType
.
IMAGE_JPEG_VALUE
,
MediaType
.
IMAGE_PNG_VALUE
}
)
public
byte
[]
getbackground
(
HttpServletRequest
request
)
{
public
byte
[]
getbackground
(
HttpServletRequest
request
)
{
byte
[]
bytes
=
new
byte
[
10
];
byte
[]
bytes
=
new
byte
[
10
];
request
.
getServletPath
();
request
.
getServletPath
();
String
imgurl
=
FilePath
.
BACKGROUNDIMG
.
getValue
()+
"/"
+
request
.
getServletPath
();
String
imgurl
=
pathPre
+
FilePath
.
BACKGROUNDIMG
.
getValue
()+
"/"
+
request
.
getServletPath
();
imgurl
=
imgurl
.
replace
(
"//"
,
"/"
);
imgurl
=
imgurl
.
replace
(
"//"
,
"/"
);
File
file
=
new
File
(
imgurl
);
File
file
=
new
File
(
imgurl
);
FileInputStream
inputStream
=
null
;
FileInputStream
inputStream
=
null
;
...
...
apply-net/src/main/java/com/winsun/controller/RongHeController.java
View file @
ef975899
...
@@ -287,6 +287,7 @@ public class RongHeController {
...
@@ -287,6 +287,7 @@ public class RongHeController {
return
ResponseData
.
success
(
orderV
,
"订单提交完成!"
);
return
ResponseData
.
success
(
orderV
,
"订单提交完成!"
);
}
}
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
ResponseData
.
error
(
"网络超时,请重试!"
);
return
ResponseData
.
error
(
"网络超时,请重试!"
);
}
finally
{
}
finally
{
redisTemplate
.
delete
(
orderNumber
);
redisTemplate
.
delete
(
orderNumber
);
...
@@ -480,7 +481,7 @@ public class RongHeController {
...
@@ -480,7 +481,7 @@ public class RongHeController {
map
.
put
(
"MERCHANTURL"
,
MERCHANTURL
);
map
.
put
(
"MERCHANTURL"
,
MERCHANTURL
);
// 融合回调后端接口地址
// 融合回调后端接口地址
//正式地址
//正式地址
// map.put("BACKDROPURL", "https://dx.dianyuanjiangli.com/apply-net
/ciop/rongHe/toSubmisOrderPreser");
map
.
put
(
"BACKDROPURL"
,
"https://dx.dianyuanjiangli.com/app
/ciop/rongHe/toSubmisOrderPreser"
);
String
str
=
"ORDERSEQ="
+
orderView
.
getOrderSeq
()
+
"&ORDERDATE="
+
ft
.
format
(
orderdate
)
+
"&ORDERAMOUNT="
+
orderView
.
getWebOrderAmount
()
+
"&KEY="
+
Constant
.
APPK
;
//商户标识
String
str
=
"ORDERSEQ="
+
orderView
.
getOrderSeq
()
+
"&ORDERDATE="
+
ft
.
format
(
orderdate
)
+
"&ORDERAMOUNT="
+
orderView
.
getWebOrderAmount
()
+
"&KEY="
+
Constant
.
APPK
;
//商户标识
//* 将值转换为大写 *//*
//* 将值转换为大写 *//*
...
...
apply-net/src/main/java/com/winsun/controller/SyncController.java
0 → 100644
View file @
ef975899
package
com
.
winsun
.
controller
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.winsun.bean.*
;
import
com.winsun.mapper.*
;
import
com.winsun.utils.EThreeDES
;
import
com.winsun.utils.MD5Utils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.crypto.IllegalBlockSizeException
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
/**
* 订单同步接口
* @author chengfengluo
* @date 2021-02-20 9:22
*/
@RequestMapping
(
"/sync"
)
@RestController
@Slf4j
public
class
SyncController
{
@Autowired
private
AppConfigMapper
appConfigMapper
;
@Autowired
private
SchoolMapper
schoolMapper
;
@Autowired
private
SysUserMapper
sysUserMapper
;
@Autowired
private
HhrUserMapper
hhrUserMapper
;
@Autowired
private
OrderMapper
orderMapper
;
@Autowired
private
OrderViewMapper
orderViewMapper
;
/**
* 无人厅订单同步
* @return {"msg":"同步成功", "result":0}
*/
@PostMapping
(
value
=
"/orderPush"
,
produces
=
"application/json"
)
public
JSONObject
UnmannedHallOrderSync
(
@RequestBody
String
param
)
{
JSONObject
jsonObject1
=
JSONObject
.
parseObject
(
param
);
JSONObject
resultJson
=
new
JSONObject
();
try
{
log
.
info
(
"获取报文:"
+
jsonObject1
.
get
(
"param"
));
// 查询key 密匙 (需要配置化,可随时修改)
Wrapper
<
AppConfig
>
wrapper
=
new
EntityWrapper
<>();
wrapper
.
eq
(
"app_name"
,
"随身厅"
);
List
<
AppConfig
>
appConfigs
=
appConfigMapper
.
selectList
(
wrapper
);
if
(
appConfigs
==
null
||
appConfigs
.
size
()
==
0
||
StringUtils
.
isBlank
(
appConfigs
.
get
(
0
).
getAppSecret
()))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"系统未配置随身厅密匙"
);
return
resultJson
;
}
if
(
appConfigs
.
size
()
>
1
)
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"系统配置多个密匙"
);
return
resultJson
;
}
AppConfig
appConfig
=
appConfigs
.
get
(
0
);
// 解密3DES
byte
[]
bytes
=
null
;
try
{
bytes
=
EThreeDES
.
deBase64
(
jsonObject1
.
get
(
"param"
).
toString
());
}
catch
(
IOException
e
)
{
log
.
info
(
"订单同步解密失败:"
);
e
.
printStackTrace
();
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"数据解密失败"
);
return
resultJson
;
}
byte
[]
paramByte
=
null
;
try
{
paramByte
=
EThreeDES
.
decryptMode
(
appConfig
.
getAppSecret
().
getBytes
(),
bytes
);
}
catch
(
IllegalBlockSizeException
e
)
{
log
.
info
(
"订单同步解密失败:"
);
e
.
printStackTrace
();
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"Input length must be multiple of 8 when decrypting with padded cipher"
);
return
resultJson
;
}
JSONObject
paramJson
=
JSONObject
.
parseObject
(
new
String
(
paramByte
));
log
.
info
(
"3DES解密参数:"
+
paramJson
.
toJSONString
());
// 获取termNo 查询school app_key 解密data参数
String
termNo
=
paramJson
.
getString
(
"termNo"
);
if
(
StringUtils
.
isBlank
(
termNo
))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"终端编码不能为空"
);
return
resultJson
;
}
Wrapper
<
School
>
schoolWrapper
=
new
EntityWrapper
<>();
schoolWrapper
.
eq
(
"app_id"
,
termNo
);
List
<
School
>
schools
=
schoolMapper
.
selectList
(
schoolWrapper
);
if
(
schools
==
null
||
schools
.
size
()
==
0
||
StringUtils
.
isBlank
(
schools
.
get
(
0
).
getAppKey
()))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"系统未配置该终端编码"
);
return
resultJson
;
}
if
(
schools
.
size
()
>
1
)
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"终端编码重复配置"
);
return
resultJson
;
}
// 校验sign
if
(!
this
.
checkSign
(
paramJson
,
schools
.
get
(
0
).
getAppKey
()))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"签名校验失败"
);
return
resultJson
;
}
String
data
=
paramJson
.
getString
(
"data"
);
if
(
data
==
null
||
StringUtils
.
isBlank
(
data
))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"订单参数为空"
);
return
resultJson
;
}
byte
[]
orderByte
=
EThreeDES
.
decryptMode
(
schools
.
get
(
0
).
getAppKey
().
substring
(
0
,
24
).
getBytes
(),
EThreeDES
.
deBase64
(
data
));
// 获取订单数据
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
new
String
(
orderByte
));
log
.
info
(
"订单数据:"
+
jsonObject
.
toJSONString
());
// 校验必填参数
if
(
checkOrderSyncParams
(
jsonObject
))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"订单参数不全"
);
return
resultJson
;
}
// 查询合伙人信息
String
username
=
jsonObject
.
getString
(
"userName"
);
Wrapper
<
SysUser
>
sysUserWrapper
=
new
EntityWrapper
<>();
sysUserWrapper
.
eq
(
"account"
,
username
);
List
<
SysUser
>
sysUsers
=
sysUserMapper
.
selectList
(
sysUserWrapper
);
if
(
sysUsers
==
null
||
sysUsers
.
size
()
!=
1
)
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"合伙人账号错误"
);
return
resultJson
;
}
SysUser
sysUser
=
sysUsers
.
get
(
0
);
// 查询合伙人学校
List
<
Map
<
String
,
Object
>>
maps
=
hhrUserMapper
.
selectHehuorenSchool
(
sysUser
.
getId
());
if
(
maps
==
null
||
maps
.
size
()
!=
1
)
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"当前合伙人配置学校错误"
);
return
resultJson
;
}
Map
<
String
,
Object
>
school
=
maps
.
get
(
0
);
if
(!
schools
.
get
(
0
).
getId
().
equals
(
school
.
get
(
"id"
)))
{
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
"合伙人学校与下单学校不匹配"
);
return
resultJson
;
}
// 组装hhr_order
Order
order
=
new
Order
();
String
uuid
=
UUID
.
randomUUID
().
toString
();
String
id
=
uuid
.
split
(
"-"
)[
0
]
+
uuid
.
split
(
"-"
)[
1
];
SimpleDateFormat
sd
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
SimpleDateFormat
yyyyMMdd
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
orderNumber
=
"YRYM"
+
sd
.
format
(
new
Date
())
+
id
.
substring
(
1
,
12
);
order
.
setId
(
id
);
order
.
setHehuorenId
(
sysUser
.
getId
());
order
.
setOrderId
(
jsonObject
.
getString
(
"recNo"
));
order
.
setOrderNumber
(
orderNumber
);
order
.
setCustomerName
(
jsonObject
.
getString
(
"custName"
));
order
.
setContactNumber
(
jsonObject
.
getString
(
"accNbr"
));
order
.
setIdCard
(
jsonObject
.
getString
(
"certNo"
));
order
.
setCreateTime
(
yyyyMMdd
.
parse
(
jsonObject
.
getString
(
"orderTime"
)));
order
.
setUserType
(
"11"
);
// 订单类型:无人厅
order
.
setKapin
(
"宽带办理"
);
order
.
setUserSchool
(
school
.
get
(
"school_name"
).
toString
());
// order.setKdOrderId(orderView.getOrderSeq().toString());
order
.
setHehuorenPhone
(
sysUser
.
getPhone
());
order
.
setHehuorenSchool
(
school
.
get
(
"school_name"
).
toString
());
order
.
setHehuorenName
(
sysUser
.
getName
());
order
.
setHehuorenArea
(
sysUser
.
getSubstName
());
order
.
setLzgh
(
school
.
get
(
"lzgh"
)
!=
null
?
school
.
get
(
"lzgh"
).
toString
()
:
null
);
order
.
setOrderStatus
(
"已完成"
);
orderMapper
.
insert
(
order
);
// 组装order_view
OrderView
orderView
=
new
OrderView
();
orderView
.
setOrderName
(
order
.
getCustomerName
());
orderView
.
setOrderPhone
(
order
.
getContactNumber
());
orderView
.
setOrderNumber
(
order
.
getIdCard
());
orderView
.
setProductName
(
jsonObject
.
getString
(
"prodName"
));
orderView
.
setOrderSetMeal
(
"无人厅"
);
orderView
.
setOrderDate
(
order
.
getCreateTime
());
orderView
.
setOrderUniversityName
(
order
.
getHehuorenSchool
());
orderView
.
setHehuorenId
(
sysUser
.
getId
());
orderView
.
setOrderRegion
(
school
.
get
(
"sub_name"
)
!=
null
?
school
.
get
(
"sub_name"
).
toString
()
:
null
);
orderView
.
setWebOrderAmount
(
jsonObject
.
getString
(
"payAmount"
));
if
(
jsonObject
.
getString
(
"payAmount"
).
equals
(
"0"
))
{
orderView
.
setIPay
(
"0"
);
}
else
{
orderView
.
setIPay
(
"1"
);
}
orderView
.
setCustomerId
(
"xyzxyql"
);
orderView
.
setOrderCustomerType
(
"学生"
);
orderViewMapper
.
insert
(
orderView
);
resultJson
.
put
(
"result"
,
"0"
);
resultJson
.
put
(
"msg"
,
"同步成功"
);
}
catch
(
Exception
e
)
{
log
.
info
(
"订单同步失败:"
);
resultJson
.
put
(
"result"
,
"1"
);
resultJson
.
put
(
"msg"
,
e
.
toString
());
e
.
printStackTrace
();
return
resultJson
;
}
finally
{
log
.
info
(
resultJson
.
toJSONString
());
}
return
resultJson
;
}
/**
* 校验签名
* @param jsonObject
* @return
*/
private
boolean
checkSign
(
JSONObject
jsonObject
,
String
key2
)
{
if
(
StringUtils
.
isBlank
(
jsonObject
.
getString
(
"timestamp"
)))
{
return
false
;
}
String
param
=
""
+
jsonObject
.
get
(
"termNo"
)
+
jsonObject
.
get
(
"timestamp"
)
+
key2
;
String
s
=
MD5Utils
.
md5
(
param
);
if
(
StringUtils
.
equals
(
s
,
jsonObject
.
getString
(
"sign"
)))
{
return
true
;
}
return
false
;
}
/**
* 校验订单同步参数
* @param jsonObject
* @return
*/
private
boolean
checkOrderSyncParams
(
JSONObject
jsonObject
)
{
if
(
jsonObject
.
getString
(
"termNo"
)
==
null
// 终端编码
||
jsonObject
.
getString
(
"orderTime"
)
==
null
// 订单时间
||
jsonObject
.
getString
(
"prodName"
)
==
null
// 产品名
||
jsonObject
.
getString
(
"custName"
)
==
null
//客户姓名
||
jsonObject
.
getString
(
"recNo"
)
==
null
// 订单流水号
||
jsonObject
.
getString
(
"userName"
)
==
null
// 合伙人账号
||
jsonObject
.
getString
(
"certNo"
)
==
null
// 客户身份证
||
jsonObject
.
getString
(
"accNbr"
)
==
null
// 客户手机号码
||
jsonObject
.
getString
(
"orderState"
)
==
null
// 订单状态
||
jsonObject
.
getString
(
"payAmount"
)
==
null
)
{
// 支付金额
return
true
;
}
return
false
;
}
}
common/src/main/java/com/winsun/bean/AppConfig.java
0 → 100644
View file @
ef975899
package
com
.
winsun
.
bean
;
import
com.baomidou.mybatisplus.annotations.TableField
;
import
com.baomidou.mybatisplus.annotations.TableId
;
import
com.baomidou.mybatisplus.annotations.TableName
;
import
com.baomidou.mybatisplus.enums.IdType
;
import
lombok.Data
;
import
java.util.Date
;
/**
* 第三方应用密匙配置
* @author chengfengluo
* @date 2021-02-20 10:36
*/
@Data
@TableName
(
"sys_app_config"
)
public
class
AppConfig
{
/**
* 主键
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
/**
* 应用名称
*/
@TableField
(
"app_name"
)
private
String
appName
;
/**
* 应用id
*/
@TableField
(
"app_id"
)
private
String
appId
;
/**
* 应用密匙
*/
@TableField
(
"app_secret"
)
private
String
appSecret
;
/**
* 创建人
*/
@TableField
(
"create_by"
)
private
String
createBy
;
/**
* 创建时间
*/
@TableField
(
"create_time"
)
private
Date
createTime
;
/**
* 更新人
*/
@TableField
(
"update_by"
)
private
String
updateBy
;
/**
* 更新时间
*/
@TableField
(
"update_time"
)
private
Date
updateTime
;
}
common/src/main/java/com/winsun/bean/School.java
View file @
ef975899
...
@@ -209,4 +209,17 @@ public class School implements Serializable {
...
@@ -209,4 +209,17 @@ public class School implements Serializable {
*/
*/
@TableField
(
"sjktcsj"
)
@TableField
(
"sjktcsj"
)
private
String
sjktcsj
;
private
String
sjktcsj
;
/**
* 终端编码
*/
@TableField
(
"app_id"
)
private
String
appId
;
/**
* 终端密匙
*/
@TableField
(
"app_key"
)
private
String
appKey
;
}
}
common/src/main/java/com/winsun/mapper/AppConfigMapper.java
0 → 100644
View file @
ef975899
package
com
.
winsun
.
mapper
;
import
com.baomidou.mybatisplus.mapper.BaseMapper
;
import
com.winsun.bean.AppConfig
;
import
com.winsun.bean.PackageUpgrade
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Component
;
/**
* @author chengfengluo
* @date 2021-02-20 10:40
*/
@Mapper
@Component
public
interface
AppConfigMapper
extends
BaseMapper
<
AppConfig
>
{
}
common/src/main/java/com/winsun/mapper/HhrUserMapper.java
View file @
ef975899
package
com
.
winsun
.
mapper
;
package
com
.
winsun
.
mapper
;
import
com.winsun.bean.School
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.Select
;
...
@@ -69,4 +70,11 @@ public interface HhrUserMapper extends BaseMapper<HhrUser> {
...
@@ -69,4 +70,11 @@ public interface HhrUserMapper extends BaseMapper<HhrUser> {
* @return
* @return
*/
*/
Map
<
String
,
Object
>
selectHehuorenInfo
(
@Param
(
"hehuorenId"
)
String
hehuorenId
);
Map
<
String
,
Object
>
selectHehuorenInfo
(
@Param
(
"hehuorenId"
)
String
hehuorenId
);
/**
* 查询合伙人学校
* @param userId
* @return
*/
List
<
Map
<
String
,
Object
>>
selectHehuorenSchool
(
String
userId
);
}
}
common/src/main/java/com/winsun/outSideSystem/IntelligenceSendOrder.java
View file @
ef975899
...
@@ -70,12 +70,15 @@ public class IntelligenceSendOrder {
...
@@ -70,12 +70,15 @@ public class IntelligenceSendOrder {
// 初始化下单支付参数
// 初始化下单支付参数
String
ORDERSEQ
=
""
,
ORDERAMOUNT
=
""
,
ORDERREQTRANSEQ
=
""
,
UPTRANSEQ
=
""
;
String
ORDERSEQ
=
""
,
ORDERAMOUNT
=
""
,
ORDERREQTRANSEQ
=
""
,
UPTRANSEQ
=
""
;
if
(
order
.
get
(
"kd_order_id"
)
==
null
)
{
log
.
info
(
"kd_order_id为空。"
);
return
;
}
Map
<
String
,
Object
>
orderMap
=
null
;
Map
<
String
,
Object
>
orderMap
=
null
;
Map
<
String
,
Object
>
schoolMap
=
null
;
Map
<
String
,
Object
>
schoolMap
=
null
;
List
<
Map
<
String
,
Object
>>
list1
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
list1
=
new
ArrayList
<>();
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyyMMddHHmmss"
);
String
currentTimeStr
=
""
;
String
currentTimeStr
=
""
;
ORDERSEQ
=
order
.
get
(
"kd_order_id"
).
toString
();
ORDERSEQ
=
order
.
get
(
"kd_order_id"
).
toString
();
currentTimeStr
=
simpleDateFormat
.
format
(
new
Date
());
currentTimeStr
=
simpleDateFormat
.
format
(
new
Date
());
Wrapper
<
OrderView
>
orderViewWrapper
=
new
EntityWrapper
<>();
Wrapper
<
OrderView
>
orderViewWrapper
=
new
EntityWrapper
<>();
...
@@ -84,7 +87,6 @@ public class IntelligenceSendOrder {
...
@@ -84,7 +87,6 @@ public class IntelligenceSendOrder {
if
(
orderViewMaps
!=
null
&&
orderViewMaps
.
size
()
>
0
)
{
if
(
orderViewMaps
!=
null
&&
orderViewMaps
.
size
()
>
0
)
{
orderMap
=
orderViewMaps
.
get
(
0
);
orderMap
=
orderViewMaps
.
get
(
0
);
}
}
if
(
orderMap
==
null
)
{
if
(
orderMap
==
null
)
{
log
.
info
(
"错误记录:"
+
JSONObject
.
toJSONString
(
order
));
log
.
info
(
"错误记录:"
+
JSONObject
.
toJSONString
(
order
));
log
.
info
(
"订单号:"
+
ORDERSEQ
+
",在order_view表中无记录,无法进行智能平台下单"
);
log
.
info
(
"订单号:"
+
ORDERSEQ
+
",在order_view表中无记录,无法进行智能平台下单"
);
...
@@ -191,25 +193,20 @@ public class IntelligenceSendOrder {
...
@@ -191,25 +193,20 @@ public class IntelligenceSendOrder {
String
state
=
queryOrderJsonObject
.
getString
(
"state"
);
String
state
=
queryOrderJsonObject
.
getString
(
"state"
);
// 更新hhr_order
// 更新hhr_order
Wrapper
<
Order
>
orderWrapper
=
new
EntityWrapper
<>();
Wrapper
<
Order
>
orderWrapper
=
new
EntityWrapper
<>();
orderWrapper
.
eq
(
"kd_order_id"
,
order
Num
);
orderWrapper
.
eq
(
"kd_order_id"
,
order
.
get
(
"kd_order_id"
)
);
Order
updateOrder
=
new
Order
();
Order
updateOrder
=
new
Order
();
updateOrder
.
setOrderId
(
ORDERSEQ
);
updateOrder
.
setOrderId
(
orderNum
);
updateOrder
.
setOrderStatus
(
"审核中"
);
updateOrder
.
setOrderStatus
(
"审核中"
);
orderMapper
.
update
(
updateOrder
,
orderWrapper
);
orderMapper
.
update
(
updateOrder
,
orderWrapper
);
log
.
info
(
"支付成功后更新订单状态"
);
if
(
StringUtils
.
isNotBlank
(
state
))
{
OrderView
updateOrderView
=
new
OrderView
();
log
.
info
(
"支付成功后更新订单状态"
);
updateOrderView
.
setStatus
(
QueOrderNum
(
state
));
OrderView
updateOrderView
=
new
OrderView
();
updateOrderView
.
setOrderseqThd
(
orderNum
);
updateOrderView
.
setStatus
(
QueOrderNum
(
state
));
Wrapper
<
OrderView
>
wrapperOrderView
=
new
EntityWrapper
<>();
updateOrderView
.
setOrderseqThd
(
orderNum
);
wrapperOrderView
.
eq
(
"orderSeq"
,
order
.
get
(
"kd_order_id"
).
toString
());
Wrapper
<
OrderView
>
wrapperOrderView
=
new
EntityWrapper
<>();
orderViewMapper
.
update
(
updateOrderView
,
wrapperOrderView
);
wrapperOrderView
.
eq
(
"orderSeq"
,
ORDERSEQ
);
log
.
info
(
"----------将智能订单状态更新至数据库success:"
+
state
);
orderViewMapper
.
update
(
updateOrderView
,
wrapperOrderView
);
log
.
info
(
"----------将智能订单状态更新至数据库success:"
+
state
);
}
else
{
log
.
info
(
"----------将智能订单状态更新至数据库error:"
+
state
);
}
}
}
}
else
{
}
else
{
log
.
info
(
log
.
info
(
...
@@ -224,7 +221,8 @@ public class IntelligenceSendOrder {
...
@@ -224,7 +221,8 @@ public class IntelligenceSendOrder {
log
.
info
(
"重复订单"
);
log
.
info
(
"重复订单"
);
}
}
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
e
.
getMessage
();
log
.
info
(
"单宽下单失败"
);
e
.
printStackTrace
();
}
}
}
}
...
@@ -254,6 +252,7 @@ public class IntelligenceSendOrder {
...
@@ -254,6 +252,7 @@ public class IntelligenceSendOrder {
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
info
(
e
.
toString
());
log
.
info
(
e
.
toString
());
e
.
printStackTrace
();
}
}
}
}
...
@@ -700,7 +699,7 @@ public class IntelligenceSendOrder {
...
@@ -700,7 +699,7 @@ public class IntelligenceSendOrder {
log
.
error
(
"查询单宽带(预付费、移动、融合、续约、增值)产品接口异常尝试20次失误。请检查接口"
);
log
.
error
(
"查询单宽带(预付费、移动、融合、续约、增值)产品接口异常尝试20次失误。请检查接口"
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"单宽带下单接口异常"
);
log
.
info
(
"单宽带下单接口异常"
);
e
.
printStackTrace
();
e
.
printStackTrace
();
}
finally
{
}
finally
{
httpPost
.
releaseConnection
();
httpPost
.
releaseConnection
();
...
@@ -765,7 +764,7 @@ public class IntelligenceSendOrder {
...
@@ -765,7 +764,7 @@ public class IntelligenceSendOrder {
log
.
error
(
"查询单宽带(预付费、移动、融合、续约、增值)产品接口异常尝试20次失误。请检查接口"
);
log
.
error
(
"查询单宽带(预付费、移动、融合、续约、增值)产品接口异常尝试20次失误。请检查接口"
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"查询单宽带(预付费、移动、融合、续约、增值)产品接口异常"
);
log
.
info
(
"查询单宽带(预付费、移动、融合、续约、增值)产品接口异常"
);
e
.
printStackTrace
();
e
.
printStackTrace
();
}
finally
{
}
finally
{
httpPost
.
releaseConnection
();
httpPost
.
releaseConnection
();
...
@@ -1825,7 +1824,7 @@ public class IntelligenceSendOrder {
...
@@ -1825,7 +1824,7 @@ public class IntelligenceSendOrder {
log
.
info
(
"宽叠移下单接口,返回信息:"
+
httpResult
);
log
.
info
(
"宽叠移下单接口,返回信息:"
+
httpResult
);
resultDataJson
=
net
.
sf
.
json
.
JSONObject
.
fromObject
(
httpResult
);
resultDataJson
=
net
.
sf
.
json
.
JSONObject
.
fromObject
(
httpResult
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"宽叠移下单接口异常"
);
log
.
info
(
"宽叠移下单接口异常"
);
e
.
printStackTrace
();
e
.
printStackTrace
();
}
finally
{
}
finally
{
httpPost
.
releaseConnection
();
httpPost
.
releaseConnection
();
...
...
common/src/main/java/com/winsun/utils/EThreeDES.java
0 → 100644
View file @
ef975899
package
com
.
winsun
.
utils
;
import
sun.misc.BASE64Decoder
;
import
sun.misc.BASE64Encoder
;
import
javax.crypto.Cipher
;
import
javax.crypto.SecretKey
;
import
javax.crypto.spec.SecretKeySpec
;
import
java.io.IOException
;
/**
* @author chengfengluo
* @date 2021-02-19 14:58
*/
public
class
EThreeDES
{
private
static
final
String
Algorithm
=
"DESede"
;
//定义 加密算法,可用 DES,DESede,Blowfish
//keybyte为加密密钥,长度为24字节
//src为被加密的数据缓冲区(源)
//3DES加密
public
static
byte
[]
encryptMode
(
byte
[]
keybyte
,
byte
[]
src
)
{
try
{
//生成密钥
SecretKey
deskey
=
new
SecretKeySpec
(
keybyte
,
Algorithm
);
//加密
Cipher
c1
=
Cipher
.
getInstance
(
Algorithm
);
c1
.
init
(
Cipher
.
ENCRYPT_MODE
,
deskey
);
return
c1
.
doFinal
(
src
);
}
catch
(
java
.
security
.
NoSuchAlgorithmException
e1
)
{
e1
.
printStackTrace
();
}
catch
(
javax
.
crypto
.
NoSuchPaddingException
e2
)
{
e2
.
printStackTrace
();
}
catch
(
Exception
e3
)
{
e3
.
printStackTrace
();
}
return
null
;
}
//keybyte为加密密钥,长度为24字节
//src为加密后的缓冲区
//3DES解密
public
static
byte
[]
decryptMode
(
byte
[]
keybyte
,
byte
[]
src
)
throws
Exception
{
try
{
//生成密钥
SecretKey
deskey
=
new
SecretKeySpec
(
keybyte
,
Algorithm
);
//解密
Cipher
c1
=
Cipher
.
getInstance
(
Algorithm
);
c1
.
init
(
Cipher
.
DECRYPT_MODE
,
deskey
);
return
c1
.
doFinal
(
src
);
}
catch
(
java
.
security
.
NoSuchAlgorithmException
e1
)
{
e1
.
printStackTrace
();
}
catch
(
javax
.
crypto
.
NoSuchPaddingException
e2
)
{
e2
.
printStackTrace
();
}
return
null
;
}
//转换成十六进制字符串
public
static
String
byte2hex
(
byte
[]
b
)
{
String
hs
=
""
;
String
stmp
=
""
;
for
(
int
n
=
0
;
n
<
b
.
length
;
n
++)
{
stmp
=(
Integer
.
toHexString
(
b
[
n
]
&
0XFF
));
if
(
stmp
.
length
()==
1
)
hs
=
hs
+
"0"
+
stmp
;
else
hs
=
hs
+
stmp
;
if
(
n
<
b
.
length
-
1
)
hs
=
hs
+
":"
;
}
return
hs
.
toUpperCase
();
}
//转为base64
public
static
String
enBase64
(
byte
[]
bparm
)
throws
IOException
{
BASE64Encoder
enc
=
new
BASE64Encoder
();
String
bdnParm
=
enc
.
encodeBuffer
(
bparm
);
return
bdnParm
;
}
//从BASE64反转回来
public
static
byte
[]
deBase64
(
String
parm
)
throws
IOException
{
BASE64Decoder
dec
=
new
BASE64Decoder
();
byte
[]
dnParm
=
dec
.
decodeBuffer
(
parm
);
return
dnParm
;
}
public
static
String
replace
(
String
source
,
String
oldString
,
String
newString
)
{
StringBuffer
output
=
new
StringBuffer
();
int
lengthOfSource
=
source
.
length
();
int
lengthOfOld
=
oldString
.
length
();
int
posStart
=
0
;
int
pos
;
//
while
(
(
pos
=
source
.
indexOf
(
oldString
,
posStart
))
>=
0
)
{
output
.
append
(
source
.
substring
(
posStart
,
pos
));
output
.
append
(
newString
);
posStart
=
pos
+
lengthOfOld
;
}
if
(
posStart
<
lengthOfSource
)
{
output
.
append
(
source
.
substring
(
posStart
));
}
return
output
.
toString
();
}
/**
* 3DES解密
* @param toThreeDES
* @return
*/
public
static
String
deThreeDES
(
String
toThreeDES
){
String
deThreeDes
=
""
;
if
(
toThreeDES
==
null
||
toThreeDES
.
equals
(
""
))
{
deThreeDes
=
""
;
}
else
{
try
{
EThreeDES
edes
=
new
EThreeDES
();
String
key_VALUE
=
"A314BA5A3C85E86KK887WSWS"
;
byte
[]
keyBytes
=
key_VALUE
.
getBytes
();
byte
[]
toBASE64ToStr
=
edes
.
deBase64
(
toThreeDES
);
byte
[]
toWK_DESToStr
=
EThreeDES
.
decryptMode
(
keyBytes
,
toBASE64ToStr
);
deThreeDes
=
new
String
(
toWK_DESToStr
,
"utf-8"
);
}
catch
(
Exception
ex
)
{
//System.out.println("3DES解密出错!!!"+ex.getMessage());
}
}
return
deThreeDes
;
}
public
static
void
main
(
String
[]
args
)
throws
IOException
{
EThreeDES
eThreeDES
=
new
EThreeDES
();
String
KEY
=
"C314BONC3C85E86KK996WSWS"
;
//密匙
//加密
String
original
=
"{termNo:\"yxsst_ht191106\", orderTime:\"2021-01-27 11:30:00\", prodName:\"套餐名称\", reqCode:\"GZ202101261234567\", subsCode: [\"611234\", \"612345\", \"611226\"], custName:\"张*三\", certNo: \"4401**********1234\", accNbr:\"13888888888\", orderState: \"S0K\", orderStateName:\"已完成/已取卡\", payState: \"1\", crmStateName:\"完工\", crmStateReason:\"000\", recNo:\"0200202101251030423400027500\"}"
;
byte
[]
eBy
=
EThreeDES
.
encryptMode
(
KEY
.
getBytes
(),
original
.
getBytes
());
String
eBase64
=
eThreeDES
.
enBase64
(
eBy
);
System
.
out
.
println
(
"3DES加密后的字符串:"
+
eBase64
);
//解密
String
dBase64
=
eBase64
;
byte
[]
dBy
=
EThreeDES
.
deBase64
(
dBase64
);
// byte[] srcBytes = EThreeDES.decryptMode(KEY.getBytes(), dBy);
// System.out.println("3DES解密后的字符串:" + new String(srcBytes,"utf-8"));
}
}
common/src/main/java/com/winsun/utils/PicturesUtil.java
View file @
ef975899
...
@@ -20,6 +20,11 @@ import java.util.Date;
...
@@ -20,6 +20,11 @@ import java.util.Date;
public
class
PicturesUtil
{
public
class
PicturesUtil
{
/**
/**
* 服务器上传路径
*/
private
static
String
UPLOAD_PRE
=
"/springboot/school_center/manager/"
;
/**
* 上传图片
* 上传图片
* <p>
* <p>
* 前端传来图片必须为jpeg格式
* 前端传来图片必须为jpeg格式
...
@@ -50,17 +55,14 @@ public class PicturesUtil {
...
@@ -50,17 +55,14 @@ public class PicturesUtil {
if
(!
multipartFiles
[
i
].
isEmpty
())
{
if
(!
multipartFiles
[
i
].
isEmpty
())
{
String
base64Data
=
multipartFiles
[
i
].
split
(
","
)[
1
];
String
base64Data
=
multipartFiles
[
i
].
split
(
","
)[
1
];
String
houzhui
=
multipartFiles
[
i
].
split
(
","
)[
0
].
split
(
"/"
)[
1
].
split
(
";"
)[
0
];
String
houzhui
=
multipartFiles
[
i
].
split
(
","
)[
0
].
split
(
"/"
)[
1
].
split
(
";"
)[
0
];
String
filePath1
=
FilePath
.
PATH
.
getValue
()+
pathType
+
"/"
+
yymmdd
+
"/"
+
orderNum
;
String
filePath1
=
UPLOAD_PRE
+
FilePath
.
PATH
.
getValue
()+
pathType
+
"/"
+
yymmdd
+
"/"
+
orderNum
;
File
dir
=
new
File
(
filePath1
);
File
dir
=
new
File
(
filePath1
);
if
(!
dir
.
exists
())
{
if
(!
dir
.
exists
())
{
dir
.
mkdirs
();
dir
.
mkdirs
();
}
//enclosure/images/idCard/temp/年/月/日/name.jpeg
}
//enclosure/images/idCard/temp/年/月/日/name.jpeg
filePath
=
FilePath
.
PATH
.
getValue
()+
pathType
+
"/"
+
yymmdd
+
"/"
+
orderNum
+
"/"
+
(
new
Date
()).
getTime
()
+
"."
+
PicturesUtil
.
checkSuffix
(
houzhui
);
filePath
=
UPLOAD_PRE
+
FilePath
.
PATH
.
getValue
()+
pathType
+
"/"
+
yymmdd
+
"/"
+
orderNum
+
"/"
+
(
new
Date
()).
getTime
()
+
"."
+
PicturesUtil
.
checkSuffix
(
houzhui
);
//byte[] bytes = Base64.getUrlDecoder().decode(base64Data);
//byte[] bytes =new BASE64Decoder().decodeBuffer(base64Data);
//byte[] bytes = Base64.getDecoder().decode(base64Data);
byte
[]
bytes
=
Base64
.
getMimeDecoder
().
decode
(
base64Data
.
replace
(
" "
,
"+"
));
byte
[]
bytes
=
Base64
.
getMimeDecoder
().
decode
(
base64Data
.
replace
(
" "
,
"+"
));
FileOutputStream
fos
=
null
;
FileOutputStream
fos
=
null
;
try
{
try
{
...
@@ -85,7 +87,7 @@ public class PicturesUtil {
...
@@ -85,7 +87,7 @@ public class PicturesUtil {
}
}
String
enclosure
=
""
;
String
enclosure
=
""
;
if
(
filePath
!=
null
)
{
if
(
filePath
!=
null
)
{
enclosure
=
filePath
.
replace
(
"enclosure"
,
"manager/ciop"
);
enclosure
=
filePath
.
replace
(
UPLOAD_PRE
+
"enclosure"
,
"manager/ciop"
);
}
}
return
enclosure
;
return
enclosure
;
...
@@ -112,7 +114,7 @@ public class PicturesUtil {
...
@@ -112,7 +114,7 @@ public class PicturesUtil {
* @return
* @return
*/
*/
public
static
boolean
deletePictures
(
String
fileName
){
public
static
boolean
deletePictures
(
String
fileName
){
File
file
=
new
File
(
fileName
.
replace
(
"manager/ciop"
,
"enclosure"
));
File
file
=
new
File
(
fileName
.
replace
(
"manager/ciop"
,
UPLOAD_PRE
+
"enclosure"
));
Boolean
flag
=
false
;
Boolean
flag
=
false
;
//判断文件是否存在
//判断文件是否存在
if
(
file
.
exists
()
==
true
){
if
(
file
.
exists
()
==
true
){
...
...
common/src/main/java/com/winsun/utils/RandomUtil.java
View file @
ef975899
...
@@ -50,4 +50,23 @@ public class RandomUtil {
...
@@ -50,4 +50,23 @@ public class RandomUtil {
return
sb
.
toString
();
return
sb
.
toString
();
}
}
/**
* 获取纯数字随机数
* @param length
* @return
*/
public
static
String
ramdomNum
(
Integer
length
){
String
str
=
"1234567890"
;
Random
random
=
new
Random
();
StringBuffer
sb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
length
;
i
++){
int
number
=
random
.
nextInt
(
10
);
sb
.
append
(
str
.
charAt
(
number
));
}
return
sb
.
toString
();
}
}
}
common/src/main/resources/com/winsun/mapper/mapping/HhrUserMapper.xml
View file @
ef975899
...
@@ -99,4 +99,17 @@
...
@@ -99,4 +99,17 @@
WHERE
WHERE
su.id = #{hehuorenId}
su.id = #{hehuorenId}
</select>
</select>
<select
id=
"selectHehuorenSchool"
parameterType=
"String"
resultType=
"HashMap"
>
select
hs.*
from
hhr_user_school hus
LEFT JOIN
hhr_school hs
ON
hus.school_id = hs.id
WHERE
hus.user_id = #{userId}
</select>
</mapper>
</mapper>
\ No newline at end of file
core-service/src/main/java/com/winsun/item/modular/system/controller/LoginPwdController.java
View file @
ef975899
...
@@ -4,10 +4,11 @@ import com.alibaba.fastjson.JSON;
...
@@ -4,10 +4,11 @@ import com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.winsun.auth.core.annotion.Permission
;
import
com.winsun.auth.core.base.controller.BaseController
;
import
com.winsun.auth.core.base.controller.BaseController
;
import
com.winsun.auth.core.base.tips.ErrorTip
;
import
com.winsun.auth.core.base.tips.ErrorTip
;
import
com.winsun.auth.core.common.model.ResponseData
;
import
com.winsun.auth.core.common.model.ResponseData
;
import
com.winsun.auth.core.s
upport.HttpKit
;
import
com.winsun.auth.core.s
hiro.ShiroUser
;
import
com.winsun.auth.core.util.DateUtil
;
import
com.winsun.auth.core.util.DateUtil
;
import
com.winsun.auth.model.user.User
;
import
com.winsun.auth.model.user.User
;
import
com.winsun.bean.HhrUser
;
import
com.winsun.bean.HhrUser
;
...
@@ -15,10 +16,8 @@ import com.winsun.bean.School;
...
@@ -15,10 +16,8 @@ import com.winsun.bean.School;
import
com.winsun.bean.SysUser
;
import
com.winsun.bean.SysUser
;
import
com.winsun.item.core.shiro.ShiroKit
;
import
com.winsun.item.core.shiro.ShiroKit
;
import
com.winsun.item.core.util.AccLoginUtil
;
import
com.winsun.item.core.util.AccLoginUtil
;
import
com.winsun.item.core.util.IPUtils
;
import
com.winsun.item.core.util.ResponseEntity
;
import
com.winsun.item.core.util.ResponseEntity
;
import
com.winsun.item.modular.system.service.IUserService
;
import
com.winsun.item.modular.system.service.IUserService
;
import
com.winsun.item.modular.system.service.impl.AccServiceImpl
;
import
com.winsun.item.util.LoginUtils
;
import
com.winsun.item.util.LoginUtils
;
import
com.winsun.mapper.HhrUserMapper
;
import
com.winsun.mapper.HhrUserMapper
;
import
com.winsun.mapper.SchoolMapper
;
import
com.winsun.mapper.SchoolMapper
;
...
@@ -32,15 +31,13 @@ import org.springframework.beans.factory.annotation.Value;
...
@@ -32,15 +31,13 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
import
java.io.Serializable
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
/**
/**
...
@@ -271,7 +268,7 @@ public class LoginPwdController extends BaseController {
...
@@ -271,7 +268,7 @@ public class LoginPwdController extends BaseController {
String
username
,
String
verificationCode
,
String
username
,
String
verificationCode
,
@RequestParam
(
value
=
"remember"
,
defaultValue
=
"false"
)
boolean
remember
)
{
@RequestParam
(
value
=
"remember"
,
defaultValue
=
"false"
)
boolean
remember
)
{
log
.
info
(
accessToken
+
":"
+
openid
+
":"
+
":"
+
username
+
":"
+
verificationCode
+
":"
+
remember
);
log
.
info
(
accessToken
+
":"
+
openid
+
":"
+
":"
+
username
+
":"
+
verificationCode
+
":"
+
remember
);
if
(
StringUtils
.
isBlank
(
accessToken
)
||
StringUtils
.
isBlank
(
openid
)
||
StringUtils
.
isBlank
(
username
)
||
StringUtils
.
isBlank
(
verificationCode
))
{
if
(
StringUtils
.
isBlank
(
username
)
||
StringUtils
.
isBlank
(
verificationCode
))
{
return
ResponseData
.
error
(
"绑定失败,授权失效或账号验证码为空!"
);
return
ResponseData
.
error
(
"绑定失败,授权失效或账号验证码为空!"
);
}
}
String
str
=
stringRedisTemplate
.
opsForValue
().
get
(
username
+
GETPHONECODE
);
String
str
=
stringRedisTemplate
.
opsForValue
().
get
(
username
+
GETPHONECODE
);
...
@@ -287,39 +284,54 @@ public class LoginPwdController extends BaseController {
...
@@ -287,39 +284,54 @@ public class LoginPwdController extends BaseController {
if
(
users
.
size
()
==
0
)
{
if
(
users
.
size
()
==
0
)
{
return
ResponseData
.
error
(
"当前账号有误!"
);
return
ResponseData
.
error
(
"当前账号有误!"
);
}
}
log
.
info
(
"openId:"
+
openid
);
String
url1
=
"https://api.weixin.qq.com/sns/userinfo?access_token="
+
accessToken
+
"&openid="
+
openid
+
"&lang=zh_CN"
;
String
jsonObject1
=
null
;
try
{
jsonObject1
=
HttpHelper
.
sendGet
(
url1
);
}
catch
(
Exception
e
)
{
log
.
error
(
"微信登录获取用户信息失败"
+
e
.
getMessage
(),
e
);
}
if
(
StringUtils
.
isBlank
(
jsonObject1
))
{
return
ResponseData
.
error
(
"微信授权失效,请重新授权!"
);
}
if
(!
jsonObject1
.
contains
(
"openid"
)){
return
ResponseData
.
error
(
"微信授权失效,请重新授权!"
);
}
log
.
info
(
jsonObject1
);
Map
<
String
,
Object
>
map1
=
JSON
.
parseObject
(
jsonObject1
,
Map
.
class
);
String
headimgurl
=
map1
.
get
(
"headimgurl"
).
toString
();
String
nickname
=
map1
.
get
(
"nickname"
).
toString
();
SysUser
sysUser
=
users
.
get
(
0
);
SysUser
sysUser
=
users
.
get
(
0
);
Wrapper
wrapper
=
new
EntityWrapper
<>();
// 没有openid和accessToken直接登录,不访问微信
wrapper
.
eq
(
"id"
,
sysUser
.
getId
());
if
(
StringUtils
.
isNotBlank
(
openid
)
&&
StringUtils
.
isNotBlank
(
accessToken
))
{
Map
<
String
,
Object
>
dataMapping
=
new
HashMap
<>();
log
.
info
(
"openId:"
+
openid
);
// 不绑定微信则不保存openId
String
url1
=
"https://api.weixin.qq.com/sns/userinfo?access_token="
+
accessToken
+
"&openid="
+
openid
+
"&lang=zh_CN"
;
if
(
remember
)
{
String
jsonObject1
=
null
;
dataMapping
.
put
(
"open_id"
,
openid
);
try
{
}
jsonObject1
=
HttpHelper
.
sendGet
(
url1
);
}
catch
(
Exception
e
)
{
log
.
error
(
"微信登录获取用户信息失败"
+
e
.
getMessage
(),
e
);
}
if
(
StringUtils
.
isBlank
(
jsonObject1
))
{
return
ResponseData
.
error
(
"微信授权失效,请重新授权!"
);
}
if
(!
jsonObject1
.
contains
(
"openid"
)){
return
ResponseData
.
error
(
"微信授权失效,请重新授权!"
);
}
log
.
info
(
jsonObject1
);
Map
<
String
,
Object
>
map1
=
JSON
.
parseObject
(
jsonObject1
,
Map
.
class
);
String
headimgurl
=
map1
.
get
(
"headimgurl"
).
toString
();
String
nickname
=
map1
.
get
(
"nickname"
).
toString
();
Wrapper
wrapper
=
new
EntityWrapper
<>();
wrapper
.
eq
(
"id"
,
sysUser
.
getId
());
Map
<
String
,
Object
>
dataMapping
=
new
HashMap
<>();
// 不绑定微信则不保存openId
if
(
remember
)
{
dataMapping
.
put
(
"open_id"
,
openid
);
}
dataMapping
.
put
(
"wx_head_img_url"
,
headimgurl
);
dataMapping
.
put
(
"wx_head_img_url"
,
headimgurl
);
dataMapping
.
put
(
"wx_nick_name"
,
nickname
);
dataMapping
.
put
(
"wx_nick_name"
,
nickname
);
Integer
integer
=
hhrUserMapper
.
updateForSet
(
MyBatisPlusUpdateUtils
.
toUpdateSet
(
dataMapping
),
wrapper
);
Integer
integer
=
hhrUserMapper
.
updateForSet
(
MyBatisPlusUpdateUtils
.
toUpdateSet
(
dataMapping
),
wrapper
);
if
(
integer
==
1
)
{
if
(
integer
==
1
)
{
return
this
.
loginvalid
(
null
,
sysUser
.
getAccount
(),
openid
);
return
this
.
loginvalid
(
null
,
sysUser
.
getAccount
(),
openid
);
}
}
else
{
// 查询openid,模拟微信登录
HhrUser
hhrUser
=
hhrUserMapper
.
selectById
(
sysUser
.
getId
());
if
(
hhrUser
==
null
)
{
return
ResponseData
.
error
(
"合伙人信息有误!"
);
}
if
(
StringUtils
.
isBlank
(
hhrUser
.
getOpenId
()))
{
return
ResponseData
.
error
(
"请先在一人一码中绑定微信登录"
);
}
return
this
.
loginvalid
(
null
,
sysUser
.
getAccount
(),
hhrUser
.
getOpenId
());
}
}
return
ResponseData
.
error
(
"绑定失败!"
);
return
ResponseData
.
error
(
"绑定失败!"
);
}
}
...
@@ -489,6 +501,141 @@ public class LoginPwdController extends BaseController {
...
@@ -489,6 +501,141 @@ public class LoginPwdController extends BaseController {
List
<
Map
<
String
,
Object
>>
list
=
schoolMapper
.
selectMaps
(
wrapper
);
List
<
Map
<
String
,
Object
>>
list
=
schoolMapper
.
selectMaps
(
wrapper
);
return
ResponseData
.
success
(
list
);
return
ResponseData
.
success
(
list
);
}
}
/**
* 打开无人厅
* @return
*/
@PostMapping
(
"openHall"
)
public
ResponseData
<
String
>
openHall
()
{
// 查询当前合伙人学校,合伙人添加appId字段
ShiroUser
user
=
ShiroKit
.
getUser
();
if
(
user
==
null
||
user
.
getId
()
==
null
||
user
.
getId
()
==
0
)
{
return
ResponseData
.
error
(
"当前登录用户信息有误,请重新登录。"
);
}
List
<
Map
<
String
,
Object
>>
schools
=
hhrUserMapper
.
selectHehuorenSchool
(
user
.
getId
().
toString
());
if
(
schools
==
null
||
schools
.
size
()
==
0
)
{
return
ResponseData
.
error
(
"当前合伙人未设置学校"
);
}
if
(
schools
.
size
()
>
1
)
{
return
ResponseData
.
error
(
"当前合伙人学校配置有误,请重新配置"
);
}
// 判断接入号终端是否存在
Map
<
String
,
Object
>
school
=
schools
.
get
(
0
);
if
(
school
.
get
(
"app_id"
)
==
null
||
school
.
get
(
"app_key"
)
==
null
||
StringUtils
.
isBlank
(
school
.
get
(
"app_id"
).
toString
())
||
StringUtils
.
isBlank
(
school
.
get
(
"app_key"
).
toString
()))
{
return
ResponseData
.
error
(
"当前学校未配置校园随身厅。"
);
}
if
(
school
.
get
(
"lzgh"
)
==
null
||
StringUtils
.
isBlank
(
school
.
get
(
"lzgh"
).
toString
()))
{
return
ResponseData
.
error
(
"当前学校未配置揽装工号。"
);
}
String
appId
=
school
.
get
(
"app_id"
).
toString
();
String
appKey
=
school
.
get
(
"app_key"
).
toString
();
Map
params
=
new
HashMap
();
params
.
put
(
"r"
,
RandomUtil
.
ramdomNum
(
10
));
params
.
put
(
"20210114_1"
,
appId
);
// 组装请求信息
String
key2
=
appKey
.
substring
(
0
,
24
);
Map
<
String
,
Object
>
paramsMap
=
new
HashMap
<>();
paramsMap
.
put
(
"apph5"
,
"1"
);
//APPH5标识 固定:1
paramsMap
.
put
(
"appid"
,
appId
);
// 终端编码
paramsMap
.
put
(
"apph5Type"
,
"1"
);
// 入口类型 网迅固定:1
paramsMap
.
put
(
"lzstaffcity"
,
""
);
// 揽装人县分
paramsMap
.
put
(
"lzstaffmsc"
,
""
);
// 揽装人营服
paramsMap
.
put
(
"lzstaffname"
,
""
);
// 揽装人姓名
paramsMap
.
put
(
"lzstaffno"
,
school
.
get
(
"lzgh"
));
// 揽装工号
paramsMap
.
put
(
"lzstaffphone"
,
""
);
// 揽装人手机
paramsMap
.
put
(
"meid"
,
""
);
// 终端meid
paramsMap
.
put
(
"sgstaffno"
,
""
);
// 施工工号
paramsMap
.
put
(
"timestamp"
,
new
Date
().
getTime
());
// 时间戳
paramsMap
.
put
(
"username"
,
appId
+
user
.
getAccount
());
// 登录标识
paramsMap
.
put
(
"xxstaffno1"
,
""
);
// 协销工号1
paramsMap
.
put
(
"xxstaffno2"
,
""
);
// 协销工号2
List
<
Map
.
Entry
<
String
,
Object
>>
list
=
new
ArrayList
<>(
paramsMap
.
entrySet
());
// 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
Collections
.
sort
(
list
,
new
Comparator
<
Map
.
Entry
<
String
,
Object
>>()
{
public
int
compare
(
Map
.
Entry
<
String
,
Object
>
o1
,
Map
.
Entry
<
String
,
Object
>
o2
)
{
return
(
o1
.
getKey
()).
toString
().
compareTo
(
o2
.
getKey
());
}
});
log
.
info
(
"获取的参数名和参数值:"
+
JSONObject
.
toJSONString
(
list
));
// 获取map已有值
StringBuilder
values
=
new
StringBuilder
();
for
(
Map
.
Entry
<
String
,
Object
>
map
:
list
)
{
values
.
append
(
map
.
getValue
());
}
// 拼接key2
values
.
append
(
appKey
);
log
.
info
(
"升序拼接参数值字符串:"
+
values
.
toString
());
// md5加密
paramsMap
.
put
(
"sign"
,
MD5Utils
.
md5
(
values
.
toString
()));
// 签名
log
.
info
(
"接口入参明文对象:"
+
JSONObject
.
toJSONString
(
paramsMap
));
// 组装参数字符串
String
interfaceParams
=
new
String
();
Iterator
<
Map
.
Entry
<
String
,
Object
>>
mapIterator
=
paramsMap
.
entrySet
().
iterator
();
while
(
mapIterator
.
hasNext
())
{
Map
.
Entry
<
String
,
Object
>
next
=
mapIterator
.
next
();
interfaceParams
+=
(
next
.
getKey
()+
"="
+
next
.
getValue
()
+
"&"
);
}
if
(
interfaceParams
.
lastIndexOf
(
"&"
)
==
(
interfaceParams
.
length
()
-
1
)){
interfaceParams
=
interfaceParams
.
substring
(
0
,
(
interfaceParams
.
lastIndexOf
(
"&"
)));
}
log
.
info
(
"接口入参明文字符串:"
+
interfaceParams
);
// 3DES加密
byte
[]
eBy
=
EThreeDES
.
encryptMode
(
key2
.
getBytes
(),
interfaceParams
.
getBytes
());
String
eBase64
=
""
;
try
{
eBase64
=
EThreeDES
.
enBase64
(
eBy
);
}
catch
(
IOException
e
)
{
log
.
error
(
"3DES加密失败"
);
e
.
printStackTrace
();
return
ResponseData
.
error
(
"数据加密失败"
);
}
log
.
info
(
"3DES加密参数:"
+
eBase64
);
// URL编码
String
urlEncode
=
""
;
try
{
urlEncode
=
URLEncoder
.
encode
(
eBase64
,
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
log
.
error
(
"url编码失败"
);
e
.
printStackTrace
();
return
ResponseData
.
error
(
"url编码失败"
);
}
//发送请求
params
.
put
(
"20210114_8"
,
urlEncode
);
log
.
info
(
"最终请求参数:"
+
JSONObject
.
toJSONString
(
params
));
StringBuilder
url
=
new
StringBuilder
(
"http://121.8.177.157:8443/UstpCustWeb/ustpSstAccess?"
);
url
.
append
(
"r"
+
"="
+
params
.
get
(
"r"
)
+
"&"
);
url
.
append
(
"20210114_1"
+
"="
+
params
.
get
(
"20210114_1"
)
+
"&"
);
url
.
append
(
"20210114_8"
+
"="
+
params
.
get
(
"20210114_8"
));
log
.
info
(
"完整url:"
+
url
);
return
ResponseData
.
success
(
url
.
toString
(),
"打开成功!"
);
}
@RequestMapping
(
value
=
"registeredAccount"
,
method
=
RequestMethod
.
POST
)
@RequestMapping
(
value
=
"registeredAccount"
,
method
=
RequestMethod
.
POST
)
public
ResponseData
<
String
>
registeredAccount
(
@RequestParam
(
"gender"
)
String
gender
,
@RequestParam
(
"username"
)
String
username
,
@RequestParam
(
"phone"
)
String
phone
,
public
ResponseData
<
String
>
registeredAccount
(
@RequestParam
(
"gender"
)
String
gender
,
@RequestParam
(
"username"
)
String
username
,
@RequestParam
(
"phone"
)
String
phone
,
@RequestParam
(
"idCard"
)
String
idCard
,
@RequestParam
(
value
=
"stuCard"
)
String
stuCard
,
@RequestParam
(
"idcardZ"
)
String
idcardZ
,
@RequestParam
(
"idCard"
)
String
idCard
,
@RequestParam
(
value
=
"stuCard"
)
String
stuCard
,
@RequestParam
(
"idcardZ"
)
String
idcardZ
,
...
...
core-service/src/main/resources/application-prod.yml
View file @
ef975899
...
@@ -96,8 +96,8 @@ spring:
...
@@ -96,8 +96,8 @@ spring:
prohibition
:
600
prohibition
:
600
datasource
:
datasource
:
url
:
jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
url
:
jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username
:
yzzx
username
:
root
password
:
yzzx123!@#
password
:
AMrGBg6ZSsRrDLs6
#用来搜集数据库的所有表
#用来搜集数据库的所有表
db-name
:
guns
db-name
:
guns
filters
:
wall,mergeStat
filters
:
wall,mergeStat
...
@@ -131,6 +131,8 @@ mybatis-plus:
...
@@ -131,6 +131,8 @@ mybatis-plus:
typeAliasesPackage
:
com.winsun.auth.model.common,com.winsun.auth.model.merchant,com.winsun.auth.model.user,com.winsun.auth.core.node
typeAliasesPackage
:
com.winsun.auth.model.common,com.winsun.auth.model.merchant,com.winsun.auth.model.user,com.winsun.auth.core.node
mapper-locations
:
mapper-locations
:
-
/com/winsun/item/modular/system/dao/mapping/*.xml
-
/com/winsun/item/modular/system/dao/mapping/*.xml
-
/com/winsun/modular/dao/mapping/*.xml
-
com/winsun/mapper/mapping/*.xml
management
:
management
:
endpoints
:
endpoints
:
web
:
web
:
...
...
core-service/src/main/resources/application.yml
View file @
ef975899
...
@@ -131,6 +131,7 @@ mybatis-plus:
...
@@ -131,6 +131,7 @@ mybatis-plus:
mapper-locations
:
mapper-locations
:
-
/com/winsun/item/modular/system/dao/mapping/*.xml
-
/com/winsun/item/modular/system/dao/mapping/*.xml
-
/com/winsun/modular/dao/mapping/*.xml
-
/com/winsun/modular/dao/mapping/*.xml
-
com/winsun/mapper/mapping/*.xml
management
:
management
:
endpoints
:
endpoints
:
web
:
web
:
...
...
migration/src/main/java/com/winsun/migration/mapper/db3/YrymDatabases.java
0 → 100644
View file @
ef975899
package
com
.
winsun
.
migration
.
mapper
.
db3
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.Map
;
/**
* 一人一码数据接口
* @author chengfengluo
* @date 2021-02-02 10:06
*/
@Mapper
@Component
public
interface
YrymDatabases
{
@Select
(
"SELECT "
+
" du.*, "
+
" GROUP_CONCAT( dr.NAME ) role_name, "
+
" dus.spervisor "
+
" FROM "
+
" dzqd_user du "
+
" LEFT JOIN dzqd_user_role dur ON du.user_id = dur.user_id "
+
" LEFT JOIN dzqd_user_supervisor dus ON du.user_id = dus.id "
+
" LEFT JOIN dzqd_role dr ON dur.role_id = dr.role_id "
+
" GROUP BY "
+
" du.user_id "
)
List
<
Map
<
String
,
Object
>>
getLoginUserList
();
@Select
(
"select * from hhr_school_package where package_id is not null"
)
List
<
Map
<
String
,
Object
>>
getSchoolPackage
();
@Select
(
"select * from hhr_school_xb_package"
)
List
<
Map
<
String
,
Object
>>
getSchoolXbPackage
();
}
migration/src/main/resources/application.yml
0 → 100644
View file @
ef975899
eureka
:
instance
:
hostname
:
localhost
# 心跳时间,即服务续约间隔时间(缺省为30s)
lease-renewal-interval-in-seconds
:
10
# 发呆时间,即服务续约到期时间(缺省为90s)
lease-expiration-duration-in-seconds
:
20
client
:
registry-fetch-interval-seconds
:
5
serviceUrl
:
defaultZone
:
http://localhost:20000/eureka/
server
:
port
:
8080
# 应用名称
spring
:
devtools
:
restart
:
enabled
:
false
application
:
name
:
migration
datasource
:
db1
:
jdbc-url
:
jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username
:
root
password
:
root
driver-class-name
:
com.mysql.cj.jdbc.Driver
db2
:
#jdbc-url: jdbc:mysql://172.18.101.171:3306/xyjl?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
#username: yzzx
#password: yzzx123!@#
jdbc-url
:
jdbc:mysql://localhost:3306/xyjl?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
username
:
root
password
:
root
driver-class-name
:
com.mysql.cj.jdbc.Driver
db3
:
#jdbc-url: jdbc:mysql://172.18.101.171:3306/dzqd?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
#username: yzzx
#password: yzzx123!@#
jdbc-url
:
jdbc:mysql://localhost:3306/dzqd?useUnicode=true&characterEncoding=utf-8&serverTimezone=CTT&useSSL=false
username
:
root
password
:
root
driver-class-name
:
com.mysql.cj.jdbc.Driver
service-manager/pom.xml
View file @
ef975899
...
@@ -131,10 +131,10 @@
...
@@ -131,10 +131,10 @@
<artifactId>
easyexcel
</artifactId>
<artifactId>
easyexcel
</artifactId>
<version>
2.1.6
</version>
<version>
2.1.6
</version>
</dependency>
</dependency>
<!--
<dependency>
<dependency>
<groupId>
com.winsun.framework
</groupId>
<groupId>
com.winsun.framework
</groupId>
<artifactId>
winsun-core-service
</artifactId>
<artifactId>
winsun-core-service
</artifactId>
</dependency>
-->
</dependency>
<dependency>
<dependency>
<groupId>
dom4j
</groupId>
<groupId>
dom4j
</groupId>
...
...
service-manager/src/main/java/com/winsun/controller/AppConfigController.java
0 → 100644
View file @
ef975899
package
com
.
winsun
.
controller
;
import
com.baomidou.mybatisplus.mapper.EntityWrapper
;
import
com.baomidou.mybatisplus.mapper.Wrapper
;
import
com.baomidou.mybatisplus.plugins.Page
;
import
com.winsun.auth.core.annotion.Permission
;
import
com.winsun.auth.core.base.controller.BaseController
;
import
com.winsun.auth.core.common.model.ResponseData
;
import
com.winsun.auth.core.shiro.ShiroUser
;
import
com.winsun.bean.AppConfig
;
import
com.winsun.mapper.AppConfigMapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.ibatis.session.RowBounds
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 应用配置
* @author chengfengluo
* @date 2021-02-20 10:45
*/
@RestController
@RequestMapping
(
"/appConfig"
)
public
class
AppConfigController
extends
BaseController
{
@Autowired
private
AppConfigMapper
appConfigMapper
;
/**
* 新增应用配置
* @param appConfig
* @return
*/
@Permission
(
menuname
=
"添加应用配置"
,
value
=
"add"
,
method
=
RequestMethod
.
POST
)
public
ResponseData
<
String
>
addAppConfig
(
AppConfig
appConfig
)
{
ShiroUser
user
=
getShiroUser
();
if
(
StringUtils
.
isBlank
(
appConfig
.
getAppName
()))
{
return
ResponseData
.
error
(
"应用名称不能为空"
);
}
if
(
StringUtils
.
isBlank
(
appConfig
.
getAppSecret
()))
{
return
ResponseData
.
error
(
"应用密匙不能为空"
);
}
// 查重
Wrapper
<
AppConfig
>
wrapper
=
new
EntityWrapper
<>();
wrapper
.
eq
(
"app_name"
,
appConfig
.
getAppName
());
Integer
integer
=
appConfigMapper
.
selectCount
(
wrapper
);
if
(
integer
!=
null
&&
integer
>
0
)
{
return
ResponseData
.
error
(
"应用名称重复"
);
}
appConfig
.
setCreateBy
(
user
.
getName
());
appConfig
.
setCreateTime
(
new
Date
());
Integer
insert
=
appConfigMapper
.
insert
(
appConfig
);
if
(
insert
>
0
)
{
return
ResponseData
.
success
(
insert
+
""
,
"插入成功"
);
}
return
ResponseData
.
error
(
"插入失败"
);
}
/**
* 编辑应用配置
* @param appConfig
* @return
*/
@Permission
(
menuname
=
"更新应用配置"
,
value
=
"update"
,
method
=
RequestMethod
.
POST
)
public
ResponseData
<
String
>
updateAppConfig
(
AppConfig
appConfig
)
{
ShiroUser
user
=
getShiroUser
();
if
(
appConfig
.
getId
()
==
null
||
StringUtils
.
isBlank
(
appConfig
.
getAppName
()))
{
return
ResponseData
.
error
(
"参数错误"
);
}
// 查重
Wrapper
<
AppConfig
>
wrapper
=
new
EntityWrapper
<>();
wrapper
.
eq
(
"app_name"
,
appConfig
.
getAppName
());
wrapper
.
ne
(
"id"
,
appConfig
.
getId
());
Integer
integer
=
appConfigMapper
.
selectCount
(
wrapper
);
if
(
integer
!=
null
&&
integer
>
0
)
{
return
ResponseData
.
error
(
"应用名称重复"
);
}
appConfig
.
setUpdateBy
(
user
.
getName
());
appConfig
.
setUpdateTime
(
new
Date
());
Integer
integer1
=
appConfigMapper
.
updateById
(
appConfig
);
if
(
integer1
>
0
)
{
return
ResponseData
.
success
(
null
,
"更新成功"
);
}
return
ResponseData
.
error
(
"更新失败"
);
}
/**
* 获取配置信息
* @return
*/
@RequestMapping
(
"/getConfigInfo"
)
public
ResponseData
<
AppConfig
>
getConfigInfo
(
Integer
id
)
{
AppConfig
appConfig
=
appConfigMapper
.
selectById
(
id
);
return
ResponseData
.
success
(
appConfig
);
}
/**
* 查询应用列表
* @param appConfig
* @param pageIndex
* @param pageSize
* @return
*/
@RequestMapping
(
"/list"
)
public
ResponseData
<
Page
<
AppConfig
>>
list
(
@RequestParam
(
value
=
"appName"
,
required
=
false
)
String
appName
,
@RequestParam
(
name
=
"pageNo"
,
required
=
false
)
Integer
pageIndex
,
@RequestParam
(
name
=
"pageSize"
,
required
=
false
)
Integer
pageSize
)
{
Wrapper
<
AppConfig
>
wrapper
=
new
EntityWrapper
<>();
wrapper
.
like
(
StringUtils
.
isNotBlank
(
appName
),
"app_name"
,
appName
);
List
<
AppConfig
>
appConfigs
=
appConfigMapper
.
selectList
(
wrapper
);
Page
<
AppConfig
>
page
=
new
Page
<>();
page
.
setTotal
(
appConfigs
.
size
());
Integer
endpageSize
=
(
pageIndex
-
1
)
==
appConfigs
.
size
()/
pageSize
?
(
pageIndex
-
1
)*
pageSize
+
appConfigs
.
size
()%
pageSize
:
pageIndex
*
pageSize
;
appConfigs
=
appConfigs
.
subList
((
pageIndex
-
1
)*
pageSize
,
endpageSize
);
page
.
setRecords
(
appConfigs
);
page
.
setSize
(
appConfigs
.
size
());
return
ResponseData
.
success
(
page
,
"查询成功"
);
}
}
service-manager/src/main/java/com/winsun/controller/ImgController.java
View file @
ef975899
package
com
.
winsun
.
controller
;
package
com
.
winsun
.
controller
;
import
com.winsun.auth.core.annotion.Permission
;
import
com.winsun.constant.FilePath
;
import
com.winsun.constant.FilePath
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.MediaType
;
...
@@ -20,7 +21,7 @@ import java.io.FileInputStream;
...
@@ -20,7 +21,7 @@ import java.io.FileInputStream;
public
class
ImgController
{
public
class
ImgController
{
//menuname = "图片路径" 只支持jpeg 和 png
//menuname = "图片路径" 只支持jpeg 和 png
@
RequestMapping
(
value
=
"/images/**"
,
produces
={
MediaType
.
IMAGE_JPEG_VALUE
,
MediaType
.
IMAGE_PNG_VALUE
}
)
@
Permission
(
menuname
=
"图片查询"
,
value
=
"/images/**"
,
produces
={
MediaType
.
IMAGE_JPEG_VALUE
,
MediaType
.
IMAGE_PNG_VALUE
}
)
public
byte
[]
getbackground
(
HttpServletRequest
request
)
{
public
byte
[]
getbackground
(
HttpServletRequest
request
)
{
byte
[]
bytes
={};
byte
[]
bytes
={};
request
.
getServletPath
();
request
.
getServletPath
();
...
...
service-manager/src/main/java/com/winsun/controller/OrderController.java
View file @
ef975899
...
@@ -261,7 +261,7 @@ public class OrderController extends BaseController {
...
@@ -261,7 +261,7 @@ public class OrderController extends BaseController {
updateOrder
.
setMsg
(
msg
);
updateOrder
.
setMsg
(
msg
);
try
{
try
{
// 添加操作记录
// 添加操作记录
appMapper
.
inserOrderHis
(
order
.
getId
(),
"审核失败!"
,
new
Date
(),
"智能平台"
);
appMapper
.
inserOrderHis
(
order
.
getId
(),
msg
,
new
Date
(),
"智能平台"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
...
service-manager/src/main/resources/application-prod.yml
View file @
ef975899
...
@@ -120,6 +120,9 @@ spring:
...
@@ -120,6 +120,9 @@ spring:
exprie
:
600
exprie
:
600
prohibition
:
600
prohibition
:
600
datasource
:
datasource
:
url
:
jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username
:
root
password
:
AMrGBg6ZSsRrDLs6
dynamic
:
dynamic
:
primary
:
master
primary
:
master
p6spy
:
true
p6spy
:
true
...
@@ -128,9 +131,9 @@ spring:
...
@@ -128,9 +131,9 @@ spring:
max-active
:
30
max-active
:
30
datasource
:
datasource
:
master
:
master
:
url
:
jdbc:mysql://localhost:3306/school_center?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
url
:
${spring.datasource.url}
username
:
yzzx
username
:
${spring.datasource.username}
password
:
yzzx123!@#
password
:
${spring.datasource.password}
driver-class-name
:
com.mysql.cj.jdbc.Driver
driver-class-name
:
com.mysql.cj.jdbc.Driver
devtools
:
devtools
:
restart
:
restart
:
...
...
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