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
jenkins
order-group
Commits
69d01fc7
Commit
69d01fc7
authored
Dec 12, 2019
by
dingkai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mall购物车
parent
a8ee3722
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
870 additions
and
82 deletions
+870
-82
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
+2
-0
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
+18
-7
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
+4
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/AddGoodsByWeixinCardRequestVo.java
+1
-12
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/AddShoppingCartGoodsRequestVo.java
+4
-17
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/BaseRequestVo.java
+32
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
+8
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartClearRequestVo.java
+1
-10
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartInfoRequestVo.java
+5
-14
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/UpdateShoppingCartGoodsQtyRequestVo.java
+1
-16
shopping-cart-application-service/src/main/java/cn/freemud/enums/OrderChannelType.java
+3
-1
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
+672
-0
shopping-cart-application-service/src/test/java/cn.freemud/controller/ShoppingCartControllerMallTest.java
+114
-0
shopping-cart-application-service/src/test/java/cn.freemud/controller/ShoppingCartControllerTest.java
+4
-5
No files found.
shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
View file @
69d01fc7
...
@@ -96,6 +96,7 @@ public class ShoppingCartConvertAdapter {
...
@@ -96,6 +96,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto
.
setCouponCode
(
cartGoods
.
getCouponCode
());
cartGoodsDetailDto
.
setCouponCode
(
cartGoods
.
getCouponCode
());
cartGoodsDetailDto
.
setStockLimit
(
cartGoods
.
isStockLimit
());
cartGoodsDetailDto
.
setStockLimit
(
cartGoods
.
isStockLimit
());
cartGoodsDetailDto
.
setCustomerCode
(
cartGoods
.
getCustomerCode
());
cartGoodsDetailDto
.
setCustomerCode
(
cartGoods
.
getCustomerCode
());
cartGoodsDetailDto
.
setWeight
(
cartGoods
.
getWeight
());
cartGoodsDetailDto
.
setUnit
(
cartGoods
.
getUnit
());
cartGoodsDetailDto
.
setUnit
(
cartGoods
.
getUnit
());
cartGoodsDetailDto
.
setActivityDiscountsDtos
(
new
ArrayList
<>());
cartGoodsDetailDto
.
setActivityDiscountsDtos
(
new
ArrayList
<>());
cartGoodsDetailDto
.
setTotalDiscountAmount
(
0
);
cartGoodsDetailDto
.
setTotalDiscountAmount
(
0
);
...
@@ -227,6 +228,7 @@ public class ShoppingCartConvertAdapter {
...
@@ -227,6 +228,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto
.
setIsFixedProduct
(
isFixed
);
cartGoodsDetailDto
.
setIsFixedProduct
(
isFixed
);
cartGoodsDetailDto
.
setStockLimit
(
cartGoods
.
isStockLimit
());
cartGoodsDetailDto
.
setStockLimit
(
cartGoods
.
isStockLimit
());
cartGoodsDetailDto
.
setCustomerCode
(
comboxGoods
.
getCustomerCode
());
cartGoodsDetailDto
.
setCustomerCode
(
comboxGoods
.
getCustomerCode
());
cartGoodsDetailDto
.
setWeight
(
comboxGoods
.
getWeight
());
cartGoodsDetailDto
.
setUnit
(
comboxGoods
.
getUnit
());
cartGoodsDetailDto
.
setUnit
(
comboxGoods
.
getUnit
());
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
>
cartGoodsExtras
=
BeanUtil
.
convertBeans
(
comboxGoods
.
getExtra
(),
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
::
new
);
List
<
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
>
cartGoodsExtras
=
BeanUtil
.
convertBeans
(
comboxGoods
.
getExtra
(),
ShoppingCartGoodsDto
.
CartGoodsDetailDto
.
CartGoodsExtra
::
new
);
cartGoodsDetailDto
.
setExtraList
(
cartGoodsExtras
);
cartGoodsDetailDto
.
setExtraList
(
cartGoodsExtras
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/controller/ShoppingCartController.java
View file @
69d01fc7
...
@@ -14,8 +14,11 @@ package cn.freemud.controller;
...
@@ -14,8 +14,11 @@ package cn.freemud.controller;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.CreateOrderType
;
import
cn.freemud.enums.OrderChannelType
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.service.ShoppingCartNewService
;
import
cn.freemud.service.ShoppingCartNewService
;
import
cn.freemud.service.impl.ShoppingCartMallServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartMealServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartMealServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartNewServiceImpl
;
import
cn.freemud.service.impl.ShoppingCartNewServiceImpl
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
@@ -52,7 +55,7 @@ public class ShoppingCartController {
...
@@ -52,7 +55,7 @@ public class ShoppingCartController {
@ApiAnnotation
(
logMessage
=
"addGoodsByCard"
)
@ApiAnnotation
(
logMessage
=
"addGoodsByCard"
)
@PostMapping
(
value
=
"/addGoodsByCard"
)
@PostMapping
(
value
=
"/addGoodsByCard"
)
public
BaseResponse
addGoodsByCard
(
@Validated
@LogParams
@RequestBody
AddGoodsByWeixinCardRequestVo
request
)
{
public
BaseResponse
addGoodsByCard
(
@Validated
@LogParams
@RequestBody
AddGoodsByWeixinCardRequestVo
request
)
{
return
getInstanceBy
SessionId
(
request
.
getSessionId
()
).
addGoodsByCard
(
request
);
return
getInstanceBy
Request
(
request
).
addGoodsByCard
(
request
);
}
}
/**
/**
...
@@ -61,7 +64,7 @@ public class ShoppingCartController {
...
@@ -61,7 +64,7 @@ public class ShoppingCartController {
@ApiAnnotation
(
logMessage
=
"addGoods"
)
@ApiAnnotation
(
logMessage
=
"addGoods"
)
@PostMapping
(
value
=
"/addGoods"
)
@PostMapping
(
value
=
"/addGoods"
)
public
BaseResponse
addGoods
(
@Validated
@LogParams
@RequestBody
AddShoppingCartGoodsRequestVo
request
)
{
public
BaseResponse
addGoods
(
@Validated
@LogParams
@RequestBody
AddShoppingCartGoodsRequestVo
request
)
{
return
getInstanceBy
SessionId
(
request
.
getSessionId
()
).
addGoods
(
request
);
return
getInstanceBy
Request
(
request
).
addGoods
(
request
);
}
}
/**
/**
...
@@ -70,7 +73,7 @@ public class ShoppingCartController {
...
@@ -70,7 +73,7 @@ public class ShoppingCartController {
@ApiAnnotation
(
logMessage
=
"updateGoodsQty"
)
@ApiAnnotation
(
logMessage
=
"updateGoodsQty"
)
@PostMapping
(
value
=
"/updateGoodsQty"
)
@PostMapping
(
value
=
"/updateGoodsQty"
)
public
BaseResponse
updateGoodsQty
(
@Validated
@LogParams
@RequestBody
UpdateShoppingCartGoodsQtyRequestVo
request
)
{
public
BaseResponse
updateGoodsQty
(
@Validated
@LogParams
@RequestBody
UpdateShoppingCartGoodsQtyRequestVo
request
)
{
return
getInstanceBy
SessionId
(
request
.
getSessionId
()
).
updateGoodsQty
(
request
);
return
getInstanceBy
Request
(
request
).
updateGoodsQty
(
request
);
}
}
/**
/**
...
@@ -79,7 +82,7 @@ public class ShoppingCartController {
...
@@ -79,7 +82,7 @@ public class ShoppingCartController {
@ApiAnnotation
(
logMessage
=
"listCartGoods"
)
@ApiAnnotation
(
logMessage
=
"listCartGoods"
)
@PostMapping
(
value
=
"/listCartGoods"
)
@PostMapping
(
value
=
"/listCartGoods"
)
public
BaseResponse
listCartGoods
(
@Validated
@LogParams
@RequestBody
ShoppingCartInfoRequestVo
request
)
{
public
BaseResponse
listCartGoods
(
@Validated
@LogParams
@RequestBody
ShoppingCartInfoRequestVo
request
)
{
return
getInstanceBy
SessionId
(
request
.
getSessionId
()
).
getGoodsList
(
request
);
return
getInstanceBy
Request
(
request
).
getGoodsList
(
request
);
}
}
/**
/**
...
@@ -89,7 +92,7 @@ public class ShoppingCartController {
...
@@ -89,7 +92,7 @@ public class ShoppingCartController {
@ApiAnnotation
(
logMessage
=
"listCartGoodsCheck"
)
@ApiAnnotation
(
logMessage
=
"listCartGoodsCheck"
)
@PostMapping
(
value
=
"/listCartGoodsCheck"
)
@PostMapping
(
value
=
"/listCartGoodsCheck"
)
public
BaseResponse
listCartGoodsCheck
(
@Validated
@LogParams
@RequestBody
ShoppingCartInfoRequestVo
request
)
{
public
BaseResponse
listCartGoodsCheck
(
@Validated
@LogParams
@RequestBody
ShoppingCartInfoRequestVo
request
)
{
return
getInstanceBy
SessionId
(
request
.
getSessionId
()
).
getGoodsListCheck
(
request
);
return
getInstanceBy
Request
(
request
).
getGoodsListCheck
(
request
);
}
}
// /**
// /**
...
@@ -115,7 +118,7 @@ public class ShoppingCartController {
...
@@ -115,7 +118,7 @@ public class ShoppingCartController {
return
getInstanceByIAppId
(
IappIdType
.
WC_XCX
.
getCode
()).
clear
(
request
);
return
getInstanceByIAppId
(
IappIdType
.
WC_XCX
.
getCode
()).
clear
(
request
);
}
}
return
getInstanceBy
SessionId
(
sessionId
).
clear
(
request
);
return
getInstanceBy
Request
(
request
).
clear
(
request
);
}
}
/**
/**
...
@@ -131,12 +134,20 @@ public class ShoppingCartController {
...
@@ -131,12 +134,20 @@ public class ShoppingCartController {
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
}
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
=
getShoppingCartGoodsApportionRequestVo
.
getShoppingCartInfoRequestVo
();
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
=
getShoppingCartGoodsApportionRequestVo
.
getShoppingCartInfoRequestVo
();
return
getInstanceBy
SessionId
(
shoppingCartInfoRequestVo
.
getSessionId
()
).
return
getInstanceBy
Request
(
shoppingCartInfoRequestVo
).
getShoppingCartGoods
(
shoppingCartInfoRequestVo
,
getShoppingCartGoods
(
shoppingCartInfoRequestVo
,
getShoppingCartGoodsApportionRequestVo
.
getPremiumExchangeActivity
());
getShoppingCartGoodsApportionRequestVo
.
getPremiumExchangeActivity
());
}
}
private
ShoppingCartNewService
getInstanceByRequest
(
BaseRequestVo
requestVo
)
{
if
(
requestVo
.
getChannelType
()
!=
null
&&
OrderChannelType
.
MALL
.
getCode
().
equals
(
requestVo
.
getChannelType
()))
{
return
SDKCommonBaseContextWare
.
getBean
(
ShoppingCartMallServiceImpl
.
class
);
}
else
{
return
getInstanceBySessionId
(
requestVo
.
getSessionId
());
}
}
private
ShoppingCartNewService
getInstanceBySessionId
(
String
sessionId
)
{
private
ShoppingCartNewService
getInstanceBySessionId
(
String
sessionId
)
{
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/ShoppingCartGoodsDto.java
View file @
69d01fc7
...
@@ -179,6 +179,10 @@ public class ShoppingCartGoodsDto {
...
@@ -179,6 +179,10 @@ public class ShoppingCartGoodsDto {
*/
*/
private
String
customerCode
;
private
String
customerCode
;
/**
/**
* 重量
*/
private
Double
weight
;
/**
* 单位
* 单位
*/
*/
private
String
unit
;
private
String
unit
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/AddGoodsByWeixinCardRequestVo.java
View file @
69d01fc7
...
@@ -18,22 +18,11 @@ import javax.validation.constraints.NotNull;
...
@@ -18,22 +18,11 @@ import javax.validation.constraints.NotNull;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
*/
@Data
@Data
public
class
AddGoodsByWeixinCardRequestVo
{
public
class
AddGoodsByWeixinCardRequestVo
extends
BaseRequestVo
{
@NotEmpty
(
message
=
"sessionId不能为空"
)
@NotEmpty
(
message
=
"sessionId不能为空"
)
private
String
sessionId
;
private
String
sessionId
;
/**
/**
* 商户Id
*/
@NotEmpty
(
message
=
"partnerId不能为空"
)
private
String
partnerId
;
/**
* 门店Id
*/
@NotEmpty
(
message
=
"shopId不能为空"
)
private
String
shopId
;
/**
* 微信appId
* 微信appId
*/
*/
@NotEmpty
(
message
=
"appId不能为空"
)
@NotEmpty
(
message
=
"appId不能为空"
)
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/AddShoppingCartGoodsRequestVo.java
View file @
69d01fc7
...
@@ -19,20 +19,10 @@ import org.hibernate.validator.constraints.NotEmpty;
...
@@ -19,20 +19,10 @@ import org.hibernate.validator.constraints.NotEmpty;
import
java.util.List
;
import
java.util.List
;
@Data
@Data
public
class
AddShoppingCartGoodsRequestVo
{
public
class
AddShoppingCartGoodsRequestVo
extends
BaseRequestVo
{
@NotEmpty
(
message
=
"sessionId不能为空"
)
@NotEmpty
(
message
=
"sessionId不能为空"
)
private
String
sessionId
;
private
String
sessionId
;
/**
* 商户Id
*/
@NotEmpty
(
message
=
"partnerId不能为空"
)
private
String
partnerId
;
/**
* 门店Id
*/
@NotEmpty
(
message
=
"shopId不能为空"
)
private
String
shopId
;
/**
/**
* 微信appId
* 微信appId
...
@@ -49,11 +39,6 @@ public class AddShoppingCartGoodsRequestVo {
...
@@ -49,11 +39,6 @@ public class AddShoppingCartGoodsRequestVo {
*/
*/
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
private
List
<
CartGoods
.
CartGoodsExtra
>
extra
;
/**
* 下单类型 CreateOrderType 自取和外卖
*/
private
Integer
orderType
;
private
String
version
;
private
String
version
;
/**
/**
...
@@ -76,6 +61,8 @@ public class AddShoppingCartGoodsRequestVo {
...
@@ -76,6 +61,8 @@ public class AddShoppingCartGoodsRequestVo {
private
String
appType
;
private
String
appType
;
private
String
tableNumber
;
private
String
tableNumber
;
/**
* 数量
*/
private
Integer
qty
;
private
Integer
qty
;
}
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/BaseRequestVo.java
0 → 100644
View file @
69d01fc7
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.hibernate.validator.constraints.NotEmpty
;
@Data
public
class
BaseRequestVo
{
private
String
sessionId
;
/**
* 商户Id
*/
@NotEmpty
(
message
=
"partnerId不能为空"
)
private
String
partnerId
;
/**
* 门店Id
*/
@NotEmpty
(
message
=
"shopId不能为空"
)
private
String
shopId
;
/**
* 下单类型 CreateOrderType 外卖、到店、商城
*/
private
Integer
orderType
;
/**
* 渠道类型 OrderChannelType
*/
private
String
channelType
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/CartGoods.java
View file @
69d01fc7
...
@@ -40,6 +40,10 @@ public class CartGoods {
...
@@ -40,6 +40,10 @@ public class CartGoods {
*/
*/
private
boolean
weightType
;
private
boolean
weightType
;
/**
/**
* 重量
*/
private
Double
weight
;
/**
* 单位
* 单位
*/
*/
private
String
unit
;
private
String
unit
;
...
@@ -222,6 +226,10 @@ public class CartGoods {
...
@@ -222,6 +226,10 @@ public class CartGoods {
*/
*/
private
boolean
weightType
;
private
boolean
weightType
;
/**
/**
* 重量
*/
private
Double
weight
;
/**
* 单位
* 单位
*/
*/
private
String
unit
;
private
String
unit
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartClearRequestVo.java
View file @
69d01fc7
...
@@ -16,21 +16,12 @@ import lombok.Data;
...
@@ -16,21 +16,12 @@ import lombok.Data;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.hibernate.validator.constraints.NotEmpty
;
@Data
@Data
public
class
ShoppingCartClearRequestVo
{
public
class
ShoppingCartClearRequestVo
extends
BaseRequestVo
{
// @NotEmpty(message = "sessionId不能为空")
private
String
sessionId
;
@NotEmpty
(
message
=
"partnerId不能为空"
)
private
String
partnerId
;
@NotEmpty
(
message
=
"shopId不能为空"
)
private
String
shopId
;
//@NotEmpty(message = "appId不能为空")
//@NotEmpty(message = "appId不能为空")
private
String
appId
;
private
String
appId
;
private
String
userId
;
private
String
userId
;
private
Integer
orderType
;
/**
/**
* 清空操作类型(围餐)
* 清空操作类型(围餐)
* 1:下单成功清理下单购物车
* 1:下单成功清理下单购物车
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartInfoRequestVo.java
View file @
69d01fc7
...
@@ -25,7 +25,10 @@ import java.util.List;
...
@@ -25,7 +25,10 @@ import java.util.List;
@NoArgsConstructor
@NoArgsConstructor
@Data
@Data
@Builder
@Builder
public
class
ShoppingCartInfoRequestVo
{
public
class
ShoppingCartInfoRequestVo
extends
BaseRequestVo
{
@NotEmpty
(
message
=
"sessionId不能为空"
)
private
String
sessionId
;
private
String
version
;
private
String
version
;
/**
/**
...
@@ -33,15 +36,6 @@ public class ShoppingCartInfoRequestVo {
...
@@ -33,15 +36,6 @@ public class ShoppingCartInfoRequestVo {
*/
*/
private
Integer
carVer
;
private
Integer
carVer
;
@NotEmpty
(
message
=
"sessionId不能为空"
)
private
String
sessionId
;
@NotEmpty
(
message
=
"partnerId不能为空"
)
private
String
partnerId
;
@NotEmpty
(
message
=
"shopId不能为空"
)
private
String
shopId
;
@NotEmpty
(
message
=
"appId不能为空"
)
@NotEmpty
(
message
=
"appId不能为空"
)
private
String
appId
;
private
String
appId
;
/**
/**
...
@@ -56,10 +50,6 @@ public class ShoppingCartInfoRequestVo {
...
@@ -56,10 +50,6 @@ public class ShoppingCartInfoRequestVo {
* 优惠券对应的活动号
* 优惠券对应的活动号
*/
*/
private
String
activityCode
;
private
String
activityCode
;
/**
* 下单类型 CreateOrderType 自取和外卖
*/
private
Integer
orderType
;
/**
/**
* 到店类型 orderType 传1的时候 如果reachStoreTyp为空转成订单类型4 如果不为空存储4(打包带走)和5(店内就餐)
* 到店类型 orderType 传1的时候 如果reachStoreTyp为空转成订单类型4 如果不为空存储4(打包带走)和5(店内就餐)
...
@@ -90,6 +80,7 @@ public class ShoppingCartInfoRequestVo {
...
@@ -90,6 +80,7 @@ public class ShoppingCartInfoRequestVo {
*/
*/
private
BuyMemberCard
buyMemberCard
;
private
BuyMemberCard
buyMemberCard
;
@Data
@Data
public
final
static
class
SendGoods
{
public
final
static
class
SendGoods
{
/**
/**
...
...
shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/UpdateShoppingCartGoodsQtyRequestVo.java
View file @
69d01fc7
...
@@ -18,20 +18,10 @@ import org.hibernate.validator.constraints.NotEmpty;
...
@@ -18,20 +18,10 @@ import org.hibernate.validator.constraints.NotEmpty;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
@Data
@Data
public
class
UpdateShoppingCartGoodsQtyRequestVo
{
public
class
UpdateShoppingCartGoodsQtyRequestVo
extends
BaseRequestVo
{
@NotEmpty
(
message
=
"sessionId不能为空"
)
@NotEmpty
(
message
=
"sessionId不能为空"
)
private
String
sessionId
;
private
String
sessionId
;
/**
* 商户Id
*/
@NotEmpty
(
message
=
"partnerId不能为空"
)
private
String
partnerId
;
/**
* 门店Id
*/
@NotEmpty
(
message
=
"shopId不能为空"
)
private
String
shopId
;
@NotEmpty
(
message
=
"appId不能为空"
)
@NotEmpty
(
message
=
"appId不能为空"
)
private
String
appId
;
private
String
appId
;
...
@@ -47,11 +37,6 @@ public class UpdateShoppingCartGoodsQtyRequestVo {
...
@@ -47,11 +37,6 @@ public class UpdateShoppingCartGoodsQtyRequestVo {
@NotNull
(
message
=
"qty不能为空"
)
@NotNull
(
message
=
"qty不能为空"
)
private
Integer
qty
;
private
Integer
qty
;
/**
* 下单类型 CreateOrderType 自取和外卖
*/
private
Integer
orderType
;
private
String
version
;
private
String
version
;
/**
/**
* 购物车版本号(围餐)
* 购物车版本号(围餐)
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/OrderChannelType.java
View file @
69d01fc7
...
@@ -16,7 +16,9 @@ public enum OrderChannelType {
...
@@ -16,7 +16,9 @@ public enum OrderChannelType {
SAAS
(
"saas"
,
"saas小程序"
),
SAAS
(
"saas"
,
"saas小程序"
),
IMG
(
"img"
,
"爱马哥小程序"
);
IMG
(
"img"
,
"爱马哥小程序"
),
MALL
(
"mall"
,
"商城"
);
private
String
code
;
private
String
code
;
...
...
shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
69d01fc7
...
@@ -57,6 +57,7 @@ public enum ResponseResult {
...
@@ -57,6 +57,7 @@ public enum ResponseResult {
STORE_ITEM_NOT_IN_DELIVERY_LIMIT_AMOUNT
(
"43009"
,
"订单金额未满足门店起送费"
),
STORE_ITEM_NOT_IN_DELIVERY_LIMIT_AMOUNT
(
"43009"
,
"订单金额未满足门店起送费"
),
STORE_BUSINESS_HOUR_ERROR
(
"43010"
,
"门店营业时间错误"
),
STORE_BUSINESS_HOUR_ERROR
(
"43010"
,
"门店营业时间错误"
),
STORE_NOT_ENABLE_COLLECT_GOODS
(
"43011"
,
"门店不支持到店"
),
STORE_NOT_ENABLE_COLLECT_GOODS
(
"43011"
,
"门店不支持到店"
),
STORE_MALL_NOT_FOUND
(
"43012"
,
"商城门店不存在"
),
/**
/**
* 购物车状态码
* 购物车状态码
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartMallServiceImpl.java
0 → 100644
View file @
69d01fc7
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title:
* @Package cn.freemud.service.impl
* @Description:
* @author: ping.wu
* @date: 2018/5/18 19:46
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.ShoppingCartConvertAdapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ShoppingCartConstant
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.activity.ActivityQueryDto
;
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.*
;
import
cn.freemud.service.thirdparty.*
;
import
cn.freemud.utils.PromotionFactory
;
import
cn.freemud.utils.ResponseUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo
;
import
com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO
;
import
com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant
;
import
com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService
;
import
com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartMallBaseServiceImpl
;
import
com.google.common.collect.Lists
;
import
lombok.Data
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
java
.
util
.
stream
.
Collectors
.
toList
;
@Slf4j
@Service
public
class
ShoppingCartMallServiceImpl
implements
ShoppingCartNewService
{
@Autowired
private
ItemService
itemService
;
@Autowired
private
ShoppingCartMallBaseServiceImpl
shoppingCartBaseService
;
@Autowired
private
BuriedPointService
buriedPointService
;
@Autowired
private
StockClient
stockClient
;
@Autowired
private
AssortmentSdkService
assortmentSdkService
;
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
/**
* 从微信卡券向购物车中添加商品
*/
@Override
public
BaseResponse
addGoodsByCard
(
AddGoodsByWeixinCardRequestVo
request
)
{
throw
new
UnsupportedOperationException
(
"暂不支持此操作"
);
}
/**
* 添加商品
*
* @param addShoppingCartGoodsRequestVo
* @return
*/
@Override
public
BaseResponse
addGoods
(
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
)
{
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
addShoppingCartGoodsRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
addShoppingCartGoodsRequestVo
.
getPartnerId
();
String
appId
=
addShoppingCartGoodsRequestVo
.
getAppId
();
String
spuId
=
addShoppingCartGoodsRequestVo
.
getSpuId
();
String
skuId
=
addShoppingCartGoodsRequestVo
.
getSkuId
();
String
goodsId
=
StringUtils
.
isEmpty
(
skuId
)
?
spuId
:
skuId
;
String
storeId
=
this
.
getBindMallShopId
(
appId
);
addShoppingCartGoodsRequestVo
.
setShopId
(
storeId
);
/**
* 不支持优惠券
*/
if
(
spuId
.
startsWith
(
CommonsConstant
.
COUPON_PREFIX
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
COUPON_SHOP_NOTSUPPORT
);
}
CartGoods
cartGoods
=
ShoppingCartConvertAdapter
.
convent2CartGoods
(
addShoppingCartGoodsRequestVo
);
List
<
Long
>
productIds
=
Lists
.
newArrayList
(
Long
.
parseLong
(
goodsId
));
//商品skuId或者商品券的商品id
String
spuId2
=
spuId
;
// 获取商品详细信息
List
<
ProductBeanDTO
>
productBeanListSpuClass
=
assortmentSdkService
.
getProductsInfoSdk
(
partnerId
,
storeId
,
Collections
.
singletonList
(
spuId2
),
this
.
shoppingCartBaseService
);
//查询多个商品库存信息
queryManyGoodsStocks
(
addShoppingCartGoodsRequestVo
,
productIds
,
productBeanListSpuClass
,
skuId
);
//缓存中获取购物车商品信息
// 注意,围餐和点餐redis数据结构不一样
List
<
CartGoods
>
allCartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
addShoppingCartGoodsRequestVo
.
getSessionId
(),
null
,
shoppingCartBaseService
);
if
(
CollectionUtils
.
isEmpty
(
allCartGoodsList
))
{
allCartGoodsList
=
new
ArrayList
<>();
}
String
productName
=
null
;
//添加非商品券商品
Map
<
String
,
List
<
CartGoods
>>
map
=
addNotProductGoods
(
addShoppingCartGoodsRequestVo
,
cartGoods
,
goodsId
,
userId
,
shoppingCartGoodsResponseVo
,
allCartGoodsList
,
productBeanListSpuClass
);
for
(
Map
.
Entry
<
String
,
List
<
CartGoods
>>
entry
:
map
.
entrySet
())
{
productName
=
entry
.
getKey
();
allCartGoodsList
=
entry
.
getValue
();
}
// 当商品数量被设为0时
if
(
Objects
.
equals
(
cartGoods
.
getQty
(),
0
))
{
assortmentSdkService
.
updateGoodsQtyBySdk
(
partnerId
,
userId
,
storeId
,
cartGoods
.
getCartGoodsUid
(),
0
,
""
,
shoppingCartBaseService
);
}
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
allCartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
allCartGoodsList
,
null
);
//埋点添加购物车行为
this
.
buriedPointShoppingCart
(
addShoppingCartGoodsRequestVo
,
spuId
,
productName
);
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
/**
* 埋点添加购物车行为
*
* @param addShoppingCartGoodsRequestVo
* @param spuId
* @param productName
*/
private
void
buriedPointShoppingCart
(
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
String
spuId
,
String
productName
)
{
if
(
StringUtils
.
isEmpty
(
productName
))
{
return
;
}
List
<
ShoppingCartSkuAddRequestVo
.
ShoppingCartSkuProductVo
>
productVos
=
Lists
.
newArrayList
();
ShoppingCartSkuAddRequestVo
.
ShoppingCartSkuProductVo
productVo
=
new
ShoppingCartSkuAddRequestVo
.
ShoppingCartSkuProductVo
();
productVo
.
setProductName
(
productName
);
productVo
.
setProductId
(
spuId
);
productVo
.
setSpuId
(
spuId
);
productVos
.
add
(
productVo
);
BuriedPointShoppingCartRequestDto
shoppingCartRequestDto
=
BuriedPointShoppingCartRequestDto
.
builder
()
.
sessionId
(
addShoppingCartGoodsRequestVo
.
getSessionId
()).
partnerId
(
addShoppingCartGoodsRequestVo
.
getPartnerId
())
.
storeId
(
addShoppingCartGoodsRequestVo
.
getShopId
()).
build
();
buriedPointService
.
buriedPointAddShoppingCart
(
productVos
,
shoppingCartRequestDto
);
}
/**
* 更新商品数量
*
* @param updateShoppingCartGoodsQtyRequestVo
* @return
*/
@Override
public
BaseResponse
updateGoodsQty
(
UpdateShoppingCartGoodsQtyRequestVo
updateShoppingCartGoodsQtyRequestVo
)
{
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
updateShoppingCartGoodsQtyRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
updateShoppingCartGoodsQtyRequestVo
.
getPartnerId
();
String
appId
=
updateShoppingCartGoodsQtyRequestVo
.
getAppId
();
String
storeId
=
this
.
getBindMallShopId
(
appId
);
updateShoppingCartGoodsQtyRequestVo
.
setShopId
(
storeId
);
String
cartGoodsUid
=
updateShoppingCartGoodsQtyRequestVo
.
getCartGoodsUid
();
Integer
qty
=
updateShoppingCartGoodsQtyRequestVo
.
getQty
();
// 先验证商品是否存在
CartGoods
cartGoods
=
assortmentSdkService
.
getCartGoodsBySdk
(
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
""
,
shoppingCartBaseService
);
if
(
cartGoods
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_UPDATE_ERROR
);
}
// 检查购物车商品库存数量
checkUpdateStock
(
updateShoppingCartGoodsQtyRequestVo
,
cartGoods
);
// 更新购物车中数量
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
updateGoodsQtyBySdk
(
partnerId
,
userId
,
storeId
,
cartGoodsUid
,
qty
,
""
,
shoppingCartBaseService
);
// check购物车中所有商品
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
cartGoodsList
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
updateShoppingCartGoodsQtyRequestVo
.
getOrderType
(),
""
,
shoppingCartBaseService
);
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsg
());
}
cartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
updateShoppingCartGoodsQtyRequestVo
.
getSessionId
(),
""
,
shoppingCartBaseService
);
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
null
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
());
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
/**
* 检查购物车商品库存数量
*
* @param updateShoppingCartGoodsQtyRequestVo
* @param cartGoods
*/
private
void
checkUpdateStock
(
UpdateShoppingCartGoodsQtyRequestVo
updateShoppingCartGoodsQtyRequestVo
,
CartGoods
cartGoods
)
{
Integer
qty
=
updateShoppingCartGoodsQtyRequestVo
.
getQty
();
// 购物车商品数量减少
if
(
cartGoods
.
getQty
()
>
qty
)
{
return
;
}
String
partnerId
=
updateShoppingCartGoodsQtyRequestVo
.
getPartnerId
();
String
storeId
=
updateShoppingCartGoodsQtyRequestVo
.
getShopId
();
//查询商品信息
List
<
String
>
pids
=
new
ArrayList
<>();
pids
.
add
(
cartGoods
.
getGoodsId
());
Map
<
String
,
GetProductsVo
>
products
=
itemService
.
getProducts
(
pids
,
partnerId
,
storeId
);
GetProductsVo
getProductsVo
=
products
.
get
(
cartGoods
.
getGoodsId
());
// 商品没有库存限制
if
((
getProductsVo
==
null
)
||
(
getProductsVo
.
getStockLimit
()
!=
1
))
{
return
;
}
GetProductStockRequestDto
requestDto
=
new
GetProductStockRequestDto
();
requestDto
.
setChannel
(
"saas"
);
requestDto
.
setPartnerId
(
partnerId
);
requestDto
.
setStoreId
(
storeId
);
requestDto
.
setProductIds
(
Collections
.
singletonList
(
Long
.
parseLong
(
cartGoods
.
getGoodsId
())));
GetProductStockResponseDto
availableStocks
=
stockClient
.
getAvailableStocks
(
requestDto
);
if
((
availableStocks
!=
null
)
&&
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
availableStocks
.
getCode
())))
{
if
((
CollectionUtils
.
isEmpty
(
availableStocks
.
getResult
()))
||
(
qty
>
availableStocks
.
getResult
().
get
(
0
).
getQty
()))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
}
}
/**
* 购物车商品详情接口
*
* @param shoppingCartInfoRequestVo
* @return
*/
@Override
public
BaseResponse
getGoodsList
(
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
shoppingCartInfoRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
shoppingCartInfoRequestVo
.
getPartnerId
();
String
appId
=
shoppingCartInfoRequestVo
.
getAppId
();
String
storeId
=
this
.
getBindMallShopId
(
appId
);
shoppingCartInfoRequestVo
.
setShopId
(
storeId
);
// 获取购物车商品
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
if
(
cartGoodsList
==
null
)
{
cartGoodsList
=
new
ArrayList
<>();
}
// check购物车中所有商品
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
cartGoodsList
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
.
getOrderType
(),
""
,
shoppingCartBaseService
);
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsg
());
}
cartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
//1.5.4 多规格的sku商品计算包装费
//checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
// 促销活动的优惠金额计算
this
.
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
());
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
/**
* svc 卡支付使用
* @param shoppingCartInfoRequestVo
* @return
*/
@Override
public
BaseResponse
getGoodsListCheck
(
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
throw
new
UnsupportedOperationException
(
"暂不支持此操作"
);
}
/**
* 清空购物车
*
* @param shoppingCartClearRequestVo
* @return
*/
@Override
public
BaseResponse
clear
(
ShoppingCartClearRequestVo
shoppingCartClearRequestVo
)
{
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
shoppingCartClearRequestVo
.
getSessionId
());
String
appId
=
shoppingCartClearRequestVo
.
getAppId
();
if
(
StringUtils
.
isBlank
(
appId
))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARAMETER_MISSING
,
"appId不能为空"
);
}
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
shoppingCartClearRequestVo
.
getPartnerId
();
String
storeId
=
shoppingCartClearRequestVo
.
getShopId
();
/**
* 支付成功回调 传的门店id就是商城的门店id,其他传的是点餐门店id
*/
if
(!
ObjectUtils
.
equals
(
shoppingCartClearRequestVo
.
getOperationType
(),
OperationTypeEnum
.
PAY_SUCCESS
.
getOperationType
()))
{
storeId
=
this
.
getBindMallShopId
(
appId
);
}
// 构造请求参数,进行清空购物车
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
CartParamDto
cartParamDto
=
assortmentSdkService
.
getCartParamDto
(
partnerId
,
storeId
,
userId
);
shoppingCartBaseService
.
clear
(
cartParamDto
,
LogThreadLocal
.
getTrackingNo
());
// 支付成功回调不查询任何数据,直接返回成功结果
if
(
ObjectUtils
.
equals
(
shoppingCartClearRequestVo
.
getOperationType
(),
OperationTypeEnum
.
PAY_SUCCESS
.
getOperationType
()))
{
return
ResponseUtil
.
success
();
}
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
ActivityTip
activityTip
=
new
ActivityTip
();
shoppingCartGoodsResponseVo
.
setActivityTip
(
activityTip
);
shoppingCartGoodsResponseVo
.
setProducts
(
new
ArrayList
<>());
shoppingCartGoodsResponseVo
.
setProductsCount
(
0
);
return
ResponseUtil
.
success
(
shoppingCartGoodsResponseVo
);
}
/**
* 供点单获取优惠均摊调用,传入的shopId为绑定商城的shopId
*/
@Override
public
BaseResponse
<
ShoppingCartGoodsDto
>
getShoppingCartGoods
(
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
CreateOrderVo
.
PremiumExchangeActivity
premiumExchangeActivity
)
{
ShoppingCartGoodsDto
shoppingCartGoodsDto
=
new
ShoppingCartGoodsDto
();
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
=
new
ShoppingCartGoodsResponseVo
();
// 获取用户信息
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
customerInfoManager
.
getCustomerInfoByObject
(
shoppingCartInfoRequestVo
.
getSessionId
());
UserLoginInfoDto
userLoginInfoDto
=
convert2UserLoginInfoDto
(
assortmentCustomerInfoVo
);
String
userId
=
userLoginInfoDto
.
getMemberId
();
String
partnerId
=
shoppingCartInfoRequestVo
.
getPartnerId
();
String
appId
=
shoppingCartInfoRequestVo
.
getAppId
();
String
storeId
=
shoppingCartInfoRequestVo
.
getShopId
();
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
=
shoppingCartInfoRequestVo
.
getSendGoods
();
// 获取购物车商品
List
<
CartGoods
>
cartGoodsList
=
assortmentSdkService
.
getShoppingCart
(
partnerId
,
storeId
,
userId
,
null
,
""
,
shoppingCartBaseService
);
if
(
cartGoodsList
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_GETINFO_INVAILD
);
}
// check购物车中所有商品(商品是否存在,价格变动,券是否支持当前点餐方式)
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
cartGoodsList
,
partnerId
,
storeId
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
.
getOrderType
(),
""
,
shoppingCartBaseService
);
com
.
freemud
.
sdk
.
api
.
assortment
.
shoppingcart
.
domain
.
ShoppingCartGoodsResponseVo
cartGoodsResponseVo
=
checkCartRequest
.
getShoppingCartGoodsResponseVo
();
//商品不再售卖状态或价格变动,直接返回报错
if
(
cartGoodsResponseVo
!=
null
)
{
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isHasInvalidGoods
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_ITEM_CHECK_INVAILD
);
}
if
(
cartGoodsResponseVo
.
getCartGoodsStates
()
!=
null
&&
cartGoodsResponseVo
.
getCartGoodsStates
().
isPriceChanged
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
SHOPPING_CART_ACTIVITY_CHANGE
);
}
shoppingCartGoodsResponseVo
.
setToastMsg
(
cartGoodsResponseVo
.
getToastMsg
());
}
cartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
// 多规格的sku商品计算包装费
//this.checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
assortmentSdkService
.
setShoppingCart
(
partnerId
,
storeId
,
userId
,
cartGoodsList
,
assortmentCustomerInfoVo
.
getSessionId
(),
""
,
this
.
shoppingCartBaseService
);
if
(
CollectionUtils
.
isNotEmpty
(
sendGoodsList
))
{
processSendGoods
(
sendGoodsList
,
partnerId
,
storeId
,
shoppingCartBaseService
);
}
else
{
//组装加价购商品
if
(
null
!=
premiumExchangeActivity
&&
CollectionUtils
.
isNotEmpty
(
premiumExchangeActivity
.
getProducts
()))
{
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoods
=
premiumExchangeActivity
.
getProducts
().
stream
().
map
(
product
->
{
ShoppingCartInfoRequestVo
.
SendGoods
sendGood
=
new
ShoppingCartInfoRequestVo
.
SendGoods
();
sendGood
.
setGoodsId
(
product
.
getSkuId
());
sendGood
.
setQty
(
product
.
getQty
());
return
sendGood
;
}).
collect
(
toList
());
shoppingCartInfoRequestVo
.
setSendGoods
(
sendGoods
);
}
}
// 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount
(
null
,
null
,
null
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
shoppingCartInfoRequestVo
,
userLoginInfoDto
);
//设置更新响应信息
setAddAndUpdateResponse
(
shoppingCartGoodsResponseVo
,
cartGoodsList
,
shoppingCartGoodsResponseVo
.
getToastMsg
());
//设置均摊信息
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
null
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
return
ResponseUtil
.
success
(
shoppingCartGoodsDto
);
}
@Override
public
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
getActivityCalculationDiscountResponse
(
String
partnerId
,
String
storeId
,
String
userId
,
String
appId
,
Integer
orderType
,
List
<
CartGoods
>
cartGoodsList
,
List
<
ActivityCalculationDiscountRequestDto
.
CalculationDiscountCoupon
>
coupons
,
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
)
{
return
null
;
}
/**
* 处理加价购商品
*
* @param sendGoodsList
* @param partnerId
* @param storeId
*/
private
void
processSendGoods
(
List
<
ShoppingCartInfoRequestVo
.
SendGoods
>
sendGoodsList
,
String
partnerId
,
String
storeId
,
ShoppingCartBaseService
shoppingCartService
)
{
List
<
String
>
goodsIds
=
sendGoodsList
.
parallelStream
().
map
(
ShoppingCartInfoRequestVo
.
SendGoods
::
getGoodsId
).
collect
(
Collectors
.
toList
());
List
<
ProductBeanDTO
>
productBeanList
=
assortmentSdkService
.
getProductsInfoSdk
(
partnerId
,
storeId
,
goodsIds
,
shoppingCartService
);
// 将productBeanList转换为Map,key为pid,即goodsId
Map
<
String
,
ProductBeanDTO
>
productBeanMap
=
productBeanList
.
parallelStream
()
.
collect
(
Collectors
.
toMap
(
ProductBeanDTO:
:
getPid
,
Function
.
identity
(),
(
k1
,
k2
)
->
k1
));
// 遍历购物车进行加个更新
for
(
ShoppingCartInfoRequestVo
.
SendGoods
sendGoods
:
sendGoodsList
)
{
ProductBeanDTO
productBean
;
if
((
productBean
=
productBeanMap
.
get
(
sendGoods
.
getGoodsId
()))
!=
null
)
{
// 设置加价购商品原价
sendGoods
.
setOriginalPrice
(
productBean
.
getOriginalPrice
());
}
else
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_SENDGOODS_NOT_EXIST
);
}
}
}
/**
* 当ToastMsg为空时才赋值
*
* @param shoppingCartGoodsResponseVo
* @param message
*/
private
void
setToastMsgIfNotExist
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
String
message
)
{
if
(
StringUtils
.
isEmpty
(
shoppingCartGoodsResponseVo
.
getToastMsg
()))
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
message
);
}
}
@Data
static
class
CartGoodsStates
{
/**
* 价格变化
*/
boolean
priceChanged
;
/**
* 非法商品
*/
boolean
hasInvalidGoods
;
/**
* 点餐方式
*/
boolean
orderWayFlag
;
}
/**
* 促销活动的优惠金额计算
*
* @param calculationDiscountResult
* @param cartGoodsList
* @param shoppingCartGoodsResponseVo
*/
private
void
updateShoppingCartGoodsDiscount
(
CouponPromotionVO
couponPromotionVO
,
ActivityQueryDto
activityQueryDto
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
List
<
CartGoods
>
cartGoodsList
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
,
UserLoginInfoDto
userLoginInfoDto
)
{
//默认计算优惠
DefaultPromotionService
defaultPromotionService
=
(
DefaultPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
DEFAULT_PROMOTION
);
defaultPromotionService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
//套餐
SetMealServiceImpl
setMealService
=
(
SetMealServiceImpl
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
SET_MEAL
);
setMealService
.
updateShoppingCartGoodsDiscount
(
couponPromotionVO
,
activityQueryDto
,
calculationDiscountResult
,
cartGoodsList
,
shoppingCartGoodsResponseVo
,
userLoginInfoDto
,
shoppingCartInfoRequestVo
);
}
/**
* 促销均摊计算
*
* @param shoppingCartGoodsResponseVo
* @param calculationDiscountResult
* @param shoppingCartGoodsDto
* @param premiumExchangeActivity
* @param shoppingCartInfoRequestVo
*/
private
void
updateShoppingCartGoodsApportion
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
ActivityCalculationDiscountResponseDto
.
CalculationDiscountResult
calculationDiscountResult
,
ShoppingCartGoodsDto
shoppingCartGoodsDto
,
CreateOrderVo
.
PremiumExchangeActivity
premiumExchangeActivity
,
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
)
{
DefaultPromotionService
defaultPromotionService
=
(
DefaultPromotionService
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
DEFAULT_PROMOTION
);
defaultPromotionService
.
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
calculationDiscountResult
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
//套餐
SetMealServiceImpl
setMealService
=
(
SetMealServiceImpl
)
PromotionFactory
.
getPromotionService
(
ShoppingCartPromotionEnum
.
SET_MEAL
);
setMealService
.
updateShoppingCartGoodsApportion
(
shoppingCartGoodsResponseVo
,
calculationDiscountResult
,
shoppingCartGoodsDto
,
premiumExchangeActivity
,
shoppingCartInfoRequestVo
);
}
/**
* 获取购物车商品,添加商品,校验商品合法性,合并商品行,重新set购物车信息到缓存中
*
* @param cartGoods
* @param userId
* @param shoppingCartGoodsResponseVo
* @param addShoppingCartGoodsRequestVo
*/
@Override
public
List
<
CartGoods
>
updateCartGoodsLegal
(
CartGoods
cartGoods
,
String
userId
,
ShoppingCartGoodsBaseResponseVo
shoppingCartGoodsResponseVo
,
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
List
<
CartGoods
>
oldAllCartGoodsList
)
{
//存储新添加的购物车信息
List
<
CartGoods
>
nowCartGoodsList
=
new
ArrayList
<>();
oldAllCartGoodsList
.
add
(
cartGoods
);
//当商品全部添加完毕,校验购物车商品(是否合法,上下架,点餐方式,是否在当前菜单中...),并移除非法商品
CheckCartRequest
checkCartRequest
=
assortmentSdkService
.
checkShoppingCartSdk
(
oldAllCartGoodsList
,
addShoppingCartGoodsRequestVo
.
getPartnerId
(),
addShoppingCartGoodsRequestVo
.
getShopId
(),
shoppingCartGoodsResponseVo
,
addShoppingCartGoodsRequestVo
.
getOrderType
(),
""
,
shoppingCartBaseService
);
if
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
()
!=
null
)
{
shoppingCartGoodsResponseVo
.
setToastMsg
(
checkCartRequest
.
getShoppingCartGoodsResponseVo
().
getToastMsg
());
}
List
<
CartGoods
>
allCartGoodsList
=
JSONArray
.
parseArray
(
JSONObject
.
toJSONString
(
checkCartRequest
.
getCartGoodsList
()),
CartGoods
.
class
);
//判断当前商品在购物车是否已存在,存在则数量+添加的数量,不存在商品行 + 添加的数量
allCartGoodsList
.
forEach
(
oldCartGoods
->
{
int
index
;
if
((
index
=
nowCartGoodsList
.
indexOf
(
oldCartGoods
))
>=
0
)
{
nowCartGoodsList
.
get
(
index
).
setQty
(
nowCartGoodsList
.
get
(
index
).
getQty
()
+
oldCartGoods
.
getQty
());
}
else
{
nowCartGoodsList
.
add
(
oldCartGoods
);
}
});
// 重新set购物车信息到缓存中
assortmentSdkService
.
setShoppingCart
(
addShoppingCartGoodsRequestVo
.
getPartnerId
(),
addShoppingCartGoodsRequestVo
.
getShopId
(),
userId
,
nowCartGoodsList
,
addShoppingCartGoodsRequestVo
.
getSessionId
(),
addShoppingCartGoodsRequestVo
.
getTableNumber
(),
this
.
shoppingCartBaseService
);
return
nowCartGoodsList
;
}
/**
* 添加非商品券商品
*
* @param addShoppingCartGoodsRequestVo
* @param cartGoods
* @param goodsId
* @param userId
* @param shoppingCartGoodsResponseVo
* @param allCartGoodsList
* @param productBeanListSpuClass
*/
private
Map
<
String
,
List
<
CartGoods
>>
addNotProductGoods
(
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
CartGoods
cartGoods
,
String
goodsId
,
String
userId
,
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
List
<
CartGoods
>
allCartGoodsList
,
List
<
ProductBeanDTO
>
productBeanListSpuClass
)
{
//校验合法性,更新缓存中购物车信息
allCartGoodsList
=
updateCartGoodsLegal
(
cartGoods
,
userId
,
shoppingCartGoodsResponseVo
,
addShoppingCartGoodsRequestVo
,
allCartGoodsList
);
// 如果购物车中有商品券,则当前添加的商品是特价商品时,需要提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
boolean
haveCouponProduct
=
allCartGoodsList
.
parallelStream
().
anyMatch
(
k
->
k
.
getCartGoodsUid
().
startsWith
(
CommonsConstant
.
COUPON_PREFIX
));
if
(
haveCouponProduct
&&
isSpecialGoods
(
addShoppingCartGoodsRequestVo
.
getPartnerId
(),
addShoppingCartGoodsRequestVo
.
getShopId
(),
userId
,
addShoppingCartGoodsRequestVo
.
getAppId
(),
goodsId
,
addShoppingCartGoodsRequestVo
.
getOrderType
()))
{
// 如果购物车先加入商品券,再加入促销商品,toast提示“已选商品券,与其他优惠商品不同享,商品将恢复原价”
setToastMsgIfNotExist
(
shoppingCartGoodsResponseVo
,
ShoppingCartConstant
.
HAS_GOODS_COUPON_WHEN_ADD_SPECIAL_GOODS
);
}
Map
<
String
,
List
<
CartGoods
>>
map
=
new
HashMap
<>();
map
.
put
(
productBeanListSpuClass
.
get
(
0
).
getName
(),
allCartGoodsList
);
return
map
;
}
/**
* 查询多个商品库存信息
*
* @param addShoppingCartGoodsRequestVo
* @param productIds
* @param productBeanListSpuClass
* @param skuId
*/
private
void
queryManyGoodsStocks
(
AddShoppingCartGoodsRequestVo
addShoppingCartGoodsRequestVo
,
List
<
Long
>
productIds
,
List
<
ProductBeanDTO
>
productBeanListSpuClass
,
String
skuId
)
{
GetProductStockRequestDto
requestDto
=
new
GetProductStockRequestDto
();
requestDto
.
setChannel
(
"saas"
);
requestDto
.
setPartnerId
(
addShoppingCartGoodsRequestVo
.
getPartnerId
());
requestDto
.
setStoreId
(
addShoppingCartGoodsRequestVo
.
getShopId
());
requestDto
.
setProductIds
(
productIds
);
GetProductStockResponseDto
availableStocks
=
null
;
if
(
productBeanListSpuClass
.
get
(
0
).
getType
()
==
ProductType
.
NOSPEC
.
getCode
()
&&
productBeanListSpuClass
.
get
(
0
).
getStockLimit
()
==
1
)
{
availableStocks
=
stockClient
.
getAvailableStocks
(
requestDto
);
}
else
{
for
(
ProductBeanDTO
.
SkuProductBean
skuProductBean
:
productBeanListSpuClass
.
get
(
0
).
getSkuList
())
{
if
(
skuId
.
equals
(
skuProductBean
.
getSkuId
())
&&
skuProductBean
.
getStockLimit
()
==
1
)
{
availableStocks
=
stockClient
.
getAvailableStocks
(
requestDto
);
break
;
}
}
}
if
(
availableStocks
!=
null
&&
!
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
availableStocks
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
if
(
availableStocks
!=
null
&&
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
availableStocks
.
getCode
())
&&
(
CollectionUtils
.
isEmpty
(
availableStocks
.
getResult
())
||
availableStocks
.
getResult
().
get
(
0
).
getQty
()
==
null
||
availableStocks
.
getResult
().
get
(
0
).
getQty
()
<=
0
))
{
throw
new
ServiceException
(
ResponseResult
.
SHOPPING_CART_STOCK_NOT_HAVE
);
}
}
/**
* 组装添加商品和更新商品和查询的响应信息
* <p>
* 查询购物车计算包装费
*
* @param shoppingCartGoodsResponseVo
* @param cartGoodsList
* @param toastMsg
*/
private
void
setAddAndUpdateResponse
(
ShoppingCartGoodsResponseVo
shoppingCartGoodsResponseVo
,
List
<
CartGoods
>
cartGoodsList
,
String
toastMsg
)
{
shoppingCartGoodsResponseVo
.
setProducts
(
cartGoodsList
);
shoppingCartGoodsResponseVo
.
setProductsCount
(
cartGoodsList
.
size
());
if
(
StringUtils
.
isNotEmpty
(
toastMsg
))
{
setToastMsgIfNotExist
(
shoppingCartGoodsResponseVo
,
toastMsg
);
}
shoppingCartGoodsResponseVo
.
setChanged
(
false
);
}
private
UserLoginInfoDto
convert2UserLoginInfoDto
(
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
)
{
if
(
assortmentCustomerInfoVo
==
null
||
assortmentCustomerInfoVo
.
getMemberId
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
UserLoginInfoDto
userLoginInfoDto
=
new
UserLoginInfoDto
();
userLoginInfoDto
.
setMemberId
(
assortmentCustomerInfoVo
.
getMemberId
());
userLoginInfoDto
.
setOpenId
(
assortmentCustomerInfoVo
.
getOpenId
());
userLoginInfoDto
.
setWxAppid
(
assortmentCustomerInfoVo
.
getWxAppId
());
userLoginInfoDto
.
setSessionKey
(
assortmentCustomerInfoVo
.
getSessionKey
());
userLoginInfoDto
.
setMobile
(
assortmentCustomerInfoVo
.
getMobile
());
userLoginInfoDto
.
setAppsecret
(
assortmentCustomerInfoVo
.
getAppSecret
());
userLoginInfoDto
.
setPartnerId
(
assortmentCustomerInfoVo
.
getPartnerId
());
userLoginInfoDto
.
setNewMemeber
(
assortmentCustomerInfoVo
.
getNewMember
());
userLoginInfoDto
.
setUnionId
(
assortmentCustomerInfoVo
.
getUnionId
());
return
userLoginInfoDto
;
}
/**
* 获取商城门店id
*/
private
String
getBindMallShopId
(
String
wxAppId
)
{
String
shopId
=
shoppingCartBaseService
.
getBindMallShopId
(
wxAppId
,
LogThreadLocal
.
getTrackingNo
());
if
(
StringUtils
.
isEmpty
(
shopId
))
{
throw
new
ServiceException
(
ResponseResult
.
STORE_MALL_NOT_FOUND
);
}
return
shopId
;
}
}
shopping-cart-application-service/src/test/java/cn.freemud/controller/ShoppingCartControllerMallTest.java
0 → 100644
View file @
69d01fc7
package
cn
.
freemud
.
controller
;
import
cn.freemud.ShoppingCartApplication
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.ResponseResult
;
import
com.alibaba.fastjson.JSONObject
;
import
org.junit.Assert
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.http.MediaType
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
org.springframework.test.web.servlet.MockMvc
;
import
org.springframework.test.web.servlet.setup.MockMvcBuilders
;
import
org.springframework.web.context.WebApplicationContext
;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.
post
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultHandlers
.
print
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
jsonPath
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ShoppingCartControllerTest
* @Package cn.freemud.controller
* @Description: 简单描述下这个类是做什么用的
* @author: zhenghuan.yang
* @date: 2018/6/25 17:30
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
ShoppingCartApplication
.
class
)
public
class
ShoppingCartControllerMallTest
{
@Autowired
private
WebApplicationContext
wac
;
private
MockMvc
mockMvc
;
@Before
public
void
setUp
()
{
mockMvc
=
MockMvcBuilders
.
webAppContextSetup
(
wac
).
build
();
}
/**
* 添加商品
*/
@Test
public
void
addGoods
()
{
String
str
=
"{\"spuId\":\"154916516745371156\",\"skuId\":\"\",\"qty\":10,\"categoryId\":\"0101\",\"categoryName\":\"1分钱\","
+
"\"productComboList\":[],\"productGroupList\":[],\"channelType\":\"mall\",\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\","
+
"\"sessionId\":\"testMallUser\",\"orderType\":\"\",\"shopId\":\"0000622\"}"
;
try
{
mockMvc
.
perform
(
post
(
"/shoppingCart/addGoods"
).
content
(
str
).
contentType
(
MediaType
.
APPLICATION_JSON_UTF8
).
accept
(
MediaType
.
APPLICATION_JSON_UTF8
)).
andDo
(
print
()).
andExpect
(
jsonPath
(
"$.code"
).
value
(
"100"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 更新数量
*/
@Test
public
void
updateGoodsQty
()
{
String
requestJson
=
"{\"shopId\":\"0000622\",\"cartGoodsUid\":\"3c6c126b-ce1a-4489-930d-28940c4edb0a\",\"qty\":3,\"channelType\":\"mall\","
+
"\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\",\"sessionId\":\"testMallUser\",\"orderType\":\"\"}"
;
try
{
mockMvc
.
perform
(
post
(
"/shoppingCart/updateGoodsQty"
).
content
(
requestJson
).
contentType
(
MediaType
.
APPLICATION_JSON_UTF8
).
accept
(
MediaType
.
APPLICATION_JSON_UTF8
)).
andDo
(
print
()).
andExpect
(
jsonPath
(
"$.code"
).
value
(
"100"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
@Test
public
void
listCartGoods
()
{
String
requestJson
=
"{\"shopId\":\"0000622\",\"useCustomerScore\":0,\"couponCode\":\"\",\"activityCode\":\"\",\"flag\":\"\",\"sendGoods\":[],"
+
"\"buyMemberCard\":null,\"channelType\":\"mall\",\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\",\"sessionId\":\"testMallUser\",\"orderType\":\"\"}"
;
try
{
mockMvc
.
perform
(
post
(
"/shoppingCart/listCartGoods"
).
content
(
requestJson
).
contentType
(
MediaType
.
APPLICATION_JSON_UTF8
).
accept
(
MediaType
.
APPLICATION_JSON_UTF8
)).
andDo
(
print
()).
andExpect
(
jsonPath
(
"$.code"
).
value
(
"100"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 清空购物车
*/
@Test
public
void
clearCartGoods
()
{
String
str
=
"{\"channelType\":\"mall\",\"partnerId\":\"1864\",\"appId\":\"wxb78fb7c6218cb52c\",\"sessionId\":\"testMallUser\",\"orderType\":\"\",\"shopId\":\"0000622\"}"
;
try
{
mockMvc
.
perform
(
post
(
"/shoppingCart/clearCartGoods"
).
content
(
str
).
contentType
(
MediaType
.
APPLICATION_JSON_UTF8
).
accept
(
MediaType
.
APPLICATION_JSON_UTF8
)).
andDo
(
print
()).
andExpect
(
jsonPath
(
"$.code"
).
value
(
"100"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
shopping-cart-application-service/src/test/java/cn.freemud/controller/ShoppingCartControllerTest.java
View file @
69d01fc7
...
@@ -83,11 +83,10 @@ public class ShoppingCartControllerTest {
...
@@ -83,11 +83,10 @@ public class ShoppingCartControllerTest {
*/
*/
@Test
@Test
public
void
getDetail
()
{
public
void
getDetail
()
{
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
=
ShoppingCartInfoRequestVo
.
builder
()
ShoppingCartInfoRequestVo
shoppingCartInfoRequestVo
=
new
ShoppingCartInfoRequestVo
();
.
partnerId
(
"360bb48b-5316-458a-903e-9a44c7f339b1"
)
shoppingCartInfoRequestVo
.
setPartnerId
(
"360bb48b-5316-458a-903e-9a44c7f339b1"
);
.
sessionId
(
"107001391351857666"
)
shoppingCartInfoRequestVo
.
setSessionId
(
"107001391351857666"
);
.
shopId
(
"1036"
)
shoppingCartInfoRequestVo
.
setShopId
(
"1036"
);
.
build
();
String
str
=
JSONObject
.
toJSONString
(
shoppingCartInfoRequestVo
);
String
str
=
JSONObject
.
toJSONString
(
shoppingCartInfoRequestVo
);
try
{
try
{
mockMvc
.
perform
(
post
(
"/shoppingCart/info"
).
content
(
str
).
mockMvc
.
perform
(
post
(
"/shoppingCart/info"
).
content
(
str
).
...
...
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