记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
董敬伟
liquidnet-bus-v1
Commits
f75ba734
Commit
f75ba734
authored
Aug 20, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 缺兑换券接口
parent
f031a619
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
261 additions
and
149 deletions
+261
-149
CandyCouponController.java
...idnet/service/candy/controller/CandyCouponController.java
+20
-149
ICandyCouponService.java
.../liquidnet/service/candy/service/ICandyCouponService.java
+28
-0
CandyCouponServiceImpl.java
...et/service/candy/service/impl/CandyCouponServiceImpl.java
+213
-0
No files found.
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/src/main/java/com/liquidnet/service/candy/controller/CandyCouponController.java
View file @
f75ba734
...
@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
...
@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.dto.CandyUserCouponBasicDto
;
import
com.liquidnet.service.candy.dto.CandyUserCouponBasicDto
;
import
com.liquidnet.service.candy.service.ICandyCouponService
;
import
com.liquidnet.service.candy.util.CouponBaseUtil
;
import
com.liquidnet.service.candy.util.CouponBaseUtil
;
import
com.liquidnet.service.candy.util.ObjectUtil
;
import
com.liquidnet.service.candy.util.ObjectUtil
;
import
com.liquidnet.service.candy.util.RedisDataUtils
;
import
com.liquidnet.service.candy.util.RedisDataUtils
;
...
@@ -42,32 +43,13 @@ import java.util.List;
...
@@ -42,32 +43,13 @@ import java.util.List;
public
class
CandyCouponController
{
public
class
CandyCouponController
{
@Autowired
@Autowired
private
RedisDataUtils
redisDataUtils
;
private
ICandyCouponService
candyCouponService
;
//我的券列表
//我的券列表
@GetMapping
(
"my"
)
@GetMapping
(
"my"
)
@ApiOperation
(
"我的券列表"
)
@ApiOperation
(
"我的券列表"
)
public
ResponseDto
<
CandyMyCouponListVo
>
myCoupon
()
{
public
ResponseDto
<
CandyMyCouponListVo
>
myCoupon
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
ResponseDto
.
success
(
candyCouponService
.
myCoupon
());
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
CandyMyCouponListVo
vo
=
CandyMyCouponListVo
.
getNew
();
List
<
CandyCouponVo
>
memberCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
List
<
CandyCouponVo
>
myCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getBaseCouponUserVo
(
dtoItem
);
if
(
dtoItem
.
getExclusive
().
equals
(
1
))
{
//会员券
memberCoupon
.
add
(
baseVo
);
}
else
{
//非会员券
myCoupon
.
add
(
baseVo
);
}
}
//排序
memberCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
myCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
vo
.
setMemberCoupon
(
memberCoupon
);
vo
.
setMyCoupon
(
myCoupon
);
return
ResponseDto
.
success
(
vo
);
}
}
//要使用券列表 - 演出
//要使用券列表 - 演出
...
@@ -80,27 +62,7 @@ public class CandyCouponController {
...
@@ -80,27 +62,7 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"ticketId"
,
value
=
"票id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"ticketId"
,
value
=
"票id"
,
required
=
true
),
})
})
public
ResponseDto
<
CandyMyCouponListVo
>
preUsePerformanceCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"performanceId"
)
String
performanceId
,
@RequestParam
(
"timeId"
)
String
timeId
,
@RequestParam
(
"ticketId"
)
String
ticketId
)
{
public
ResponseDto
<
CandyMyCouponListVo
>
preUsePerformanceCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"performanceId"
)
String
performanceId
,
@RequestParam
(
"timeId"
)
String
timeId
,
@RequestParam
(
"ticketId"
)
String
ticketId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
ResponseDto
.
success
(
candyCouponService
.
preUsePerformanceCoupon
(
priceTotal
,
performanceId
,
timeId
,
ticketId
));
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
CandyMyCouponListVo
vo
=
CandyMyCouponListVo
.
getNew
();
List
<
CandyCouponVo
>
memberCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
List
<
CandyCouponVo
>
myCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getPerformanceCouponUserVo
(
dtoItem
,
priceTotal
,
performanceId
,
timeId
,
ticketId
);
if
(
dtoItem
.
getExclusive
().
equals
(
1
))
{
//会员券
memberCoupon
.
add
(
baseVo
);
}
else
{
//非会员券
myCoupon
.
add
(
baseVo
);
}
}
//排序
memberCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
myCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
vo
.
setMemberCoupon
(
memberCoupon
);
vo
.
setMyCoupon
(
myCoupon
);
return
ResponseDto
.
success
(
vo
);
}
}
// 是否可用券演出
// 是否可用券演出
...
@@ -113,19 +75,8 @@ public class CandyCouponController {
...
@@ -113,19 +75,8 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"ticketId"
,
value
=
"票id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"ticketId"
,
value
=
"票id"
,
required
=
true
),
})
})
public
ResponseDto
<
HashMap
<
String
,
Integer
>>
preCanUsePerformanceCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"performanceId"
)
String
performanceId
,
@RequestParam
(
"timeId"
)
String
timeId
,
@RequestParam
(
"ticketId"
)
String
ticketId
)
{
public
ResponseDto
<
HashMap
<
String
,
Integer
>>
preCanUsePerformanceCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"performanceId"
)
String
performanceId
,
@RequestParam
(
"timeId"
)
String
timeId
,
@RequestParam
(
"ticketId"
)
String
ticketId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
HashMap
<
String
,
Integer
>
hashMap
=
CollectionUtil
.
mapStringInteger
();
HashMap
<
String
,
Integer
>
hashMap
=
CollectionUtil
.
mapStringInteger
();
hashMap
.
put
(
"canUse"
,
0
);
hashMap
.
put
(
"canUse"
,
candyCouponService
.
preCanUsePerformanceCoupon
(
priceTotal
,
performanceId
,
timeId
,
ticketId
));
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getPerformanceCouponUserVo
(
dtoItem
,
priceTotal
,
performanceId
,
timeId
,
ticketId
);
if
(
baseVo
.
getState
().
equals
(
1
))
{
//可用
hashMap
.
put
(
"canUse"
,
1
);
break
;
}
else
{
//不可用
continue
;
}
}
return
ResponseDto
.
success
(
hashMap
);
return
ResponseDto
.
success
(
hashMap
);
}
}
...
@@ -139,27 +90,7 @@ public class CandyCouponController {
...
@@ -139,27 +90,7 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"produceId"
,
value
=
"场次id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"produceId"
,
value
=
"场次id"
,
required
=
true
),
})
})
public
ResponseDto
<
CandyMyCouponListVo
>
preUseGoodCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"goodId"
)
String
goodId
,
@RequestParam
(
"produceId"
)
String
produceId
)
{
public
ResponseDto
<
CandyMyCouponListVo
>
preUseGoodCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"goodId"
)
String
goodId
,
@RequestParam
(
"produceId"
)
String
produceId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
ResponseDto
.
success
(
candyCouponService
.
preUseGoodCoupon
(
priceTotal
,
goodId
,
produceId
));
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
CandyMyCouponListVo
vo
=
CandyMyCouponListVo
.
getNew
();
List
<
CandyCouponVo
>
memberCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
List
<
CandyCouponVo
>
myCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getGoodCouponUserVo
(
dtoItem
,
priceTotal
,
goodId
,
produceId
);
if
(
dtoItem
.
getExclusive
().
equals
(
1
))
{
//会员券
memberCoupon
.
add
(
baseVo
);
}
else
{
//非会员券
myCoupon
.
add
(
baseVo
);
}
}
//排序
memberCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
myCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
vo
.
setMemberCoupon
(
memberCoupon
);
vo
.
setMyCoupon
(
myCoupon
);
return
ResponseDto
.
success
(
vo
);
}
}
//是否可用券 - 商品
//是否可用券 - 商品
...
@@ -171,19 +102,8 @@ public class CandyCouponController {
...
@@ -171,19 +102,8 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"produceId"
,
value
=
"场次id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"produceId"
,
value
=
"场次id"
,
required
=
true
),
})
})
public
ResponseDto
<
HashMap
<
String
,
Integer
>>
preCanUseGoodCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"goodId"
)
String
goodId
,
@RequestParam
(
"produceId"
)
String
produceId
)
{
public
ResponseDto
<
HashMap
<
String
,
Integer
>>
preCanUseGoodCoupon
(
@RequestParam
(
"priceTotal"
)
BigDecimal
priceTotal
,
@RequestParam
(
"goodId"
)
String
goodId
,
@RequestParam
(
"produceId"
)
String
produceId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
HashMap
<
String
,
Integer
>
hashMap
=
CollectionUtil
.
mapStringInteger
();
HashMap
<
String
,
Integer
>
hashMap
=
CollectionUtil
.
mapStringInteger
();
hashMap
.
put
(
"canUse"
,
0
);
hashMap
.
put
(
"canUse"
,
candyCouponService
.
preCanUseGoodCoupon
(
priceTotal
,
goodId
,
produceId
));
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getGoodCouponUserVo
(
dtoItem
,
priceTotal
,
goodId
,
produceId
);
if
(
baseVo
.
getState
().
equals
(
1
))
{
//可用
hashMap
.
put
(
"canUse"
,
1
);
break
;
}
else
{
//不可用
continue
;
}
}
return
ResponseDto
.
success
(
hashMap
);
return
ResponseDto
.
success
(
hashMap
);
}
}
...
@@ -192,23 +112,7 @@ public class CandyCouponController {
...
@@ -192,23 +112,7 @@ public class CandyCouponController {
@GetMapping
(
"my/advance"
)
@GetMapping
(
"my/advance"
)
@ApiOperation
(
"提前券列表"
)
@ApiOperation
(
"提前券列表"
)
public
ResponseDto
<
List
<
CandyCouponVo
>>
myAdvanceCoupon
()
{
public
ResponseDto
<
List
<
CandyCouponVo
>>
myAdvanceCoupon
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
ResponseDto
.
success
(
candyCouponService
.
myAdvanceCoupon
());
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
List
<
CandyCouponVo
>
advanceCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
if
(
dtoItem
.
getBusiType
().
equals
(
3
))
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getBaseCouponUserVo
(
dtoItem
);
if
(
baseVo
.
getState
().
equals
(
1
))
{
advanceCoupon
.
add
(
baseVo
);
}
else
{
continue
;
}
}
else
{
continue
;
}
}
//排序
return
ResponseDto
.
success
(
advanceCoupon
);
}
}
//判断券是否可用
//判断券是否可用
...
@@ -218,15 +122,13 @@ public class CandyCouponController {
...
@@ -218,15 +122,13 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券唯一表示id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券唯一表示id"
,
required
=
true
),
})
})
public
ResponseDto
<
HashMap
<
String
,
Integer
>>
stateCoupon
(
@RequestParam
(
"uCouponId"
)
String
uCouponId
)
{
public
ResponseDto
<
HashMap
<
String
,
Integer
>>
stateCoupon
(
@RequestParam
(
"uCouponId"
)
String
uCouponId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
Integer
result
=
candyCouponService
.
stateCoupon
(
uCouponId
);
CandyUserCouponBasicDto
dto
=
CouponBaseUtil
.
getSingleDtoByUCouponId
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
if
(
result
==
null
)
{
if
(
dto
==
null
)
{
return
ResponseDto
.
failure
();
return
ResponseDto
.
failure
();
//券不存在
}
}
Integer
state
=
CouponBaseUtil
.
getCouponState
(
LocalDateTime
.
now
(),
dto
.
getExpireAt
(),
dto
.
getState
());
HashMap
<
String
,
Integer
>
hashMap
=
CollectionUtil
.
mapStringInteger
();
HashMap
<
String
,
Integer
>
map
=
CollectionUtil
.
mapStringInteger
();
hashMap
.
put
(
"state"
,
result
);
map
.
put
(
"state"
,
state
);
return
ResponseDto
.
success
(
hashMap
);
return
ResponseDto
.
success
(
map
);
}
}
//判断券是否可用并使用
//判断券是否可用并使用
...
@@ -236,34 +138,11 @@ public class CandyCouponController {
...
@@ -236,34 +138,11 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券唯一表示id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券唯一表示id"
,
required
=
true
),
})
})
public
ResponseDto
<
CandyUseResultVo
>
useCoupon
(
@RequestParam
(
"uCouponId"
)
String
uCouponId
)
{
public
ResponseDto
<
CandyUseResultVo
>
useCoupon
(
@RequestParam
(
"uCouponId"
)
String
uCouponId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
CandyUseResultVo
result
=
candyCouponService
.
useCoupon
(
uCouponId
);
CandyUseResultVo
vo
=
CandyUseResultVo
.
getNew
();
if
(
result
==
null
)
{
List
<
CandyUserCouponBasicDto
>
dtoList
=
CouponBaseUtil
.
useCoupon
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
if
(
dtoList
==
null
)
{
return
ResponseDto
.
failure
();
return
ResponseDto
.
failure
();
}
else
{
redisDataUtils
.
setCouponByUid
(
uid
,
dtoList
);
}
CandyUserCouponBasicDto
dto
=
CouponBaseUtil
.
getSingleDtoByUCouponId
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
switch
(
dto
.
getCouType
()){
//券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]
case
1
:
vo
.
setValue
(
dto
.
getValFace
());
break
;
case
2
:
vo
.
setValue
(
dto
.
getValMinus
());
break
;
case
3
:
vo
.
setValue
(
BigDecimal
.
valueOf
(-
1
));
break
;
case
4
:
vo
.
setValue
(
dto
.
getDiscount
());
break
;
default
:
vo
.
setValue
(
BigDecimal
.
valueOf
(
0
));
break
;
}
}
vo
.
setCouType
(
dto
.
getCouType
());
return
ResponseDto
.
success
(
result
);
return
ResponseDto
.
success
(
vo
);
}
}
//回退券
//回退券
...
@@ -273,13 +152,7 @@ public class CandyCouponController {
...
@@ -273,13 +152,7 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券唯一表示id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券唯一表示id"
,
required
=
true
),
})
})
public
ResponseDto
<
Boolean
>
useBackCoupon
(
@RequestParam
(
"uCouponId"
)
String
uCouponId
)
{
public
ResponseDto
<
Boolean
>
useBackCoupon
(
@RequestParam
(
"uCouponId"
)
String
uCouponId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
candyCouponService
.
useBackCoupon
(
uCouponId
);
List
<
CandyUserCouponBasicDto
>
dtoList
=
CouponBaseUtil
.
backCoupon
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
if
(
dtoList
==
null
)
{
return
ResponseDto
.
failure
();
}
else
{
redisDataUtils
.
setCouponByUid
(
uid
,
dtoList
);
}
return
ResponseDto
.
success
();
return
ResponseDto
.
success
();
}
}
...
@@ -290,14 +163,12 @@ public class CandyCouponController {
...
@@ -290,14 +163,12 @@ public class CandyCouponController {
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"ccode"
,
value
=
"兑换码"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"ccode"
,
value
=
"兑换码"
,
required
=
true
),
})
})
public
ResponseDto
<
Boolean
>
receiveCoupon
(
@RequestParam
(
"ccode"
)
String
ccode
)
{
public
ResponseDto
<
Boolean
>
receiveCoupon
(
@RequestParam
(
"ccode"
)
String
ccode
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
Boolean
result
=
candyCouponService
.
receiveCoupon
(
ccode
);
Boolean
result
=
CouponBaseUtil
.
receiveCoupon
(
uid
,
ccode
);
if
(
result
)
{
if
(
result
)
{
return
ResponseDto
.
success
();
}
else
{
}
else
{
return
ResponseDto
.
failure
();
return
ResponseDto
.
failure
();
}
}
return
ResponseDto
.
success
();
}
}
}
}
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/src/main/java/com/liquidnet/service/candy/service/ICandyCouponService.java
View file @
f75ba734
package
com
.
liquidnet
.
service
.
candy
.
service
;
package
com
.
liquidnet
.
service
.
candy
.
service
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.candy.vo.CandyCouponVo
;
import
com.liquidnet.service.candy.vo.CandyMyCouponListVo
;
import
com.liquidnet.service.candy.vo.CandyUseResultVo
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.List
;
/**
/**
* <p>
* <p>
...
@@ -13,4 +22,23 @@ import com.baomidou.mybatisplus.extension.service.IService;
...
@@ -13,4 +22,23 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
*/
public
interface
ICandyCouponService
extends
IService
<
CandyCoupon
>
{
public
interface
ICandyCouponService
extends
IService
<
CandyCoupon
>
{
CandyMyCouponListVo
myCoupon
();
CandyMyCouponListVo
preUsePerformanceCoupon
(
BigDecimal
priceTotal
,
String
performanceId
,
String
timeId
,
String
ticketId
);
Integer
preCanUsePerformanceCoupon
(
BigDecimal
priceTotal
,
String
performanceId
,
String
timeId
,
String
ticketId
);
CandyMyCouponListVo
preUseGoodCoupon
(
BigDecimal
priceTotal
,
String
goodId
,
String
produceId
);
Integer
preCanUseGoodCoupon
(
BigDecimal
priceTotal
,
String
goodId
,
String
produceId
);
List
<
CandyCouponVo
>
myAdvanceCoupon
();
Integer
stateCoupon
(
String
uCouponId
);
CandyUseResultVo
useCoupon
(
String
uCouponId
);
Boolean
useBackCoupon
(
String
uCouponId
);
Boolean
receiveCoupon
(
String
ccode
);
}
}
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyCouponServiceImpl.java
View file @
f75ba734
package
com
.
liquidnet
.
service
.
candy
.
service
.
impl
;
package
com
.
liquidnet
.
service
.
candy
.
service
.
impl
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.dto.CandyUserCouponBasicDto
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
import
com.liquidnet.service.candy.mapper.CandyCouponMapper
;
import
com.liquidnet.service.candy.mapper.CandyCouponMapper
;
import
com.liquidnet.service.candy.service.ICandyCouponService
;
import
com.liquidnet.service.candy.service.ICandyCouponService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.service.candy.util.CouponBaseUtil
;
import
com.liquidnet.service.candy.util.ObjectUtil
;
import
com.liquidnet.service.candy.util.RedisDataUtils
;
import
com.liquidnet.service.candy.vo.CandyCouponVo
;
import
com.liquidnet.service.candy.vo.CandyMyCouponListVo
;
import
com.liquidnet.service.candy.vo.CandyUseResultVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
/**
/**
* <p>
* <p>
* 券基础信息 服务实现类
* 券基础信息 服务实现类
...
@@ -17,4 +34,200 @@ import org.springframework.stereotype.Service;
...
@@ -17,4 +34,200 @@ import org.springframework.stereotype.Service;
@Service
@Service
public
class
CandyCouponServiceImpl
extends
ServiceImpl
<
CandyCouponMapper
,
CandyCoupon
>
implements
ICandyCouponService
{
public
class
CandyCouponServiceImpl
extends
ServiceImpl
<
CandyCouponMapper
,
CandyCoupon
>
implements
ICandyCouponService
{
@Autowired
private
RedisDataUtils
redisDataUtils
;
@Override
public
CandyMyCouponListVo
myCoupon
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
CandyMyCouponListVo
vo
=
CandyMyCouponListVo
.
getNew
();
List
<
CandyCouponVo
>
memberCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
List
<
CandyCouponVo
>
myCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getBaseCouponUserVo
(
dtoItem
);
if
(
dtoItem
.
getExclusive
().
equals
(
1
))
{
//会员券
memberCoupon
.
add
(
baseVo
);
}
else
{
//非会员券
myCoupon
.
add
(
baseVo
);
}
}
//排序
memberCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
myCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
vo
.
setMemberCoupon
(
memberCoupon
);
vo
.
setMyCoupon
(
myCoupon
);
return
vo
;
}
@Override
public
CandyMyCouponListVo
preUsePerformanceCoupon
(
BigDecimal
priceTotal
,
String
performanceId
,
String
timeId
,
String
ticketId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
CandyMyCouponListVo
vo
=
CandyMyCouponListVo
.
getNew
();
List
<
CandyCouponVo
>
memberCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
List
<
CandyCouponVo
>
myCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getPerformanceCouponUserVo
(
dtoItem
,
priceTotal
,
performanceId
,
timeId
,
ticketId
);
if
(
dtoItem
.
getExclusive
().
equals
(
1
))
{
//会员券
memberCoupon
.
add
(
baseVo
);
}
else
{
//非会员券
myCoupon
.
add
(
baseVo
);
}
}
//排序
memberCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
myCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
vo
.
setMemberCoupon
(
memberCoupon
);
vo
.
setMyCoupon
(
myCoupon
);
return
vo
;
}
@Override
public
Integer
preCanUsePerformanceCoupon
(
BigDecimal
priceTotal
,
String
performanceId
,
String
timeId
,
String
ticketId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
int
canUse
=
0
;
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getPerformanceCouponUserVo
(
dtoItem
,
priceTotal
,
performanceId
,
timeId
,
ticketId
);
if
(
baseVo
.
getState
().
equals
(
1
))
{
//可用
canUse
=
1
;
break
;
}
else
{
//不可用
continue
;
}
}
return
canUse
;
}
@Override
public
CandyMyCouponListVo
preUseGoodCoupon
(
BigDecimal
priceTotal
,
String
goodId
,
String
produceId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
CandyMyCouponListVo
vo
=
CandyMyCouponListVo
.
getNew
();
List
<
CandyCouponVo
>
memberCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
List
<
CandyCouponVo
>
myCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getGoodCouponUserVo
(
dtoItem
,
priceTotal
,
goodId
,
produceId
);
if
(
dtoItem
.
getExclusive
().
equals
(
1
))
{
//会员券
memberCoupon
.
add
(
baseVo
);
}
else
{
//非会员券
myCoupon
.
add
(
baseVo
);
}
}
//排序
memberCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
myCoupon
.
sort
(
Comparator
.
comparing
(
CandyCouponVo:
:
getState
));
vo
.
setMemberCoupon
(
memberCoupon
);
vo
.
setMyCoupon
(
myCoupon
);
return
vo
;
}
@Override
public
Integer
preCanUseGoodCoupon
(
BigDecimal
priceTotal
,
String
goodId
,
String
produceId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
int
canUse
=
0
;
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getGoodCouponUserVo
(
dtoItem
,
priceTotal
,
goodId
,
produceId
);
if
(
baseVo
.
getState
().
equals
(
1
))
{
//可用
canUse
=
1
;
break
;
}
else
{
//不可用
continue
;
}
}
return
canUse
;
}
@Override
public
List
<
CandyCouponVo
>
myAdvanceCoupon
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
redisDataUtils
.
getCouponByUid
(
uid
);
List
<
CandyCouponVo
>
advanceCoupon
=
ObjectUtil
.
getCandyCouponVoArrayList
();
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
if
(
dtoItem
.
getBusiType
().
equals
(
3
))
{
CandyCouponVo
baseVo
=
CouponBaseUtil
.
getBaseCouponUserVo
(
dtoItem
);
if
(
baseVo
.
getState
().
equals
(
1
))
{
advanceCoupon
.
add
(
baseVo
);
}
else
{
continue
;
}
}
else
{
continue
;
}
}
return
advanceCoupon
;
}
@Override
public
Integer
stateCoupon
(
String
uCouponId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
CandyUserCouponBasicDto
dto
=
CouponBaseUtil
.
getSingleDtoByUCouponId
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
if
(
dto
==
null
)
{
return
null
;
//券不存在
}
return
CouponBaseUtil
.
getCouponState
(
LocalDateTime
.
now
(),
dto
.
getExpireAt
(),
dto
.
getState
());
}
@Override
public
CandyUseResultVo
useCoupon
(
String
uCouponId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
CandyUseResultVo
vo
=
CandyUseResultVo
.
getNew
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
CouponBaseUtil
.
useCoupon
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
if
(
dtoList
==
null
)
{
return
null
;
}
else
{
redisDataUtils
.
setCouponByUid
(
uid
,
dtoList
);
}
CandyUserCouponBasicDto
dto
=
CouponBaseUtil
.
getSingleDtoByUCouponId
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
switch
(
dto
.
getCouType
()){
//券类型[1-代金券|2-满减券|3-兑换券|4-折扣券]
case
1
:
vo
.
setValue
(
dto
.
getValFace
());
break
;
case
2
:
vo
.
setValue
(
dto
.
getValMinus
());
break
;
case
3
:
vo
.
setValue
(
BigDecimal
.
valueOf
(-
1
));
break
;
case
4
:
vo
.
setValue
(
dto
.
getDiscount
());
break
;
default
:
vo
.
setValue
(
BigDecimal
.
valueOf
(
0
));
break
;
}
vo
.
setCouType
(
dto
.
getCouType
());
return
vo
;
}
@Override
public
Boolean
useBackCoupon
(
String
uCouponId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
List
<
CandyUserCouponBasicDto
>
dtoList
=
CouponBaseUtil
.
backCoupon
(
redisDataUtils
.
getCouponByUid
(
uid
),
uCouponId
);
if
(
dtoList
==
null
)
{
return
false
;
}
else
{
redisDataUtils
.
setCouponByUid
(
uid
,
dtoList
);
}
return
true
;
}
@Override
public
Boolean
receiveCoupon
(
String
ccode
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
Boolean
result
=
CouponBaseUtil
.
receiveCoupon
(
uid
,
ccode
);
if
(
result
)
{
}
else
{
return
false
;
}
return
true
;
}
}
}
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