Commit e2e120b2 by ping.wu

Merge branches 'develop' and 'feature/20220524_新商城_wuping' of…

Merge branches 'develop' and 'feature/20220524_新商城_wuping' of http://gitlab.freemud.com/order-group-application/order-group into develop

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
parents c9e6fdbf ef352fce
...@@ -19,7 +19,7 @@ public class OrderPack { ...@@ -19,7 +19,7 @@ public class OrderPack {
/** /**
* 订单商品明细ID * 订单商品明细ID
*/ */
private String orderItemId; private Long orderItemId;
/** /**
* 商品编号 * 商品编号
...@@ -29,12 +29,6 @@ public class OrderPack { ...@@ -29,12 +29,6 @@ public class OrderPack {
/** /**
* 商品序号 * 商品序号
*/ */
private String productSeq; private Integer productSeq;
/**
*
*
*/
} }
...@@ -43,6 +43,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderCollectReq; ...@@ -43,6 +43,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderCollectReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
...@@ -65,10 +66,8 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -65,10 +66,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Date; import java.util.stream.Collectors;
import java.util.List;
import java.util.Objects;
/** /**
...@@ -320,8 +319,6 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -320,8 +319,6 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
@Override @Override
public BaseResponse mallCallbackUrl(MallCallbackRequestDto request) { public BaseResponse mallCallbackUrl(MallCallbackRequestDto request) {
// return ResponseUtil.success();
QueryByCodeResponse responseDto = orderSdkService.getOrderInfo(null, request.getTid(), null, null, null); QueryByCodeResponse responseDto = orderSdkService.getOrderInfo(null, request.getTid(), null, null, null);
if (responseDto == null || !Objects.equals(SUCCESS_RESPONSE_CODE.toString(), responseDto.getCode())|| responseDto.getResult().getOrderCode() == null) { if (responseDto == null || !Objects.equals(SUCCESS_RESPONSE_CODE.toString(), responseDto.getCode())|| responseDto.getResult().getOrderCode() == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
...@@ -346,21 +343,29 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -346,21 +343,29 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
editLogisticsReq.setOperator(""); editLogisticsReq.setOperator("");
List<LogisticsList> logisticsList = new ArrayList<>(); List<LogisticsList> logisticsList = new ArrayList<>();
LogisticsList logistics = new LogisticsList(); LogisticsList logistics = new LogisticsList();
logistics.setExpressNo(""); logistics.setExpressNo(request.getLogisticsNo());
logistics.setLogisticsCompanyName(""); logistics.setLogisticsCompanyName(request.getLogisticsName());
logistics.setLogisticsCompanyCode(""); logistics.setLogisticsCompanyCode("");
logistics.setState(1); logistics.setState(1);
logisticsList.add(logistics); if (CollectionUtils.isNotEmpty(request.getGoodsList())){
Map<Long, OrderItemResp> maps = orderInfoReqs.getOrderItemList().stream().collect(Collectors.toMap(OrderItemResp::getId, orderItemResp -> orderItemResp, (key1, key2) -> key2));
List<OrderPack> orderPackList = new ArrayList<>(); List<OrderPack> orderPackList = new ArrayList<>();
for(MallCallbackRequestDto.LogisticsDetail logisticsDetail: request.getGoodsList()){
OrderPack orderPack = new OrderPack(); OrderPack orderPack = new OrderPack();
orderPack.setOrderItemId(Long.valueOf(logisticsDetail.getOid()));
orderPack.setProductId(logisticsDetail.getSpuId());
OrderItemResp orderItemResp = maps.get(Long.valueOf(logisticsDetail.getOid()));
orderPack.setProductSeq(orderItemResp == null ? 0 : orderItemResp.getProductSeq());
orderPackList.add(orderPack); orderPackList.add(orderPack);
}
logistics.setOrderPackList(orderPackList); logistics.setOrderPackList(orderPackList);
}
logisticsList.add(logistics); logisticsList.add(logistics);
editLogisticsReq.setLogisticsList(logisticsList); editLogisticsReq.setLogisticsList(logisticsList);
orderServiceClient.editLogistics(editLogisticsReq); BaseResponse editLogistics = orderServiceClient.editLogistics(editLogisticsReq);
if (editLogistics == null || !Objects.equals(SUCCESS_RESPONSE_CODE.toString(), editLogistics.getCode())) {
return ResponseUtil.error(ResponseResult.SYSTEM_BUSINESS_ERROR);
}
return ResponseUtil.success(); return ResponseUtil.success();
} }
......
package cn.freemud.management.service.adapter; package cn.freemud.management.service.adapter;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.impl.MallOrderMangerServiceImpl; import cn.freemud.management.service.impl.*;
import cn.freemud.management.service.impl.McCafeMangerServiceImpl;
import cn.freemud.management.service.impl.SaasOrderMangerServiceImpl;
import cn.freemud.management.service.impl.WaimaiOrderMangerServiceImpl;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -54,6 +51,11 @@ public class OrderBeanFactory { ...@@ -54,6 +51,11 @@ public class OrderBeanFactory {
return applicationContext.getBean(MallOrderMangerServiceImpl.class); return applicationContext.getBean(MallOrderMangerServiceImpl.class);
} }
//商城不能根据渠道,根据业务类型
if(Objects.equals(BizTypeEnum.FM_MALL.getBizType(),orderBean.getBizType())){
return applicationContext.getBean(NewMallOrderMangerServiceImpl.class);
}
return applicationContext.getBean(SaasOrderMangerServiceImpl.class); return applicationContext.getBean(SaasOrderMangerServiceImpl.class);
} }
} }
...@@ -173,6 +173,8 @@ public class OrderManagerAdapter { ...@@ -173,6 +173,8 @@ public class OrderManagerAdapter {
BaseResponse verifyResponse; BaseResponse verifyResponse;
if(BizTypeEnum.MALL.getBizType()==orderBean.getBizType()){ if(BizTypeEnum.MALL.getBizType()==orderBean.getBizType()){
verifyResponse = orderVerifyHandle.mallOrderAgreeRefund(orderBean, request); verifyResponse = orderVerifyHandle.mallOrderAgreeRefund(orderBean, request);
}else if(BizTypeEnum.FM_MALL.getBizType()==orderBean.getBizType()){//新版saas商城同意退款校验
verifyResponse = orderVerifyHandle.fmMallOrderAgreeRefund(orderBean, request);
}else{ }else{
verifyResponse = orderVerifyHandle.orderAgreeRefund(orderBean, request); verifyResponse = orderVerifyHandle.orderAgreeRefund(orderBean, request);
} }
......
...@@ -685,4 +685,39 @@ public class OrderVerifyHandle { ...@@ -685,4 +685,39 @@ public class OrderVerifyHandle {
return false; return false;
} }
} }
/**
* 新版saas商城同意退款校验
*
* @param orderBean
* @param request
* @return
*/
public BaseResponse fmMallOrderAgreeRefund(OrderBeanV1 orderBean, OrderManagerRequest request) {
//已取消的订单不能操作
if (ObjectUtils.equals(OrderStatusV1.CANCEL.getV2Code(), orderBean.getStatusV2())) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
}
//判断订单是否有申请退款
if (orderBean.getHasRefund() == null || !orderBean.getHasRefund()) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
}
// //订单是否支持退款
// boolean isCanRefund = false;
// //订单
// boolean isRefundDeliveryFee=false;
// //saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
// if (ObjectUtils.equals(orderBean.getBizType(), BizTypeEnum.MALL.getBizType())) {
// 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();
}
} }
\ No newline at end of file
package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*;
import cn.freemud.management.util.ResponseUtil;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.constant.ResponseConstant;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum;
import com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum;
import com.freemud.application.sdk.api.ordercenter.request.AfterOrderExtInfoDto;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: rrr
* @Package cn.freemud.management.service.impl
* @Description: 新版商城订单履单操作
* @author:
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public class NewMallOrderMangerServiceImpl implements OrderManagerService {
@Autowired
private MallOrderHandle mallOrderHandle;
@Autowired
private PaymentHandle paymentHandle;
@Autowired
private StockHandle stockHandle;
@Autowired
private ActivityHandle activityHandle;
/**
* 同意退款
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderAgreeRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
Byte refundMode = RefundModeEnum.UN_REFUND_GOODS.getIndex();
if(null != orderBean.getAfterSalesOrderResp() && StringUtils.isNotEmpty(orderBean.getAfterSalesOrderResp().getExtInfo())){
AfterOrderExtInfoDto afterOrderExtInfoDto = JSONObject.parseObject(orderBean.getAfterSalesOrderResp().getExtInfo(),AfterOrderExtInfoDto.class);
if(null !=afterOrderExtInfoDto) {
refundMode = afterOrderExtInfoDto.getRefundMode();
}
}
if (Objects.equals(RefundModeEnum.REFUND_ALL.getIndex(), refundMode) && Objects.nonNull(orderBean.getAfterSalesOrderResp()) && Objects.equals(AfterSalesStatus.PENDING.getIndex(), orderBean.getAfterSalesOrderResp().getAfterSalesStatus())) {
// 修改售后单状态为退货中
mallOrderHandle.mallOrderAgreeApply(request, orderBean);
} else {
//支付退款
PayRefundResponse refundResponse = new PayRefundResponse();
try {
refundResponse = paymentHandle.refund(request, orderBean);
} catch (OrderServiceException orderEx) {
return ResponseUtil.error(orderEx.getResult());
}
//订单同意退款
mallOrderHandle.refundAgree(request, refundResponse, orderBean);
//冲正库存
stockHandle.revert(request, orderBean);
}
return ResponseUtil.success();
}
/**
* 拒绝退款
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderRejectRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
//拒绝退款
mallOrderHandle.mallRefundReject(request,orderBean);
return ResponseUtil.success();
}
/**
* 拒单
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderReject(OrderManagerRequest request, OrderBeanV1 orderBean) {
return ResponseUtil.error("501","暂无");
}
}
...@@ -22,6 +22,8 @@ public enum BizTypeEnum { ...@@ -22,6 +22,8 @@ public enum BizTypeEnum {
ADVANCE_ORDER(7, "预定业务"), ADVANCE_ORDER(7, "预定业务"),
MALL(8, "微商城业务"), MALL(8, "微商城业务"),
FM_MALL(12, "商城业务"),
// CASHIER(10, "收款业务"), // CASHIER(10, "收款业务"),
LGS_SELF_HELP_PARKING(97, "农工商停车自助积分订单"), LGS_SELF_HELP_PARKING(97, "农工商停车自助积分订单"),
LGS_MANUAL_RECORD_PARKING(98, "农工商停车手工录单"), LGS_MANUAL_RECORD_PARKING(98, "农工商停车手工录单"),
......
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