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
e1acc3f3
Commit
e1acc3f3
authored
Jun 23, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'KA-消费黑名单订单限制-20220527'
parents
0067cb91
0c9b155f
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
360 additions
and
7 deletions
+360
-7
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/QueryOrderAccountType.java
+9
-4
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/BlacklistDto.java
+38
-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
+87
-0
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
+34
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+28
-0
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
+18
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/DataCenterClient.java
+30
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+1
-1
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/QueryOrderAccountType.java
View file @
e1acc3f3
...
@@ -12,6 +12,10 @@
...
@@ -12,6 +12,10 @@
*/
*/
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
enums
;
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
enums
;
import
java.util.Arrays
;
import
java.util.List
;
/**
/**
* 请勿使用已过期请用OldOrderAccountType 龚爱奇2019-05-19
* 请勿使用已过期请用OldOrderAccountType 龚爱奇2019-05-19
*/
*/
...
@@ -44,19 +48,20 @@ public enum QueryOrderAccountType {
...
@@ -44,19 +48,20 @@ public enum QueryOrderAccountType {
FULL_DISTRIBUTION_FEE
(
"FULL_DISTRIBUTION_FEE"
,
"满减配送费"
),
FULL_DISTRIBUTION_FEE
(
"FULL_DISTRIBUTION_FEE"
,
"满减配送费"
),
OFFLINE_PAY
(
"OFFLINE_PAY"
,
"线下支付"
),
OFFLINE_PAY
(
"OFFLINE_PAY"
,
"线下支付"
),
GATHER_SPOT
(
"GATHER_SPOT"
,
"集点活动"
),
GATHER_SPOT
(
"GATHER_SPOT"
,
"集点活动"
),
MEMBER_PRICE_DISCOUNT
(
"MEMBER_PRICE_DISCOUNT"
,
"会员价优惠"
),
MEMBER_PRICE_DISCOUNT
(
"MEMBER_PRICE_DISCOUNT"
,
"会员价优惠"
),
MCCAFE_MONTH_CARD
(
"MCCAFE_MONTH_CARD"
,
"麦咖啡月卡"
),
MCCAFE_MONTH_CARD
(
"MCCAFE_MONTH_CARD"
,
"麦咖啡月卡"
),
WITH_ORDER_BUY_COUPON_FEE
(
"WITH_ORDER_BUY_COUPON_FEE"
,
"随单买月卡"
),
WITH_ORDER_BUY_COUPON_FEE
(
"WITH_ORDER_BUY_COUPON_FEE"
,
"随单买月卡"
),
COCO_PRODUCT_CASH_COUPON
(
"COCO_PRODUCT_CASH_COUPON"
,
"coco商品代金券"
),
COCO_PRODUCT_CASH_COUPON
(
"COCO_PRODUCT_CASH_COUPON"
,
"coco商品代金券"
),
FULL_BUYM_SENDN
(
"FULL_BUYM_SENDN"
,
"满赠"
),
FULL_BUYM_SENDN
(
"FULL_BUYM_SENDN"
,
"满赠"
),
FULL_M_COUNT_N_FOLD
(
"FULL_M_COUNT_N_FOLD"
,
"满M件N折"
),
FULL_M_COUNT_N_FOLD
(
"FULL_M_COUNT_N_FOLD"
,
"满M件N折"
),
SCORE_PRODUCT_ACTIVITY
(
"SCORE_PRODUCT_ACTIVITY"
,
"积分商品活动"
),
SCORE_PRODUCT_ACTIVITY
(
"SCORE_PRODUCT_ACTIVITY"
,
"积分商品活动"
),
SINGLE_PRODUCT_REDUCTION
(
"SINGLE_PRODUCT_REDUCTION"
,
"单品立减"
)
SINGLE_PRODUCT_REDUCTION
(
"SINGLE_PRODUCT_REDUCTION"
,
"单品立减"
);
;
private
String
code
;
private
String
code
;
private
String
desc
;
private
String
desc
;
public
static
List
<
QueryOrderAccountType
>
useCouponList
=
Arrays
.
asList
(
COUPON
,
B3S1_COUPON
,
FREIGHT_COUPON
,
PRODUCT_COUPON
,
DISCOUNT_COUPON
);
QueryOrderAccountType
(
String
code
,
String
desc
)
{
QueryOrderAccountType
(
String
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
desc
=
desc
;
this
.
desc
=
desc
;
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
e1acc3f3
...
@@ -2036,7 +2036,7 @@ public class OrderAdapter {
...
@@ -2036,7 +2036,7 @@ public class OrderAdapter {
String
attr
=
""
;
String
attr
=
""
;
String
attrEng
=
""
;
String
attrEng
=
""
;
for
(
OrderSpecialExtraAttrRequest
special
:
extInfo
.
getSpecialAttrs
())
{
for
(
OrderSpecialExtraAttrRequest
special
:
extInfo
.
getSpecialAttrs
())
{
if
(
special
.
getAttributeName
().
indexOf
(
"冰"
)
>=
0
)
{
if
(
Objects
.
nonNull
(
special
.
getAttributeName
())
&&
special
.
getAttributeName
().
indexOf
(
"冰"
)
>=
0
)
{
attr
=
special
.
getAttributeName
();
attr
=
special
.
getAttributeName
();
attrEng
=
special
.
getAttributeForeignName
();
attrEng
=
special
.
getAttributeForeignName
();
break
;
break
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/BlacklistDto.java
0 → 100644
View file @
e1acc3f3
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
;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
* 消费黑名单用户 不管是否满足 都不能使用积分消费
*/
private
Integer
useCustomerScore
;
/**
* 当前这一笔订单需要消费的金额
*/
private
Long
amount
;
private
boolean
useCoupon
=
false
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/blacklist/OrderBlacklistResp.java
0 → 100644
View file @
e1acc3f3
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 @
e1acc3f3
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 @
e1acc3f3
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 @
e1acc3f3
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 @
e1acc3f3
...
@@ -195,6 +195,7 @@ public enum ResponseResult {
...
@@ -195,6 +195,7 @@ public enum ResponseResult {
ORDER_BIZ_TYPE_ERROR
(
"45086"
,
"订单业务类型异常"
,
""
),
ORDER_BIZ_TYPE_ERROR
(
"45086"
,
"订单业务类型异常"
,
""
),
COUPON_ORDER_VERIFY_FAIL
(
"45087"
,
"买券订单校验异常"
,
""
),
COUPON_ORDER_VERIFY_FAIL
(
"45087"
,
"买券订单校验异常"
,
""
),
COUPON_ORDER_COMMON_VERIFY_FAIL
(
"45088"
,
"卖券订单基础校验失败"
,
""
),
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 @
e1acc3f3
package
cn
.
freemud
.
handler
;
import
cn.freemud.constant.CustomerScoreConstant
;
import
cn.freemud.entities.dto.blacklist.BlacklistDto
;
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
;
import
java.math.BigDecimal
;
import
java.util.Objects
;
/**
* @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
String
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
;
}
StringBuilder
sb
=
new
StringBuilder
();
// 消费黑名单用户 不可使用积分支付
if
(
Objects
.
nonNull
(
blacklistDto
.
getUseCustomerScore
())
&&
blacklistDto
.
getUseCustomerScore
().
compareTo
(
CustomerScoreConstant
.
SUBSTRACT
.
getValue
())
==
0
)
{
sb
.
append
(
"您已列入消费黑名单暂不可使用积分"
);
return
sb
.
toString
();
}
// 黑名单用户 不可使用优惠券
if
(
blacklistDto
.
isUseCoupon
())
{
sb
.
append
(
"您已列入消费黑名单暂不可使用优惠券"
);
return
sb
.
toString
();
}
//step2 存在校验剩余余额
Long
limitAmount
=
result
.
getLimitAmount
();
Long
shoppingTotalAmount
=
result
.
getShoppingTotalAmount
();
if
(
limitAmount
.
compareTo
(
shoppingTotalAmount
+
blacklistDto
.
getAmount
())
>=
0
)
{
// 满足
return
null
;
}
// step3 余额不足组装前端参数 考虑负数默认0
long
surplusAmount
=
limitAmount
-
shoppingTotalAmount
;
// OrderBlacklistResp orderBlacklistResp = new OrderBlacklistResp();
// orderBlacklistResp.setMoblie(result.getMoblie());
// orderBlacklistResp.setSurplusAmount(surplusAmount < 0 ? 0L : surplusAmount);
// return orderBlacklistResp;
// 您的消费额度还有3元,暂无法支付,如有疑问,详询客服热线4008899096
BigDecimal
amount
=
new
BigDecimal
(
Math
.
max
(
surplusAmount
,
0L
)).
divide
(
new
BigDecimal
(
"100"
),
2
,
BigDecimal
.
ROUND_DOWN
);
if
(
amount
.
compareTo
(
BigDecimal
.
ZERO
)
<=
0
)
{
sb
.
append
(
"您的消费金额额度已用完,暂无法支付,如有疑问,详询客服热线"
).
append
(
result
.
getMoblie
());
}
else
{
sb
.
append
(
"您的消费额度还有"
)
.
append
(
amount
)
.
append
(
"元,暂无法支付,如有疑问,详询客服热线"
)
.
append
(
result
.
getMoblie
());
}
return
sb
.
toString
();
}
}
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
e1acc3f3
...
@@ -9,6 +9,7 @@ import cn.freemud.constant.RedisKeyConstant;
...
@@ -9,6 +9,7 @@ import cn.freemud.constant.RedisKeyConstant;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.blacklist.BlacklistDto
;
import
cn.freemud.entities.dto.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.dto.ecology.VirtualBindStoreResponse
;
import
cn.freemud.entities.dto.ecology.VirtualStoreRequest
;
import
cn.freemud.entities.dto.ecology.VirtualStoreRequest
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
...
@@ -24,6 +25,7 @@ import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
...
@@ -24,6 +25,7 @@ import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto;
import
cn.freemud.entities.dto.wechat.GetTokenResponseDto
;
import
cn.freemud.entities.dto.wechat.GetTokenResponseDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
...
@@ -63,6 +65,7 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSales
...
@@ -63,6 +65,7 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSales
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse
;
...
@@ -149,6 +152,9 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -149,6 +152,9 @@ public class MallOrderServiceImpl implements MallOrderService {
@Autowired
@Autowired
private
SpellGroupOrderDataManager
spellGroupOrderDataManager
;
private
SpellGroupOrderDataManager
spellGroupOrderDataManager
;
@Autowired
private
MemberBlacklistHandler
memberBlacklistHandler
;
/**
/**
* 创建订单
* 创建订单
*/
*/
...
@@ -169,7 +175,9 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -169,7 +175,9 @@ public class MallOrderServiceImpl implements MallOrderService {
checkMallOrder
.
checkOrderByDelivery
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
.
getTotalAmount
(),
trackingNo
);
checkMallOrder
.
checkOrderByDelivery
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
.
getTotalAmount
(),
trackingNo
);
OrderExtInfoDto
extInfo
=
this
.
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
createOrderVo
);
OrderExtInfoDto
extInfo
=
this
.
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
createOrderVo
);
BaseResponse
response
=
this
.
createOrderFlow
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
,
extInfo
);
BaseResponse
response
=
this
.
createOrderFlow
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
,
extInfo
);
if
(!
Objects
.
equals
(
response
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
response
;
}
//组装支付公共方法参数
//组装支付公共方法参数
CreateOrderOperateDto
createOrderOperateDto
=
(
CreateOrderOperateDto
)
response
.
getResult
();
CreateOrderOperateDto
createOrderOperateDto
=
(
CreateOrderOperateDto
)
response
.
getResult
();
createOrderBO
.
setExtInfo
(
extInfo
);
createOrderBO
.
setExtInfo
(
extInfo
);
...
@@ -287,6 +295,31 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -287,6 +295,31 @@ public class MallOrderServiceImpl implements MallOrderService {
createOrderRequest
.
setBaseCreateOrderRequest
(
baseCreateOrderRequest
);
createOrderRequest
.
setBaseCreateOrderRequest
(
baseCreateOrderRequest
);
createOrderRequest
.
getBaseCreateOrderRequest
().
setUserName
(
userLoginInfoDto
.
getNickName
());
createOrderRequest
.
getBaseCreateOrderRequest
().
setUserName
(
userLoginInfoDto
.
getNickName
());
createOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
createOrderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
// fisherman -> 微商城消费黑名单限制
BlacklistDto
blacklistDto
=
new
BlacklistDto
();
blacklistDto
.
setAmount
(
baseCreateOrderRequest
.
getAmount
());
blacklistDto
.
setPartnerId
(
createOrderVo
.
getPartnerId
());
blacklistDto
.
setMemberId
(
createOrderVo
.
getUserId
());
if
(
CollectionUtils
.
isNotEmpty
(
baseCreateOrderRequest
.
getAccounts
()))
{
// 过滤出券, 黑名单有用户不能用券
List
<
CreateOrderAccountRequest
>
useAccount
=
baseCreateOrderRequest
.
getAccounts
()
.
stream
()
.
filter
(
a
->
QueryOrderAccountType
.
useCouponList
.
contains
(
a
.
getAccountType
()))
.
collect
(
Collectors
.
toList
());
blacklistDto
.
setUseCoupon
(
CollectionUtils
.
isNotEmpty
(
useAccount
));
}
blacklistDto
.
setUseCustomerScore
(
createOrderVo
.
getUseCustomerScore
());
String
touchStr
=
memberBlacklistHandler
.
checkisTrueBlacklist
(
blacklistDto
);
if
(
StringUtils
.
isNotEmpty
(
touchStr
))
{
CreateOrderResponse
baseOrderResponse
=
new
CreateOrderResponse
();
baseOrderResponse
.
setErrcode
(
Integer
.
valueOf
(
ResponseResult
.
TOUCH_SHOPPING_BLACK_LIST
.
getCode
()));
baseOrderResponse
.
setErrmsg
(
touchStr
);
baseOrderResponse
.
setData
(
null
);
return
baseOrderResponse
;
}
return
orderBusinessService
.
createOrderFlow
(
createOrderRequest
);
return
orderBusinessService
.
createOrderFlow
(
createOrderRequest
);
});
});
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
e1acc3f3
...
@@ -24,6 +24,8 @@ import cn.freemud.entities.dto.*;
...
@@ -24,6 +24,8 @@ import cn.freemud.entities.dto.*;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj
;
import
cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj
;
import
cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto
;
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.CheckAndCancelRequest
;
import
cn.freemud.entities.dto.coupon.CheckAndCancelResponseDTO
;
import
cn.freemud.entities.dto.coupon.CheckAndCancelResponseDTO
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
...
@@ -50,6 +52,7 @@ import cn.freemud.entities.dto.user.UserCouponCheckRequest;
...
@@ -50,6 +52,7 @@ import cn.freemud.entities.dto.user.UserCouponCheckRequest;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
...
@@ -93,6 +96,7 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
...
@@ -93,6 +96,7 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
import
com.freemud.api.assortment.datamanager.meal.MealCacheManager
;
import
com.freemud.api.assortment.datamanager.meal.MealCacheManager
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommonRedisKey
;
import
com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommonRedisKey
;
...
@@ -126,6 +130,7 @@ import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushServic
...
@@ -126,6 +130,7 @@ import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushServic
import
com.freemud.sdk.api.assortment.order.constant.OrderRedisKeyConstant
;
import
com.freemud.sdk.api.assortment.order.constant.OrderRedisKeyConstant
;
import
com.freemud.sdk.api.assortment.order.entities.OrderRefundConfigEntity
;
import
com.freemud.sdk.api.assortment.order.entities.OrderRefundConfigEntity
;
import
com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime
;
import
com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime
;
import
com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.StoreDeliveryMethod
;
import
com.freemud.sdk.api.assortment.order.enums.StoreDeliveryMethod
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
...
@@ -295,6 +300,9 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -295,6 +300,9 @@ public class OrderServiceImpl implements Orderservice {
private
StockHandle
stockHandle
;
private
StockHandle
stockHandle
;
@Autowired
@Autowired
private
MemberBlacklistHandler
memberBlacklistHandler
;
@Autowired
private
OrderManagerAdapter
orderManagerAdapter
;
private
OrderManagerAdapter
orderManagerAdapter
;
@Value
(
"${sellcoupon.test.order.refund.fail:}"
)
@Value
(
"${sellcoupon.test.order.refund.fail:}"
)
...
@@ -2485,6 +2493,26 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2485,6 +2493,26 @@ public class OrderServiceImpl implements Orderservice {
//组装老的创建订单数据模型
//组装老的创建订单数据模型
BaseCreateOrderRequest
baseCreateOrderRequest
=
orderAdapter
.
convent2CreateOrderDto
(
createOrderVo
,
shoppingCartGoodsDto
,
storeResponseDto
);
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
());
blacklistDto
.
setUseCustomerScore
(
createOrderVo
.
getUseCustomerScore
());
if
(
CollectionUtils
.
isNotEmpty
(
baseCreateOrderRequest
.
getAccounts
()))
{
// 过滤出券, 黑名单有用户不能用券
List
<
CreateOrderAccountRequest
>
useAccount
=
baseCreateOrderRequest
.
getAccounts
()
.
stream
()
.
filter
(
a
->
QueryOrderAccountType
.
useCouponList
.
contains
(
a
.
getAccountType
()))
.
collect
(
Collectors
.
toList
());
blacklistDto
.
setUseCoupon
(
CollectionUtils
.
isNotEmpty
(
useAccount
));
}
String
touchStr
=
memberBlacklistHandler
.
checkisTrueBlacklist
(
blacklistDto
);
if
(
StringUtils
.
isNotEmpty
(
touchStr
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
TOUCH_SHOPPING_BLACK_LIST
.
getCode
(),
touchStr
);
}
// 预先前置 设置 支付方式
// 预先前置 设置 支付方式
this
.
preSetPayChannelType
(
baseCreateOrderRequest
,
createOrderVo
);
this
.
preSetPayChannelType
(
baseCreateOrderRequest
,
createOrderVo
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
View file @
e1acc3f3
...
@@ -12,6 +12,7 @@ import cn.freemud.constant.ResponseCodeConstant;
...
@@ -12,6 +12,7 @@ import cn.freemud.constant.ResponseCodeConstant;
import
cn.freemud.entities.Active
;
import
cn.freemud.entities.Active
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.bo.CreateOrderBONew
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.blacklist.BlacklistDto
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
import
cn.freemud.entities.dto.coupon.CouponResponseDTO
;
import
cn.freemud.entities.dto.coupon.FastBatchQueryTemplateInfoRequest
;
import
cn.freemud.entities.dto.coupon.FastBatchQueryTemplateInfoRequest
;
import
cn.freemud.entities.dto.coupon.FastTemplateInfoResponseVO
;
import
cn.freemud.entities.dto.coupon.FastTemplateInfoResponseVO
;
...
@@ -29,6 +30,7 @@ import cn.freemud.entities.dto.store.StoreMixResponseDto;
...
@@ -29,6 +30,7 @@ import cn.freemud.entities.dto.store.StoreMixResponseDto;
import
cn.freemud.entities.live.WeChatReportVO
;
import
cn.freemud.entities.live.WeChatReportVO
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.manager.BuyProductOnceManager
;
import
cn.freemud.manager.BuyProductOnceManager
;
...
@@ -180,6 +182,10 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
...
@@ -180,6 +182,10 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired
@Autowired
private
CouponOnlineClient
couponOnlineClient
;
private
CouponOnlineClient
couponOnlineClient
;
@Autowired
private
MemberBlacklistHandler
memberBlacklistHandler
;
/**
/**
* 抖音卖券
* 抖音卖券
*/
*/
...
@@ -380,6 +386,18 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
...
@@ -380,6 +386,18 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
//标准化平台虚拟商品特价活动计算,不包含蜜雪APP买虚拟商品
//标准化平台虚拟商品特价活动计算,不包含蜜雪APP买虚拟商品
List
<
SubtractStockVO
>
stockBeanDtos
=
calculationDiscount
(
partnerId
,
storeId
,
userLoginInfoDto
.
getMemberId
(),
productInfosDto
.
getData
().
getProducts
().
get
(
0
),
createOrderRequest
);
List
<
SubtractStockVO
>
stockBeanDtos
=
calculationDiscount
(
partnerId
,
storeId
,
userLoginInfoDto
.
getMemberId
(),
productInfosDto
.
getData
().
getProducts
().
get
(
0
),
createOrderRequest
);
// fisherman --> 校验是否存在用户消费黑名单 需要校验 !=null && >0
Long
amount
=
createOrderRequest
.
getActualPayAmount
();
if
(
Objects
.
nonNull
(
amount
)
&&
amount
.
compareTo
(
0L
)
>
0
)
{
BlacklistDto
blacklistDto
=
new
BlacklistDto
();
blacklistDto
.
setAmount
(
amount
);
blacklistDto
.
setPartnerId
(
createOrderRequest
.
getPartnerId
());
blacklistDto
.
setMemberId
(
createOrderRequest
.
getUserId
());
String
touchStr
=
memberBlacklistHandler
.
checkisTrueBlacklist
(
blacklistDto
);
if
(
StringUtils
.
isNotEmpty
(
touchStr
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
TOUCH_SHOPPING_BLACK_LIST
.
getCode
(),
touchStr
);
}
}
OrderBaseResp
<
OrderInfoReqs
>
orderInfoReqsBaseResponse
=
orderSdkService
.
createOrder
(
createOrderRequest
,
trackingNo
);
OrderBaseResp
<
OrderInfoReqs
>
orderInfoReqsBaseResponse
=
orderSdkService
.
createOrder
(
createOrderRequest
,
trackingNo
);
CreateOrderResponse
createOrderResponse
=
orderSdkAdapter
.
convent2NEWOrderInfoReqs
(
orderInfoReqsBaseResponse
);
CreateOrderResponse
createOrderResponse
=
orderSdkAdapter
.
convent2NEWOrderInfoReqs
(
orderInfoReqsBaseResponse
);
if
(
createOrderResponse
==
null
||
createOrderResponse
.
getErrcode
()
!=
100
)
{
if
(
createOrderResponse
==
null
||
createOrderResponse
.
getErrcode
()
!=
100
)
{
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/DataCenterClient.java
0 → 100644
View file @
e1acc3f3
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
);
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
e1acc3f3
...
@@ -359,7 +359,7 @@ public class CouponServiceImpl implements CouponService {
...
@@ -359,7 +359,7 @@ public class CouponServiceImpl implements CouponService {
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_1
.
getCode
()))
{
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_1
.
getCode
()))
{
activityCouponBean
.
setDiscountAmount
(
couponStateVo
.
getOriginalPrice
()
+
""
);
activityCouponBean
.
setDiscountAmount
(
couponStateVo
.
getOriginalPrice
()
+
""
);
}
else
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_3
.
getCode
()))
{
}
else
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_3
.
getCode
()))
{
// TODO 折扣券 百分值10 乘以10 前端统一除以100作为操作依据
// TODO 折扣券 百分值10 乘以10 前端统一除以100作为操作依据
_> 废弃, 现在默认 不乘10
activityCouponBean
.
setDiscountAmount
(
couponStateVo
.
getDiscount
()
!=
null
?
couponStateVo
.
getDiscount
()
*
10
+
""
:
"0"
);
activityCouponBean
.
setDiscountAmount
(
couponStateVo
.
getDiscount
()
!=
null
?
couponStateVo
.
getDiscount
()
*
10
+
""
:
"0"
);
}
else
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_5
.
getCode
()))
{
}
else
if
(
Objects
.
equals
(
couponStateVo
.
getType
(),
CouponTypeEnum
.
TYPE_5
.
getCode
()))
{
// 这里需要加入 配送券逻辑 如果为null 表示 配送券金额 全免, 否则就是部分减免
// 这里需要加入 配送券逻辑 如果为null 表示 配送券金额 全免, 否则就是部分减免
...
...
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