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 {
if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.AGREE.getCode())){
orderManagerRequest.setOperateType(OperateType.ORDER_AGREE_REFUND.getOpType());
orderManagerRequest.setReason("配送回调-同意退款");
return orderManagerAdapter.orderAgreeRefund(orderManagerRequest);
return orderManagerAdapter.orderPayRefund(orderManagerRequest);
}
if (reviewStatus!=null && reviewStatus.equals(DeliveryReviewStatus.REJECT.getCode())){
orderManagerRequest.setOperateType(OperateType.ORDER_REJECT_REFUND.getOpType());
......
......@@ -81,5 +81,12 @@ public interface OrderManagerService {
return ResponseUtil.success();
}
/**
* 取消订单
*/
default BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean){
return ResponseUtil.success();
}
}
......@@ -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
* @return
......
......@@ -229,25 +229,41 @@ public class OrderVerifyHandle {
if (orderBean.getHasRefund() == null
|| !orderBean.getHasRefund()
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setStoreId(orderBean.getShopId());
cancelOrderRequest.setOrderId(orderBean.getOid());
cancelOrderRequest.setOrderClient(orderSdkAdapter.getNewOrderClient(orderBean.getSource()));
//传入的售后单类型为:2:售中用户取消 8:售后申请
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL);
cancelOrderRequest.setReason("餐道主动取消");
cancelOrderRequest.setReqRemark("餐道直接取消");
cancelOrderRequest.setOperator(orderBean.getUserName());
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);
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
}
//订单是否支持退款
boolean isCanRefund = false;
//订单
boolean isRefundDeliveryFee=false;
//saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
if (ObjectUtils.equals(orderBean.getSource(), OrderSource.SAAS.getSource())) {
isCanRefund = getRefundConfig(orderBean);
if (!isCanRefund) {
return ResponseUtil.error(ResponseResult.ORDER_HAD_AFFIRM_CAN_NOT_REFUND);
}
}
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;
//订单
......
......@@ -183,5 +183,18 @@ public class SaasOrderHandle {
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 {
saasOrderHandle.refundReject(request,orderBean);
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 {
private Integer discountAmount;
private Integer activityType;
private String activityName;
}
@Data
......
......@@ -204,7 +204,7 @@ public class CalculationServiceImpl {
if (discountType != null && discountAmount > 0) {
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(discount.getCouponCode());
activityDiscountsDto.setActivityName(discount.getCouponCode());
activityDiscountsDto.setActivityName(discount.getActivityName());
activityDiscountsDto.setActivityType(discountType);
activityDiscountsDto.setDiscountAmount(0 - discountAmount);
activityDiscountsDtos.add(activityDiscountsDto);
......
......@@ -85,32 +85,32 @@ public class CouponDiscountCalculation {
return;
}
Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
.collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1));
for (CartGoods cartGoods : cartGoodsList) {
//商品券商品
if (StringUtils.isNotBlank(cartGoods.getCouponCode())) {
// String couponCode = cartGoods.getCouponCode();
// // 计算优惠信息时,已将券校验过,放在map中
// Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap();
// if (MapUtils.isNotEmpty(validCouponMap)) {
// CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
// if (checkSpqInfoResponseDto != null) {
// cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
// cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId());
// cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId());
// cartGoods.setQty(1);
// cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode());
// cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName());
// }
// Map<String, ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods> goodsMap = goodsList.parallelStream()
// .collect(Collectors.toMap(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods::getGoodsId, Function.identity(), (k1, k2) -> k1));
// for (CartGoods cartGoods : cartGoodsList) {
// //商品券商品
// if (StringUtils.isNotBlank(cartGoods.getCouponCode())) {
//// String couponCode = cartGoods.getCouponCode();
//// // 计算优惠信息时,已将券校验过,放在map中
//// Map<String, CheckSpqInfoResponseDto> validCouponMap = calculationDiscountResult.getValidCouponMap();
//// if (MapUtils.isNotEmpty(validCouponMap)) {
//// CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
//// if (checkSpqInfoResponseDto != null) {
//// cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
//// cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId());
//// cartGoods.setSkuId(StringUtils.isEmpty(checkSpqInfoResponseDto.getSkuId()) ? checkSpqInfoResponseDto.getSpuId() : checkSpqInfoResponseDto.getSkuId());
//// cartGoods.setQty(1);
//// cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode());
//// cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName());
//// }
//// }
// if (goodsMap.get(cartGoods.getGoodsId()) == null) {
// continue;
// }
if (goodsMap.get(cartGoods.getGoodsId()) == null) {
continue;
}
cartGoods.setAmount(goodsMap.get(cartGoods.getGoodsId()).getRealAmount());
}
}
// cartGoods.setAmount(goodsMap.get(cartGoods.getGoodsId()).getRealAmount());
// }
// }
// 当couponCode不为空时,需计算优惠价格
long couponDiscount = 0;
......@@ -205,8 +205,8 @@ public class CouponDiscountCalculation {
public ActivityClassifyCouponBean availableCoupon( String partnerId, String storeId,String userId,String thirdPartyMemberId,String unionId,String appId
, String couponCode, Integer orderType,List<CartGoods> cartGoods) {
List<CartGoods> tmpCartGoods = cartGoods.parallelStream().filter(k -> k.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)).collect(Collectors.toList());
boolean hasGoodsCoupon = CollectionUtils.isNotEmpty(tmpCartGoods);
// List<CartGoods> tmpCartGoods = cartGoods.parallelStream().filter(k -> StringUtils.isBlank(k.getCouponCode())).collect(Collectors.toList());
boolean hasGoodsCoupon = false;
// 获取会员服务的优惠券列表
GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(partnerId, userId);
......@@ -356,6 +356,10 @@ public class CouponDiscountCalculation {
if (StringUtils.isEmpty(cartGood.getSkuId()) && StringUtils.isEmpty(cartGood.getSpuId())) {
continue;
}
// 剔除商品券得商品,麦咖啡逻辑
if(StringUtils.isNotEmpty(cartGood.getCouponCode())){
continue;
}
CouponProductVo product = new CouponProductVo();
product.setKeyProductCode(cartGood.getCustomerCode());
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