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
ebb62116
Commit
ebb62116
authored
Nov 29, 2020
by
缪晖
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/2.0.1-collageOrder-刘鹏飞' into 'develop'
群收款接口 See merge request
!19
parents
1bbf44b1
cdbd5da5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
131 additions
and
14 deletions
+131
-14
order-application-service/src/main/java/cn/freemud/controller/CollageOrderController.java
+10
-1
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+0
-9
order-application-service/src/main/java/cn/freemud/service/CollageOrderService.java
+10
-0
order-application-service/src/main/java/cn/freemud/service/impl/CollageOrderServiceImpl.java
+109
-3
order-application-service/src/main/java/cn/freemud/service/thirdparty/WeChatClient.java
+2
-1
No files found.
order-application-service/src/main/java/cn/freemud/controller/CollageOrderController.java
View file @
ebb62116
...
...
@@ -2,6 +2,7 @@ package cn.freemud.controller;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.QueryOrderVo
;
import
cn.freemud.entities.vo.WechatGroupBuyVo
;
import
cn.freemud.service.impl.CollageOrderServiceImpl
;
import
cn.freemud.utils.ResponseUtil
;
...
...
@@ -47,8 +48,16 @@ public class CollageOrderController {
return
collageOrderService
.
create
(
requestVo
);
}
@ApiOperation
(
value
=
"获取拼单订单详情"
,
notes
=
"获取拼单订单详情"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"QueryOrderVo"
,
name
=
"QueryOrderVo"
)
@ApiAnnotation
(
logMessage
=
"collageQueryOrderById"
)
@PostMapping
(
"/collage/queryOrderById"
)
public
BaseResponse
queryCollageOrderById
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
)
{
return
collageOrderService
.
queryCollageOrderById
(
queryOrderVo
);
}
@ApiOperation
(
value
=
"创建拼单群收款"
,
notes
=
"创建拼单群收款"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"
CreateOrderVo"
,
name
=
"CreateOrder
Vo"
)
@ApiImplicitParam
(
value
=
"请求"
,
required
=
true
,
dataType
=
"
WechatGroupBuyVo"
,
name
=
"WechatGroupBuy
Vo"
)
@ApiAnnotation
(
logMessage
=
"createGroupBuy"
)
@PostMapping
(
value
=
"/collage/groupBuy"
)
public
BaseResponse
createGroupBuy
(
@Validated
@LogParams
@RequestBody
WechatGroupBuyVo
requestVo
)
{
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
ebb62116
...
...
@@ -366,14 +366,5 @@ public class OrderController {
return
orderservice
.
mcCafePollingPickUpCode
(
vo
);
}
/**
* 获取拼单订单详情
*/
@ApiAnnotation
(
logMessage
=
"collageQueryOrderById"
)
@PostMapping
(
"/collage/queryOrderById"
)
public
BaseResponse
queryCollageOrderById
(
@Validated
@LogParams
@RequestBody
QueryOrderVo
queryOrderVo
)
{
return
orderservice
.
queryCollageOrderById
(
queryOrderVo
.
getOperation
(),
queryOrderVo
.
getSessionId
(),
queryOrderVo
.
getOid
(),
queryOrderVo
.
getPartnerId
(),
queryOrderVo
.
getChannelType
());
}
}
order-application-service/src/main/java/cn/freemud/service/CollageOrderService.java
View file @
ebb62116
...
...
@@ -2,6 +2,7 @@ package cn.freemud.service;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.QueryOrderVo
;
import
cn.freemud.entities.vo.WechatGroupBuyVo
;
/**
...
...
@@ -17,10 +18,19 @@ import cn.freemud.entities.vo.WechatGroupBuyVo;
public
interface
CollageOrderService
{
/**
* 创建拼单订单
* @param createOrderVo
* @return
*/
BaseResponse
create
(
CreateOrderVo
createOrderVo
);
/**
* 查询拼单信息
* @param queryOrderVo
* @return
*/
BaseResponse
queryCollageOrderById
(
QueryOrderVo
queryOrderVo
);
/**
* 创建群收款
* @param requestVo
* @return
...
...
order-application-service/src/main/java/cn/freemud/service/impl/CollageOrderServiceImpl.java
View file @
ebb62116
...
...
@@ -14,22 +14,52 @@ package cn.freemud.service.impl;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto
;
import
cn.freemud.entities.dto.wechat.GetTokenResponseDto
;
import
cn.freemud.entities.dto.wechat.GroupBuyResp
;
import
cn.freemud.entities.vo.QueryOrderVo
;
import
cn.freemud.enums.ResponseResult
;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.service.thirdparty.WeChatClient
;
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.ordercenter.enums.ResponseResultEnum
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.GroupBuyRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.GroupBuyResponse
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.WechatGroupBuyVo
;
import
cn.freemud.enums.OrderMarketType
;
import
cn.freemud.service.CollageOrderService
;
import
cn.freemud.utils.ResponseUtil
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.checkerframework.checker.units.qual.A
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
@Service
@Slf4j
public
class
CollageOrderServiceImpl
implements
CollageOrderService
{
@Autowired
private
OrderServiceImpl
orderService
;
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
@Autowired
private
AssortmentCustomerInfoManager
customerInfoManager
;
@Autowired
private
EcologyAdminApplicationClient
ecologyAdminApplicationClient
;
@Autowired
private
WeChatClient
weChatClient
;
/**
* 创建拼单订单
...
...
@@ -42,14 +72,90 @@ public class CollageOrderServiceImpl implements CollageOrderService {
}
/**
* 查询拼单详情
* @param queryOrderVo
* @return
*/
@Override
public
BaseResponse
queryCollageOrderById
(
QueryOrderVo
queryOrderVo
)
{
return
this
.
orderService
.
queryCollageOrderById
(
queryOrderVo
.
getOperation
(),
queryOrderVo
.
getSessionId
(),
queryOrderVo
.
getOid
(),
queryOrderVo
.
getPartnerId
(),
queryOrderVo
.
getChannelType
());
}
/**
* 创建群收款
* @param requestVo
* @return
*/
@Override
public
BaseResponse
createGroupBuy
(
WechatGroupBuyVo
requestVo
)
{
GroupBuyResp
groupBuyResp
=
new
GroupBuyResp
();
groupBuyResp
.
setGroupBuyOrderId
(
"AARwDhsBAAABAAAAAAA8qP8oA4wVBRDgTYemXSAAAAC+NhafsoPlHq4RjEYubHs/qZzK7T9Q 02qG5CNcaTRRAyNIF/DIBcbFQuBKJTnEezsaW1SDpyM9G6MNK9T2wzeWQlajckiSTDZDWjAn9O1 WASuHkIZdf9SRQrIAwZdwjsBf7MPxtQP/4ExaW0B9g9IG"
);
return
ResponseUtil
.
success
(
groupBuyResp
);
// 获取拼单订单信息,若类型不是拼单直接返回报错
BaseQueryOrderRequest
baseQueryOrderRequest
=
new
BaseQueryOrderRequest
();
baseQueryOrderRequest
.
setOrderId
(
requestVo
.
getOrderCode
());
baseQueryOrderRequest
.
setTrackingNo
(
LogTreadLocal
.
getTrackingNo
());
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
baseQueryOrderRequest
);
if
(!
ResponseResultEnum
.
SUCCESS
.
getCode
().
equals
(
response
.
getErrcode
())
||
response
.
getData
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
QueryOrdersResponse
.
DataBean
.
OrderBean
order
=
response
.
getData
();
if
(
null
==
order
.
getMarketingType
()
||
OrderMarketType
.
COLLAGE
.
getIndex
()
!=
order
.
getMarketingType
())
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
// 根据sessionId获取当前用户信息以及appid
AssortmentCustomerInfoVo
userInfo
=
customerInfoManager
.
getCustomerInfoByObject
(
requestVo
.
getSessionId
());
GetAuthorizerRequestDto
getAuthorizerRequestDto
=
new
GetAuthorizerRequestDto
();
getAuthorizerRequestDto
.
setPartnerId
(
requestVo
.
getPartnerId
());
getAuthorizerRequestDto
.
setAuthorizerAppid
(
userInfo
.
getWxAppId
());
// 通过partnerId以及appid获取access_token
log
.
info
(
"collage access_token request partnerId:{} appId:{}"
,
requestVo
.
getPartnerId
(),
userInfo
.
getWxAppId
());
GetTokenResponseDto
getTokenResponseDto
=
ecologyAdminApplicationClient
.
getAuthorizerAccessToken
(
getAuthorizerRequestDto
);
String
accessToken
=
getTokenResponseDto
.
getResult
().
getAccessToken
();
log
.
info
(
"collage access_token response access_token:{}"
,
accessToken
);
// 构造群收款订单创建请求对象
GroupBuyRequest
groupBuyRequest
=
new
GroupBuyRequest
();
// 订单编号
groupBuyRequest
.
setOut_trade_no
(
order
.
getOid
());
// 收款人(拼单发起人)openId
groupBuyRequest
.
setRecv_openid
(
userInfo
.
getOpenId
());
// 付款人列表(查询拼单订单详情,根据商品自动计算价格,订单级别优惠分摊)
GroupBuyRequest
.
PayList
payList
=
new
GroupBuyRequest
.
PayList
();
List
<
GroupBuyRequest
.
UserInfo
>
userInfoList
=
new
ArrayList
<>();
List
<
OrderSettlementResp
>
orderSettlementDetailList
=
order
.
getOrderSettlementDetailList
();
GroupBuyRequest
.
UserInfo
groupBuyUserInfo
=
new
GroupBuyRequest
.
UserInfo
();
groupBuyUserInfo
.
setOpenid
(
"oORZK5A8hrejg0uBVSlkpv-KPgv4"
);
groupBuyUserInfo
.
setAmount
(
1
);
userInfoList
.
add
(
groupBuyUserInfo
);
payList
.
setUser_info
(
userInfoList
);
groupBuyRequest
.
setPay_list
(
payList
);
// 业务场景 1 其他(暂未解决后端上传收款图问题)
groupBuyRequest
.
setScene
(
1
);
// 描述信息 Desc(订单商户+日期)
GroupBuyRequest
.
Desc
desc
=
new
GroupBuyRequest
.
Desc
();
desc
.
setText_desc
(
order
.
getShopName
()
+
DateUtil
.
getCurrentDate
(
DateUtil
.
FORMAT_yyyyMMdd
));
groupBuyRequest
.
setDesc
(
desc
);
log
.
info
(
"collage groupBuy request param:{}"
,
groupBuyRequest
);
GroupBuyResponse
groupBuyResponse
=
weChatClient
.
groupBuyCreateOrder
(
accessToken
,
groupBuyRequest
);
log
.
info
(
"collage groupBuy response return:{}"
,
groupBuyResponse
);
if
(
null
!=
groupBuyResponse
&&
groupBuyResponse
.
getErrcode
()
==
0
)
{
GroupBuyResp
groupBuyResp
=
new
GroupBuyResp
();
groupBuyResp
.
setGroupBuyOrderId
(
groupBuyResponse
.
getOrder_id
());
return
ResponseUtil
.
success
(
groupBuyResp
);
}
else
{
return
ResponseUtil
.
error
(
"创建群收款失败"
);
}
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/WeChatClient.java
View file @
ebb62116
...
...
@@ -16,6 +16,7 @@ import cn.freemud.entities.dto.GetWxQrcodeDto;
import
cn.freemud.entities.dto.WeChatGetAccessTokenResponseDto
;
import
cn.freemud.entities.dto.WechatSendMessageDto
;
import
com.freemud.sdk.api.assortment.order.request.order.GroupBuyRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.GroupBuyResponse
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.http.MediaType
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -74,6 +75,6 @@ public interface WeChatClient {
@PostMapping
(
value
=
"wxa/business/groupBuy/createOrder?access_token={accessToken}"
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
)
String
groupBuyCreateOrder
(
@PathVariable
(
"accessToken"
)
String
accessToken
,
@RequestBody
GroupBuyRequest
groupBuyRequest
);
GroupBuyResponse
groupBuyCreateOrder
(
@PathVariable
(
"accessToken"
)
String
accessToken
,
@RequestBody
GroupBuyRequest
groupBuyRequest
);
}
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