Commit b85cd577 by zhiheng.zhang

Merge branch 'feature/20210414-华莱士需求-张志恒' into feature/20210420-华莱士公用分支-张志恒

# Conflicts:
#	ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtInfoDto.java
parents 2ced64e9 a4f7dc76
package cn.freemud.entities.dto.delivery;
import lombok.Data;
/**
* @author zhiheng.zhang
* @title: QueryFreightRefundSupportedResponse
* @projectName order-group
* @description: TODO
* @date 2021/4/20上午11:04
*/
@Data
public class QueryFreightRefundSupportedResponse {
private Integer code;
private String msg;
private Boolean data;
}
package cn.freemud.entities.dto.delivery;
import lombok.Data;
@Data
public class QueryFreightRefundSupportedVo {
/**
* 商户号
*/
private String partnerId;
/**
* 区域编号
*/
private String province;
}
......@@ -444,7 +444,7 @@ public class CreateOrderVo {
private int buyType = 0;
/**
* 使用户省份
* 使用户省份code 100010 这是微信选择地址传过来的,用户查询配送费用的, 并不是北京市这种给是
*/
private String province;
}
......@@ -57,12 +57,8 @@ import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.ThirdPartyLog;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq;
import com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.POSOrderOperationBaseReq;
......@@ -264,6 +260,7 @@ public class MallOrderServiceImpl implements MallOrderService {
orderExtInfoDto.setAppid(userLoginInfoDto.getWxAppId());
orderExtInfoDto.setSessionId(sessionId);
orderExtInfoDto.setVersion(version);
orderExtInfoDto.setProvince(createOrderVo.getProvince());
return orderExtInfoDto;
}
......@@ -375,6 +372,10 @@ public class MallOrderServiceImpl implements MallOrderService {
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(PayChannelType.WECHAT.getEbcode());
if (orderPayResponse.getPayOrder() != null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) {
orderPayResponse.setPayMode(PayChannelType.ALIPAY.getEbcode());
}
return orderPayResponse;
} catch (Exception e) {
LogUtil.error("getPreOrderPay_error", JSONObject.toJSONString(orderBean), JSONObject.toJSONString(paymentRequest));
......@@ -402,6 +403,11 @@ public class MallOrderServiceImpl implements MallOrderService {
JSONObject.toJSONString(orderExtInfo));
orderEditRequest.setOrderId(orderBean.getOid());
orderEditRequest.setTrackingNo(trackingNo);
if (orderPayResponse.getPayMode() != null) {
orderEditRequest.setPayChannel(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getEbcode());
orderEditRequest.setPayChannelName(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getName());
orderEditRequest.setPayChannelType(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getIndex());
}
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderEdit(orderEditRequest);
if (!ObjectUtils.equals(ResponseCodeConstant.RESPONSE_SUCCESS, baseOrderResponse.getErrcode())) {
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
......@@ -1026,9 +1032,9 @@ public class MallOrderServiceImpl implements MallOrderService {
request.setOrderState(NewOrderStatus.COMPLETE.getIndex());
request.setOperator(baseQueryOrderRequest.getOperator());
request.setRemark("已完成");
com.freemud.application.sdk.api.ordercenter.response.BaseResponse orderCenterResponse = orderSdkService.updateOrderState(request, baseQueryOrderRequest.getTrackingNo());
result.setCode(orderCenterResponse.getCode());
result.setMessage(orderCenterResponse.getMessage());
orderSdkService.updateOrderState(request, baseQueryOrderRequest.getTrackingNo());
orderSdkService.completeBookingTask(request, baseQueryOrderRequest.getTrackingNo());
return ResponseUtil.success();
}catch (Exception e){
result.setCode(ResponseResult.ORDER_RECEIVE_ERR.getCode());
result.setMessage(ResponseResult.ORDER_RECEIVE_ERR.getMessage());
......
......@@ -2217,13 +2217,31 @@ public class OrderServiceImpl implements Orderservice {
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
boolean isRefundDeliveryFee = true;
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
LogUtil.info("orderRefund of oid:{}, {}, {}", orderBean.getOid(), orderBean.getStatus(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
// 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig
&& Arrays.asList(OrderStatus.DISTRIBUTION.getCode(), OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus())
&& !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = false;
//商城查询配送费
if (com.freemud.sdk.api.assortment.order.enums.OrderSourceType.SAASMALL.getCode().equalsIgnoreCase(orderBean.getSource()) && StringUtils.isNotEmpty(orderBean.getExtInfo())){
JSONObject extInfoJsonObject = JSONObject.parseObject(orderBean.getExtInfo());
OrderExtInfoDto orderExtInfoDto = extInfoJsonObject.toJavaObject(OrderExtInfoDto.class);
if(null != orderExtInfoDto && null != orderExtInfoDto.getProvince()){
String province = orderExtInfoDto.getProvince();
QueryFreightRefundSupportedVo queryFreightRefundSupportedVo = new QueryFreightRefundSupportedVo();
queryFreightRefundSupportedVo.setPartnerId(orderBean.getCompanyId());
queryFreightRefundSupportedVo.setProvince(province);
QueryFreightRefundSupportedResponse queryFreightRefundSupportedResponse = deliveryFeiginClient.isFreightRefundSupported(queryFreightRefundSupportedVo);
LogUtil.info("queryFreightRefundSupportedResponse of oid:{}, {}, {}", orderBean.getOid(), orderBean.getStatus(), (null != queryFreightRefundSupportedResponse ? ToStringBuilder.reflectionToString(queryFreightRefundSupportedResponse) : null));
if(null != queryFreightRefundSupportedResponse && RESPONSE_SUCCESS_CODE == queryFreightRefundSupportedResponse.getCode()){
Boolean freightRefundSupported = queryFreightRefundSupportedResponse.getData();
isRefundDeliveryFee = freightRefundSupported;
}
}
}else {
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
LogUtil.info("orderRefund of oid:{}, {}, {}", orderBean.getOid(), orderBean.getStatus(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
// 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig
&& Arrays.asList(OrderStatus.DISTRIBUTION.getCode(), OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus())
&& !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = false;
}
}
// 未接单
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
......
......@@ -33,4 +33,9 @@ public interface DeliveryFeiginClient {
@PostMapping("/delivery/queryDeliveryTemplate")
QueryDeliveryTemplateResponse queryDeliveryTemplate(@RequestBody QueryDeliveryTemplateRequest queryDeliveryTemplateRequest);
@PostMapping("/delivery/isFreightRefundSupported")
QueryFreightRefundSupportedResponse isFreightRefundSupported(@RequestBody QueryFreightRefundSupportedVo queryDeliveryTemplateVo);
}
......@@ -249,5 +249,9 @@ public class InterfaceAddressConstant {
* 查询当前门店24小时内的订单
*/
public static final String QUERY_LINEUP_ORDER = "order/v2/queryLineUpOrder";
/**
* 手动完成进行中的流程
*/
public static final String COMPLETE_BOOKING_TASK = "/task/v2/completeBookingTask";
}
......@@ -197,12 +197,12 @@ public class OrderExtInfoDto {
private String svcCardCode;
/**
* 操作类型
* 自动确认收货时间
*/
private String autoReceiveTime;
/**
* 城市编号
* 使用户省份code 100010 这是微信选择地址传过来的,用户查询配送费用的, 并不是北京市这种给是
*/
private String province;
......
......@@ -962,4 +962,14 @@ public class OrderSdkService {
return responseHandle(responseDTO);
}
/**
* 手动完成进行中的流程
*/
public BaseResponse completeBookingTask(OrderChangeStateReq request, String trackingNo) {
OrderBaseResp responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, InterfaceAddressConstant.COMPLETE_BOOKING_TASK,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {
});
return responseHandle(responseDTO);
}
}
......@@ -3,7 +3,8 @@ package cn.freemud.enums;
public enum ActivityChannelEnum {
// pickup-到店取餐 deliver-外卖
pickup("pickup", "到店取餐"),
delivery("delivery", "外卖");
delivery("delivery", "外卖"),
saasmall("saasmall", "外卖");
private String code;
......
......@@ -3,7 +3,8 @@ package cn.freemud.enums;
public enum CouponRedeemChannel {
PICKUP("saas","pickup"),
DELIVERY("saasdelivery","delivery");
DELIVERY("saasdelivery","delivery"),
SAASMALL("saasmall","saasmall");
String type;
String channel;
CouponRedeemChannel(String type,String channel) {
......
......@@ -15,7 +15,8 @@ package cn.freemud.enums;
public enum CreateOrderType {
TAKE_OUT(2, "外卖"),
COLLECT_GOODS(1, "到店");
COLLECT_GOODS(1, "到店"),
SAASMALL(3, "商城");
private Integer code;
private String desc;
......
......@@ -515,7 +515,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
UserLoginInfoDto userLoginInfoDto = convert2UserLoginInfoDto(assortmentCustomerInfoVo);
String userId = userLoginInfoDto.getMemberId();
String partnerId = shoppingCartInfoRequestVo.getPartnerId();
String appId = shoppingCartInfoRequestVo.getAppId();
String appId = StringUtils.isEmpty(shoppingCartInfoRequestVo.getAppId())?userLoginInfoDto.getWxAppid():shoppingCartInfoRequestVo.getAppId();
String storeId = shoppingCartInfoRequestVo.getShopId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode();
......
......@@ -102,9 +102,9 @@ public class CalculationSharingCartService {
* 积分抵扣
*/
scoreSharingService.scoreResponse(discountResult, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo);
if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType) && null != shoppingCartInfoRequestVo && OrderChannelType.SAASMALL.getCode().equalsIgnoreCase(shoppingCartInfoRequestVo.getChannelType())) {
if (BusinessTypeEnum.SAAS_MALL.getCode().equals(menuType) && null != shoppingCartInfoRequestVo && OrderChannelType.SAASMALL.getCode().equalsIgnoreCase(shoppingCartInfoRequestVo.getChannelType())) {
deliverySharingService.mallDeliveryResponse(shoppingCartGoodsResponseVo, deliveryAmount,discountResult);
}else{
}else if(BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)){
deliverySharingService.deliveryResponse(discountResult, activityQueryDto, shoppingCartGoodsResponseVo, deliveryAmount);
}
......
......@@ -136,9 +136,10 @@ public class CalculationSharingEquallyService {
scoreSharingService.scoreResponse(discountResult, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo);
scoreSharingService.equally(shoppingCartGoodsResponseVo, shoppingCartGoodsDto);
calculationCommonService.getNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsDto);
if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType) && null != shoppingCartInfoRequestVo && null !=shoppingCartInfoRequestVo && OrderChannelType.SAASMALL.getCode().equalsIgnoreCase(shoppingCartInfoRequestVo.getChannelType())) {
if (BusinessTypeEnum.SAAS_MALL.getCode().equals(menuType) && null != shoppingCartInfoRequestVo && OrderChannelType.SAASMALL.getCode().equalsIgnoreCase(shoppingCartInfoRequestVo.getChannelType())) {
deliverySharingService.mallDeliveryResponse(shoppingCartGoodsResponseVo, deliveryAmount,discountResult);
}else{
}else if(BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)){
deliverySharingService.deliveryResponse(discountResult, activityQueryDto, shoppingCartGoodsResponseVo, deliveryAmount);
}
......
......@@ -13,7 +13,9 @@ public class PropertyConvertUtil {
return ActivityChannelEnum.delivery;
} else if (Objects.equals(CreateOrderType.COLLECT_GOODS.getCode(), orderType)) {
return ActivityChannelEnum.pickup;
} else {
} else if (Objects.equals(CreateOrderType.SAASMALL.getCode(), orderType)) {
return ActivityChannelEnum.saasmall;
}else {
return ActivityChannelEnum.pickup;
}
}
......
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