记得上下班打卡 | 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
01e5e047
Commit
01e5e047
authored
Feb 17, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
正在下单 增加 指定用户可买逻辑
parent
2c2fc6a3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
33 additions
and
8 deletions
+33
-8
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+1
-1
AbstractXlsRedisReceiver.java
...ce/consumer/goblin/receiver/AbstractXlsRedisReceiver.java
+1
-6
GoblinOrderServiceImpl.java
...t/service/goblin/service/impl/GoblinOrderServiceImpl.java
+5
-0
GoblinOrderUtils.java
...a/com/liquidnet/service/goblin/util/GoblinOrderUtils.java
+20
-1
GoblinRedisUtils.java
...a/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
+6
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
01e5e047
...
@@ -111,7 +111,7 @@ public class GoblinRedisConst {
...
@@ -111,7 +111,7 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_GOBLIN_ORDER_MASTER
=
PREFIX
.
concat
(
"order:masterCode:"
);
//用户订单id列表 key:$masterCode
public
static
final
String
REDIS_GOBLIN_ORDER_MASTER
=
PREFIX
.
concat
(
"order:masterCode:"
);
//用户订单id列表 key:$masterCode
public
static
final
String
REDIS_GOBLIN_ORDER_OFFCODE
=
PREFIX
.
concat
(
"order:offCode:"
);
//用户订单id列表 key:$wtrieOffCode
public
static
final
String
REDIS_GOBLIN_ORDER_OFFCODE
=
PREFIX
.
concat
(
"order:offCode:"
);
//用户订单id列表 key:$wtrieOffCode
public
static
final
String
REDIS_GOBLIN_BACK_ORDER_ID
=
PREFIX
.
concat
(
"order:backIds:"
);
//用户订单下的退款订单id key:$orderId
public
static
final
String
REDIS_GOBLIN_BACK_ORDER_ID
=
PREFIX
.
concat
(
"order:backIds:"
);
//用户订单下的退款订单id key:$orderId
public
static
final
String
REDIS_
UN_BUY
=
PREFIX
.
concat
(
"unBuy:"
);
//用户订单下的退款订单id key:$skuId:$uid
public
static
final
String
REDIS_
CAN_BUY
=
PREFIX
.
concat
(
"canBuy:"
);
//用户订单下的退款订单id key:$skuId:$mobile
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
/**
/**
* SKU剩余库存
* SKU剩余库存
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-goblin/src/main/java/com/liquidnet/service/consumer/goblin/receiver/AbstractXlsRedisReceiver.java
View file @
01e5e047
...
@@ -4,22 +4,17 @@ import com.alibaba.excel.EasyExcel;
...
@@ -4,22 +4,17 @@ import com.alibaba.excel.EasyExcel;
import
com.alibaba.excel.read.listener.PageReadListener
;
import
com.alibaba.excel.read.listener.PageReadListener
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.consumer.goblin.dto.PhoneDto
;
import
com.liquidnet.service.consumer.goblin.dto.PhoneDto
;
import
com.liquidnet.service.consumer.goblin.service.IBaseDao
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.MapRecord
;
import
org.springframework.data.redis.connection.stream.StreamRecords
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.stream.StreamListener
;
import
org.springframework.data.redis.stream.StreamListener
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.HashMap
;
@Slf4j
@Slf4j
public
abstract
class
AbstractXlsRedisReceiver
implements
StreamListener
<
String
,
MapRecord
<
String
,
String
,
String
>>
{
public
abstract
class
AbstractXlsRedisReceiver
implements
StreamListener
<
String
,
MapRecord
<
String
,
String
,
String
>>
{
...
@@ -59,7 +54,7 @@ public abstract class AbstractXlsRedisReceiver implements StreamListener<String,
...
@@ -59,7 +54,7 @@ public abstract class AbstractXlsRedisReceiver implements StreamListener<String,
if
(
data
.
getMobile
()==
null
){
if
(
data
.
getMobile
()==
null
){
continue
;
continue
;
}
}
String
redisKey
=
GoblinRedisConst
.
REDIS_
U
N_BUY
.
concat
(
skuId
+
":"
).
concat
(
data
.
getMobile
());
String
redisKey
=
GoblinRedisConst
.
REDIS_
CA
N_BUY
.
concat
(
skuId
+
":"
).
concat
(
data
.
getMobile
());
if
(
type
.
equals
(
1
))
{
//添加
if
(
type
.
equals
(
1
))
{
//添加
log
.
debug
(
"添加 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
log
.
debug
(
"添加 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
redisUtil
.
set
(
redisKey
,
0
);
redisUtil
.
set
(
redisKey
,
0
);
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinOrderServiceImpl.java
View file @
01e5e047
...
@@ -127,6 +127,11 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
...
@@ -127,6 +127,11 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if
(!
res1
.
equals
(
""
))
{
if
(!
res1
.
equals
(
""
))
{
throw
new
Exception
(
"已超出限购数量"
);
throw
new
Exception
(
"已超出限购数量"
);
}
}
//权限限购
Boolean
res2
=
orderUtils
.
judgeOrderRose
(
isMember
,
skuId
,
StringUtils
.
defaultString
(((
String
)
CurrentUtil
.
getTokenClaims
().
get
(
"mobile"
)),
""
),
Integer
.
parseInt
(
skuVo
.
getBuyFactor
()));
if
(!
res2
)
{
throw
new
Exception
(
"无权购买"
);
}
}
}
int
surplusGeneral
=
redisUtils
.
decrSkuStock
(
pre
,
skuId
,
number
);
int
surplusGeneral
=
redisUtils
.
decrSkuStock
(
pre
,
skuId
,
number
);
skuAndPreListAndNumber
.
add
(
skuId
+
","
+
pre
+
","
+
number
);
skuAndPreListAndNumber
.
add
(
skuId
+
","
+
pre
+
","
+
number
);
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinOrderUtils.java
View file @
01e5e047
...
@@ -10,6 +10,7 @@ import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo;
...
@@ -10,6 +10,7 @@ import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.param.BackCouponParam
;
import
com.liquidnet.service.candy.param.BackCouponParam
;
import
com.liquidnet.service.candy.vo.CandyUseResultVo
;
import
com.liquidnet.service.candy.vo.CandyUseResultVo
;
import
com.sun.org.apache.xpath.internal.operations.Bool
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -56,6 +57,7 @@ public class GoblinOrderUtils {
...
@@ -56,6 +57,7 @@ public class GoblinOrderUtils {
}
}
}
}
//判断 数量限购
public
String
judgeOrderLimit
(
String
uid
,
String
skuId
,
int
number
,
int
limitCount
)
{
public
String
judgeOrderLimit
(
String
uid
,
String
skuId
,
int
number
,
int
limitCount
)
{
int
buyCount
=
redisUtils
.
getSkuCountByUid
(
uid
,
skuId
);
int
buyCount
=
redisUtils
.
getSkuCountByUid
(
uid
,
skuId
);
if
(
buyCount
+
number
>
limitCount
)
{
if
(
buyCount
+
number
>
limitCount
)
{
...
@@ -66,6 +68,23 @@ public class GoblinOrderUtils {
...
@@ -66,6 +68,23 @@ public class GoblinOrderUtils {
}
}
}
}
//判断指定人群购买
public
Boolean
judgeOrderRose
(
Boolean
isMember
,
String
skuId
,
String
mobile
,
int
buyFactor
)
{
Boolean
result
=
false
;
switch
(
buyFactor
)
{
case
0
:
result
=
true
;
break
;
case
1
:
result
=
isMember
;
break
;
case
2
:
result
=
redisUtils
.
getSkuCanBuyByUid
(
mobile
,
skuId
);
break
;
}
return
result
;
}
/**
/**
* 使用优惠券
* 使用优惠券
*
*
...
@@ -88,7 +107,7 @@ public class GoblinOrderUtils {
...
@@ -88,7 +107,7 @@ public class GoblinOrderUtils {
MultiValueMap
<
String
,
String
>
header
=
CollectionUtil
.
linkedMultiValueMapStringString
();
MultiValueMap
<
String
,
String
>
header
=
CollectionUtil
.
linkedMultiValueMapStringString
();
header
.
add
(
"Authorization"
,
"Bearer "
+
CurrentUtil
.
getToken
());
header
.
add
(
"Authorization"
,
"Bearer "
+
CurrentUtil
.
getToken
());
header
.
add
(
"Accept"
,
"application/json;charset=UTF-8"
);
header
.
add
(
"Accept"
,
"application/json;charset=UTF-8"
);
log
.
debug
(
"url="
+
candyUrl
+
"/candy-coupon/use"
);
log
.
debug
(
"url="
+
candyUrl
+
"/candy-coupon/use"
);
String
returnData
=
HttpUtil
.
post
(
candyUrl
+
"/candy-coupon/use"
,
params
,
header
);
String
returnData
=
HttpUtil
.
post
(
candyUrl
+
"/candy-coupon/use"
,
params
,
header
);
ResponseDto
<
CandyUseResultVo
>
innerReturnVo
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
CandyUseResultVo
>>()
{
ResponseDto
<
CandyUseResultVo
>
innerReturnVo
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
CandyUseResultVo
>>()
{
});
});
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinRedisUtils.java
View file @
01e5e047
...
@@ -610,6 +610,12 @@ public class GoblinRedisUtils {
...
@@ -610,6 +610,12 @@ public class GoblinRedisUtils {
}
}
}
}
//获取 用户是否可购买
public
boolean
getSkuCanBuyByUid
(
String
mobile
,
String
skuId
)
{
String
redisKey
=
GoblinRedisConst
.
REDIS_CAN_BUY
.
concat
(
skuId
+
":"
).
concat
(
mobile
);
return
redisUtil
.
hasKey
(
redisKey
);
}
// 增加 用户sku购买个数
// 增加 用户sku购买个数
public
int
incrSkuCountByUid
(
String
uid
,
String
skuId
,
int
number
)
{
public
int
incrSkuCountByUid
(
String
uid
,
String
skuId
,
int
number
)
{
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_BUY_COUNT
.
concat
(
uid
+
":skuId:"
+
skuId
);
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_BUY_COUNT
.
concat
(
uid
+
":skuId:"
+
skuId
);
...
...
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