Commit 00a7d00d by 徐康

麦咖啡申请退款

parent 4f2e0986
...@@ -2687,6 +2687,9 @@ public class OrderSdkAdapter { ...@@ -2687,6 +2687,9 @@ public class OrderSdkAdapter {
if (StringUtils.isNotBlank(product.getCategory())){ if (StringUtils.isNotBlank(product.getCategory())){
extInfo.setThirdCensusCategoryId(product.getCategory()); extInfo.setThirdCensusCategoryId(product.getCategory());
} }
if (0 != product.getTax()){
extInfo.setTax(product.getTax());
}
extInfo.setStapleFood(product.getStapleFood()); extInfo.setStapleFood(product.getStapleFood());
//if (product.getStapleFood()!=null && product.getStapleFood()>0) { //if (product.getStapleFood()!=null && product.getStapleFood()>0) {
// extInfo.setStapleFood(1); // extInfo.setStapleFood(1);
......
...@@ -164,4 +164,7 @@ public class CreateOrderProductRequest extends BaseConfig { ...@@ -164,4 +164,7 @@ public class CreateOrderProductRequest extends BaseConfig {
/** 商品统计分类编号**/ /** 商品统计分类编号**/
private String category; private String category;
/** 商品税率**/
private double tax;
} }
...@@ -61,4 +61,6 @@ public class OrderProductAddInfoDto extends BaseConfig { ...@@ -61,4 +61,6 @@ public class OrderProductAddInfoDto extends BaseConfig {
* 商品统计分类编号 * 商品统计分类编号
*/ */
private String thirdCensusCategoryId; private String thirdCensusCategoryId;
private double tax;
} }
...@@ -1919,6 +1919,7 @@ public class OrderAdapter { ...@@ -1919,6 +1919,7 @@ public class OrderAdapter {
createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit()); createOrderProductDemoDto.setUnit(cartGoodsDetailDto.getUnit());
createOrderProductDemoDto.setStapleFood(0); createOrderProductDemoDto.setStapleFood(0);
createOrderProductDemoDto.setCategory(cartGoodsDetailDto.getClassificationId()); createOrderProductDemoDto.setCategory(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setTax(cartGoodsDetailDto.getTax());
return createOrderProductDemoDto; return createOrderProductDemoDto;
} }
......
package cn.freemud.entities.dto;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class CancelDeliveryRequest {
private String displayOrderId;
private String orderId;
private String orderCancelCode;
private String orderCancelDescription;
private String receiveOrderType;
private String storeId;
}
...@@ -124,6 +124,10 @@ public class QueryOrdersResponseDto { ...@@ -124,6 +124,10 @@ public class QueryOrdersResponseDto {
* 订单ID * 订单ID
*/ */
private String oid; private String oid;
/**
* 下游订单号
*/
private String downstreamThirdOrderCode;
private Integer orderType; private Integer orderType;
/** /**
* 取餐码 * 取餐码
......
...@@ -200,6 +200,11 @@ public class ShoppingCartGoodsDto { ...@@ -200,6 +200,11 @@ public class ShoppingCartGoodsDto {
private String unit; private String unit;
/** /**
* 费率
*/
private double tax;
/**
* 配料或属性 * 配料或属性
*/ */
private List<CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>(0); private List<CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>(0);
......
package cn.freemud.enums;
public enum ReceiveOrderEnum {
NOT_RECEIVE_ORDER(0,"notReceiveOrder"),
RECEIVED_ORDER(1,"receivedOrder"),
;
private Integer code;
private String desc;
ReceiveOrderEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -505,47 +505,48 @@ public class CheckMCCafeOrder { ...@@ -505,47 +505,48 @@ public class CheckMCCafeOrder {
requestDto.setShoppingCartInfoRequestVo(shoppingCartInfoRequestVo); requestDto.setShoppingCartInfoRequestVo(shoppingCartInfoRequestVo);
//加价购商品 校验放购物车校验 //加价购商品 校验放购物车校验
requestDto.setPremiumExchangeActivity(createOrderVo.getPremiumExchangeActivity()); requestDto.setPremiumExchangeActivity(createOrderVo.getPremiumExchangeActivity());
cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = shoppingCartClient.getMCCafeShoppingCartGoodsApportionNew(requestDto); // cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = shoppingCartClient.getMCCafeShoppingCartGoodsApportionNew(requestDto);
//暂时写死测试数据 //暂时写死测试数据
// cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = JSON.parseObject( cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto> apportionResponse = JSON.parseObject(
// "{\n" + "{\n" +
// " \"code\": \"100\",\n" + " \"code\": \"100\",\n" +
// " \"message\": \"success\",\n" + " \"message\": \"success\",\n" +
// " \"result\": {\n" + " \"result\": {\n" +
// " \"activityDiscountsDtos\": [],\n" + " \"activityDiscountsDtos\": [],\n" +
// " \"isDiscountDelivery\": false,\n" + " \"isDiscountDelivery\": false,\n" +
// " \"originalTotalAmount\": 1,\n" + " \"originalTotalAmount\": 1,\n" +
// " \"products\": [\n" + " \"products\": [\n" +
// " {\n" + " {\n" +
// " \"activityDiscountsDtos\": [],\n" + " \"activityDiscountsDtos\": [],\n" +
// " \"attributeNames\": \"{\\\"attributeNames\\\":\\\"\\\"}\",\n" + " \"attributeNames\": \"{\\\"attributeNames\\\":\\\"\\\"}\",\n" +
// " \"categoryName\": \"鞍山市\",\n" + " \"categoryName\": \"鞍山市\",\n" +
// " \"classificationId\": \"\",\n" + " \"classificationId\": \"\",\n" +
// " \"customerCode\": \"4095\",\n" + " \"customerCode\": \"4095\",\n" +
// " \"extraList\": [],\n" + " \"extraList\": [],\n" +
// " \"hasProductCoupon\": false,\n" + " \"hasProductCoupon\": false,\n" +
// " \"materialList\": [],\n" + " \"materialList\": [],\n" +
// " \"originalPrice\": 1,\n" + " \"originalPrice\": 1,\n" +
// " \"picture\": \"https://img10.sandload.cn/zfd0x0.jpg?timestamp=1593831027040\",\n" + " \"picture\": \"https://img10.sandload.cn/zfd0x0.jpg?timestamp=1593831027040\",\n" +
// " \"qty\": 1,\n" + " \"qty\": 1,\n" +
// " \"skuId\": \"162535232231270663\",\n" + " \"skuId\": \"162535232231270663\",\n" +
// " \"skuName\": \"鱿鱼须把把串\",\n" + " \"skuName\": \"鱿鱼须把把串\",\n" +
// " \"spuId\": \"162535232231270663\",\n" + " \"spuId\": \"162535232231270663\",\n" +
// " \"spuName\": \"鱿鱼须把把串\",\n" + " \"spuName\": \"鱿鱼须把把串\",\n" +
// " \"stockLimit\": false,\n" + " \"stockLimit\": false,\n" +
// " \"totalDiscountAmount\": 0,\n" + " \"totalDiscountAmount\": 0,\n" +
// " \"unit\": \"g\",\n" + " \"unit\": \"g\",\n" +
// " \"weight\": 0\n" + " \"weight\": 0,\n" +
// " }\n" + " \"tax\": 10\n" +
// " ],\n" + " }\n" +
// " \"reduceScore\": 0,\n" + " ],\n" +
// " \"scoreReduceAmount\": 0,\n" + " \"reduceScore\": 0,\n" +
// " \"totalAmount\": 1,\n" + " \"scoreReduceAmount\": 0,\n" +
// " \"totalDiscountAmount\": 0\n" + " \"totalAmount\": 1,\n" +
// " },\n" + " \"totalDiscountAmount\": 0\n" +
// " \"ver\": \"1\"\n" + " },\n" +
// "}", new TypeReference<cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto>>(){} " \"ver\": \"1\"\n" +
// ); "}", new TypeReference<cn.freemud.base.entity.BaseResponse<ShoppingCartGoodsDto>>(){}
);
if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) { if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, apportionResponse.getCode())) {
ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode()); ResponseResult responseResult = ResponseResult.getResponseResult(apportionResponse.getCode());
throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR ); throw new ServiceException(responseResult != null ? responseResult : ResponseResult.SHOPPING_CART_GETINFO_ERROR );
......
...@@ -37,8 +37,10 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; ...@@ -37,8 +37,10 @@ import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.*; import cn.freemud.service.*;
import cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient;
import cn.freemud.service.thirdparty.*; import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
...@@ -56,6 +58,8 @@ import com.freemud.application.sdk.api.constant.ResponseConstant; ...@@ -56,6 +58,8 @@ import com.freemud.application.sdk.api.constant.ResponseConstant;
import com.freemud.application.sdk.api.constant.ResponseResultEnum; import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
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.dto.CancelDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService; import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.ApiLog; import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
...@@ -63,6 +67,8 @@ import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType; ...@@ -63,6 +67,8 @@ import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.UpdateDownstreamOrderCodeReq;
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;
import com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse;
...@@ -103,6 +109,7 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -103,6 +109,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringBuilder;
import org.bouncycastle.cert.ocsp.Req;
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;
...@@ -208,6 +215,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -208,6 +215,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private AssortmentOpenPlatformPartnerManager assortmentOpenPlatformPartnerManager; private AssortmentOpenPlatformPartnerManager assortmentOpenPlatformPartnerManager;
@Autowired @Autowired
private CouponClientService couponClientService; private CouponClientService couponClientService;
@Autowired
private DeliveryFeiginMCCafeClient deliveryFeiginMCCafeClient;
@Autowired
private OrderSdkService orderSdkService;
@Override @Override
public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) { public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) {
...@@ -864,6 +875,12 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -864,6 +875,12 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
if (CollectionUtils.isNotEmpty(couponRedeemResponseList)){ if (CollectionUtils.isNotEmpty(couponRedeemResponseList)){
// TODO 记录一下核销失败的券 // TODO 记录一下核销失败的券
} }
//调用基础订单接口更新信息
UpdateDownstreamOrderCodeReq updateDownstreamOrderCodeReq = new UpdateDownstreamOrderCodeReq();
updateDownstreamOrderCodeReq.setOrderCode(orderBean.getOid());
orderSdkService.updateDownstreamThirdOrderCode(updateDownstreamOrderCodeReq, LogThreadLocal.getTrackingNo());
} else if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getType())) { } else if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getType())) {
List<CouponBaseResponse> couponBaseResponseList = couponClientService.lockBatch(orderBean); List<CouponBaseResponse> couponBaseResponseList = couponClientService.lockBatch(orderBean);
...@@ -1004,6 +1021,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1004,6 +1021,9 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) { if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单已取消,无法退款"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单已取消,无法退款");
} }
if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单已完成,无法退款");
}
if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getOrderType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getOrderType())) { if(OldOrderType.COLLECT_GOODS.getCode().equals(orderBean.getOrderType()) || OldOrderType.EAT_IN.getCode().equals(orderBean.getOrderType())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "麦咖啡到店订单不支持退款"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "麦咖啡到店订单不支持退款");
} }
...@@ -1021,8 +1041,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1021,8 +1041,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
OrderStatus.TAKE_ORDER.getCode(), OrderStatus.TAKE_ORDER.getCode(),
OrderStatus.RECEIPT.getCode(), OrderStatus.RECEIPT.getCode(),
OrderStatus.COMPLETE_MAKE.getCode(), OrderStatus.COMPLETE_MAKE.getCode(),
OrderStatus.DISTRIBUTION.getCode(), OrderStatus.DISTRIBUTION.getCode()
OrderStatus.COMPLETE.getCode() // ,OrderStatus.COMPLETE.getCode()
)); ));
if (enableRefundCodes.contains(orderBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(orderBean.getPayStatus())) { if (enableRefundCodes.contains(orderBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(orderBean.getPayStatus())) {
...@@ -1061,8 +1081,11 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1061,8 +1081,11 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
} else { } else {
//TODO 申请取消配送单 //申请取消配送单
BaseResponseDto deliveryBaseResponse = cancelDelivery(orderBean, ReceiveOrderEnum.RECEIVED_ORDER.getDesc());
if(!ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(deliveryBaseResponse)) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "申请取消配送单失败,退款失败");
}
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
...@@ -1106,9 +1129,11 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1106,9 +1129,11 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
String partnerId = orderBean.getCompanyId(); String partnerId = orderBean.getCompanyId();
int state = PayRefundStatus.SUCCESS.getCode(); int state = PayRefundStatus.SUCCESS.getCode();
//TODO 取消配送单 //取消配送单
BaseResponseDto deliveryBaseResponse = cancelDelivery(orderBean, ReceiveOrderEnum.NOT_RECEIVE_ORDER.getDesc());
if(!ResponseConstant.SUCCESS_RESPONSE_CODE.equals(deliveryBaseResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "申请取消配送单失败,退款失败");
}
if (orderBean.getAmount() != 0) { if (orderBean.getAmount() != 0) {
//调用支付退款 //调用支付退款
...@@ -1124,10 +1149,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1124,10 +1149,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
partnerId, afterSalesType, orderRefundVo.getReason(), LogTreadLocal.getTrackingNo(), refundId.toString()); partnerId, afterSalesType, orderRefundVo.getReason(), LogTreadLocal.getTrackingNo(), refundId.toString());
cancelOrderRequest.setOperator(orderBean.getUserName()); cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
if (PayRefundStatus.RUNNING.getCode().intValue() == state) { if (PayRefundStatus.SUCCESS.getCode().intValue() == state) {
// 退款中
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent());
} else if (PayRefundStatus.SUCCESS.getCode().intValue() == state) {
//退款成功 //退款成功
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent()); cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
} }
...@@ -1141,6 +1163,45 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1141,6 +1163,45 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
} }
/** /**
* 取消配送
*
* @param orderBean
* @param receiveOrderType
* @return
*/
public BaseResponseDto cancelDelivery(OrderBean orderBean, String receiveOrderType) {
BaseResponseDto baseResponseDto = new BaseResponseDto();
baseResponseDto.setErrcode(100);
if (orderBean.getType() == 1 && orderBean.getAddInfo() != null) {
Integer deliverStatus = orderBean.getDeliverStatus();
if (ObjectUtils.equals(cn.freemud.management.enums.DeliveryStatus.DELIVERYERROR.getCode(), deliverStatus)
|| ObjectUtils.equals(cn.freemud.management.enums.DeliveryStatus.DELIVERYCANCEL.getCode(), deliverStatus)
|| ObjectUtils.equals(cn.freemud.management.enums.DeliveryStatus.DELIVERYARRIVED.getCode(), deliverStatus)) {
return baseResponseDto;
}
CancelDeliveryRequest cancelDeliveryRequest = CancelDeliveryRequest.builder()
.displayOrderId(orderBean.getDownstreamThirdOrderCode())
.orderId(orderBean.getOid())
.orderCancelCode("4")
.orderCancelDescription("用户申请退款")
.storeId(orderBean.getShopId())
.receiveOrderType(receiveOrderType).build();
BaseResponseDto deliveryBaseResponse = deliveryFeiginMCCafeClient.cancelRequest(cancelDeliveryRequest);
if (deliveryBaseResponse == null || !ResponseConstant.SUCCESS_RESPONSE_CODE.equals(deliveryBaseResponse.getErrcode())) {
LogUtil.error("申请取消配送单失败", cancelDeliveryRequest, deliveryBaseResponse);
baseResponseDto.setErrcode(100);
baseResponseDto.setErrcode(baseResponseDto.getErrcode());
baseResponseDto.setErrmsg(baseResponseDto.getErrmsg());
return baseResponseDto;
// return cn.freemud.management.util.ResponseUtil.error(cn.freemud.management.enums.ResponseResult.DELIVERY_CANCEL_ORDER_ERROR);
}
}
return baseResponseDto;
}
/**
* 发送pos端消息 * 发送pos端消息
*/ */
public void sendPosMessage(String partnerId, String storeId) { public void sendPosMessage(String partnerId, String storeId) {
......
...@@ -3,6 +3,7 @@ package cn.freemud.service.mccafe.impl; ...@@ -3,6 +3,7 @@ package cn.freemud.service.mccafe.impl;
import cn.freemud.adapter.CouponAdapter; import cn.freemud.adapter.CouponAdapter;
import cn.freemud.adapter.OrderAdapter; import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.constant.Version; import cn.freemud.base.constant.Version;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.coupon.MCCafeCouponRequest; import cn.freemud.entities.dto.coupon.MCCafeCouponRequest;
...@@ -14,6 +15,8 @@ import cn.freemud.enums.MCCafeChannelEnum; ...@@ -14,6 +15,8 @@ import cn.freemud.enums.MCCafeChannelEnum;
import cn.freemud.enums.OrderAccountType; import cn.freemud.enums.OrderAccountType;
import cn.freemud.service.mccafe.CouponClientService; import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient; import cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient;
import cn.freemud.utils.LogUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
...@@ -160,6 +163,7 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -160,6 +163,7 @@ public class CouponClientServiceImpl implements CouponClientService {
accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponRequest(orderBean, accountBean)).collect(Collectors.toList()); accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponRequest(orderBean, accountBean)).collect(Collectors.toList());
List<CouponRedeemResponse> couponRedeemResponseList = new ArrayList<>(); List<CouponRedeemResponse> couponRedeemResponseList = new ArrayList<>();
List<CouponRedeemResponse> couponRedeemResponseListAll = new ArrayList<>();
redeem: redeem:
for (MCCafeCouponRequest request : list) { for (MCCafeCouponRequest request : list) {
CouponRedeemResponse couponRedeemResponse = null; CouponRedeemResponse couponRedeemResponse = null;
...@@ -167,10 +171,16 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -167,10 +171,16 @@ public class CouponClientServiceImpl implements CouponClientService {
for(int i=0;i<3;i++) { for(int i=0;i<3;i++) {
couponRedeemResponse = redeem(request); couponRedeemResponse = redeem(request);
if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(couponRedeemResponse.getStatusCode())) { if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(couponRedeemResponse.getStatusCode())) {
couponRedeemResponseListAll.add(couponRedeemResponse);
continue redeem; continue redeem;
} }
} }
couponRedeemResponseList.add(couponRedeemResponse); couponRedeemResponseList.add(couponRedeemResponse);
couponRedeemResponseListAll.add(couponRedeemResponse);
}
if(CollectionUtils.isNotEmpty(couponRedeemResponseList)) {
LogUtil.info(LogTreadLocal.getTrackingNo(), "麦咖啡核销券失败",
JSON.toJSONString(list), JSON.toJSONString(couponRedeemResponseListAll));
} }
return couponRedeemResponseList; return couponRedeemResponseList;
...@@ -272,6 +282,7 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -272,6 +282,7 @@ public class CouponClientServiceImpl implements CouponClientService {
accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponLockRequest(orderBean, accountBean)).collect(Collectors.toList()); accountList.stream().map(accountBean -> couponAdapter.convert2MCCafeCouponLockRequest(orderBean, accountBean)).collect(Collectors.toList());
List<CouponBaseResponse> baseResponseList = new ArrayList<>(); List<CouponBaseResponse> baseResponseList = new ArrayList<>();
List<CouponBaseResponse> baseResponseListAll = new ArrayList<>();
lock: lock:
for (MCCafeCouponLockRequest request : list) { for (MCCafeCouponLockRequest request : list) {
CouponBaseResponse baseResponse = null; CouponBaseResponse baseResponse = null;
...@@ -279,10 +290,17 @@ public class CouponClientServiceImpl implements CouponClientService { ...@@ -279,10 +290,17 @@ public class CouponClientServiceImpl implements CouponClientService {
for(int i=0;i<3;i++) { for(int i=0;i<3;i++) {
baseResponse = lock(request); baseResponse = lock(request);
if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getStatusCode())) { if(ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(baseResponse.getStatusCode())) {
baseResponseListAll.add(baseResponse);
continue lock; continue lock;
} }
} }
baseResponseList.add(baseResponse); baseResponseList.add(baseResponse);
baseResponseListAll.add(baseResponse);
}
if(CollectionUtils.isNotEmpty(baseResponseList)) {
LogUtil.info(LogTreadLocal.getTrackingNo(), "麦咖啡冻结券失败",
JSON.toJSONString(list), JSON.toJSONString(baseResponseListAll));
} }
return baseResponseList; return baseResponseList;
......
...@@ -9,7 +9,7 @@ import org.springframework.cloud.netflix.feign.FeignClient; ...@@ -9,7 +9,7 @@ import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name = "COUPONMCCafe",url="http://coupon-api-gateway-koderover-dev-coupon.api-ingress.sandload.cn") @FeignClient(name = "COUPONMCCafe",url="${saas.couponofflineclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CouponOfflineMCCafeClient { public interface CouponOfflineMCCafeClient {
......
package cn.freemud.service.mccafe.thirdparty;
import cn.freemud.entities.dto.BaseResponseDto;
import cn.freemud.entities.dto.CancelDeliveryRequest;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountResponseDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(name = "DELIVERYCENTER", url = "${delivery.center.baseUrl}")
public interface DeliveryFeiginMCCafeClient {
@PostMapping("/delivery/cancelRequest")
BaseResponseDto cancelRequest(@RequestBody CancelDeliveryRequest request);
}
...@@ -2,16 +2,25 @@ package cn.freemud.service; ...@@ -2,16 +2,25 @@ package cn.freemud.service;
import cn.freemud.OrderApplication; import cn.freemud.OrderApplication;
import cn.freemud.base.constant.Version; import cn.freemud.base.constant.Version;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.entities.dto.BaseResponseDto;
import cn.freemud.entities.dto.QueryOrderByIdResponseDto;
import cn.freemud.entities.dto.coupon.MCCafeCouponRequest; import cn.freemud.entities.dto.coupon.MCCafeCouponRequest;
import cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest; import cn.freemud.entities.dto.coupon.MCCafeCouponLockRequest;
import cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo; import cn.freemud.entities.dto.coupon.MCCafeProductRedeemVo;
import cn.freemud.entities.dto.coupon.MCCafeTransactionVo; import cn.freemud.entities.dto.coupon.MCCafeTransactionVo;
import cn.freemud.enums.ReceiveOrderEnum;
import cn.freemud.service.impl.MCCafeOrderServiceImpl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponQueryResponse;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse; import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
import cn.freemud.enums.CouponReqTypeEnum; import cn.freemud.enums.CouponReqTypeEnum;
import cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient; import cn.freemud.service.mccafe.thirdparty.CouponOfflineMCCafeClient;
import com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -28,12 +37,18 @@ public class CouponActivityServiceTest { ...@@ -28,12 +37,18 @@ public class CouponActivityServiceTest {
@Autowired @Autowired
private CouponOfflineMCCafeClient offlineMCCafeClient; private CouponOfflineMCCafeClient offlineMCCafeClient;
@Autowired
private MCCafeOrderServiceImpl mcCafeOrderService;
@Autowired
private OrderCenterSdkService orderCenterSdkService;
@Test @Test
public void redeemTest() { public void redeemTest() {
MCCafeCouponRequest couponCodeVerificationDto = new MCCafeCouponRequest(); MCCafeCouponRequest couponCodeVerificationDto = new MCCafeCouponRequest();
couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1)); couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1));
couponCodeVerificationDto.setReqtype(CouponReqTypeEnum.REDEEM.getCode()); couponCodeVerificationDto.setReqtype(CouponReqTypeEnum.REDEEM.getCode());
couponCodeVerificationDto.setPartnerId(1205); couponCodeVerificationDto.setPartnerId(1206);
couponCodeVerificationDto.setStore_id("khl-12345"); couponCodeVerificationDto.setStore_id("khl-12345");
couponCodeVerificationDto.setStation_id("1"); couponCodeVerificationDto.setStation_id("1");
couponCodeVerificationDto.setOperator_id("1"); couponCodeVerificationDto.setOperator_id("1");
...@@ -66,7 +81,7 @@ public class CouponActivityServiceTest { ...@@ -66,7 +81,7 @@ public class CouponActivityServiceTest {
MCCafeCouponRequest couponCodeVerificationDto = new MCCafeCouponRequest(); MCCafeCouponRequest couponCodeVerificationDto = new MCCafeCouponRequest();
couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1)); couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1));
couponCodeVerificationDto.setReqtype(CouponReqTypeEnum.CANCEL_REDEEM.getCode()); couponCodeVerificationDto.setReqtype(CouponReqTypeEnum.CANCEL_REDEEM.getCode());
couponCodeVerificationDto.setPartnerId(1205); couponCodeVerificationDto.setPartnerId(1206);
couponCodeVerificationDto.setStore_id("khl-12345"); couponCodeVerificationDto.setStore_id("khl-12345");
couponCodeVerificationDto.setStation_id("1"); couponCodeVerificationDto.setStation_id("1");
couponCodeVerificationDto.setOperator_id("1"); couponCodeVerificationDto.setOperator_id("1");
...@@ -99,7 +114,7 @@ public class CouponActivityServiceTest { ...@@ -99,7 +114,7 @@ public class CouponActivityServiceTest {
MCCafeCouponRequest couponCodeVerificationDto = new MCCafeCouponRequest(); MCCafeCouponRequest couponCodeVerificationDto = new MCCafeCouponRequest();
couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1)); couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1));
couponCodeVerificationDto.setReqtype(CouponReqTypeEnum.QUERY.getCode()); couponCodeVerificationDto.setReqtype(CouponReqTypeEnum.QUERY.getCode());
couponCodeVerificationDto.setPartnerId(1205); couponCodeVerificationDto.setPartnerId(1206);
couponCodeVerificationDto.setStore_id("khl-12345"); couponCodeVerificationDto.setStore_id("khl-12345");
couponCodeVerificationDto.setStation_id("1"); couponCodeVerificationDto.setStation_id("1");
couponCodeVerificationDto.setOperator_id("1"); couponCodeVerificationDto.setOperator_id("1");
...@@ -117,7 +132,7 @@ public class CouponActivityServiceTest { ...@@ -117,7 +132,7 @@ public class CouponActivityServiceTest {
MCCafeCouponLockRequest couponCodeVerificationDto = new MCCafeCouponLockRequest(); MCCafeCouponLockRequest couponCodeVerificationDto = new MCCafeCouponLockRequest();
couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1)); couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1));
couponCodeVerificationDto.setReqType(89); couponCodeVerificationDto.setReqType(89);
couponCodeVerificationDto.setPartnerId("1205"); couponCodeVerificationDto.setPartnerId("1206");
couponCodeVerificationDto.setStoreId("99992"); couponCodeVerificationDto.setStoreId("99992");
// 订单号 // 订单号
couponCodeVerificationDto.setTransId("00000002"); couponCodeVerificationDto.setTransId("00000002");
...@@ -139,7 +154,7 @@ public class CouponActivityServiceTest { ...@@ -139,7 +154,7 @@ public class CouponActivityServiceTest {
MCCafeCouponLockRequest couponCodeVerificationDto = new MCCafeCouponLockRequest(); MCCafeCouponLockRequest couponCodeVerificationDto = new MCCafeCouponLockRequest();
couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1)); couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1));
couponCodeVerificationDto.setReqType(90); couponCodeVerificationDto.setReqType(90);
couponCodeVerificationDto.setPartnerId("1205"); couponCodeVerificationDto.setPartnerId("1206");
couponCodeVerificationDto.setStoreId("khl-12345"); couponCodeVerificationDto.setStoreId("khl-12345");
// 订单号 // 订单号
couponCodeVerificationDto.setTransId("00000002"); couponCodeVerificationDto.setTransId("00000002");
...@@ -155,4 +170,18 @@ public class CouponActivityServiceTest { ...@@ -155,4 +170,18 @@ public class CouponActivityServiceTest {
CouponBaseResponse couponCodeResponseDto = offlineMCCafeClient.unlock(couponCodeVerificationDto); CouponBaseResponse couponCodeResponseDto = offlineMCCafeClient.unlock(couponCodeVerificationDto);
System.out.println(couponCodeResponseDto); System.out.println(couponCodeResponseDto);
} }
@Test
public void cancelDelivery() {
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId("18551043261893838300001");
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
String string = JSONObject.toJSONString(queryOrderByIdResponse);
JSONObject jsonObject = JSONObject.parseObject(string);
QueryOrderByIdResponseDto orderByIdResponseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class);
BaseResponseDto baseResponseDto = mcCafeOrderService.cancelDelivery(orderByIdResponseDto.getData(), ReceiveOrderEnum.NOT_RECEIVE_ORDER.getDesc());
System.out.println(JSON.toJSONString(baseResponseDto));
}
} }
\ No newline at end of file
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