记得上下班打卡 | 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
f2e25ed3
Commit
f2e25ed3
authored
Mar 14, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加 店铺使用券列2 接口
增加 订单关闭sql消费
parent
030324e5
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
186 additions
and
17 deletions
+186
-17
CouponCanUse2Param.java
...om/liquidnet/service/goblin/param/CouponCanUse2Param.java
+33
-0
CouponCanUseParam.java
...com/liquidnet/service/goblin/param/CouponCanUseParam.java
+33
-0
GoblinCouponService.java
...liquidnet/service/goblin/service/GoblinCouponService.java
+3
-0
bootstrap-service-consumer-goblin.yml
.../src/main/resources/bootstrap-service-consumer-goblin.yml
+0
-17
ConsumerGoblinOrderCRedisStreamConfig.java
...r/kylin/config/ConsumerGoblinOrderCRedisStreamConfig.java
+66
-0
GoblinCouponController.java
...net/service/goblin/controller/GoblinCouponController.java
+11
-0
GoblinCouponImpl.java
...quidnet/service/goblin/service/impl/GoblinCouponImpl.java
+40
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/CouponCanUse2Param.java
0 → 100644
View file @
f2e25ed3
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.math.BigDecimal
;
@Api
@Data
public
class
CouponCanUse2Param
implements
Serializable
,
Cloneable
{
@ApiModelProperty
(
dataType
=
"String"
,
name
=
"spuId"
,
value
=
"spuId"
,
example
=
"1"
,
required
=
true
)
@NotNull
@NotBlank
private
String
spuId
;
@ApiModelProperty
(
dataType
=
"Number"
,
name
=
"price"
,
value
=
"当前spu总价"
,
example
=
"10"
,
required
=
true
)
@NotNull
@NotBlank
private
BigDecimal
price
;
private
static
final
CouponCanUse2Param
obj
=
new
CouponCanUse2Param
();
public
static
CouponCanUse2Param
getNew
()
{
try
{
return
(
CouponCanUse2Param
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
CouponCanUse2Param
();
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/param/CouponCanUseParam.java
0 → 100644
View file @
f2e25ed3
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
CouponCanUseParam
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
=
true
)
@NotNull
@NotBlank
private
String
uid
;
private
static
final
CouponCanUseParam
obj
=
new
CouponCanUseParam
();
public
static
CouponCanUseParam
getNew
()
{
try
{
return
(
CouponCanUseParam
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
CouponCanUseParam
();
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/GoblinCouponService.java
View file @
f2e25ed3
...
...
@@ -4,6 +4,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import
com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.liquidnet.service.goblin.param.CouponCanUseParam
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
...
...
@@ -28,6 +29,8 @@ public interface GoblinCouponService {
//可用券列表 [价格] [spuId逗号隔开] [uid]
List
<
GoblinUserCouponVo
>
useList
(
BigDecimal
totalPrice
,
String
spuId
,
String
uid
);
List
<
GoblinUserCouponVo
>
useList2
(
CouponCanUseParam
param
);
//使用券 [券id] [消费内容] [价格] [spuId逗号隔开]
GoblinUseResultVo
useCoupon
(
String
ucouponId
,
String
content
,
BigDecimal
totalPrice
,
String
spuId
,
String
uid
);
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-goblin/src/main/resources/bootstrap-service-consumer-goblin.yml
deleted
100644 → 0
View file @
030324e5
#eurekaServer配置
eureka
:
client
:
register-with-eureka
:
true
fetch-registry
:
true
serviceUrl
:
defaultZone
:
http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
#configServer配置
spring
:
cloud
:
config
:
# uri: http://39.107.71.112:7002/support-config
profile
:
${liquidnet.cloudConfig.profile}
name
:
${spring.application.name}
#默认为spring.application.name
discovery
:
enabled
:
true
service-id
:
liquidnet-support-config
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/config/ConsumerGoblinOrderCRedisStreamConfig.java
0 → 100644
View file @
f2e25ed3
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
config
;
import
com.liquidnet.common.cache.redis.config.RedisStreamConfig
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.consumer.kylin.receiver.ConsumerGoblinOrderCloseRdsReceiver
;
import
lombok.var
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.connection.stream.Consumer
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.ReadOffset
;
import
org.springframework.data.redis.connection.stream.StreamOffset
;
import
org.springframework.data.redis.stream.StreamMessageListenerContainer
;
import
org.springframework.data.redis.stream.Subscription
;
@Configuration
public
class
ConsumerGoblinOrderCRedisStreamConfig
extends
RedisStreamConfig
{
@Autowired
ConsumerGoblinOrderCloseRdsReceiver
consumerGoblinOrderCloseRdsReceiver
;
/**
* 缺票登记
*
* @param listenerContainer
* @param t
* @return
*/
private
Subscription
receiveGoblinOrderCOrder
(
StreamMessageListenerContainer
<
String
,
MapRecord
<
String
,
String
,
String
>>
listenerContainer
,
int
t
)
{
return
listenerContainer
.
receiveAutoAck
(
Consumer
.
from
(
MQConst
.
GoblinQueue
.
GOBLIN_ORDER_CLOSE
.
getGroup
(),
getConsumerName
(
MQConst
.
GoblinQueue
.
GOBLIN_ORDER_CLOSE
.
name
()
+
t
)),
StreamOffset
.
create
(
MQConst
.
GoblinQueue
.
GOBLIN_ORDER_CLOSE
.
getKey
(),
ReadOffset
.
lastConsumed
()),
consumerGoblinOrderCloseRdsReceiver
);
}
/* —————————————————————————— | —————————————————————————— | —————————————————————————— */
/* -------------------------------------------------------- | 缺票登记 */
@Bean
public
Subscription
subscriptionGoblinOrderC0
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveGoblinOrderCOrder
(
listenerContainer
,
0
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionGoblinOrderC1
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveGoblinOrderCOrder
(
listenerContainer
,
1
);
listenerContainer
.
start
();
return
subscription
;
}
@Bean
public
Subscription
subscriptionGoblinOrderC2
(
RedisConnectionFactory
factory
)
{
var
listenerContainer
=
this
.
buildStreamMessageListenerContainer
(
factory
);
var
subscription
=
receiveGoblinOrderCOrder
(
listenerContainer
,
2
);
listenerContainer
.
start
();
return
subscription
;
}
/* -------------------------------------------------------- | */
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinCouponController.java
View file @
f2e25ed3
...
...
@@ -7,6 +7,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import
com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.liquidnet.service.goblin.param.CouponCanUseParam
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.ObjectUtil
;
...
...
@@ -203,6 +204,16 @@ public class GoblinCouponController {
return
ResponseDto
.
success
(
goblinCouponService
.
useList
(
totalPrice
,
spuId
,
uid
));
}
@PostMapping
(
"useList2"
)
@ApiOperation
(
"可用券列表2"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
List
<
GoblinUserCouponVo
>>
useList2
(
@RequestBody
CouponCanUseParam
param
)
{
if
(
param
.
getUid
()
==
null
)
{
param
.
setUid
(
CurrentUtil
.
getCurrentUid
());
}
return
ResponseDto
.
success
(
goblinCouponService
.
useList2
(
param
));
}
@PostMapping
(
"useCoupon"
)
@ApiOperation
(
"用券"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinCouponImpl.java
View file @
f2e25ed3
...
...
@@ -7,6 +7,8 @@ import com.liquidnet.service.base.constant.MQConst;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.param.BackCouponParam
;
import
com.liquidnet.service.goblin.param.CouponCanUse2Param
;
import
com.liquidnet.service.goblin.param.CouponCanUseParam
;
import
com.liquidnet.service.goblin.service.GoblinCouponService
;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
...
...
@@ -223,6 +225,44 @@ public class GoblinCouponImpl implements GoblinCouponService {
return
returnList
;
}
@Override
public
List
<
GoblinUserCouponVo
>
useList2
(
CouponCanUseParam
param
)
{
List
<
GoblinUserCouponVo
>
voList
=
goblinRedisUtils
.
getUserCouponVos
(
param
.
getUid
());
List
<
GoblinUserCouponVo
>
returnList
=
ObjectUtil
.
getGoblinUserCouponVo
();
BigDecimal
totalPrice
=
BigDecimal
.
ZERO
;
for
(
CouponCanUse2Param
param2
:
param
.
getParam
())
{
totalPrice
=
totalPrice
.
add
(
param2
.
getPrice
());
}
LocalDateTime
now
=
LocalDateTime
.
now
();
for
(
GoblinUserCouponVo
vo
:
voList
)
{
//判断券状态 和 触发金额
if
(
vo
.
getDuedAt
().
isAfter
(
now
)
&&
vo
.
getState
().
equals
(
1
))
{
//&& vo.getTriggers().compareTo(totalPrice) <= 0
if
(
vo
.
getUseScope
().
equals
(
"0"
)
&&
vo
.
getTriggers
().
compareTo
(
totalPrice
)
<=
0
)
{
returnList
.
add
(
vo
);
}
else
{
List
<
String
>
spuIds
=
goblinRedisUtils
.
getStoreCouponSpuIds
(
vo
.
getStoreCouponId
());
if
(
spuIds
==
null
)
{
break
;
}
//判断是否在可用商品内
BigDecimal
contentPrice
=
BigDecimal
.
ZERO
;
for
(
String
item
:
spuIds
)
{
for
(
CouponCanUse2Param
param2
:
param
.
getParam
())
{
if
(
param2
.
getSpuId
().
equals
(
item
))
{
contentPrice
=
contentPrice
.
add
(
param2
.
getPrice
());
}
}
}
if
(
vo
.
getTriggers
().
compareTo
(
contentPrice
)
<=
0
){
returnList
.
add
(
vo
);
}
}
}
}
returnList
.
sort
(
Comparator
.
comparing
(
GoblinUserCouponVo:
:
getState
));
return
returnList
;
}
@Override
public
GoblinUseResultVo
useCoupon
(
String
ucouponId
,
String
content
,
BigDecimal
totalPrice
,
String
spuId
,
String
uid
)
{
List
<
GoblinUserCouponVo
>
voList
=
goblinRedisUtils
.
getUserCouponVos
(
uid
);
...
...
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