Commit a84b553a by 徐康

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

parents 7ea84534 ed0a8901
......@@ -116,6 +116,7 @@ public class OrderSdkAdapter {
//退款状态为退款完成:event为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
var1.setCreateEvent(PayRefundStatus.SUCCESS.equals(refundStatus) ? AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent() : AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent());
var1.setOperator(operator);
var1.setReason(reason);
return var1;
}
public CancelOrderRequest getRejectRefundRequest(String operator,String reason,QueryOrdersResponse.DataBean.OrderBean orderBean){
......
......@@ -513,6 +513,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setOrderCode(orderRefundRequest.getOrderId());
request.setReqRemark(orderRefundRequest.getRemark());
request.setAfterSalesReason(orderRefundRequest.getReason());
request.setCancelReason(orderRefundRequest.getReason());
request.setOperator(orderRefundRequest.getOperator());
if(null != orderRefundRequest.getCreateEvent()) {
request.setCreateEvent(orderRefundRequest.getCreateEvent());
......@@ -694,6 +695,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setAfterSalesType(cancelOrderRequest.getAfterSalesType().getIndex() == null ? 1 : cancelOrderRequest.getAfterSalesType().getIndex());
request.setOrderClient(cancelOrderRequest.getOrderClient());
request.setCancelReason(cancelOrderRequest.getReason());
request.setAfterSalesReason(cancelOrderRequest.getReason());
//若为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
request.setCreateEvent(cancelOrderRequest.getCreateEvent());
request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo());
......
......@@ -2,6 +2,8 @@ package com.freemud.sdk.api.assortment.order.util;
import com.alibaba.fastjson.JSONObject;
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.Introspector;
......@@ -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
*
* @param map
......
......@@ -222,7 +222,7 @@ public class OrderAdapter {
.actualPrice(discountDeliveryAmount)
.build();
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);
}
......
......@@ -99,7 +99,7 @@ public class WebAspect {
}
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",
"/maCafeQueryOrders","/mcCafeQueryOrderById","/reminder","/listFreeRider","/mcCafePollingPickUpCode","/mcCafe/statusOperate");
"/maCafeQueryOrders","/mcCafeQueryOrderById","/reminder","/listFreeRider","/mcCafePollingPickUpCode","/mcCafe/statusOperate","/MCoffee/mcCafeRefundNotifyCallback");
if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId())
&& mcCafeUnauthorizedUrls.stream().noneMatch(o -> requestUrl.contains(o))) {
throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED);
......
......@@ -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")
......
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 {
*/
private Integer reviewStatus;
/**
* 取消原因
*/
private String cancelReason;
/**
* 退款发起方,0用户 1餐道
*/
private Integer cancelApplicant;
}
......@@ -35,5 +35,10 @@ public interface MCCafeOrderService {
*/
BaseResponse orderRefund(OrderRefundVo orderRefundVo);
/**
* 退款回掉通知
*/
String mcCafeRefundNotifyCallback(RefundNotifyCallbackRequestVo message);
}
......@@ -170,6 +170,11 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
OrderManagerRequest orderManagerRequest=new OrderManagerRequest();
orderManagerRequest.setPartnerId(request.getPartnerId());
orderManagerRequest.setOrderId(request.getOrderId());
if("1".equals(request.getCancelApplicant())) {
orderManagerRequest.setReason(StringUtils.isNotBlank(request.getCancelReason())?request.getCancelReason():"餐道主动取消");
} else {
orderManagerRequest.setReason(null);
}
orderManagerRequest.setOperator("配送回调");
......
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