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
03ea65d5
Commit
03ea65d5
authored
Nov 15, 2021
by
查志伟
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '20210928-美团POS支持-zhiwei.zha'
parents
5dd64ceb
9bea9884
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
138 additions
and
26 deletions
+138
-26
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+29
-1
order-application-service/src/main/java/cn/freemud/entities/dto/pay/MultiQueryRequest.java
+28
-11
order-application-service/src/main/java/cn/freemud/entities/dto/pay/MultiQueryRespDto.java
+4
-4
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ActivityDiscountsDto.java
+4
-0
order-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
+0
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+36
-4
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+1
-2
order-application-service/src/main/java/cn/freemud/service/thirdparty/ComPayClient.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/activity/ActivityDiscountsDto.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/calculate/Discount.java
+5
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/AddShoppingCartGoodsRequestVo.java
+0
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+21
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingEquallyService.java
+5
-1
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
03ea65d5
...
@@ -247,6 +247,8 @@ public class OrderSdkAdapter {
...
@@ -247,6 +247,8 @@ public class OrderSdkAdapter {
List
<
OrderCostCreateReq
>
orderCostCreateReqs
=
new
ArrayList
<>();
List
<
OrderCostCreateReq
>
orderCostCreateReqs
=
new
ArrayList
<>();
// 更新订单商品详情信息
// 更新订单商品详情信息
originalAmount
=
updateOrderItemsAndSettlements
(
orderItemList
,
orderSettlementCreateReqList
,
orderCostCreateReqs
,
requestVO
.
getProducts
(),
requestVO
.
getAccounts
(),
requestVO
.
getCompanyId
());
originalAmount
=
updateOrderItemsAndSettlements
(
orderItemList
,
orderSettlementCreateReqList
,
orderCostCreateReqs
,
requestVO
.
getProducts
(),
requestVO
.
getAccounts
(),
requestVO
.
getCompanyId
());
//将优惠信息中的活动优惠按优先级排个序 (对接美团Pos需要)
orderSettlementCreateReqList
=
this
.
sortSettlementCreateList
(
orderSettlementCreateReqList
,
requestVO
);
//增加总优惠记录
//增加总优惠记录
if
(!
CollectionUtils
.
isEmpty
(
requestVO
.
getAccounts
()))
{
if
(!
CollectionUtils
.
isEmpty
(
requestVO
.
getAccounts
()))
{
addTotalDisaccountData
(
orderSettlementCreateReqList
,
requestVO
);
addTotalDisaccountData
(
orderSettlementCreateReqList
,
requestVO
);
...
@@ -308,6 +310,32 @@ public class OrderSdkAdapter {
...
@@ -308,6 +310,32 @@ public class OrderSdkAdapter {
return
request
;
return
request
;
}
}
/**
* 美团Pos对接的时候,需要将优惠信息排序
* @param orderSettlementCreateReqList
* @param requestVo
* @return List<OrderSettlementCreateReq> 排序后
*/
private
List
<
OrderSettlementCreateReq
>
sortSettlementCreateList
(
List
<
OrderSettlementCreateReq
>
orderSettlementCreateReqList
,
BaseCreateOrderRequest
requestVo
)
{
List
<
OrderSettlementCreateReq
>
result
=
new
ArrayList
<>();
//订单参与的活动信息,这个list是已经按照活动优先级排好了
List
<
CreateOrderAccountRequest
>
accountList
=
requestVo
.
getAccounts
();
if
(
CollectionUtils
.
isEmpty
(
accountList
))
return
result
;
for
(
CreateOrderAccountRequest
account
:
accountList
)
{
Iterator
<
OrderSettlementCreateReq
>
iterator
=
orderSettlementCreateReqList
.
iterator
();
while
(
iterator
.
hasNext
())
{
OrderSettlementCreateReq
coa
=
iterator
.
next
();
if
(
Objects
.
equals
(
coa
.
getExternalObjectId
(),
account
.
getAccountId
()))
{
result
.
add
(
coa
);
iterator
.
remove
();
}
}
}
//此时iterator中还有元素的话,就是非促销的优惠数据,追加到后面
result
.
addAll
(
orderSettlementCreateReqList
);
return
result
;
}
private
void
addTotalDisaccountData
(
List
<
OrderSettlementCreateReq
>
orderSettlementCreateReqList
,
BaseCreateOrderRequest
requestVO
)
{
private
void
addTotalDisaccountData
(
List
<
OrderSettlementCreateReq
>
orderSettlementCreateReqList
,
BaseCreateOrderRequest
requestVO
)
{
OrderSettlementCreateReq
createReq
=
new
OrderSettlementCreateReq
();
OrderSettlementCreateReq
createReq
=
new
OrderSettlementCreateReq
();
createReq
.
setProductId
(
"0"
);
createReq
.
setProductId
(
"0"
);
...
@@ -1386,6 +1414,7 @@ public class OrderSdkAdapter {
...
@@ -1386,6 +1414,7 @@ public class OrderSdkAdapter {
orderPayItem
.
setPayAmount
(
orderPayItemReq
.
getPayAmount
());
orderPayItem
.
setPayAmount
(
orderPayItemReq
.
getPayAmount
());
orderPayItem
.
setPayChannelName
(
orderPayItemReq
.
getPayChannelName
());
orderPayItem
.
setPayChannelName
(
orderPayItemReq
.
getPayChannelName
());
orderPayItem
.
setPayChannelType
(
orderPayItemReq
.
getPayChannelType
());
orderPayItem
.
setPayChannelType
(
orderPayItemReq
.
getPayChannelType
());
orderPayItem
.
setTransId
(
orderPayItemReq
.
getTransId
());
OrderPayItemList
.
add
(
orderPayItem
);
OrderPayItemList
.
add
(
orderPayItem
);
}
}
return
OrderPayItemList
;
return
OrderPayItemList
;
...
@@ -3123,7 +3152,6 @@ public class OrderSdkAdapter {
...
@@ -3123,7 +3152,6 @@ public class OrderSdkAdapter {
extInfo
.
setScore
(
product
.
getScore
());
extInfo
.
setScore
(
product
.
getScore
());
}
}
extInfo
.
setStapleFood
(
product
.
getStapleFood
());
extInfo
.
setStapleFood
(
product
.
getStapleFood
());
extInfo
.
setOriginalGoodsUid
(
product
.
getOriginalGoodsUid
());
extInfo
.
setOriginalGoodsUid
(
product
.
getOriginalGoodsUid
());
extInfo
.
setCartGoodsUid
(
product
.
getCartGoodsUid
());
extInfo
.
setCartGoodsUid
(
product
.
getCartGoodsUid
());
// todo 订单行扩展字段商品组
// todo 订单行扩展字段商品组
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/pay/MultiQueryRequest.java
View file @
03ea65d5
package
cn
.
freemud
.
entities
.
dto
.
pay
;
package
cn
.
freemud
.
entities
.
dto
.
pay
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.ToString
;
import
lombok.ToString
;
import
javax.validation.constraints.NotEmpty
;
@Data
@Data
@ToString
@ToString
public
class
MultiQueryRequest
{
public
class
MultiQueryRequest
{
/**
* 开启渠道端查询,默认不开启
*/
private
boolean
enable_platform_data_query
;
/**
* 外部交易流水号,由上游系统生成,需保证唯一(支付标识)
*/
private
String
outOrderNo
;
/**
/**
* 商户编号(由非码提供)
* 商户编号(由非码提供)
*/
*/
@JSONField
(
name
=
"partner_id"
)
@JsonProperty
(
"partner_id"
)
private
Integer
partnerId
;
private
Integer
partnerId
;
/**
/**
* 商家门店号(在线支付需要提前定义)
* 商家门店号(在线支付需要提前定义)
*/
*/
@JSONField
(
name
=
"store_id"
)
@JsonProperty
(
"store_id"
)
private
String
storeId
;
private
String
storeId
;
/**
/**
* 接口版本,默认30
* 开启渠道端查询,默认不开启
*/
@ApiModelProperty
(
value
=
"开启渠道端查询,默认不开启"
)
@JSONField
(
name
=
"enable_platform_data_query"
)
@JsonProperty
(
"enable_platform_data_query"
)
private
Boolean
enablePlatformDataQuery
=
false
;
@ApiModelProperty
(
value
=
"交易流水号(支付标识)"
)
@JSONField
(
name
=
"fm_trade_no"
)
@JsonProperty
(
"fm_trade_no"
)
private
String
fmTradeNo
;
/**
* 外部交易流水号,由上游系统生成,需保证唯一(支付标识)
*/
*/
private
String
ver
;
@ApiModelProperty
(
value
=
"外部交易流水号,由上游系统生成,需保证唯一(支付标识)"
,
required
=
true
)
@JSONField
(
name
=
"out_order_no"
)
@JsonProperty
(
"out_order_no"
)
@NotEmpty
(
message
=
"外部交易流水号不能为空"
)
private
String
outOrderNo
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/pay/MultiQueryRespDto.java
View file @
03ea65d5
...
@@ -8,16 +8,16 @@ import java.util.List;
...
@@ -8,16 +8,16 @@ import java.util.List;
* 聚合查询返回
* 聚合查询返回
*/
*/
@Data
@Data
public
class
MultiQueryRespDto
<
T
>
{
public
class
MultiQueryRespDto
{
private
int
code
;
private
int
code
;
private
String
msg
;
private
String
msg
;
private
T
data
;
private
ResponseDto
data
;
@
lombok
.
Data
@Data
public
class
Data
{
public
static
class
ResponseDto
{
public
List
<
MultiPaymentRespDto
>
queryList
;
public
List
<
MultiPaymentRespDto
>
queryList
;
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ActivityDiscountsDto.java
View file @
03ea65d5
...
@@ -29,4 +29,8 @@ public class ActivityDiscountsDto {
...
@@ -29,4 +29,8 @@ public class ActivityDiscountsDto {
*/
*/
private
Integer
extendType
;
private
Integer
extendType
;
private
String
cartGoodsUid
;
private
String
cartGoodsUid
;
/**
* 享受优惠点优先级, 值越大表示优惠优先级高
*/
private
Integer
priority
;
}
}
order-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
View file @
03ea65d5
...
@@ -57,7 +57,6 @@ public class ItemServiceImpl implements ItemService{
...
@@ -57,7 +57,6 @@ public class ItemServiceImpl implements ItemService{
//查询商品详情
//查询商品详情
GetProductInfoDto
getProductInfoDto
=
storeItemAdapter
.
convert2ProductInfoDto
(
partnerId
,
storeId
,
ProductInfoType
.
ALL
.
getCode
(),
result
,
menuType
);
GetProductInfoDto
getProductInfoDto
=
storeItemAdapter
.
convert2ProductInfoDto
(
partnerId
,
storeId
,
ProductInfoType
.
ALL
.
getCode
(),
result
,
menuType
);
ProductInfosDto
productInfosDto
=
storeItemClient
.
listProductInfos
(
getProductInfoDto
);
ProductInfosDto
productInfosDto
=
storeItemClient
.
listProductInfos
(
getProductInfoDto
);
AppLogUtil
.
infoLog
(
"storeItemClient_listProductInfos"
,
gson
.
toJson
(
getProductInfoDto
),
gson
.
toJson
(
productInfosDto
));
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
productInfosDto
.
getErrcode
())
&&
productInfosDto
.
getData
()
!=
null
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
.
equals
(
productInfosDto
.
getErrcode
())
&&
productInfosDto
.
getData
()
!=
null
&&
CollectionUtils
.
isNotEmpty
(
productInfosDto
.
getData
().
getProducts
()))
{
&&
CollectionUtils
.
isNotEmpty
(
productInfosDto
.
getData
().
getProducts
()))
{
productInfosDto
.
getData
().
getProducts
().
forEach
(
productBean
->
{
productInfosDto
.
getData
().
getProducts
().
forEach
(
productBean
->
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
03ea65d5
...
@@ -27,8 +27,7 @@ import cn.freemud.entities.dto.delivery.*;
...
@@ -27,8 +27,7 @@ import cn.freemud.entities.dto.delivery.*;
import
cn.freemud.entities.dto.ecology.SendMessageRequest
;
import
cn.freemud.entities.dto.ecology.SendMessageRequest
;
import
cn.freemud.entities.dto.openplatform.QueryInvoiceConfigRequest
;
import
cn.freemud.entities.dto.openplatform.QueryInvoiceConfigRequest
;
import
cn.freemud.entities.dto.order.*
;
import
cn.freemud.entities.dto.order.*
;
import
cn.freemud.entities.dto.pay.InvoiceCreateRequest
;
import
cn.freemud.entities.dto.pay.*
;
import
cn.freemud.entities.dto.pay.OrderInvoiceRequest
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
...
@@ -88,6 +87,7 @@ import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
...
@@ -88,6 +87,7 @@ import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderCountResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderCountResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
...
@@ -256,7 +256,8 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -256,7 +256,8 @@ public class OrderServiceImpl implements Orderservice {
private
OrderQueueService
orderQueueService
;
private
OrderQueueService
orderQueueService
;
@Autowired
@Autowired
private
PayServiceImpl
payServiceImpl
;
private
PayServiceImpl
payServiceImpl
;
@Autowired
private
ComPayClient
comPayClient
;
@Autowired
@Autowired
private
MicroOpenplatformClient
microOpenplatformClient
;
private
MicroOpenplatformClient
microOpenplatformClient
;
...
@@ -393,7 +394,38 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -393,7 +394,38 @@ public class OrderServiceImpl implements Orderservice {
}
}
//若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能
//若该订单使用了优惠券,则移除卡包,移除失败也不退款,现在支付成功个调用核销,无需调用此功能
// couponActivityService.callbackNotify(orderBean);
// couponActivityService.callbackNotify(orderBean);
// 订单失败后 发消息重试 待实现
try
{
//美团POS需求,混合支付(现金+储值卡)时,储值卡的交易流水号在预支付时是没有的,导致订单里没有储值卡的流水号,这里查一下支付信息,将储值卡的流水号信息更新到订单信息里
List
<
OrderPayItemResp
>
payItem
=
orderBean
.
getOrderPayItem
();
if
(
CollectionUtils
.
isNotEmpty
(
payItem
)
&&
payItem
.
size
()
>
1
)
{
MultiQueryRequest
queryPay
=
new
MultiQueryRequest
();
queryPay
.
setPartnerId
(
Integer
.
valueOf
(
partnerId
));
queryPay
.
setStoreId
(
storeId
);
queryPay
.
setOutOrderNo
(
orderBean
.
getOid
());
MultiQueryRespDto
payResponse
=
comPayClient
.
paymentApplicationQuery
(
queryPay
,
Integer
.
valueOf
(
partnerId
));
if
(
null
!=
payResponse
&&
null
!=
payResponse
.
getData
()
&&
CollectionUtils
.
isNotEmpty
(
payResponse
.
getData
().
getQueryList
()))
{
List
<
MultiPaymentRespDto
>
payList
=
payResponse
.
getData
().
getQueryList
();
// 和订单里的匹配
payList
.
forEach
(
pay
->
{
payItem
.
forEach
(
item
->
{
if
(
item
.
getTransId
().
equals
(
pay
.
getTransId
()))
{
item
.
setFmTradeNo
(
pay
.
getFmTradeNo
());
item
.
setOutOrderNo
(
pay
.
getOutOrderNo
());
}
});
});
// 更新订单信息
OrderEditRequest
editReq
=
new
OrderEditRequest
(
orderBean
.
getOid
(),
orderBean
.
getExtInfo
());
editReq
.
setPayChannel
(
PayChannelType
.
COMB
.
getEbcode
());
editReq
.
setPayChannelName
(
PayChannelType
.
COMB
.
getName
());
editReq
.
setPayChannelType
(
PayChannelType
.
COMB
.
getIndex
());
editReq
.
setOrderPayItem
(
payItem
);
orderCenterSdkService
.
orderEdit
(
editReq
);
}
}
}
catch
(
Exception
ignored
)
{}
//这个异常catch住,不影响业务流程
String
takeCode
;
String
takeCode
;
String
daySeq
;
String
daySeq
;
PayAccessResponse
payAccessResponse
;
PayAccessResponse
payAccessResponse
;
...
...
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
03ea65d5
...
@@ -832,12 +832,11 @@ public class PayServiceImpl {
...
@@ -832,12 +832,11 @@ public class PayServiceImpl {
if
(
null
!=
orderPayItemList
&&
orderPayItemList
.
size
()
>
0
)
{
if
(
null
!=
orderPayItemList
&&
orderPayItemList
.
size
()
>
0
)
{
Integer
partnerId
=
Integer
.
valueOf
(
orderBean
.
getCompanyId
());
Integer
partnerId
=
Integer
.
valueOf
(
orderBean
.
getCompanyId
());
MultiQueryRequest
request
=
new
MultiQueryRequest
();
MultiQueryRequest
request
=
new
MultiQueryRequest
();
request
.
setEnable_platform_data_query
(
false
);
request
.
setPartnerId
(
partnerId
);
request
.
setPartnerId
(
partnerId
);
request
.
setStoreId
(
orderBean
.
getShopId
());
request
.
setStoreId
(
orderBean
.
getShopId
());
request
.
setOutOrderNo
(
orderBean
.
getOid
());
request
.
setOutOrderNo
(
orderBean
.
getOid
());
//查询聚合支付结果
//查询聚合支付结果
MultiQueryRespDto
<
MultiQueryRespDto
.
Data
>
response
=
comPayClient
.
paymentApplicationQuery
(
request
,
partnerId
);
MultiQueryRespDto
response
=
comPayClient
.
paymentApplicationQuery
(
request
,
partnerId
);
if
(
response
!=
null
&&
response
.
getData
()
!=
null
&&
Objects
.
equals
(
response
.
getCode
(),
MULITI_RESPONSE
))
{
if
(
response
!=
null
&&
response
.
getData
()
!=
null
&&
Objects
.
equals
(
response
.
getCode
(),
MULITI_RESPONSE
))
{
List
<
MultiPaymentRespDto
>
multiPaymentRespDtoArrayList
=
response
.
getData
().
getQueryList
();
List
<
MultiPaymentRespDto
>
multiPaymentRespDtoArrayList
=
response
.
getData
().
getQueryList
();
if
(
null
!=
multiPaymentRespDtoArrayList
&&
multiPaymentRespDtoArrayList
.
size
()
>
0
)
{
if
(
null
!=
multiPaymentRespDtoArrayList
&&
multiPaymentRespDtoArrayList
.
size
()
>
0
)
{
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/ComPayClient.java
View file @
03ea65d5
...
@@ -42,6 +42,6 @@ public interface ComPayClient {
...
@@ -42,6 +42,6 @@ public interface ComPayClient {
*/
*/
@LogIgnoreFeign
(
logMessage
=
"paymentApplicationQuery"
,
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
)
@LogIgnoreFeign
(
logMessage
=
"paymentApplicationQuery"
,
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
)
@PostMapping
(
"/payment/application/query"
)
@PostMapping
(
"/payment/application/query"
)
MultiQueryRespDto
<
MultiQueryRespDto
.
Data
>
paymentApplicationQuery
(
MultiQueryRequest
multiQueryRequest
,
@RequestHeader
(
"partnerId"
)
Integer
partnerId
);
MultiQueryRespDto
paymentApplicationQuery
(
@RequestBody
MultiQueryRequest
multiQueryRequest
,
@RequestHeader
(
"partnerId"
)
Integer
partnerId
);
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/activity/ActivityDiscountsDto.java
View file @
03ea65d5
...
@@ -35,4 +35,8 @@ public class ActivityDiscountsDto {
...
@@ -35,4 +35,8 @@ public class ActivityDiscountsDto {
* 购物车商品行uid
* 购物车商品行uid
*/
*/
private
String
cartGoodsUid
;
private
String
cartGoodsUid
;
/**
* 享受优惠点优先级, 值越大表示优惠优先级高
*/
private
Integer
priority
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/calculate/Discount.java
View file @
03ea65d5
...
@@ -65,4 +65,9 @@ public class Discount {
...
@@ -65,4 +65,9 @@ public class Discount {
*/
*/
private
String
cartGoodsUid
;
private
String
cartGoodsUid
;
/**
* 活动优先级 值越大越先参与计算
*/
private
Integer
priority
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/AddShoppingCartGoodsRequestVo.java
View file @
03ea65d5
...
@@ -14,7 +14,6 @@ package cn.freemud.entities.vo;
...
@@ -14,7 +14,6 @@ package cn.freemud.entities.vo;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.hibernate.validator.constraints.NotEmpty
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
03ea65d5
...
@@ -23,6 +23,7 @@ import cn.freemud.constant.ShoppingCartConstant;
...
@@ -23,6 +23,7 @@ import cn.freemud.constant.ShoppingCartConstant;
import
cn.freemud.demo.controller.ShoppingCartDemoController
;
import
cn.freemud.demo.controller.ShoppingCartDemoController
;
import
cn.freemud.demo.entities.dto.goods.add.list.BaseListCartGoodsVO
;
import
cn.freemud.demo.entities.dto.goods.add.list.BaseListCartGoodsVO
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityDiscountsDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.activity.DiscountSharingDto
;
import
cn.freemud.entities.dto.activity.DiscountSharingDto
;
...
@@ -2085,6 +2086,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
...
@@ -2085,6 +2086,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
IPromotionService
fullMCountNFoldService
=
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
FULL_M_COUNT_N_FOLD
);
IPromotionService
fullMCountNFoldService
=
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
FULL_M_COUNT_N_FOLD
);
fullMCountNFoldService
.
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
calculationDiscountResult
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
fullMCountNFoldService
.
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
calculationDiscountResult
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
// 美团Pos需求,针对优惠信息进行排序
List
<
ActivityDiscountsDto
>
discounts
=
shoppingCartGoodsDto
.
getActivityDiscountsDtos
();
discounts
.
forEach
(
discount
->
{
for
(
Discount
rd
:
calculationDiscountResult
.
getDiscounts
())
{
// 一定要先判断套餐,不清楚为什么套餐设置的活动是221-集点活动,不先判断的话,可能会匹配成集点的优先级了
if
(
discount
.
getActivityCode
().
equals
(
"setMeal"
))
{
// 套餐优惠不是促销返回的,这里和促销新算价保持一直,优先级设置为0
discount
.
setPriority
(
0
);
break
;
}
if
(
discount
.
getActivityType
().
equals
(
rd
.
getType
()))
{
discount
.
setPriority
(
rd
.
getPriority
());
break
;
}
}
// 未匹配上的优惠,设置默认值0
if
(
null
==
discount
.
getPriority
())
discount
.
setPriority
(
0
);
});
discounts
.
sort
((
a1
,
a2
)
->
a2
.
getPriority
()
-
a1
.
getPriority
());
shoppingCartGoodsDto
.
setActivityDiscountsDtos
(
discounts
);
}
}
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingEquallyService.java
View file @
03ea65d5
...
@@ -220,13 +220,17 @@ public class CalculationSharingEquallyService {
...
@@ -220,13 +220,17 @@ public class CalculationSharingEquallyService {
activityDiscountsDto
.
setActivityName
(
discount
.
getActivityName
());
activityDiscountsDto
.
setActivityName
(
discount
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
calculationCommonService
.
convertType
(
discountType
));
activityDiscountsDto
.
setActivityType
(
calculationCommonService
.
convertType
(
discountType
));
activityDiscountsDto
.
setDiscountAmount
(
0
-
discountAmount
);
activityDiscountsDto
.
setDiscountAmount
(
0
-
discountAmount
);
activityDiscountsDto
.
setPriority
(
discount
.
getPriority
());
activityDiscountsDtos
.
add
(
activityDiscountsDto
);
activityDiscountsDtos
.
add
(
activityDiscountsDto
);
}
}
}
}
//鬼知道促销会有什么问题,反正qa已经出现促销某种情况下没有返回priority字段了,这里为空置位0,防止排序npe影响购物车
activityDiscountsDtos
.
stream
().
forEach
(
a
->
{
if
(
null
==
a
.
getPriority
())
a
.
setPriority
(
0
);
});
//美团POS需求,将优惠信息按照优惠优先级排序
activityDiscountsDtos
.
sort
((
a1
,
a2
)
->
a2
.
getPriority
()
-
a1
.
getPriority
());
shoppingCartGoodsDto
.
setActivityDiscountsDtos
(
activityDiscountsDtos
);
shoppingCartGoodsDto
.
setActivityDiscountsDtos
(
activityDiscountsDtos
);
}
}
/**
/**
* 库存扣减加价购商品 要过滤掉没有换购的商品
* 库存扣减加价购商品 要过滤掉没有换购的商品
*
*
...
...
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