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 {
/**
* 订单商品明细ID
*/
private String orderItemId;
private Long orderItemId;
/**
* 商品编号
......@@ -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;
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.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.service.OrderSdkService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
......@@ -65,10 +66,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -320,8 +319,6 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
@Override
public BaseResponse mallCallbackUrl(MallCallbackRequestDto request) {
// return ResponseUtil.success();
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) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
......@@ -346,21 +343,29 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
editLogisticsReq.setOperator("");
List<LogisticsList> logisticsList = new ArrayList<>();
LogisticsList logistics = new LogisticsList();
logistics.setExpressNo("");
logistics.setLogisticsCompanyName("");
logistics.setExpressNo(request.getLogisticsNo());
logistics.setLogisticsCompanyName(request.getLogisticsName());
logistics.setLogisticsCompanyCode("");
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<>();
for(MallCallbackRequestDto.LogisticsDetail logisticsDetail: request.getGoodsList()){
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);
}
logistics.setOrderPackList(orderPackList);
}
logisticsList.add(logistics);
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();
}
......
package cn.freemud.management.service.adapter;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.impl.MallOrderMangerServiceImpl;
import cn.freemud.management.service.impl.McCafeMangerServiceImpl;
import cn.freemud.management.service.impl.SaasOrderMangerServiceImpl;
import cn.freemud.management.service.impl.WaimaiOrderMangerServiceImpl;
import cn.freemud.management.service.impl.*;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -54,6 +51,11 @@ public class OrderBeanFactory {
return applicationContext.getBean(MallOrderMangerServiceImpl.class);
}
//商城不能根据渠道,根据业务类型
if(Objects.equals(BizTypeEnum.FM_MALL.getBizType(),orderBean.getBizType())){
return applicationContext.getBean(NewMallOrderMangerServiceImpl.class);
}
return applicationContext.getBean(SaasOrderMangerServiceImpl.class);
}
}
......@@ -173,6 +173,8 @@ public class OrderManagerAdapter {
BaseResponse verifyResponse;
if(BizTypeEnum.MALL.getBizType()==orderBean.getBizType()){
verifyResponse = orderVerifyHandle.mallOrderAgreeRefund(orderBean, request);
}else if(BizTypeEnum.FM_MALL.getBizType()==orderBean.getBizType()){//新版saas商城同意退款校验
verifyResponse = orderVerifyHandle.fmMallOrderAgreeRefund(orderBean, request);
}else{
verifyResponse = orderVerifyHandle.orderAgreeRefund(orderBean, request);
}
......
......@@ -685,4 +685,39 @@ public class OrderVerifyHandle {
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 {
ADVANCE_ORDER(7, "预定业务"),
MALL(8, "微商城业务"),
FM_MALL(12, "商城业务"),
// CASHIER(10, "收款业务"),
LGS_SELF_HELP_PARKING(97, "农工商停车自助积分订单"),
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