Commit 312f284d by huiyang.chen

Merge remote-tracking branch 'origin/qa' into qa

parents d6e872f8 2d8834cf
...@@ -163,7 +163,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -163,7 +163,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.AGREE.getCode())){ if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.AGREE.getCode())){
orderManagerRequest.setOperateType(OperateType.ORDER_AGREE_REFUND.getOpType()); orderManagerRequest.setOperateType(OperateType.ORDER_AGREE_REFUND.getOpType());
orderManagerRequest.setReason("配送回调-同意退款"); orderManagerRequest.setReason("配送回调-同意退款");
return orderManagerAdapter.orderAgreeRefund(orderManagerRequest); return orderManagerAdapter.orderPayRefund(orderManagerRequest);
} }
if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.REJECT.getCode())){ if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.REJECT.getCode())){
orderManagerRequest.setOperateType(OperateType.ORDER_REJECT_REFUND.getOpType()); orderManagerRequest.setOperateType(OperateType.ORDER_REJECT_REFUND.getOpType());
......
...@@ -81,5 +81,12 @@ public interface OrderManagerService { ...@@ -81,5 +81,12 @@ public interface OrderManagerService {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 取消订单
*/
default BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
return ResponseUtil.success();
}
} }
...@@ -148,6 +148,26 @@ public class OrderManagerAdapter { ...@@ -148,6 +148,26 @@ public class OrderManagerAdapter {
} }
/** /**
* 同意退款或者取消订单
*/
public BaseResponse orderPayRefund(OrderManagerRequest request) {
//查询订单
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(request.getOrderId());
if(CollectionUtils.isNotEmpty(orderBean.getRefundList())){
//订单接单参数校验
BaseResponse verifyResponse = orderVerifyHandle.orderAgreeRefundMCCafe(orderBean, request);
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return handleResponse(request,orderBean,verifyResponse);
}
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderAgreeRefund(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}else {
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancel(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
}
/**
* 拒绝退款 * 拒绝退款
* @param request * @param request
* @return * @return
......
...@@ -229,25 +229,41 @@ public class OrderVerifyHandle { ...@@ -229,25 +229,41 @@ public class OrderVerifyHandle {
if (orderBean.getHasRefund() == null if (orderBean.getHasRefund() == null
|| !orderBean.getHasRefund() || !orderBean.getHasRefund()
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) { || orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); }
cancelOrderRequest.setStoreId(orderBean.getShopId()); //订单是否支持退款
cancelOrderRequest.setOrderId(orderBean.getOid()); boolean isCanRefund = false;
cancelOrderRequest.setOrderClient(orderSdkAdapter.getNewOrderClient(orderBean.getSource())); //订单
boolean isRefundDeliveryFee=false;
//传入的售后单类型为:2:售中用户取消 8:售后申请 //saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL); if (ObjectUtils.equals(orderBean.getSource(), OrderSource.SAAS.getSource())) {
cancelOrderRequest.setReason("餐道主动取消"); isCanRefund = getRefundConfig(orderBean);
cancelOrderRequest.setReqRemark("餐道直接取消"); if (!isCanRefund) {
cancelOrderRequest.setOperator(orderBean.getUserName()); return ResponseUtil.error(ResponseResult.ORDER_HAD_AFFIRM_CAN_NOT_REFUND);
cancelOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
cancelOrderRequest.setRefundDeliveryAmount(true);
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!ResponseCodeConstant.RESPONSE_SUCCESS.equals(baseResponseDto.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
} }
} }
if (isCanRefund) {
orderBean.setAmount(getRefundAmount(orderBean,isRefundDeliveryFee).longValue());
}
return ResponseUtil.success();
}
/**
* 麦咖啡同意退款
*
* @param orderBean
* @param request
* @return
*/
public BaseResponse orderAgreeRefundMCCafe(QueryOrdersResponse.DataBean.OrderBean orderBean, OrderManagerRequest request) {
//已取消的订单不能操作
if (ObjectUtils.equals(OrderStatus.CANCEL.getCode(), orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
}
if(CollectionUtils.isNotEmpty(orderBean.getRefundList())
&& orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
}
//订单是否支持退款 //订单是否支持退款
boolean isCanRefund = false; boolean isCanRefund = false;
//订单 //订单
......
...@@ -183,5 +183,18 @@ public class SaasOrderHandle { ...@@ -183,5 +183,18 @@ public class SaasOrderHandle {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 取消订单
*/
public BaseResponse orderCancel(OrderManagerRequest request, PayRefundResponse refundResponse,QueryOrdersResponse.DataBean.OrderBean orderBean) {
//作废订单
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.getCancelOrderRequest(request.getOperator(), request.getReason(), refundResponse.getPayRefundStatus(), refundResponse.getRefundId(), orderBean);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (baseOrderResponse == null || ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), baseOrderResponse.getErrcode().toString())) {
return ResponseUtil.error(ResponseResult.AFFIRM_ORDER_FAIL);
}
return ResponseUtil.success();
}
} }
...@@ -195,4 +195,20 @@ public class McCafeMangerServiceImpl implements OrderManagerService { ...@@ -195,4 +195,20 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
saasOrderHandle.refundReject(request,orderBean); saasOrderHandle.refundReject(request,orderBean);
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 商家取消
*/
@Override
public BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
//支付退款
PayRefundResponse refund = paymentHandle.refund(request, orderBean);
//订单拒单
saasOrderHandle.orderCancel(request,refund, orderBean);
//冲正库存
stockHandle.revert(request, orderBean);
return ResponseUtil.success();
}
} }
...@@ -303,6 +303,8 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -303,6 +303,8 @@ public class ActivityCalculationDiscountResponseDto {
private Integer discountAmount; private Integer discountAmount;
private Integer activityType; private Integer activityType;
private String activityName;
} }
@Data @Data
......
...@@ -204,7 +204,7 @@ public class CalculationServiceImpl { ...@@ -204,7 +204,7 @@ public class CalculationServiceImpl {
if (discountType != null && discountAmount > 0) { if (discountType != null && discountAmount > 0) {
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(discount.getCouponCode()); activityDiscountsDto.setActivityCode(discount.getCouponCode());
activityDiscountsDto.setActivityName(discount.getCouponCode()); activityDiscountsDto.setActivityName(discount.getActivityName());
activityDiscountsDto.setActivityType(discountType); activityDiscountsDto.setActivityType(discountType);
activityDiscountsDto.setDiscountAmount(0 - discountAmount); activityDiscountsDto.setDiscountAmount(0 - discountAmount);
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
......
...@@ -85,32 +85,32 @@ public class CouponDiscountCalculation { ...@@ -85,32 +85,32 @@ public class CouponDiscountCalculation {
return; return;
} }
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream() // Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1)); // .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1));
for (CartGoods cartGoods : cartGoodsList) { // for (CartGoods cartGoods : cartGoodsList) {
//商品券商品 // //商品券商品
if (StringUtils.isNotBlank(cartGoods.getCouponCode())) { // if (StringUtils.isNotBlank(cartGoods.getCouponCode())) {
// String couponCode = cartGoods.getCouponCode(); //// String couponCode = cartGoods.getCouponCode();
// // 计算优惠信息时,已将券校验过,放在map中 //// // 计算优惠信息时,已将券校验过,放在map中
// Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap(); //// Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap();
// if (MapUtils.isNotEmpty(validCouponMap)) { //// if (MapUtils.isNotEmpty(validCouponMap)) {
// CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode); //// CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
// if (checkSpqInfoResponseDto != null) { //// if (checkSpqInfoResponseDto != null) {
// cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice()); //// cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
// cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId()); //// cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId());
// cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId()); //// cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId());
// cartGoods.setQty(1); //// cartGoods.setQty(1);
// cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode()); //// cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode());
// cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName()); //// cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName());
// } //// }
//// }
// if (goodsMap.get(cartGoods.getGoodsId()) == null) {
// continue;
// } // }
if (goodsMap.get(cartGoods.getGoodsId()) == null) { // cartGoods.setAmount(goodsMap.get(cartGoods.getGoodsId()).getRealAmount());
continue; // }
} // }
cartGoods.setAmount(goodsMap.get(cartGoods.getGoodsId()).getRealAmount());
}
}
// 当couponCode不为空时,需计算优惠价格 // 当couponCode不为空时,需计算优惠价格
long couponDiscount = 0; long couponDiscount = 0;
...@@ -205,8 +205,8 @@ public class CouponDiscountCalculation { ...@@ -205,8 +205,8 @@ public class CouponDiscountCalculation {
public ActivityClassifyCouponBean availableCoupon( String partnerId, String storeId,String userId,String thirdPartyMemberId,String unionId,String appId public ActivityClassifyCouponBean availableCoupon( String partnerId, String storeId,String userId,String thirdPartyMemberId,String unionId,String appId
, String couponCode, Integer orderType,List<CartGoods> cartGoods) { , String couponCode, Integer orderType,List<CartGoods> cartGoods) {
List<CartGoods> tmpCartGoods = cartGoods.parallelStream().filter(k -> k.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)).collect(Collectors.toList()); // List<CartGoods> tmpCartGoods = cartGoods.parallelStream().filter(k -> StringUtils.isBlank(k.getCouponCode())).collect(Collectors.toList());
boolean hasGoodsCoupon = CollectionUtils.isNotEmpty(tmpCartGoods); boolean hasGoodsCoupon = false;
// 获取会员服务的优惠券列表 // 获取会员服务的优惠券列表
GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(partnerId, userId); GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(partnerId, userId);
...@@ -356,6 +356,10 @@ public class CouponDiscountCalculation { ...@@ -356,6 +356,10 @@ public class CouponDiscountCalculation {
if (StringUtils.isEmpty(cartGood.getSkuId()) && StringUtils.isEmpty(cartGood.getSpuId())) { if (StringUtils.isEmpty(cartGood.getSkuId()) && StringUtils.isEmpty(cartGood.getSpuId())) {
continue; continue;
} }
// 剔除商品券得商品,麦咖啡逻辑
if(StringUtils.isNotEmpty(cartGood.getCouponCode())){
continue;
}
CouponProductVo product = new CouponProductVo(); CouponProductVo product = new CouponProductVo();
product.setKeyProductCode(cartGood.getCustomerCode()); product.setKeyProductCode(cartGood.getCustomerCode());
product.setProductId(StringUtils.isEmpty(cartGood.getSkuId()) ? cartGood.getSpuId() : cartGood.getSkuId()); product.setProductId(StringUtils.isEmpty(cartGood.getSkuId()) ? cartGood.getSpuId() : cartGood.getSkuId());
......
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