记得上下班打卡 | 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
abb66d3a
Commit
abb66d3a
authored
Mar 18, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
goblin 帮助前端用店铺券
parent
0675b168
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
215 additions
and
29 deletions
+215
-29
CouponHelpUseParam.java
...om/liquidnet/service/goblin/param/CouponHelpUseParam.java
+35
-0
CouponHelpUseVo.java
...a/com/liquidnet/service/goblin/param/CouponHelpUseVo.java
+34
-0
GoblinCouponService.java
...liquidnet/service/goblin/service/GoblinCouponService.java
+8
-3
GoblinCouponController.java
...net/service/goblin/controller/GoblinCouponController.java
+29
-21
GoblinCouponImpl.java
...quidnet/service/goblin/service/impl/GoblinCouponImpl.java
+109
-4
GoblinOrderServiceImpl.java
...et/service/order/service/impl/GoblinOrderServiceImpl.java
+0
-1
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/CouponHelpUseParam.java
0 → 100644
View file @
abb66d3a
package
com
.
liquidnet
.
service
.
goblin
.
param
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
@Api
@Data
public
class
CouponHelpUseParam
implements
Serializable
,
Cloneable
{
@ApiModelProperty
(
name
=
"param"
,
value
=
"对象"
,
required
=
true
)
@NotNull
@NotBlank
private
List
<
CouponCanUse2Param
>
param
;
@ApiModelProperty
(
dataType
=
"String"
,
name
=
"uid"
,
value
=
"用户id"
,
example
=
"10"
,
required
=
false
)
private
String
uid
;
@ApiModelProperty
(
dataType
=
"String"
,
name
=
"ucouponId"
,
value
=
"券id"
,
required
=
true
)
private
String
ucouponId
;
private
static
final
CouponHelpUseParam
obj
=
new
CouponHelpUseParam
();
public
static
CouponHelpUseParam
getNew
()
{
try
{
return
(
CouponHelpUseParam
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
CouponHelpUseParam
();
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/CouponHelpUseVo.java
0 → 100644
View file @
abb66d3a
package
com
.
liquidnet
.
service
.
goblin
.
param
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.util.List
;
@Api
@Data
public
class
CouponHelpUseVo
implements
Serializable
,
Cloneable
{
@ApiModelProperty
(
name
=
"param"
,
value
=
"对象"
)
private
List
<
CouponCanUse2Param
>
param
;
@ApiModelProperty
(
name
=
"couponVo"
,
value
=
"券vo"
)
private
GoblinUserCouponVo
couponVo
;
@ApiModelProperty
(
dataType
=
"String"
,
name
=
"ucouponId"
,
value
=
"券id"
,
required
=
true
)
private
String
ucouponId
;
private
static
final
CouponHelpUseVo
obj
=
new
CouponHelpUseVo
();
public
static
CouponHelpUseVo
getNew
()
{
try
{
return
(
CouponHelpUseVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
CouponHelpUseVo
();
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/GoblinCouponService.java
View file @
abb66d3a
...
@@ -3,9 +3,7 @@ package com.liquidnet.service.goblin.service;
...
@@ -3,9 +3,7 @@ package com.liquidnet.service.goblin.service;
import
com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.liquidnet.service.goblin.param.*
;
import
com.liquidnet.service.goblin.param.CouponCanUseAllParam
;
import
com.liquidnet.service.goblin.param.CouponCanUseParam
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -40,4 +38,11 @@ public interface GoblinCouponService {
...
@@ -40,4 +38,11 @@ public interface GoblinCouponService {
//回退券 [list<Data>] [券id , 用户id]
//回退券 [list<Data>] [券id , 用户id]
Boolean
backCoupon
(
List
<
BackCouponParam
>
params
);
Boolean
backCoupon
(
List
<
BackCouponParam
>
params
);
/**
* 帮前端写选择券逻辑
* @param params
* @return
*/
CouponHelpUseVo
helpUseCoupon
(
CouponHelpUseParam
params
);
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinCouponController.java
View file @
abb66d3a
...
@@ -6,9 +6,7 @@ import com.liquidnet.service.base.ResponseDto;
...
@@ -6,9 +6,7 @@ import com.liquidnet.service.base.ResponseDto;
import
com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.liquidnet.service.goblin.param.*
;
import
com.liquidnet.service.goblin.param.CouponCanUseAllParam
;
import
com.liquidnet.service.goblin.param.CouponCanUseParam
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.ObjectUtil
;
import
com.liquidnet.service.goblin.util.ObjectUtil
;
...
@@ -183,7 +181,7 @@ public class GoblinCouponController {
...
@@ -183,7 +181,7 @@ public class GoblinCouponController {
if
(
uid
==
null
)
{
if
(
uid
==
null
)
{
uid
=
CurrentUtil
.
getCurrentUid
();
uid
=
CurrentUtil
.
getCurrentUid
();
}
}
return
ResponseDto
.
success
(
goblinCouponService
.
canUse
(
totalPrice
,
spuId
,
uid
,
storeId
));
return
ResponseDto
.
success
(
goblinCouponService
.
canUse
(
totalPrice
,
spuId
,
uid
,
storeId
));
}
}
@PostMapping
(
"useList"
)
@PostMapping
(
"useList"
)
...
@@ -223,23 +221,23 @@ public class GoblinCouponController {
...
@@ -223,23 +221,23 @@ public class GoblinCouponController {
return
ResponseDto
.
success
(
goblinCouponService
.
useList3
(
param
));
return
ResponseDto
.
success
(
goblinCouponService
.
useList3
(
param
));
}
}
@PostMapping
(
"useCoupon"
)
//
@PostMapping("useCoupon")
@ApiOperation
(
"用券"
)
//
@ApiOperation("用券")
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
//
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams
({
//
@ApiImplicitParams({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"ucouponId"
,
value
=
"券id"
),
//
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "ucouponId", value = "券id"),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"content"
,
value
=
"消费内容"
),
//
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "content", value = "消费内容"),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Number"
,
name
=
"totalPrice"
,
value
=
"总价格"
),
//
@ApiImplicitParam(type = "form", required = true, dataType = "Number", name = "totalPrice", value = "总价格"),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"spuId"
,
value
=
"spuId逗号隔开"
),
//
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "spuId", value = "spuId逗号隔开"),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"uid"
),
//
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "uid"),
})
//
})
public
ResponseDto
<
GoblinUseResultVo
>
checkOrderResult
(
@RequestParam
(
"ucouponId"
)
@Valid
String
ucouponId
,
//
public ResponseDto<GoblinUseResultVo> checkOrderResult(@RequestParam("ucouponId") @Valid String ucouponId,
@RequestParam
(
"content"
)
@Valid
String
content
,
//
@RequestParam("content") @Valid String content,
@RequestParam
(
"totalPrice"
)
@Valid
BigDecimal
totalPrice
,
//
@RequestParam("totalPrice") @Valid BigDecimal totalPrice,
@RequestParam
(
"spuId"
)
@Valid
String
spuId
,
//
@RequestParam("spuId") @Valid String spuId,
@RequestParam
(
"uid"
)
@Valid
String
uid
)
{
//
@RequestParam("uid") @Valid String uid) {
return
ResponseDto
.
success
(
goblinCouponService
.
useCoupon
(
ucouponId
,
content
,
totalPrice
,
spuId
,
uid
));
//
return ResponseDto.success(goblinCouponService.useCoupon(ucouponId, content, totalPrice, spuId, uid));
}
//
}
@PostMapping
(
"backCoupon"
)
@PostMapping
(
"backCoupon"
)
@ApiOperation
(
"退券"
)
@ApiOperation
(
"退券"
)
...
@@ -250,4 +248,14 @@ public class GoblinCouponController {
...
@@ -250,4 +248,14 @@ public class GoblinCouponController {
}
}
return
ResponseDto
.
success
(
goblinCouponService
.
backCoupon
(
backCouponParam
));
return
ResponseDto
.
success
(
goblinCouponService
.
backCoupon
(
backCouponParam
));
}
}
@PostMapping
(
"helpUseCoupon"
)
@ApiOperation
(
"帮助用券"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
CouponHelpUseVo
>
helpUseCoupon
(
@RequestBody
CouponHelpUseParam
param
)
{
if
(
param
.
getUid
()
==
null
||
param
.
getUid
().
equals
(
""
))
{
param
.
setUid
(
CurrentUtil
.
getCurrentUid
());
}
return
ResponseDto
.
success
(
goblinCouponService
.
helpUseCoupon
(
param
));
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinCouponImpl.java
View file @
abb66d3a
...
@@ -6,10 +6,8 @@ import com.liquidnet.service.base.SqlMapping;
...
@@ -6,10 +6,8 @@ import com.liquidnet.service.base.SqlMapping;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.liquidnet.service.goblin.entity.GoblinOrderSku
;
import
com.liquidnet.service.goblin.param.CouponCanUse2Param
;
import
com.liquidnet.service.goblin.param.*
;
import
com.liquidnet.service.goblin.param.CouponCanUseAllParam
;
import
com.liquidnet.service.goblin.param.CouponCanUseParam
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
...
@@ -409,4 +407,111 @@ public class GoblinCouponImpl implements GoblinCouponService {
...
@@ -409,4 +407,111 @@ public class GoblinCouponImpl implements GoblinCouponService {
return
false
;
return
false
;
}
}
}
}
@Override
public
CouponHelpUseVo
helpUseCoupon
(
CouponHelpUseParam
params
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
CouponHelpUseVo
vo
=
CouponHelpUseVo
.
getNew
();
List
<
GoblinUserCouponVo
>
voList
=
goblinRedisUtils
.
getUserCouponVos
(
params
.
getUid
());
GoblinUseResultVo
returnVo
=
GoblinUseResultVo
.
getNew
();
String
ucouponId
=
params
.
getUcouponId
();
for
(
GoblinUserCouponVo
itemVo
:
voList
)
{
if
(
itemVo
.
getUcouponId
().
equals
(
ucouponId
))
{
if
(
itemVo
.
getUcouponId
().
equals
(
ucouponId
)
&&
itemVo
.
getDuedAt
().
isAfter
(
now
)
&&
itemVo
.
getState
().
equals
(
1
))
{
BigDecimal
contentPrice
=
BigDecimal
.
ZERO
;
if
(
itemVo
.
getUseScope
().
equals
(
"0"
))
{
//全部
for
(
CouponCanUse2Param
item
:
params
.
getParam
())
{
contentPrice
=
contentPrice
.
add
(
item
.
getPrice
());
}
returnVo
=
mathCouponPrice
(
itemVo
,
contentPrice
);
}
else
{
//部分
List
<
String
>
spuIds
=
goblinRedisUtils
.
getStoreCouponSpuIds
(
itemVo
.
getStoreCouponId
());
if
(
spuIds
==
null
||
spuIds
.
size
()
==
0
)
{
break
;
}
//判断是否在可用商品内
for
(
String
spuItem
:
spuIds
)
{
for
(
CouponCanUse2Param
item
:
params
.
getParam
())
{
String
spuId
=
item
.
getSpuId
();
String
pre
=
GoblinStatusConst
.
MarketPreStatus
.
getPre
(
spuId
);
if
(
pre
!=
null
)
{
spuId
=
spuId
.
split
(
pre
)[
0
];
}
if
(
spuId
.
equals
(
spuItem
))
{
contentPrice
=
contentPrice
.
add
(
item
.
getPrice
());
}
}
}
returnVo
=
mathCouponPrice
(
itemVo
,
contentPrice
);
returnVo
.
setSpuIds
(
spuIds
);
}
List
<
String
>
spuIdList
=
returnVo
.
getSpuIds
();
BigDecimal
voucherPrice
=
returnVo
.
getValue
();
if
(
spuIdList
.
size
()
>
0
)
{
for
(
String
spuId
:
spuIdList
)
{
for
(
CouponCanUse2Param
paramItem
:
params
.
getParam
())
{
if
(
paramItem
.
getSpuId
().
contains
(
spuId
))
{
if
(
voucherPrice
.
compareTo
(
BigDecimal
.
ZERO
)
>=
0
)
{
voucherPrice
=
voucherPrice
.
subtract
(
paramItem
.
getPrice
());
if
(
voucherPrice
.
compareTo
(
BigDecimal
.
ZERO
)
>=
0
)
{
paramItem
.
setPrice
(
paramItem
.
getPrice
());
}
else
{
paramItem
.
setPrice
(
voucherPrice
.
add
(
paramItem
.
getPrice
()));
}
}
}
}
}
}
else
{
for
(
CouponCanUse2Param
paramItem
:
params
.
getParam
())
{
if
(
voucherPrice
.
compareTo
(
BigDecimal
.
ZERO
)
>=
0
)
{
voucherPrice
=
voucherPrice
.
subtract
(
paramItem
.
getPrice
());
if
(
voucherPrice
.
compareTo
(
BigDecimal
.
ZERO
)
>=
0
)
{
paramItem
.
setPrice
(
paramItem
.
getPrice
());
}
else
{
paramItem
.
setPrice
(
voucherPrice
.
add
(
paramItem
.
getPrice
()));
}
}
}
}
vo
.
setParam
(
params
.
getParam
());
vo
.
setCouponVo
(
itemVo
);
break
;
}
}
}
vo
.
setUcouponId
(
ucouponId
);
return
vo
;
}
//用券计算金额 返回优惠金额和类型
private
GoblinUseResultVo
mathCouponPrice
(
GoblinUserCouponVo
vo
,
BigDecimal
contentPrice
)
{
GoblinUseResultVo
returnVo
=
GoblinUseResultVo
.
getNew
();
if
(
vo
.
getTriggers
().
compareTo
(
contentPrice
)
<=
0
)
{
if
(
vo
.
getType
().
equals
(
"1"
))
{
//代金券
if
(
vo
.
getValFace
().
compareTo
(
contentPrice
)
>
0
)
{
returnVo
.
setValue
(
contentPrice
);
}
else
{
returnVo
.
setValue
(
vo
.
getValFace
());
}
returnVo
.
setCouType
(
vo
.
getType
());
}
else
if
(
vo
.
getType
().
equals
(
"2"
))
{
//折扣
BigDecimal
tempPrice
=
contentPrice
.
multiply
(
vo
.
getDiscount
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
);
if
(
tempPrice
.
compareTo
(
vo
.
getDeduction
())
>
0
)
{
tempPrice
=
vo
.
getDeduction
();
}
returnVo
.
setValue
(
contentPrice
.
subtract
(
tempPrice
));
returnVo
.
setCouType
(
vo
.
getType
());
}
else
if
(
vo
.
getType
().
equals
(
"3"
))
{
//满减
if
(
vo
.
getValMinus
().
compareTo
(
contentPrice
)
>
0
)
{
returnVo
.
setValue
(
contentPrice
);
}
else
{
returnVo
.
setValue
(
vo
.
getValMinus
());
}
returnVo
.
setCouType
(
vo
.
getType
());
}
}
return
returnVo
;
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinOrderServiceImpl.java
View file @
abb66d3a
...
@@ -198,7 +198,6 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
...
@@ -198,7 +198,6 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
String
source
=
headerCliSource
==
null
?
""
:
headerCliSource
;
String
source
=
headerCliSource
==
null
?
""
:
headerCliSource
;
String
version
=
headerCliVersion
==
null
?
""
:
headerCliVersion
;
String
version
=
headerCliVersion
==
null
?
""
:
headerCliVersion
;
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
now
=
LocalDateTime
.
now
();
log
.
debug
(
"当前系统时间="
+
now
);
String
skuName
=
""
;
String
skuName
=
""
;
BigDecimal
price
;
//sku应付价格
BigDecimal
price
;
//sku应付价格
BigDecimal
priceBase
;
//sku原价
BigDecimal
priceBase
;
//sku原价
...
...
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