Commit 6d0ad710 by 徐康

麦咖啡订单推送

parent db8f2ce1
...@@ -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;
}
} }
} }
...@@ -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);
}
} }
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;
}
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;
}
}
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;
}
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;
}
/**
* 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;
}
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);
}
}
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);
}
...@@ -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);
} }
...@@ -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;
}
}
} }
...@@ -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);
// //
// /** // /**
// * 修改顾客信息 // * 修改顾客信息
......
...@@ -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);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment