记得上下班打卡 | 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
daab9038
Commit
daab9038
authored
May 05, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
黑白名单暂时提交
parent
763d00c2
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
136 additions
and
28 deletions
+136
-28
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+4
-0
CouponBaseUtil.java
...java/com/liquidnet/service/candy/util/CouponBaseUtil.java
+1
-1
PhoneUnIdDto.java
...om/liquidnet/service/consumer/kylin/dto/PhoneUnIdDto.java
+10
-0
AbstractXlsRedisReceiver.java
...ice/consumer/kylin/receiver/AbstractXlsRedisReceiver.java
+57
-21
GoblinListServiceImpl.java
...ice/goblin/service/impl/manage/GoblinListServiceImpl.java
+36
-5
QueueUtils.java
...in/java/com/liquidnet/service/goblin/util/QueueUtils.java
+22
-1
sqlmap.properties
...-service-goblin-impl/src/main/resources/sqlmap.properties
+6
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
daab9038
...
...
@@ -123,6 +123,10 @@ public class GoblinRedisConst {
public
static
final
String
REDIS_GOBLIN_TEMP_COUPON_MARKET
=
PREFIX
.
concat
(
"temp:coupon:marketId:"
);
//id 列表 $key:$marketId
public
static
final
String
REDIS_GOBLIN_TEMP_COUPON
=
PREFIX
.
concat
(
"temp:coupon:"
);
//详情 $key:$ucouponId
public
static
final
String
REDIS_BLACK
=
PREFIX
.
concat
(
"black:"
);
//黑名单 key:$skuId:$mobile
public
static
final
String
REDIS_WHITE
=
PREFIX
.
concat
(
"white:"
);
//白名单 key:$skuId:$mobile
/* --------------------------------NFT--------------------------------- */
/*public static final String REDIS_GOBLIN_NFT_ORDER_INFO = PREFIX.concat("nftOrder:");// nft订单详情 orderId
public static final String REDIS_GOBLIN_NFT_ORDER_ID_OF_CODE = PREFIX.concat("nftOrder:orderCode:");// nft订单ID获取 orderCode
...
...
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/src/main/java/com/liquidnet/service/candy/util/CouponBaseUtil.java
View file @
daab9038
...
...
@@ -330,7 +330,7 @@ public class CouponBaseUtil {
boolean
isHas
=
false
;
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
if
(
dtoItem
.
getUcouponId
().
equals
(
uCouponId
))
{
if
(
dtoItem
.
getState
().
equals
(
1
))
{
if
(
dtoItem
.
getState
().
equals
(
1
)
&&
dtoItem
.
getDuedAt
().
isBefore
(
LocalDateTime
.
now
())
)
{
dtoItem
.
setState
(
5
);
dtoItem
.
setUsedAt
(
LocalDateTime
.
now
());
dtoItem
.
setUsedFor
(
content
);
...
...
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/dto/PhoneUnIdDto.java
0 → 100644
View file @
daab9038
package
com
.
liquidnet
.
service
.
consumer
.
kylin
.
dto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@Data
@EqualsAndHashCode
public
class
PhoneUnIdDto
{
private
String
mobile
;
}
liquidnet-bus-service/liquidnet-service-consumer-all/liquidnet-service-consumer-kylin/src/main/java/com/liquidnet/service/consumer/kylin/receiver/AbstractXlsRedisReceiver.java
View file @
daab9038
...
...
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSON;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.consumer.kylin.dto.PhoneDto
;
import
com.liquidnet.service.consumer.kylin.dto.PhoneUnIdDto
;
import
com.liquidnet.service.consumer.kylin.service.IBaseDao
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -52,40 +53,75 @@ public abstract class AbstractXlsRedisReceiver implements StreamListener<String,
private
boolean
consumerMessageHandler
(
Map
<
String
,
String
>
message
)
{
LinkedList
<
Object
[]>
objs
=
CollectionUtil
.
linkedListObjectArr
();
String
xlsPath
=
null
,
skuId
=
null
;
String
oXlsPath
=
null
;
Integer
type
=
null
;
boolean
aBoolean
=
false
;
try
{
xlsPath
=
message
.
get
(
"message"
);
String
[]
path
=
message
.
get
(
"message"
).
split
(
","
);
xlsPath
=
path
[
0
];
if
(
path
.
length
>
1
)
{
oXlsPath
=
path
[
1
];
}
String
finalSkuId
=
(
skuId
=
message
.
get
(
"skuId"
));
Integer
finalType
=
(
type
=
Integer
.
parseInt
(
message
.
get
(
"type"
)));
EasyExcel
.
read
(
new
URL
(
xlsPath
).
openStream
(),
PhoneDto
.
class
,
new
PageReadListener
<
PhoneDto
>(
dataList
->
{
for
(
PhoneDto
data
:
dataList
)
{
if
(
data
.
getMobile
()
==
null
)
{
continue
;
if
(
finalType
.
equals
(
1
)
||
finalType
.
equals
(
2
))
{
EasyExcel
.
read
(
new
URL
(
xlsPath
).
openStream
(),
PhoneDto
.
class
,
new
PageReadListener
<
PhoneDto
>(
dataList
->
{
for
(
PhoneDto
data
:
dataList
)
{
if
(
data
.
getMobile
()
==
null
)
{
continue
;
}
String
redisKey
=
GoblinRedisConst
.
REDIS_CAN_BUY
.
concat
(
finalSkuId
+
":"
).
concat
(
data
.
getMobile
());
if
(
finalType
.
equals
(
1
))
{
//添加
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"添加 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
}
redisUtil
.
set
(
redisKey
,
0
);
}
else
{
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"删除 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
}
redisUtil
.
del
(
redisKey
);
}
}
String
redisKey
=
GoblinRedisConst
.
REDIS_CAN_BUY
.
concat
(
finalSkuId
+
":"
).
concat
(
data
.
getMobile
());
if
(
finalType
.
equals
(
1
))
{
//添加
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"添加 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
})).
sheet
().
doRead
();
objs
.
add
(
new
Object
[]{
skuId
,
xlsPath
,
type
,
1
,
LocalDateTime
.
now
()});
aBoolean
=
baseDao
.
batchSql
(
SQL_INSERT_GOODS_BUY_ROSTER_LOG
,
objs
);
}
else
if
(
finalType
.
equals
(
3
)
||
finalType
.
equals
(
4
))
{
//添加
EasyExcel
.
read
(
new
URL
(
xlsPath
).
openStream
(),
PhoneUnIdDto
.
class
,
new
PageReadListener
<
PhoneUnIdDto
>(
dataList
->
{
for
(
PhoneUnIdDto
data
:
dataList
)
{
if
(
data
.
getMobile
()
==
null
)
{
continue
;
}
redisUtil
.
set
(
redisKey
,
0
);
}
else
{
if
(
log
.
isDebugEnabled
())
{
log
.
debug
(
"删除 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
)
);
if
(
finalType
.
equals
(
3
))
{
redisUtil
.
set
(
GoblinRedisConst
.
REDIS_WHITE
.
concat
(
finalSkuId
+
":"
).
concat
(
data
.
getMobile
()),
1
);
}
else
{
redisUtil
.
set
(
GoblinRedisConst
.
REDIS_BLACK
.
concat
(
finalSkuId
+
":"
).
concat
(
data
.
getMobile
()),
1
);
}
redisUtil
.
del
(
redisKey
);
}
})).
sheet
().
doRead
();
if
(
oXlsPath
!=
null
)
{
//删除旧的黑白名单
EasyExcel
.
read
(
new
URL
(
oXlsPath
).
openStream
(),
PhoneUnIdDto
.
class
,
new
PageReadListener
<
PhoneUnIdDto
>(
dataList
->
{
for
(
PhoneUnIdDto
data
:
dataList
)
{
if
(
data
.
getMobile
()
==
null
)
{
continue
;
}
if
(
finalType
.
equals
(
3
))
{
redisUtil
.
del
(
GoblinRedisConst
.
REDIS_WHITE
.
concat
(
finalSkuId
+
":"
).
concat
(
data
.
getMobile
()));
}
else
{
redisUtil
.
del
(
GoblinRedisConst
.
REDIS_BLACK
.
concat
(
finalSkuId
+
":"
).
concat
(
data
.
getMobile
()));
}
}
})).
sheet
().
doRead
();
}
})).
sheet
().
doRead
();
objs
.
add
(
new
Object
[]{
skuId
,
xlsPath
,
type
,
1
,
LocalDateTime
.
now
()});
aBoolean
=
baseDao
.
batchSql
(
SQL_INSERT_GOODS_BUY_ROSTER_LOG
,
objs
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"CONSUMER MSG EX_HANDLE ==> [{}]:{}"
,
this
.
getRedisStreamKey
(),
message
,
e
);
try
{
objs
.
add
(
new
Object
[]{
skuId
,
xlsPath
,
type
,
2
,
LocalDateTime
.
now
()});
aBoolean
=
baseDao
.
batchSql
(
SQL_INSERT_GOODS_BUY_ROSTER_LOG
,
objs
);
if
(
type
.
equals
(
1
)
||
type
.
equals
(
2
))
{
objs
.
add
(
new
Object
[]{
skuId
,
xlsPath
,
type
,
2
,
LocalDateTime
.
now
()});
aBoolean
=
baseDao
.
batchSql
(
SQL_INSERT_GOODS_BUY_ROSTER_LOG
,
objs
);
}
}
catch
(
Exception
ignored
)
{
}
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/manage/GoblinListServiceImpl.java
View file @
daab9038
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
.
manage
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinListDetailsItemVo
;
import
com.liquidnet.service.goblin.dto.vo.GoblinListDetailsVo
;
...
...
@@ -13,9 +16,12 @@ import com.liquidnet.service.goblin.service.manage.IGoblinListService;
import
com.liquidnet.service.goblin.util.GoblinMongoUtils
;
import
com.liquidnet.service.goblin.util.GoblinRedisUtils
;
import
com.liquidnet.service.goblin.util.ObjectUtil
;
import
com.liquidnet.service.goblin.util.QueueUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.LinkedList
;
import
java.util.List
;
/**
...
...
@@ -33,6 +39,8 @@ public class GoblinListServiceImpl implements IGoblinListService {
GoblinRedisUtils
redisUtils
;
@Autowired
GoblinMongoUtils
mongoUtils
;
@Autowired
QueueUtils
queueUtils
;
@Override
public
void
getList
()
{
...
...
@@ -45,7 +53,7 @@ public class GoblinListServiceImpl implements IGoblinListService {
if
(
vo
==
null
||
!
vo
.
getUid
().
equals
(
CurrentUtil
.
getCurrentUid
()))
{
return
ResponseDto
.
failure
(
"信息错误"
);
}
for
(
GoblinListDetailsItemVo
item
:
vo
.
getItemVo
())
{
for
(
GoblinListDetailsItemVo
item
:
vo
.
getItemVo
())
{
GoblinGoodsSkuInfoVo
skuVo
=
redisUtils
.
getGoodsSkuInfoVo
(
item
.
getSkuId
());
item
.
setSkuName
(
skuVo
.
getName
());
if
(
skuVo
.
getUnbox
().
equals
(
"0"
))
{
...
...
@@ -57,12 +65,12 @@ public class GoblinListServiceImpl implements IGoblinListService {
int
stock
=
0
;
for
(
String
skuIdItem
:
skuIdList
)
{
// 盲盒计算所有sku库存总数
if
(
skuIdItem
.
equals
(
item
.
getSkuId
()))
{
// 过滤自己
stock
+=
skuVo
.
getSkuStock
();
stock
+=
skuVo
.
getSkuStock
();
continue
;
}
GoblinGoodsSkuInfoVo
itemVo
=
redisUtils
.
getGoodsSkuInfoVo
(
skuIdItem
);
surplusStock
+=
redisUtils
.
getSkuAllStatusStock
(
itemVo
);
stock
+=
itemVo
.
getSkuStock
();
stock
+=
itemVo
.
getSkuStock
();
}
item
.
setSurplusStock
(
surplusStock
);
item
.
setStock
(
stock
);
...
...
@@ -73,6 +81,13 @@ public class GoblinListServiceImpl implements IGoblinListService {
@Override
public
ResponseDto
<
Boolean
>
create
(
GoblinListCreateParam
param
)
{
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
sqls
.
add
(
SqlMapping
.
get
(
"goblin_list_insert"
));
sqls
.
add
(
SqlMapping
.
get
(
"goblin_list_detail_insert"
));
LinkedList
<
Object
[]>
goblinList
=
CollectionUtil
.
linkedListObjectArr
();
LinkedList
<
Object
[]>
goblinListDetails
=
CollectionUtil
.
linkedListObjectArr
();
LocalDateTime
now
=
LocalDateTime
.
now
();
GoblinListDetailsVo
vo
=
GoblinListDetailsVo
.
getNew
();
List
<
GoblinListDetailsItemVo
>
voItemList
=
ObjectUtil
.
goblinListDetailsItemVoArrayList
();
vo
.
setListId
(
IDGenerator
.
nextTimeId2
());
...
...
@@ -94,11 +109,21 @@ public class GoblinListServiceImpl implements IGoblinListService {
GoblinListDetailsItemVo
itemVo
=
GoblinListDetailsItemVo
.
getNew
();
itemVo
.
setSkuId
(
item
.
getSkuId
());
itemVo
.
setSpuId
(
item
.
getSpuId
());
// 白名单
queueUtils
.
sendMsgByRedisXls
(
param
.
getWhiteUrl
(),
null
,
"3"
,
item
.
getSkuId
());
// 黑名单
queueUtils
.
sendMsgByRedisXls
(
param
.
getBlackUrl
(),
null
,
"4"
,
item
.
getSkuId
());
goblinListDetails
.
add
(
new
Object
[]{
vo
.
getListId
(),
itemVo
.
getSpuId
(),
itemVo
.
getSkuId
(),
now
});
}
vo
.
setItemVo
(
voItemList
);
redisUtils
.
setGoblinListDetailsVo
(
vo
);
mongoUtils
.
insertGoblinListDetailsVo
(
vo
);
//todo sql入库/添加白名单/添加黑名单
goblinList
.
add
(
new
Object
[]{
vo
.
getListId
(),
vo
.
getUid
(),
vo
.
getName
(),
vo
.
getWhiteType
(),
vo
.
getWhiteUrl
(),
vo
.
getAdvanceMin
(),
vo
.
getBlackUrl
(),
now
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
GoblinQueue
.
GOBLIN_USER_ORDER_OPERA
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
goblinList
,
goblinListDetails
));
return
ResponseDto
.
success
();
}
...
...
@@ -123,9 +148,15 @@ public class GoblinListServiceImpl implements IGoblinListService {
vo
.
setWhiteUrl
(
""
);
}
vo
.
setBlackUrl
(
param
.
getBlackUrl
()
==
null
?
""
:
param
.
getBlackUrl
());
for
(
GoblinListDetailsItemVo
item:
vo
.
getItemVo
())
{
// 白名单
queueUtils
.
sendMsgByRedisXls
(
param
.
getWhiteUrl
(),
whiteUrl
,
"3"
,
item
.
getSkuId
());
// 黑名单
queueUtils
.
sendMsgByRedisXls
(
param
.
getBlackUrl
(),
blackUrl
,
"4"
,
item
.
getSkuId
());
}
redisUtils
.
setGoblinListDetailsVo
(
vo
);
mongoUtils
.
changeGoblinListDetailsVo
(
param
.
getListId
(),
vo
);
//todo sql入库
/添加白名单/添加黑名单
//todo sql入库
return
ResponseDto
.
success
();
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/QueueUtils.java
View file @
daab9038
...
...
@@ -44,7 +44,7 @@ public class QueueUtils {
* 发送消息 - REDIS [XLS]
*
* @param xlsPath xls 对应的OSS 全量路径
* @param type [1-添加|2-删除]
* @param type [1-添加|2-删除
|3-白名单|4-白名单
]
* @param skuId skuId
*/
public
void
sendMsgByRedisXls
(
String
xlsPath
,
String
type
,
String
skuId
)
{
...
...
@@ -58,4 +58,25 @@ public class QueueUtils {
stringRedisTemplate
.
opsForStream
().
add
(
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
MQConst
.
GoblinQueue
.
GOBLIN_XLS_OPERA
.
getKey
()));
}
}
/**
* 发送消息 - REDIS [XLS]
*
* @param nXlsPath xls 新地址
* @param oXlsPath xls 旧地址
* @param type [1-添加|2-删除|3-白名单|4-白名单]
* @param skuId skuId
*/
public
void
sendMsgByRedisXls
(
String
nXlsPath
,
String
oXlsPath
,
String
type
,
String
skuId
)
{
if
(
nXlsPath
==
null
||
nXlsPath
.
equals
(
""
)
||
oXlsPath
==
null
||
oXlsPath
.
equals
(
""
)
||
type
==
null
||
type
.
equals
(
""
)
||
skuId
==
null
||
skuId
.
equals
(
""
))
{
}
else
{
HashMap
<
String
,
String
>
map
=
CollectionUtil
.
mapStringString
();
map
.
put
(
MQConst
.
QUEUE_MESSAGE_KEY
,
nXlsPath
.
concat
(
","
).
concat
(
oXlsPath
));
map
.
put
(
"type"
,
type
);
map
.
put
(
"skuId"
,
skuId
);
stringRedisTemplate
.
opsForStream
().
add
(
StreamRecords
.
mapBacked
(
map
).
withStreamKey
(
MQConst
.
GoblinQueue
.
GOBLIN_XLS_OPERA
.
getKey
()));
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/resources/sqlmap.properties
View file @
daab9038
...
...
@@ -144,3 +144,9 @@ goblin_goods_anticipate_user_update=UPDATE goblin_goods_anticipate_user SET stat
goblin_goods_anticipate_user_update_sku
=
UPDATE goblin_goods_anticipate_user SET state = 1 WHERE sku_id = ?
#---- \u4E1A\u52A1\u8D26\u53F7\u8BB0\u5F55
adam_user_busi_acct.add
=
INSERT INTO adam_user_busi_acct (`uid`, busi, uuid, `work`, ppwd, `state`, created_at) VALUES (?,?,?,?,?,?,?)
#---- 黑白名单 ----
goblin_list_insert
=
"INSERT INTO goblin_list (`list_id`,`uid`,`name`,`white_type`,`white_url`,`advance_min``,`black_url`,`created_at`) VALUES (?,?,?,?,?,?,?,?)"
goblin_list_detail_insert
=
"INSERT INTO goblin_list_details (`list_id`,`spu_id`,`sku_id`,`created_at`) VALUES (?,?,?,?)"
goblin_list_update
=
""
\ No newline at end of file
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