Commit 40897b4b by 王世昌

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

parent 1866e737
......@@ -1102,9 +1102,12 @@ public class OrderSdkAdapter {
//【订单开放平台】订单详情查询接口增加配送类型字段
data.setExpressType(orderInfoReqs.getExpressType());
//围餐门店英文名称
if (orderInfoReqs.getOrderExtended() != null) {
// 围餐门店英文名称
data.setShopNameEn(orderInfoReqs.getOrderExtended().getStoreNameEn());
// 围餐
data.setSpellGroupCode(orderInfoReqs.getOrderExtended().getSpellGroupCode());
}
if (orderInfoReqs.getAfterSalesOrderList() != null && orderInfoReqs.getAfterSalesOrderList().size() >= 1) {
......@@ -1238,6 +1241,10 @@ public class OrderSdkAdapter {
data.setOrderOperationHistoryList(getOrderOperationHistory(orderInfoReqs.getOrderOperationHistoryList()));
data.setApportionDetails(getApportionDetails(orderInfoReqs));
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.setExpressChannelName(orderInfoReqs.getExpressChannelName());
......
......@@ -414,6 +414,16 @@ public class QueryOrdersResponse {
private String appId;
/**
* 拼团团号
*/
private String spellGroupCode;
/**
* 拼团活动编号
*/
private String spellGroupActivityCode;
@NoArgsConstructor
@Data
public static class AddDeliveryInfo {
......
......@@ -8,6 +8,7 @@ import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
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.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
......@@ -258,6 +259,10 @@ public class SpellGroupOrderAdapter {
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 {
*/
private BigDecimal weight;
/**
* 拼团团号
*/
private String spellGroupCode;
/**
* 拼团活动编号
*/
private String spellGroupActivityCode;
@NoArgsConstructor
@Data
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 {
STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"),
COUPON_INVALID("45070", "券已锁定,请先支付或取消待支付订单"),
/**
* 售后单
*/
ORDER_REFUND_EXPRESS_ERROR("45200", "售后单修改物流信息失败"),
......@@ -250,6 +253,7 @@ public enum ResponseResult {
SPELL_GROUP_QUERY_GROUP_WORK_ERROR("80007", "查询拼团信息异常"),
SPELL_GROUP_QUERY_GROUP_STATUS_IS_NOT_NORMAL("80008", "团状态非正常"),
SPELL_GROUP_QUERY_DELIVERYTEMPLATE_ERROR("80009", "查询配送费异常"),
SPELL_GROUP_REFUND_ERROR("80015", "取消拼团失败"),
;
......
......@@ -7,9 +7,7 @@ import cn.freemud.entities.dto.ProductInfosDto;
import cn.freemud.entities.dto.delivery.QueryDeliveryTemplateRequest;
import cn.freemud.entities.dto.delivery.QueryDeliveryTemplateResponse;
import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.entities.dto.promotion.*;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.service.thirdparty.PromotionDiscountClient;
......@@ -154,4 +152,20 @@ public class SpellGroupOrderDataManager {
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;
import cn.freemud.entities.dto.product.*;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
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.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
......@@ -315,6 +317,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private SpellGroupOrderDataManager spellGroupOrderDataManager;
@Autowired
private SpellGroupOrderAdapter spellGroupOrderAdapter;
@Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
String trackingNo = LogTreadLocal.getTrackingNo();
......@@ -2309,14 +2314,24 @@ public class OrderServiceImpl implements Orderservice {
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(),
partnerId, afterSalesType, orderRefundVo.getReason(), LogTreadLocal.getTrackingNo(), refundId.toString());
cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
if (PayRefundStatus.RUNNING.getCode().intValue() == state) {
if (Objects.equals(PayRefundStatus.RUNNING.getCode(), state)) {
// 退款中
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());
}
......@@ -4337,6 +4352,7 @@ public class OrderServiceImpl implements Orderservice {
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
// todo 需要进行部分的处理
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
}
......
......@@ -18,10 +18,7 @@ import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.ActivityQueryRequestDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountResponseDto;
import cn.freemud.entities.dto.promotion.GroupWorkQueryRequest;
import cn.freemud.entities.dto.promotion.GroupWorkQueryResponse;
import cn.freemud.entities.dto.promotion.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
......@@ -62,5 +59,13 @@ public interface PromotionDiscountClient {
@PostMapping("/groupWork/query")
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