Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
158318d1
Commit
158318d1
authored
Sep 29, 2019
by
jiaorz
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
18dd453b
594aee30
Changes
47
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
1176 additions
and
149 deletions
+1176
-149
WalletCathListDTO.java
.../github/wxiaoqi/security/admin/dto/WalletCathListDTO.java
+3
-0
AppUserDTO.java
...m/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
+1
-1
WalletCathAdminVo.java
...m/github/wxiaoqi/security/admin/vo/WalletCathAdminVo.java
+3
-0
BaseUserMemberBiz.java
.../github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
+27
-6
BaseUserMemberExportBiz.java
...b/wxiaoqi/security/admin/biz/BaseUserMemberExportBiz.java
+18
-6
BaseUserMemberLevelMapper.java
...aoqi/security/admin/mapper/BaseUserMemberLevelMapper.java
+2
-0
AppPermissionService.java
...aoqi/security/admin/rpc/service/AppPermissionService.java
+22
-3
AppUserDetailMapper.xml
...e-admin/src/main/resources/mapper/AppUserDetailMapper.xml
+1
-0
MyWalletCathMapper.xml
...ce-admin/src/main/resources/mapper/MyWalletCathMapper.xml
+2
-1
OrderDateUtils.java
...in/java/com/xxfc/platform/order/Utils/OrderDateUtils.java
+78
-0
OrderInquiryType.java
...fc/platform/order/contant/enumerate/OrderInquiryType.java
+30
-0
MembersOrder.java
...ain/java/com/xxfc/platform/order/entity/MembersOrder.java
+23
-0
OrderDetail.java
...ava/com/xxfc/platform/order/entity/inter/OrderDetail.java
+5
-0
Member.java
...pi/src/main/java/com/xxfc/platform/order/pojo/Member.java
+33
-0
MembersOrderDto.java
...in/java/com/xxfc/platform/order/pojo/MembersOrderDto.java
+32
-0
OrderQuery.java
...rc/main/java/com/xxfc/platform/order/pojo/OrderQuery.java
+29
-0
MemberBO.java
...ain/java/com/xxfc/platform/order/pojo/order/MemberBO.java
+1
-0
AddMemberDTO.java
.../com/xxfc/platform/order/pojo/order/add/AddMemberDTO.java
+1
-4
AddOrderCommonDTO.java
...xxfc/platform/order/pojo/order/add/AddOrderCommonDTO.java
+1
-1
AddRentVehicleDTO.java
...xxfc/platform/order/pojo/order/add/AddRentVehicleDTO.java
+2
-4
AddTourDTO.java
...va/com/xxfc/platform/order/pojo/order/add/AddTourDTO.java
+1
-4
BgAddRentDTO.java
.../com/xxfc/platform/order/pojo/order/add/BgAddRentDTO.java
+12
-0
DailyMembersOrderStatisticsBiz.java
...fc/platform/order/biz/DailyMembersOrderStatisticsBiz.java
+11
-4
OrderStatisticsBiz.java
.../java/com/xxfc/platform/order/biz/OrderStatisticsBiz.java
+126
-6
OrderVehicleCrosstownBiz.java
...com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
+2
-2
DailyMembersOrderStatisticsMapper.java
...tform/order/mapper/DailyMembersOrderStatisticsMapper.java
+5
-0
BackStageOrderController.java
...om/xxfc/platform/order/rest/BackStageOrderController.java
+1
-3
OrderMemberController.java
...a/com/xxfc/platform/order/rest/OrderMemberController.java
+1
-5
OrderRefundController.java
...a/com/xxfc/platform/order/rest/OrderRefundController.java
+6
-3
OrderRentVehicleController.java
.../xxfc/platform/order/rest/OrderRentVehicleController.java
+49
-32
OrderTourController.java
...ava/com/xxfc/platform/order/rest/OrderTourController.java
+1
-1
OrderStatisticsController.java
...form/order/rest/background/OrderStatisticsController.java
+31
-11
AbstractOrderHandle.java
.../com/xxfc/platform/order/service/AbstractOrderHandle.java
+4
-3
OrderRentVehicleService.java
.../xxfc/platform/order/service/OrderRentVehicleService.java
+6
-0
DailyMembersOrderStatisticsMapper.xml
...in/resources/mapper/DailyMembersOrderStatisticsMapper.xml
+47
-0
pom.xml
xx-universal/xx-universal-api/pom.xml
+6
-0
BaseAuthentication.java
...a/com/xxfc/platform/universal/api/BaseAuthentication.java
+0
-14
FQAuthentication.java
...om/xxfc/platform/universal/api/impl/FQAuthentication.java
+0
-13
Authentication.java
.../com/xxfc/platform/universal/api/pojo/Authentication.java
+0
-4
SmsTemplateDTO.java
.../java/com/xxfc/platform/universal/dto/SmsTemplateDTO.java
+2
-0
HttpUtils.java
...ain/java/com/xxfc/platform/universal/utils/HttpUtils.java
+312
-0
AliYunSmsBiz.java
...in/java/com/xxfc/platform/universal/biz/AliYunSmsBiz.java
+6
-0
UserMessage.java
...ain/java/com/xxfc/platform/universal/biz/UserMessage.java
+13
-0
CertificationService.java
...xxfc/platform/universal/service/CertificationService.java
+38
-18
UserAuthentication.java
...l/service/authenticationInterface/UserAuthentication.java
+18
-0
BJCYAuthentication.java
...vice/authenticationInterface/impl/BJCYAuthentication.java
+73
-0
XCFQAuthentication.java
...vice/authenticationInterface/impl/XCFQAuthentication.java
+91
-0
No files found.
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/WalletCathListDTO.java
View file @
158318d1
...
...
@@ -43,4 +43,7 @@ public class WalletCathListDTO {
@ApiModelProperty
(
"单号"
)
private
String
cono
;
@ApiModelProperty
(
value
=
"用户账号"
)
private
String
accountNumber
;
}
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/dto/AppUserDTO.java
View file @
158318d1
...
...
@@ -79,7 +79,7 @@ public class AppUserDTO {
private
Integer
buyCount
;
private
Integer
lockDays
;
private
Integer
discount
;
private
Integer
memberLevel
;
private
Integer
memberLevel
=
0
;
private
String
memberName
;
//图标
private
String
icon
;
...
...
ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/vo/WalletCathAdminVo.java
View file @
158318d1
...
...
@@ -40,4 +40,7 @@ public class WalletCathAdminVo {
@ApiModelProperty
(
"单号"
)
private
String
cono
;
@ApiModelProperty
(
value
=
"用户账号"
)
private
String
accountNumber
;
}
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberBiz.java
View file @
158318d1
...
...
@@ -4,6 +4,8 @@ import com.ace.cache.annotation.Cache;
import
com.ace.cache.annotation.CacheClear
;
import
com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO
;
import
com.github.wxiaoqi.security.admin.dto.UserMemberDTO
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper
;
import
com.github.wxiaoqi.security.admin.vo.AppUserVo
;
import
com.github.wxiaoqi.security.admin.vo.UserMemberVo
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
...
...
@@ -43,6 +45,9 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
@Autowired
AppUserDetailBiz
detailBiz
;
@Autowired
private
BaseUserMemberLevelMapper
BaseUserMemberLevelMapper
;
// @Autowired
// private TaskExecutor taskExecutor;
//
...
...
@@ -213,7 +218,6 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
}
/**
* 设置用户会员
*
...
...
@@ -230,7 +234,25 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
if
(
totalNumber
<
freeDays
)
{
freeDays
=
totalNumber
;
}
Integer
buyCount
=
userMemberDTO
.
getBuyCount
()
==
null
?
1
:
userMemberDTO
.
getBuyCount
()
;
if
(
userMemberDTO
.
getMemberLevel
()
!=
null
)
{
Example
exa
=
new
Example
(
BaseUserMemberLevel
.
class
);
Example
.
Criteria
criteria
=
exa
.
createCriteria
();
criteria
.
andEqualTo
(
"isdel"
,
0
);
criteria
.
andEqualTo
(
"level"
,
userMemberDTO
.
getMemberLevel
());
List
<
BaseUserMemberLevel
>
levels
=
BaseUserMemberLevelMapper
.
selectByExample
(
exa
);
if
(
CollectionUtils
.
isEmpty
(
levels
))
{
log
.
error
(
"错误!设置的该等级会员不存在."
);
throw
new
BaseException
(
"错误!设置的该等级会员不存在。"
);
}
else
if
(
levels
.
size
()>
1
){
log
.
error
(
"错误!该等级的会员存在多个。"
);
throw
new
BaseException
(
"错误!该等级的会员存在多个。"
);
}
else
{
baseUserMember
.
setDiscount
(
levels
.
get
(
0
).
getDiscount
());
}
}
Integer
buyCount
=
userMemberDTO
.
getBuyCount
()
==
null
?
1
:
userMemberDTO
.
getBuyCount
();
UserMemberVo
userMemberVo
=
getMemberInfoByUserId
(
userMemberDTO
.
getUserId
());
if
(
userMemberVo
==
null
)
{
baseUserMember
.
setRentFreeDays
(
freeDays
);
...
...
@@ -241,8 +263,8 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
Integer
number
=
userMemberVo
.
getTotalNumber
()
==
null
?
0
:
userMemberVo
.
getTotalNumber
();
Integer
days
=
userMemberVo
.
getRentFreeDays
()
==
null
?
0
:
userMemberVo
.
getRentFreeDays
();
baseUserMember
.
setBuyCount
(
userMemberVo
.
getBuyCount
()
+
buyCount
);
number
=(
totalNumber
-
number
)+
number
;
days
=(
freeDays
-
days
)+
days
;
number
=
(
totalNumber
-
number
)
+
number
;
days
=
(
freeDays
-
days
)
+
days
;
baseUserMember
.
setTotalNumber
(
number
);
baseUserMember
.
setRentFreeDays
(
days
);
getMyBiz
().
updateSelectiveById
(
baseUserMember
);
...
...
@@ -255,14 +277,13 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
userVo1
.
setIsMember
(
1
);
detailBiz
.
updUuserInfoById
(
userVo1
);
}
}
public
void
deleteByUserIds
(
Collection
<
Integer
>
userIds
)
{
Example
example
=
new
Example
(
BaseUserMember
.
class
);
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andIn
(
"userId"
,
userIds
);
criteria
.
andIn
(
"userId"
,
userIds
);
mapper
.
deleteByExample
(
example
);
}
}
\ No newline at end of file
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/BaseUserMemberExportBiz.java
View file @
158318d1
...
...
@@ -84,6 +84,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.
memberLevel
(
userMemberSaveDTO
.
getMemberLevel
())
.
totalNumber
(
userMemberSaveDTO
.
getTotalNumber
())
.
rentFreeDays
(
userMemberSaveDTO
.
getRentFreeDays
())
.
memberName
(
userMemberSaveDTO
.
getMemberName
())
.
discount
(
level
==
null
?
0
:
level
.
getDiscount
()
==
null
?
0
:
level
.
getDiscount
())
.
status
(
phoneAndUserIdMap
==
null
?
0
:
(
phoneAndUserIdMap
.
get
(
userMemberSaveDTO
.
getPhone
())
==
null
?
0
:
1
))
.
crtId
(
userId
)
...
...
@@ -113,12 +114,13 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
AtomicInteger
counter
=
new
AtomicInteger
(
0
);
int
threadNums
=
userMemberData
.
size
()/
BORDER_NUM
==
0
?
1
:
userMemberData
.
size
()/
BORDER_NUM
;
CountDownLatch
latch
=
new
CountDownLatch
(
threadNums
);
Map
<
Integer
,
UserMemberDTO
>
numAndUserMemberMap
=
new
HashMap
<>(
userMemberData
.
size
());
for
(
int
i
=
0
;
i
<
threadNums
;
i
++){
int
startIndex
=
i
*
BORDER_NUM
;
int
endIndex
=
i
==(
threadNums
-
1
)?
userMemberData
.
size
():(
i
+
1
)*
BORDER_NUM
;
List
<
String
[]>
subResultDate
=
userMemberData
.
subList
(
startIndex
,
endIndex
);
threadPoolTaskExecutor
.
execute
(()->{
wrapperData
(
subResultDate
,
userId
,
userName
,
baseUserMemberExports
,
levelAndbaseUserMemberMap
,
phoneAndUserIdMap
,
leaveNameAndLeaveEntry
,
memberLevel
,
discount
,
counter
);
wrapperData
(
subResultDate
,
userId
,
userName
,
baseUserMemberExports
,
levelAndbaseUserMemberMap
,
phoneAndUserIdMap
,
leaveNameAndLeaveEntry
,
memberLevel
,
discount
,
counter
,
numAndUserMemberMap
);
latch
.
countDown
();
});
}
...
...
@@ -128,12 +130,22 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
throw
new
BaseException
(
"导入数据失败"
);
}
InsertBatch
(
baseUserMemberExports
);
Set
<
Map
.
Entry
<
Integer
,
UserMemberDTO
>>
entries
=
numAndUserMemberMap
.
entrySet
();
for
(
Map
.
Entry
<
Integer
,
UserMemberDTO
>
memberDTOEntry
:
entries
)
{
try
{
baseUserMemberBiz
.
updUserMemberByUserId
(
memberDTOEntry
.
getValue
());
}
catch
(
Exception
ex
){
log
.
error
(
"当前行数:【{}】"
,
memberDTOEntry
.
getKey
());
log
.
error
(
"会员更新错误:【{}】"
,
ex
.
getMessage
());
throw
new
BaseException
(
""
);
}
}
return
baseUserMemberExports
.
size
();
}
private
void
wrapperData
(
List
<
String
[]>
userMemberData
,
Integer
userId
,
String
userName
,
List
<
BaseUserMemberExport
>
baseUserMemberExports
,
Map
<
Integer
,
BaseUserMemberLevel
>
levelAndbaseUserMemberMap
,
Map
<
String
,
Integer
>
phoneAndUserIdMap
,
Set
<
Map
.
Entry
<
String
,
Integer
>>
leaveNameAndLeaveEntry
,
Integer
memberLevel
,
Integer
discount
,
AtomicInteger
counter
)
{
private
void
wrapperData
(
List
<
String
[]>
userMemberData
,
Integer
userId
,
String
userName
,
List
<
BaseUserMemberExport
>
baseUserMemberExports
,
Map
<
Integer
,
BaseUserMemberLevel
>
levelAndbaseUserMemberMap
,
Map
<
String
,
Integer
>
phoneAndUserIdMap
,
Set
<
Map
.
Entry
<
String
,
Integer
>>
leaveNameAndLeaveEntry
,
Integer
memberLevel
,
Integer
discount
,
AtomicInteger
counter
,
Map
<
Integer
,
UserMemberDTO
>
numAndUserMemberMap
)
{
for
(
String
[]
data
:
userMemberData
)
{
counter
.
incrementAndGet
();
String
phone
=
data
[
0
];
String
memberLevelName
=
data
[
1
];
String
memberName
=
data
[
2
];
...
...
@@ -158,15 +170,15 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
userMemberDTO
.
setIsBind
(
1
);
userMemberDTO
.
setMemberName
(
memberName
);
userMemberDTO
.
setBuyCount
(
0
);
try
{
numAndUserMemberMap
.
put
(
counter
.
incrementAndGet
(),
userMemberDTO
);
/* try {
baseUserMemberBiz.updUserMemberByUserId(userMemberDTO);
} catch (Exception e) {
log.error("当前行数:【{}】",counter.get());
log.error("会员更新错误:【{}】", e.getMessage());
throw new BaseException(e);
}
}
*/
}
BaseUserMemberExport
memberExport
=
BaseUserMemberExport
.
builder
()
.
username
(
phone
.
trim
())
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/BaseUserMemberLevelMapper.java
View file @
158318d1
...
...
@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.springframework.stereotype.Repository
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
...
...
@@ -13,6 +14,7 @@ import java.util.List;
* @email nishijjo@qq.com
* @date 2019-06-11 11:06:45
*/
@Repository
public
interface
BaseUserMemberLevelMapper
extends
Mapper
<
BaseUserMemberLevel
>
{
List
<
BaseUserMemberLevel
>
selectUserMembersLevelByLevels
(
@Param
(
"levels"
)
List
<
Integer
>
levels
);
...
...
ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/AppPermissionService.java
View file @
158318d1
...
...
@@ -30,6 +30,7 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.im.feign.ImFeign
;
import
com.xxfc.platform.universal.dto.RegionDTO
;
import
com.xxfc.platform.universal.dto.SmsTemplateDTO
;
import
com.xxfc.platform.universal.feign.MQSenderFeign
;
import
com.xxfc.platform.universal.feign.RegionFeign
;
import
com.xxfc.platform.universal.feign.ThirdFeign
;
...
...
@@ -37,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
;
import
org.springframework.stereotype.Service
;
...
...
@@ -105,6 +107,9 @@ public class AppPermissionService {
@Autowired
private
BaseUserMemberBiz
baseUserMemberBiz
;
@Value
(
"${admin.smallName}"
)
private
String
smallName
;
public
AppUserInfo
validate
(
String
username
,
String
password
)
{
AppUserInfo
info
=
new
AppUserInfo
();
...
...
@@ -447,8 +452,14 @@ public class AppPermissionService {
}
public
static
String
getIp
()
{
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
return
requestAttributes
.
getRequest
().
getHeader
(
"userHost"
);
try
{
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
return
requestAttributes
.
getRequest
().
getHeader
(
"userHost"
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
return
null
;
}
}
/**
...
...
@@ -949,7 +960,15 @@ public class AppPermissionService {
//上线绑定
relationBiz
.
bindByUserId
(
userid
,
small_id
);
//发送短信通知用户
thirdFeign
.
sendCode
(
username
,
password
,
SystemConfig
.
TEMPLATECODE
);
List
<
String
>
smsParams
=
new
ArrayList
<
String
>();
smsParams
.
add
(
smallName
);
smsParams
.
add
(
username
);
smsParams
.
add
(
password
);
thirdFeign
.
sendTemplate
(
new
SmsTemplateDTO
(){{
setPhoneNumbers
(
username
);
setType
(
SmsTemplateDTO
.
PWD
);
setParams
(
smsParams
.
toArray
(
new
String
[
smsParams
.
size
()]));
}});
//参加新人活动
jionActivity
(
userid
);
// 登录结果要做做统一处理
...
...
ace-modules/ace-admin/src/main/resources/mapper/AppUserDetailMapper.xml
View file @
158318d1
...
...
@@ -113,6 +113,7 @@
base_user_member_level ml
on
ml.level = b.member_level
where ml.isdel = 0
) m
on
l.id = m.user_id
...
...
ace-modules/ace-admin/src/main/resources/mapper/MyWalletCathMapper.xml
View file @
158318d1
...
...
@@ -14,7 +14,8 @@
wc.stauts,
wc.crt_time AS `crtTime`,
wc.finish_time AS `finishTime`,
wc.cono
wc.cono,
wc.account_number AS `accountNumber`
FROM
(SELECT * FROM `my_wallet_cath`
<if
test=
"state != null"
>
WHERE `stauts`=#{state}
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/Utils/OrderDateUtils.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
Utils
;
import
java.util.Calendar
;
public
class
OrderDateUtils
{
public
static
String
getFirstDayOfMonth
(
int
year
,
int
month
)
{
String
monthStr
=
month
<
10
?
"0"
+
month
:
String
.
valueOf
(
month
);
return
year
+
"-"
+
monthStr
+
"-"
+
"01"
;
}
/**
* get the last date of given month and year
* @param year
* @param month
* @return
*
*/
public
static
String
getLastDayOfMonth
(
int
year
,
int
month
)
{
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
YEAR
,
year
);
calendar
.
set
(
Calendar
.
MONTH
,
month
-
1
);
calendar
.
set
(
Calendar
.
DATE
,
1
);
calendar
.
add
(
Calendar
.
MONTH
,
1
);
calendar
.
add
(
Calendar
.
DAY_OF_YEAR
,
-
1
);
return
calendar
.
get
(
Calendar
.
YEAR
)
+
"-"
+
(
calendar
.
get
(
Calendar
.
MONTH
)
+
1
)
+
"-"
+
calendar
.
get
(
Calendar
.
DAY_OF_MONTH
);
}
/**
* get Calendar of given year
* @param year
* @return
*
*/
private
static
Calendar
getCalendarFormYear
(
int
year
)
{
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
set
(
Calendar
.
DAY_OF_WEEK
,
Calendar
.
MONDAY
);
cal
.
set
(
Calendar
.
YEAR
,
year
);
return
cal
;
}
/**
* get start date of given week no of a year
* @param year
* @param weekNo
* @return
*
*/
public
static
String
getStartDayOfWeekNo
(
int
year
,
int
weekNo
)
{
Calendar
cal
=
getCalendarFormYear
(
year
);
cal
.
set
(
Calendar
.
WEEK_OF_YEAR
,
weekNo
);
return
cal
.
get
(
Calendar
.
YEAR
)
+
"-"
+
(
cal
.
get
(
Calendar
.
MONTH
)
+
1
)
+
"-"
+
cal
.
get
(
Calendar
.
DAY_OF_MONTH
);
}
/**
* get the end day of given week no of a year.
* @param year
* @param weekNo
* @return
*
*/
public
static
String
getEndDayOfWeekNo
(
int
year
,
int
weekNo
)
{
Calendar
cal
=
getCalendarFormYear
(
year
);
cal
.
set
(
Calendar
.
WEEK_OF_YEAR
,
weekNo
);
cal
.
add
(
Calendar
.
DAY_OF_WEEK
,
6
);
return
cal
.
get
(
Calendar
.
YEAR
)
+
"-"
+
(
cal
.
get
(
Calendar
.
MONTH
)
+
1
)
+
"-"
+
cal
.
get
(
Calendar
.
DAY_OF_MONTH
);
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/contant/enumerate/OrderInquiryType.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
contant
.
enumerate
;
import
lombok.NoArgsConstructor
;
@NoArgsConstructor
public
enum
OrderInquiryType
{
DAY
(
1
,
"按天分类"
),
WEEK
(
2
,
"按周分类"
),
MONTH
(
3
,
"按月分类"
);
/**
* 编码
*/
private
Integer
code
;
/**
* 类型描述
*/
private
String
desc
;
OrderInquiryType
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
Integer
getCode
()
{
return
code
;
}
public
String
getDesc
()
{
return
desc
;
}
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/MembersOrder.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
entity
;
import
com.xxfc.platform.order.pojo.Member
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @author Administrator
*/
@Data
public
class
MembersOrder
{
/**
* 时间段按日(yyyy-MM-dd)/周(yyyy-ww) /月(yyyy-MM)
*/
private
String
period
;
List
<
Member
>
members
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/entity/inter/OrderDetail.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
entity
.
inter
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderItem
;
...
...
@@ -28,4 +29,8 @@ public interface OrderDetail extends OrderItemInter {
void
setTickerNo
(
List
<
String
>
tickerNo
);
public
AppUserDTO
getAppUserDTO
();
public
void
setAppUserDTO
(
AppUserDTO
appUserDTO
);
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/Member.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 每日、每周或每月不同会员的总数据
* @author Administrator
*/
@Data
public
class
Member
{
/**
* 金额
*/
private
BigDecimal
amount
;
/**
* 会员等级
*/
private
Integer
level
;
/**
* 购买次数
*/
private
Integer
number
;
/**
* 会员名
*/
private
String
memberName
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/MembersOrderDto.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* 每日、每周、每月会员购买数据
* @author Administrator
*/
@Data
public
class
MembersOrderDto
{
/**
* 时间段
*/
private
String
timeSlot
;
/**
* 时间段总数据
*
*/
private
BigDecimal
totalPayment
;
/**
* 时间段内不同会员数据
*/
private
List
<
Member
>
members
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/OrderQuery.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
import
lombok.Data
;
/**
* 会员订单统计条件
* @author Administrator
*/
@Data
public
class
OrderQuery
{
private
Integer
page
=
1
;
private
Integer
limit
=
10
;
/**
* 查询开始时间
*/
private
Long
startTime
;
/**
* 查询结束时间
*/
private
Long
endTime
;
/**
* 1.按每日统计,2.按每周统计,3.按每月统计
*/
private
Integer
type
=
1
;
}
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/MemberBO.java
View file @
158318d1
...
...
@@ -19,6 +19,7 @@ import java.util.List;
public
class
MemberBO
extends
OrderMemberDetail
implements
OrderDetail
{
private
BaseOrder
order
;
private
BaseUserMemberLevel
baseUserMemberLevel
;
AppUserDTO
appUserDTO
;
/**
* 下单来源,1--app;2--小程序
*/
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/AddMemberDTO.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/
order/add/
AddMemberDTO.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
java.time.format.DateTimeFormatter
;
@Data
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/AddOrderCommonDTO.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/
order/add/
AddOrderCommonDTO.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/AddRentVehicleDTO.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/
order/add/
AddRentVehicleDTO.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
;
import
com.xxfc.platform.activity.entity.ActivityPopularizeItem
;
import
com.xxfc.platform.vehicle.constant.AccompanyingItemType
;
import
com.xxfc.platform.vehicle.entity.AccompanyingItem
;
import
com.xxfc.platform.order.pojo.OrderAccompanyDTO
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/AddTourDTO.java
→
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/
order/add/
AddTourDTO.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
;
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.time.format.DateTimeFormatter
;
@Data
...
...
xx-order/xx-order-api/src/main/java/com/xxfc/platform/order/pojo/order/add/BgAddRentDTO.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
;
import
lombok.Data
;
@Data
public
class
BgAddRentDTO
extends
AddRentVehicleDTO
{
/**
* 用户订单
*/
Integer
appUserId
;
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/DailyMembersOrderStatisticsBiz.java
View file @
158318d1
...
...
@@ -2,17 +2,17 @@ package com.xxfc.platform.order.biz;
import
cn.hutool.json.JSONUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.DailyMembersOrderStatistics
;
import
com.xxfc.platform.order.entity.MembersOrder
;
import
com.xxfc.platform.order.entity.OrderAccount
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
import
com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDTO
;
import
com.xxfc.platform.order.pojo.account.OrderAccountDetail
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -20,13 +20,11 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
tk.mybatis.mapper.entity.Example
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
/**
* 每日购买会员订单统计
...
...
@@ -120,4 +118,13 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
public
OrderStatistics
findAll
(
Integer
companyId
)
{
return
mapper
.
monthOrderTotal
(
companyId
);
}
/**
* 根据时间按年月日分组
* @param query
* @return
*/
public
List
<
MembersOrder
>
getMemberOrderStatistics
(
OrderQuery
query
)
{
return
mapper
.
getMemberOrderStatistics
(
query
);
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderStatisticsBiz.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
biz
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.db.PageResult
;
import
com.github.pagehelper.Page
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Ordering
;
import
com.xxfc.platform.order.Utils.OrderDateUtils
;
import
com.xxfc.platform.order.contant.enumerate.OrderInquiryType
;
import
com.xxfc.platform.order.entity.MembersOrder
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
import
com.xxfc.platform.order.mapper.OrderStatisticsMapper
;
import
com.xxfc.platform.order.pojo.HomePageOrderData
;
import
com.xxfc.platform.order.pojo.Member
;
import
com.xxfc.platform.order.pojo.MembersOrderDto
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
org.apache.commons.lang3.StringUtils
;
import
org.assertj.core.util.Lists
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Objects
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -63,15 +81,117 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
}
result
.
setTotalOrders
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOrders
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setTotalOutstandingDeposit
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOutstandingDeposit
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
set
TotalOrders
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOrders
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
set
AdditionalIndemnity
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getAdditionalIndemnity
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
result
.
setTotalOutstandingDeposit
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getTotalOutstandingDeposit
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
return
result
;
}
result
.
setAdditionalIndemnity
(
orderStatistics
.
stream
().
map
(
HomePageOrderData:
:
getAdditionalIndemnity
).
filter
(
o
->
Objects
.
nonNull
(
o
)).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
));
public
PageResult
<
MembersOrderDto
>
getMemberOrderStatistics
(
List
<
BaseUserMemberLevel
>
memberLevels
,
OrderQuery
query
)
{
List
<
MembersOrder
>
membersOrderList
=
membersBiz
.
getMemberOrderStatistics
(
query
);
return
result
;
//按每天分类
if
(
CollectionUtil
.
isEmpty
(
membersOrderList
))
{
return
null
;
}
//按每天分类
if
(
CollectionUtil
.
isEmpty
(
memberLevels
))
{
throw
new
BaseException
(
"获取不到会员信息"
);
}
//获取会员等级对应的名称
HashMap
<
Integer
,
String
>
map
=
Maps
.
newHashMap
();
for
(
BaseUserMemberLevel
memberLevel
:
memberLevels
)
{
map
.
put
(
memberLevel
.
getLevel
(),
memberLevel
.
getName
());
}
//按查询条件获取统计信息
ArrayList
<
MembersOrderDto
>
arrayList
=
Lists
.
newArrayList
();
if
(
OrderInquiryType
.
DAY
.
getCode
().
equals
(
query
.
getType
()))
{
for
(
MembersOrder
mb
:
membersOrderList
)
{
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
//设置时间段
mbdto
.
setTimeSlot
(
mb
.
getPeriod
());
TotalPaymentAndMemberName
(
map
,
mb
,
mbdto
);
arrayList
.
add
(
mbdto
);
}
}
else
{
if
(
membersOrderList
.
size
()
==
1
)
{
MembersOrder
mb
=
membersOrderList
.
get
(
0
);
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
//设置时间段
mbdto
.
setTimeSlot
(
query
.
getStartTime
()
+
"-"
+
query
.
getEndTime
());
TotalPaymentAndMemberName
(
map
,
mb
,
mbdto
);
arrayList
.
add
(
mbdto
);
}
else
{
for
(
int
i
=
0
;
i
<
membersOrderList
.
size
();
i
++)
{
MembersOrder
mb
=
membersOrderList
.
get
(
i
);
String
period
=
mb
.
getPeriod
();
if
(
StringUtils
.
isBlank
(
period
))
{
continue
;
}
MembersOrderDto
mbdto
=
new
MembersOrderDto
();
String
[]
periods
=
mb
.
getPeriod
().
split
(
"-"
);
String
startDay
=
null
;
String
endDay
=
null
;
if
(
OrderInquiryType
.
WEEK
.
getCode
().
equals
(
query
.
getType
()))
{
startDay
=
OrderDateUtils
.
getEndDayOfWeekNo
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
endDay
=
OrderDateUtils
.
getStartDayOfWeekNo
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
}
if
(
OrderInquiryType
.
MONTH
.
getCode
().
equals
(
query
.
getType
()))
{
startDay
=
OrderDateUtils
.
getFirstDayOfMonth
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
endDay
=
OrderDateUtils
.
getLastDayOfMonth
(
Integer
.
parseInt
(
periods
[
0
]),
Integer
.
parseInt
(
periods
[
1
]));
}
if
(
i
==
0
)
{
startDay
=
timeStampConversionToString
(
query
.
getStartTime
());
}
if
(
i
==
(
membersOrderList
.
size
()
-
1
))
{
endDay
=
timeStampConversionToString
(
query
.
getEndTime
());
}
if
(
StringUtils
.
isNotBlank
(
startDay
)
&&
StringUtils
.
isNotBlank
(
endDay
))
{
mbdto
.
setTimeSlot
(
startDay
+
"-"
+
endDay
);
}
else
{
mbdto
.
setTimeSlot
(
""
);
}
arrayList
.
add
(
mbdto
);
}
}
}
//进行分页处理
return
pagingProcessing
(
query
,
arrayList
);
}
private
PageResult
pagingProcessing
(
OrderQuery
query
,
ArrayList
<
MembersOrderDto
>
arrayList
)
{
PageResult
pageResult
=
(
PageResult
)
arrayList
;
pageResult
.
setPage
(
query
.
getPage
());
pageResult
.
setPageSize
(
query
.
getLimit
());
return
pageResult
;
}
private
String
timeStampConversionToString
(
Long
startTime
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
Date
date
=
new
Date
(
startTime
);
return
simpleDateFormat
.
format
(
date
);
}
private
void
TotalPaymentAndMemberName
(
HashMap
<
Integer
,
String
>
map
,
MembersOrder
mb
,
MembersOrderDto
mbdto
)
{
BigDecimal
totalPayment
=
mbdto
.
getTotalPayment
();
List
<
Member
>
members
=
mb
.
getMembers
();
//设置时间段购买会员总金额和不同的会员名称
if
(
CollectionUtil
.
isNotEmpty
(
members
))
{
mbdto
.
setMembers
(
members
);
for
(
Member
member
:
members
)
{
member
.
setMemberName
(
map
.
get
(
member
.
getLevel
()));
totalPayment
=
totalPayment
.
add
(
member
.
getAmount
());
}
}
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/biz/OrderVehicleCrosstownBiz.java
View file @
158318d1
...
...
@@ -357,7 +357,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
orderDepositRefundRecordBiz
.
saveFixLossRecord
(
depositRefundRecord
);
//修改訂單狀態為定損
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_FIXED_LOSS
.
getCode
());
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
);
baseOrder
=
baseOrder
Biz
.
updateSelectiveByIdReT
(
baseOrder
);
orderRentVehicleDetail
.
setFixedLossStatus
(
1
);
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orderRentVehicleDetail
);
}
else
if
(
orderVehicleCrosstown
.
getType
()
==
CrosstownTypeEnum
.
FIXED_LOSS_NOW
.
getCode
())
{
//直接定损还车
...
...
@@ -370,7 +370,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
orderDepositRefundRecordBiz
.
saveFixLossRecord
(
depositRefundRecord
);
//修改訂單狀態為已完成
baseOrder
.
setStatus
(
OrderStatusEnum
.
ORDER_FINISH
.
getCode
());
baseOrderBiz
.
updateSelectiveByIdReT
(
baseOrder
);
baseOrder
=
baseOrder
Biz
.
updateSelectiveByIdReT
(
baseOrder
);
orderRentVehicleDetail
.
setFixedLossStatus
(
1
);
orderRentVehicleBiz
.
updateSelectiveByIdRe
(
orderRentVehicleDetail
);
baseOrderBiz
.
sendOrderMq
(
orderRentVehicleDetail
,
null
,
null
,
baseOrder
,
OrderMQDTO
.
ORDER_FINISH
);
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/mapper/DailyMembersOrderStatisticsMapper.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
mapper
;
import
com.xxfc.platform.order.entity.DailyMembersOrderStatistics
;
import
com.xxfc.platform.order.entity.MembersOrder
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
...
...
@@ -18,4 +20,7 @@ public interface DailyMembersOrderStatisticsMapper extends Mapper<DailyMembersOr
OrderStatistics
monthOrderTotal
(
@Param
(
"companyId"
)
Integer
companyId
);
List
<
MembersOrder
>
getMemberOrderStatistics
(
OrderQuery
query
);
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/BackStageOrderController.java
View file @
158318d1
...
...
@@ -37,7 +37,6 @@ import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import
com.xxfc.platform.vehicle.feign.VehicleFeign
;
import
com.xxfc.platform.vehicle.pojo.BookVehicleVO
;
import
com.xxfc.platform.vehicle.pojo.CompanyDetail
;
import
com.xxfc.platform.vehicle.pojo.QueryMultiDTO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.Data
;
...
...
@@ -49,14 +48,13 @@ import org.springframework.stereotype.Controller;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.lang.reflect.Array
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
AddRentVehicleDTO
.
DEFAULT_DATE_TIME_FORMATTER
;
import
static
com
.
xxfc
.
platform
.
order
.
pojo
.
order
.
add
.
AddRentVehicleDTO
.
DEFAULT_DATE_TIME_FORMATTER
;
@Controller
@RequestMapping
(
"baseOrder"
)
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderMemberController.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
rest
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
...
...
@@ -9,15 +8,12 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import
com.xxfc.platform.order.biz.OrderMemberDetailBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderMemberDetail
;
import
com.xxfc.platform.order.pojo.AddMemberDTO
;
import
com.xxfc.platform.order.pojo.AddTourDTO
;
import
com.xxfc.platform.order.pojo.order.add.AddMemberDTO
;
import
com.xxfc.platform.order.pojo.order.MemberBO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.service.OrderMemberService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRefundController.java
View file @
158318d1
...
...
@@ -16,6 +16,7 @@ import com.xxfc.platform.order.biz.OrderRefundBiz;
import
com.xxfc.platform.order.biz.inner.OrderCalculateBiz
;
import
com.xxfc.platform.order.biz.inner.OrderCancelBiz
;
import
com.xxfc.platform.order.contant.enumerate.ItemTypeEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderStatusEnum
;
import
com.xxfc.platform.order.contant.enumerate.OrderTypeEnum
;
import
com.xxfc.platform.order.entity.OrderItem
;
import
com.xxfc.platform.order.entity.OrderRefund
;
...
...
@@ -155,10 +156,12 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
OrderRefundPriceVO
orpv
=
new
OrderRefundPriceVO
();
orpv
.
setRealAmount
(
orderPageVO
.
getRealAmount
());
orpv
.
setRefundAmount
(
totalRefundAmount
);
if
(
totalDeductAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
orpv
.
setRefundDesc
(
StrUtil
.
format
(
"本次取消操作需要扣除{}元违约金,实际退款金额为{}元,您确定要取消订单吗?"
,
totalDeductAmount
,
totalRefundAmount
));
if
(
orderPageVO
.
getStatus
().
equals
(
OrderStatusEnum
.
ORDER_UNPAY
.
getCode
())
||
orderPageVO
.
getStatus
().
equals
(
OrderStatusEnum
.
ORDER_CRT
.
getCode
())
||
totalDeductAmount
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
orpv
.
setRefundDesc
(
"是否确定取消订单"
);
}
else
{
orpv
.
setRefundDesc
(
"取消操作可能会产生额外费用,是否确定取消订单"
);
orpv
.
setRefundDesc
(
StrUtil
.
format
(
"本次取消操作需要扣除{}元违约金,实际退款金额为{}元,您确定要取消订单吗?"
,
totalDeductAmount
,
totalRefundAmount
)
);
}
return
ObjectRestResponse
.
succ
(
orpv
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderRentVehicleController.java
View file @
158318d1
...
...
@@ -13,8 +13,9 @@ import com.xxfc.platform.order.biz.BaseOrderBiz;
import
com.xxfc.platform.order.biz.OrderRentVehicleBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderRentVehicleDetail
;
import
com.xxfc.platform.order.pojo.AddRentVehicleDTO
;
import
com.xxfc.platform.order.pojo.
order.add.
AddRentVehicleDTO
;
import
com.xxfc.platform.order.pojo.order.RentVehicleBO
;
import
com.xxfc.platform.order.pojo.order.add.BgAddRentDTO
;
import
com.xxfc.platform.order.pojo.price.RentVehiclePriceVO
;
import
com.xxfc.platform.order.service.OrderRentVehicleService
;
import
com.xxfc.platform.vehicle.entity.BranchCompany
;
...
...
@@ -59,45 +60,61 @@ public class OrderRentVehicleController extends CommonBaseController {
@ResponseBody
@ApiOperation
(
value
=
"确认租车订单"
)
public
ObjectRestResponse
<
BaseOrder
>
add
(
@RequestBody
AddRentVehicleDTO
vo
){
if
(
null
==
vo
.
getEndCompanyId
()
||
vo
.
getEndCompanyId
().
equals
(
0
))
{
if
(
StrUtil
.
isBlank
(
vo
.
getEndAddr
()))
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
Sets
.
newSet
(
"公司参数不正确"
));
}
else
{
Map
<
String
,
Object
>
map
=
BeanUtil
.
beanToMap
(
new
BranchCompany
(){{
setName
(
vo
.
getEndAddr
());
}},
false
,
true
);
List
<
BranchCompany
>
data
=
vehicleFeign
.
branchCompanyEntityList
(
map
).
getData
();
if
(
null
==
data
)
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
Sets
.
newSet
(
"公司参数不正确"
));
}
else
{
BranchCompany
endCompany
=
vehicleFeign
.
branchCompanyEntityList
(
map
).
getData
().
get
(
0
);
vo
.
setEndCompanyId
(
endCompany
.
getId
());
RentVehicleBO
bo
=
initRentVehicleBO
(
vo
);
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
orderRentVehicleService
.
createOrder
(
bo
);
return
ObjectRestResponse
.
succ
(
bo
.
getOrder
());
}
@RequestMapping
(
value
=
"back-stage/add"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
@ApiOperation
(
value
=
"后台人员为客户下租车订单"
)
public
ObjectRestResponse
<
BaseOrder
>
backStagedd
(
@RequestBody
BgAddRentDTO
dto
){
RentVehicleBO
bo
=
initRentVehicleBO
(
dto
);
bo
.
setAppUserDTO
(
userFeign
.
userDetailById
(
dto
.
getAppUserId
()).
getData
());
orderRentVehicleService
.
createOrder
(
bo
);
return
ObjectRestResponse
.
succ
(
bo
.
getOrder
());
}
private
RentVehicleBO
initRentVehicleBO
(
@RequestBody
AddRentVehicleDTO
vo
)
{
if
(
null
==
vo
.
getEndCompanyId
()
||
vo
.
getEndCompanyId
().
equals
(
0
))
{
if
(
StrUtil
.
isBlank
(
vo
.
getEndAddr
()))
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
Sets
.
newSet
(
"公司参数不正确"
));
}
else
{
Map
<
String
,
Object
>
map
=
BeanUtil
.
beanToMap
(
new
BranchCompany
(){{
setName
(
vo
.
getEndAddr
());
}},
false
,
true
);
List
<
BranchCompany
>
data
=
vehicleFeign
.
branchCompanyEntityList
(
map
).
getData
();
if
(
null
==
data
)
{
throw
new
BaseException
(
ResultCode
.
PARAM_ILLEGAL_CODE
,
Sets
.
newSet
(
"公司参数不正确"
));
}
else
{
BranchCompany
endCompany
=
vehicleFeign
.
branchCompanyEntityList
(
map
).
getData
().
get
(
0
);
vo
.
setEndCompanyId
(
endCompany
.
getId
());
}
}
}
if
(
vo
.
getStartCompanyId
()
!=
null
)
{
CompanyDetail
companyDetail
=
vehicleFeign
.
getCompanyDetail
(
vo
.
getStartCompanyId
()).
getData
();
if
(
companyDetail
!=
null
)
{
vo
.
setStartAddr
(
companyDetail
.
detailAddr
());
}
}
}
if
(
vo
.
getStartCompanyId
()
!=
null
)
{
CompanyDetail
companyDetail
=
vehicleFeign
.
getCompanyDetail
(
vo
.
getStartCompanyId
()).
getData
();
if
(
companyDetail
!=
null
)
{
vo
.
setStartAddr
(
companyDetail
.
detailAddr
());
}
}
if
(
vo
.
getEndCompanyId
()
!=
null
)
{
CompanyDetail
companyDetail
=
vehicleFeign
.
getCompanyDetail
(
vo
.
getEndCompanyId
()).
getData
();
if
(
companyDetail
!=
null
)
{
vo
.
setEndAddr
(
companyDetail
.
detailAddr
());
}
}
RentVehicleBO
bo
=
BeanUtil
.
toBean
(
vo
,
RentVehicleBO
.
class
);
bo
.
setBookVehicleVO
(
new
BookVehicleVO
(){{
setBookStartDate
(
vo
.
getBookStartDate
());
setBookEndDate
(
vo
.
getBookEndDate
());
}});
bo
.
setAppUserDTO
(
userFeign
.
userDetailByToken
(
BaseContextHandler
.
getToken
()).
getData
());
bo
.
setTickerNo
(
StrUtil
.
isNotBlank
(
vo
.
getTickerNos
())?
StrUtil
.
splitTrim
(
vo
.
getTickerNos
(),
","
):
null
);
bo
.
setAccompanyItems
(
vo
.
getAccompanyItems
());
orderRentVehicleService
.
createOrder
(
bo
);
return
ObjectRestResponse
.
succ
(
bo
.
getOrder
());
RentVehicleBO
bo
=
BeanUtil
.
toBean
(
vo
,
RentVehicleBO
.
class
);
bo
.
setBookVehicleVO
(
new
BookVehicleVO
(){{
setBookStartDate
(
vo
.
getBookStartDate
());
setBookEndDate
(
vo
.
getBookEndDate
());
}});
bo
.
setTickerNo
(
StrUtil
.
isNotBlank
(
vo
.
getTickerNos
())?
StrUtil
.
splitTrim
(
vo
.
getTickerNos
(),
","
):
null
);
bo
.
setAccompanyItems
(
vo
.
getAccompanyItems
());
return
bo
;
}
@RequestMapping
(
value
=
"list-by-order/{orderId}"
,
method
=
RequestMethod
.
GET
)
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/OrderTourController.java
View file @
158318d1
...
...
@@ -12,7 +12,7 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import
com.xxfc.platform.order.biz.OrderTourDetailBiz
;
import
com.xxfc.platform.order.entity.BaseOrder
;
import
com.xxfc.platform.order.entity.OrderTourDetail
;
import
com.xxfc.platform.order.pojo.AddTourDTO
;
import
com.xxfc.platform.order.pojo.
order.add.
AddTourDTO
;
import
com.xxfc.platform.order.pojo.order.TourBO
;
import
com.xxfc.platform.order.pojo.price.TourPriceVO
;
import
com.xxfc.platform.order.service.OrderTourService
;
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/rest/background/OrderStatisticsController.java
View file @
158318d1
package
com
.
xxfc
.
platform
.
order
.
rest
.
background
;
import
com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel
;
import
com.github.wxiaoqi.security.admin.feign.UserFeign
;
import
com.github.wxiaoqi.security.admin.feign.dto.UserDTO
;
import
com.github.wxiaoqi.security.auth.client.config.UserAuthConfig
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.order.biz.DailyMembersOrderStatisticsBiz
;
import
com.xxfc.platform.order.biz.DailyTravelOrderStatisticsBiz
;
...
...
@@ -13,13 +15,17 @@ import com.xxfc.platform.order.biz.DailyVehicleOrderStatisticsBiz;
import
com.xxfc.platform.order.biz.OrderStatisticsBiz
;
import
com.xxfc.platform.order.entity.OrderStatistics
;
import
com.xxfc.platform.order.pojo.HomePageOrderData
;
import
com.xxfc.platform.order.pojo.OrderQuery
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.web.bind.annotation.*
;
import
java.text.DateFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author Administrator
...
...
@@ -39,7 +45,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
private
final
Integer
TYPE_VEHICLE
=
1
;
/**
* 旅游订单
* 旅游订单
*/
private
final
Integer
TYPE_TOUR
=
2
;
...
...
@@ -56,7 +62,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
/**
* 数据权限
*/
private
final
Integer
DATA_AUTHORITY
=
1
;
private
final
Integer
DATA_AUTHORITY
=
1
;
@Autowired
private
DailyVehicleOrderStatisticsBiz
vehicleBiz
;
...
...
@@ -68,6 +74,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@Autowired
private
DailyMembersOrderStatisticsBiz
membersBiz
;
@ApiOperation
(
"获取订单统计数据"
)
@GetMapping
(
"/findAll/{type}"
)
public
ObjectRestResponse
findAll
(
@PathVariable
Integer
type
)
{
...
...
@@ -83,13 +90,13 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
UserDTO
user
=
userDTOObjectRestResponse
.
getData
();
Integer
companyId
=
user
.
getCompanyId
();
if
(
DATA_AUTHORITY
.
equals
(
user
.
getDataAll
())){
companyId
=
null
;
if
(
DATA_AUTHORITY
.
equals
(
user
.
getDataAll
()))
{
companyId
=
null
;
}
if
(
TYPE_VEHICLE
.
equals
(
type
))
{
OrderStatistics
vehicle
=
vehicleBiz
.
findAll
(
companyId
);
return
ObjectRestResponse
.
succ
(
new
HomePageOrderData
(){{
return
ObjectRestResponse
.
succ
(
new
HomePageOrderData
()
{{
setTotalOrders
(
vehicle
.
getTotalGmv
().
subtract
(
vehicle
.
getTotalReturnGmv
()));
setAdditionalIndemnity
(
vehicle
.
getTotalCompensation
()
.
add
(
vehicle
.
getTotalForfeit
())
...
...
@@ -100,14 +107,14 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
}
if
(
TYPE_TOUR
.
equals
(
type
))
{
OrderStatistics
tour
=
TravelBiz
.
findAll
(
companyId
);
return
ObjectRestResponse
.
succ
(
new
HomePageOrderData
(){{
return
ObjectRestResponse
.
succ
(
new
HomePageOrderData
()
{{
setTotalOrders
(
tour
.
getTotalGmv
().
subtract
(
tour
.
getTotalReturnGmv
()));
setAdditionalIndemnity
(
tour
.
getTotalDefaultMoney
());
}});
}
if
(
TYPE_MEMBER
.
equals
(
type
))
{
OrderStatistics
member
=
membersBiz
.
findAll
(
companyId
);
return
ObjectRestResponse
.
succ
(
new
HomePageOrderData
(){{
return
ObjectRestResponse
.
succ
(
new
HomePageOrderData
()
{{
setTotalOrders
(
member
.
getTotalGmv
());
}});
...
...
@@ -125,5 +132,18 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
}
@GetMapping
(
"/order"
)
@ApiOperation
(
value
=
"会员统计"
)
public
ObjectRestResponse
getMemberOrderStatisticsData
(
@RequestBody
OrderQuery
query
)
{
//获取会员等级信息
List
<
BaseUserMemberLevel
>
memberLevels
=
userFeign
.
levels
();
//获取会员订单统计信息
baseBiz
.
getMemberOrderStatistics
(
memberLevels
,
query
);
return
ObjectRestResponse
.
succ
();
}
}
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/AbstractOrderHandle.java
View file @
158318d1
...
...
@@ -64,7 +64,7 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
* 创建基础订单
* @return
*/
public
BaseOrder
createBaseOrder
(
Integer
orderOrigin
)
{
public
BaseOrder
createBaseOrder
(
Integer
orderOrigin
,
Integer
appUserId
)
{
BaseOrder
baseOrder
=
new
BaseOrder
();
//设置下单来源
...
...
@@ -85,13 +85,14 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
baseOrder
.
setVersion
(
VERSION_INITIAL
);
//设置用户id
baseOrder
.
setUserId
(
Integer
.
valueOf
(
BaseContextHandler
.
getUserID
())
);
baseOrder
.
setUserId
(
appUserId
);
baseOrder
.
setMemberLevel
(
getAppUser
().
getMemberLevel
());
return
baseOrder
;
}
public
void
initDetail
(
Detail
detail
)
{
BaseOrder
order
=
createBaseOrder
(
detail
.
getOrderOrigin
());
Integer
appUserId
=
(
null
==
detail
.
getAppUserDTO
())?
Integer
.
valueOf
(
BaseContextHandler
.
getUserID
()):
detail
.
getAppUserDTO
().
getUserid
();
BaseOrder
order
=
createBaseOrder
(
detail
.
getOrderOrigin
(),
appUserId
);
detail
.
setOrder
(
order
);
}
...
...
xx-order/xx-order-server/src/main/java/com/xxfc/platform/order/service/OrderRentVehicleService.java
View file @
158318d1
...
...
@@ -261,11 +261,15 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//计算车辆费用
//如果用户存在,并且为会员,并且车辆有优惠价
//默认折扣默认100
detail
.
setRebate
(
100
);
if
(
null
!=
dto
&&
SYS_TRUE
.
equals
(
dto
.
getIsMember
())
&&
!
NONE
.
getCode
().
equals
(
dto
.
getMemberLevel
())
&&
!
DISCOUNT_STATUS_NONE
.
equals
(
vehicleModel
.
getRentDiscountStatus
()))
{
String
[]
prices
=
StrUtil
.
isBlank
(
vehicleModel
.
getRentDiscountPrice
())
?
new
String
[]{
vehicleModel
.
getPrice
().
toString
(),
vehicleModel
.
getPrice
().
toString
(),
vehicleModel
.
getPrice
().
toString
()}
:
vehicleModel
.
getRentDiscountPrice
().
split
(
","
);
HandleDiscountDTO
handleDiscountDTO
=
new
HandleDiscountDTO
();
handleDiscountDTO
.
setRebate
(
100
);
handleDiscountDTO
.
setModelAmount
(
vehicleModel
.
getPrice
());
switch
(
MemberEnum
.
getByCode
(
dto
.
getMemberLevel
()))
{
case
NORMAL:
handleDiscountDTO
=
handleDiscount
(
dto
,
vehicleModel
,
prices
,
NORMAL
);
...
...
@@ -279,6 +283,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
handleDiscountDTO
=
handleDiscount
(
dto
,
vehicleModel
,
prices
,
DIAMOND
);
detail
.
getOrder
().
setHasMemberRight
(
SYS_TRUE
);
break
;
default
:
break
;
}
detail
.
setRebate
(
handleDiscountDTO
.
getRebate
());
vehicleOrderItem
.
setUnitPrice
(
handleDiscountDTO
.
getModelAmount
());
...
...
xx-order/xx-order-server/src/main/resources/mapper/DailyMembersOrderStatisticsMapper.xml
View file @
158318d1
...
...
@@ -38,4 +38,51 @@
<!-- DATE_FORMAT(one_day,'%Y-%c')=DATE_FORMAT(DATE_SUB(NOW(),interval 1 day),'%Y-%c')-->
<!-- </select>-->
<select
id=
"getMemberOrderStatistics"
parameterType=
"com.xxfc.platform.order.pojo.OrderQuery"
resultMap=
"order"
>
SELECT
<if
test=
"type==2"
>
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m') AS period,
</if>
<if
test=
"type==3"
>
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v') AS period,
</if>
date( FROM_UNIXTIME( a.crt_time / 1000 ) ) AS period,
count( a.id ) AS number,
SUM( a.account_amount ) AS amount,
d.member_level AS level
FROM
order_account a
LEFT JOIN base_order b ON a.order_id = b.id
LEFT JOIN order_member_detail d ON d.order_id = b.id
WHERE
a.account_status = 1
AND a.account_type = 101
AND b.type = 3
<if
test=
"startTime != null"
>
AND a.crt_time
>
= #{startTime}
</if>
<if
test=
"endTime != null"
>
AND a.crt_time
<
= #{endTime}
</if>
GROUP BY
<if
test=
"type==2"
>
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%m'),
</if>
<if
test=
"type==3"
>
DATE_FORMAT(date( FROM_UNIXTIME( a.crt_time / 1000 ) ),'%Y-%v'),
</if>
date( FROM_UNIXTIME( a.crt_time / 1000 ) ),
d.member_level
</select>
<resultMap
id=
"order"
type=
"com.xxfc.platform.order.entity.MembersOrder"
>
<result
column=
"period"
property=
"period"
></result>
<collection
property=
"members"
ofType=
"com.xxfc.platform.order.pojo.Member"
>
<result
column=
"number"
property=
"level"
></result>
<result
column=
"amount"
property=
"level"
></result>
<result
column=
"level"
property=
"level"
></result>
</collection>
</resultMap>
</mapper>
\ No newline at end of file
xx-universal/xx-universal-api/pom.xml
View file @
158318d1
...
...
@@ -83,6 +83,12 @@
<artifactId>
jiguang-common
</artifactId>
<version>
1.1.1
</version>
</dependency>
<dependency>
<groupId>
commons-lang
</groupId>
<artifactId>
commons-lang
</artifactId>
<version>
2.6
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/api/BaseAuthentication.java
deleted
100644 → 0
View file @
18dd453b
package
com
.
xxfc
.
platform
.
universal
.
api
;
import
com.xxfc.platform.universal.api.pojo.Authentication
;
import
com.xxfc.platform.universal.entity.IdInformation
;
/**
* 调用外部接口实现类。调用不同的外部接口,需要编写不同了类实现该类
*/
public
interface
BaseAuthentication
{
Authentication
getAuthentication
(
IdInformation
idInformation
);
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/api/impl/FQAuthentication.java
deleted
100644 → 0
View file @
18dd453b
package
com
.
xxfc
.
platform
.
universal
.
api
.
impl
;
import
com.xxfc.platform.universal.api.BaseAuthentication
;
import
com.xxfc.platform.universal.api.pojo.Authentication
;
import
com.xxfc.platform.universal.entity.IdInformation
;
public
class
FQAuthentication
implements
BaseAuthentication
{
@Override
public
Authentication
getAuthentication
(
IdInformation
idInformation
)
{
return
null
;
}
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/api/pojo/Authentication.java
deleted
100644 → 0
View file @
18dd453b
package
com
.
xxfc
.
platform
.
universal
.
api
.
pojo
;
public
class
Authentication
{
}
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/dto/SmsTemplateDTO.java
View file @
158318d1
...
...
@@ -71,6 +71,8 @@ public class SmsTemplateDTO {
public
static
final
int
PAY_I
=
26
;
//旅游(上车通知)27
public
static
final
int
PAY_J
=
27
;
//小程序密码通知
public
static
final
int
PWD
=
28
;
...
...
xx-universal/xx-universal-api/src/main/java/com/xxfc/platform/universal/utils/HttpUtils.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
universal
.
utils
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.security.KeyManagementException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.cert.X509Certificate
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.HttpDelete
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.client.methods.HttpPut
;
import
org.apache.http.conn.ClientConnectionManager
;
import
org.apache.http.conn.scheme.Scheme
;
import
org.apache.http.conn.scheme.SchemeRegistry
;
import
org.apache.http.conn.ssl.SSLSocketFactory
;
import
org.apache.http.entity.ByteArrayEntity
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.DefaultHttpClient
;
import
org.apache.http.message.BasicNameValuePair
;
public
class
HttpUtils
{
/**
* get
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @return
* @throws Exception
*/
public
static
HttpResponse
doGet
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpGet
request
=
new
HttpGet
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
return
httpClient
.
execute
(
request
);
}
/**
* post form
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param bodys
* @return
* @throws Exception
*/
public
static
HttpResponse
doPost
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
Map
<
String
,
String
>
bodys
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPost
request
=
new
HttpPost
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
bodys
!=
null
)
{
List
<
NameValuePair
>
nameValuePairList
=
new
ArrayList
<
NameValuePair
>();
for
(
String
key
:
bodys
.
keySet
())
{
nameValuePairList
.
add
(
new
BasicNameValuePair
(
key
,
bodys
.
get
(
key
)));
}
UrlEncodedFormEntity
formEntity
=
new
UrlEncodedFormEntity
(
nameValuePairList
,
"utf-8"
);
formEntity
.
setContentType
(
"application/x-www-form-urlencoded; charset=UTF-8"
);
request
.
setEntity
(
formEntity
);
}
return
httpClient
.
execute
(
request
);
}
/**
* Post String
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPost
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
String
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPost
request
=
new
HttpPost
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
StringUtils
.
isNotBlank
(
body
))
{
request
.
setEntity
(
new
StringEntity
(
body
,
"utf-8"
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Post stream
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPost
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
byte
[]
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPost
request
=
new
HttpPost
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
body
!=
null
)
{
request
.
setEntity
(
new
ByteArrayEntity
(
body
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Put String
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPut
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
String
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPut
request
=
new
HttpPut
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
StringUtils
.
isNotBlank
(
body
))
{
request
.
setEntity
(
new
StringEntity
(
body
,
"utf-8"
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Put stream
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @param body
* @return
* @throws Exception
*/
public
static
HttpResponse
doPut
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
,
byte
[]
body
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpPut
request
=
new
HttpPut
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
if
(
body
!=
null
)
{
request
.
setEntity
(
new
ByteArrayEntity
(
body
));
}
return
httpClient
.
execute
(
request
);
}
/**
* Delete
*
* @param host
* @param path
* @param method
* @param headers
* @param querys
* @return
* @throws Exception
*/
public
static
HttpResponse
doDelete
(
String
host
,
String
path
,
String
method
,
Map
<
String
,
String
>
headers
,
Map
<
String
,
String
>
querys
)
throws
Exception
{
HttpClient
httpClient
=
wrapClient
(
host
);
HttpDelete
request
=
new
HttpDelete
(
buildUrl
(
host
,
path
,
querys
));
for
(
Map
.
Entry
<
String
,
String
>
e
:
headers
.
entrySet
())
{
request
.
addHeader
(
e
.
getKey
(),
e
.
getValue
());
}
return
httpClient
.
execute
(
request
);
}
private
static
String
buildUrl
(
String
host
,
String
path
,
Map
<
String
,
String
>
querys
)
throws
UnsupportedEncodingException
{
StringBuilder
sbUrl
=
new
StringBuilder
();
sbUrl
.
append
(
host
);
if
(!
StringUtils
.
isBlank
(
path
))
{
sbUrl
.
append
(
path
);
}
if
(
null
!=
querys
)
{
StringBuilder
sbQuery
=
new
StringBuilder
();
for
(
Map
.
Entry
<
String
,
String
>
query
:
querys
.
entrySet
())
{
if
(
0
<
sbQuery
.
length
())
{
sbQuery
.
append
(
"&"
);
}
if
(
StringUtils
.
isBlank
(
query
.
getKey
())
&&
!
StringUtils
.
isBlank
(
query
.
getValue
()))
{
sbQuery
.
append
(
query
.
getValue
());
}
if
(!
StringUtils
.
isBlank
(
query
.
getKey
()))
{
sbQuery
.
append
(
query
.
getKey
());
if
(!
StringUtils
.
isBlank
(
query
.
getValue
()))
{
sbQuery
.
append
(
"="
);
sbQuery
.
append
(
URLEncoder
.
encode
(
query
.
getValue
(),
"utf-8"
));
}
}
}
if
(
0
<
sbQuery
.
length
())
{
sbUrl
.
append
(
"?"
).
append
(
sbQuery
);
}
}
return
sbUrl
.
toString
();
}
private
static
HttpClient
wrapClient
(
String
host
)
{
HttpClient
httpClient
=
new
DefaultHttpClient
();
if
(
host
.
startsWith
(
"https://"
))
{
sslClient
(
httpClient
);
}
return
httpClient
;
}
private
static
void
sslClient
(
HttpClient
httpClient
)
{
try
{
SSLContext
ctx
=
SSLContext
.
getInstance
(
"TLS"
);
X509TrustManager
tm
=
new
X509TrustManager
()
{
public
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
public
void
checkClientTrusted
(
X509Certificate
[]
xcs
,
String
str
)
{
}
public
void
checkServerTrusted
(
X509Certificate
[]
xcs
,
String
str
)
{
}
};
ctx
.
init
(
null
,
new
TrustManager
[]
{
tm
},
null
);
SSLSocketFactory
ssf
=
new
SSLSocketFactory
(
ctx
);
ssf
.
setHostnameVerifier
(
SSLSocketFactory
.
ALLOW_ALL_HOSTNAME_VERIFIER
);
ClientConnectionManager
ccm
=
httpClient
.
getConnectionManager
();
SchemeRegistry
registry
=
ccm
.
getSchemeRegistry
();
registry
.
register
(
new
Scheme
(
"https"
,
443
,
ssf
));
}
catch
(
KeyManagementException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
catch
(
NoSuchAlgorithmException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
}
}
\ No newline at end of file
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/AliYunSmsBiz.java
View file @
158318d1
...
...
@@ -82,6 +82,9 @@ public class AliYunSmsBiz {
//旅游(上车通知)27
public
static
final
String
TEMPLATE_ID_PAY_J
=
"SMS_173345606"
;
//旅游(上车通知)27
public
static
final
String
PWD
=
"SMS_174990497"
;
//发送模板消息
...
...
@@ -166,6 +169,9 @@ public class AliYunSmsBiz {
case
27
:
SmsService
.
sendTemplateToJson
(
phoneNumbers
,
params
,
TEMPLATE_ID_PAY_J
);
break
;
case
28
:
SmsService
.
sendTemplateToJson
(
phoneNumbers
,
params
,
PWD
);
break
;
}
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/biz/UserMessage.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
universal
.
biz
;
import
lombok.Data
;
/**
* 用户信息类
* @author Administrator
*/
@Data
public
class
UserMessage
{
private
String
name
;
private
String
idNumber
;
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/CertificationService.java
View file @
158318d1
...
...
@@ -7,8 +7,10 @@ import com.github.wxiaoqi.security.admin.feign.UserFeign;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.util.process.ResultCode
;
import
com.xxfc.platform.universal.biz.UserMessage
;
import
com.xxfc.platform.universal.entity.IdInformation
;
import
com.xxfc.platform.universal.mapper.IdInformationMapper
;
import
com.xxfc.platform.universal.service.authenticationInterface.UserAuthentication
;
import
com.xxfc.platform.universal.utils.CertifHttpUtils
;
import
com.xxfc.platform.universal.utils.Validation
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -21,6 +23,7 @@ import org.apache.http.util.EntityUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
...
...
@@ -31,9 +34,16 @@ import java.text.SimpleDateFormat;
import
java.util.*
;
/**
* 认证业务
* @author Administrator
*/
@Service
@Slf4j
public
class
CertificationService
{
@Autowired
private
UserAuthentication
authentication
;
/**
* 认证相关的数据
*/
...
...
@@ -209,17 +219,20 @@ public class CertificationService {
}
//map携带身份证和姓名进行认证
Map
<
String
,
String
>
authMap
=
new
HashMap
<>();
authMap
.
put
(
idCardName
,
(
String
)
frontData
.
get
(
numberName
));
authMap
.
put
(
cName
,
(
String
)
frontData
.
get
(
cName
));
//3.调用接口进行认证
String
result
=
certificate
(
authMap
);
// Map<String, String> authMap = new HashMap<>();
// authMap.put(idCardName, (String) frontData.get(numberName));
// authMap.put(cName, (String) frontData.get(cName));
// //3.调用接口进行认证
//
// boolean result = certificate(authMap);
boolean
result
=
authentication
.
certificate
(
new
UserMessage
(){{
setIdNumber
(
number
);
setName
(
name
);
}}
);
log
.
info
(
"----认证结果result========="
+
result
);
//认证返回的参数是否为空
if
(!
StringUtils
.
isBlank
(
result
))
{
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
JSONObject
.
parse
(
result
);
log
.
info
(
"----certifRet========="
+
certifRet
);
if
(
MapUtil
.
isNotEmpty
(
map
)
||
certifResultCode
.
equals
(
map
.
get
(
certifRet
)))
{
if
(
result
)
{
//认证成功后存入保存到数据库
//获得身份证正面记录的身份证号和真实姓名
//设置姓名
...
...
@@ -257,9 +270,6 @@ public class CertificationService {
// return ObjectRestResponse.succ(objRR.getData());
// }
}
}
return
ObjectRestResponse
.
createFailedResult
(
ResultCode
.
INCOMPLETE_DATA
,
"网络异常,请稍后再试"
);
...
...
@@ -267,7 +277,8 @@ public class CertificationService {
//认证
public
String
certificate
(
Map
<
String
,
String
>
querys
)
{
//认证
public
boolean
certificate
(
Map
<
String
,
String
>
querys
)
{
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
headers
.
put
(
"Authorization"
,
"APPCODE "
+
cAppcode
);
try
{
...
...
@@ -280,15 +291,27 @@ public class CertificationService {
*/
//获取response的body
if
(
statusCode
==
200
)
{
return
EntityUtils
.
toString
(
response
.
getEntity
());
String
result
=
EntityUtils
.
toString
(
response
.
getEntity
());
log
.
info
(
"----认证结果result========="
+
result
);
//认证返回的参数是否为空
if
(!
StringUtils
.
isBlank
(
result
))
{
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
JSONObject
.
parse
(
result
);
log
.
info
(
"----certifRet========="
+
certifRet
);
if
(
MapUtil
.
isNotEmpty
(
map
)
||
certifResultCode
.
equals
(
map
.
get
(
certifRet
)))
{
return
true
;
}
}
}
return
false
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
return
null
;
}
//身份证照片解析
public
String
imageParse
(
String
imageUrl
,
String
type
)
{
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
...
...
@@ -317,10 +340,7 @@ public class CertificationService {
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
...
...
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/authenticationInterface/UserAuthentication.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
universal
.
service
.
authenticationInterface
;
import
com.xxfc.platform.universal.biz.UserMessage
;
import
java.util.Map
;
/**
* 用户认证类
* @author Administrator
*/
public
interface
UserAuthentication
{
/**
* 用户认证方法
* @param message
* @return
*/
boolean
certificate
(
UserMessage
message
)
;
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/authenticationInterface/impl/BJCYAuthentication.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
universal
.
service
.
authenticationInterface
.
impl
;
import
cn.hutool.core.map.MapUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xxfc.platform.universal.biz.UserMessage
;
import
com.xxfc.platform.universal.service.authenticationInterface.UserAuthentication
;
import
com.xxfc.platform.universal.utils.CertifHttpUtils
;
import
com.xxfc.platform.universal.utils.HttpUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.StatusLine
;
import
org.apache.http.util.EntityUtils
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* 调用北京畅游互联科技有限公司接口
*
* @author Administrator
*/
@Service
@Slf4j
@Primary
public
class
BJCYAuthentication
implements
UserAuthentication
{
private
final
String
host
=
"http://aliyunverifyidcard.haoservice.com"
;
private
final
String
path
=
"/idcard/VerifyIdcardv2"
;
private
final
String
method
=
"GET"
;
private
final
String
appcode
=
"ee7710ce92054cae9f6c040f6864e6a7"
;
private
final
String
tokenHead
=
"Authorization"
;
private
final
String
token
=
"APPCODE "
+
appcode
;
private
final
String
cardNo
=
"cardNo"
;
private
final
String
realName
=
"realName"
;
private
final
Integer
resultCode
=
0
;
private
final
String
ret
=
"error_code"
;
@Override
public
boolean
certificate
(
UserMessage
message
)
{
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
headers
.
put
(
tokenHead
,
token
);
Map
<
String
,
String
>
querys
=
new
HashMap
<
String
,
String
>();
querys
.
put
(
cardNo
,
message
.
getIdNumber
());
querys
.
put
(
realName
,
message
.
getName
());
try
{
HttpResponse
response
=
HttpUtils
.
doGet
(
host
,
path
,
method
,
headers
,
querys
);
StatusLine
statusLine
=
response
.
getStatusLine
();
log
.
error
(
response
.
toString
());
int
statusCode
=
statusLine
.
getStatusCode
();
log
.
error
(
statusCode
+
""
);
//获取response的body
if
(
statusCode
==
200
)
{
String
result
=
EntityUtils
.
toString
(
response
.
getEntity
());
log
.
info
(
"----认证结果result========="
+
result
);
//认证返回的参数是否为空
if
(!
StringUtils
.
isBlank
(
result
))
{
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
JSONObject
.
parse
(
result
);
log
.
info
(
"----certifRet========="
+
map
);
if
(
MapUtil
.
isNotEmpty
(
map
)
||
resultCode
.
equals
(
map
.
get
(
ret
)))
{
return
true
;
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
false
;
}
}
xx-universal/xx-universal-server/src/main/java/com/xxfc/platform/universal/service/authenticationInterface/impl/XCFQAuthentication.java
0 → 100644
View file @
158318d1
package
com
.
xxfc
.
platform
.
universal
.
service
.
authenticationInterface
.
impl
;
import
cn.hutool.core.map.MapUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.xxfc.platform.universal.biz.UserMessage
;
import
com.xxfc.platform.universal.service.authenticationInterface.UserAuthentication
;
import
com.xxfc.platform.universal.utils.CertifHttpUtils
;
import
com.xxfc.platform.universal.utils.HttpUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.StatusLine
;
import
org.apache.http.util.EntityUtils
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* 调用四川涪擎认证接口
*
* @author Administrator
*/
@Service
@Slf4j
public
class
XCFQAuthentication
implements
UserAuthentication
{
private
String
cAppcode
=
"acea1c8811f748b3a65815f11db357c4"
;
/**
* 认证相关的数据
*/
private
String
cHost
=
"https://idcert.market.alicloudapi.com"
;
private
String
cPath
=
"/idcard"
;
private
String
cMethod
=
"GET"
;
//响应:认证错误码字段名
private
String
certifRet
=
"status"
;
//响应:认证通过码
private
String
certifResultCode
=
"01"
;
//请求:身份证号字段名
private
String
idCardName
=
"idCard"
;
//请求:用户姓名字段名
private
String
cName
=
"name"
;
@Override
public
boolean
certificate
(
UserMessage
message
)
{
//map携带身份证和姓名进行认证
Map
<
String
,
String
>
querys
=
new
HashMap
<>();
querys
.
put
(
idCardName
,
message
.
getIdNumber
());
querys
.
put
(
cName
,
message
.
getName
());
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
headers
.
put
(
"Authorization"
,
"APPCODE "
+
cAppcode
);
try
{
log
.
info
(
"----querys========="
+
querys
);
HttpResponse
response
=
HttpUtils
.
doGet
(
cHost
,
cPath
,
cMethod
,
headers
,
querys
);
StatusLine
statusLine
=
response
.
getStatusLine
();
int
statusCode
=
statusLine
.
getStatusCode
();
/**
* 状态码: 200 正常;400 URL无效;401 appCode错误; 403 次数用完; 500 API网管错误
*/
//获取response的body
if
(
statusCode
==
200
)
{
String
result
=
EntityUtils
.
toString
(
response
.
getEntity
());
log
.
info
(
"----认证结果result========="
+
result
);
//认证返回的参数是否为空
if
(!
StringUtils
.
isBlank
(
result
))
{
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
JSONObject
.
parse
(
result
);
log
.
info
(
"----certifRet========="
+
certifRet
);
if
(
MapUtil
.
isNotEmpty
(
map
)
||
certifResultCode
.
equals
(
map
.
get
(
certifRet
)))
{
return
true
;
}
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
false
;
}
}
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