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
6681f016
Commit
6681f016
authored
Jul 13, 2020
by
huiyang.chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
积分抵扣
parent
a9fb1c79
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
392 additions
and
23 deletions
+392
-23
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+19
-16
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+1
-0
order-application-service/src/main/java/cn/freemud/entities/dto/GetUserScoreUserDetailDto.java
+51
-0
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/OrderBeanRequest.java
+10
-0
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/ShoppingCartGoodsResponse.java
+28
-3
order-application-service/src/main/java/cn/freemud/entities/vo/GetUserScoreUseDetailVo.java
+31
-0
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderVo.java
+8
-0
order-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartCustomerScoreVo.java
+29
-0
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/CreateReserveOrderVo.java
+7
-1
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/PreviewOrderInfoVo.java
+4
-0
order-application-service/src/main/java/cn/freemud/service/impl/ActivityCalculationDiscountService.java
+5
-0
order-application-service/src/main/java/cn/freemud/service/impl/CustomerScoreService.java
+165
-0
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
+3
-3
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomScoreClient.java
+30
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
6681f016
...
...
@@ -25,6 +25,7 @@ import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.PreviewOrderInfoVo
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.enums.*
;
...
...
@@ -2436,7 +2437,7 @@ public class OrderAdapter {
* @return
*/
public
AssortmentSdkUpdateOrderProductInfoRequest
conventShoppingPromotionInfo
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
QueryOrderByIdResponse
queryOrderByIdResponse
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
boolean
isUpdateAccounts
)
{
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
boolean
isUpdateAccounts
,
CreateReserveOrderVo
createReserveOrderVo
)
{
AssortmentSdkUpdateOrderProductInfoRequest
sdkUpdateOrderProductInfoRequest
=
new
AssortmentSdkUpdateOrderProductInfoRequest
();
sdkUpdateOrderProductInfoRequest
.
setStoreId
(
queryOrderByIdResponse
.
getData
().
getShopId
());
sdkUpdateOrderProductInfoRequest
.
setPartnerId
(
queryOrderByIdResponse
.
getData
().
getCompanyId
());
...
...
@@ -2500,20 +2501,20 @@ public class OrderAdapter {
.
build
();
sdkUpdateOrderProductInfoRequest
.
getAccounts
().
add
(
createOrderAccountDto
);
}
//
//
//
Long scoreReduceAmount = shoppingCartGoodsResponse.getScoreReduceAmount() != null ? shoppingCartGoodsResponse.getScoreReduceAmount() : 0;
// if (scoreReduceAmount > 0 && CustomerScoreConstant.SUBSTRACT.getValue().equals(creat
eOrderVo.getUseCustomerScore())) {
//
Integer reduceScore = shoppingCartGoodsResponse.getReduceScore() != null ? shoppingCartGoodsResponse.getReduceScore().intValue() : 0;
//
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
//
.accountId("")
//
.name("积分扣减")
//
.price(0 - scoreReduceAmount)
//
.accountType(getQueryOrderAccountType(OldOrderAccountType.getByCode(OrderAccountType.CUSTOMER_SUB.getCode())))
//
.sequence(orderAccountIndex++)
//
.build();
//
sdkUpdateOrderProductInfoRequest.getAccounts().add(createOrderAccountDto);
//
}
Long
scoreReduceAmount
=
shoppingCartGoodsResponse
.
getScoreReduceAmount
()
!=
null
?
shoppingCartGoodsResponse
.
getScoreReduceAmount
()
:
0
;
if
(
scoreReduceAmount
>
0
&&
CustomerScoreConstant
.
SUBSTRACT
.
getValue
().
equals
(
createReserv
eOrderVo
.
getUseCustomerScore
()))
{
Integer
reduceScore
=
shoppingCartGoodsResponse
.
getReduceScore
()
!=
null
?
shoppingCartGoodsResponse
.
getReduceScore
().
intValue
()
:
0
;
CreateOrderAccountRequest
createOrderAccountDto
=
CreateOrderAccountRequest
.
builder
()
.
accountId
(
""
)
.
name
(
"积分扣减"
)
.
price
(
0
-
scoreReduceAmount
)
.
accountType
(
getQueryOrderAccountType
(
OldOrderAccountType
.
getByCode
(
OrderAccountType
.
CUSTOMER_SUB
.
getCode
())))
.
sequence
(
orderAccountIndex
++)
.
build
();
sdkUpdateOrderProductInfoRequest
.
getAccounts
().
add
(
createOrderAccountDto
);
}
// Long cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() != null ? shoppingCartGoodsDto.getCardOriginalAmount() : 0L;
// if (cardOriginalAmount > 0) {
// CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
...
...
@@ -2614,7 +2615,7 @@ public class OrderAdapter {
* @param orderBean
* @return
*/
public
OrderBeanRequest
conventOrderBeanRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
)
{
public
OrderBeanRequest
conventOrderBeanRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
,
CreateReserveOrderVo
createReserveOrderVo
)
{
OrderBeanRequest
orderBeanRequest
=
new
OrderBeanRequest
();
orderBeanRequest
.
setCompanyId
(
orderBean
.
getCompanyId
());
orderBeanRequest
.
setShopId
(
orderBean
.
getShopId
());
...
...
@@ -2622,6 +2623,8 @@ public class OrderAdapter {
orderBeanRequest
.
setUserId
(
assortmentCustomerInfoVo
.
getMemberId
());
orderBeanRequest
.
setAppId
(
assortmentCustomerInfoVo
.
getWxAppId
());
orderBeanRequest
.
setOrderType
(
orderBean
.
getOrderType
());
orderBeanRequest
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
orderBeanRequest
.
setUseCustomerScore
(
createReserveOrderVo
.
getUseCustomerScore
());
List
<
OrderBeanRequest
.
ProductBean
>
list
=
new
ArrayList
<>();
orderBean
.
getProductList
().
forEach
(
var
->
{
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
6681f016
...
...
@@ -141,6 +141,7 @@ public class OrderController {
createReserveOrderVo
.
setSessionId
(
queryOrderVo
.
getSessionId
());
createReserveOrderVo
.
setActivityCode
(
queryOrderVo
.
getActivityCode
());
createReserveOrderVo
.
setCouponCode
(
queryOrderVo
.
getCouponCode
());
createReserveOrderVo
.
setUseCustomerScore
(
queryOrderVo
.
getUseCustomerScore
());
return
encircleOrderService
.
queryOrderInfo
(
createReserveOrderVo
);
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/GetUserScoreUserDetailDto.java
0 → 100644
View file @
6681f016
/**
* Copyright (C), 2015-2019, 非码网络科技有限公司
* FileName: useScoreVo
* Author: bing.liu
* Date: 2019-05-09 14:54
* Description:
*/
package
cn
.
freemud
.
entities
.
dto
;
import
lombok.Data
;
/**
* @author bing.liu
* @create 2019-05-09
* @versions 1.0.0
*/
@Data
public
class
GetUserScoreUserDetailDto
{
private
String
code
;
private
String
message
;
private
String
ver
;
private
UserScoreDetailVo
result
;
@Data
public
class
UserScoreDetailVo
{
private
Integer
currentScore
;
private
Integer
useScore
;
private
Integer
reduceAmount
;
private
Boolean
scoreReduceState
;
private
Integer
reducePriceLimit
;
private
Integer
getReduceScoreLimit
;
/**
* 积分抵扣状态 1积分可用 2积分不足 3 积分抵扣开关禁用 4、订单金额不满足开启积分抵现要求
*/
private
Integer
scoreState
;
/**
* 积分抵扣比例
* 例如10积分抵扣5元为 10:5
*/
private
String
scoreReduceRate
;
/**
* 是否可优惠同享{0所有订单均可抵扣,1仅限原价订单才可抵扣(享受了促销活动、或使用了优惠券,不能进行积分抵扣)
*/
private
Integer
overlayOffers
;
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/OrderBeanRequest.java
View file @
6681f016
...
...
@@ -66,6 +66,16 @@ public class OrderBeanRequest {
*/
private
String
userName
;
private
String
userType
;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private
Integer
useCustomerScore
;
private
String
partnerId
;
private
List
<
ProductBean
>
productList
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/ShoppingCartGoodsResponse.java
View file @
6681f016
package
cn
.
freemud
.
entities
.
dto
.
promotion
;
import
cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto
;
import
cn.freemud.entities.vo.ActivityClassifyCouponBean
;
import
cn.freemud.entities.vo.ActivityDiscountsVo
;
import
cn.freemud.entities.vo.ActivityTip
;
import
cn.freemud.entities.vo.*
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.math.BigDecimal
;
import
java.util.List
;
...
...
@@ -87,6 +86,16 @@ public class ShoppingCartGoodsResponse {
*/
private
ActivityTip
activityTip
;
/**
* 活动信息
*/
private
ShoppingCartCustomerScoreVo
customerScoreVo
;
/**
* 加价购商品
*/
private
List
<
SendGoods
>
sendGoods
;
@Data
public
static
class
CartGoodsDetailDto
{
/**
...
...
@@ -143,4 +152,20 @@ public class ShoppingCartGoodsResponse {
}
@Data
public
final
static
class
SendGoods
{
/**
* 商品Id
*/
@NotNull
private
String
goodsId
;
private
Long
originalPrice
;
/**
* 商品数量
*/
@NotNull
private
Integer
qty
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/GetUserScoreUseDetailVo.java
0 → 100644
View file @
6681f016
/**
* Copyright (C), 2015-2019, 非码网络科技有限公司
* FileName: getUserScoreUseDetailVo
* Author: bing.liu
* Date: 2019-05-09 09:08
* Description:
*/
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @author bing.liu
* @create 2019-05-09
* @versions 1.0.0
*/
@Data
public
class
GetUserScoreUseDetailVo
{
private
String
sessionId
;
@NotNull
(
message
=
"实付金额不能为空"
)
private
Integer
PaidAmount
;
private
String
MemberId
;
private
String
PartnerId
;
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/entities/vo/QueryOrderVo.java
View file @
6681f016
...
...
@@ -68,4 +68,12 @@ public class QueryOrderVo {
*/
private
String
activityCode
;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private
Integer
useCustomerScore
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartCustomerScoreVo.java
0 → 100644
View file @
6681f016
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.entities.vo
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@Data
public
class
ShoppingCartCustomerScoreVo
{
private
Integer
currentScore
;
private
Integer
reducePriceLimit
;
private
Integer
scoreReduceState
;
private
Integer
reduceAmount
;
private
Integer
useScore
;
private
String
customerScorePrompt
;
/**
* 是否可优惠同享{0所有订单均可抵扣,1仅限原价订单才可抵扣(享受了促销活动、或使用了优惠券,不能进行积分抵扣)
*/
private
Integer
overlayOffers
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/CreateReserveOrderVo.java
View file @
6681f016
...
...
@@ -35,5 +35,11 @@ public class CreateReserveOrderVo extends EncircleReserveBaseVo{
* 优惠券对应的活动号
*/
private
String
activityCode
;
/**
* 是否使用用户积分
* 1=不显示积分
* 2=显示积分但不扣减
* 3=显示积分且扣减
*/
private
Integer
useCustomerScore
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/encircle/PreviewOrderInfoVo.java
View file @
6681f016
...
...
@@ -112,5 +112,9 @@ public class PreviewOrderInfoVo {
* 活动信息
*/
private
ActivityTip
activityTip
;
/**
* 用户积分抵扣信息
*/
private
ShoppingCartCustomerScoreVo
customerScoreVo
;
}
order-application-service/src/main/java/cn/freemud/service/impl/ActivityCalculationDiscountService.java
View file @
6681f016
...
...
@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountService {
private
TimeSalePromotionService
timeSalePromotionService
;
@Autowired
private
CommonService
commonService
;
@Autowired
private
CustomerScoreService
customerScoreService
;
public
ShoppingCartGoodsResponse
updateDiscountApportion
(
OrderBeanRequest
request
,
CouponPromotionDto
couponPromotionDto
)
{
...
...
@@ -94,6 +96,8 @@ public class ActivityCalculationDiscountService {
fullPromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
,
activityQueryDto
);
// 限时特价
timeSalePromotionService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
,
activityQueryDto
);
// 积分抵扣
customerScoreService
.
updateDiscountApportion
(
shoppingCartGoodsResponse
,
request
,
calculationDiscountResultDto
,
couponPromotionDto
,
activityQueryDto
);
return
shoppingCartGoodsResponse
;
}
...
...
@@ -180,6 +184,7 @@ public class ActivityCalculationDiscountService {
previewOrderInfoVo
.
setCouponDiscount
(
shoppingCartGoodsResponse
.
getCouponDiscount
());
previewOrderInfoVo
.
setToastMsg
(
shoppingCartGoodsResponse
.
getToastMsg
());
previewOrderInfoVo
.
setActivityTip
(
shoppingCartGoodsResponse
.
getActivityTip
());
previewOrderInfoVo
.
setCustomerScoreVo
(
shoppingCartGoodsResponse
.
getCustomerScoreVo
());
//循环促销计算商品信息,保存订单金额信息
if
(
CollectionUtils
.
isNotEmpty
(
previewOrderInfoVo
.
getProducts
())){
for
(
ProductVo
productVo
:
previewOrderInfoVo
.
getProducts
())
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CustomerScoreService.java
0 → 100644
View file @
6681f016
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.constant.CustomerScoreConstant
;
import
cn.freemud.entities.dto.GetUserScoreUserDetailDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.promotion.*
;
import
cn.freemud.entities.vo.GetUserScoreUseDetailVo
;
import
cn.freemud.entities.vo.ShoppingCartCustomerScoreVo
;
import
cn.freemud.enums.ActivityTypeEnum
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.service.thirdparty.CustomScoreClient
;
import
cn.freemud.utils.LogUtil
;
import
com.freemud.application.sdk.api.constant.FMStatusCode
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.service.impl
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@Service
public
class
CustomerScoreService
implements
IPromotionService
{
@Autowired
private
CustomScoreClient
customScoreClient
;
@Override
public
void
updateDiscountApportion
(
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
,
OrderBeanRequest
request
,
CalculationDiscountResultDto
calculationDiscountResult
,
CouponPromotionDto
couponPromotionDto
,
ActivityQueryDto
activityQueryDto
)
{
if
(
request
==
null
||
request
.
getUseCustomerScore
()
==
null
||
request
.
getUseCustomerScore
()
==
null
||
request
.
getUseCustomerScore
().
equals
(
CustomerScoreConstant
.
NO_DISPLAY
.
getValue
()))
{
return
;
}
GetUserScoreUseDetailVo
getUserScoreUseDetailVo
=
new
GetUserScoreUseDetailVo
();
getUserScoreUseDetailVo
.
setMemberId
(
request
.
getUserId
());
getUserScoreUseDetailVo
.
setPaidAmount
(
getValue
(
shoppingCartGoodsResponse
.
getTotalAmount
()));
getUserScoreUseDetailVo
.
setPartnerId
(
request
.
getPartnerId
());
GetUserScoreUserDetailDto
userScoreUseDetail
=
null
;
try
{
// 加入try catch是为了custom服务挂掉,购物车服务可以也可以正常
userScoreUseDetail
=
customScoreClient
.
getUserScoreUseDetail
(
getUserScoreUseDetailVo
);
}
catch
(
Exception
ex
)
{
ErrorLog
.
printErrorLog
(
"getUserScoreUseDetailError"
,
"/user/scoreUseDetail"
,
request
,
ex
);
}
if
(
userScoreUseDetail
!=
null
&&
userScoreUseDetail
.
getCode
().
equals
(
FMStatusCode
.
SUCCESS
.
getCode
())
&&
userScoreUseDetail
.
getResult
()
!=
null
)
{
Integer
discountAmount
=
0
;
if
(
CustomerScoreConstant
.
SUBSTRACT
.
getValue
().
equals
(
request
.
getUseCustomerScore
()))
{
//设置 购物车总金额=购物车总价-积分扣减金额
discountAmount
=
getValue
(
userScoreUseDetail
.
getResult
().
getReduceAmount
());
}
//设置 积分抵扣VO
ShoppingCartCustomerScoreVo
customerScoreVo
=
new
ShoppingCartCustomerScoreVo
();
customerScoreVo
.
setCurrentScore
(
getValue
(
userScoreUseDetail
.
getResult
().
getCurrentScore
()));
customerScoreVo
.
setReduceAmount
(
getValue
(
userScoreUseDetail
.
getResult
().
getReduceAmount
()));
customerScoreVo
.
setReducePriceLimit
(
getValue
(
userScoreUseDetail
.
getResult
().
getReducePriceLimit
()));
customerScoreVo
.
setOverlayOffers
(
userScoreUseDetail
.
getResult
().
getOverlayOffers
());
customerScoreVo
.
setScoreReduceState
(
getValue
(
userScoreUseDetail
.
getResult
().
getScoreState
()));
// 是否可优惠同享{0所有订单均可抵扣,1仅限原价订单才可抵扣(享受了促销活动、或使用了优惠券,不能进行积分抵扣
if
(
getValue
(
userScoreUseDetail
.
getResult
().
getOverlayOffers
())
==
0
)
{
customerScoreVo
.
setScoreReduceState
(
getValue
(
userScoreUseDetail
.
getResult
().
getScoreState
()));
}
else
{
if
(
StringUtils
.
isNotBlank
(
couponPromotionDto
.
getCouponCode
())
||
(
calculationDiscountResult
!=
null
&&
calculationDiscountResult
.
getTotalDiscountAmount
().
intValue
()
>
0
)
||
(
calculationDiscountResult
!=
null
&&
!
CollectionUtils
.
isEmpty
(
calculationDiscountResult
.
getDiscounts
())))
{
//是否有换购
int
type81
=
0
;
for
(
CalculationGoodsActivityDto
discount
:
calculationDiscountResult
.
getDiscounts
())
{
if
(
ActivityTypeEnum
.
TYPE_81
.
getCode
().
equals
(
discount
.
getType
()))
{
type81
=
1
;
break
;
}
}
//集点
long
discountCount
=
calculationDiscountResult
.
getDiscounts
().
stream
().
filter
(
discount
->
!
ActivityTypeEnum
.
TYPE_211
.
getCode
().
equals
(
discount
.
getType
())).
count
();
/*
int discountCount = calculationDiscountResult.getDiscounts().size();
int type211 = 0;
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount : calculationDiscountResult.getDiscounts()) {
if (ActivityTypeEnum.TYPE_221.getCode().equals(discount.getType())) {
type211 += 1;
break;
}
}
discountCount = discountCount - type211;
*/
//积分抵扣开关禁用 有换购活动 且选中了换购商品
// - 有换购且选中了换购商品
// - 有换购且没有选中换购商品 且除集点以外还有其他促销
if
((
type81
==
0
&&
discountCount
>=
1
)
||
(
type81
==
1
&&
!
CollectionUtils
.
isEmpty
(
shoppingCartGoodsResponse
.
getSendGoods
()))
||
(
type81
==
1
&&
discountCount
>
1
))
{
customerScoreVo
.
setScoreReduceState
(
5
);
userScoreUseDetail
.
getResult
().
setScoreState
(
5
);
discountAmount
=
0
;
customerScoreVo
.
setReduceAmount
(
0
);
}
}
}
customerScoreVo
.
setUseScore
(
getValue
(
userScoreUseDetail
.
getResult
().
getUseScore
()));
String
msg
=
""
;
// 积分抵扣状态 1积分可用 2积分不足 3 积分抵扣开关禁用 4、订单金额不满足开启积分抵现要求
switch
(
userScoreUseDetail
.
getResult
().
getScoreState
())
{
case
1
:
msg
=
String
.
format
(
"共%s积分,可用%s积分抵¥%s"
,
getValue
(
userScoreUseDetail
.
getResult
().
getCurrentScore
()),
getValue
(
userScoreUseDetail
.
getResult
().
getUseScore
()),
((
double
)
userScoreUseDetail
.
getResult
().
getReduceAmount
())
/
100
);
break
;
case
2
:
String
[]
split
=
userScoreUseDetail
.
getResult
().
getScoreReduceRate
().
split
(
":"
);
msg
=
String
.
format
(
"共%s积分,每%s积分可抵¥%s"
,
getValue
(
userScoreUseDetail
.
getResult
().
getCurrentScore
()),
split
[
0
],
split
[
1
]);
break
;
case
5
:
msg
=
"已享受优惠,无法再参与积分抵扣"
;
break
;
case
4
:
msg
=
String
.
format
(
"共%s积分,订单满¥%s可开启积分抵现"
,
getValue
(
userScoreUseDetail
.
getResult
().
getCurrentScore
()),
((
double
)
userScoreUseDetail
.
getResult
().
getReducePriceLimit
())
/
100
);
break
;
default
:
break
;
}
customerScoreVo
.
setCustomerScorePrompt
(
msg
);
shoppingCartGoodsResponse
.
setCustomerScoreVo
(
customerScoreVo
);
shoppingCartGoodsResponse
.
setScoreReduceAmount
(
customerScoreVo
.
getReduceAmount
().
longValue
());
shoppingCartGoodsResponse
.
setReduceScore
(
customerScoreVo
.
getUseScore
().
longValue
());
shoppingCartGoodsResponse
.
setTotalDiscountAmount
(
shoppingCartGoodsResponse
.
getTotalDiscountAmount
()
+
discountAmount
);
shoppingCartGoodsResponse
.
setTotalAmount
(
shoppingCartGoodsResponse
.
getTotalAmount
()
-
discountAmount
);
}
return
;
}
private
Integer
getValue
(
Object
object
)
{
Integer
result
=
0
;
try
{
if
(
object
!=
null
)
{
if
(
object
instanceof
Integer
)
{
result
=
(
Integer
)
object
;
}
else
if
(
object
instanceof
String
)
{
result
=
Integer
.
parseInt
((
String
)
object
);
}
else
if
(
object
instanceof
Double
)
{
result
=
(
int
)
((
double
)
object
);
}
else
if
(
object
instanceof
Float
)
{
result
=
(
int
)
((
float
)
object
);
}
else
if
(
object
instanceof
BigDecimal
)
{
result
=
((
BigDecimal
)
object
).
intValue
();
}
else
if
(
object
instanceof
Long
)
{
result
=
((
Long
)
object
).
intValue
();
}
}
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
"getScoreValueFail"
,
""
,
""
,
ex
);
}
return
result
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/EncircleOrderServiceImpl.java
View file @
6681f016
...
...
@@ -380,7 +380,7 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
Integer
payIsArouseStatus
=
1
;
if
(!
prePayLock
)
{
payIsArouseStatus
=
0
;
OrderBeanRequest
orderBeanRequest
=
orderAdapter
.
conventOrderBeanRequest
(
queryOrderByIdResponse
.
getData
(),
assortmentCustomerInfoVo
);
OrderBeanRequest
orderBeanRequest
=
orderAdapter
.
conventOrderBeanRequest
(
queryOrderByIdResponse
.
getData
(),
assortmentCustomerInfoVo
,
createReserveOrderVo
);
CouponPromotionDto
couponPromotionDto
=
couponAdapter
.
getCouponPromotionDto
(
orderBeanRequest
,
createReserveOrderVo
.
getCouponCode
(),
createReserveOrderVo
.
getActivityCode
(),
CouponFlag
.
YES
.
getCode
());
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
=
calculationDiscountService
.
updateDiscountApportion
(
orderBeanRequest
,
couponPromotionDto
);
calculationDiscountService
.
updatePreviewOrderInfoVo
(
previewOrderInfoVo
,
shoppingCartGoodsResponse
);
...
...
@@ -443,12 +443,12 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
boolean
prePayLock
=
mealCacheManager
.
getOrderCreatePreParmentLock
(
assortmentCustomerInfoVo
.
getPartnerId
(),
assortmentCustomerInfoVo
.
getStoreId
(),
assortmentCustomerInfoVo
.
getTableNumber
());
ShoppingCartGoodsResponse
shoppingCartGoodsResponse
=
null
;
if
(!
prePayLock
)
{
OrderBeanRequest
orderBeanRequest
=
orderAdapter
.
conventOrderBeanRequest
(
queryOrderByIdResponse
.
getData
(),
assortmentCustomerInfoVo
);
OrderBeanRequest
orderBeanRequest
=
orderAdapter
.
conventOrderBeanRequest
(
queryOrderByIdResponse
.
getData
(),
assortmentCustomerInfoVo
,
createReserveOrderVo
);
CouponPromotionDto
couponPromotionDto
=
couponAdapter
.
getCouponPromotionDto
(
orderBeanRequest
,
createReserveOrderVo
.
getCouponCode
(),
createReserveOrderVo
.
getActivityCode
(),
CouponFlag
.
YES
.
getCode
());
shoppingCartGoodsResponse
=
calculationDiscountService
.
updateDiscountApportion
(
orderBeanRequest
,
couponPromotionDto
);
}
boolean
isUpdateAccounts
=
CollectionUtils
.
isEmpty
(
queryOrderByIdResponse
.
getData
().
getAccountList
());
AssortmentSdkUpdateOrderProductInfoRequest
request
=
orderAdapter
.
conventShoppingPromotionInfo
(
shoppingCartGoodsResponse
,
queryOrderByIdResponse
,
assortmentCustomerInfoVo
,
isUpdateAccounts
);
AssortmentSdkUpdateOrderProductInfoRequest
request
=
orderAdapter
.
conventShoppingPromotionInfo
(
shoppingCartGoodsResponse
,
queryOrderByIdResponse
,
assortmentCustomerInfoVo
,
isUpdateAccounts
,
createReserveOrderVo
);
//修改订单信息
OrderDetailResponse
baseOrderResponse
=
orderCenterSdkService
.
updateOrderItem
(
request
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
baseOrderResponse
.
getErrcode
(),
RESPONSE_SUCCESS_CODE
)){
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
6681f016
...
...
@@ -85,6 +85,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
createReserveOrderVo
.
setSessionId
(
createOrderVo
.
getSessionId
());
createReserveOrderVo
.
setOrderUpdateVer
(
createOrderVo
.
getOrderUpdateVer
());
createReserveOrderVo
.
setCouponCode
(
createOrderVo
.
getCouponCode
());
createReserveOrderVo
.
setUseCustomerScore
(
createOrderVo
.
getUseCustomerScore
());
if
(
createOrderVo
.
getOperation
()
==
null
)
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_OPERATION_ERROR
);
switch
(
createOrderVo
.
getOperation
()){
case
2
:
// 开台
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomScoreClient.java
0 → 100644
View file @
6681f016
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.entities.dto.GetUserScoreUserDetailDto
;
import
cn.freemud.entities.vo.GetUserScoreUseDetailVo
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: cn.freemud.service.thirdparty
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/5/11
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@FeignClient
(
name
=
"customer-application-service"
,
url
=
"${saas.customScoreClient.feign.url}"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CustomScoreClient
{
/**
* 用户可用积分
*/
@PostMapping
(
value
=
"/user/scoreUseDetail"
)
GetUserScoreUserDetailDto
getUserScoreUseDetail
(
@RequestBody
GetUserScoreUseDetailVo
getUserScoreUseDetailVo
);
}
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