记得上下班打卡 | 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
c15885c1
Commit
c15885c1
authored
Jun 06, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新建controller
parent
51f293eb
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
317 additions
and
0 deletions
+317
-0
ICandyConsumerService.java
...iquidnet/service/candy/service/ICandyConsumerService.java
+19
-0
PhoneDto.java
.../main/java/com/liquidnet/service/goblin/dto/PhoneDto.java
+11
-0
IGoblinConsumerService.java
...service/goblin/service/manage/IGoblinConsumerService.java
+15
-0
CandyConsumerController.java
...net/service/candy/controller/CandyConsumerController.java
+48
-0
CandyConsumerServiceImpl.java
.../service/candy/service/impl/CandyConsumerServiceImpl.java
+80
-0
GoblinConsumerController.java
...ice/goblin/controller/Inner/GoblinConsumerController.java
+51
-0
GoblinConsumerServiceImpl.java
.../goblin/service/impl/inner/GoblinConsumerServiceImpl.java
+93
-0
No files found.
liquidnet-bus-api/liquidnet-service-candy-api/src/main/java/com/liquidnet/service/candy/service/ICandyConsumerService.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
candy
.
service
;
import
com.liquidnet.service.base.ResponseDto
;
import
java.util.ArrayList
;
/**
* <p>
* 券消费 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public
interface
ICandyConsumerService
{
ResponseDto
<
Boolean
>
couponOrderBackRedis
(
String
uid
,
ArrayList
<
String
>
uCouponIdList
);
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/dto/PhoneDto.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
goblin
.
dto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@Data
@EqualsAndHashCode
public
class
PhoneDto
{
private
String
uid
;
private
String
mobile
;
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/manage/IGoblinConsumerService.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
goblin
.
service
.
manage
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.dto.vo.ArDataVo
;
import
com.liquidnet.service.goblin.dto.vo.TempCouponVo
;
import
org.springframework.web.multipart.MultipartFile
;
public
interface
IGoblinConsumerService
{
ResponseDto
<
Boolean
>
consumerType12
(
String
finalSkuId
,
Integer
finalType
,
String
xlsPath
);
ResponseDto
<
Boolean
>
consumerType34
(
String
finalSkuId
,
Integer
finalType
,
String
xlsPath
,
String
oXlsPath
,
String
listId
);
}
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/src/main/java/com/liquidnet/service/candy/controller/CandyConsumerController.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
candy
.
controller
;
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.service.ICandyConsumerService
;
import
com.liquidnet.service.candy.service.ICandyCouponService
;
import
com.liquidnet.service.candy.vo.CandyCouponPreVo
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 券消费 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@RestController
@RequestMapping
(
"/candy-consumer"
)
public
class
CandyConsumerController
{
@Autowired
private
ICandyConsumerService
candyConsumerService
;
@PostMapping
(
"couponOrderBackRedis"
)
@ApiOperation
(
"AbstractCouponOrderBackRedisReceiver"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"用户id"
,
required
=
true
),
@ApiImplicitParam
(
type
=
"form"
,
dataType
=
"String"
,
name
=
"uCouponId"
,
value
=
"券code"
,
required
=
true
),
})
public
ResponseDto
<
Boolean
>
myCouponPre
(
String
uid
,
String
uCouponId
)
{
ArrayList
<
String
>
uCouponIdList
=
CollectionUtil
.
arrayListString
();
uCouponIdList
.
add
(
uCouponId
);
return
candyConsumerService
.
couponOrderBackRedis
(
uid
,
uCouponIdList
);
}
}
liquidnet-bus-service/liquidnet-service-candy/liquidnet-service-candy-impl/src/main/java/com/liquidnet/service/candy/service/impl/CandyConsumerServiceImpl.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
candy
.
service
.
impl
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.constant.CandyRedisConst
;
import
com.liquidnet.service.candy.dto.CandyUserCouponBasicDto
;
import
com.liquidnet.service.candy.service.ICandyConsumerService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 券消费 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@Service
public
class
CandyConsumerServiceImpl
implements
ICandyConsumerService
{
@Autowired
RedisUtil
redisUtil
;
@Override
public
ResponseDto
<
Boolean
>
couponOrderBackRedis
(
String
uid
,
ArrayList
<
String
>
uCouponIdList
)
{
try
{
List
<
CandyUserCouponBasicDto
>
dtoList
=
backCoupon
(
getCouponByUid
(
uid
),
uCouponIdList
);
setCouponByUid
(
uid
,
dtoList
);
}
catch
(
Exception
e
){
return
ResponseDto
.
failure
();
}
return
ResponseDto
.
success
();
}
private
List
<
CandyUserCouponBasicDto
>
getCouponByUid
(
String
uid
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_USER_COUPON
.
concat
(
uid
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
//降级
return
new
ArrayList
();
}
else
{
return
(
List
<
CandyUserCouponBasicDto
>)
obj
;
}
}
// 覆盖 CandyUserCouponBasicDto数组 根据用户id
private
void
setCouponByUid
(
String
uid
,
List
<
CandyUserCouponBasicDto
>
dtoList
)
{
String
redisKey
=
CandyRedisConst
.
BASIC_USER_COUPON
.
concat
(
uid
);
redisUtil
.
set
(
redisKey
,
dtoList
);
}
/**
* 回退券
*
* @param dtoList CouponBaseDtoList
* @param uCouponIdList 券唯一id list
* @return List<CandyUserCouponBasicDto>
*/
private
List
<
CandyUserCouponBasicDto
>
backCoupon
(
List
<
CandyUserCouponBasicDto
>
dtoList
,
ArrayList
<
String
>
uCouponIdList
)
{
boolean
isHas
=
false
;
for
(
CandyUserCouponBasicDto
dtoItem
:
dtoList
)
{
if
(
uCouponIdList
.
contains
(
dtoItem
.
getUcouponId
()))
{
if
(
dtoItem
.
getState
().
equals
(
5
))
{
dtoItem
.
setState
(
1
);
isHas
=
true
;
//券存在
}
else
{
}
}
}
if
(!
isHas
)
{
return
null
;
//券不存在
}
return
dtoList
;
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/Inner/GoblinConsumerController.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
goblin
.
controller
.
Inner
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.service.impl.inner.GoblinNftJobServiceImpl
;
import
com.liquidnet.service.goblin.service.manage.IGoblinConsumerService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@Slf4j
@Api
(
tags
=
"@API:RSC:消费"
)
@RestController
@Validated
@RequestMapping
(
"/rsc/consumer"
)
public
class
GoblinConsumerController
{
@Autowired
IGoblinConsumerService
goblinConsumerService
;
@PostMapping
(
"consumerType12"
)
@ApiOperation
(
"xls 类型1/2"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"finalSkuId"
,
value
=
"skuId"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"finalType"
,
value
=
"类型"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"xlsPath"
,
value
=
"文件地址"
),
})
public
ResponseDto
<
Boolean
>
consumerType12
(
String
finalSkuId
,
Integer
finalType
,
String
xlsPath
)
{
return
goblinConsumerService
.
consumerType12
(
finalSkuId
,
finalType
,
xlsPath
);
}
@PostMapping
(
"consumerType34"
)
@ApiOperation
(
"xls 类型3/4"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"finalSkuId"
,
value
=
"skuId"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"finalType"
,
value
=
"类型"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"xlsPath"
,
value
=
"文件地址"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"oXlsPath"
,
value
=
"文件地址2"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"listId"
,
value
=
"分批购活动id"
),
})
public
ResponseDto
<
Boolean
>
consumerType34
(
String
finalSkuId
,
Integer
finalType
,
String
xlsPath
,
String
oXlsPath
,
String
listId
)
{
return
goblinConsumerService
.
consumerType34
(
finalSkuId
,
finalType
,
xlsPath
,
oXlsPath
,
listId
);
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/inner/GoblinConsumerServiceImpl.java
0 → 100644
View file @
c15885c1
package
com
.
liquidnet
.
service
.
goblin
.
service
.
impl
.
inner
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.read.listener.PageReadListener
;
import
com.alibaba.fastjson.JSON
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.dto.PhoneDto
;
import
com.liquidnet.service.goblin.service.manage.IGoblinConsumerService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.net.URL
;
import
java.util.HashMap
;
@Slf4j
@Service
public
class
GoblinConsumerServiceImpl
implements
IGoblinConsumerService
{
@Autowired
private
RedisUtil
redisUtil
;
@Override
public
ResponseDto
<
Boolean
>
consumerType12
(
String
finalSkuId
,
Integer
finalType
,
String
xlsPath
)
{
try
{
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
);
}
}
})).
sheet
().
doRead
();
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
();
}
return
ResponseDto
.
success
();
}
@Override
public
ResponseDto
<
Boolean
>
consumerType34
(
String
finalSkuId
,
Integer
finalType
,
String
xlsPath
,
String
oXlsPath
,
String
listId
)
{
try
{
if
(
oXlsPath
!=
null
&&
!
oXlsPath
.
equals
(
""
))
{
//删除旧的黑白名单
EasyExcel
.
read
(
new
URL
(
oXlsPath
).
openStream
(),
new
PageReadListener
<
HashMap
<
String
,
String
>>(
dataList
->
{
for
(
HashMap
<
String
,
String
>
data
:
dataList
)
{
if
(
data
.
get
(
0
)
==
null
)
{
continue
;
}
if
(
finalType
.
equals
(
3
))
{
log
.
debug
(
"删除 白名单 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
redisUtil
.
del
(
GoblinRedisConst
.
REDIS_WHITE
.
concat
(
listId
+
":"
).
concat
(
finalSkuId
+
":"
).
concat
(
data
.
get
(
0
)));
}
else
{
log
.
debug
(
"删除 黑名单 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
redisUtil
.
del
(
GoblinRedisConst
.
REDIS_BLACK
.
concat
(
listId
+
":"
).
concat
(
finalSkuId
+
":"
).
concat
(
data
.
get
(
0
)));
}
}
})).
sheet
().
doRead
();
}
if
(
xlsPath
!=
null
&&
!
xlsPath
.
equals
(
""
))
{
//添加
EasyExcel
.
read
(
new
URL
(
xlsPath
).
openStream
(),
new
PageReadListener
<
HashMap
<
String
,
String
>>(
dataList
->
{
for
(
HashMap
<
String
,
String
>
data
:
dataList
)
{
if
(
data
.
get
(
0
)
==
null
)
{
continue
;
}
if
(
finalType
.
equals
(
3
))
{
log
.
debug
(
"添加 白名单 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
redisUtil
.
set
(
GoblinRedisConst
.
REDIS_WHITE
.
concat
(
listId
+
":"
).
concat
(
finalSkuId
+
":"
).
concat
(
data
.
get
(
0
)),
1
);
}
else
{
log
.
debug
(
"添加 黑名单 读取到一条数据{}"
,
JSON
.
toJSONString
(
data
));
redisUtil
.
set
(
GoblinRedisConst
.
REDIS_BLACK
.
concat
(
listId
+
":"
).
concat
(
finalSkuId
+
":"
).
concat
(
data
.
get
(
0
)),
1
);
}
}
})).
sheet
().
doRead
();
}
}
catch
(
Exception
e
)
{
return
ResponseDto
.
failure
();
}
return
ResponseDto
.
success
();
}
}
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