Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
17d89f6c
Commit
17d89f6c
authored
May 27, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
下单 消费黑名单限制
parent
0a0a9873
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
262 additions
and
0 deletions
+262
-0
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/BlacklistDto.java
+28
-0
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/OrderBlacklistResp.java
+20
-0
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/Result.java
+23
-0
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/req/BlackListQueryByClient.java
+39
-0
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/resp/MemberBlacklistVO.java
+31
-0
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
order-application-service/src/main/java/cn/freemud/handler/MemberBlacklistHandler.java
+60
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+30
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/DataCenterClient.java
+30
-0
No files found.
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/BlacklistDto.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
entities
.
dto
.
blacklist
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 13:40
* @description :
*/
@Data
public
class
BlacklistDto
{
/**
* 商户号
*/
private
String
partnerId
;
/**
* 用户id
*/
private
String
memberId
;
/**
* 当前这一笔订单需要消费的金额
*/
private
Long
amount
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/OrderBlacklistResp.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
entities
.
dto
.
blacklist
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 15:06
* @description : 返回前端提示数据
*/
@Data
public
class
OrderBlacklistResp
{
@ApiModelProperty
(
value
=
"客服电话"
)
private
String
moblie
;
@ApiModelProperty
(
value
=
"金额限制(单位:分)"
)
private
Long
surplusAmount
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/Result.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
entities
.
dto
.
blacklist
;
import
lombok.Data
;
import
java.util.Objects
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 14:49
* @description :
*/
@Data
public
class
Result
<
T
>
{
private
boolean
status
=
false
;
private
String
message
;
private
T
result
;
private
String
statusCode
;
public
boolean
isOk
()
{
return
Objects
.
equals
(
statusCode
,
"200"
);
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/req/BlackListQueryByClient.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
entities
.
dto
.
blacklist
.
req
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Range
;
import
javax.validation.constraints.NotBlank
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 14:34
* @description :
*/
@Data
public
class
BlackListQueryByClient
{
/**
* 0储值卡黑名单
*/
public
static
final
int
RECORD_TYPE_SVC
=
0
;
/**
* 1消费黑名单
*/
public
static
final
int
RECORD_TYPE_CUSTOMER
=
1
;
@ApiModelProperty
(
value
=
"商户id"
)
@NotBlank
(
message
=
"商户id不能为空"
)
private
String
partnerId
;
@ApiModelProperty
(
"会员id"
)
private
String
memberId
;
@ApiModelProperty
(
"添加的黑名单类型 0储值卡黑名单 1消费黑名单"
)
@Range
(
min
=
0
,
max
=
1
,
message
=
"添加的黑名单类型 0储值卡黑名单 1消费黑名单"
)
private
Integer
recordType
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/resp/MemberBlacklistVO.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
entities
.
dto
.
blacklist
.
resp
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 14:35
* @description :
*/
@Data
public
class
MemberBlacklistVO
{
/**
* 是否存在黑名单中
*/
private
boolean
exist
;
// ---------> 消费黑名单才有下面的配置
@ApiModelProperty
(
value
=
"客服电话"
)
private
String
moblie
;
@ApiModelProperty
(
value
=
"金额限制(单位:分)"
)
private
Long
limitAmount
;
@ApiModelProperty
(
value
=
"已经消费的累积金额(单位:分)"
)
private
Long
shoppingTotalAmount
;
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
17d89f6c
...
...
@@ -195,6 +195,7 @@ public enum ResponseResult {
ORDER_BIZ_TYPE_ERROR
(
"45086"
,
"订单业务类型异常"
,
""
),
COUPON_ORDER_VERIFY_FAIL
(
"45087"
,
"买券订单校验异常"
,
""
),
COUPON_ORDER_COMMON_VERIFY_FAIL
(
"45088"
,
"卖券订单基础校验失败"
,
""
),
TOUCH_SHOPPING_BLACK_LIST
(
"45089"
,
"触发消费黑名单"
,
""
),
/**
* 售后单
...
...
order-application-service/src/main/java/cn/freemud/handler/MemberBlacklistHandler.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
handler
;
import
cn.freemud.entities.dto.blacklist.BlacklistDto
;
import
cn.freemud.entities.dto.blacklist.OrderBlacklistResp
;
import
cn.freemud.entities.dto.blacklist.Result
;
import
cn.freemud.entities.dto.blacklist.req.BlackListQueryByClient
;
import
cn.freemud.entities.dto.blacklist.resp.MemberBlacklistVO
;
import
cn.freemud.service.thirdparty.DataCenterClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 11:59
* @description :
*/
@Component
public
class
MemberBlacklistHandler
{
@Autowired
private
DataCenterClient
dataCenterClient
;
/**
* 查询用户是否在黑名单中
*
* @param blacklistDto
*/
public
OrderBlacklistResp
checkisTrueBlacklist
(
BlacklistDto
blacklistDto
)
{
//step1 查询是否存在
BlackListQueryByClient
req
=
new
BlackListQueryByClient
();
req
.
setPartnerId
(
blacklistDto
.
getPartnerId
());
req
.
setMemberId
(
blacklistDto
.
getMemberId
());
// 默认只查询消费黑名单
req
.
setRecordType
(
BlackListQueryByClient
.
RECORD_TYPE_CUSTOMER
);
Result
<
MemberBlacklistVO
>
memberBlacklistVOResult
=
dataCenterClient
.
queryByMemberId
(
req
);
if
(!
memberBlacklistVOResult
.
isOk
())
{
return
null
;
}
MemberBlacklistVO
result
=
memberBlacklistVOResult
.
getResult
();
if
(!
result
.
isExist
())
{
return
null
;
}
//step2 存在校验剩余余额
Long
limitAmount
=
result
.
getLimitAmount
();
Long
shoppingTotalAmount
=
result
.
getShoppingTotalAmount
();
if
(
limitAmount
.
compareTo
(
shoppingTotalAmount
+
blacklistDto
.
getAmount
())
>=
0
)
{
// 满足
return
null
;
}
// step3 余额不足组装前端参数 考虑负数默认0
long
surplusAmount
=
limitAmount
-
shoppingTotalAmount
-
blacklistDto
.
getAmount
();
OrderBlacklistResp
orderBlacklistResp
=
new
OrderBlacklistResp
();
orderBlacklistResp
.
setMoblie
(
result
.
getMoblie
());
orderBlacklistResp
.
setSurplusAmount
(
surplusAmount
<
0
?
0L
:
surplusAmount
);
return
orderBlacklistResp
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
17d89f6c
...
...
@@ -24,6 +24,8 @@ import cn.freemud.entities.dto.*;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj
;
import
cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto
;
import
cn.freemud.entities.dto.blacklist.BlacklistDto
;
import
cn.freemud.entities.dto.blacklist.OrderBlacklistResp
;
import
cn.freemud.entities.dto.coupon.CheckAndCancelRequest
;
import
cn.freemud.entities.dto.coupon.CheckAndCancelResponseDTO
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
...
...
@@ -50,6 +52,7 @@ import cn.freemud.entities.dto.user.UserCouponCheckRequest;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
...
...
@@ -295,6 +298,9 @@ public class OrderServiceImpl implements Orderservice {
private
StockHandle
stockHandle
;
@Autowired
private
MemberBlacklistHandler
memberBlacklistHandler
;
@Autowired
private
OrderManagerAdapter
orderManagerAdapter
;
@Value
(
"${sellcoupon.test.order.refund.fail:}"
)
...
...
@@ -2457,6 +2463,18 @@ public class OrderServiceImpl implements Orderservice {
* @return
*/
public
BaseResponse
sdkCreateOrder
(
CreateOrderBONew
createOrderBO
)
{
BaseResponse
baseResponse
=
new
BaseResponse
();
baseResponse
.
setCode
();
baseResponse
.
setMessage
();
baseResponse
.
setVer
();
baseResponse
.
setResult
();
return
baseResponse
;
BaseResponse
baseResponse
=
new
BaseResponse
();
baseResponse
.
setCode
();
baseResponse
.
setMessage
();
baseResponse
.
setVer
();
baseResponse
.
setResult
();
return
baseResponse
;
CreateOrderVo
createOrderVo
=
createOrderBO
.
getCreateOrderVo
();
StoreMixResponseDto
storeMixResponseDto
=
createOrderBO
.
getStoreMixResponseDto
();
StoreResponseDto
storeResponseDto
=
storeMixResponseDto
.
getStoreInfo
();
...
...
@@ -2489,6 +2507,18 @@ public class OrderServiceImpl implements Orderservice {
//组装老的创建订单数据模型
BaseCreateOrderRequest
baseCreateOrderRequest
=
orderAdapter
.
convent2CreateOrderDto
(
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
// fisherman 订单支付价格 _> 处理 消费黑面名单逻辑
Long
amount
=
baseCreateOrderRequest
.
getAmount
();
BlacklistDto
blacklistDto
=
new
BlacklistDto
();
blacklistDto
.
setAmount
(
amount
);
blacklistDto
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
blacklistDto
.
setMemberId
(
createOrderVo
.
getUserId
());
OrderBlacklistResp
orderBlacklistResp
=
memberBlacklistHandler
.
checkisTrueBlacklist
(
blacklistDto
);
if
(
Objects
.
nonNull
(
orderBlacklistResp
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
TOUCH_SHOPPING_BLACK_LIST
,
orderBlacklistResp
);
}
// 预先前置 设置 支付方式
this
.
preSetPayChannelType
(
baseCreateOrderRequest
,
createOrderVo
);
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/DataCenterClient.java
0 → 100644
View file @
17d89f6c
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.entities.dto.blacklist.Result
;
import
cn.freemud.entities.dto.blacklist.req.BlackListQueryByClient
;
import
cn.freemud.entities.dto.blacklist.resp.MemberBlacklistVO
;
import
com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/5/27 14:17
* @description :
*/
@FeignClient
(
name
=
"data-center"
)
@RequestMapping
(
produces
=
{
MediaType
.
APPLICATION_JSON_UTF8_VALUE
})
public
interface
DataCenterClient
{
/**
* 查询用户是否在黑名单中
*/
@LogIgnoreFeign
(
logMessage
=
"queryByMemberId"
)
@PostMapping
(
"/blacklist/query-by-memberId"
)
Result
<
MemberBlacklistVO
>
queryByMemberId
(
@RequestBody
BlackListQueryByClient
req
);
}
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