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
98ef8ec1
Commit
98ef8ec1
authored
Apr 23, 2021
by
hanghang.wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
华莱士
parent
5254e436
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
61 additions
and
67 deletions
+61
-67
order-application-service/src/main/java/cn/freemud/controller/SpellGroupOrderController.java
+1
-1
order-application-service/src/main/java/cn/freemud/entities/dto/delivery/QueryDeliveryTemplateRequest.java
+10
-1
order-application-service/src/main/java/cn/freemud/entities/vo/CreateSpellGroupOrderReq.java
+25
-43
order-application-service/src/main/java/cn/freemud/service/SpellGroupOrderService.java
+10
-3
order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
+15
-19
No files found.
order-application-service/src/main/java/cn/freemud/controller/SpellGroupOrderController.java
View file @
98ef8ec1
...
...
@@ -40,7 +40,7 @@ public class SpellGroupOrderController {
@ApiOperation
(
value
=
"查询配送费"
,
notes
=
"查询配送费"
,
produces
=
"application/json"
)
@ApiAnnotation
(
logMessage
=
"querySaasMallDeliveryAmount"
)
@PostMapping
(
"/querySaasMallDeliveryAmount"
)
public
BaseResponse
querySaasMallDeliveryAmount
(
@LogParams
@RequestBody
QueryDeliveryTemplateRequest
request
)
{
public
BaseResponse
querySaasMallDeliveryAmount
(
@
Validated
@
LogParams
@RequestBody
QueryDeliveryTemplateRequest
request
)
{
return
spellGroupOrderService
.
queryDeliveryAmount
(
request
);
}
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/delivery/QueryDeliveryTemplateRequest.java
View file @
98ef8ec1
package
cn
.
freemud
.
entities
.
dto
.
delivery
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
...
...
@@ -9,18 +10,26 @@ import javax.validation.constraints.NotNull;
* @author wanghanghang
* @title: QueryDeliveryTemplateRequest
* @projectName order-group
* @description:
TODO
* @description:
查询商城快递费用request
* @date 2021/4/20上午11:03
*/
@Data
public
class
QueryDeliveryTemplateRequest
{
@NotEmpty
@ApiModelProperty
(
value
=
"商户号"
)
private
String
partnerId
;
@NotEmpty
@ApiModelProperty
(
value
=
"城市号"
)
private
String
province
;
@NotNull
@ApiModelProperty
(
value
=
"订单金额"
)
private
Integer
orderAmount
;
@NotNull
@ApiModelProperty
(
value
=
"商品数量"
)
private
Integer
count
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateSpellGroupOrderReq.java
View file @
98ef8ec1
package
cn
.
freemud
.
entities
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Pattern
;
import
java.util.List
;
...
...
@@ -16,35 +18,36 @@ import java.util.List;
*/
@Data
public
class
CreateSpellGroupOrderReq
{
@NotEmpty
(
message
=
"商户号 不能为空"
)
@ApiModelProperty
(
value
=
"商户号"
)
private
String
partnerId
;
@NotEmpty
(
message
=
"sessionId 不能为空"
)
@ApiModelProperty
(
value
=
"sessionId"
)
private
String
sessionId
;
/**
* 参与拼团编号->团编号
*/
@ApiModelProperty
(
value
=
"参与拼团编号"
)
private
String
spellGroupCode
;
@NotEmpty
(
message
=
"门店ID 不能为空"
)
@ApiModelProperty
(
value
=
"门店ID"
)
private
String
storeId
;
@NotEmpty
(
message
=
"商户号 不能为空"
)
private
String
partnerId
;
@Builder
.
Default
private
String
menuType
=
"saasmall"
;
/**
* 渠道类型 OrderChannelType
*/
@ApiModelProperty
(
value
=
"渠道类型"
)
private
String
channelType
=
"saasmall"
;
/*下单渠道必填,根据此字段的值判断是自营或第三方,来走不同的状态机 详细见 orderClientType枚举*/
private
Integer
orderClient
;
/**
* 下单支付渠道类型
*/
@NotNull
(
message
=
"下单支付渠道类型不能为空"
)
@ApiModelProperty
(
value
=
"下单支付渠道类型"
)
private
Byte
payChannelType
;
/**
...
...
@@ -53,57 +56,36 @@ public class CreateSpellGroupOrderReq {
@Builder
.
Default
private
Integer
orderType
=
3
;
/**
* 订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单
*/
@Builder
.
Default
@ApiModelProperty
(
value
=
"订单特殊类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单"
)
private
Integer
marketingType
=
2
;
/**
* 收货地址ID
*/
// @NotEmpty(message = "收货地址ID不能为空")
// private String receiveId;
/**
* 收货地址
*/
@NotEmpty
(
message
=
"收货地址 不能为空"
)
@ApiModelProperty
(
value
=
"收货地址"
)
private
String
receiveAddress
;
/**
* 收货用户名
*/
@NotEmpty
(
message
=
"收货用户名 不能为空"
)
@ApiModelProperty
(
value
=
"收货用户名"
)
private
String
receiveUsername
;
/**
* 收货电话
*/
@NotEmpty
(
message
=
"收货电话 不能为空"
)
@Pattern
(
regexp
=
"^1[3|4|5|6|7|8|9][0-9]{9}$"
,
message
=
"手机号码格式不正确"
)
@ApiModelProperty
(
value
=
"收货电话"
)
private
String
receiveMobile
;
/**
* 收货人性别 sexType 1 男 2 女 0 未知
*/
private
Integer
sex
;
/**
* 拼团活动号
*/
@NotEmpty
(
message
=
"拼团活动号不能为空"
)
@ApiModelProperty
(
value
=
"拼团活动号"
)
private
String
activityCode
;
/**
* 拼团商品集合,本次只会传入一条
*/
@NotNull
(
message
=
"拼团商品信息不能为空"
)
@ApiModelProperty
(
value
=
"拼团商品集合"
)
private
List
<
SpellGroupProduct
>
spellGroupProductList
;
/**
* 订单备注,预留字段
*/
private
String
orderRemark
;
/**
* 城市编号。用于查询配送费
*/
@NotEmpty
(
message
=
"城市编号不能为空"
)
@ApiModelProperty
(
value
=
"城市编号"
)
private
String
province
;
/**
...
...
order-application-service/src/main/java/cn/freemud/service/SpellGroupOrderService.java
View file @
98ef8ec1
...
...
@@ -8,18 +8,25 @@ import cn.freemud.entities.vo.CreateSpellGroupOrderReq;
* @author wanghanghang
* @title: SpellGroupOrderService
* @projectName order-group
* @description:
TODO
* @description:
拼团service
* @date 2021/4/15下午9:01
*/
public
interface
SpellGroupOrderService
{
/**
* 创建拼团订单
*
* @param createSpellGroupOrderReq
* @return
*/
public
BaseResponse
createSpellGroupOrder
(
CreateSpellGroupOrderReq
createSpellGroupOrderReq
);
BaseResponse
createSpellGroupOrder
(
CreateSpellGroupOrderReq
createSpellGroupOrderReq
);
public
BaseResponse
queryDeliveryAmount
(
QueryDeliveryTemplateRequest
request
);
/**
* 查询商城运费
*
* @param request
* @return
*/
BaseResponse
queryDeliveryAmount
(
QueryDeliveryTemplateRequest
request
);
}
order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
View file @
98ef8ec1
...
...
@@ -108,82 +108,78 @@ public class SpellGroupOrderServiceImpl implements SpellGroupOrderService {
@Override
public
BaseResponse
createSpellGroupOrder
(
CreateSpellGroupOrderReq
createSpellGroupOrderReq
)
{
String
trackingNo
=
LogThreadLocal
.
getTrackingNo
();
/*校验用户信息*/
String
sessionId
=
createSpellGroupOrderReq
.
getSessionId
();
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
sessionId
);
AssortmentCustomerInfoVo
userLoginInfoDto
=
customerInfoManager
.
getCustomerInfoByObject
(
createSpellGroupOrderReq
.
getSessionId
());
if
(
userLoginInfoDto
==
null
||
StringUtils
.
isEmpty
(
userLoginInfoDto
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
/*初始化service业务DTO类,后续数据
转换依据c
reateSpellGroupOrderDto*/
/*初始化service业务DTO类,后续数据
收集以及转换依据C
reateSpellGroupOrderDto*/
CreateSpellGroupOrderDto
createSpellGroupOrderDto
=
new
CreateSpellGroupOrderDto
();
BeanUtils
.
copyProperties
(
createSpellGroupOrderReq
,
createSpellGroupOrderDto
);
createSpellGroupOrderDto
.
setUserId
(
userLoginInfoDto
.
getMemberId
());
createSpellGroupOrderDto
.
setNickName
(
userLoginInfoDto
.
getNickName
());
/*团id不为空,调用促销查询团是否关闭,关闭之后给提示不可下单*/
//查询团信息,校验团状态是否正常
/*团id不为空,查询团信息,校验团状态是否正常.调用促销查询团是否关闭,关闭之后给提示不可下单*/
if
(!
StringUtils
.
isEmpty
(
createSpellGroupOrderReq
.
getSpellGroupCode
())){
QuerySpellGroupVo
querySpellGroupVo
=
spellGroupOrderDataManager
.
queryByGroupId
(
createSpellGroupOrderDto
.
getSpellGroupCode
(),
createSpellGroupOrderDto
.
getUserId
(),
createSpellGroupOrderDto
.
getActivityCode
(),
createSpellGroupOrderDto
.
getPartnerId
());
if
(
querySpellGroupVo
==
null
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_QUERY_GROUP_WORK_ERROR
);
}
//只有组团中的拼团才可创建拼团订单
if
(
querySpellGroupVo
.
getGroup
().
getGroupStatus
()
!=
0
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL
);
}
//当前用户是否已参与此团
if
(
querySpellGroupVo
.
getIsJoin
()
==
1
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_ISJOIN_ERROR
);
}
}
/*---------团开启 则继续执行-------*/
/*获取门店信息,拼单虚拟门店,无需校验*/
/*获取门店信息,拼单虚拟门店,无需校验。方便后续取值门店名称以及门店英文名称*/
StoreResponse
storeResponse
=
spellGroupOrderDataManager
.
getStoreInfo
(
createSpellGroupOrderReq
.
getPartnerId
(),
createSpellGroupOrderReq
.
getStoreId
(),
trackingNo
);
if
(
storeResponse
==
null
||
storeResponse
.
getBizVO
()
==
null
){
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_ITEM_QUERY_ERROR
);
}
/
/门店信息->转换至DTO
/
*门店信息->转换至DTO*/
createSpellGroupOrderDto
.
setStoreResponse
(
storeResponse
);
/*
查询配送
地址等信息->转换至DTO*/
/*
前端传入
地址等信息->转换至DTO*/
spellGroupOrderAdapter
.
convertToReceiveAddress
(
createSpellGroupOrderDto
);
/*查询
商品信息
*/
/*查询
拼团商品信息->转换至DTO
*/
List
<
ProductInfo
>
productInfosDto
=
spellGroupOrderDataManager
.
queryProductInfos
(
createSpellGroupOrderDto
);
if
(
productInfosDto
==
null
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_QUERY_PRODUCT_INFOS_ERROR
);
}
createSpellGroupOrderDto
.
setProducts
(
productInfosDto
);
/*
商品信息查询促销,获取商品价格等信息 转换
结算信息*/
/*
根据商品信息查询促销,获取商品价格等信息->转换促销
结算信息*/
CalculationDiscountRequestDto
calculationDiscountRequestDto
=
spellGroupOrderAdapter
.
convertToCalculationDiscountRequestDto
(
createSpellGroupOrderDto
,
userLoginInfoDto
);
ActivityCalculationDiscountResponseDto
activityCalculationDiscountResponseDto
=
spellGroupOrderDataManager
.
queryCalculationDiscount
(
calculationDiscountRequestDto
);
if
(
activityCalculationDiscountResponseDto
==
null
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_QUERY_CALCULATION_DISCOUNT_ERROR
);
}
//促销和产品给出规则,如果促销返回的价格是商品原价,则表示库存不足或者活动关闭
==
拼团的商品价格,肯定比商品原价低
//促销和产品给出规则,如果促销返回的价格是商品原价,则表示库存不足或者活动关闭
肯定:
拼团的商品价格,肯定比商品原价低
if
(
activityCalculationDiscountResponseDto
.
getResult
().
getTotalAmount
().
equals
(
productInfosDto
.
get
(
0
).
getOriginalPrice
()))
{
// todo return ResponseUtil.error(ResponseResult.SPELL_GROUP_ACTIVITE_AMOUNT_ERROR);
}
createSpellGroupOrderDto
.
setActivityCalculationDiscountResponseDto
(
activityCalculationDiscountResponseDto
);
/
/转换费用信息->查询配送费
/
*转换request->查询快递费用信息->转换dto*/
QueryDeliveryTemplateRequest
queryDeliveryTemplateRequest
=
spellGroupOrderAdapter
.
convertToQueryDeliveryTemplateRequest
(
createSpellGroupOrderDto
);
QueryDeliveryTemplateResponse
queryDeliveryTemplateResponse
=
spellGroupOrderDataManager
.
queryDeliveryTemplate
(
queryDeliveryTemplateRequest
);
if
(
queryDeliveryTemplateResponse
==
null
){
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_QUERY_DELIVERYTEMPLATE_ERROR
);
}
//转换类存入费用信息->配送费
createSpellGroupOrderDto
.
setDeliveryTemplateInfoVo
(
queryDeliveryTemplateResponse
.
getData
());
/
/DTO转换为订单Request信息
/
*createSpellGroupOrderDto转换为订单Request信息*/
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
create
.
CreateOrderRequest
createOrderRequest
=
spellGroupOrderAdapter
.
convertToCreateOrderRequest
(
createSpellGroupOrderDto
,
userLoginInfoDto
);
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
<
OrderInfoReqs
>
response
=
orderSdkService
.
createOrder
(
createOrderRequest
,
trackingNo
);
CreateOrderResponse
createOrderResponse
=
orderSdkAdapter
.
convent2NEWOrderInfoReqs
(
response
);
if
(
createOrderResponse
==
null
||
!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
createOrderResponse
.
getErrcode
().
toString
())
||
createOrderResponse
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
SPELL_GROUP_CREAT_ORDER_ERROR
);
}
/
/调用活动库存
/
*调用活动库存*/
BaseOrderResponse
baseOrderResponse
=
updateActivityStock
(
createOrderResponse
.
getData
(),
createSpellGroupOrderDto
);
if
(!
RESPONSE_SUCCESS
.
equals
(
baseOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
baseOrderResponse
.
getErrcode
().
toString
(),
baseOrderResponse
.
getErrmsg
(),
null
);
}
/
/创建支付
/
*创建支付*/
CreatePrepayRequestDto
createPrepayRequestDto
=
spellGroupOrderAdapter
.
convertToCreatePrepayRequest
(
userLoginInfoDto
,
createOrderResponse
.
getData
(),
trackingNo
);
return
orderService
.
createPrepayOrder
(
createPrepayRequestDto
);
}
...
...
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