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
04305ea3
Commit
04305ea3
authored
Apr 16, 2021
by
hanghang.wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拼团
parent
70473d7c
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
383 additions
and
121 deletions
+383
-121
order-application-service/src/main/java/cn/freemud/adapter/SpellGroupOrderAdapter.java
+0
-0
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+0
-7
order-application-service/src/main/java/cn/freemud/controller/SpellGroupOrderController.java
+39
-0
order-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
+7
-2
order-application-service/src/main/java/cn/freemud/entities/dto/CreateSpellGroupOrderDto.java
+31
-4
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/CalculationDiscountRequestDto.java
+5
-0
order-application-service/src/main/java/cn/freemud/entities/vo/CreateSpellGroupOrderReq.java
+37
-29
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+2
-3
order-application-service/src/main/java/cn/freemud/manager/SpellGroupOrderDataManager.java
+121
-0
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
+0
-6
order-application-service/src/main/java/cn/freemud/service/SpellGroupOrderService.java
+22
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+0
-24
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+27
-45
order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/thirdparty/PromotionDiscountClient.java
+14
-1
order-application-service/src/test/java/cn.freemud/controller/SpellGroupOrderControllerTest.java
+76
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtendedReq.java
+2
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/SpellGroupOrderAdapter.java
0 → 100644
View file @
04305ea3
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
04305ea3
...
@@ -74,13 +74,6 @@ public class OrderController {
...
@@ -74,13 +74,6 @@ public class OrderController {
return
orderAdapterService
.
createOrderNew
(
createOrderVo
);
return
orderAdapterService
.
createOrderNew
(
createOrderVo
);
}
}
@ApiOperation
(
value
=
"创建拼团订单"
,
notes
=
"创建拼团订单"
,
produces
=
"application/json"
)
@ApiAnnotation
(
logMessage
=
"createSpellGroupOrder"
)
@PostMapping
(
"/createSpellGroupOrder"
)
public
BaseResponse
createSpellGroupOrder
(
@Validated
@LogParams
@RequestBody
CreateSpellGroupOrderReq
request
)
{
return
orderAdapterService
.
createSpellGroupOrder
(
request
);
}
/**
/**
* 麦咖啡创建订单
* 麦咖啡创建订单
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/controller/SpellGroupOrderController.java
0 → 100644
View file @
04305ea3
package
cn
.
freemud
.
controller
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.CreateSpellGroupOrderReq
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.service.SpellGroupOrderService
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author wanghanghang
* @title: SpellGroupOrderController
* @projectName order-group
* @description: 拼团订单Controller
* @date 2021/4/16上午9:50
*/
@RequestMapping
(
"/order"
)
@RestController
public
class
SpellGroupOrderController
{
@Autowired
private
SpellGroupOrderService
spellGroupOrderService
;
@ApiOperation
(
value
=
"创建拼团订单"
,
notes
=
"创建拼团订单"
,
produces
=
"application/json"
)
@ApiAnnotation
(
logMessage
=
"createSpellGroupOrder"
)
@PostMapping
(
"/createSpellGroupOrder"
)
public
BaseResponse
createSpellGroupOrder
(
@Validated
@LogParams
@RequestBody
CreateSpellGroupOrderReq
request
)
{
return
spellGroupOrderService
.
createSpellGroupOrder
(
request
);
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountResponseDto.java
View file @
04305ea3
package
cn
.
freemud
.
entities
.
dto
;
package
cn
.
freemud
.
entities
.
dto
;
import
com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO
;
import
com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
@@ -60,8 +62,6 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -60,8 +62,6 @@ public class ActivityCalculationDiscountResponseDto {
* 使用到的优惠券及优惠金额
* 使用到的优惠券及优惠金额
*/
*/
private
List
<
CouponResults
>
couponDiscounts
;
private
List
<
CouponResults
>
couponDiscounts
;
/**
/**
* 多种优惠方案计算出的优惠集合,并按优惠力度倒序排列
* 多种优惠方案计算出的优惠集合,并按优惠力度倒序排列
*/
*/
...
@@ -73,6 +73,11 @@ public class ActivityCalculationDiscountResponseDto {
...
@@ -73,6 +73,11 @@ public class ActivityCalculationDiscountResponseDto {
*/
*/
List
<
ActivityPrompt
>
activityPrompts
;
List
<
ActivityPrompt
>
activityPrompts
;
/**
* 活动集合
*/
List
<
ActivityUpdateStockRequest
.
StockBeanDto
>
stocks
;
@Data
@Data
public
static
class
ActivityPrompt
{
public
static
class
ActivityPrompt
{
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/CreateSpellGroupOrderDto.java
View file @
04305ea3
package
cn
.
freemud
.
entities
.
dto
;
package
cn
.
freemud
.
entities
.
dto
;
import
cn.freemud.entities.dto.product.ProductInfo
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountResultDto
;
import
cn.freemud.entities.vo.CreateSpellGroupOrderReq
;
import
cn.freemud.entities.vo.CreateSpellGroupOrderReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq
;
import
com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
...
@@ -19,13 +24,35 @@ public class CreateSpellGroupOrderDto extends CreateSpellGroupOrderReq {
...
@@ -19,13 +24,35 @@ public class CreateSpellGroupOrderDto extends CreateSpellGroupOrderReq {
/**
/**
* 用户收货地址信息 ,入参不需要传,通过校验receiveId获取
* 用户收货地址信息 ,入参不需要传,通过校验receiveId获取
*/
*/
public
UserDeliveryInfoDto
userDeliveryInfoDto
;
//
public UserDeliveryInfoDto userDeliveryInfoDto;
private
String
userName
;
/**
*当前用户id
private
String
mobile
;
*/
private
String
userId
;
/**
*当前用户昵称
*/
private
String
nickName
;
/**
*存储送货地址信息
*/
List
<
DeliveryContactInfoCreateReq
>
deliveryContactInfoCreateReqList
;
List
<
DeliveryContactInfoCreateReq
>
deliveryContactInfoCreateReqList
;
/**
* 存储商品信息
*/
private
List
<
ProductInfo
>
products
;
/**
* 存储促销返回商品算价信息
*/
private
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
;
/**
* 门店信息
*/
private
StoreResponse
storeResponse
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/promotion/CalculationDiscountRequestDto.java
View file @
04305ea3
...
@@ -87,4 +87,9 @@ public class CalculationDiscountRequestDto {
...
@@ -87,4 +87,9 @@ public class CalculationDiscountRequestDto {
* saas-自提 saasdelivery-外卖 saasmall-微商城 ....
* saas-自提 saasdelivery-外卖 saasmall-微商城 ....
*/
*/
private
String
productChannel
;
private
String
productChannel
;
/**
* 拼团活动是,必传活动号
*/
private
String
groupActivityCode
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateSpellGroupOrderReq.java
View file @
04305ea3
package
cn
.
freemud
.
entities
.
vo
;
package
cn
.
freemud
.
entities
.
vo
;
import
cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto
;
import
lombok.Builder
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* @author
freemud
* @author
wanghanghang
* @title: CreateSpellGroupOrderReq
* @title: CreateSpellGroupOrderReq
* @projectName order-group
* @projectName order-group
* @description:
TODO
* @description:
创建拼团订单request
* @date 2021/4/14上午9:52
* @date 2021/4/14上午9:52
*/
*/
@Data
@Data
...
@@ -24,62 +21,73 @@ public class CreateSpellGroupOrderReq {
...
@@ -24,62 +21,73 @@ public class CreateSpellGroupOrderReq {
/**
/**
* 参与拼团编号->团编号
* 参与拼团编号->团编号
*/
*/
private
String
S
pellGroupCode
;
private
String
s
pellGroupCode
;
//
@NotEmpty(message = "门店ID 不能为空")
@NotEmpty
(
message
=
"门店ID 不能为空"
)
private
String
storeId
;
private
String
storeId
;
private
String
thirdShopId
;
@NotEmpty
(
message
=
"商户号 不能为空"
)
private
String
partnerId
;
private
String
partnerId
;
@Builder
.
Default
@Builder
.
Default
private
String
menuType
=
"saas"
;
private
String
menuType
=
"saasmall"
;
/**
/**
* 渠道类型 OrderChannelType
* 渠道类型 OrderChannelType
*/
*/
private
String
channelType
;
private
String
channelType
=
"saasmall"
;
/*下单渠道必填,根据此字段的值判断是自营或第三方,来走不同的状态机 详细见 orderClientType枚举*/
private
Integer
orderClient
;
/**
* 下单支付渠道类型
*/
@NotNull
(
message
=
"下单支付渠道类型不能为空"
)
private
Byte
payChannelType
;
/**
/**
* 订单类型 1 到店自取 2 外卖 枚举CreateOrderType
* 订单类型 1 到店自取 2 外卖 枚举CreateOrderType
*/
*/
//@NotNull(message = "下单类型不能为空")
@Builder
.
Default
private
Integer
orderType
;
private
Integer
orderType
=
3
;
/**
/**
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
*/
*/
@NotNull
@Builder
.
Default
private
Byte
marketingType
;
private
Integer
marketingType
=
2
;
/**
/**
* 收货地址ID
* 收货地址ID
*/
*/
@NotEmpty
(
message
=
"收货地址ID不能为空"
)
private
String
receiveId
;
private
String
receiveId
;
/**
/**
*
收货地址
*
拼团活动号
*/
*/
private
String
receiveAddress
;
@NotEmpty
(
message
=
"拼团活动号不能为空"
)
private
String
activityCode
;
/**
/**
*
收货用户名
*
拼团商品集合,本次只会传入一条
*/
*/
private
String
receiveUsername
;
@NotNull
(
message
=
"拼团商品信息不能为空"
)
private
List
<
SpellGroupProduct
>
spellGroupProductList
;
/**
/**
*
收货电话
*
订单备注,预留字段
*/
*/
@Pattern
(
regexp
=
"^1[3|4|5|6|7|8|9][0-9]{9}$"
,
message
=
"手机号码格式不正确"
)
private
String
orderRemark
;
private
String
receiveMobile
;
//拼团商品集合,本次只会传入一条
private
List
<
SpellGroupProduct
>
spellGroupProductList
;
/**
* 拼团商品
*/
@Data
@Data
public
static
class
SpellGroupProduct
{
public
static
class
SpellGroupProduct
{
private
String
productId
;
private
String
productId
;
private
Integer
productQuantity
;
}
}
}
}
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
04305ea3
...
@@ -240,12 +240,11 @@ public enum ResponseResult {
...
@@ -240,12 +240,11 @@ public enum ResponseResult {
* 拼团订单状态码 80001 - 80101
* 拼团订单状态码 80001 - 80101
*/
*/
SPELL_GROUP_THE_CLUB_IS_FULL
(
"80001"
,
"拼团已满员"
),
SPELL_GROUP_THE_CLUB_IS_FULL
(
"80001"
,
"拼团已满员"
),
SPELL_GROUP_CREAT_ORDER_ERROR
(
"80002"
,
"创建拼团订单失败"
),
SPELL_GROUP_ACTIVITE_AMOUNT_ERROR
(
"80003"
,
"返回的价格是商品原价,则表示库存不足或者活动关闭"
),
;
;
private
String
code
;
private
String
code
;
private
String
message
;
private
String
message
;
...
...
order-application-service/src/main/java/cn/freemud/manager/SpellGroupOrderDataManager.java
0 → 100644
View file @
04305ea3
package
cn
.
freemud
.
manager
;
import
cn.freemud.adapter.SpellGroupOrderAdapter
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.CreateSpellGroupOrderDto
;
import
cn.freemud.entities.dto.GetProductInfoDto
;
import
cn.freemud.entities.dto.ProductInfosDto
;
import
cn.freemud.entities.dto.product.ProductInfo
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.service.thirdparty.PromotionDiscountClient
;
import
cn.freemud.service.thirdparty.StoreItemClient
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author wanghanghang
* @title: SpellGroupOrderDataManager
* @projectName order-group
* @description: TODO
* @date 2021/4/15下午3:45
*/
@Component
public
class
SpellGroupOrderDataManager
{
@Autowired
private
StoreItemClient
storeItemClient
;
@Autowired
private
PromotionDiscountClient
promotionDiscountClient
;
//会员SDK
@Autowired
private
MemberCenterService
memberCenterService
;
//门店SDK
@Autowired
private
StoreCenterService
storeCenterService
;
/**
* 查询门店信息
*/
public
StoreResponse
getStoreInfo
(
String
partnerId
,
String
shopId
,
String
trackingNo
)
{
// 获取门店信息
StoreInfoRequest
storeInfoRequest
=
new
StoreInfoRequest
(
partnerId
,
shopId
,
null
);
return
storeCenterService
.
getStoreInfo
(
storeInfoRequest
,
trackingNo
);
}
/**
* 查询地址信息
*
* @param receiveId
* @param partnerId
* @param trackingNo
* @return
*/
public
QueryReceiveAddressResponse
queryOrderReceiveAddress
(
String
receiveId
,
String
partnerId
,
String
trackingNo
)
{
//校验收货地址是否可配送
QueryReceiveAddressRequest
request
=
new
QueryReceiveAddressRequest
(
receiveId
,
partnerId
);
BaseResponse
<
QueryReceiveAddressResponse
>
queryReceiveAddressResponse
=
memberCenterService
.
queryReceiveAddressById
(
request
,
trackingNo
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryReceiveAddressResponse
.
getCode
())
||
queryReceiveAddressResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SPELL_GROUP_THE_CLUB_IS_FULL
);
}
QueryReceiveAddressResponse
receiveAddressResult
=
queryReceiveAddressResponse
.
getData
();
return
receiveAddressResult
;
}
/**
* 查询商品信息
*
* @param createSpellGroupOrderDto
* @return
*/
public
List
<
ProductInfo
>
queryProductInfos
(
CreateSpellGroupOrderDto
createSpellGroupOrderDto
)
{
GetProductInfoDto
getProductInfoReq
=
new
GetProductInfoDto
();
List
<
String
>
proIds
=
new
ArrayList
<>();
createSpellGroupOrderDto
.
getSpellGroupProductList
().
forEach
(
proInfo
->
{
proIds
.
add
(
proInfo
.
getProductId
());
});
getProductInfoReq
.
setProductIds
(
proIds
);
getProductInfoReq
.
setPartnerId
(
createSpellGroupOrderDto
.
getPartnerId
());
getProductInfoReq
.
setShopId
(
createSpellGroupOrderDto
.
getStoreId
());
getProductInfoReq
.
setProductInfoType
(
1
);
ProductInfosDto
productInfosReps
=
storeItemClient
.
listProductInfos
(
getProductInfoReq
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
productInfosReps
.
getCode
())
||
productInfosReps
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SPELL_GROUP_THE_CLUB_IS_FULL
);
}
return
productInfosReps
.
getData
().
getProducts
();
}
/**
* 查询算价信息
*
* @param calculationDiscountRequestDto
* @return
*/
public
ActivityCalculationDiscountResponseDto
queryCalculationDiscount
(
CalculationDiscountRequestDto
calculationDiscountRequestDto
)
{
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
=
promotionDiscountClient
.
calculationDiscountSharing
(
calculationDiscountRequestDto
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
activityCalculationDiscountResponseDto
.
getStatusCode
())
||
activityCalculationDiscountResponseDto
.
getResult
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
SPELL_GROUP_THE_CLUB_IS_FULL
);
}
return
activityCalculationDiscountResponseDto
;
}
}
order-application-service/src/main/java/cn/freemud/service/Orderservice.java
View file @
04305ea3
...
@@ -154,11 +154,5 @@ public interface Orderservice {
...
@@ -154,11 +154,5 @@ public interface Orderservice {
*/
*/
BaseResponse
queryTodayOrders
(
QueryOrderByConditionsRequestVo
queryOrderByConditionsRequestVo
);
BaseResponse
queryTodayOrders
(
QueryOrderByConditionsRequestVo
queryOrderByConditionsRequestVo
);
/**
* 创建拼团订单
* @param createSpellGroupOrderReq
* @return
*/
public
BaseResponse
createSpellGroupOrder
(
CreateSpellGroupOrderReq
createSpellGroupOrderReq
);
}
}
order-application-service/src/main/java/cn/freemud/service/SpellGroupOrderService.java
0 → 100644
View file @
04305ea3
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.CreateSpellGroupOrderReq
;
/**
* @author wanghanghang
* @title: SpellGroupOrderService
* @projectName order-group
* @description: TODO
* @date 2021/4/15下午9:01
*/
public
interface
SpellGroupOrderService
{
/**
* 创建拼团订单
* @param createSpellGroupOrderReq
* @return
*/
public
BaseResponse
createSpellGroupOrder
(
CreateSpellGroupOrderReq
createSpellGroupOrderReq
);
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
04305ea3
...
@@ -917,31 +917,7 @@ public class CheckOrder {
...
@@ -917,31 +917,7 @@ public class CheckOrder {
createOrderVo
.
setUserDeliveryInfoDto
(
userDeliveryInfoDto
);
createOrderVo
.
setUserDeliveryInfoDto
(
userDeliveryInfoDto
);
}
}
/**
* 校验拼团订单收货地址
*/
public
void
checkSpellGroupOrderReceiveAddress
(
String
receiveId
,
String
partnerId
,
String
trackingNo
,
CreateSpellGroupOrderDto
createSpellGroupOrderDto
)
{
//校验收货地址是否可配送
QueryReceiveAddressRequest
request
=
new
QueryReceiveAddressRequest
(
receiveId
,
partnerId
);
BaseResponse
<
QueryReceiveAddressResponse
>
queryReceiveAddressResponse
=
memberCenterService
.
queryReceiveAddressById
(
request
,
trackingNo
);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryReceiveAddressResponse
.
getCode
())
||
queryReceiveAddressResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_GETRECEIVEADDRESS_ERROR
);
}
QueryReceiveAddressResponse
receiveAddressResult
=
queryReceiveAddressResponse
.
getData
();
DeliveryContactInfoCreateReq
deliveryContactInfoCreateReq
=
new
DeliveryContactInfoCreateReq
();
deliveryContactInfoCreateReq
.
setRelateObjectType
(
1
);
deliveryContactInfoCreateReq
.
setAddressDetail
(
receiveAddressResult
.
getReceiveAddress
());
deliveryContactInfoCreateReq
.
setInfoType
(
1
);
deliveryContactInfoCreateReq
.
setLatitude
(
new
BigDecimal
(
receiveAddressResult
.
getLatitude
()));
deliveryContactInfoCreateReq
.
setLongitude
(
new
BigDecimal
(
receiveAddressResult
.
getLongitude
()));
deliveryContactInfoCreateReq
.
setMobile
(
StringUtils
.
isEmpty
(
receiveAddressResult
.
getMobile
())
?
receiveAddressResult
.
getReceiveMobile
()
:
receiveAddressResult
.
getMobile
());
deliveryContactInfoCreateReq
.
setContactsName
(
receiveAddressResult
.
getReceiveName
());
createSpellGroupOrderDto
.
setUserName
(
receiveAddressResult
.
getReceiveName
());
createSpellGroupOrderDto
.
setMobile
(
StringUtils
.
isEmpty
(
receiveAddressResult
.
getMobile
())
?
receiveAddressResult
.
getReceiveMobile
()
:
receiveAddressResult
.
getMobile
());
createSpellGroupOrderDto
.
getDeliveryContactInfoCreateReqList
().
add
(
deliveryContactInfoCreateReq
);
}
public
void
checkCardCode
(
String
partnerId
,
String
memberId
,
String
cardCode
)
{
public
void
checkCardCode
(
String
partnerId
,
String
memberId
,
String
cardCode
)
{
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
04305ea3
...
@@ -44,17 +44,24 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
...
@@ -44,17 +44,24 @@ import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayResponseDto
;
import
cn.freemud.entities.dto.order.FacePayResponseDto
;
import
cn.freemud.entities.dto.pay.CombPayResponse
;
import
cn.freemud.entities.dto.pay.CombPayResponse
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.*
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.product.ProductAttributeGroup
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.product.ProductGroup
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto
;
import
cn.freemud.entities.dto.shoppingCart.CollageOrderDto
;
import
cn.freemud.entities.dto.shoppingCart.CollageOrderDto
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.entities.vo.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.AfterSalesOrderCreateEventEnum
;
import
cn.freemud.enums.OrderChannelType
;
import
cn.freemud.enums.PayRefundStatus
;
import
cn.freemud.enums.PayStatus
;
import
cn.freemud.enums.QueryOrderStatus
;
import
cn.freemud.enums.RefundStatus
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.manager.SpellGroupOrderDataManager
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.*
;
import
cn.freemud.service.*
;
import
cn.freemud.service.coupon.CouponRelationFactory
;
import
cn.freemud.service.coupon.CouponRelationFactory
;
...
@@ -66,8 +73,16 @@ import cn.freemud.utils.*;
...
@@ -66,8 +73,16 @@ import cn.freemud.utils.*;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponLockRequest
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponLockResponse
;
import
com.freemud.application.sdk.api.log.ThirdPartyLog
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.membercenter.request.UserScoreRequest
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq
;
import
com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest
;
import
com.freemud.application.sdk.api.stockapi.request.UpdateStocksRequest
;
import
com.freemud.sdk.api.assortment.order.enums.*
;
import
jdk.nashorn.internal.runtime.ECMAException
;
import
jdk.nashorn.internal.runtime.ECMAException
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
com.freemud.api.assortment.datamanager.entity.db.*
;
import
com.freemud.api.assortment.datamanager.entity.db.*
;
...
@@ -132,10 +147,6 @@ import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRe
...
@@ -132,10 +147,6 @@ import com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRe
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.enums.AutoOrderConfigTime
;
import
com.freemud.sdk.api.assortment.order.enums.NewOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.QueryDeliveryType
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
...
@@ -179,6 +190,8 @@ import java.util.function.Function;
...
@@ -179,6 +190,8 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
cn
.
freemud
.
constant
.
OrderRefundConstant
.
ALLOW_REFUND
;
import
static
cn
.
freemud
.
constant
.
OrderRefundConstant
.
ALLOW_REFUND
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
@Service
@Service
@Slf4j
@Slf4j
...
@@ -386,47 +399,16 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -386,47 +399,16 @@ public class OrderServiceImpl implements Orderservice {
return
this
.
createPrepayOrder
(
createPrepayRequestDto
);
return
this
.
createPrepayOrder
(
createPrepayRequestDto
);
}
}
@Override
public
BaseResponse
createSpellGroupOrder
(
CreateSpellGroupOrderReq
createSpellGroupOrderReq
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
//校验用户信息
String
sessionId
=
createSpellGroupOrderReq
.
getSessionId
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
throw
new
ServiceException
(
ResponseResult
.
NOT_LOGIN
);
}
//团id不为空,调用促销查询团是否关闭,关闭之后给提示不可下单
if
(
1
==
1
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_THE_CLUB_IS_FULL
);
}
//团开启 则继续执行
CreateSpellGroupOrderDto
createSpellGroupOrderDto
=
new
CreateSpellGroupOrderDto
();
BeanUtils
.
copyProperties
(
createSpellGroupOrderReq
,
createSpellGroupOrderDto
);
//查询配送地址等信息
checkOrder
.
checkSpellGroupOrderReceiveAddress
(
createSpellGroupOrderReq
.
getReceiveId
(),
createSpellGroupOrderReq
.
getPartnerId
(),
trackingNo
,
createSpellGroupOrderDto
);
//查询商品信息
public
CreateOrderResponse
getCreateOrderResponse
(
String
code
,
String
message
,
QueryOrdersResponse
.
DataBean
.
OrderBean
data
)
{
CreateOrderResponse
baseOrderResponse
=
new
CreateOrderResponse
();
baseOrderResponse
.
setErrcode
(
Integer
.
valueOf
(
code
));
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
baseOrderResponse
.
setErrmsg
(
message
);
Integer
pushOrderTime
=
checkOrder
.
checkOrderByOrderType
(
createOrderVo
,
userLoginInfoDto
,
storeResponseDto
,
shoppingCartGoodsDto
,
trackingNo
);
baseOrderResponse
.
setData
(
data
);
OrderExtInfoDto
extInfo
=
getExtInfo
(
userLoginInfoDto
,
storeResponseDto
,
pushOrderTime
,
createOrderVo
,
shoppingCartGoodsDto
);
return
baseOrderResponse
;
//1.9.2套餐需求同步优化创建订单代码
BaseResponse
createOrderOperateDtoResponse
=
this
.
sdkCreateOrder
(
createOrderVo
,
storeResponseDto
,
shoppingCartGoodsDto
,
userLoginInfoDto
);
if
(
createOrderOperateDtoResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderOperateDtoResponse
.
getCode
())
||
createOrderOperateDtoResponse
.
getResult
()
==
null
)
{
return
createOrderOperateDtoResponse
;
}
}
CreateOrderOperateDto
createOrderOperateDto
=
(
CreateOrderOperateDto
)
createOrderOperateDtoResponse
.
getResult
();
//创建支付
CreatePrepayRequestDto
createPrepayRequestDto
=
orderAdapter
.
convertToCreatePrepayRequestDto
(
userLoginInfoDto
,
createOrderVo
,
createOrderOperateDto
,
extInfo
);
return
this
.
createPrepayOrder
(
createPrepayRequestDto
);
}
/**
/**
* 扫脸支付下单
* 扫脸支付下单
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
0 → 100644
View file @
04305ea3
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/thirdparty/PromotionDiscountClient.java
View file @
04305ea3
...
@@ -12,6 +12,10 @@
...
@@ -12,6 +12,10 @@
*/
*/
package
cn
.
freemud
.
service
.
thirdparty
;
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeKeyConstant
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto
;
import
cn.freemud.entities.dto.ActivityQueryRequestDto
;
import
cn.freemud.entities.dto.ActivityQueryRequestDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.activity.ActivityQueryResponseDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
import
cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto
;
...
@@ -23,8 +27,17 @@ import org.springframework.web.bind.annotation.*;
...
@@ -23,8 +27,17 @@ import org.springframework.web.bind.annotation.*;
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
PromotionDiscountClient
{
public
interface
PromotionDiscountClient
{
/**无人使用,注释掉。**/
// @PostMapping("/calculation/discount/sharing")
// CalculationDiscountResponseDto discountSharing(@RequestBody CalculationDiscountRequestDto calculationDiscountRequestDto);
/**
* 新版优惠均摊计算
* @param calculationDiscountRequestDto
* @return
*/
@PostMapping
(
"/calculation/discount/sharing"
)
@PostMapping
(
"/calculation/discount/sharing"
)
CalculationDiscountResponseDto
discountSharing
(
@RequestBody
CalculationDiscountRequestDto
calculationDiscountRequestDto
);
ActivityCalculationDiscountResponseDto
calculationDiscountSharing
(
CalculationDiscountRequestDto
calculationDiscountRequestDto
);
/**
/**
* 统一活动查询接口
* 统一活动查询接口
...
...
order-application-service/src/test/java/cn.freemud/controller/SpellGroupOrderControllerTest.java
0 → 100644
View file @
04305ea3
package
cn
.
freemud
.
controller
;
import
cn.freemud.OrderApplication
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.CreateSpellGroupOrderReq
;
import
com.alibaba.fastjson.JSONObject
;
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
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
;
/**
* @author freemud
* @title: SpellGroupOrderControllerTest
* @projectName order-group
* @description: TODO
* @date 2021/4/16下午3:58
*/
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
OrderApplication
.
class
)
public
class
SpellGroupOrderControllerTest
{
@Autowired
private
WebApplicationContext
wac
;
private
MockMvc
mockMvc
;
@Before
public
void
setUp
()
{
mockMvc
=
MockMvcBuilders
.
webAppContextSetup
(
wac
).
build
();
}
/**
* 创建订单
*/
@Test
public
void
createOrder
()
{
CreateSpellGroupOrderReq
createSpellGroupOrderReq
=
new
CreateSpellGroupOrderReq
();
// createSpellGroupOrderReq.setSessionId();
// createSpellGroupOrderReq.setSpellGroupCode();
// createSpellGroupOrderReq.setStoreId("3536");
// createSpellGroupOrderReq.setPartnerId("1864");
// createSpellGroupOrderReq.setMenuType();
// createSpellGroupOrderReq.setChannelType();
// createSpellGroupOrderReq.setOrderClient();
// createSpellGroupOrderReq.setPayChannelType();
// createSpellGroupOrderReq.setOrderType();
// createSpellGroupOrderReq.setMarketingType();
// createSpellGroupOrderReq.setReceiveId();
// createSpellGroupOrderReq.setActivityCode();
// createSpellGroupOrderReq.setSpellGroupProductList();
// createSpellGroupOrderReq.setOrderRemark();
String
str
=
JSONObject
.
toJSONString
(
createSpellGroupOrderReq
);
try
{
mockMvc
.
perform
(
post
(
"/order/createSpellGroupOrder"
).
content
(
str
).
contentType
(
MediaType
.
APPLICATION_JSON_UTF8
).
accept
(
MediaType
.
APPLICATION_JSON_UTF8
)).
andDo
(
print
()).
andExpect
(
jsonPath
(
"$.code"
).
value
(
"100"
));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtendedReq.java
View file @
04305ea3
...
@@ -25,4 +25,6 @@ public class OrderExtendedReq {
...
@@ -25,4 +25,6 @@ public class OrderExtendedReq {
//订单门店英文名称
//订单门店英文名称
private
String
storeNameEn
;
private
String
storeNameEn
;
private
String
spellGroupCode
;
}
}
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