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
0823f3e7
Commit
0823f3e7
authored
Oct 18, 2020
by
xiaoer.li@freemud.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/feature/2.0-换购券' into feature/促销算价基于最新master的分支
parents
4f0e1830
d786ff25
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
42 changed files
with
643 additions
and
60 deletions
+643
-60
assortment-ordercenter-sdk/pom.xml
+2
-2
assortment-ordercenter-sdk/readme.md
+3
-2
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+4
-0
assortment-shoppingcart-sdk/pom.xml
+2
-3
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
+6
-3
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/GoodsTypeEnum.java
+2
-1
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
+16
-1
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
+103
-2
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
+13
-6
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
+8
-2
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+9
-0
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+6
-1
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+38
-2
ordercenter-sdk/pom.xml
+1
-1
ordercenter-sdk/readme.md
+1
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/constant/InterfaceAddressConstant.java
+7
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderConditionsReq.java
+2
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/carpark/ParkingOrderRevokeReq.java
+14
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
+12
-0
shopping-cart-application-service/pom.xml
+2
-3
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/CheckSpqInfoResponseDto.java
+6
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/GetProductsVo.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
+50
-0
shopping-cart-application-service/src/main/java/cn/freemud/enums/GoodsTypeEnum.java
+2
-1
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+3
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/ShoppingCartNewService.java
+36
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
+29
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
+25
-7
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+85
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
+22
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
+48
-10
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
+0
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
+10
-4
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
+47
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/SetMealCalculation.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/TimeSaleCalculation.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/CouponProductVo.java
+1
-1
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/MCoffeeAddGoodsRequestVo.java
+5
-0
shopping-cart-application-service/src/test/java/cn.freemud/service/CouponTest.java
+13
-2
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
0823f3e7
...
...
@@ -10,7 +10,7 @@
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
2.
0.9
-RELEASE
</version>
<version>
2.
10.0
-RELEASE
</version>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
@@ -38,7 +38,7 @@
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
ordercenter-sdk
</artifactId>
<version>
1.3.1
4
.RELEASE
</version>
<version>
1.3.1
5
.RELEASE
</version>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
assortment-ordercenter-sdk/readme.md
View file @
0823f3e7
...
...
@@ -72,4 +72,5 @@
| 2.0.6-RELEASE | ordercenter新增常量 | 张志恒 | 2020-08-04 |
| 2.0.7-RELEASE | 加料商品开发 | 梁崇福 | 2020-08-24 |
| 2.0.8-RELEASE | 订单渠道映射调整 | 李小二 | 2020-08-24 |
| 2.0.9-RELEASE | 麦咖啡 | 徐康 | 2020-09-07 |
\ No newline at end of file
| 2.0.9-RELEASE | 麦咖啡 | 徐康 | 2020-09-07 |
| 2.10.0-RELEASE | 停车场订单 | 张志恒 | 2020-09-28 |
\ No newline at end of file
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
0823f3e7
...
...
@@ -2972,6 +2972,10 @@ public class OrderSdkAdapter {
name
=
"审核未通过"
;
break
;
}
case
8
:
{
name
=
"撤单"
;
break
;
}
}
return
name
;
}
...
...
assortment-shoppingcart-sdk/pom.xml
View file @
0823f3e7
...
...
@@ -42,7 +42,7 @@
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
productcenter-sdk
</artifactId>
<version>
3.
8.0.RELEASE
</version>
<version>
3.
7.6-SNAPSHOT
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
@@ -66,4 +66,4 @@
</dependencies>
</project>
\ No newline at end of file
</project>
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/adapter/ShoppingCartAdapter.java
View file @
0823f3e7
...
...
@@ -271,9 +271,12 @@ public class ShoppingCartAdapter {
ProductBeanDTO
.
SkuProductBean
skuProduct
=
isSkuProduct
?
spuProduct
.
getSkuList
().
stream
().
filter
(
p
->
ObjectUtils
.
equals
(
cartGoods
.
getSkuId
(),
p
.
getSkuId
())).
findFirst
().
get
()
:
null
;
Map
<
String
,
String
>
attributes
=
getAttributesNew
(
cartGoods
.
getExtra
());
cartGoods
.
setName
(
spuProduct
.
getName
());
cartGoods
.
setSpuName
(
spuProduct
.
getName
());
cartGoods
.
setSkuName
(
isSkuProduct
?
skuProduct
.
getProductName
()
:
spuProduct
.
getName
());
if
(!
"早餐啡常搭"
.
equals
(
cartGoods
.
getName
())
&&
!
"早餐啡常搭"
.
equals
(
cartGoods
.
getSkuName
())
&&
!
"早餐啡常搭"
.
equals
(
cartGoods
.
getSpuName
())
&&
!
"啡常搭"
.
equals
(
cartGoods
.
getName
())
&&
!
"啡常搭"
.
equals
(
cartGoods
.
getSkuName
())
&&
!
"啡常搭"
.
equals
(
cartGoods
.
getSpuName
()))
{
cartGoods
.
setName
(
spuProduct
.
getName
());
cartGoods
.
setSpuName
(
spuProduct
.
getName
());
cartGoods
.
setSkuName
(
isSkuProduct
?
skuProduct
.
getProductName
()
:
spuProduct
.
getName
());
}
cartGoods
.
setSpecProductId
(
attributes
.
get
(
ATTRIBUTEID
));
cartGoods
.
setPic
(
spuProduct
.
getPicture
());
cartGoods
.
setPackPrice
(
isSkuProduct
?
skuProduct
.
getPackPrice
()
:
spuProduct
.
getPackPrice
());
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/GoodsTypeEnum.java
View file @
0823f3e7
...
...
@@ -17,7 +17,8 @@ public enum GoodsTypeEnum {
COMMON_GOODS
(
1
,
"正常商品"
),
COUPON_GOODS
(
2
,
"商品券"
),
SET_MEAL_GOODS
(
3
,
"套餐商品"
),
HG_COUPON_GOODS
(
7
,
"换购券"
),
SET_MEAL_GOODS
(
3
,
"套餐商品"
),
SKU_GOODS
(
4
,
"sku商品"
),
SPU_GOODS
(
5
,
"spu商品"
),
EXCEPTION_GOODS
(
99
,
"异常商品:商品菜单变化导致和购物车不商品匹配"
);
...
...
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/constant/ShoppingCartConstant.java
View file @
0823f3e7
...
...
@@ -33,6 +33,21 @@ public class ShoppingCartConstant {
public
final
static
String
ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON
=
"一笔交易仅允许同时使用一张商品券"
;
public
final
static
String
ORDER_WAY_CHANGE
=
"切换点餐方式,商品库存和价格等可能会发生变化。"
;
/**
* 商品价格校验失败
*/
public
static
final
int
PRODUCT_PRICE_CHANGE
=
102
;
public
static
final
String
CART_PRODUCT_PRICE_CHANGE
=
"您选择的【$spuName】商品价格将发生变化;"
;
/**
* 商品不存在
*/
public
static
final
int
PRODUCT_NOTFOUND
=
103
;
public
static
final
String
CART_PRODUCT_NOT_FOUND
=
"您选择的【$spuName】商品不在当前门店菜单中;"
;
/**
* 商品状态校验失败
*/
public
static
final
int
PRODUCT_DOWN
=
104
;
public
static
final
String
CART_PRODUCT_INVALID_STATE
=
"您选择的【$spuName】商品已失效;"
;
}
assortment-shoppingcart-sdk/src/main/java/com/freemud/sdk/api/assortment/shoppingcart/service/ShoppingCartBaseService.java
View file @
0823f3e7
...
...
@@ -48,6 +48,8 @@ import java.util.*;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
constant
.
ShoppingCartConstant
.*;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -160,7 +162,7 @@ public interface ShoppingCartBaseService {
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 当goodsId为空或商品是商品券时直接跳过
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
())
)
{
continue
;
}
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
...
...
@@ -194,7 +196,107 @@ public interface ShoppingCartBaseService {
}
}
default
BaseResponse
<
CheckCartRequest
>
checkAllCartGoodsForMCoffee
(
CheckCartRequest
checkCartRequest
)
{
ShoppingCartAdapter
shoppingCartAdapter
=
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartAdapter
.
class
);
ProductService
productService
=
SDKCommonBaseContextWare
.
getBean
(
ProductService
.
class
);
try
{
ValidateShopProductRequest
validateShopProductRequest
=
shoppingCartAdapter
.
getValidateShopProductRequest
(
checkCartRequest
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
ValiadShopProductResponse
>
valiadResponse
=
productService
.
validateShopProductAboutReason
(
validateShopProductRequest
);
if
(
valiadResponse
==
null
||
!
CartResponseConstant
.
SUCCESS
.
getCode
().
equals
(
valiadResponse
.
getCode
())
||
valiadResponse
.
getData
()==
null
)
{
checkCartRequest
.
getCartGoodsList
().
clear
();
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
return
CartResponseUtil
.
error
(
valiadResponse
.
getMessage
(),
checkCartRequest
);
}
ValiadShopProductResponse
validateResult
=
valiadResponse
.
getData
();
CartGoodsStates
cartGoodsStates
=
new
CartGoodsStates
();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if
(
CollectionUtils
.
isNotEmpty
(
validateResult
.
getFailureList
())){
List
<
String
>
invalidSpu
=
new
ArrayList
<>();
List
<
String
>
notFoundSpu
=
new
ArrayList
<>();
List
<
String
>
changePriceSpu
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
validateResult
.
getFailureList
().
size
();
i
++)
{
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
ValiadShopProductResult
validaProduct
=
validateResult
.
getFailureList
().
get
(
i
);
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
if
(
cartGoods
.
getSkuId
().
equals
(
validaProduct
.
getSkuId
()))
{
String
spuName
=
null
==
validaProduct
.
getProductType
()
?
cartGoods
.
getSpuName
()
:
validaProduct
.
getProductType
().
getName
();
if
(
PRODUCT_DOWN
==
validaProduct
.
getCode
())
{
invalidSpu
.
add
(
spuName
);
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
break
;
}
if
(
PRODUCT_NOTFOUND
==
validaProduct
.
getCode
())
{
notFoundSpu
.
add
(
spuName
);
cartGoodsStates
.
setHasInvalidGoods
(
true
);
cartGoods
.
setCartGoodsUid
(
null
);
break
;
}
if
(
PRODUCT_PRICE_CHANGE
==
validaProduct
.
getCode
())
{
changePriceSpu
.
add
(
spuName
);
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getFailureList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
}
}
}
}
String
toastMsg
=
""
;
if
(
CollectionUtils
.
isNotEmpty
(
invalidSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_INVALID_STATE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
invalidSpu
,
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
notFoundSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_NOT_FOUND
.
replace
(
"$spuName"
,
StringUtils
.
join
(
notFoundSpu
,
","
)));
}
if
(
CollectionUtils
.
isNotEmpty
(
changePriceSpu
)){
toastMsg
=
toastMsg
.
concat
(
CART_PRODUCT_PRICE_CHANGE
.
replace
(
"$spuName"
,
StringUtils
.
join
(
changePriceSpu
,
","
)));
}
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
toastMsg
);
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
SHOPPING_CART_GOODS_CHANGE
);
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
}
List
<
ProductBeanDTO
>
productList
=
validateResult
.
getSuccessList
().
stream
().
map
(
ValiadShopProductResult:
:
getProductType
).
collect
(
Collectors
.
toList
());
for
(
CartGoods
cartGoods
:
checkCartRequest
.
getCartGoodsList
())
{
// 当goodsId为空或商品是商品券时直接跳过
if
(
StringUtils
.
isEmpty
(
cartGoods
.
getGoodsId
())
||
Objects
.
equals
(
cartGoods
.
getGoodsType
(),
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
()))
{
continue
;
}
shoppingCartAdapter
.
updateCartGoodsInfoNew
(
cartGoods
,
productList
);
}
//校验商品券是否有当前点餐方式
cartGoodsStates
=
updateSpqCartGoodsInfo
(
checkCartRequest
.
getCartGoodsList
(),
checkCartRequest
.
getOrderWay
(),
checkCartRequest
.
getPartnerId
(),
checkCartRequest
.
getTrackingNo
(),
cartGoodsStates
,
checkCartRequest
.
getStoreId
());
// 点餐方式改变商品券发生变动
if
(
cartGoodsStates
!=
null
&&
cartGoodsStates
.
isOrderWayFlag
())
{
setToastMsgIfNotExist
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
(),
ShoppingCartConstant
.
ORDER_WAY_CHANGE
);
}
//若商品详情赋值有异常,直接移除购物车
if
(
checkCartRequest
.
getCartGoodsList
().
stream
().
anyMatch
(
cart
->
StringUtils
.
isEmpty
(
cart
.
getCartGoodsUid
())))
{
checkCartRequest
.
getCartGoodsList
().
removeIf
(
k
->
StringUtils
.
isEmpty
(
k
.
getCartGoodsUid
()));
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
}
// if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> cart.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()))) {
// checkCartRequest.getCartGoodsList().removeIf(k -> k.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()));
// checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
// checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_MATERIAL_ERROR);
// }
return
CartResponseUtil
.
success
(
checkCartRequest
);
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"assortment-shoppingcart-sdk"
,
checkCartRequest
.
getTrackingNo
(),
e
.
getMessage
(),
"checkAllCartGoods"
,
checkCartRequest
,
e
,
Level
.
ERROR
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setChanged
(
true
);
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
setToastMsg
(
ShoppingCartConstant
.
SHOPPING_CART_INVALIAD_GOODS
);
return
CartResponseUtil
.
error
(
e
.
getMessage
(),
checkCartRequest
);
}
}
/**
* 更新购物车详细信息
...
...
@@ -897,5 +999,4 @@ public interface ShoppingCartBaseService {
}
return
null
;
}
}
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
View file @
0823f3e7
...
...
@@ -113,7 +113,13 @@ public class DeliveryAdapter {
deliveryOrderRequestDto
.
setDepatchWeight
(
order
.
getWeight
());
//deliveryOrderRequestDto.setSerialNumber(order.getOtherCode());
deliveryOrderRequestDto
.
setOrderId
(
order
.
getOid
());
deliveryOrderRequestDto
.
setOrderRemark
(
order
.
getRemark
());
JSONObject
json
=
JSON
.
parseObject
(
order
.
getExtInfo
());
String
needTableWare
=
json
.
getString
(
"needTableware"
);
if
(
"0"
.
equals
(
needTableWare
))
{
deliveryOrderRequestDto
.
setOrderRemark
(
"无需餐具(刀、叉、勺),"
+
order
.
getRemark
());
}
else
{
deliveryOrderRequestDto
.
setOrderRemark
(
"需要餐具(刀、叉、勺),"
+
order
.
getRemark
());
}
deliveryOrderRequestDto
.
setOrderTotalAmount
(
order
.
getAmount
().
intValue
());
deliveryOrderRequestDto
.
setOrderActualAmount
(
order
.
getAmount
().
intValue
());
deliveryOrderRequestDto
.
setPartnerId
(
order
.
getCompanyId
());
...
...
@@ -180,9 +186,9 @@ public class DeliveryAdapter {
deliveryProductInfo
.
setProductCode
(
productList
.
getProductId
());
deliveryProductInfo
.
setProductName
(
productList
.
getProductName
());
deliveryProductInfo
.
setProductNumber
(
productList
.
getNumber
());
deliveryProductInfo
.
setProductPrice
(
productList
.
getPrice
().
intValue
());
deliveryProductInfo
.
setProductPrice
(
productList
.
get
Sale
Price
().
intValue
());
//餐道使用
deliveryProductInfo
.
setCumulatedTotal
(
productList
.
getNumber
()
*
productList
.
getPrice
().
intValue
());
deliveryProductInfo
.
setCumulatedTotal
(
productList
.
getNumber
()
*
productList
.
get
Sale
Price
().
intValue
());
OrderProductAddInfoDto
orderProductAddInfoDto
=
JSON
.
parseObject
(
productList
.
getAddInfo
(),
OrderProductAddInfoDto
.
class
);
deliveryProductInfo
.
setTaxId
(
StringUtils
.
isNotEmpty
(
orderProductAddInfoDto
.
getTaxId
())
?
orderProductAddInfoDto
.
getTaxId
()
:
"10"
);
deliveryProductInfo
.
setTaxRate
(
orderProductAddInfoDto
.
getTax
()
>
0
?
orderProductAddInfoDto
.
getTax
()
:
6
);
...
...
@@ -196,14 +202,15 @@ public class DeliveryAdapter {
deliveryComboProductInfo
.
setProductCode
(
comboProduct
.
getProductId
());
deliveryComboProductInfo
.
setProductName
(
comboProduct
.
getProductName
());
deliveryComboProductInfo
.
setProductNumber
(
comboProduct
.
getNumber
());
deliveryComboProductInfo
.
setProductPrice
(
comboProduct
.
getPrice
().
intValue
());
deliveryComboProductInfo
.
setProductPrice
(
comboProduct
.
get
Sale
Price
().
intValue
());
//餐道使用
deliveryComboProductInfo
.
setCumulatedTotal
(
comboProduct
.
getNumber
()
*
comboProduct
.
getPrice
().
intValue
());
deliveryComboProductInfo
.
setCumulatedTotal
(
comboProduct
.
getNumber
()
*
comboProduct
.
get
Sale
Price
().
intValue
());
OrderProductAddInfoDto
orderComboProductAddInfoDto
=
JSON
.
parseObject
(
comboProduct
.
getAddInfo
(),
OrderProductAddInfoDto
.
class
);
deliveryComboProductInfo
.
setTaxId
(
StringUtils
.
isNotEmpty
(
orderComboProductAddInfoDto
.
getTaxId
())
?
orderComboProductAddInfoDto
.
getTaxId
()
:
"10"
);
deliveryComboProductInfo
.
setTaxRate
(
orderComboProductAddInfoDto
.
getTax
()
>
0
?
orderComboProductAddInfoDto
.
getTax
()
:
6
);
deliveryComboProductInfo
.
setParentCode
(
Long
.
valueOf
(
comboProduct
.
getParentProductId
().
split
(
"_"
)[
0
]));
deliveryComboProductInfo
.
setParentCode
(
Long
.
valueOf
(
comboProduct
.
getParentProductId
().
replace
(
"_"
,
""
)));
deliveryProductInfo
.
setProductCode
(
deliveryComboProductInfo
.
getParentCode
()+
""
);
productInfos
.
add
(
deliveryComboProductInfo
);
});
...
...
order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
View file @
0823f3e7
...
...
@@ -3188,14 +3188,20 @@ public class OrderAdapter {
Object
value
=
redisCache
.
hashGet
(
hashKey
,
type
);
JSONArray
jsonArray
=
value
!=
null
?
JSONArray
.
parseArray
(
value
.
toString
())
:
new
JSONArray
();
if
(
null
!=
jsonArray
&&
jsonArray
.
size
()
>
0
){
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
JSONObject
jsonObject
=
(
JSONObject
)
jsonArray
.
get
(
i
);
jsonObject
.
remove
(
"@type"
);
}
}
return
(
value
!=
null
?
JSONObject
.
parseArray
(
jsonArray
.
toString
(),
AssortmentOpenPlatformPartnerWxappConfig
.
class
)
:
new
ArrayList
());
return
(
value
!=
null
?
JSONObject
.
parseArray
(
jsonArray
.
toString
(),
AssortmentOpenPlatformPartnerWxappConfig
.
class
)
:
new
ArrayList
());
}
else
{
return
new
ArrayList
();
}
}
public
DeleteOrderDto
convent2DeleteOrderDto
(
String
oId
)
{
DeleteOrderDto
deleteOrderDto
=
new
DeleteOrderDto
();
deleteOrderDto
.
setOrderId
(
oId
);
return
deleteOrderDto
;
}
}
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
0823f3e7
...
...
@@ -217,6 +217,15 @@ public class OrderController {
}
/**
* 取消支付删除订单
*/
@ApiAnnotation
(
logMessage
=
"deleteOrderById"
)
@PostMapping
(
"/deleteOrderById"
)
public
BaseResponse
deleteOrderById
(
@Validated
@LogParams
@RequestBody
DeleteOrderVo
deleteOrderVo
)
{
return
orderservice
.
deleteOrderById
(
deleteOrderVo
);
}
/**
* 用户申请退款
*/
@ApiAnnotation
(
logMessage
=
"refund"
)
...
...
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
0823f3e7
...
...
@@ -55,7 +55,7 @@ public interface Orderservice {
* @param oid 订单ID
* @return
*/
BaseResponse
queryOrderById
(
Integer
operation
,
String
sessionId
,
String
oid
,
String
partnerId
,
String
channel
);
BaseResponse
queryOrderById
(
Integer
operation
,
String
sessionId
,
String
oid
,
String
partnerId
,
String
channel
);
/**
* 支付取消删除订单
...
...
@@ -63,6 +63,11 @@ public interface Orderservice {
BaseResponse
deleteOrder
(
DeleteOrderVo
deleteOrderVo
);
/**
* 支付取消删除订单
*/
BaseResponse
deleteOrderById
(
DeleteOrderVo
deleteOrderVo
);
/**
* 订单申请退款
*/
BaseResponse
orderRefund
(
OrderRefundVo
orderRefundVo
);
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
0823f3e7
...
...
@@ -1477,6 +1477,44 @@ public class OrderServiceImpl implements Orderservice {
}
@Override
public
BaseResponse
deleteOrderById
(
DeleteOrderVo
deleteOrderVo
)
{
if
(
StringUtils
.
isBlank
(
deleteOrderVo
.
getOid
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
.
getCode
(),
"oid不能为空"
);
}
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
deleteOrderVo
.
getOid
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
queryOrderByIdResponse
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
String
string
=
JSONObject
.
toJSONString
(
queryOrderByIdResponse
);
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
string
);
QueryOrderByIdResponseDto
responseDto
=
jsonObject
.
toJavaObject
(
QueryOrderByIdResponseDto
.
class
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
responseDto
.
getErrcode
())
||
responseDto
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
OrderBean
orderBean
=
responseDto
.
getData
();
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_DELETE_ERROR
.
getCode
(),
"订单状态不允许删除"
);
}
if
(!
OrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_DELETE_ERROR
.
getCode
(),
"订单状态不允许删除"
);
}
DeleteOrderDto
deleteOrderDto
=
orderAdapter
.
convent2DeleteOrderDto
(
deleteOrderVo
.
getOid
());
//
DeleteOrderRequest
var1
=
new
DeleteOrderRequest
();
var1
.
setOrderId
(
deleteOrderDto
.
getOrderId
());
var1
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
var1
.
setOperator
(
"未支付删除"
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
deleteOrder
(
var1
);
if
(!
RESPONSE_SUCCESS_CODE
.
equals
(
baseOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_DELETE_ERROR
);
}
// TODO: 2019/9/10 删除订单通知
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
());
return
ResponseUtil
.
success
();
}
@Override
public
BaseResponse
orderRefund
(
OrderRefundVo
orderRefundVo
)
{
if
(
StringUtils
.
isEmpty
(
orderRefundVo
.
getReason
()))
{
orderRefundVo
.
setReason
(
"退款"
);
...
...
@@ -1598,8 +1636,6 @@ public class OrderServiceImpl implements Orderservice {
sendApplyRefundSubscriptionNotice
(
orderBean
,
orderRefundVo
);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket
(
orderBean
,
orderRefundVo
);
//发送消息,冲正券
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
(),
orderBean
.
getPayStatus
());
}
}
return
ResponseUtil
.
success
();
...
...
ordercenter-sdk/pom.xml
View file @
0823f3e7
...
...
@@ -8,7 +8,7 @@
<version>
1.0.0
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<version>
1.3.1
4
.RELEASE
</version>
<version>
1.3.1
5
.RELEASE
</version>
<artifactId>
ordercenter-sdk
</artifactId>
<dependencies>
...
...
ordercenter-sdk/readme.md
View file @
0823f3e7
...
...
@@ -48,3 +48,4 @@
| 1.3.12.RELEASE | 加料商品 | 梁崇福 | 2020-08-24 |
| 1.3.13.RELEASE | 麦咖啡 | 徐康 | 2020-09-07 |
| 1.3.14.RELEASE | 修复查询订单时transId为null的问题 | 肖家炜 | 2020-09-08 |
| 1.3.15.RELEASE | 停车场订单撤单 | 张志恒 | 2020-09-28 |
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/constant/InterfaceAddressConstant.java
View file @
0823f3e7
...
...
@@ -218,5 +218,12 @@ public class InterfaceAddressConstant {
*/
public
static
final
String
UPDATE_PICKUP_GOODNO
=
"/order/v2/updatePickUpGoodNo"
;
/**
* /parking/v2/revoke
* 撤单
*/
public
static
final
String
PARKING_V2_REVOKE
=
"/parking/v2/revoke"
;
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderConditionsReq.java
View file @
0823f3e7
...
...
@@ -117,5 +117,7 @@ public class OrderConditionsReq {
//应用ID
private
String
appId
;
//是否删除
private
Integer
isDeleted
;
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/carpark/ParkingOrderRevokeReq.java
0 → 100644
View file @
0823f3e7
package
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
carpark
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.ToString
;
@Getter
@Setter
@ToString
public
class
ParkingOrderRevokeReq
{
private
String
orderCode
;
private
String
operator
;
private
String
partnerId
;
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
View file @
0823f3e7
...
...
@@ -11,6 +11,7 @@ import com.freemud.application.sdk.api.ordercenter.request.*;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderAffirmReq
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCancelReq
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.carpark.ParkingOrderRevokeReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.BatchQueryByCodesReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.CreateFatherSonOrderReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest
;
...
...
@@ -864,4 +865,15 @@ public class OrderSdkService {
return
responseHandle
(
responseDTO
);
}
/**
* /parking/v2/revoke
* 撤单
*/
public
BaseResponse
parkingOrderRevoke
(
ParkingOrderRevokeReq
request
,
String
trackingNo
)
{
OrderBaseResp
<
OrderResp
>
responseDTO
=
RequestThirdPartyUtils
.
httpJsonReqComplexNew
(
restTemplate
,
PARKING_V2_REVOKE
,
createBaseRequest
(
request
,
trackingNo
),
new
ParameterizedTypeReference
<
OrderBaseResp
<
OrderResp
>>()
{
});
return
responseHandle
(
responseDTO
);
}
}
shopping-cart-application-service/pom.xml
View file @
0823f3e7
...
...
@@ -35,7 +35,7 @@
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
productcenter-sdk
</artifactId>
<version>
3.
8.0.RELEASE
</version>
<version>
3.
7.6-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
@@ -373,4 +373,4 @@
</plugins>
</build>
</project>
\ No newline at end of file
</project>
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
View file @
0823f3e7
...
...
@@ -112,6 +112,7 @@ public class ActivityCalculationDiscountRequestDto {
* 例如8折为80
*/
private
Integer
memberDiscount
;
private
String
couponCode
;
/**
* 加料
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/CheckSpqInfoResponseDto.java
View file @
0823f3e7
package
cn
.
freemud
.
entities
.
dto
;
import
cn.freemud.entities.vo.CartGoods
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
CheckSpqInfoResponseDto
{
private
String
spuId
;
...
...
@@ -26,4 +29,7 @@ public class CheckSpqInfoResponseDto {
private
String
couponCode
;
private
Long
price
;
private
String
picture
;
private
String
defaultSpecId
;
private
String
defaultSpecName
;
private
List
<
CartGoods
.
CartGoodsExtra
>
extras
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
0823f3e7
...
...
@@ -33,7 +33,7 @@ public class CartGoods {
*/
private
String
goodsId
;
/**
* 1.正常商品,2.商品券,3.套餐商品
* 1.正常商品,2.商品券,3.套餐商品
,4、换购券
*/
private
Integer
goodsType
;
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/GetProductsVo.java
View file @
0823f3e7
...
...
@@ -45,4 +45,7 @@ public class GetProductsVo {
* 分类名称
*/
private
String
categoryName
;
private
String
defaultSpecId
;
private
String
defaultSpecName
;
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/QueryCartInfoRequestVo.java
0 → 100644
View file @
0823f3e7
package
cn
.
freemud
.
entities
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: QueryCartInfoRequestVo
* @Package cn.freemud.entities.vo
* @Description: 简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2020/9/11 10:35
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
QueryCartInfoRequestVo
{
@ApiModelProperty
(
value
=
"用户Id"
,
required
=
true
)
@NotEmpty
(
message
=
"用户Id不可为空"
)
private
String
userId
;
@ApiModelProperty
(
value
=
"商户Id"
,
required
=
true
)
@NotEmpty
(
message
=
"商户Id不可为空"
)
private
String
partnerId
;
@ApiModelProperty
(
value
=
"门店id"
,
required
=
true
)
@NotEmpty
(
message
=
"门店id不可为空"
)
private
String
storeId
;
@ApiModelProperty
(
value
=
"sessionId"
,
required
=
true
)
@NotEmpty
(
message
=
"用户sessionId不可为空"
)
private
String
sessionId
;
@ApiModelProperty
(
value
=
"appId"
,
required
=
true
)
@NotEmpty
(
message
=
"appId不可为空"
)
private
String
appId
;
@ApiModelProperty
(
value
=
"menuType"
,
notes
=
"业务类型: 0 : 自提 1:外卖 2:微商城"
,
required
=
true
)
@NotEmpty
(
message
=
"业务类型不可为空"
)
private
String
menuType
;
@ApiModelProperty
(
value
=
"订单类型"
)
@NotNull
(
message
=
"订单类型不可为空"
)
private
Integer
orderType
;
@ApiModelProperty
(
value
=
"收货地址id"
,
notes
=
"svc卡支付外卖订单必传"
)
private
String
receiveId
;
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/enums/GoodsTypeEnum.java
View file @
0823f3e7
...
...
@@ -17,10 +17,11 @@ public enum GoodsTypeEnum {
COMMON_GOODS
(
1
,
"正常商品"
),
COUPON_GOODS
(
2
,
"商品券"
),
HG_COUPON_GOODS
(
7
,
"换购券"
),
SET_MEAL_GOODS
(
3
,
"套餐商品"
),
SKU_GOODS
(
4
,
"sku商品"
),
SPU_GOODS
(
5
,
"spu商品"
),
REDUCE_PRICE_GOODS
(
6
,
"加价购商品"
),
REDUCE_PRICE_GOODS
(
6
,
"加价购商品"
),
MATERIAL
(
88
,
"有加料的商品"
),
EXCEPTION_GOODS
(
99
,
"异常商品:商品菜单变化导致和购物车不商品匹配"
);
private
Integer
goodsType
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
0823f3e7
...
...
@@ -87,7 +87,9 @@ public enum ResponseResult {
SHOPPING_CART_SEAT_EMPTY
(
"44020"
,
"键位为空"
),
SHOPPING_CART_COUPON_USED
(
"44021"
,
"优惠券已加入餐盘"
),
SHOPPING_CART_GOODS_COUPON_CAN_NOT_USE
(
"44022"
,
"已加入同样优惠券,第二张暂不可用"
),
SHOPPING_CART_PRODUCT_CAN_NOT_USE
(
"44023"
,
"商品不可用"
),
SHOPPING_CART_COUPON_CAN_NOT_USE
(
"44024"
,
"商品券不可用"
),
SHOPPING_CART_HG_COUPON_NOT_EXIST
(
"44027"
,
"换购券不存在"
),
/**
* 订单状态码
*/
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
View file @
0823f3e7
...
...
@@ -100,6 +100,8 @@ public interface CouponService {
*/
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
);
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
);
/**
* 领券
*
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/ShoppingCartNewService.java
View file @
0823f3e7
...
...
@@ -102,7 +102,7 @@ public interface ShoppingCartNewService {
List
<
CartGoods
>
updateCartGoodsLegal
(
CartGoods
cartGoods
,
String
userId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
List
<
CartGoods
>
oldAllCartGoodsList
);
/**
* 校验券是否有效
*
商品券
校验券是否有效
*
* @param partnerId
* @param storeId
...
...
@@ -110,9 +110,13 @@ public interface ShoppingCartNewService {
* @param productIds
* @return
*/
default
String
validCoupon
(
String
partnerId
,
String
storeId
,
String
spuId
,
List
<
Long
>
productIds
,
String
menuType
)
{
default
String
validCoupon
(
String
partnerId
,
String
storeId
,
String
spuId
,
List
<
Long
>
productIds
,
String
menuType
)
{
String
spuId2
;
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
partnerId
,
storeId
,
spuId
.
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
()),
menuType
);
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
partnerId
,
storeId
,
spuId
.
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
()),
menuType
);
CouponService
couponService
=
SDKCommonBaseContextWare
.
getBean
(
CouponService
.
class
);
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
=
couponService
.
checkSpqInfo
(
checkSpqInfoRequestDto
);
if
(
checkSpqInfoResponseDto
==
null
)
{
...
...
@@ -124,6 +128,35 @@ public interface ShoppingCartNewService {
}
/**
* 换购券
*
* @param partnerId
* @param storeId
* @param spuId
* @param productIds
* @param menuType
* @param goodsId
* @return
*/
default
String
validCoupon
(
String
partnerId
,
String
storeId
,
String
spuId
,
List
<
Long
>
productIds
,
String
menuType
,
String
goodsId
)
{
String
spuId2
;
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
partnerId
,
storeId
,
spuId
.
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
()),
menuType
);
CouponService
couponService
=
SDKCommonBaseContextWare
.
getBean
(
CouponService
.
class
);
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
=
couponService
.
checkSpqInfo
(
checkSpqInfoRequestDto
,
goodsId
);
if
(
checkSpqInfoResponseDto
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_HG_COUPON_NOT_EXIST
);
}
productIds
.
add
(
Long
.
parseLong
(
checkSpqInfoResponseDto
.
getSkuId
()));
spuId2
=
checkSpqInfoResponseDto
.
getSkuId
();
return
spuId2
;
}
/**
* 添加商品券商品
*
* @param addShoppingCartGoodsRequestVo
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/AssortmentSdkService.java
View file @
0823f3e7
...
...
@@ -158,6 +158,35 @@ public class AssortmentSdkService {
return
baseResponse
.
getResult
();
}
/**
* 【麦咖啡】调用SDK校验购物车
*
* @param oldAllCartGoodsList
* @param partnerId
* @param storeId
* @param shoppingCartGoodsResponseVo
* @param orderType
*/
public
CheckCartRequest
checkShoppingCartSdkForMCoffee
(
List
<
CartGoods
>
oldAllCartGoodsList
,
String
partnerId
,
String
storeId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
Integer
orderType
,
String
tableNumber
,
String
menuType
,
ShoppingCartBaseService
shoppingCartService
)
{
CheckCartRequest
checkCartRequest
=
new
CheckCartRequest
();
checkCartRequest
.
setCartGoodsList
(
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
oldAllCartGoodsList
),
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartGoods
.
class
));
checkCartRequest
.
setOrderWay
(
orderType
);
checkCartRequest
.
setPartnerId
(
partnerId
);
checkCartRequest
.
setShoppingCartGoodsResponseVo
(
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
shoppingCartGoodsResponseVo
),
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
ShoppingCartGoodsResponseVo
.
class
));
checkCartRequest
.
setStoreId
(
storeId
);
checkCartRequest
.
setTableNumber
(
tableNumber
);
checkCartRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
checkCartRequest
.
setMenuType
(
BusinessTypeEnum
.
getByType
(
menuType
).
getCode
());
BaseResponse
<
CheckCartRequest
>
baseResponse
;
baseResponse
=
shoppingCartService
.
checkAllCartGoodsForMCoffee
(
checkCartRequest
);
if
(
baseResponse
==
null
)
{
return
null
;
}
return
baseResponse
.
getResult
();
}
/**
* 调用SDK获取商品详情
*
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponPromotionService.java
View file @
0823f3e7
...
...
@@ -10,14 +10,9 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.CouponService
;
import
cn.freemud.service.IPromotionService
;
import
cn.freemud.service.UserService
;
import
com.alibaba.fastjson.JSONArray
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
...
...
@@ -96,11 +91,26 @@ public class CouponPromotionService implements IPromotionService {
cartGoods
.
setQty
(
1
);
cartGoods
.
setCouponCode
(
checkSpqInfoResponseDto
.
getCouponCode
());
cartGoods
.
setSpuName
(
checkSpqInfoResponseDto
.
getSpuName
());
cartGoods
.
setSpecProductId
(
checkSpqInfoResponseDto
.
getDefaultSpecId
());
cartGoods
.
setSubName
(
checkSpqInfoResponseDto
.
getDefaultSpecName
());
cartGoods
.
setExtra
(
checkSpqInfoResponseDto
.
getExtras
());
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
discountGoods
=
calculationDiscountResult
.
getGoods
()
.
stream
()
.
filter
(
d
->
cartGoods
.
getCartGoodsUid
().
equals
(
d
.
getCartGoodsUid
()))
.
findFirst
()
.
orElse
(
null
);
if
(
discountGoods
!=
null
)
{
cartGoods
.
setAmount
(
discountGoods
.
getRealAmount
());
}
else
{
cartGoods
.
setAmount
(
checkSpqInfoResponseDto
.
getPrice
());
}
}
cartGoods
.
setOriginalAmount
(
checkSpqInfoResponseDto
.
getPrice
());
}
}
}
}
}
...
...
@@ -144,7 +154,7 @@ public class CouponPromotionService implements IPromotionService {
ActivityDiscountsDto
activityDiscountsDto
=
new
ActivityDiscountsDto
();
activityDiscountsDto
.
setActivityCode
(
apportionDetails
.
getActivityCode
());
activityDiscountsDto
.
setActivityName
(
apportionDetails
.
getActivityName
());
activityDiscountsDto
.
setActivityType
(
apportionDetails
.
getActivityType
(
));
activityDiscountsDto
.
setActivityType
(
this
.
convent2ActivityType
(
apportionDetails
.
getActivityType
()
));
activityDiscountsDto
.
setDiscountAmount
(
0
-
couponDiscount
.
getDiscountAmount
());
return
activityDiscountsDto
;
}
...
...
@@ -162,4 +172,12 @@ public class CouponPromotionService implements IPromotionService {
activityClassifyCouponBean
.
setUsableCoupons
(
Lists
.
newArrayList
());
return
activityClassifyCouponBean
;
}
private
Integer
convent2ActivityType
(
Integer
type
)
{
Integer
Hg
=
33
;
if
(
type
!=
null
&&
Hg
.
equals
(
type
))
{
type
=
32
;
}
return
type
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
0823f3e7
...
...
@@ -68,6 +68,7 @@ import org.springframework.stereotype.Service;
import
java.util.*
;
import
java.util.function.Predicate
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
@Service
@Slf4j
...
...
@@ -710,6 +711,90 @@ public class CouponServiceImpl implements CouponService {
return
dto
;
}
/**
* 换购券
*
* @param requestDto
* @param goodsId
* @return
*/
@Override
public
CheckSpqInfoResponseDto
checkSpqInfo
(
CheckSpqInfoRequestDto
requestDto
,
String
goodsId
)
{
log
.
info
(
"checkSpqInfo****"
+
gson
.
toJson
(
requestDto
));
String
partnerId
=
requestDto
.
getPartnerId
();
String
couponCode
=
requestDto
.
getCouponCode
();
String
storeId
=
requestDto
.
getStoreId
();
//TODO 查询券详情券是否存在
GetMemberCouponRequestVo
requestVo
=
new
GetMemberCouponRequestVo
();
requestVo
.
setPartnerId
(
partnerId
);
requestVo
.
setCouponCode
(
couponCode
);
requestVo
.
setStoreId
(
requestDto
.
getStoreId
());
GetCouponDetailResponseDto
couponDetailResponseDto
=
couponService
.
getMemberCoupon
(
requestVo
);
LogUtil
.
info
(
"couponService.getMemberCoupon"
,
gson
.
toJson
(
requestVo
),
gson
.
toJson
(
couponDetailResponseDto
));
if
(
couponDetailResponseDto
==
null
||
!
couponDetailResponseDto
.
getResult
().
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_1
)
||
CollectionUtils
.
isEmpty
(
couponDetailResponseDto
.
getDetails
()))
{
return
null
;
}
if
(
CollectionUtils
.
isEmpty
(
couponDetailResponseDto
.
getDetails
()))
{
return
null
;
}
boolean
productValid
=
false
;
GetCouponDetailResponseDto
.
Details
couponActivityDetail
=
null
;
for
(
GetCouponDetailResponseDto
.
Details
detail
:
couponDetailResponseDto
.
getDetails
())
{
if
(
productValid
)
break
;
if
(!
CouponStatus
.
STATUS_0
.
getCode
().
equals
(
detail
.
getStatus
()))
continue
;
for
(
GetCouponDetailResponseDto
.
ActiveProduct
activeProduct
:
detail
.
getActiveProduct
())
{
if
(
goodsId
.
equals
(
activeProduct
.
getProductIdPartner
()))
{
productValid
=
true
;
couponActivityDetail
=
detail
;
break
;
}
}
}
//检查商品是否有效
if
(!
productValid
)
{
return
null
;
}
//TODO 判断该券是否在这个门店下(一个券可以在多个门店下使用)
List
<
String
>
couPonstoreIds
=
Lists
.
newArrayList
();
for
(
GetCouponDetailResponseDto
.
Details
detail
:
couponDetailResponseDto
.
getDetails
())
{
if
(!
CouponStatus
.
STATUS_0
.
getCode
().
equals
(
detail
.
getStatus
()))
continue
;
for
(
GetCouponDetailResponseDto
.
ActiveRestrictionVOS
activeRestrictionVO
:
detail
.
getActiveRestrictionVOS
())
{
couPonstoreIds
.
add
(
activeRestrictionVO
.
getStoreIdPartner
());
}
}
if
(
CollectionUtils
.
isNotEmpty
(
couPonstoreIds
)
&&
!
couPonstoreIds
.
contains
(
storeId
))
{
return
null
;
}
//券返回的商品id
List
<
String
>
skuIds
=
Lists
.
newArrayList
();
String
skuId
=
goodsId
;
skuIds
.
add
(
skuId
);
//TODO 通过skuid查询spuid
Map
<
String
,
GetProductsVo
>
productsVoMap
=
itemService
.
getProducts
(
skuIds
,
partnerId
,
storeId
,
requestDto
.
getMenuType
());
GetProductsVo
productsVo
=
productsVoMap
.
get
(
skuId
);
if
(
null
==
productsVo
||
!
Objects
.
equals
(
productsVo
.
getStatus
(),
StoreItemStatus
.
PUT_ON_SALE
.
getCode
()))
{
return
null
;
}
CheckSpqInfoResponseDto
dto
=
new
CheckSpqInfoResponseDto
();
dto
.
setCouponCode
(
couponCode
);
dto
.
setActiveCode
(
couponActivityDetail
.
getActive
().
getActiveCode
());
dto
.
setCouponName
(
couponActivityDetail
.
getTitle
());
dto
.
setActivityName
(
couponActivityDetail
.
getActive
().
getActiveName
());
dto
.
setPrice
(
productsVo
.
getFinalPrice
());
dto
.
setSpuId
(
productsVo
.
getSpuId
());
dto
.
setSpuName
(
productsVo
.
getSkuName
());
dto
.
setSkuId
(
productsVo
.
getSkuId
());
dto
.
setSkuName
(
StringUtils
.
isNotBlank
(
productsVo
.
getSkuName
())
?
productsVo
.
getSkuName
()
:
productsVo
.
getSpuName
());
dto
.
setPicture
(
productsVo
.
getSpuPicture
());
dto
.
setDefaultSpecName
(
productsVo
.
getDefaultSpecName
());
dto
.
setDefaultSpecId
(
productsVo
.
getDefaultSpecId
());
dto
.
setExtras
(
productsVo
.
getExtra
());
log
.
info
(
"dto***"
+
dto
);
return
dto
;
}
@Autowired
private
ActivityClient
activityClient
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ItemServiceImpl.java
View file @
0823f3e7
...
...
@@ -18,6 +18,7 @@ import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean
;
import
cn.freemud.entities.vo.CartGoods
;
import
cn.freemud.entities.vo.GetProductsVo
;
import
cn.freemud.enums.ProductInfoType
;
import
cn.freemud.enums.ResponseResult
;
...
...
@@ -32,6 +33,7 @@ import com.google.common.collect.Lists;
import
com.google.common.collect.Maps
;
import
com.google.gson.Gson
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -201,7 +203,26 @@ public class ItemServiceImpl implements ItemService {
String
picture
=
CollectionUtils
.
isNotEmpty
(
product
.
getProductPictureList
())
?
product
.
getProductPictureList
().
get
(
0
).
getUrl
()
:
product
.
getPicture
();
getProductsVo
.
setSpuPicture
(
picture
);
getProductsVo
.
setStatus
(
product
.
getStatus
());
//getProductsVo.setStatus(product.getStatus());
if
(
CollectionUtils
.
isNotEmpty
(
product
.
getProductAttributeGroupList
())
&&
CollectionUtils
.
isNotEmpty
(
product
.
getProductAttributeGroupList
().
get
(
0
).
getAttributeValues
()))
{
List
<
CartGoods
.
CartGoodsExtra
>
extras
=
new
ArrayList
<>();
List
<
String
>
specId
=
new
ArrayList
<>();
List
<
String
>
specName
=
new
ArrayList
<>();
for
(
ProductListDto
.
DataBean
.
ProductAttributeGroupListBean
bean
:
product
.
getProductAttributeGroupList
())
{
for
(
ProductListDto
.
DataBean
.
ProductAttributeGroupListBean
.
AttributeValueBean
attr
:
bean
.
getAttributeValues
())
{
CartGoods
.
CartGoodsExtra
extra
=
new
CartGoods
.
CartGoodsExtra
();
extra
.
setAttributeId
(
attr
.
getAttributeId
());
extra
.
setAttributeName
(
attr
.
getAttributeValue
());
specName
.
add
(
attr
.
getAttributeValue
());
specId
.
add
(
attr
.
getAttributeId
());
break
;
}
}
getProductsVo
.
setExtra
(
extras
);
getProductsVo
.
setDefaultSpecName
(
StringUtils
.
join
(
specName
,
"/"
));
getProductsVo
.
setDefaultSpecId
(
StringUtils
.
join
(
specId
,
"/"
));
}
resultMap
.
put
(
skuProductBean
.
getSkuId
(),
getProductsVo
);
}
});
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
View file @
0823f3e7
...
...
@@ -252,7 +252,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
productIds
.
add
(
Long
.
parseLong
(
goodsId
));
}
else
{
//校验券是否有效
spuId2
=
validCoupon
(
partnerId
,
storeId
,
spuId
,
productIds
,
BusinessTypeEnum
.
getByType
(
addShoppingCartGoodsRequestVo
.
getMenuType
()).
getCode
());
if
(
StringUtils
.
isNotBlank
(
skuId
))
{
spuId2
=
validCoupon
(
partnerId
,
storeId
,
spuId
,
productIds
,
BusinessTypeEnum
.
getByType
(
addShoppingCartGoodsRequestVo
.
getMenuType
()).
getCode
(),
skuId
);
cartGoods
.
setGoodsId
(
spuId
);
}
else
{
spuId2
=
validCoupon
(
partnerId
,
storeId
,
spuId
,
productIds
,
BusinessTypeEnum
.
getByType
(
addShoppingCartGoodsRequestVo
.
getMenuType
()).
getCode
());
}
}
// 获取商品详细信息
List
<
ProductBeanDTO
>
productBeanListSpuClass
=
assortmentSdkService
.
getProductsInfoSdk
(
partnerId
,
storeId
...
...
@@ -279,7 +284,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
else
{
// 当商品是商品券,里面会判断如果购物车中已有商品券,会将cartGoods的CartGoodsUid设为null
this
.
addProductGoods
(
addShoppingCartGoodsRequestVo
,
cartGoods
,
spuId2
,
userId
,
shoppingCartGoodsResponseVo
,
spuId
,
allCartGoodsList
,
productBeanListSpuClass
);
spuId
,
allCartGoodsList
,
productBeanListSpuClass
,
StringUtils
.
isNotBlank
(
skuId
)
?
true
:
false
);
}
Long
deliveryAmount
=
calculateDeliveryAmount
(
receiveId
,
partnerId
,
storeId
,
userLoginInfoDto
.
getWxAppid
(),
shoppingCartGoodsResponseVo
);
...
...
@@ -894,13 +899,23 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
else
{
// 商品券ID换取商品
String
spqId
=
cartGoods
.
getCartGoodsUid
().
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
partnerId
,
storeId
,
spqId
,
menuType
);
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
=
couponService
.
checkSpqInfo
(
checkSpqInfoRequestDto
);
CheckSpqInfoRequestDto
checkSpqInfoRequestDto
=
new
CheckSpqInfoRequestDto
(
partnerId
,
storeId
,
spqId
,
menuType
);
CheckSpqInfoResponseDto
checkSpqInfoResponseDto
=
null
;
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
checkSpqInfoResponseDto
=
couponService
.
checkSpqInfo
(
checkSpqInfoRequestDto
,
cartGoods
.
getSkuId
());
}
else
{
checkSpqInfoResponseDto
=
couponService
.
checkSpqInfo
(
checkSpqInfoRequestDto
);
}
// 商品券不存在时,将商品券从购物车移除
if
(
checkSpqInfoResponseDto
==
null
)
{
cartGoodsList
.
remove
(
i
);
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
null
,
null
,
this
.
shoppingCartBaseService
);
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_COUPON_NOT_EXIST
);
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_HG_COUPON_NOT_EXIST
);
}
else
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_COUPON_NOT_EXIST
);
}
}
validCouponMap
.
put
(
spqId
,
checkSpqInfoResponseDto
);
cartGoods
.
setName
(
checkSpqInfoResponseDto
.
getCouponName
());
...
...
@@ -912,7 +927,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupons
.
add
(
coupon
);
// 添加商品券代表的商品
String
goodsId
=
StringUtils
.
isEmpty
(
checkSpqInfoResponseDto
.
getSkuId
())
?
checkSpqInfoResponseDto
.
getSpuId
()
:
checkSpqInfoResponseDto
.
getSkuId
();
this
.
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
goodsId
,
1
,
checkSpqInfoResponseDto
.
getPrice
(),
100
,
cartGoodsUid
);
if
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
().
equals
(
cartGoods
.
getGoodsType
()))
{
this
.
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
goodsId
,
1
,
checkSpqInfoResponseDto
.
getPrice
(),
100
,
cartGoodsUid
,
cartGoods
.
getSpuId
());
}
else
{
this
.
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
goodsId
,
1
,
checkSpqInfoResponseDto
.
getPrice
(),
100
,
cartGoodsUid
);
}
}
}
// 当加价购商品不为空时
...
...
@@ -932,8 +951,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
activityCalculationDiscountRequestDto
.
setIsMember
(
isMember
);
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
;
try
{
System
.
out
.
println
(
"start discount"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
activityCalculationDiscountRequestDto
));
activityCalculationDiscountResponseDto
=
activityClient
.
calculationDiscount
(
activityCalculationDiscountRequestDto
);
}
catch
(
Exception
ex
)
{
ErrorLog
.
printErrorLog
(
"calculation_discount_error"
,
"/calculation/discount"
,
activityCalculationDiscountRequestDto
,
ex
);
...
...
@@ -980,6 +997,23 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
this
.
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
calculationDiscountGoods
);
}
private
void
addCalculationDiscountGoods
(
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
>
calculationDiscountGoodsList
,
String
goodsId
,
Integer
goodsQuantity
,
Long
originalPrice
,
Integer
memberDiscount
,
String
cartGoodsUid
,
String
couponCode
)
{
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
calculationDiscountGoods
=
new
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
();
calculationDiscountGoods
.
setGoodsId
(
goodsId
);
calculationDiscountGoods
.
setCartGoodsUid
(
cartGoodsUid
);
calculationDiscountGoods
.
setGoodsQuantity
(
goodsQuantity
);
calculationDiscountGoods
.
setOriginalPrice
(
originalPrice
);
calculationDiscountGoods
.
setMemberDiscount
(
memberDiscount
);
calculationDiscountGoods
.
setCouponCode
(
couponCode
);
this
.
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
calculationDiscountGoods
);
}
/**
* 促销增加
*
...
...
@@ -1364,7 +1398,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
*/
private
void
addProductGoods
(
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
CartGoods
cartGoods
,
String
spuId2
,
String
userId
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
String
spuId
,
List
<
CartGoods
>
allCartGoodsList
,
List
<
ProductBeanDTO
>
productBeanListSpuClass
)
{
,
List
<
CartGoods
>
allCartGoodsList
,
List
<
ProductBeanDTO
>
productBeanListSpuClass
,
boolean
isHg
)
{
// 商品券商品list
List
<
CartGoods
>
tmpCartGoods
=
allCartGoodsList
.
parallelStream
().
filter
(
k
->
k
.
getCartGoodsUid
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
)).
collect
(
Collectors
.
toList
());
// 当已有商品券时,不得添加(暂时的限制)
...
...
@@ -1374,7 +1408,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
else
{
cartGoods
.
setCartGoodsUid
(
spuId
);
// 设置商品类型为商品券
cartGoods
.
setGoodsType
(
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
());
if
(
isHg
)
{
cartGoods
.
setGoodsType
(
GoodsTypeEnum
.
HG_COUPON_GOODS
.
getGoodsType
());
}
else
{
cartGoods
.
setGoodsType
(
GoodsTypeEnum
.
COUPON_GOODS
.
getGoodsType
());
}
// 商品券Id
String
spqId
=
spuId
.
substring
(
CommonsConstant
.
COUPON_PREFIX
.
length
());
cartGoods
.
setSpuId
(
spqId
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
View file @
0823f3e7
This diff is collapsed.
Click to expand it.
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CalculationServiceImpl.java
View file @
0823f3e7
...
...
@@ -115,7 +115,13 @@ public class CalculationServiceImpl {
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountGoods
>
calculationDiscountGoodsList
=
new
ArrayList
<>();
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
cartGoods
.
getCustomerCode
(),
cartGoods
.
getGoodsId
(),
cartGoods
.
getQty
(),
cartGoods
.
getFinalPrice
(),
cartGoods
.
getMemberDiscount
(),
cartGoods
);
addCalculationDiscountGoods
(
calculationDiscountGoodsList
,
StringUtils
.
isNotEmpty
(
cartGoods
.
getCustomerCode
())
?
cartGoods
.
getCustomerCode
()
:
""
,
StringUtils
.
isNotEmpty
(
cartGoods
.
getGoodsId
())
?
cartGoods
.
getGoodsId
()
:
""
,
null
!=
cartGoods
.
getQty
()
?
cartGoods
.
getQty
()
:
0
,
null
!=
cartGoods
.
getFinalPrice
()
?
cartGoods
.
getFinalPrice
()
:
0
,
null
!=
cartGoods
.
getMemberDiscount
()
?
cartGoods
.
getMemberDiscount
()
:
0
,
cartGoods
);
}
// 当加价购商品不为空时
...
...
@@ -401,9 +407,9 @@ public class CalculationServiceImpl {
long
totalPackgeAmount
=
0L
;
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
// 设置商品原价与商品现价的初始值
long
originalAmount
=
cartGoods
.
getOriginalPrice
()
*
cartGoods
.
getQty
()
;
long
amount
=
cartGoods
.
getOriginalPrice
()
*
cartGoods
.
getQty
()
;
long
packAmount
=
cartGoods
.
getPackPrice
()
*
cartGoods
.
getQty
()
;
long
originalAmount
=
null
!=
cartGoods
.
getOriginalPrice
()
?
cartGoods
.
getOriginalPrice
()
:
0
;
long
amount
=
null
!=
cartGoods
.
getOriginalPrice
()
?
cartGoods
.
getOriginalPrice
()
:
0
;
long
packAmount
=
null
!=
cartGoods
.
getPackPrice
()
?
cartGoods
.
getPackPrice
()
:
0
;
totalOriginalAmount
+=
originalAmount
;
totalAmount
+=
amount
;
totalPackgeAmount
+=
packAmount
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/CouponDiscountCalculation.java
View file @
0823f3e7
...
...
@@ -326,6 +326,53 @@ public class CouponDiscountCalculation {
}
public
List
<
CouponAvailableReq
>
buildAvailableCoupons
(
QueryCartInfoRequestVo
requestVo
,
List
<
CartGoods
>
cartGoods
){
List
<
CouponAvailableReq
>
resList
=
new
ArrayList
<>();
CouponAvailableReq
res
=
new
CouponAvailableReq
();
res
.
setProviderId
(
requestVo
.
getPartnerId
());
res
.
setMerchantId
(
requestVo
.
getPartnerId
());
res
.
setStoreId
(
requestVo
.
getStoreId
());
// List<String> couponList = new ArrayList<>();
res
.
setChannelIdList
(
commonService
.
getOrgCodes
(
requestVo
.
getPartnerId
(),
requestVo
.
getStoreId
()));
List
<
CouponProductVo
>
productList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
cartGoods
))
{
cartGoods
.
forEach
(
cartGood
->
{
// if (StringUtils.isNotEmpty(cartGood.getCouponCode())) {
// couponList.add(cartGood.getCouponCode());
// res.setCouponCodes(couponList);
// }
if
(
CollectionUtils
.
isNotEmpty
(
cartGood
.
getProductComboList
()))
{
cartGood
.
getProductComboList
().
forEach
(
comboxGoods
->
{
CouponProductVo
couponProductVo
=
new
CouponProductVo
();
couponProductVo
.
setAmount
(
Integer
.
valueOf
(
comboxGoods
.
getAmount
().
toString
()));
couponProductVo
.
setKeyProductCode
(
comboxGoods
.
getCustomerCode
());
couponProductVo
.
setQuantity
(
comboxGoods
.
getQty
());
couponProductVo
.
setProductId
(
comboxGoods
.
getGoodsId
());
couponProductVo
.
setCouponCode
(
cartGood
.
getCouponCode
());
couponProductVo
.
setCategoryCode
(
null
);
productList
.
add
(
couponProductVo
);
});
}
if
(
CollectionUtils
.
isNotEmpty
(
cartGood
.
getProductGroupList
()))
{
cartGood
.
getProductGroupList
().
forEach
(
comboxGoods
->
{
CouponProductVo
couponProductVo
=
new
CouponProductVo
();
couponProductVo
.
setAmount
(
Integer
.
valueOf
(
comboxGoods
.
getAmount
().
toString
()));
couponProductVo
.
setKeyProductCode
(
comboxGoods
.
getCustomerCode
());
couponProductVo
.
setQuantity
(
comboxGoods
.
getQty
());
couponProductVo
.
setProductId
(
comboxGoods
.
getGoodsId
());
couponProductVo
.
setCouponCode
(
cartGood
.
getCouponCode
());
couponProductVo
.
setCategoryCode
(
null
);
productList
.
add
(
couponProductVo
);
});
}
});
res
.
setProductList
(
productList
);
Long
totalAmount
=
createProductRequest
(
cartGoods
,
productList
);
res
.
setTotalAmount
(
Integer
.
valueOf
(
totalAmount
.
toString
()));
resList
.
add
(
res
);
}
return
resList
;
}
// public String getAppSecret(String partnerId) {
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/SetMealCalculation.java
View file @
0823f3e7
...
...
@@ -61,6 +61,7 @@ public class SetMealCalculation {
// cartGoods.setOriginalAmount(cartGoods.getOriginalPrice() * cartGoods.getQty());
cartGoods
.
setPackPrice
(
cartGoods
.
getPackPrice
()
*
cartGoods
.
getQty
());
// 可选商品现总价
productGroupTotalAmount
=
0
l
;
long
productGroupAmount
=
cartGoods
.
getProductGroupList
().
stream
().
mapToLong
(
t
->
t
.
getFinalPrice
()
*
t
.
getQty
()).
sum
();
productGroupTotalAmount
+=
productGroupAmount
*
cartGoods
.
getQty
();
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/calculation/TimeSaleCalculation.java
View file @
0823f3e7
...
...
@@ -58,6 +58,7 @@ public class TimeSaleCalculation {
Map
<
String
,
Integer
>
numberMap
=
new
HashMap
<>();
List
<
Integer
>
discounts
=
Arrays
.
asList
(
ActivityTypeEnum
.
TYPE_2
.
getCode
(),
ActivityTypeEnum
.
TYPE_21
.
getCode
(),
ActivityTypeEnum
.
TYPE_23
.
getCode
());
for
(
CartGoods
cartGoods
:
cartGoodsList
)
{
cartGoods
.
setOriginalPrice
(
null
!=
cartGoods
.
getOriginalPrice
()
?
cartGoods
.
getOriginalPrice
()
:
0
);
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
.
Goods
goods
;
if
((
goods
=
goodsMap
.
get
(
cartGoods
.
getGoodsId
()))
==
null
)
{
continue
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/CouponProductVo.java
View file @
0823f3e7
...
...
@@ -22,6 +22,6 @@ public class CouponProductVo {
private
String
productId
;
private
Integer
amount
;
private
Integer
quantity
;
private
String
couponCode
;
private
String
categoryCode
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/entity/MCoffeeAddGoodsRequestVo.java
View file @
0823f3e7
...
...
@@ -112,4 +112,9 @@ public class MCoffeeAddGoodsRequestVo {
*/
private
String
couponCode
;
/**
* 套餐名称
*/
private
String
groupName
;
}
shopping-cart-application-service/src/test/java/cn.freemud/service/CouponTest.java
View file @
0823f3e7
...
...
@@ -174,11 +174,22 @@ public class CouponTest {
//1617,1617,88600017957134272219
String
partnerId
=
"1864"
;
String
memberId
=
"1617"
;
/*
String code = "88600039947518452055";
CheckSpqInfoRequestDto
requestDto
=
new
CheckSpqInfoRequestDto
();
partnerId = "1864";
memberId = "1617";
code = "88600039947518452055";
*/
String
code
=
"88607422333514819844"
;
partnerId
=
"2399"
;
memberId
=
"2399"
;
code
=
"88607422333514819844"
;
CheckSpqInfoRequestDto
requestDto
=
new
CheckSpqInfoRequestDto
();
requestDto
.
setCouponCode
(
code
);
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setStoreId
(
"
111
"
);
requestDto
.
setStoreId
(
""
);
CheckSpqInfoResponseDto
memberCoupon
=
couponService
.
checkSpqInfo
(
requestDto
);
logger
.
info
(
JSONObject
.
toJSONString
(
memberCoupon
));
}
...
...
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