Commit a84b553a by 徐康

Merge branch 'feature/20201201_xukang_麦咖啡p4v1' into master_back

parents 7ea84534 ed0a8901
...@@ -116,6 +116,7 @@ public class OrderSdkAdapter { ...@@ -116,6 +116,7 @@ public class OrderSdkAdapter {
//退款状态为退款完成:event为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】 //退款状态为退款完成:event为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
var1.setCreateEvent(PayRefundStatus.SUCCESS.equals(refundStatus) ? AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent() : AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent()); var1.setCreateEvent(PayRefundStatus.SUCCESS.equals(refundStatus) ? AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent() : AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent());
var1.setOperator(operator); var1.setOperator(operator);
var1.setReason(reason);
return var1; return var1;
} }
public CancelOrderRequest getRejectRefundRequest(String operator,String reason,QueryOrdersResponse.DataBean.OrderBean orderBean){ public CancelOrderRequest getRejectRefundRequest(String operator,String reason,QueryOrdersResponse.DataBean.OrderBean orderBean){
......
...@@ -513,6 +513,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -513,6 +513,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setOrderCode(orderRefundRequest.getOrderId()); request.setOrderCode(orderRefundRequest.getOrderId());
request.setReqRemark(orderRefundRequest.getRemark()); request.setReqRemark(orderRefundRequest.getRemark());
request.setAfterSalesReason(orderRefundRequest.getReason()); request.setAfterSalesReason(orderRefundRequest.getReason());
request.setCancelReason(orderRefundRequest.getReason());
request.setOperator(orderRefundRequest.getOperator()); request.setOperator(orderRefundRequest.getOperator());
if(null != orderRefundRequest.getCreateEvent()) { if(null != orderRefundRequest.getCreateEvent()) {
request.setCreateEvent(orderRefundRequest.getCreateEvent()); request.setCreateEvent(orderRefundRequest.getCreateEvent());
...@@ -694,6 +695,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -694,6 +695,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setAfterSalesType(cancelOrderRequest.getAfterSalesType().getIndex() == null ? 1 : cancelOrderRequest.getAfterSalesType().getIndex()); request.setAfterSalesType(cancelOrderRequest.getAfterSalesType().getIndex() == null ? 1 : cancelOrderRequest.getAfterSalesType().getIndex());
request.setOrderClient(cancelOrderRequest.getOrderClient()); request.setOrderClient(cancelOrderRequest.getOrderClient());
request.setCancelReason(cancelOrderRequest.getReason()); request.setCancelReason(cancelOrderRequest.getReason());
request.setAfterSalesReason(cancelOrderRequest.getReason());
//若为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】 //若为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
request.setCreateEvent(cancelOrderRequest.getCreateEvent()); request.setCreateEvent(cancelOrderRequest.getCreateEvent());
request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo()); request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo());
......
...@@ -2,6 +2,8 @@ package com.freemud.sdk.api.assortment.order.util; ...@@ -2,6 +2,8 @@ package com.freemud.sdk.api.assortment.order.util;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.response.QueryOrderStateResp; import com.freemud.application.sdk.api.ordercenter.response.QueryOrderStateResp;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.beans.BeanInfo; import java.beans.BeanInfo;
import java.beans.Introspector; import java.beans.Introspector;
...@@ -37,6 +39,53 @@ public class MapBeanConvertUtil { ...@@ -37,6 +39,53 @@ public class MapBeanConvertUtil {
} }
/** /**
* 按照ASCII 排序
* @param obj 排序类
* @return
*/
public static String sortObjWithoutSign(Object obj) {
Map<String, Object> stringObjectMap = transBean2Map(obj);
return sortMapWithoutSign(stringObjectMap, SIGN, true);
}
public static String sortMapWithoutSign(Map<String, Object> params, char sign, boolean containSymbols) {
if (CollectionUtils.isEmpty(params)) {
return null;
}
params.remove("sign");
String buff = "";
try {
List<Map.Entry<String, Object>> infoIds = new ArrayList<>(params.entrySet());
// 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
infoIds.sort(Comparator.comparing(o -> (o.getKey())));
// 构造URL 键值对的格式
StringBuilder buf = new StringBuilder();
for (Map.Entry<String, Object> item : infoIds) {
if (!StringUtils.isEmpty(item.getKey())) {
String key = item.getKey();
String val = null;
if (item.getValue() == null) {
continue;
} else {
val = String.valueOf(item.getValue());
}
buf.append(key).append(containSymbols ? "=" : "").append(val);
buf.append(sign);
}
}
buff = buf.toString();
if (buff.isEmpty() == false && containSymbols) {
buff = buff.substring(0, buff.length() - 1);
}
} catch (Exception e) {
return null;
}
return buff;
}
/**
* Map --> Bean * Map --> Bean
* *
* @param map * @param map
......
...@@ -222,7 +222,7 @@ public class OrderAdapter { ...@@ -222,7 +222,7 @@ public class OrderAdapter {
.actualPrice(discountDeliveryAmount) .actualPrice(discountDeliveryAmount)
.build(); .build();
if(hasDeliveryMonthCard && StringUtils.isNotBlank(storeResponseDto.getBenefitCardDiscountAmount())) { if(hasDeliveryMonthCard && StringUtils.isNotBlank(storeResponseDto.getBenefitCardDiscountAmount())) {
createOrderAccountDto.setNote((Integer.parseInt(storeResponseDto.getBenefitCardDiscountAmount())*100)+""); createOrderAccountDto.setNote(Double.valueOf(Double.valueOf(storeResponseDto.getBenefitCardDiscountAmount())*100).intValue()+"");
} }
orderAccountDtos.add(createOrderAccountDto); orderAccountDtos.add(createOrderAccountDto);
} }
......
...@@ -99,7 +99,7 @@ public class WebAspect { ...@@ -99,7 +99,7 @@ public class WebAspect {
} }
List<String> unauthorizedUrls = Arrays.asList(getNotFilterUrl(CommonRedisKeyConstant.SAAS_NOT_AUTHORIZED_URL, NOT_AUTHORIZED_KEY).split(",")); List<String> unauthorizedUrls = Arrays.asList(getNotFilterUrl(CommonRedisKeyConstant.SAAS_NOT_AUTHORIZED_URL, NOT_AUTHORIZED_KEY).split(","));
List<String> mcCafeUnauthorizedUrls = Arrays.asList("/MCoffee/mcCafePaySuccessCallback","/openStoreMCCafeQueryPaymentCallback","/MCoffee/mcCafeRefund", List<String> mcCafeUnauthorizedUrls = Arrays.asList("/MCoffee/mcCafePaySuccessCallback","/openStoreMCCafeQueryPaymentCallback","/MCoffee/mcCafeRefund",
"/maCafeQueryOrders","/mcCafeQueryOrderById","/reminder","/listFreeRider","/mcCafePollingPickUpCode","/mcCafe/statusOperate"); "/maCafeQueryOrders","/mcCafeQueryOrderById","/reminder","/listFreeRider","/mcCafePollingPickUpCode","/mcCafe/statusOperate","/MCoffee/mcCafeRefundNotifyCallback");
if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId()) if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId())
&& mcCafeUnauthorizedUrls.stream().noneMatch(o -> requestUrl.contains(o))) { && mcCafeUnauthorizedUrls.stream().noneMatch(o -> requestUrl.contains(o))) {
throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED); throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED);
......
...@@ -253,6 +253,15 @@ public class OrderController { ...@@ -253,6 +253,15 @@ public class OrderController {
} }
/** /**
* 退款回掉通知
*/
@ApiAnnotation(logMessage = "mcCafeRefundNotifyCallback")
@PostMapping("/MCoffee/mcCafeRefundNotifyCallback")
public String mcCafeRefundNotifyCallback(@LogParams @RequestBody RefundNotifyCallbackRequestVo requestVo) {
return mcCafeOrderService.mcCafeRefundNotifyCallback(requestVo);
}
/**
* 获取订单排队号 * 获取订单排队号
*/ */
@ApiAnnotation(logMessage = "queueIndex") @ApiAnnotation(logMessage = "queueIndex")
......
package cn.freemud.entities.dto;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.com
*
* @version V1.0
* @Title:
* @Package: com.freemud.platform.amp.order.consumer.entity
* @Descripttion:
* @author: shuhu.hou
* @date: 2019/7/9
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目.
*/
@Data
public class OrderRefundStatusChangeRequestBody {
private String orderCode;
private String timeStamp;
private String refundType;
private String refundStatus;
private String refundReason;
}
...@@ -74,4 +74,13 @@ public class MacCafeCallbackUrlRequestDto { ...@@ -74,4 +74,13 @@ public class MacCafeCallbackUrlRequestDto {
*/ */
private Integer reviewStatus; private Integer reviewStatus;
/**
* 取消原因
*/
private String cancelReason;
/**
* 退款发起方,0用户 1餐道
*/
private Integer cancelApplicant;
} }
...@@ -35,5 +35,10 @@ public interface MCCafeOrderService { ...@@ -35,5 +35,10 @@ public interface MCCafeOrderService {
*/ */
BaseResponse orderRefund(OrderRefundVo orderRefundVo); BaseResponse orderRefund(OrderRefundVo orderRefundVo);
/**
* 退款回掉通知
*/
String mcCafeRefundNotifyCallback(RefundNotifyCallbackRequestVo message);
} }
...@@ -170,6 +170,11 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -170,6 +170,11 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
OrderManagerRequest orderManagerRequest=new OrderManagerRequest(); OrderManagerRequest orderManagerRequest=new OrderManagerRequest();
orderManagerRequest.setPartnerId(request.getPartnerId()); orderManagerRequest.setPartnerId(request.getPartnerId());
orderManagerRequest.setOrderId(request.getOrderId()); orderManagerRequest.setOrderId(request.getOrderId());
if("1".equals(request.getCancelApplicant())) {
orderManagerRequest.setReason(StringUtils.isNotBlank(request.getCancelReason())?request.getCancelReason():"餐道主动取消");
} else {
orderManagerRequest.setReason(null);
}
orderManagerRequest.setOperator("配送回调"); orderManagerRequest.setOperator("配送回调");
......
...@@ -23,6 +23,7 @@ import cn.freemud.base.log.LogTreadLocal; ...@@ -23,6 +23,7 @@ import cn.freemud.base.log.LogTreadLocal;
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.controller.test.PlatformBaseRequest;
import cn.freemud.entities.dto.PayAccessResponse; import cn.freemud.entities.dto.PayAccessResponse;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean; import cn.freemud.entities.dto.QueryOrdersResponseDto.DataBean.OrderBean;
...@@ -46,17 +47,21 @@ import cn.freemud.service.*; ...@@ -46,17 +47,21 @@ import cn.freemud.service.*;
import cn.freemud.service.mccafe.thirdparty.DeliveryFeiginMCCafeClient; 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.RedisUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import cn.freemud.utils.ValidationCode; import cn.freemud.utils.ValidationCode;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.*; import com.freemud.api.assortment.datamanager.entity.db.*;
import com.freemud.api.assortment.datamanager.entity.dto.AssortmentOpenApiEncryptDto;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.OpenPlatformEncryptUrlType;
import com.freemud.api.assortment.datamanager.manager.*; import com.freemud.api.assortment.datamanager.manager.*;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager; import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.api.assortment.datamanager.meal.MealCacheManager; import com.freemud.api.assortment.datamanager.meal.MealCacheManager;
import com.freemud.api.assortment.datamanager.openapiencrypt.CacheOpenApiEncryptManager;
import com.freemud.application.sdk.api.constant.ResponseConstant; 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;
...@@ -64,6 +69,7 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedee ...@@ -64,6 +69,7 @@ import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedee
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto; import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
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.ErrorLog;
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.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
...@@ -84,6 +90,7 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse; ...@@ -84,6 +90,7 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto; import com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto;
import com.freemud.application.sdk.api.structure.service.MessageCenterClient; import com.freemud.application.sdk.api.structure.service.MessageCenterClient;
import com.freemud.openstore.sdk.util.RSASignUtil;
import com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig; import com.freemud.sdk.api.assortment.message.config.MessageOfficialRefundPushMqConfig;
import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg; import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsg;
import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue; import com.freemud.sdk.api.assortment.message.entity.MpTemplateMsgDataValue;
...@@ -98,6 +105,7 @@ import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse; ...@@ -98,6 +105,7 @@ import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import cn.freemud.service.mccafe.CouponClientService; import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService; import cn.freemud.service.mccafe.MCCafeOrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.freemud.sdk.api.assortment.order.util.MapBeanConvertUtil;
import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo; import com.freemud.sdk.api.assortment.order.vo.ProductGroupVo;
import com.freemud.sdk.api.assortment.orderdistributor.entity.dto.PaymentMqMessageDto; import com.freemud.sdk.api.assortment.orderdistributor.entity.dto.PaymentMqMessageDto;
import com.freemud.sdk.api.assortment.orderdistributor.service.PaymentQueueService; import com.freemud.sdk.api.assortment.orderdistributor.service.PaymentQueueService;
...@@ -233,6 +241,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -233,6 +241,8 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private OrderBaseService orderBaseService; private OrderBaseService orderBaseService;
@Autowired @Autowired
private CustomerExtendClient customerExtendClient; private CustomerExtendClient customerExtendClient;
@Autowired
private CacheOpenApiEncryptManager cacheOpenApiEncryptManager;
@Override @Override
public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) { public BaseResponse createMCCafeOrder(CreateOrderVo createOrderVo) {
...@@ -1020,7 +1030,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1020,7 +1030,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
@Override @Override
public BaseResponse orderRefund(OrderRefundVo orderRefundVo) { public BaseResponse orderRefund(OrderRefundVo orderRefundVo) {
if (StringUtils.isEmpty(orderRefundVo.getReason())) { if (StringUtils.isEmpty(orderRefundVo.getReason())) {
orderRefundVo.setReason("退款"); orderRefundVo.setReason("用户申请退款");
} }
AssortmentCustomerInfoVo userInfo = customerInfoManager.getCustomerInfoByObject(orderRefundVo.getSessionId()); AssortmentCustomerInfoVo userInfo = customerInfoManager.getCustomerInfoByObject(orderRefundVo.getSessionId());
if (userInfo == null || StringUtils.isEmpty(userInfo.getMemberId())) { if (userInfo == null || StringUtils.isEmpty(userInfo.getMemberId())) {
...@@ -1217,6 +1227,93 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1217,6 +1227,93 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return null; return null;
} }
@Override
public String mcCafeRefundNotifyCallback(RefundNotifyCallbackRequestVo requestVo) {
if (StringUtils.isEmpty(requestVo.getTransId())) {
//订单号不能为空
return refundFailedMessage("transId is can not empty");
}
//混合支付需要从缓存中获取订单号码,正常支付TransId = orderId
String orderId = redisCache.getValue(RedisUtil.getPaymentTransIdOrderKey(requestVo.getTransId()));
if(StringUtils.isNotEmpty(orderId)){
requestVo.setTransId(orderId);
}
String trackingNo = LogTreadLocal.getTrackingNo();
if (!Objects.equals(requestVo.getRefundStatus(), RefundStatus.COMPLETE_REFUND.getCode())) {
//只有退款成功更新状态.其他情况不处理
return refundFailedMessage("pay refundStatus is not 4,refundStatus=" + requestVo.getRefundStatus());
}
// 如果transId为空,返回失败
if (StringUtils.isBlank(requestVo.getTransId())) {
return refundFailedMessage("transId is empty " + requestVo);
}
//查询订单详情
QueryRelationOrderByIdResponseDto queryOrderByIdResponseDto = getQueryRelationOrderByIdResponseDto(requestVo.getTransId());
if (queryOrderByIdResponseDto.getData() == null || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, queryOrderByIdResponseDto.getErrcode())) {
return refundFailedMessage("order query fail " + queryOrderByIdResponseDto);
}
OrderBean orderBean = new OrderBean();
if (1 == queryOrderByIdResponseDto.getData().size()) {
orderBean = queryOrderByIdResponseDto.getData().get(0);
} else {
List<OrderBean> orderBeans = queryOrderByIdResponseDto.getData().stream().filter(order -> order.getBizType().equals(1)).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(orderBeans)) {
orderBean = orderBeans.get(0);
}
}
// PlatformBaseRequest platformBaseRequest = getRequest(orderBean);
OrderRefundRequest orderRefundRequest = new OrderRefundRequest();
orderRefundRequest.setPartnerId(orderBean.getCompanyId());
orderRefundRequest.setStoreId(orderBean.getShopId());
orderRefundRequest.setOrderId(orderBean.getOid());
orderRefundRequest.setOrderClient(OrderClientType.SAAS.getIndex());
orderRefundRequest.setAfterSalesType(AfterSalesType.USER_CANCEL);
orderRefundRequest.setReason("门店线下退款");
orderRefundRequest.setOperator("门店营业人员");
orderRefundRequest.setOrderStatus(orderBean.getStatus());
orderRefundRequest.setActualAmount(orderBean.getAmount());
orderRefundRequest.setReqAmount(orderBean.getAmount());
orderRefundRequest.setTrackingNo(trackingNo);
orderRefundRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderRefund(orderRefundRequest);
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
LogUtil.error("mcCafeRefundNotifyCallback", orderRefundRequest, baseOrderResponse);
return refundFailedMessage("create after sale order failed");
}
return newSendPaySuccessNoticeMessage();
}
private PlatformBaseRequest getRequest(OrderBean orderInfo) {
PlatformBaseRequest request = new PlatformBaseRequest();
AssortmentOpenApiEncryptDto openApiEncrypts = cacheOpenApiEncryptManager.getAssortmentOpenApiEncrypt(orderInfo.getCompanyId(), OpenPlatformEncryptUrlType.REFUND_STATUS_CHANGE_NOTIFY_URL);
request.setAppId(openApiEncrypts.getAppId());
request.setPartnerId(orderInfo.getCompanyId());
request.setVer("1");
OrderRefundStatusChangeRequestBody orderBody = new OrderRefundStatusChangeRequestBody();
orderBody.setOrderCode(orderInfo.getOid());
orderBody.setTimeStamp(System.currentTimeMillis()+"");
orderBody.setRefundType(AfterSalesType.OTHER.getIndex().toString());
orderBody.setRefundStatus(com.freemud.sdk.api.assortment.order.enums.RefundStatus.COMPLETE_REFUND.getCode().toString());
orderBody.setRefundReason("门店线下退款");
request.setRequestBody(JSON.toJSONString(orderBody));
String content = MapBeanConvertUtil.sortObjWithoutSign(request);
try {
request.setSign(RSASignUtil.getSign(content, openApiEncrypts.getServerPrivateKey(), "UTF-8"));
} catch (Exception e) {
LogUtil.error("getPlatformBaseRequest", content, JSON.toJSONString(openApiEncrypts), e);
}
return request;
}
/** /**
* 取消配送 * 取消配送
* *
...@@ -1259,12 +1356,13 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService { ...@@ -1259,12 +1356,13 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
} }
/** /**
* 发送pos端消 * 退款中回调失败返回信
*/ */
public void sendPosMessage(String partnerId, String storeId) { public String refundFailedMessage(String errorMes) {
PushMessageNoticeDto pushMessageNoticeDto = messageNoticeAdapter.convent2PushMessageNoticeDto(2, partnerId, storeId, Map<String, Object> map = Maps.newTreeMap();
null, null, null, null); map.put("code", 500);
messageNoticeClient.createMessage(pushMessageNoticeDto, LogThreadLocal.getTrackingNo()); map.put("message", "failed:" + errorMes);
return gson.toJson(map);
} }
/** /**
......
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