记得上下班打卡 | 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
Expand all
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
This diff is collapsed.
Click to expand it.
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
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.entity.CandyCoupon
;
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>
...
...
@@ -13,4 +22,23 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
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
;
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.mapper.CandyCouponMapper
;
import
com.liquidnet.service.candy.service.ICandyCouponService
;
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
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
* 券基础信息 服务实现类
...
...
@@ -17,4 +34,200 @@ import org.springframework.stereotype.Service;
@Service
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