Commit 40897b4b by 王世昌

拼团订单退款后先通知促销,再取消订单

parent 1866e737
...@@ -1102,9 +1102,12 @@ public class OrderSdkAdapter { ...@@ -1102,9 +1102,12 @@ public class OrderSdkAdapter {
//【订单开放平台】订单详情查询接口增加配送类型字段 //【订单开放平台】订单详情查询接口增加配送类型字段
data.setExpressType(orderInfoReqs.getExpressType()); data.setExpressType(orderInfoReqs.getExpressType());
//围餐门店英文名称
if (orderInfoReqs.getOrderExtended() != null) { if (orderInfoReqs.getOrderExtended() != null) {
// 围餐门店英文名称
data.setShopNameEn(orderInfoReqs.getOrderExtended().getStoreNameEn()); data.setShopNameEn(orderInfoReqs.getOrderExtended().getStoreNameEn());
// 围餐
data.setSpellGroupCode(orderInfoReqs.getOrderExtended().getSpellGroupCode());
} }
if (orderInfoReqs.getAfterSalesOrderList() != null && orderInfoReqs.getAfterSalesOrderList().size() >= 1) { if (orderInfoReqs.getAfterSalesOrderList() != null && orderInfoReqs.getAfterSalesOrderList().size() >= 1) {
...@@ -1238,6 +1241,10 @@ public class OrderSdkAdapter { ...@@ -1238,6 +1241,10 @@ public class OrderSdkAdapter {
data.setOrderOperationHistoryList(getOrderOperationHistory(orderInfoReqs.getOrderOperationHistoryList())); data.setOrderOperationHistoryList(getOrderOperationHistory(orderInfoReqs.getOrderOperationHistoryList()));
data.setApportionDetails(getApportionDetails(orderInfoReqs)); data.setApportionDetails(getApportionDetails(orderInfoReqs));
data.setOrderSettlementDetailList(orderInfoReqs.getOrderSettlementDetailList()); data.setOrderSettlementDetailList(orderInfoReqs.getOrderSettlementDetailList());
if (Objects.nonNull(orderInfoReqs.getOrderSettlementDetailList())){
orderInfoReqs.getOrderSettlementDetailList().stream()
.filter(e -> Objects.equals(OrderSettlementType.SPELL_GROUP.getIndex(),e.getSettlementType())).findFirst().ifPresent(e->data.setSpellGroupActivityCode(e.getExternalObjectId()));
}
//费用信息 //费用信息
data.setOrderCostDetailList(orderInfoReqs.getOrderCostDetailList()); data.setOrderCostDetailList(orderInfoReqs.getOrderCostDetailList());
data.setExpressChannelName(orderInfoReqs.getExpressChannelName()); data.setExpressChannelName(orderInfoReqs.getExpressChannelName());
......
...@@ -414,6 +414,16 @@ public class QueryOrdersResponse { ...@@ -414,6 +414,16 @@ public class QueryOrdersResponse {
private String appId; private String appId;
/**
* 拼团团号
*/
private String spellGroupCode;
/**
* 拼团活动编号
*/
private String spellGroupActivityCode;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class AddDeliveryInfo { public static class AddDeliveryInfo {
......
...@@ -8,6 +8,7 @@ import cn.freemud.entities.dto.product.ProductInfo; ...@@ -8,6 +8,7 @@ import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto; import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest; import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkRefundRequest;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse; import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
...@@ -258,6 +259,10 @@ public class SpellGroupOrderAdapter { ...@@ -258,6 +259,10 @@ public class SpellGroupOrderAdapter {
createSpellGroupOrderDto.getProducts().size()); createSpellGroupOrderDto.getProducts().size());
} }
public GroupWorkRefundRequest convertToGroupWorkRefundRequest(String activityCode, String groupId, String orderId, String userId) {
return new GroupWorkRefundRequest(activityCode, groupId, orderId, userId);
}
/*------------------下方转换返回信息------------------------*/ /*------------------下方转换返回信息------------------------*/
/** /**
......
...@@ -286,6 +286,17 @@ public class QueryOrdersResponseDto { ...@@ -286,6 +286,17 @@ public class QueryOrdersResponseDto {
*/ */
private BigDecimal weight; private BigDecimal weight;
/**
* 拼团团号
*/
private String spellGroupCode;
/**
* 拼团活动编号
*/
private String spellGroupActivityCode;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class AddDeliveryInfo { public static class AddDeliveryInfo {
......
package cn.freemud.entities.dto.promotion;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 通知促销团员取消订单
*
* @author shichang.wang 2021/4/21
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class GroupWorkRefundRequest {
/**
* 活动号
*/
private String activityCode;
/**
* 团号
*/
private String groupId;
/**
* 订单
*/
private String orderId;
/**
* 用户id
*/
private String userId;
}
package cn.freemud.entities.dto.promotion;
import lombok.Data;
/**
* 通知促销团员取消订单
*
* @author shichang.wang 2021/4/21
*/
@Data
public class GroupWorkRefundResponse {
/**
* 提示
*/
private String msg;
/**
* 内容
*/
private Object result;
/**
* 成功-100
*/
private Integer statusCode;
/**
* 版本号
*/
private String ver;
}
...@@ -173,6 +173,9 @@ public enum ResponseResult { ...@@ -173,6 +173,9 @@ public enum ResponseResult {
STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"), STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"),
COUPON_INVALID("45070", "券已锁定,请先支付或取消待支付订单"), COUPON_INVALID("45070", "券已锁定,请先支付或取消待支付订单"),
/**
* 售后单
*/
ORDER_REFUND_EXPRESS_ERROR("45200", "售后单修改物流信息失败"), ORDER_REFUND_EXPRESS_ERROR("45200", "售后单修改物流信息失败"),
...@@ -250,6 +253,7 @@ public enum ResponseResult { ...@@ -250,6 +253,7 @@ public enum ResponseResult {
SPELL_GROUP_QUERY_GROUP_WORK_ERROR("80007", "查询拼团信息异常"), SPELL_GROUP_QUERY_GROUP_WORK_ERROR("80007", "查询拼团信息异常"),
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL("80008", "团状态非正常"), SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL("80008", "团状态非正常"),
SPELL_GROUP_QUERY_DELIVERYTEMPLATE_ERROR("80009", "查询配送费异常"), SPELL_GROUP_QUERY_DELIVERYTEMPLATE_ERROR("80009", "查询配送费异常"),
SPELL_GROUP_REFUND_ERROR("80015", "取消拼团失败"),
; ;
......
...@@ -7,9 +7,7 @@ import cn.freemud.entities.dto.ProductInfosDto; ...@@ -7,9 +7,7 @@ import cn.freemud.entities.dto.ProductInfosDto;
import cn.freemud.entities.dto.delivery.QueryDeliveryTemplateRequest; import cn.freemud.entities.dto.delivery.QueryDeliveryTemplateRequest;
import cn.freemud.entities.dto.delivery.QueryDeliveryTemplateResponse; import cn.freemud.entities.dto.delivery.QueryDeliveryTemplateResponse;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.*;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.service.thirdparty.DeliveryFeiginClient; import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.service.thirdparty.PromotionDiscountClient; import cn.freemud.service.thirdparty.PromotionDiscountClient;
...@@ -154,4 +152,20 @@ public class SpellGroupOrderDataManager { ...@@ -154,4 +152,20 @@ public class SpellGroupOrderDataManager {
return queryDeliveryTemplateResponse; return queryDeliveryTemplateResponse;
} }
/**
* 订单主动退款调促销接口
*
* @param groupWorkRefundRequest
* @return
*/
public GroupWorkRefundResponse groupWorkRefund(GroupWorkRefundRequest groupWorkRefundRequest) {
GroupWorkRefundResponse groupWorkRefundResponse = promotionDiscountClient.groupWorkRefund(groupWorkRefundRequest);
if (!ResponseResult.SUCCESS.getCode().equals(groupWorkRefundResponse.getStatusCode()) || groupWorkRefundResponse.getResult() == null) {
return null;
}
return groupWorkRefundResponse;
}
} }
...@@ -43,6 +43,8 @@ import cn.freemud.entities.dto.pay.CombPayResponse; ...@@ -43,6 +43,8 @@ import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.product.*; import cn.freemud.entities.dto.product.*;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest; import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse; import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.entities.dto.promotion.GroupWorkRefundRequest;
import cn.freemud.entities.dto.promotion.GroupWorkRefundResponse;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto; import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.shoppingCart.CollageOrderDto; import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
...@@ -315,6 +317,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -315,6 +317,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired @Autowired
private SpellGroupOrderDataManager spellGroupOrderDataManager; private SpellGroupOrderDataManager spellGroupOrderDataManager;
@Autowired
private SpellGroupOrderAdapter spellGroupOrderAdapter;
@Override @Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) { public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
String trackingNo = LogTreadLocal.getTrackingNo(); String trackingNo = LogTreadLocal.getTrackingNo();
...@@ -2309,14 +2314,24 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2309,14 +2314,24 @@ public class OrderServiceImpl implements Orderservice {
state = response.getData().getRefundStatus() == null ? PayRefundStatus.SUCCESS.getCode() : response.getData().getRefundStatus(); state = response.getData().getRefundStatus() == null ? PayRefundStatus.SUCCESS.getCode() : response.getData().getRefundStatus();
} }
} }
// 拼团订单主动退款触发通知促销
if (Objects.equals(com.freemud.sdk.api.assortment.order.enums.OrderSourceType.SAASMALL.getCode(), orderBean.getSource())
&& Objects.equals(OrderMarketType.GROUPB.getIndex(), orderBean.getMarketingType()) && StringUtils.isBlank(orderBean.getSpellGroupCode())) {
GroupWorkRefundRequest groupWorkRefundRequest = spellGroupOrderAdapter.convertToGroupWorkRefundRequest(orderBean.getSpellGroupActivityCode(),orderBean.getSpellGroupCode(),orderBean.getOid(),orderBean.getUserId());
GroupWorkRefundResponse refundResponse = spellGroupOrderDataManager.groupWorkRefund(groupWorkRefundRequest);
if (Objects.isNull(refundResponse) || !Objects.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, refundResponse.getStatusCode())) {
return ResponseUtil.error(ResponseResult.SPELL_GROUP_REFUND_ERROR);
}
}
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(),
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 (Objects.equals(PayRefundStatus.RUNNING.getCode(), state)) {
// 退款中 // 退款中
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent()); cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.RETURN_COMPLETE.getCreateEvent());
} else if (PayRefundStatus.SUCCESS.getCode().intValue() == state) { } else if (Objects.equals(PayRefundStatus.SUCCESS.getCode(), state)) {
//退款成功 //退款成功
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent()); cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
} }
...@@ -4337,6 +4352,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4337,6 +4352,7 @@ public class OrderServiceImpl implements Orderservice {
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee); cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest); BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
// todo 需要进行部分的处理
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) { if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed"); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
} }
......
...@@ -18,10 +18,7 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto; ...@@ -18,10 +18,7 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto; import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.ActivityQueryRequestDto; import cn.freemud.entities.dto.ActivityQueryRequestDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.*;
import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -62,5 +59,13 @@ public interface PromotionDiscountClient { ...@@ -62,5 +59,13 @@ public interface PromotionDiscountClient {
@PostMapping("/groupWork/query") @PostMapping("/groupWork/query")
GroupWorkQueryResponse groupWorkQuery(GroupWorkQueryRequest groupWorkQueryRequest); GroupWorkQueryResponse groupWorkQuery(GroupWorkQueryRequest groupWorkQueryRequest);
/**
* 订单主动退款调促销接口
* @param groupWorkRefundRequest
* @return
*/
@PostMapping("/groupWork/refund")
GroupWorkRefundResponse groupWorkRefund(GroupWorkRefundRequest groupWorkRefundRequest);
} }
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