Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
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
order-group-application
order-group
Commits
1f3a7a22
Commit
1f3a7a22
authored
Sep 01, 2021
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
券校验
parent
2d00bd80
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
93 additions
and
2 deletions
+93
-2
order-application-service/src/main/java/cn/freemud/enums/CouponActiveStateEnum.java
+50
-0
order-application-service/src/main/java/cn/freemud/service/impl/PointsMallOrderServiceImpl.java
+43
-2
No files found.
order-application-service/src/main/java/cn/freemud/enums/CouponActiveStateEnum.java
0 → 100644
View file @
1f3a7a22
package
cn
.
freemud
.
enums
;
public
enum
CouponActiveStateEnum
{
/**
* 只有1和2能发,一般没有2
*/
STATE_0
(
0
,
"未启用"
),
STATE_1
(
1
,
"启用"
),
STATE_2
(
2
,
"开始"
),
STATE_3
(
3
,
"结束"
),
STATE_4
(
4
,
"暂停"
),
STATE_5
(
5
,
"作废"
),
STATE_6
(
6
,
"禁用"
)
;
private
Integer
code
;
private
String
desc
;
CouponActiveStateEnum
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
static
CouponActiveStateEnum
getByCode
(
Integer
code
)
{
for
(
CouponActiveStateEnum
type
:
values
())
{
if
(
type
.
getCode
().
equals
(
code
))
{
return
type
;
}
}
return
null
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/PointsMallOrderServiceImpl.java
View file @
1f3a7a22
...
@@ -14,6 +14,7 @@ import cn.freemud.entities.dto.user.StatislScoreResponse;
...
@@ -14,6 +14,7 @@ import cn.freemud.entities.dto.user.StatislScoreResponse;
import
cn.freemud.entities.dto.user.StatisticalScoreRequestVo
;
import
cn.freemud.entities.dto.user.StatisticalScoreRequestVo
;
import
cn.freemud.entities.dto.user.UseScoreRequest
;
import
cn.freemud.entities.dto.user.UseScoreRequest
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.CouponActiveStateEnum
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.integralproduct.IntegralProductStatusEnum
;
import
cn.freemud.enums.integralproduct.IntegralProductStatusEnum
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.CouponService
;
...
@@ -121,16 +122,24 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
...
@@ -121,16 +122,24 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
Active
active
=
null
;
Active
active
=
null
;
if
(
isCoupon
)
{
if
(
isCoupon
)
{
String
activityCode
=
integralProductType
.
getCouponCode
();
String
activityCode
=
integralProductType
.
getCouponCode
();
//券商品查询券活动信息校验券有效
BatchQueryActivityInfoRequestDto
queryActivityInfoRequestDto
=
new
BatchQueryActivityInfoRequestDto
();
BatchQueryActivityInfoRequestDto
queryActivityInfoRequestDto
=
new
BatchQueryActivityInfoRequestDto
();
queryActivityInfoRequestDto
.
setActiveCode
(
Arrays
.
asList
(
activityCode
));
queryActivityInfoRequestDto
.
setActiveCode
(
Arrays
.
asList
(
activityCode
));
// queryActivityInfoRequestDto.setActiveCode(Arrays.asList("V1628760321931083"));
queryActivityInfoRequestDto
.
setPartnerId
(
Integer
.
valueOf
(
partnerId
));
queryActivityInfoRequestDto
.
setPartnerId
(
Integer
.
valueOf
(
partnerId
));
BatchQueryActivityInfoResponseDto
batchQueryActivityInfoResponseDto
=
couponService
.
batchQueryActivityInfo
(
queryActivityInfoRequestDto
);
BatchQueryActivityInfoResponseDto
batchQueryActivityInfoResponseDto
=
couponService
.
batchQueryActivityInfo
(
queryActivityInfoRequestDto
);
if
(!
Objects
.
equals
(
"0"
,
batchQueryActivityInfoResponseDto
.
getStatusCode
()))
{
if
(!
Objects
.
equals
(
"0"
,
batchQueryActivityInfoResponseDto
.
getStatusCode
()))
{
return
ResponseUtil
.
error
(
batchQueryActivityInfoResponseDto
.
getStatusCode
(),
"优惠券异常"
);
return
ResponseUtil
.
error
(
batchQueryActivityInfoResponseDto
.
getStatusCode
(),
"优惠券异常"
);
}
}
active
=
batchQueryActivityInfoResponseDto
.
getActivities
().
get
(
0
);
active
=
batchQueryActivityInfoResponseDto
.
getActivities
().
get
(
0
);
//券商品查询券活动信息校验券有效
//只有1和2能发,一般没有2
List
<
Integer
>
canSendCoupon
=
Arrays
.
asList
(
CouponActiveStateEnum
.
STATE_1
.
getCode
(),
CouponActiveStateEnum
.
STATE_2
.
getCode
());
if
(!
canSendCoupon
.
contains
(
active
.
getState
())){
return
ResponseUtil
.
error
(
ResponseCodeConstant
.
RESPONSE_ERROR_STR
,
"优惠券异常"
);
}
if
(
getCouponValidEnd
(
active
).
after
(
new
Date
())){
return
ResponseUtil
.
error
(
ResponseCodeConstant
.
RESPONSE_ERROR_STR
,
"优惠券已过期,无法兑换"
);
}
}
}
if
(
exchangeType
!=
2
)
{
if
(
exchangeType
!=
2
)
{
...
@@ -538,5 +547,37 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
...
@@ -538,5 +547,37 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
}
}
/**
* 获取券的有效结束时间
*/
private
Date
getCouponValidEnd
(
Active
activeInfo
){
Date
returnDate
=
null
;
if
(
activeInfo
.
getEffective
()
!=
null
&&
activeInfo
.
getEffective
()
>
0
)
{
// 根据固定时长来计算 天来计算
int
delayTimes
=
activeInfo
.
getFromDayEffective
()
!=
null
?
activeInfo
.
getFromDayEffective
()
:
0
;
int
validityPeriod
=
activeInfo
.
getEffective
()
!=
null
?
activeInfo
.
getEffective
()
:
1
;
if
(
activeInfo
.
getEffectiveStart
()
!=
null
&&
activeInfo
.
getEffectiveEnd
()
!=
null
)
{
// 有效期为0 默认传1天,做兼容处理
Date
effectiveStart
=
activeInfo
.
getEffectiveStart
();
Date
effectiveEnd
=
activeInfo
.
getEffectiveEnd
();
Date
date
=
new
Date
();
Date
startDate
=
cn
.
freemud
.
base
.
util
.
DateUtil
.
addDays
(
date
,
delayTimes
);
Date
endDate
=
cn
.
freemud
.
base
.
util
.
DateUtil
.
addDays
(
date
,
(
delayTimes
+
validityPeriod
));
if
(
startDate
.
before
(
effectiveStart
))
{
startDate
=
effectiveStart
;
}
if
(
endDate
.
after
(
effectiveEnd
))
{
endDate
=
effectiveEnd
;
}
returnDate
=
endDate
;
}
else
{
// 有效期为0 默认传1天,做兼容处理
returnDate
=
DateUtil
.
addDays
(
new
Date
(),
(
delayTimes
+
validityPeriod
-
1
));
}
}
else
{
returnDate
=
activeInfo
.
getEffectiveEnd
();
}
return
returnDate
;
}
}
}
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