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
6d0ad710
Commit
6d0ad710
authored
Sep 10, 2021
by
徐康
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
麦咖啡订单推送
parent
db8f2ce1
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
895 additions
and
15 deletions
+895
-15
order-application-service/src/main/java/cn/freemud/OrderApplication.java
+12
-0
order-application-service/src/main/java/cn/freemud/controller/McCafeController.java
+13
-0
order-application-service/src/main/java/cn/freemud/entities/db/PushMccafeOrder.java
+42
-0
order-application-service/src/main/java/cn/freemud/entities/dto/Evaluation/McCafePushOrderDto.java
+328
-0
order-application-service/src/main/java/cn/freemud/entities/dto/order/RefundQueryRequestDto.java
+27
-0
order-application-service/src/main/java/cn/freemud/entities/dto/order/RefundQueryResponseDto.java
+29
-0
order-application-service/src/main/java/cn/freemud/entities/vo/McCafePushOrderVo.java
+32
-0
order-application-service/src/main/java/cn/freemud/manager/PushMccafeOrderManager.java
+30
-0
order-application-service/src/main/java/cn/freemud/manager/dao/PushMccafeOrderDao.java
+15
-0
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
+2
-0
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+355
-9
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerClient.java
+5
-6
order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
+5
-0
No files found.
order-application-service/src/main/java/cn/freemud/OrderApplication.java
View file @
6d0ad710
...
@@ -112,5 +112,17 @@ public class OrderApplication {
...
@@ -112,5 +112,17 @@ public class OrderApplication {
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
return
executor
;
return
executor
;
}
}
@Bean
(
"mcCafePushOrderExecutor"
)
public
Executor
mcCafePushOrderExecutor
()
{
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
executor
.
setCorePoolSize
(
8
);
executor
.
setMaxPoolSize
(
10
);
executor
.
setQueueCapacity
(
20000
);
executor
.
setKeepAliveSeconds
(
60
);
executor
.
setThreadNamePrefix
(
"McCafePushOrderExecutor-"
);
executor
.
setRejectedExecutionHandler
(
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
return
executor
;
}
}
}
}
}
order-application-service/src/main/java/cn/freemud/controller/McCafeController.java
View file @
6d0ad710
...
@@ -120,6 +120,19 @@ public class McCafeController {
...
@@ -120,6 +120,19 @@ public class McCafeController {
return
mcCafeOrderService
.
mcCafeQueryRecentOrder
(
queryOrderVo
);
return
mcCafeOrderService
.
mcCafeQueryRecentOrder
(
queryOrderVo
);
}
}
/**
* 麦咖啡推送订单数据到麦当劳
*/
@ApiAnnotation
(
logMessage
=
"mcCafePushOrder"
)
@PostMapping
(
"/mcCafePushOrder"
)
public
BaseResponse
mcCafePushOrder
(
@Validated
@LogParams
@RequestBody
McCafeQueryOrderVo
queryOrderVo
)
{
return
mcCafeOrderService
.
mcCafePushOrder
(
queryOrderVo
);
}
}
}
order-application-service/src/main/java/cn/freemud/entities/db/PushMccafeOrder.java
0 → 100644
View file @
6d0ad710
package
cn
.
freemud
.
entities
.
db
;
import
cn.freemud.comm.entity.BaseEntity
;
import
lombok.Data
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
import
org.apache.commons.lang.builder.ToStringStyle
;
import
java.util.Date
;
/**
* 商户
*
* @author liming.guo
* @date 2018/05/10
*/
@Data
public
class
PushMccafeOrder
extends
BaseEntity
{
private
Long
id
;
/**
* 订单编号
*/
private
String
orderCode
;
/**
* 商户ID
*/
private
String
partnerId
;
/**
* 门店id
*/
private
String
storeId
;
private
Integer
status
;
private
String
failReason
;
private
Date
createTime
;
private
Date
updateTime
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/Evaluation/McCafePushOrderDto.java
0 → 100644
View file @
6d0ad710
package
cn
.
freemud
.
entities
.
dto
.
Evaluation
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
McCafePushOrderDto
{
//小程序订单ID
private
String
mpOrderId
;
//对接iRMS业务ID
private
String
displayOrderId
;
//订单类型-枚举 1: 堂食 2: 外卖
private
String
type
;
//销售类型-枚举 1: 即时单 2: 预约单
private
String
saleType
;
//用餐类型-枚举 1: 堂食 2: 外带 3: 得来速 4: 取餐柜
private
String
eatType
;
//配送类型-枚举 1: MDS
private
String
deliveryType
;
//订单来源-枚举 APP: CMA WEB: WOS MT: 美团 ELE: 饿了么 WXMP: 微信小程序 ALIMP: 支付宝小程序
private
String
sourceType
;
//业务类型枚举 1: FC母店 2: MDS麦乐送 3: McCafe麦咖啡 4: Kiosk甜品站
private
String
beType
;
//餐段标识枚举 1: 早餐 2: 正餐
private
String
dayPart
;
//渠道枚举 07: 微信小程序Pickup 08: 支付宝小程序Pickup 09: 微信小程序MDS 10:麦咖啡微信小程序
private
String
channel
;
//订单状态枚举 10: 待支付 20: 已支付 30: 餐厅已确认 31: 餐厅配餐中(pickup) 32: 订单配送中 33: 餐厅配餐中(delivery) 34: 待用户取餐(取餐柜) 40: 订单已完成 60: 已取消 61: 取消审核中 80: 已退款
private
String
status
;
//是否需要发票 0: 不需要 1: 需要
private
Integer
invoiceNeeded
;
//是否已开票 0: 未开票 1: 已发票
private
Integer
Invoiced
;
//用户MeddyId
private
String
customer_id
;
//期望配送时间: yyyy-MM-dd hh:mi:ss
private
String
expectDeliveryTime
;
//平台来源枚举 1: Android 2: IPhone
private
String
platformSource
;
//门店编码
private
String
storeCode
;
//门店名称
private
String
storeName
;
//门店营业日期 yyyy-MM-dd
private
String
businessDate
;
//餐具需求 01: 需要 02: 不需要
private
String
tablewareInfo
;
//订单应收金额
private
Integer
totalAmount
;
//订单税额金额
private
Integer
taxTotalAmount
;
//订单折扣金额
private
Integer
discountTotalAmount
;
//订单实收金额
private
Integer
realTotalAmount
;
//运费原始金额
private
Integer
deliveryPrice
;
//运费实际金额
private
Integer
realDeliveryPrice
;
//备注
private
String
remark
;
//销售时间 yyyy-MM-dd HH:mm:ss
private
String
saleTime
;
//完成时间 yyyy-MM-dd HH:mm:ss
private
String
completionTime
;
//订单取消原因Code枚举 1: 改主意了 2: 重复下单 3: 点错了/点多了/点少了 4: 地址/电话填错了 5: 送达时间选错了 -1: 其它原因 100: 超时未支付,自动取消 101: 订单入机失败,自动取消 102: 订单推送IRMS失败,自动取消订单
private
String
cancellationReasonCode
;
//订单取消评论
private
String
cancellationRemark
;
//接单时间 yyyy-MM-dd HH:mm:ss.SSS
private
String
acceptTime
;
//取餐码
private
String
pickupCode
;
//用户三方ID
private
String
openId
;
//UNION ID
private
String
unionId
;
//yyyy-MM-dd HH:mm:ss
private
String
createdDate
;
//订单项
private
List
<
OrderItem
>
orderItem
;
//订单支付
private
List
<
OrderPayment
>
orderPayment
;
//订单配送
private
OrderDelivery
orderDelivery
;
//订单地址
private
OrderAddress
orderAddress
;
//订单入机
private
List
<
OrderFoe
>
orderFoe
;
@Data
public
static
class
OrderItem
{
//订单项ID
private
String
mpItemId
;
//订单项序号
private
String
sequenceId
;
//轮次序列号
private
String
round
;
//父项ID
private
String
mpParentItemId
;
//商品类型枚举 1: 单品 2: 套餐 3: 组合商品 4: 配送费 99: 餐具费 101: Oh麦卡
private
String
productType
;
//商品CODE
private
String
productCode
;
//商品属性列表
private
List
<
productAttribute
>
productAttribute
;
//商品名称
private
String
productName
;
//商品长名称
private
String
productLongName
;
//商品名称英文
private
String
productNameEn
;
//商品长名称英文
private
String
productLongNameEn
;
//订单项数量
private
String
quantity
;
//订单项实际数量
private
String
real_quantity
;
//订单项键位价格
private
String
original_price
;
//订单项原始价格
private
String
price
;
//订单项原始金额小计
private
String
subtotal
;
//订单项优惠金额小计
private
String
discountAmount
;
//订单项实际金额小计
private
String
realAmount
;
//订单项税额小计
private
String
taxAmount
;
//订单项税额明细(单品和套餐/组合商品的父项)
private
List
<
TaxAmountDetail
>
taxAmountDetail
;
//订单项税ID
private
String
taxId
;
//订单项税率: 6,12
private
String
taxRate
;
//是否成本包含(套餐子项使用) 0: 套餐成本不包含当前子项 1: 套餐成本包含当前子项 空: 套餐父项
private
String
costInclusive
;
//创建时间 yyyy-MM-dd HH;mm:ss
private
String
createdDate
;
}
@Data
public
static
class
productAttribute
{
//特调编号
private
String
grillCode
;
//商品特调列表
private
List
<
GrillItem
>
grillItemList
;
//特调中文
private
String
grillNameCn
;
//特调中文
private
String
grillNameEn
;
//特调税额
private
String
taxAmount
;
//特调税费ID
private
String
taxId
;
//特调税率
private
String
taxRate
;
}
@Data
public
static
class
GrillItem
{
//特调编码
private
String
grillItemCode
;
//特调中文
private
String
grillItemNameCn
;
//特调英文
private
String
grillItemNameEn
;
//特调价格
private
String
grillItemPrice
;
//是否修改
private
String
isModify
;
//特调数量
private
String
quantity
;
}
@Data
public
static
class
TaxAmountDetail
{
//订单项商品编号
private
String
uniqueCode
;
//税费明细
private
List
<
TaxItem
>
taxItems
;
}
@Data
public
static
class
TaxItem
{
//实际金额(分为单位)
private
Integer
realAmount
;
//税额(分为单位)
private
Integer
taxAmount
;
//税费ID
private
String
taxId
;
//税率(6/12)
private
String
taxRate
;
}
@Data
public
static
class
OrderPayment
{
//支付交易ID
private
String
channelPayTransactionId
;
//支付状态-枚举 UNPAID: 未支付 PAYING: 支付中 PAID: 支付成功 FAILED 支付失败 CLOSE 支付关闭
private
String
payStatus
;
//订单来源枚举 07: 微信小程序Pickup 08: 支付宝小程序pickup 09: 微信小程序MDS 10:麦咖啡微信小程序
private
String
paySource
;
//支付渠道枚举 ALI: 支付宝 WX: 微信支付 ARCHCARD: 麦钱包
private
String
payChannel
;
//支付金额
private
Integer
payAmount
;
//退款类型枚举 1: 整单退款
private
String
refundType
;
//退款金额
private
Integer
refundAmount
;
//退款时间 yyyy-MM-dd HH:mm:ss
private
String
refundTime
;
//退款原因
private
String
refundReason
;
//支付标记类型0-非预付券,1-预付券
private
String
signType
;
//订单目的01-充值,02-消费
private
String
payPurpose
;
//消费类型 01: pickup, 02: delivery pay_purpose为02,必传
private
String
consumeType
;
//pay_purpose为02,必传
private
String
tenderCode
;
//支付网关-支付订单号
private
String
upgPayInstructionId
;
//支付网关-支付订单号
private
String
upgPayOrderId
;
//支付状态枚举 REFUNDED: 已退款
private
String
refundStatus
;
//退款交易ID
private
String
channelRefundTransactionId
;
//支付网关-退款指令号
private
String
upgRefundInstructionId
;
//支付网关-退款订单号
private
String
upgRefundOrder_id
;
//创建时间 yyyy-MM-dd HH:mm:ss
private
String
createdDate
;
}
@Data
public
static
class
OrderDelivery
{
//配送状态枚举 accept:接单 assembly: 汇集订单 intransit: 配送订单 completed: 完成订单
private
String
status
;
//骑手昵称
private
String
riderNickName
;
//骑手手机号
private
String
riderMobileNo
;
//派单时间 yyy-MM-dd HH:mm:ss
private
String
dispatchTime
;
//接单时间yyy-MM-dd HH:mm:ss
private
String
acceptTime
;
//汇合时间yyy-MM-dd HH:mm:ss
private
String
assemblyTime
;
//配送中时间yyy-MM-dd HH:mm:ss
private
String
transitTime
;
//完成时间yyy-MM-dd HH:mm:ss
private
String
completedTime
;
//骑手备注
private
String
remark
;
//创建时间yyy-MM-dd HH:mm:ss
private
String
createdDate
;
}
@Data
public
static
class
OrderAddress
{
//渠道枚举 01: CMA 5 02: WOS 03: CMA 6 04: NEW WEB 19: 美团 20: 饿了么 45: 微信小程序 54: 支付宝小程序 10:麦咖啡微信小程序
private
String
channel
;
//用户账号-MeddyId
private
String
customerId
;
//昵称
private
String
customerNickName
;
//性别枚举 1: 男 2: 女
private
String
gender
;
//手机号
private
String
phone_no
;
//省份-麦中码表 江苏省: 320000
private
String
provinceCode
;
//城市-字典表配置 苏州市: 320500
private
String
cityCode
;
//区域-字典表配置 吴中区: 320506
private
String
districtCode
;
//地址-地图定位地址 新桥商务中心
private
String
address
;
//详细地址-用户输入 B栋701
private
String
detail
;
//经度
private
String
longitude
;
//纬度
private
String
latitude
;
//创建时间yyy-MM-dd HH:mm:ss
private
String
createdDate
;
}
@Data
public
static
class
OrderFoe
{
//入机生成的外部订单ID
private
String
foeOrderKey
;
//门店编码
private
String
storeCode
;
//订单类型枚举 1: 堂食 2: 外卖
private
String
orderType
;
//取餐码
private
String
pickupCode
;
//入机状态枚举 10: 未入机 20: 入机成功 30: 入机失败
private
String
status
;
//入机状态描述 status=30时, status description存储入机失败原因
private
String
statusDescription
;
//入机类型 1: 正向单 2: 负向单
private
String
foeType
;
//创建时间yyy-MM-dd HH:mm:ss
private
String
createdDate
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/order/RefundQueryRequestDto.java
0 → 100644
View file @
6d0ad710
package
cn
.
freemud
.
entities
.
dto
.
order
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: FacePayRequestDto
* @Package cn.freemud.entities.dto.order
* @Description:
* @author: ping1.wu
* @date: 2019/12/25 19:28
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
RefundQueryRequestDto
{
private
String
partnerId
;
private
String
storeId
;
private
String
frontTransId
;
private
String
stationId
;
private
String
operatorId
;
private
String
transId
;
private
String
clientCode
;
}
order-application-service/src/main/java/cn/freemud/entities/dto/order/RefundQueryResponseDto.java
0 → 100644
View file @
6d0ad710
package
cn
.
freemud
.
entities
.
dto
.
order
;
import
lombok.Data
;
import
java.util.List
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: FacePayResponseDto
* @Package cn.freemud.entities.dto.order
* @Description:
* @author: ping1.wu
* @date: 2019/12/25 19:23
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
RefundQueryResponseDto
{
private
Integer
resultCode
;
private
String
resultMsg
;
private
String
tradeNo
;
private
String
thirdPartTradeNo
;
private
String
totalAmount
;
private
String
refundCount
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/McCafePushOrderVo.java
0 → 100644
View file @
6d0ad710
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: QueryOrderVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: liming.guo
* @date: 2018/5/22 17:35
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
@Data
public
class
McCafePushOrderVo
{
@NotBlank
private
String
startDate
;
@NotBlank
private
String
endDate
;
}
order-application-service/src/main/java/cn/freemud/manager/PushMccafeOrderManager.java
0 → 100644
View file @
6d0ad710
package
cn
.
freemud
.
manager
;
import
cn.freemud.entities.db.Partner
;
import
cn.freemud.entities.db.PushMccafeOrder
;
import
cn.freemud.manager.dao.PartnerDao
;
import
cn.freemud.manager.dao.PushMccafeOrderDao
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* 商户小程序manager
*
* @author liming.guo
* @date 2018/05/10
*/
@Component
public
class
PushMccafeOrderManager
{
@Autowired
private
PushMccafeOrderDao
pushMccafeOrderDao
;
public
Integer
insertOrder
(
PushMccafeOrder
pushMccafeOrder
)
{
return
pushMccafeOrderDao
.
insertOrder
(
pushMccafeOrder
);
}
public
Integer
updateOrder
(
PushMccafeOrder
pushMccafeOrder
)
{
return
pushMccafeOrderDao
.
updateOrder
(
pushMccafeOrder
);
}
}
order-application-service/src/main/java/cn/freemud/manager/dao/PushMccafeOrderDao.java
0 → 100644
View file @
6d0ad710
package
cn
.
freemud
.
manager
.
dao
;
import
cn.freemud.entities.db.Partner
;
import
cn.freemud.entities.db.PushMccafeOrder
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
@Repository
public
interface
PushMccafeOrderDao
{
Integer
insertOrder
(
PushMccafeOrder
pushMccafeOrder
);
Integer
updateOrder
(
PushMccafeOrder
pushMccafeOrder
);
}
order-application-service/src/main/java/cn/freemud/service/MCCafeOrderService.java
View file @
6d0ad710
...
@@ -55,4 +55,6 @@ public interface MCCafeOrderService {
...
@@ -55,4 +55,6 @@ public interface MCCafeOrderService {
*/
*/
BaseResponse
mcCafeQueryRecentOrder
(
McCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafeQueryRecentOrder
(
McCafeQueryOrderVo
queryOrderVo
);
BaseResponse
mcCafePushOrder
(
McCafeQueryOrderVo
queryOrderVo
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
6d0ad710
...
@@ -22,6 +22,7 @@ import cn.freemud.base.entity.BaseResponse;
...
@@ -22,6 +22,7 @@ import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.RedisKeyConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.constant.ResponseCodeConstant
;
import
cn.freemud.entities.dto.Evaluation.McCafePushOrderDto
;
import
cn.freemud.entities.dto.MCCafeDeliveryBaseResponse
;
import
cn.freemud.entities.dto.MCCafeDeliveryBaseResponse
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.PayAccessResponse
;
import
cn.freemud.entities.dto.*
;
import
cn.freemud.entities.dto.*
;
...
@@ -29,6 +30,7 @@ import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean;
...
@@ -29,6 +30,7 @@ import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.delivery.*
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreateOrderOperateDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.CreatePrepayRequestDto
;
import
cn.freemud.entities.dto.order.RefundQueryRequestDto
;
import
cn.freemud.entities.dto.pay.PaymentMqMessageDto
;
import
cn.freemud.entities.dto.pay.PaymentMqMessageDto
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.AttributeValue
;
import
cn.freemud.entities.dto.product.GroupDetail
;
import
cn.freemud.entities.dto.product.GroupDetail
;
...
@@ -44,6 +46,7 @@ import cn.freemud.entities.vo.*;
...
@@ -44,6 +46,7 @@ import cn.freemud.entities.vo.*;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.mccafe.RecentGoodsInfoVo
;
import
cn.freemud.entities.vo.mccafe.RecentGoodsInfoVo
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.OrderType
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponVo
;
import
cn.freemud.management.entities.dto.request.order.MCCafeCouponVo
;
...
@@ -69,11 +72,14 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseR
...
@@ -69,11 +72,14 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseR
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse
;
import
com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum
;
import
com.freemud.application.sdk.api.membercenter.service.MemberCenterService
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.*
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmountRequest
;
...
@@ -93,6 +99,7 @@ import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
...
@@ -93,6 +99,7 @@ import com.freemud.sdk.api.assortment.message.enums.MessageEventType;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
import
com.freemud.sdk.api.assortment.order.enums.NewOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderStatus
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
...
@@ -120,10 +127,13 @@ import org.springframework.beans.BeanUtils;
...
@@ -120,10 +127,13 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.Executor
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -150,6 +160,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -150,6 +160,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private
String
deliveryCallBackUrl
;
private
String
deliveryCallBackUrl
;
@Value
(
"${mcCafe.quickOrder.interval}"
)
@Value
(
"${mcCafe.quickOrder.interval}"
)
private
String
quickOrderInterval
;
private
String
quickOrderInterval
;
@Value
(
"${mccafe.partner.id}"
)
private
String
mcCafePartnerId
;
@Autowired
@Autowired
private
DeliveryFeiginClient
deliveryFeiginClient
;
private
DeliveryFeiginClient
deliveryFeiginClient
;
...
@@ -220,6 +232,15 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -220,6 +232,15 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private
CustomerExtendClient
customerExtendClient
;
private
CustomerExtendClient
customerExtendClient
;
@Autowired
@Autowired
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
private
AssortmentOpenPlatformPartnerConfigManager
openPlatformPartnerConfigManager
;
@Resource
(
name
=
"mcCafePushOrderExecutor"
)
private
ThreadPoolTaskExecutor
executor
;
@Autowired
private
OrderDownLoadSdkService
orderDownLoadSdkService
;
@Autowired
private
CustomerClient
customerClient
;
@Autowired
private
MemberCenterService
memberCenterService
;
private
static
MapperFacade
mapper
=
new
DefaultMapperFactory
.
Builder
().
build
().
getMapperFacade
();
private
static
MapperFacade
mapper
=
new
DefaultMapperFactory
.
Builder
().
build
().
getMapperFacade
();
...
@@ -595,11 +616,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -595,11 +616,6 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
mcCafeOrderCenterSdkService
.
createMCCafeOrderFlow
(
createOrderRequest
);
return
mcCafeOrderCenterSdkService
.
createMCCafeOrderFlow
(
createOrderRequest
);
}
}
public
static
void
main
(
String
[]
args
)
{
MCCafeOrderServiceImpl
mcCafeOrderService
=
new
MCCafeOrderServiceImpl
();
mcCafeOrderService
.
processRepeatGoodsWithSeedCoupon
(
JSON
.
parseObject
(
"{\"activityDiscountsDtos\":[{\"activityCode\":\"DPTJ2021022511040306293\",\"activityName\":\"月享卡特价1\",\"activityType\":2,\"discountAmount\":-1710},{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"cartGoodsUid\":\"734d0689-111d-4ca7-a4d1-580d9dcf0105\",\"discountAmount\":-900,\"extendType\":10},{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"cartGoodsUid\":\"82767a8b-0ad9-440c-9b37-d0bfc594179b\",\"discountAmount\":-1800,\"extendType\":10}],\"buyThreeGiveOneCouponFee\":0,\"deliveryAmount\":0,\"discountDeliveryAmount\":0,\"isDiscountDelivery\":false,\"originalTotalAmount\":11400,\"packageAmount\":0,\"payCardFee\":0,\"products\":[{\"activityDiscountsDtos\":[{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"discountAmount\":-900,\"extendType\":10,\"tenderId\":\"508527\"}],\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"734d0689-111d-4ca7-a4d1-580d9dcf0105\",\"classificationId\":\"\",\"classificationName\":\"\",\"couponCode\":\"216628714314049\",\"customerCode\":\"508527\",\"extraList\":[],\"hasProductCoupon\":false,\"isMonthCard\":0,\"isSeedCouponGoods\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":1900,\"picture\":\"https://picture.sandload.cn/1605356768489.png\",\"productCode\":\"2217\",\"qty\":1,\"salePrice\":0,\"skuId\":\"191220974548593707\",\"skuName\":\"中杯拿铁\",\"spuId\":\"191220974497213481\",\"spuName\":\"拿铁\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":900,\"unit\":\"\",\"weight\":0.0},{\"activityDiscountsDtos\":[{\"activityCode\":\"216628714314049\",\"activityName\":\"啡常月享卡(商城)测试券\",\"activityType\":37,\"discountAmount\":-1800,\"extendType\":10,\"tenderId\":\"508527\"}],\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"82767a8b-0ad9-440c-9b37-d0bfc594179b\",\"classificationId\":\"\",\"classificationName\":\"\",\"couponCode\":\"216628714314049\",\"customerCode\":\"508527\",\"extraList\":[],\"hasProductCoupon\":false,\"isMonthCard\":0,\"isSeedCouponGoods\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":1900,\"picture\":\"https://picture.sandload.cn/1606184178473.png\",\"productCode\":\"2214\",\"qty\":2,\"salePrice\":0,\"skuId\":\"189264448691747619\",\"skuName\":\"中杯卡布奇诺\",\"spuId\":\"189264448647707425\",\"spuName\":\"卡布奇诺\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":1800,\"unit\":\"\",\"weight\":0.0},{\"activityDiscountsDtos\":[{\"activityCode\":\"DPTJ2021022511040306293\",\"activityName\":\"月享卡特价1\",\"activityType\":2,\"actualActivityGoodsNumber\":1,\"discountAmount\":1710}],\"activityType\":2,\"attributeNames\":\"{\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"ad4af27a-e24f-4264-a3ae-d6a3c3c38e6d\",\"classificationId\":\"\",\"classificationName\":\"\",\"customerCode\":\"509387\",\"extraList\":[],\"hasProductCoupon\":false,\"isMonthCard\":1,\"isSeedCouponGoods\":0,\"isTableware\":0,\"materialList\":[],\"monthCardInfo\":{\"cardCode\":\"216628714314049\",\"cardNo\":\"MQYK8563DBFBEA942693898E7F919C94ADDD\",\"type\":2},\"originalPrice\":1900,\"picture\":\"https://picture.sandload.cn/1609750514452.png\",\"productCode\":\"508554\",\"productType\":9,\"qty\":3,\"salePrice\":1900,\"skuId\":\"196061855703358215\",\"skuName\":\"月享卡\",\"spuId\":\"196061855703358215\",\"spuName\":\"月享卡\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":1710,\"unit\":\"\",\"weight\":0.0}],\"shareDiscountActivityDtos\":[],\"stocks\":[{\"activityCode\":\"DPTJ2021022511040306293\",\"activityType\":2,\"goodsStock\":[{\"goodsId\":\"196061855703358215\",\"stock\":1}]}],\"totalAmount\":6990,\"totalDiscountAmount\":4410}"
,
ShoppingCartGoodsDto
.
class
));
}
private
void
processRepeatGoodsWithSeedCoupon
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
)
{
private
void
processRepeatGoodsWithSeedCoupon
(
ShoppingCartGoodsDto
shoppingCartGoodsDto
)
{
List
<
String
>
cardCodeList
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
o
->
ProductTypeEnum
.
VIRTUAL_PRODUCT
.
getCode
().
equals
(
o
.
getProductType
()))
List
<
String
>
cardCodeList
=
shoppingCartGoodsDto
.
getProducts
().
stream
().
filter
(
o
->
ProductTypeEnum
.
VIRTUAL_PRODUCT
.
getCode
().
equals
(
o
.
getProductType
()))
.
map
(
o
->
o
.
getMonthCardInfo
().
getCardCode
()).
collect
(
Collectors
.
toList
());
.
map
(
o
->
o
.
getMonthCardInfo
().
getCardCode
()).
collect
(
Collectors
.
toList
());
...
@@ -2486,4 +2502,334 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -2486,4 +2502,334 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
channelType
;
return
channelType
;
}
}
public
BaseResponse
mcCafePushOrder
(
McCafeQueryOrderVo
queryOrderVo
)
{
executor
.
submit
(()
->
{
for
(
int
i
=
1
;;
i
++)
{
OrderConditionsReq
orderConditionsReq
=
new
OrderConditionsReq
();
orderConditionsReq
.
setPartnerId
(
mcCafePartnerId
);
orderConditionsReq
.
setOrderStatuses
(
Arrays
.
asList
(
6
,
7
));
orderConditionsReq
.
setPayStatuses
(
Arrays
.
asList
(
2
,
3
,
5
));
orderConditionsReq
.
setOrderTypes
(
Arrays
.
asList
(
1
,
3
,
5
));
orderConditionsReq
.
setStartTimestamp
(
DateUtil
.
convert2Date
(
queryOrderVo
.
getStartDate
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
()/
1000
);
orderConditionsReq
.
setEndTimestamp
(
DateUtil
.
convert2Date
(
queryOrderVo
.
getEndDate
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
()/
1000
);
orderConditionsReq
.
setPageNum
(
i
);
orderConditionsReq
.
setPageSize
(
500
);
orderConditionsReq
.
setSortRule
(
1
);
BaseDownLoadResponse
<
List
<
OrderInfoReqs
>>
response
=
orderDownLoadSdkService
.
queryOrderByConditions
(
orderConditionsReq
,
LogThreadLocal
.
getTrackingNo
());
if
(
CollectionUtils
.
isEmpty
(
response
.
getResult
()))
{
break
;
}
List
<
McCafePushOrderDto
>
mcCafePushOrderDtoList
=
new
ArrayList
<>();
for
(
OrderInfoReqs
orderInfoReqs
:
response
.
getResult
())
{
McCafePushOrderDto
mcCafePushOrderDto
=
convert2McCafePushOrderInfo
(
orderInfoReqs
);
}
}
});
BaseResponse
baseResponse
=
new
BaseResponse
();
baseResponse
.
setCode
(
"100"
);
baseResponse
.
setMessage
(
"success"
);
return
baseResponse
;
}
private
McCafePushOrderDto
convert2McCafePushOrderInfo
(
OrderInfoReqs
orderInfoReqs
)
{
OrderExtInfoDto
orderExtInfoDto
=
JSON
.
parseObject
(
orderInfoReqs
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
McCafePushOrderDto
mcCafePushOrderDto
=
new
McCafePushOrderDto
();
mcCafePushOrderDto
.
setMpOrderId
(
orderInfoReqs
.
getOrderCode
());
mcCafePushOrderDto
.
setDisplayOrderId
(
orderInfoReqs
.
getDownstreamThirdOrderCode
());
mcCafePushOrderDto
.
setType
(
orderInfoReqs
.
getOrderType
()==
3
?
"2"
:
"1"
);
mcCafePushOrderDto
.
setSaleType
(
"1"
);
mcCafePushOrderDto
.
setEatType
(
orderInfoReqs
.
getOrderType
()==
3
?
"2"
:
"1"
);
mcCafePushOrderDto
.
setDeliveryType
(
"1"
);
mcCafePushOrderDto
.
setSourceType
(
orderInfoReqs
.
getOrderClient
().
equals
(
OrderClientType
.
ALIPAY
.
getIndex
())?
"ALIMP"
:
"WXMP"
);
mcCafePushOrderDto
.
setBeType
(
"3"
);
mcCafePushOrderDto
.
setDayPart
(
"2"
);
mcCafePushOrderDto
.
setChannel
(
"10"
);
mcCafePushOrderDto
.
setStatus
(
NewOrderStatus
.
COMPLETE
.
getIndex
().
equals
(
orderInfoReqs
.
getOrderState
())?
"40"
:
"80"
);
mcCafePushOrderDto
.
setInvoiceNeeded
(
orderExtInfoDto
.
getNeedInvoice
());
mcCafePushOrderDto
.
setInvoiced
(
1
);
mcCafePushOrderDto
.
setCustomer_id
(
orderExtInfoDto
.
getThirdPartyMemberId
());
mcCafePushOrderDto
.
setStoreCode
(
orderInfoReqs
.
getStoreId
());
mcCafePushOrderDto
.
setStoreName
(
orderInfoReqs
.
getStoreName
());
mcCafePushOrderDto
.
setBusinessDate
(
orderInfoReqs
.
getCreateTime
().
substring
(
0
,
10
));
mcCafePushOrderDto
.
setTablewareInfo
(
orderExtInfoDto
.
getNeedTableware
()==
1
?
"01"
:
"02"
);
mcCafePushOrderDto
.
setTotalAmount
(
orderInfoReqs
.
getActualPayAmount
().
intValue
());
mcCafePushOrderDto
.
setDiscountTotalAmount
(
orderInfoReqs
.
getOriginalAmount
().
subtract
(
orderInfoReqs
.
getActualPayAmount
()).
intValue
());
mcCafePushOrderDto
.
setRealTotalAmount
(
orderInfoReqs
.
getActualPayAmount
().
intValue
());
Optional
<
OrderCostResp
>
optionalOrderCostResp
=
orderInfoReqs
.
getOrderCostDetailList
().
stream
().
filter
(
o
->
CostTypeEnum
.
DELIVERY_AMOUNT
.
getCode
().
equals
(
o
.
getCostType
())).
findFirst
();
if
(
optionalOrderCostResp
.
isPresent
())
{
mcCafePushOrderDto
.
setDeliveryPrice
(
optionalOrderCostResp
.
get
().
getCostAmount
().
intValue
());
mcCafePushOrderDto
.
setRealDeliveryPrice
(
optionalOrderCostResp
.
get
().
getActualCostAmount
().
intValue
());
}
else
{
mcCafePushOrderDto
.
setDeliveryPrice
(
0
);
mcCafePushOrderDto
.
setRealDeliveryPrice
(
0
);
}
mcCafePushOrderDto
.
setRemark
(
orderInfoReqs
.
getNote
());
mcCafePushOrderDto
.
setSaleTime
(
orderInfoReqs
.
getPayTime
());
mcCafePushOrderDto
.
setCompletionTime
(
orderInfoReqs
.
getReceiveTime
());
Optional
<
AfterSalesOrderResp
>
afterSalesOrderRespOptional
=
Optional
.
empty
();
if
(
NewOrderStatus
.
CLOSED
.
getIndex
().
equals
(
orderInfoReqs
.
getOrderState
())
&&
CollectionUtils
.
isNotEmpty
(
orderInfoReqs
.
getAfterSalesOrderList
()))
{
mcCafePushOrderDto
.
setCancellationReasonCode
(
"-1"
);
afterSalesOrderRespOptional
=
orderInfoReqs
.
getAfterSalesOrderList
().
stream
().
filter
(
o
->
AfterSalesStatus
.
COMPLETE
.
getIndex
().
equals
(
o
.
getAfterSalesStatus
())).
findFirst
();
if
(
afterSalesOrderRespOptional
.
isPresent
())
{
mcCafePushOrderDto
.
setCancellationRemark
(
afterSalesOrderRespOptional
.
get
().
getReqRemark
());
}
}
mcCafePushOrderDto
.
setAcceptTime
(
orderInfoReqs
.
getAcceptTime
()+
".000"
);
mcCafePushOrderDto
.
setPickupCode
(
orderInfoReqs
.
getPickUpGoodsNo
());
mcCafePushOrderDto
.
setOpenId
(
orderExtInfoDto
.
getOpenid
());
GetMemberInfoByIdRequestDto
getMemberInfoByIdRequestDto
=
new
GetMemberInfoByIdRequestDto
();
getMemberInfoByIdRequestDto
.
setPartnerId
(
mcCafePartnerId
);
getMemberInfoByIdRequestDto
.
setMemberId
(
orderInfoReqs
.
getUserId
());
GetMemberInfoByIdResponseDto
getMemberInfoByIdResponseDto
=
customerClient
.
getMemberInfoById
(
getMemberInfoByIdRequestDto
);
if
(!
ResponseConstant
.
SUCCESS_RESPONSE_CODE_STR
.
equals
(
getMemberInfoByIdResponseDto
.
getCode
()))
{
throw
new
ServiceException
(
ResponseResult
.
USER_GETPHONE_ERROR
,
"获取用户信息异常"
);
}
if
(
CollectionUtils
.
isNotEmpty
(
getMemberInfoByIdResponseDto
.
getData
().
getMemberChannels
()))
{
Optional
<
GetMemberInfoByChannelResponseDto
.
ResultBean
.
ChannelListBean
>
channelListBeanOptional
=
getMemberInfoByIdResponseDto
.
getData
().
getMemberChannels
().
stream
().
filter
(
o
->
mcCafePartnerId
.
equals
(
o
.
getPartnerId
())).
findFirst
();
if
(
channelListBeanOptional
.
isPresent
())
{
mcCafePushOrderDto
.
setUnionId
(
channelListBeanOptional
.
get
().
getUnionId
());
}
}
mcCafePushOrderDto
.
setCreatedDate
(
orderInfoReqs
.
getCreateTime
());
List
<
McCafePushOrderDto
.
OrderItem
>
orderItemList
=
new
ArrayList
<>();
List
<
OrderItemResp
>
materialList
=
orderInfoReqs
.
getOrderItemList
().
stream
()
.
filter
(
item
->
ProductTypeEnum
.
LITTLE_MATERIAL_PRODUCT
.
getCode
().
equals
(
item
.
getProductType
()))
.
collect
(
Collectors
.
toList
());
Integer
taxTotalAmount
=
0
;
for
(
OrderItemResp
orderItemResp
:
orderInfoReqs
.
getOrderItemList
())
{
if
(
ProductTypeEnum
.
LITTLE_MATERIAL_PRODUCT
.
getCode
().
equals
(
orderItemResp
.
getProductType
()))
{
continue
;
}
McCafePushOrderDto
.
OrderItem
orderItem
=
new
McCafePushOrderDto
.
OrderItem
();
orderItem
.
setMpItemId
(
orderItemResp
.
getProductId
());
orderItem
.
setSequenceId
(
orderItemResp
.
getProductSeq
().
toString
());
orderItem
.
setRound
();
if
(!
"0"
.
equals
(
orderItemResp
.
getParentProductId
()))
{
orderItem
.
setMpParentItemId
(
orderItemResp
.
getParentProductId
().
split
(
"_"
)[
0
]);
}
orderItem
.
setProductType
(
parse2McdProductType
(
orderItemResp
.
getProductType
()));
orderItem
.
setProductCode
(
orderItemResp
.
getProductCode
());
OrderProductAddInfoDto
orderProductAddInfoDto
=
JSON
.
parseObject
(
orderItemResp
.
getExtInfo
(),
OrderProductAddInfoDto
.
class
);
orderItem
.
setProductAttribute
(
new
ArrayList
<>());
if
(
CollectionUtils
.
isNotEmpty
(
orderProductAddInfoDto
.
getSpecialAttrs
()))
{
for
(
OrderSpecialExtraAttrRequest
orderSpecialExtraAttrRequest
:
orderProductAddInfoDto
.
getSpecialAttrs
())
{
if
(
StringUtils
.
isNotBlank
(
orderSpecialExtraAttrRequest
.
getSpecialCode
()))
{
String
[]
codes
=
orderSpecialExtraAttrRequest
.
getSpecialCode
().
split
(
"_"
);
if
(
codes
.
length
>
2
)
{
McCafePushOrderDto
.
productAttribute
productAttribute
=
new
McCafePushOrderDto
.
productAttribute
();
productAttribute
.
setGrillCode
(
codes
[
0
]);
McCafePushOrderDto
.
GrillItem
grillItem
=
new
McCafePushOrderDto
.
GrillItem
();
grillItem
.
setGrillItemCode
(
codes
[
1
]);
grillItem
.
setGrillItemNameCn
(
orderSpecialExtraAttrRequest
.
getAttributeName
());
grillItem
.
setGrillItemNameEn
(
orderSpecialExtraAttrRequest
.
getAttributeForeignName
());
grillItem
.
setQuantity
(
codes
[
2
]);
if
(
codes
.
length
==
4
){
grillItem
.
setIsModify
(
codes
[
3
]);
}
productAttribute
.
setGrillItemList
(
Arrays
.
asList
(
grillItem
));
orderItem
.
getProductAttribute
().
add
(
productAttribute
);
}
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
materialList
))
{
String
parentProductId
=
orderItemResp
.
getProductId
()
+
"_"
+
orderItemResp
.
getProductSeq
();
List
<
OrderItemResp
>
productMaterialList
=
materialList
.
stream
().
filter
(
o
->
parentProductId
.
equals
(
o
.
getParentProductId
())).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
productMaterialList
))
{
for
(
OrderItemResp
material
:
productMaterialList
)
{
String
[]
codes
=
material
.
getThirdProductId
().
split
(
"_"
);
if
(
codes
.
length
>
1
)
{
McCafePushOrderDto
.
productAttribute
productAttribute
=
new
McCafePushOrderDto
.
productAttribute
();
productAttribute
.
setGrillCode
(
codes
[
0
]);
McCafePushOrderDto
.
GrillItem
grillItem
=
new
McCafePushOrderDto
.
GrillItem
();
grillItem
.
setGrillItemCode
(
codes
[
1
]);
grillItem
.
setGrillItemNameCn
(
material
.
getProductName
());
grillItem
.
setGrillItemNameCn
(
material
.
getProductForeignName
());
grillItem
.
setQuantity
(
material
.
getProductQuantity
().
toString
());
if
(
codes
.
length
==
3
){
grillItem
.
setIsModify
(
codes
[
2
]);
}
productAttribute
.
setGrillItemList
(
Arrays
.
asList
(
grillItem
));
orderItem
.
getProductAttribute
().
add
(
productAttribute
);
}
}
}
}
orderItem
.
setProductName
(
orderItemResp
.
getProductName
());
orderItem
.
setProductLongName
(
orderItemResp
.
getProductName
());
orderItem
.
setProductNameEn
(
orderItemResp
.
getProductForeignName
());
orderItem
.
setProductLongNameEn
(
orderItemResp
.
getProductForeignName
());
orderItem
.
setQuantity
(
orderItemResp
.
getProductQuantity
().
toString
());
orderItem
.
setReal_quantity
(
orderItemResp
.
getProductQuantity
().
toString
());
orderItem
.
setOriginal_price
(
orderItemResp
.
getProductPrice
().
toPlainString
());
orderItem
.
setPrice
(
orderItemResp
.
getSalePrice
().
toPlainString
());
orderItem
.
setSubtotal
(
orderItemResp
.
getProductPrice
().
multiply
(
new
BigDecimal
(
orderItemResp
.
getProductQuantity
())).
toPlainString
());
orderItem
.
setDiscountAmount
((
orderItemResp
.
getProductPrice
().
subtract
(
orderItemResp
.
getSalePrice
())).
multiply
(
new
BigDecimal
(
orderItemResp
.
getProductQuantity
())).
toPlainString
());
orderItem
.
setRealAmount
(
orderItemResp
.
getSalePrice
().
multiply
(
new
BigDecimal
(
orderItemResp
.
getProductQuantity
())).
toPlainString
());
orderItem
.
setTaxId
(
orderProductAddInfoDto
.
getTaxId
());
Integer
taxRate
=
getTaxRateByTaxId
(
orderProductAddInfoDto
.
getTaxId
());
orderItem
.
setTaxRate
(
taxRate
.
toString
());
orderItem
.
setTaxAmount
(
String
.
valueOf
(
new
BigDecimal
(
taxRate
).
multiply
(
orderItemResp
.
getSalePrice
())
.
multiply
(
new
BigDecimal
(
orderItemResp
.
getProductQuantity
())).
intValue
()/
100
));
taxTotalAmount
+=
Integer
.
parseInt
(
orderItem
.
getTaxAmount
());
orderItem
.
setTaxAmountDetail
();
if
(
StringUtils
.
isBlank
(
orderItemResp
.
getParentProductId
())
&&
"0"
.
equals
(
orderItemResp
.
getParentProductId
()))
{
orderItem
.
setCostInclusive
(
null
);
}
else
{
orderItem
.
setCostInclusive
(
"1"
);
}
orderItem
.
setCreatedDate
(
orderInfoReqs
.
getCreateTime
());
orderItemList
.
add
(
orderItem
);
}
mcCafePushOrderDto
.
setOrderItem
(
orderItemList
);
mcCafePushOrderDto
.
setTaxTotalAmount
(
taxTotalAmount
);
List
<
McCafePushOrderDto
.
OrderPayment
>
orderPaymentList
=
new
ArrayList
<>();
McCafePushOrderDto
.
OrderPayment
orderPayment
=
new
McCafePushOrderDto
.
OrderPayment
();
orderPayment
.
setChannelPayTransactionId
(
orderExtInfoDto
.
getPayTransId
());
orderPayment
.
setPayStatus
(
"PAID"
);
orderPayment
.
setPaySource
(
"10"
);
orderPayment
.
setPayChannel
(
orderInfoReqs
.
getOrderClient
().
equals
(
OrderClientType
.
ALIPAY
.
getIndex
())?
"ALI"
:
"WX"
);
orderPayment
.
setPayAmount
(
orderInfoReqs
.
getActualPayAmount
().
intValue
());
if
(
NewOrderStatus
.
CLOSED
.
getIndex
().
equals
(
orderInfoReqs
.
getOrderState
())
&&
CollectionUtils
.
isNotEmpty
(
orderInfoReqs
.
getAfterSalesOrderList
()))
{
orderPayment
.
setRefundType
(
String
.
valueOf
(
1
));
orderPayment
.
setRefundAmount
(
orderInfoReqs
.
getActualPayAmount
().
intValue
());
if
(
afterSalesOrderRespOptional
.
isPresent
())
{
orderPayment
.
setRefundTime
(
afterSalesOrderRespOptional
.
get
().
getCreateTime
());
orderPayment
.
setRefundReason
(
afterSalesOrderRespOptional
.
get
().
getAfterSalesReason
());
}
orderPayment
.
setRefundStatus
(
"REFUNDED"
);
// RefundQueryRequestDto refundQueryRequestDto = new RefundQueryRequestDto();
// refundQueryRequestDto.setPartnerId(mcCafePartnerId);
// refundQueryRequestDto.setStoreId(orderInfoReqs.getStoreId());
// refundQueryRequestDto.setFrontTransId(orderExtInfoDto.getEndTransId());
// refundQueryRequestDto.setStationId("1");
// refundQueryRequestDto.setOperatorId("sys");
// refundQueryRequestDto.setTransId(orderInfoReqs.getOrderCode());
// refundQueryRequestDto.setClientCode();
orderPayment
.
setChannelRefundTransactionId
(
" "
);
}
orderPayment
.
setSignType
(
"0"
);
orderPayment
.
setPayPurpose
(
"02"
);
orderPayment
.
setConsumeType
(
NewOrderType
.
GENERAL_EXPRESS
.
getCode
().
equals
(
orderInfoReqs
.
getOrderType
())?
"02"
:
"01"
);
if
(
OrderClientType
.
ALIPAY
.
getIndex
().
equals
(
orderInfoReqs
.
getOrderClient
()))
{
if
(
NewOrderType
.
GENERAL_EXPRESS
.
getCode
().
equals
(
orderInfoReqs
.
getOrderType
()))
{
orderPayment
.
setTenderCode
(
"152"
);
}
else
{
orderPayment
.
setTenderCode
(
"151"
);
}
}
else
{
if
(
NewOrderType
.
GENERAL_EXPRESS
.
getCode
().
equals
(
orderInfoReqs
.
getOrderType
()))
{
orderPayment
.
setTenderCode
(
"26"
);
}
else
{
orderPayment
.
setTenderCode
(
"150"
);
}
}
orderPayment
.
setCreatedDate
(
orderInfoReqs
.
getPayTime
());
orderPaymentList
.
add
(
orderPayment
);
mcCafePushOrderDto
.
setOrderPayment
(
orderPaymentList
);
if
(
NewOrderType
.
GENERAL_EXPRESS
.
getCode
().
equals
(
orderInfoReqs
.
getOrderType
()))
{
McCafePushOrderDto
.
OrderDelivery
orderDelivery
=
new
McCafePushOrderDto
.
OrderDelivery
();
McCafePushOrderDto
.
OrderAddress
orderAddress
=
new
McCafePushOrderDto
.
OrderAddress
();
orderDelivery
.
setStatus
(
"completed"
);
if
(
CollectionUtils
.
isNotEmpty
(
orderInfoReqs
.
getDeliveryContactInfoList
()))
{
for
(
DeliveryContactInfoResp
deliveryContactInfoResp
:
orderInfoReqs
.
getDeliveryContactInfoList
())
{
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
if
(
deliveryContactInfoResp
.
getRelateObjectType
()
==
3
)
{
orderDelivery
.
setRiderNickName
(
deliveryContactInfoResp
.
getContactsName
());
orderDelivery
.
setRiderMobileNo
(
deliveryContactInfoResp
.
getMobile
());
}
if
(
deliveryContactInfoResp
.
getRelateObjectType
()
==
1
)
{
QueryReceiveAddressRequest
request
=
new
QueryReceiveAddressRequest
(
JSON
.
parseObject
(
deliveryContactInfoResp
.
getExtInfo
()).
getString
(
"receiveId"
),
mcCafePartnerId
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
QueryReceiveAddressResponse
>
queryReceiveAddressResponse
=
memberCenterService
.
queryReceiveAddressById
(
request
,
LogThreadLocal
.
getTrackingNo
());
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
queryReceiveAddressResponse
.
getCode
())
||
queryReceiveAddressResponse
.
getData
()
==
null
)
{
throw
new
ServiceException
(
ResponseResult
.
USER_GETRECEIVEADDRESS_ERROR
);
}
orderAddress
.
setGender
(
queryReceiveAddressResponse
.
getData
().
getSex
().
toString
());
orderAddress
.
setPhone_no
(
queryReceiveAddressResponse
.
getData
().
getReceiveMobile
());
orderAddress
.
setAddress
(
queryReceiveAddressResponse
.
getData
().
getReceiveAddress
());
orderAddress
.
setDetail
(
queryReceiveAddressResponse
.
getData
().
getDetailAddress
());
orderAddress
.
setLongitude
(
queryReceiveAddressResponse
.
getData
().
getLongitude
());
orderAddress
.
setLatitude
(
queryReceiveAddressResponse
.
getData
().
getLatitude
());
orderAddress
.
setCreatedDate
(
queryReceiveAddressResponse
.
getData
().
getCreateTime
());
}
}
}
orderDelivery
.
setCompletedTime
(
orderInfoReqs
.
getReceiveTime
());
orderDelivery
.
setCreatedDate
(
orderInfoReqs
.
getCreateTime
());
orderAddress
.
setChannel
(
orderInfoReqs
.
getOrderClient
().
equals
(
OrderClientType
.
ALIPAY
.
getIndex
())?
"54"
:
"45"
);
orderAddress
.
setCustomerId
(
orderExtInfoDto
.
getThirdPartyMemberId
());
orderAddress
.
setCustomerNickName
(
orderInfoReqs
.
getUserName
());
mcCafePushOrderDto
.
setOrderDelivery
(
orderDelivery
);
mcCafePushOrderDto
.
setOrderAddress
(
orderAddress
);
}
List
<
McCafePushOrderDto
.
OrderFoe
>
orderFoeList
=
new
ArrayList
<>();
McCafePushOrderDto
.
OrderFoe
orderFoe
=
new
McCafePushOrderDto
.
OrderFoe
();
orderFoe
.
setFoeOrderKey
(
orderInfoReqs
.
getThirdOrderCode
());
orderFoe
.
setStoreCode
(
orderInfoReqs
.
getStoreId
());
orderFoe
.
setOrderType
(
orderInfoReqs
.
getOrderType
()==
3
?
"2"
:
"1"
);
orderFoe
.
setPickupCode
(
orderInfoReqs
.
getPickUpGoodsNo
());
orderFoe
.
setStatus
(
"20"
);
orderFoe
.
setFoeType
(
"1"
);
orderFoe
.
setCreatedDate
(
orderInfoReqs
.
getAcceptTime
());
orderFoeList
.
add
(
orderFoe
);
if
(
NewOrderStatus
.
CLOSED
.
getIndex
().
equals
(
orderInfoReqs
.
getOrderState
())
&&
CollectionUtils
.
isNotEmpty
(
orderInfoReqs
.
getAfterSalesOrderList
()))
{
McCafePushOrderDto
.
OrderFoe
afterSaleOrderFoe
=
new
McCafePushOrderDto
.
OrderFoe
();
afterSaleOrderFoe
.
setFoeOrderKey
(
"R"
.
concat
(
orderInfoReqs
.
getThirdOrderCode
()).
concat
(
orderInfoReqs
.
getCreateTime
()));
afterSaleOrderFoe
.
setStoreCode
(
orderInfoReqs
.
getStoreId
());
afterSaleOrderFoe
.
setOrderType
(
orderInfoReqs
.
getOrderType
()==
3
?
"2"
:
"1"
);
afterSaleOrderFoe
.
setPickupCode
(
orderInfoReqs
.
getPickUpGoodsNo
());
afterSaleOrderFoe
.
setStatus
(
"20"
);
afterSaleOrderFoe
.
setFoeType
(
"2"
);
if
(
afterSalesOrderRespOptional
.
isPresent
())
{
afterSaleOrderFoe
.
setCreatedDate
(
afterSalesOrderRespOptional
.
get
().
getCreateTime
());
}
orderFoeList
.
add
(
orderFoe
);
}
mcCafePushOrderDto
.
setOrderFoe
(
orderFoeList
);
return
mcCafePushOrderDto
;
}
private
String
parse2McdProductType
(
Integer
productType
)
{
switch
(
productType
)
{
case
1
:
return
"1"
;
case
88
:
return
"1"
;
case
6
:
return
"2"
;
case
3
:
return
"3"
;
case
12
:
return
"99"
;
default
:
return
"1"
;
}
}
private
Integer
getTaxRateByTaxId
(
String
taxId
)
{
switch
(
taxId
)
{
default
:
return
0
;
}
}
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/CustomerClient.java
View file @
6d0ad710
...
@@ -43,12 +43,11 @@ public interface CustomerClient {
...
@@ -43,12 +43,11 @@ public interface CustomerClient {
// @PostMapping(value = "/customerservice/updateMemberChannel")
// @PostMapping(value = "/customerservice/updateMemberChannel")
// JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto);
// JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto);
//
//
// /**
/**
// * 根据会员id获取会员信息
* 根据会员id获取会员信息
// */
*/
// @PostMapping(value = "/customerservice/getMemberById")
@PostMapping
(
value
=
"/customerservice/getMemberById"
)
// GetMemberInfoByIdResponseDto getMemberInfoById(@RequestBody GetMemberInfoByIdRequestDto
GetMemberInfoByIdResponseDto
getMemberInfoById
(
@RequestBody
GetMemberInfoByIdRequestDto
getMemberInfoByIdRequestDto
);
// getMemberInfoByIdRequestDto);
//
//
// /**
// /**
// * 修改顾客信息
// * 修改顾客信息
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
View file @
6d0ad710
...
@@ -3,6 +3,7 @@ package cn.freemud.service.thirdparty;
...
@@ -3,6 +3,7 @@ package cn.freemud.service.thirdparty;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.annotations.LogIgnoreFeign
;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayRequestDto
;
import
cn.freemud.entities.dto.order.FacePayResponseDto
;
import
cn.freemud.entities.dto.order.FacePayResponseDto
;
import
cn.freemud.entities.dto.order.RefundQueryResponseDto
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
@@ -33,4 +34,8 @@ public interface PaymentNewClient {
...
@@ -33,4 +34,8 @@ public interface PaymentNewClient {
@PostMapping
(
"paymentcenter/facePay"
)
@PostMapping
(
"paymentcenter/facePay"
)
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
FacePayResponseDto
>
facePay
(
@RequestBody
FacePayRequestDto
orderPayDto
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
FacePayResponseDto
>
facePay
(
@RequestBody
FacePayRequestDto
orderPayDto
);
@LogIgnoreFeign
(
logMessage
=
"refundQuery"
)
@PostMapping
(
"paymentcenter/refundQuery"
)
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
RefundQueryResponseDto
>
refundQuery
(
@RequestBody
FacePayRequestDto
orderPayDto
);
}
}
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