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
79b5413c
Commit
79b5413c
authored
Aug 04, 2020
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
麦咖啡下单和支付成功
parent
80a616c1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
1192 additions
and
209 deletions
+1192
-209
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/BatchQueryActivityInfoRequestDto.java
+29
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/BatchQueryActivityInfoResponseDto.java
+20
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/GetAppKeyRequestDto.java
+15
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/GetAppKeyResponseDto.java
+24
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/CouponReqTypeEnum.java
+58
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/MCCafeChannelEnum.java
+65
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeConponRequest.java
+108
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeCouponLockRequest.java
+82
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeProductRedeemVo.java
+32
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeTransactionVo.java
+22
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/CouponClientService.java
+28
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/MCCafeOrderCenterSdkService.java
+23
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/CouponClientServiceImpl.java
+149
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/MCCafeOrderCenterSdkServiceImpl.java
+0
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/thirdparty/CardBinMCCafeClient.java
+30
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/thirdparty/CouponOfflineMCCafeClient.java
+31
-0
assortment-ordercenter-sdk/src/test/java/com/freemud/sdk/api/assortment/coupon/CouponSdkServiceTest.java
+0
-153
order-application-service/src/main/java/cn/freemud/OrderApplication.java
+1
-1
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+21
-0
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/MCCafeShoppingCartGoodsDto.java
+20
-0
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
+33
-0
order-application-service/src/main/java/cn/freemud/service/OrderAdapterService.java
+12
-0
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+0
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+58
-16
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
+157
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/CouponCodeMCCafeBaseDto.java
+53
-0
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/CouponCodeVerificationMCCafeDto.java
+45
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
+2
-12
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
+31
-3
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CardBinMCCafeClient.java
+6
-6
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOfflineMCCafeClient.java
+26
-0
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineMCCafeClient.java
+4
-4
shopping-cart-application-service/src/test/java/cn.freemud/service/CouponServiceTest.java
+7
-14
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/BatchQueryActivityInfoRequestDto.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
entities
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
BatchQueryActivityInfoRequestDto
{
/**
* 商户号
*/
private
Integer
partnerId
;
/**
* 活动号集合
*/
private
List
<
String
>
activeCode
;
/**
* 是否需要活动商品券相关数据 1:需要
*/
private
Integer
isProduct
;
/**
* 签名
*/
private
String
sign
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/BatchQueryActivityInfoResponseDto.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
entities
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
BatchQueryActivityInfoResponseDto
{
/**
* 状态码
*/
private
String
statusCode
;
/**
* 状态码描述
*/
private
String
msg
;
// private List<Active> activities;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/GetAppKeyRequestDto.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
entities
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
GetAppKeyRequestDto
{
private
String
partnerId
;
private
String
appId
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/entities/GetAppKeyResponseDto.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
entities
;
import
lombok.Data
;
@Data
public
class
GetAppKeyResponseDto
{
/**
* 状态码(100:成功,101:失败,-101:无效参数,-1:系统错误)
*/
private
Integer
statusCode
;
/**
* 描述
*/
private
String
msg
;
private
Integer
ver
;
private
DataBean
data
;
@Data
public
static
class
DataBean
{
private
String
appKey
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/CouponReqTypeEnum.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
enums
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: PayRefundStatus
* @Package cn.freemud.enums
* @Description:
* @author: jiaxin.liu
* @date: 2019/5/27 15:09
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public
enum
CouponReqTypeEnum
{
QUERY
(
0
,
"查询"
),
CANCEL_REDEEM
(
3
,
"冲正"
),
REDEEM
(
71
,
"核销"
),
LOCK
(
89
,
"锁定"
),
UNLOCK
(
90
,
"解锁"
),
;
private
Integer
code
;
private
String
desc
;
CouponReqTypeEnum
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
static
CouponReqTypeEnum
getByCode
(
Integer
code
)
{
if
(
code
==
null
)
{
return
null
;
}
for
(
CouponReqTypeEnum
payStatus
:
values
())
{
if
(
payStatus
.
getCode
().
equals
(
code
))
{
return
payStatus
;
}
}
return
null
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/MCCafeChannelEnum.java
0 → 100644
View file @
79b5413c
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderChannelType
* @Package cn.freemud.enums
* @Description:
* @author: liming.guo
* @date: 2018/7/3 15:06
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
enums
;
public
enum
MCCafeChannelEnum
{
MOCOFFEE_WX
(
1
,
"mocoffee_wx"
,
"麦咖啡微信小程序"
),
MOCOFFEE_ZFB
(
2
,
"mocoffee_zfb"
,
"麦咖啡支付宝小程序"
),
;
private
int
code
;
private
String
name
;
private
String
desc
;
MCCafeChannelEnum
(
int
code
,
String
name
,
String
desc
)
{
this
.
code
=
code
;
this
.
name
=
name
;
this
.
desc
=
desc
;
}
public
static
MCCafeChannelEnum
getByCode
(
int
code
)
{
for
(
MCCafeChannelEnum
type
:
values
())
{
if
(
type
.
getCode
()
==
code
)
{
return
type
;
}
}
return
null
;
}
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeConponRequest.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
coupon
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.hibernate.validator.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public
class
MCCafeConponRequest
{
/**
* 接口版本
*/
@NotNull
private
Integer
ver
;
/**
* kdg.Y 开个店渠道且需要回调三方
* kgd.N 开个店渠道且不需要回调三方
*/
private
String
appFlag
;
/**
* 需要查询的券码,仅供查询券使用
*/
private
String
coupon
;
/**
* 请求操作类型,0是卡券查询,2是卡券交易查询,3是卡券冲正,71是卡券核销
*/
@NotNull
(
message
=
"操作不能为空"
)
private
Integer
reqtype
;
/**
* 商家门店号
*/
@NotBlank
(
message
=
"商家门店号不能为空"
)
private
String
store_id
;
/**
* 子品牌 ID 可以为空
*/
private
String
organize_id
;
/**
* 组织机构ID(注意和channle的区别)
*/
private
List
<
String
>
channel_ids
;
/**
* 组织机构code(注意和channle的区别)
*/
private
List
<
String
>
channel_codes
;
/**
* 商家POS机编号
*/
@NotBlank
(
message
=
"商家POS机编号不能为空"
)
private
String
station_id
;
/**
* 营业员编号
*/
@NotBlank
(
message
=
"营业员编号不能为空"
)
private
String
operator_id
;
/**
* 商户编号
*/
@NotNull
(
message
=
"商户编号不能为空"
)
private
Integer
partnerId
;
private
Integer
checkValue
;
private
Integer
clientReqCount
;
/**
* POS交易序号
*/
private
String
trans_id
;
/**
* 营业日
*/
private
String
business_date
;
/**
* 优惠券列表
*/
private
List
<
MCCafeTransactionVo
>
transactions
;
/**
* 签名
*/
private
String
sign
;
/**
* 追加key
*/
private
String
appSecret
;
private
String
openid
;
private
String
transactionuuid
;
private
String
status
;
private
Boolean
isManual
;
private
String
channel
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeCouponLockRequest.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
coupon
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponCodeVerificationReqVO
* @Package cn.freemud.entities.dto
* @Description:
* @author: biao.zhang
* @date: 2018/7/17 14:45
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
MCCafeCouponLockRequest
{
private
Integer
ver
;
/**
* 71 核销
* 89 锁定
* 90 解锁
*/
private
Integer
reqType
;
/**
* 核销渠道
* 1:线下Pos
* 2:线上
* 3:pickup:麦当劳点餐
* 4:delivery:麦当劳外送
* 5:mccafe:麦当劳咖啡
* 6:mc_dessert麦当劳甜品站
* 7:SOK
* 8:ECP/CMA
* 9:mcd_alipay:麦当劳支付宝点餐
*/
private
String
channel
;
//商户编号
private
String
partnerId
;
//商家门店号
private
String
storeId
;
//营业员编号
private
String
operatorId
;
//POS机编号
private
String
stationId
;
//交易序号
private
String
transId
;
//券编号
private
String
coupon
;
//三方券号
private
String
offerId
;
//锁定/解锁次数
private
String
number
;
private
String
appFlag
;
private
String
businessDate
;
//----非必传---
//预约订单时间,为空则为及时单,如:2020-06-17 12:00:00
private
String
advancedOrderTime
;
//签名
private
String
sign
;
private
List
<
MCCafeTransactionVo
>
transactions
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeProductRedeemVo.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
coupon
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
MCCafeProductRedeemVo
{
private
String
pid
;
/**
* 第三方商品编号 有的话会校验
*/
private
String
customer_code
;
private
Integer
seq
;
private
Integer
consume_num
;
private
Integer
gid
;
private
Integer
DiscountAmount
;
private
String
brand_code
;
private
String
pcata
;
private
BigDecimal
redeem_price
;
//键位商品编号
private
String
keyProductCode
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/coupon/MCCafeTransactionVo.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
coupon
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
MCCafeTransactionVo
{
private
Integer
pay_amount
;
private
String
code
;
private
String
ebcode
;
/**
* 优惠总金额,由第三方计算,单位分
*/
private
Long
totalAmount
;
private
List
<
MCCafeProductRedeemVo
>
products
;
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/CouponClientService.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
service
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.sdk.api.assortment.order.request.coupon.MCCafeConponRequest
;
import
com.freemud.sdk.api.assortment.order.request.coupon.MCCafeCouponLockRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
java.util.List
;
public
interface
CouponClientService
{
// CouponRedeemResponse redeem(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts);
CouponRedeemResponse
redeem
(
MCCafeConponRequest
mcCafeConponRequest
);
CouponRedeemResponse
redeemBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponRedeemResponse
cancelRedeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponQueryResponse
query
(
MCCafeConponRequest
mcCafeConponRequest
);
CouponBaseResponse
lock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
);
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
);
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/MCCafeOrderCenterSdkService.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
service
;
import
com.freemud.application.sdk.api.ordercenter.request.QueryAfterSalesOrderConditionsReq
;
import
com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp
;
import
com.freemud.sdk.api.assortment.order.request.order.*
;
import
com.freemud.sdk.api.assortment.order.response.order.*
;
public
interface
MCCafeOrderCenterSdkService
{
/**
* 创建麦咖啡订单
*
* @return
*/
CreateOrderResponse
createMCCafeOrderFlow
(
CreateOrderRequest
createOrderRequest
);
/**
* 创建麦咖啡父子订单
*/
CreateFatherSonOrderResponse
createMCCafeFatherSonOrder
(
CreateFatherSonOrderRequest
createFatherSonOrderRequest
);
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/CouponClientServiceImpl.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
service
.
order
;
import
cn.freemud.base.constant.Version
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.sdk.api.assortment.order.enums.*
;
import
com.freemud.sdk.api.assortment.order.request.coupon.*
;
import
com.freemud.sdk.api.assortment.order.request.order.CreateOrderAccountRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.service.CouponClientService
;
import
com.freemud.sdk.api.assortment.order.service.thirdparty.CouponOfflineMCCafeClient
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.stream.Collectors
;
@Service
public
class
CouponClientServiceImpl
implements
CouponClientService
{
@Autowired
private
CouponOfflineMCCafeClient
couponOfflineMCCafeClient
;
// @Override
// public CouponRedeemResponse redeem(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts) {
// if (null == orderBean || CollectionUtils.isEmpty(accounts)) {
// return null;
// }
// Optional<CreateOrderAccountRequest> accountRequest = accounts.stream().filter(
// account -> account.getAccountType().equals(QueryOrderAccountType.COUPON)
// || account.getAccountType().equals(QueryOrderAccountType.PRODUCT_COUPON)
// || account.getAccountType().equals(QueryOrderAccountType.DISCOUNT_COUPON)).findFirst();
// if (!accountRequest.isPresent() || accountRequest.get().getPrice() == 0) {
// return null;
// }
// CreateOrderAccountRequest accountBean = accountRequest.get();
// List<MCCafeProductRedeemVo> products = new ArrayList<>();
// //商品券核销核销参数
// if (QueryOrderAccountType.PRODUCT_COUPON.equals(accountBean.getAccountType())) {
// for (int i = 0; i < orderBean.getProductList().size(); i++) {
// QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i);
// String pid = StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId();
// if (!org.springframework.util.CollectionUtils.isEmpty(orderBean.getProductList().get(i).getDiscountList())) {
// List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount> discounts = orderBean.getProductList().get(i).getDiscountList().stream().
// filter(productDiscount -> productDiscount.getDiscountId().equals(accountBean.getAccountId())).collect(Collectors.toList());
// for (QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discounts) {
// if (productDiscount.getDiscountType() == null || productDiscount.getDiscountType() == 0) {
// continue;
// }
// MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
// mcCafeProductRedeemVo.setPid(pid);
// mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
// mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
// mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
// mcCafeProductRedeemVo.setSeq(i + 1);
// products.add(mcCafeProductRedeemVo);
// }
// }
// }
// }
// MCCafeConponRequest mcCafeConponRequest = new MCCafeConponRequest();
// mcCafeConponRequest.setVer(Integer.valueOf(Version.VERSION_1));
// mcCafeConponRequest.setReqtype(CouponReqTypeEnum.REDEEM.getCode());
// mcCafeConponRequest.setPartnerId(Integer.parseInt(orderBean.getCompanyId()));
// mcCafeConponRequest.setStore_id(orderBean.getShopId());
// mcCafeConponRequest.setStation_id("-1");
// mcCafeConponRequest.setOperator_id("-1");
// // 订单号
// mcCafeConponRequest.setTrans_id(orderBean.getOid());
// mcCafeConponRequest.setChannel(OrderClientType.ALIPAY.getIndex().toString().equals(orderBean.getOrderClient())?MCCafeChannelEnum.MOCOFFEE_ZFB.getName():MCCafeChannelEnum.MOCOFFEE_WX.getName());
// List<MCCafeTransactionVo> transactions = new ArrayList<>();
// MCCafeTransactionVo mcCafeTransactionVo = new MCCafeTransactionVo();
// mcCafeTransactionVo.setCode(accountBean.getAccountId());
// mcCafeTransactionVo.setTotalAmount(-accountBean.getPrice());
// if (CollectionUtils.isNotEmpty(products)) {
// mcCafeTransactionVo.setProducts(products);
// }
// transactions.add(mcCafeTransactionVo);
// mcCafeConponRequest.setTransactions(transactions);
// mcCafeConponRequest.setSign("skip");
//
// mcCafeConponRequest.setAppFlag("kgd.N");
// mcCafeConponRequest.setBusiness_date(cn.freemud.base.util.DateUtil.convert2Str(new Date(), cn.freemud.base.util.DateUtil.FORMAT_yyyyMMdd));
//
// return couponOfflineMCCafeClient.redeem(mcCafeConponRequest);
// }
@Override
public
CouponRedeemResponse
redeem
(
MCCafeConponRequest
mcCafeConponRequest
)
{
return
couponOfflineMCCafeClient
.
redeem
(
mcCafeConponRequest
);
}
@Override
public
CouponRedeemResponse
redeemBatch
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
return
null
;
}
@Override
public
CouponRedeemResponse
cancelRedeem
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
MCCafeConponRequest
mcCafeConponRequest
=
new
MCCafeConponRequest
();
return
couponOfflineMCCafeClient
.
cancelRedeem
(
mcCafeConponRequest
);
}
@Override
public
CouponQueryResponse
query
(
MCCafeConponRequest
mcCafeConponRequest
)
{
return
couponOfflineMCCafeClient
.
query
(
mcCafeConponRequest
);
}
@Override
public
CouponBaseResponse
lock
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
List
<
CreateOrderAccountRequest
>
accounts
)
{
if
(
null
==
orderBean
||
CollectionUtils
.
isEmpty
(
accounts
))
{
return
null
;
}
Optional
<
CreateOrderAccountRequest
>
accountRequest
=
accounts
.
stream
().
filter
(
account
->
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
PRODUCT_COUPON
)
||
account
.
getAccountType
().
equals
(
QueryOrderAccountType
.
DISCOUNT_COUPON
)).
findFirst
();
if
(!
accountRequest
.
isPresent
()
||
accountRequest
.
get
().
getPrice
()
==
0
)
{
return
null
;
}
CreateOrderAccountRequest
accountBean
=
accountRequest
.
get
();
MCCafeCouponLockRequest
couponCodeVerificationDto
=
new
MCCafeCouponLockRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqType
(
CouponReqTypeEnum
.
LOCK
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
orderBean
.
getCompanyId
());
couponCodeVerificationDto
.
setStoreId
(
orderBean
.
getShopId
());
// 订单号
couponCodeVerificationDto
.
setTransId
(
orderBean
.
getOid
());
couponCodeVerificationDto
.
setCoupon
(
accountBean
.
getAccountId
());
couponCodeVerificationDto
.
setOfferId
(
accountBean
.
getAccountId
());
couponCodeVerificationDto
.
setNumber
(
"1"
);
couponCodeVerificationDto
.
setChannel
(
OrderClientType
.
ALIPAY
.
getIndex
().
toString
().
equals
(
orderBean
.
getOrderClient
())
?
MCCafeChannelEnum
.
MOCOFFEE_ZFB
.
getName
():
MCCafeChannelEnum
.
MOCOFFEE_WX
.
getName
());
couponCodeVerificationDto
.
setOperatorId
(
"-1"
);
couponCodeVerificationDto
.
setStationId
(
"-1"
);
couponCodeVerificationDto
.
setSign
(
"skip"
);
return
couponOfflineMCCafeClient
.
lock
(
couponCodeVerificationDto
);
}
@Override
public
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
mcCafeCouponLockRequest
)
{
return
couponOfflineMCCafeClient
.
unlock
(
mcCafeCouponLockRequest
);
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/MCCafeOrderCenterSdkServiceImpl.java
0 → 100644
View file @
79b5413c
This diff is collapsed.
Click to expand it.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/thirdparty/CardBinMCCafeClient.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
service
.
thirdparty
;
import
com.freemud.sdk.api.assortment.order.entities.BatchQueryActivityInfoRequestDto
;
import
com.freemud.sdk.api.assortment.order.entities.GetAppKeyRequestDto
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
//测试环境:http://115.159.65.101:8082 生产环境:https://onlinecoupon.sandload.cn
@FeignClient
(
name
=
"CARDBINMCCafeCLIENT"
,
url
=
"fff"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CardBinMCCafeClient
{
/**
* 获取麦咖啡券码密钥
* @param requestDto
* @return
*/
@PostMapping
(
"/mccafe/getAppKey"
)
GetAppKeyRequestDto
getMCCafeAppKey
(
GetAppKeyRequestDto
requestDto
);
/**
* 麦咖啡活动信息批量查询
* @param requestDto
* @return
*/
@PostMapping
(
value
=
"/mccafe/batchQueryActivityInfo"
)
BatchQueryActivityInfoRequestDto
batchQueryMCCafeActivityInfo
(
BatchQueryActivityInfoRequestDto
requestDto
);
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/thirdparty/CouponOfflineMCCafeClient.java
0 → 100644
View file @
79b5413c
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
service
.
thirdparty
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.sdk.api.assortment.order.request.coupon.MCCafeCouponLockRequest
;
import
com.freemud.sdk.api.assortment.order.request.coupon.MCCafeConponRequest
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@FeignClient
(
name
=
"COUPONMCCafe"
,
url
=
"http://coupon-api-gateway-koderover-dev-coupon.api-ingress.sandload.cn"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CouponOfflineMCCafeClient
{
@PostMapping
(
"/mccafe/redeem"
)
CouponRedeemResponse
redeem
(
MCCafeConponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/cancelRedeem"
)
CouponRedeemResponse
cancelRedeem
(
MCCafeConponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/query"
)
CouponQueryResponse
query
(
MCCafeConponRequest
mcCafeConponRequest
);
@PostMapping
(
"/mccafe/lock"
)
CouponBaseResponse
lock
(
MCCafeCouponLockRequest
MCCafeCouponLockRequest
);
@PostMapping
(
"/mccafe/unlock"
)
CouponBaseResponse
unlock
(
MCCafeCouponLockRequest
MCCafeCouponLockRequest
);
}
assortment-ordercenter-sdk/src/test/java/com/freemud/sdk/api/assortment/coupon/CouponSdkServiceTest.java
deleted
100644 → 0
View file @
80a616c1
package
com
.
freemud
.
sdk
.
api
.
assortment
.
coupon
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.freemud.application.sdk.api.base.BaseRequest
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.constant.FMStatusCode
;
import
com.freemud.application.sdk.api.couponcenter.config.CouponOfflineApiConstant
;
import
com.freemud.application.sdk.api.couponcenter.config.CouponOfflineCenterProperties
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.ProductRedeemVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.storecenter.request.vo.GetOrgTreeListRequest
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.application.sdk.api.util.BaseRequestUtils
;
import
com.freemud.application.sdk.api.util.RequestThirdPartyUtils
;
import
com.freemud.application.sdk.api.util.ResponseUtils
;
import
com.freemud.application.sdk.api.util.ValidationUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.junit.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.*
;
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
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderCenterSdkServiceImplTest
* @Package com.freemud.sdk.api.assortment.order.service.order
* @Description: 简单描述下这个类是做什么用的
* @author: dingda.li
* @date: 2019-07-25 11:19
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目的
*/
public
class
CouponSdkServiceTest
{
@Autowired
private
StoreCenterService
storeCenterService
;
@Autowired
private
RestTemplate
restTemplate
;
/**
* 券核销
*/
@Test
public
void
couponRedeem71
()
{
CouponRequest
couponRequest
=
new
CouponRequest
();
couponRequest
.
setReqtype
(
71
);
couponRequest
.
setStore_id
(
"111"
);
couponRequest
.
setStation_id
(
"222"
);
couponRequest
.
setTrans_id
(
"333"
);
couponRequest
.
setChannel
(
"5"
);
List
<
TransactionVO
>
transactionVOList
=
new
ArrayList
<>();
TransactionVO
transactionVO
=
new
TransactionVO
();
transactionVO
.
setCode
(
"9800gtx"
);
List
<
ProductRedeemVO
>
productRedeemVOList
=
new
ArrayList
<>();
ProductRedeemVO
productRedeemVO
=
new
ProductRedeemVO
();
productRedeemVO
.
setSeq
(
1
);
productRedeemVO
.
setConsume_num
(
10
);
productRedeemVO
.
setPid
(
"1000555"
);
productRedeemVOList
.
add
(
productRedeemVO
);
transactionVO
.
setProducts
(
productRedeemVOList
);
transactionVOList
.
add
(
transactionVO
);
couponRequest
.
setTransactions
(
transactionVOList
);
couponRequest
.
setVer
(
1
);
couponRequest
.
setPartnerId
(
1000
);
BaseResponse
validateResponse
=
ValidationUtils
.
validate
(
couponRequest
);
if
(!
ResponseUtils
.
isSuccess
(
validateResponse
))
{
System
.
out
.
println
(
JSON
.
toJSONString
(
validateResponse
));
return
;
}
BaseRequest
<
CouponRequest
>
request
=
new
BaseRequest
();
request
.
setRequestBody
(
couponRequest
);
request
.
setAppName
(
"Order"
);
request
.
setBaseUrl
(
""
);
request
.
setTrackingNo
(
UUID
.
randomUUID
().
toString
());
CouponQueryResponse
couponQueryResponse
=
RequestThirdPartyUtils
.
httpJsonReqComplex
(
restTemplate
,
CouponOfflineApiConstant
.
COUPON_API
,
request
,
new
TypeReference
<
CouponQueryResponse
>(){});
if
(
couponQueryResponse
.
getStatusCode
()
!=
RESPONSE_SUCCESS
)
{
System
.
out
.
println
(
couponQueryResponse
.
getMsg
());
return
;
}
System
.
out
.
println
(
couponQueryResponse
);
}
/**
* 券冲正
*/
@Test
public
void
couponRedeem3
()
{
CouponRequest
couponRequest
=
new
CouponRequest
();
couponRequest
.
setReqtype
(
3
);
couponRequest
.
setStore_id
(
"111"
);
couponRequest
.
setStation_id
(
"222"
);
couponRequest
.
setTrans_id
(
"333"
);
couponRequest
.
setChannel
(
"5"
);
List
<
TransactionVO
>
transactionVOList
=
new
ArrayList
<>();
TransactionVO
transactionVO
=
new
TransactionVO
();
transactionVO
.
setCode
(
"9800gtx"
);
List
<
ProductRedeemVO
>
productRedeemVOList
=
new
ArrayList
<>();
ProductRedeemVO
productRedeemVO
=
new
ProductRedeemVO
();
productRedeemVO
.
setSeq
(
1
);
productRedeemVO
.
setConsume_num
(
10
);
productRedeemVO
.
setPid
(
"1000555"
);
productRedeemVOList
.
add
(
productRedeemVO
);
transactionVO
.
setProducts
(
productRedeemVOList
);
transactionVOList
.
add
(
transactionVO
);
couponRequest
.
setTransactions
(
transactionVOList
);
couponRequest
.
setVer
(
1
);
couponRequest
.
setPartnerId
(
1000
);
BaseResponse
validateResponse
=
ValidationUtils
.
validate
(
couponRequest
);
if
(!
ResponseUtils
.
isSuccess
(
validateResponse
))
{
System
.
out
.
println
(
JSON
.
toJSONString
(
validateResponse
));
return
;
}
BaseRequest
<
CouponRequest
>
request
=
new
BaseRequest
();
request
.
setRequestBody
(
couponRequest
);
request
.
setAppName
(
"Order"
);
request
.
setBaseUrl
(
""
);
request
.
setTrackingNo
(
UUID
.
randomUUID
().
toString
());
CouponQueryResponse
couponQueryResponse
=
RequestThirdPartyUtils
.
httpJsonReqComplex
(
restTemplate
,
CouponOfflineApiConstant
.
COUPON_API
,
request
,
new
TypeReference
<
CouponQueryResponse
>(){});
if
(
couponQueryResponse
==
null
)
{
System
.
out
.
println
(
"查询券列表返回Null"
);
return
;
}
if
(
couponQueryResponse
.
getStatusCode
()
!=
RESPONSE_SUCCESS
)
{
System
.
out
.
println
(
couponQueryResponse
.
getMsg
());
return
;
}
System
.
out
.
println
(
couponQueryResponse
);
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/OrderApplication.java
View file @
79b5413c
...
@@ -42,7 +42,7 @@ import tk.mybatis.spring.annotation.MapperScan;
...
@@ -42,7 +42,7 @@ import tk.mybatis.spring.annotation.MapperScan;
@ComponentScan
({
"cn.freemud"
,
"com.freemud"
})
@ComponentScan
({
"cn.freemud"
,
"com.freemud"
})
@MapperScan
({
"cn.freemud.*.dao"
,
"com.freemud.sdk.api.assortment.orderdistributor.mapper"
,
"com.freemud.api.assortment.datamanager.manager"
,
@MapperScan
({
"cn.freemud.*.dao"
,
"com.freemud.sdk.api.assortment.orderdistributor.mapper"
,
"com.freemud.api.assortment.datamanager.manager"
,
"com.freemud.api.assortment.datamanager.queue.dao"
,
"com.freemud.api.assortment.datamanager.rbac.dao"
,
"com.freemud.api.assortment.datamanager.queue.entity"
})
"com.freemud.api.assortment.datamanager.queue.dao"
,
"com.freemud.api.assortment.datamanager.rbac.dao"
,
"com.freemud.api.assortment.datamanager.queue.entity"
})
@EnableFeignClients
({
"cn.freemud.service.thirdparty"
,
"com.freemud.sdk.api.assortment.message"
})
@EnableFeignClients
({
"cn.freemud.service.thirdparty"
,
"com.freemud.sdk.api.assortment.message"
,
"com.freemud.sdk.api.assortment.order.service.thirdparty"
})
@EnableAutoConfiguration
@EnableAutoConfiguration
public
class
OrderApplication
{
public
class
OrderApplication
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
...
...
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
79b5413c
...
@@ -19,6 +19,7 @@ import cn.freemud.entities.vo.encircle.EmptyTableNumberVo;
...
@@ -19,6 +19,7 @@ import cn.freemud.entities.vo.encircle.EmptyTableNumberVo;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.monitorcenter.tools.HealthUtil
;
import
cn.freemud.monitorcenter.tools.HealthUtil
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.MCCafeOrderService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.OrderAdapterService
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.utils.ResponseUtil
;
import
cn.freemud.utils.ResponseUtil
;
...
@@ -49,6 +50,8 @@ public class OrderController {
...
@@ -49,6 +50,8 @@ public class OrderController {
private
EncircleOrderService
encircleOrderService
;
private
EncircleOrderService
encircleOrderService
;
@Autowired
@Autowired
private
MallOrderServiceImpl
mallOrderService
;
private
MallOrderServiceImpl
mallOrderService
;
@Autowired
private
MCCafeOrderService
mcCafeOrderService
;
/**
/**
* 创建订单之前校验前面排队的订单数
* 创建订单之前校验前面排队的订单数
...
@@ -76,6 +79,15 @@ public class OrderController {
...
@@ -76,6 +79,15 @@ public class OrderController {
}
}
/**
/**
* 麦咖啡创建订单
*/
@ApiAnnotation
(
logMessage
=
"createMCCafeOrder"
)
@PostMapping
(
"/createMCCafeOrder"
)
public
BaseResponse
createOrderMCCafe
(
@Validated
@LogParams
@RequestBody
CreateOrderVo
createOrderVo
)
{
return
orderAdapterService
.
createMCCafeOrder
(
createOrderVo
);
}
/**
* 扫脸支付下单
* 扫脸支付下单
*/
*/
@ApiAnnotation
(
logMessage
=
"scanFaceCreateOrder"
)
@ApiAnnotation
(
logMessage
=
"scanFaceCreateOrder"
)
...
@@ -112,6 +124,15 @@ public class OrderController {
...
@@ -112,6 +124,15 @@ public class OrderController {
}
}
/**
/**
* 麦咖啡订单支付成功后通知
*/
@ApiAnnotation
(
logMessage
=
"mcCafePaySuccessCallback"
)
@PostMapping
({
"/mcCafePaySuccessCallback"
,
"/openStoreMCCafeQueryPaymentCallback"
})
public
String
mcCafePaySuccessCallback
(
@LogParams
@RequestBody
NewPaysuccessNoticeMessage
message
)
{
return
mcCafeOrderService
.
mcCafePaySuccessCallback
(
message
);
}
/**
* 退款回掉通知
* 退款回掉通知
*/
*/
@ApiAnnotation
(
logMessage
=
"refundNotifyCallback"
)
@ApiAnnotation
(
logMessage
=
"refundNotifyCallback"
)
...
...
order-application-service/src/main/java/cn/freemud/entities/dto/shoppingCart/MCCafeShoppingCartGoodsDto.java
0 → 100644
View file @
79b5413c
package
cn
.
freemud
.
entities
.
dto
.
shoppingCart
;
import
cn.freemud.entities.dto.OrderProductAddInfo
;
import
cn.freemud.entities.vo.SubtractStockVO
;
import
com.alibaba.fastjson.JSON
;
import
lombok.Builder
;
import
lombok.Data
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Data
public
class
MCCafeShoppingCartGoodsDto
extends
ShoppingCartGoodsDto
{
private
String
thirdCouponCode
;
}
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
0 → 100644
View file @
79b5413c
package
cn
.
freemud
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.entities.dto.ConfirmOrderDto
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.*
;
import
java.util.Map
;
/**
* 订单服务
*
* @author liming.guo
* @date 2018/05/08
*/
public
interface
MCCafeOrderService
{
/**
* 创建麦咖啡订单
*/
BaseResponse
createMCCafeOrder
(
CreateOrderVo
createOrderVo
);
/**
* 麦咖啡支付成功回调
*/
String
mcCafePaySuccessCallback
(
NewPaysuccessNoticeMessage
message
);
/**
* 支付回调
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
);
}
order-application-service/src/main/java/cn/freemud/service/OrderAdapterService.java
View file @
79b5413c
...
@@ -27,6 +27,13 @@ public interface OrderAdapterService {
...
@@ -27,6 +27,13 @@ public interface OrderAdapterService {
BaseResponse
createOrderNew
(
CreateOrderVo
createOrderVo
);
BaseResponse
createOrderNew
(
CreateOrderVo
createOrderVo
);
/**
/**
* 麦咖啡创建订单
* @param createOrderVo
* @return
*/
BaseResponse
createMCCafeOrder
(
CreateOrderVo
createOrderVo
);
/**
* 创建预支付
* 创建预支付
*/
*/
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
);
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
);
...
@@ -40,5 +47,10 @@ public interface OrderAdapterService {
...
@@ -40,5 +47,10 @@ public interface OrderAdapterService {
* 支付回调处理
* 支付回调处理
*/
*/
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
);
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
);
/**
* 支付回调处理
*/
String
mcCafePaySuccessCallback
(
PaysuccessNoticeMessage
message
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
View file @
79b5413c
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
0 → 100644
View file @
79b5413c
This diff is collapsed.
Click to expand it.
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
79b5413c
...
@@ -55,6 +55,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -55,6 +55,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
@Autowired
@Autowired
private
OrderServiceImpl
orderService
;
private
OrderServiceImpl
orderService
;
@Autowired
@Autowired
private
MCCafeOrderService
mcCafeOrderService
;
@Autowired
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
private
AssortmentCustomerInfoManager
assortmentCustomerInfoManager
;
@Autowired
@Autowired
private
MallOrderService
mallOrderService
;
private
MallOrderService
mallOrderService
;
...
@@ -97,8 +99,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -97,8 +99,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
case
4
:
// 创建预支付订单
case
4
:
// 创建预支付订单
baseResponse
=
encircleOrderService
.
createPrepaymentOrder
(
createReserveOrderVo
);
baseResponse
=
encircleOrderService
.
createPrepaymentOrder
(
createReserveOrderVo
);
break
;
break
;
default
:
default
:
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_OPERATION_ERROR
);
throw
new
ServiceException
(
ResponseResult
.
ORDER_CREATE_OPERATION_ERROR
);
}
}
return
baseResponse
;
return
baseResponse
;
}
}
...
@@ -125,6 +127,24 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -125,6 +127,24 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return
orderService
.
createOrderNew
(
createOrderVo
);
return
orderService
.
createOrderNew
(
createOrderVo
);
}
}
@Override
public
BaseResponse
createMCCafeOrder
(
CreateOrderVo
createOrderVo
)
{
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
assortmentCustomerInfoManager
.
getCustomerInfoByObject
(
createOrderVo
.
getSessionId
());
if
(
assortmentCustomerInfoVo
==
null
||
StringUtils
.
isEmpty
(
assortmentCustomerInfoVo
.
getMemberId
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
NOT_LOGIN
);
}
// 扩展字段中存储 sessionKey
createOrderVo
.
setSessionKey
(
assortmentCustomerInfoVo
.
getSessionKey
());
//原标准点餐程序逻辑处理
BaseResponse
baseResponse
=
this
.
checkStandardParamInfo
(
createOrderVo
);
if
(
ObjectUtils
.
notEqual
(
baseResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
())){
return
baseResponse
;
}
return
mcCafeOrderService
.
createMCCafeOrder
(
createOrderVo
);
}
@Override
@Override
public
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
)
{
public
BaseResponse
createPrepay
(
CreatePrepayVo
createPrepayVo
)
{
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
assortmentCustomerInfoManager
.
getCustomerInfoByObject
(
createPrepayVo
.
getSessionId
());
AssortmentCustomerInfoVo
assortmentCustomerInfoVo
=
assortmentCustomerInfoManager
.
getCustomerInfoByObject
(
createPrepayVo
.
getSessionId
());
...
@@ -161,23 +181,45 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -161,23 +181,45 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
return
orderAdapter
.
sendPaySuccessNoticeMessage
();
return
orderAdapter
.
sendPaySuccessNoticeMessage
();
}
}
/**
//买券虚拟订单
* 围餐处理
if
(
orderBean
.
getBizType
()
==
6
)
{
*/
return
sellCouponOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
if
(
"meals"
.
equals
(
orderBean
.
getSource
()))
{
return
orderCommonService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
}
/**
/**
*
微商城
处理
*
默认点餐
处理
*/
*/
if
(
OrderSourceType
.
SAASMALL
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
orderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
return
mallOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
catch
(
Exception
e
)
{
throw
e
;
}
finally
{
//删除分布式锁
redisCache
.
delete
(
"saas:lockAfter:"
+
paySuccessKey
);
}
}
@Override
public
String
mcCafePaySuccessCallback
(
PaysuccessNoticeMessage
message
)
{
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String
paySuccessKey
=
PAY_SUCCESS_KEY
+
message
.
getTrans_id
();
if
(!
LockUtils
.
lockAfter
(
redisCache
.
getRedisTemplate
(),
paySuccessKey
)){
return
orderAdapter
.
newSendPayFaileMessage
();
}
try
{
ConfirmOrderDto
confirmOrderDto
=
orderAdapter
.
convent2ConfirmOrderDto
(
message
);
// 通过交易号从缓存中拿订单号,如果有数据则实际订单号为其value值
String
orderId
=
redisCache
.
getValue
(
RedisUtil
.
getPaymentTransIdOrderKey
(
confirmOrderDto
.
getOrderId
()));
if
(
StringUtils
.
isNotBlank
(
orderId
))
{
log
.
info
(
"从缓存中获取的订单数据,trackingNo:{},transId:{},orderId:{}"
,
LogTreadLocal
.
getTrackingNo
(),
confirmOrderDto
.
getOrderId
(),
orderId
);
confirmOrderDto
.
setOrderId
(
orderId
);
}
}
/**
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
=
orderService
.
getOrderBeanByOrderId
(
confirmOrderDto
.
getOrderId
());
* app订单处理
if
(
MapUtils
.
isEmpty
(
orderBeans
))
{
*/
log
.
error
(
"paySuccessCallback_queryOrderById_faild, trackingNo:{},PaysuccessNoticeMessage:{}"
,
LogTreadLocal
.
getTrackingNo
(),
gson
.
toJson
(
message
));
if
(
OrderSourceType
.
APP
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
gson
.
toJson
(
message
);
return
appOrderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
if
(!
PayStatus
.
NOT_PAY
.
getCode
().
equals
(
orderBean
.
getPayStatus
())){
return
orderAdapter
.
sendPaySuccessNoticeMessage
();
}
}
//买券虚拟订单
//买券虚拟订单
if
(
orderBean
.
getBizType
()
==
6
)
{
if
(
orderBean
.
getBizType
()
==
6
)
{
...
@@ -186,7 +228,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
...
@@ -186,7 +228,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
/**
/**
* 默认点餐处理
* 默认点餐处理
*/
*/
return
o
rderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
return
mcCafeO
rderService
.
paySuccessCallback
(
message
,
confirmOrderDto
,
orderBeans
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
e
;
throw
e
;
}
finally
{
}
finally
{
...
...
order-application-service/src/test/java/cn.freemud/service/CouponActivityServiceTest.java
View file @
79b5413c
package
cn
.
freemud
.
service
;
import
cn.freemud.OrderApplication
;
import
cn.freemud.base.constant.Version
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.sdk.api.assortment.order.enums.CouponReqTypeEnum
;
import
com.freemud.sdk.api.assortment.order.request.coupon.*
;
import
com.freemud.sdk.api.assortment.order.service.thirdparty.CouponOfflineMCCafeClient
;
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.test.context.junit4.SpringRunner
;
import
java.util.ArrayList
;
import
java.util.List
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
OrderApplication
.
class
)
public
class
CouponActivityServiceTest
{
@Autowired
private
CouponOfflineMCCafeClient
offlineMCCafeClient
;
@Test
public
void
redeemTest
()
{
MCCafeConponRequest
couponCodeVerificationDto
=
new
MCCafeConponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
CouponReqTypeEnum
.
REDEEM
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
1205
);
couponCodeVerificationDto
.
setStore_id
(
"khl-12345"
);
couponCodeVerificationDto
.
setStation_id
(
"1"
);
couponCodeVerificationDto
.
setOperator_id
(
"1"
);
// 订单号
couponCodeVerificationDto
.
setTrans_id
(
"testRedeem0729009"
);
couponCodeVerificationDto
.
setChannel
(
"mocoffee_wx"
);
List
<
MCCafeTransactionVo
>
transactions
=
new
ArrayList
<>();
MCCafeTransactionVo
mcCafeTransactionVo
=
new
MCCafeTransactionVo
();
mcCafeTransactionVo
.
setCode
(
"281168656683188"
);
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
MCCafeProductRedeemVo
mcCafeProductRedeemVo
=
new
MCCafeProductRedeemVo
();
mcCafeProductRedeemVo
.
setConsume_num
(
1
);
mcCafeProductRedeemVo
.
setPid
(
"100057810020870000"
);
mcCafeProductRedeemVo
.
setCustomer_code
(
"11"
);
mcCafeProductRedeemVo
.
setKeyProductCode
(
"11"
);
mcCafeProductRedeemVo
.
setSeq
(
1
);
products
.
add
(
mcCafeProductRedeemVo
);
mcCafeTransactionVo
.
setProducts
(
products
);
transactions
.
add
(
mcCafeTransactionVo
);
couponCodeVerificationDto
.
setTransactions
(
transactions
);
couponCodeVerificationDto
.
setSign
(
"skip"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
couponCodeVerificationDto
));
CouponRedeemResponse
couponCodeResponseDto
=
offlineMCCafeClient
.
redeem
(
couponCodeVerificationDto
);
System
.
out
.
println
(
couponCodeResponseDto
);
}
@Test
public
void
cancelRedeemTest
()
{
MCCafeConponRequest
couponCodeVerificationDto
=
new
MCCafeConponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
CouponReqTypeEnum
.
CANCEL_REDEEM
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
1205
);
couponCodeVerificationDto
.
setStore_id
(
"khl-12345"
);
couponCodeVerificationDto
.
setStation_id
(
"1"
);
couponCodeVerificationDto
.
setOperator_id
(
"1"
);
// 订单号
couponCodeVerificationDto
.
setTrans_id
(
"testRedeem0729009"
);
couponCodeVerificationDto
.
setChannel
(
"mocoffee_wx"
);
List
<
MCCafeTransactionVo
>
transactions
=
new
ArrayList
<>();
MCCafeTransactionVo
mcCafeTransactionVo
=
new
MCCafeTransactionVo
();
mcCafeTransactionVo
.
setCode
(
"297330216254368"
);
List
<
MCCafeProductRedeemVo
>
products
=
new
ArrayList
<>();
MCCafeProductRedeemVo
mcCafeProductRedeemVo
=
new
MCCafeProductRedeemVo
();
mcCafeProductRedeemVo
.
setConsume_num
(
1
);
mcCafeProductRedeemVo
.
setPid
(
"100057810020870000"
);
mcCafeProductRedeemVo
.
setCustomer_code
(
"11"
);
mcCafeProductRedeemVo
.
setKeyProductCode
(
"11"
);
mcCafeProductRedeemVo
.
setSeq
(
1
);
products
.
add
(
mcCafeProductRedeemVo
);
mcCafeTransactionVo
.
setProducts
(
products
);
transactions
.
add
(
mcCafeTransactionVo
);
couponCodeVerificationDto
.
setTransactions
(
transactions
);
couponCodeVerificationDto
.
setSign
(
"skip"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
couponCodeVerificationDto
));
CouponRedeemResponse
couponCodeResponseDto
=
offlineMCCafeClient
.
cancelRedeem
(
couponCodeVerificationDto
);
System
.
out
.
println
(
couponCodeResponseDto
);
}
@Test
public
void
queryTest
()
{
MCCafeConponRequest
couponCodeVerificationDto
=
new
MCCafeConponRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqtype
(
CouponReqTypeEnum
.
QUERY
.
getCode
());
couponCodeVerificationDto
.
setPartnerId
(
1205
);
couponCodeVerificationDto
.
setStore_id
(
"khl-12345"
);
couponCodeVerificationDto
.
setStation_id
(
"1"
);
couponCodeVerificationDto
.
setOperator_id
(
"1"
);
couponCodeVerificationDto
.
setChannel
(
"mocoffee_wx"
);
couponCodeVerificationDto
.
setCoupon
(
"281168656683188"
);
couponCodeVerificationDto
.
setSign
(
"skip"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
couponCodeVerificationDto
));
CouponQueryResponse
couponQueryResponse
=
offlineMCCafeClient
.
query
(
couponCodeVerificationDto
);
System
.
out
.
println
(
JSON
.
toJSONString
(
couponQueryResponse
));
}
@Test
public
void
lockTest
()
{
MCCafeCouponLockRequest
couponCodeVerificationDto
=
new
MCCafeCouponLockRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqType
(
89
);
couponCodeVerificationDto
.
setPartnerId
(
"1205"
);
couponCodeVerificationDto
.
setStoreId
(
"99992"
);
// 订单号
couponCodeVerificationDto
.
setTransId
(
"00000002"
);
couponCodeVerificationDto
.
setOfferId
(
"281168656683188"
);
couponCodeVerificationDto
.
setCoupon
(
"281168656683188"
);
couponCodeVerificationDto
.
setNumber
(
"1"
);
couponCodeVerificationDto
.
setChannel
(
"mocoffee_wx"
);
couponCodeVerificationDto
.
setOperatorId
(
"1"
);
couponCodeVerificationDto
.
setStationId
(
"1"
);
couponCodeVerificationDto
.
setSign
(
"ss"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
couponCodeVerificationDto
));
CouponBaseResponse
couponCodeResponseDto
=
offlineMCCafeClient
.
lock
(
couponCodeVerificationDto
);
System
.
out
.
println
(
couponCodeResponseDto
);
}
@Test
public
void
unlockTest
()
{
MCCafeCouponLockRequest
couponCodeVerificationDto
=
new
MCCafeCouponLockRequest
();
couponCodeVerificationDto
.
setVer
(
Integer
.
valueOf
(
Version
.
VERSION_1
));
couponCodeVerificationDto
.
setReqType
(
90
);
couponCodeVerificationDto
.
setPartnerId
(
"1205"
);
couponCodeVerificationDto
.
setStoreId
(
"khl-12345"
);
// 订单号
couponCodeVerificationDto
.
setTransId
(
"00000002"
);
couponCodeVerificationDto
.
setOfferId
(
"281168656683188"
);
couponCodeVerificationDto
.
setCoupon
(
"281168656683188"
);
couponCodeVerificationDto
.
setNumber
(
"1"
);
couponCodeVerificationDto
.
setChannel
(
"mocoffee_wx"
);
couponCodeVerificationDto
.
setOperatorId
(
"1"
);
couponCodeVerificationDto
.
setStationId
(
"1"
);
couponCodeVerificationDto
.
setSign
(
"ss"
);
System
.
out
.
println
(
JSON
.
toJSONString
(
couponCodeVerificationDto
));
CouponBaseResponse
couponCodeResponseDto
=
offlineMCCafeClient
.
unlock
(
couponCodeVerificationDto
);
System
.
out
.
println
(
couponCodeResponseDto
);
}
}
\ No newline at end of file
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/CouponCodeMCCafeBaseDto.java
0 → 100644
View file @
79b5413c
package
cn
.
freemud
.
entities
.
dto
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponCodeBaseReqVO
* @Package cn.freemud.entities.dto
* @Description:
* @author: biao.zhang
* @date: 2018/11/19 16:07
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
CouponCodeMCCafeBaseDto
{
private
Integer
ver
;
/**
* 71 核销
* 89 锁定
* 90 解锁
*/
private
Integer
reqType
;
/**
* 核销渠道
* 1:线下Pos
* 2:线上
* 3:pickup:麦当劳点餐
* 4:delivery:麦当劳外送
* 5:mccafe:麦当劳咖啡
* 6:mc_dessert麦当劳甜品站
* 7:SOK
* 8:ECP/CMA
* 9:mcd_alipay:麦当劳支付宝点餐
*/
private
String
channel
;
//商户编号
private
String
partnerId
;
//商家门店号
private
String
storeId
;
//营业员编号
private
String
operatorId
;
//POS机编号
private
String
stationId
;
}
shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/CouponCodeVerificationMCCafeDto.java
0 → 100644
View file @
79b5413c
package
cn
.
freemud
.
entities
.
dto
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponCodeVerificationReqVO
* @Package cn.freemud.entities.dto
* @Description:
* @author: biao.zhang
* @date: 2018/7/17 14:45
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
CouponCodeVerificationMCCafeDto
extends
CouponCodeMCCafeBaseDto
{
//交易序号
private
String
transId
;
//券编号
private
String
coupon
;
//三方券号
private
String
offerId
;
//锁定/解锁次数
private
String
number
;
//----非必传---
//预约订单时间,为空则为及时单,如:2020-06-17 12:00:00
private
String
advancedOrderTime
;
//签名
private
String
sign
;
private
List
<
CouponCodeVerificationTransDto
>
transactions
;
}
shopping-cart-application-service/src/main/java/cn/freemud/service/CouponService.java
View file @
79b5413c
...
@@ -64,17 +64,7 @@ public interface CouponService {
...
@@ -64,17 +64,7 @@ public interface CouponService {
* @param requestVo
* @param requestVo
* @return
* @return
*/
*/
GetCouponDetailResponseDto
getMCDMemberCoupon
(
GetMemberCouponRequestVo
requestVo
);
GetCouponDetailResponseDto
getMCCafeMemberCoupon
(
GetMemberCouponRequestVo
requestVo
);
/**
* 批次查询麦咖啡券详情
*
* @param partnerId
* @param storeId
* @param codes
* @return
*/
List
<
GetCouponDetailResponseDto
.
Details
>
getMCDMemberCoupons
(
String
partnerId
,
String
storeId
,
List
<
String
>
codes
);
/**
/**
* 同步券到会员卡包(投放会员卡包)
* 同步券到会员卡包(投放会员卡包)
...
@@ -100,7 +90,7 @@ public interface CouponService {
...
@@ -100,7 +90,7 @@ public interface CouponService {
/**
/**
* 获取卡券服务麦咖啡商户密钥
* 获取卡券服务麦咖啡商户密钥
*/
*/
String
get
AppSecretMCD
(
String
partnerId
);
String
get
MCCafeAppSecret
(
String
partnerId
);
/**
/**
* 通过code校验券是否存在,返回商品券信息pid、price、code
* 通过code校验券是否存在,返回商品券信息pid、price、code
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/CouponServiceImpl.java
View file @
79b5413c
...
@@ -86,6 +86,8 @@ public class CouponServiceImpl implements CouponService {
...
@@ -86,6 +86,8 @@ public class CouponServiceImpl implements CouponService {
@Autowired
@Autowired
private
CouponOnlineClient
couponOnlineClient
;
private
CouponOnlineClient
couponOnlineClient
;
@Autowired
@Autowired
private
CouponOnlineMCCafeClient
couponOnlineMCCafeClient
;
@Autowired
private
CouponAvailableService
couponAvailableService
;
private
CouponAvailableService
couponAvailableService
;
@Value
(
"${coupon.app.id}"
)
@Value
(
"${coupon.app.id}"
)
private
String
appid
;
private
String
appid
;
...
@@ -94,7 +96,7 @@ public class CouponServiceImpl implements CouponService {
...
@@ -94,7 +96,7 @@ public class CouponServiceImpl implements CouponService {
@Autowired
@Autowired
private
CardBinClient
cardBinClient
;
private
CardBinClient
cardBinClient
;
@Autowired
@Autowired
private
CardBinMC
DClient
cardBinMCD
Client
;
private
CardBinMC
CafeClient
cardBinMCCafe
Client
;
@Autowired
@Autowired
private
StoreItemClient
storeItemClient
;
private
StoreItemClient
storeItemClient
;
@Autowired
@Autowired
...
@@ -251,6 +253,32 @@ public class CouponServiceImpl implements CouponService {
...
@@ -251,6 +253,32 @@ public class CouponServiceImpl implements CouponService {
return
null
;
return
null
;
}
}
@Override
public
GetCouponDetailResponseDto
getMCCafeMemberCoupon
(
GetMemberCouponRequestVo
requestVo
)
{
log
.
info
(
"getMemberCoupon:"
+
gson
.
toJson
(
requestVo
));
//TODO 券详情查券服务
Map
<
String
,
String
>
map
=
new
TreeMap
<
String
,
String
>();
if
(
StringUtils
.
isBlank
(
requestVo
.
getPartnerId
())
||
StringUtils
.
isBlank
(
requestVo
.
getCouponCode
()))
{
return
null
;
}
map
.
put
(
Finals
.
CODES
,
requestVo
.
getCouponCode
());
map
.
put
(
Finals
.
PARTNER_ID
,
requestVo
.
getPartnerId
());
map
.
put
(
Finals
.
MERCHANT_ID
,
requestVo
.
getPartnerId
());
map
.
put
(
Finals
.
ACTION
,
"code.allDetails"
);
// 券码接口新增参数:组织机构(多个用英文逗号分离)
String
channelIds
=
commonService
.
getOrgIdsAsString
(
requestVo
.
getPartnerId
(),
requestVo
.
getStoreId
());
map
.
put
(
Finals
.
CHANNEL_CODE_LIST
,
channelIds
);
String
appSecret
=
getMCCafeAppSecret
(
requestVo
.
getPartnerId
());
String
sign
=
SignUtil
.
createMD5Sign
(
map
,
appSecret
);
map
.
put
(
Finals
.
SIGN
,
sign
);
GetCouponDetailResponseDto
responseDto
=
couponOnlineMCCafeClient
.
getMCCafeCouponDetails
(
map
);
LogUtil
.
info
(
"couponOnlineClient.getCouponDetails****"
,
map
,
gson
.
toJson
(
responseDto
));
if
(
ResponseCodeConstant
.
RESPONSE_SUCCESS_1
.
equals
(
responseDto
.
getResult
()))
{
return
responseDto
;
}
return
null
;
}
/**
/**
* 批次查询
* 批次查询
*/
*/
...
@@ -307,12 +335,12 @@ public class CouponServiceImpl implements CouponService {
...
@@ -307,12 +335,12 @@ public class CouponServiceImpl implements CouponService {
}
}
@Override
@Override
public
String
get
AppSecretMCD
(
String
partnerId
)
{
public
String
get
MCCafeAppSecret
(
String
partnerId
)
{
// 获取券服务的密钥
// 获取券服务的密钥
String
couponAppSecret
=
RedisUtil
.
getCouponAppSecret
(
partnerId
);
String
couponAppSecret
=
RedisUtil
.
getCouponAppSecret
(
partnerId
);
String
appSecret
=
redisCache
.
getValue
(
couponAppSecret
);
String
appSecret
=
redisCache
.
getValue
(
couponAppSecret
);
if
(
StringUtils
.
isBlank
(
appSecret
))
{
if
(
StringUtils
.
isBlank
(
appSecret
))
{
GetAppKeyResponseDto
getAppKeyResponseDto
=
cardBinMC
DClient
.
get
AppKey
(
GetAppKeyRequestDto
.
builder
().
partnerId
(
partnerId
).
appId
(
appid
).
build
());
GetAppKeyResponseDto
getAppKeyResponseDto
=
cardBinMC
CafeClient
.
getMCCafe
AppKey
(
GetAppKeyRequestDto
.
builder
().
partnerId
(
partnerId
).
appId
(
appid
).
build
());
if
(
Objects
.
equals
(
String
.
valueOf
(
getAppKeyResponseDto
.
getStatusCode
()),
ResponseResult
.
SUCCESS
.
getCode
())
if
(
Objects
.
equals
(
String
.
valueOf
(
getAppKeyResponseDto
.
getStatusCode
()),
ResponseResult
.
SUCCESS
.
getCode
())
&&
getAppKeyResponseDto
.
getData
()
!=
null
)
{
&&
getAppKeyResponseDto
.
getData
()
!=
null
)
{
redisCache
.
save
(
couponAppSecret
,
getAppKeyResponseDto
.
getData
().
getAppKey
());
redisCache
.
save
(
couponAppSecret
,
getAppKeyResponseDto
.
getData
().
getAppKey
());
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CardBinMC
D
Client.java
→
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CardBinMC
Cafe
Client.java
View file @
79b5413c
...
@@ -9,24 +9,24 @@ import org.springframework.web.bind.annotation.PostMapping;
...
@@ -9,24 +9,24 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
//测试环境:http://115.159.65.101:8082 生产环境:https://onlinecoupon.sandload.cn
//测试环境:http://115.159.65.101:8082 生产环境:https://onlinecoupon.sandload.cn
@FeignClient
(
name
=
"CARDBIN
CLIENT"
,
url
=
"${saas.cardbinclient.feign.url}
"
)
@FeignClient
(
name
=
"CARDBIN
MCCafeCLIENT"
,
url
=
"fff
"
)
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
@RequestMapping
(
produces
=
{
"application/json;charset=UTF-8"
})
public
interface
CardBinMC
D
Client
{
public
interface
CardBinMC
Cafe
Client
{
/**
/**
* 获取麦咖啡券码密钥
* 获取麦咖啡券码密钥
* @param requestDto
* @param requestDto
* @return
* @return
*/
*/
@PostMapping
(
"/getAppKey"
)
@PostMapping
(
"/
mccafe/
getAppKey"
)
GetAppKeyResponseDto
getAppKey
(
GetAppKeyRequestDto
requestDto
);
GetAppKeyResponseDto
get
MCCafe
AppKey
(
GetAppKeyRequestDto
requestDto
);
/**
/**
* 麦咖啡活动信息批量查询
* 麦咖啡活动信息批量查询
* @param requestDto
* @param requestDto
* @return
* @return
*/
*/
@PostMapping
(
value
=
"/batchQueryActivityInfo"
)
@PostMapping
(
value
=
"/
mccafe/
batchQueryActivityInfo"
)
BatchQueryActivityInfoResponseDto
batchQueryActivityInfo
(
BatchQueryActivityInfoRequestDto
requestDto
);
BatchQueryActivityInfoResponseDto
batchQuery
MCCafe
ActivityInfo
(
BatchQueryActivityInfoRequestDto
requestDto
);
}
}
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOfflineMCCafeClient.java
0 → 100644
View file @
79b5413c
package
cn
.
freemud
.
service
.
thirdparty
;
import
cn.freemud.entities.dto.CouponCodeResponseDto
;
import
cn.freemud.entities.dto.CouponCodeVerificationMCCafeDto
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
@FeignClient
(
name
=
"COUPONMCCafe"
,
url
=
"http://coupon-api-gateway-koderover-dev-coupon.api-ingress.sandload.cn"
)
public
interface
CouponOfflineMCCafeClient
{
@PostMapping
(
"/mccafe/redeem"
)
CouponRedeemResponse
redeem
(
CouponCodeVerificationMCCafeDto
couponCodeVerificationMCCafeDto
);
@PostMapping
(
"/mccafe/cancelRedeem"
)
CouponRedeemResponse
cancelRedeem
(
CouponCodeVerificationMCCafeDto
couponCodeVerificationMCCafeDto
);
@PostMapping
(
"/mccafe/query"
)
CouponRedeemResponse
query
(
CouponCodeVerificationMCCafeDto
couponCodeVerificationMCCafeDto
);
@PostMapping
(
"/mccafe/lock"
)
CouponRedeemResponse
lock
(
CouponCodeVerificationMCCafeDto
couponCodeVerificationMCCafeDto
);
@PostMapping
(
"/mccafe/unlock"
)
CouponRedeemResponse
unlock
(
CouponCodeVerificationMCCafeDto
couponCodeVerificationMCCafeDto
);
}
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineMC
D
Client.java
→
shopping-cart-application-service/src/main/java/cn/freemud/service/thirdparty/CouponOnlineMC
Cafe
Client.java
View file @
79b5413c
...
@@ -12,14 +12,14 @@ import org.springframework.web.bind.annotation.RequestBody;
...
@@ -12,14 +12,14 @@ import org.springframework.web.bind.annotation.RequestBody;
import
java.util.Map
;
import
java.util.Map
;
//@IgnoreFeignLogAnnotation
//@IgnoreFeignLogAnnotation
@FeignClient
(
name
=
"COUPONOLINE
"
,
url
=
"${saas.coupononlineclient.feign.url}
"
,
configuration
=
FormSupportConfig
.
class
)
@FeignClient
(
name
=
"COUPONOLINE
MCCafe"
,
url
=
"fffff
"
,
configuration
=
FormSupportConfig
.
class
)
public
interface
CouponOnlineMC
D
Client
{
public
interface
CouponOnlineMC
Cafe
Client
{
/**
/**
* 查询券详情
* 查询券详情
*/
*/
@PostMapping
(
value
=
"/code_v4"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
,
@PostMapping
(
value
=
"/
mccafe/
code_v4"
,
produces
=
MediaType
.
APPLICATION_JSON_UTF8_VALUE
,
consumes
=
{
MediaType
.
APPLICATION_FORM_URLENCODED_VALUE
}
consumes
=
{
MediaType
.
APPLICATION_FORM_URLENCODED_VALUE
}
)
)
GetCouponDetailResponseDto
getCouponDetails
(
@RequestBody
Map
<
String
,
?>
map
);
GetCouponDetailResponseDto
get
MCCafe
CouponDetails
(
@RequestBody
Map
<
String
,
?>
map
);
}
}
shopping-cart-application-service/src/test/java/cn.freemud/service/CouponServiceTest.java
View file @
79b5413c
...
@@ -175,24 +175,17 @@ public class CouponServiceTest {
...
@@ -175,24 +175,17 @@ public class CouponServiceTest {
*/
*/
@Test
@Test
public
void
couponCodeV4
()
{
public
void
couponCodeV4
()
{
Map
<
String
,
String
>
map
=
new
TreeMap
<
String
,
String
>();
GetMemberCouponRequestVo
getMemberCouponRequestVo
=
new
GetMemberCouponRequestVo
();
map
.
put
(
Finals
.
CODES
,
""
);
getMemberCouponRequestVo
.
setCouponCode
(
""
);
map
.
put
(
Finals
.
PARTNER_ID
,
""
);
getMemberCouponRequestVo
.
setPartnerId
(
""
);
map
.
put
(
Finals
.
MERCHANT_ID
,
""
);
getMemberCouponRequestVo
.
setStoreId
(
""
);
map
.
put
(
Finals
.
ACTION
,
"code.allDetails"
);
GetCouponDetailResponseDto
responseDto
=
couponService
.
getMCCafeMemberCoupon
(
getMemberCouponRequestVo
);
// 券码接口新增参数:组织机构(多个用英文逗号分离)
System
.
out
.
println
(
JSON
.
toJSONString
(
responseDto
));
String
channelIds
=
commonService
.
getOrgIdsAsString
(
""
,
""
);
map
.
put
(
Finals
.
CHANNEL_CODE_LIST
,
channelIds
);
String
appSecret
=
getAppSecret
(
""
);
String
sign
=
SignUtil
.
createMD5Sign
(
map
,
appSecret
);
map
.
put
(
Finals
.
SIGN
,
sign
);
// GetCouponDetailResponseDto responseDto = couponOnlineClient.getCouponDetails(map);
// System.out.println(JSON.toJSONString(responseDto));
}
}
@Test
@Test
public
String
getAppSecret
(
String
partner
)
{
public
String
getAppSecret
(
String
partner
)
{
String
appSecret
=
couponService
.
get
AppSecretMCD
(
partner
);
String
appSecret
=
couponService
.
get
MCCafeAppSecret
(
partner
);
System
.
out
.
println
(
appSecret
);
System
.
out
.
println
(
appSecret
);
return
appSecret
;
return
appSecret
;
}
}
...
...
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