Commit ad01669e by 姜海波

退单增加配送费选项

parents d6ff7394 7911db59
...@@ -63,4 +63,9 @@ public class CancelOrderRequest extends BaseConfig { ...@@ -63,4 +63,9 @@ public class CancelOrderRequest extends BaseConfig {
//操作人 //操作人
private String operator; private String operator;
/**
* 是否退配送费
*/
private boolean isRefundDeliveryAmount;
} }
...@@ -497,6 +497,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -497,6 +497,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask(); OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask();
request.setOrderTask(orderTask); request.setOrderTask(orderTask);
} }
request.setRefundDeliveryAmount(cancelOrderRequest.isRefundDeliveryAmount());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.cancelOrder(request, cancelOrderRequest.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.cancelOrder(request, cancelOrderRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response); return orderSdkAdapter.convent2BaseOrderResponse(response);
} }
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-orderdistributor-sdk</artifactId> <artifactId>assortment-orderdistributor-sdk</artifactId>
<version>2.6.RELEASE</version> <version>2.7.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
<dependency> <dependency>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-dynamic-queue</artifactId> <artifactId>assortment-dynamic-queue</artifactId>
<version>1.6.RELEASE</version> <version>1.7.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<dependency> <dependency>
<artifactId>membercenter-sdk</artifactId> <artifactId>membercenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>2.9.RELEASE</version> <version>4.1.5.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>stockcenter-sdk</artifactId> <artifactId>stockcenter-sdk</artifactId>
...@@ -333,11 +333,6 @@ ...@@ -333,11 +333,6 @@
<version>2.0.4</version> <version>2.0.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.51</version> <version>1.2.51</version>
......
...@@ -2857,4 +2857,51 @@ public class OrderAdapter { ...@@ -2857,4 +2857,51 @@ public class OrderAdapter {
return orderClientType; return orderClientType;
} }
public Integer getNewOrderClient(String name) {
String _name = OrderSourceType.SAAS.getCode();
Integer orderClientType;
switch (name) {
case "saas":
orderClientType = 2;
break;
case "alipay":
orderClientType=3;
break;
case "jdwm":
orderClientType = 10;
break;
case "mtwm":
orderClientType = 11;
break;
case "eleme":
orderClientType = 8;
break;
case "bdwm":
orderClientType = 9;
break;
case "ebwm":
orderClientType = 9;
break;
case "saas_member":
orderClientType = 13;
break;
case "saas_order":
orderClientType = 14;
break;
case "pos":
orderClientType = 15;
break;
case "meal":
orderClientType = 19;
break;
case "saasmall":
orderClientType = 23;
break;
default:
orderClientType = OrderClientType.SAAS.getIndex();
break;
}
return orderClientType;
}
} }
...@@ -10,10 +10,12 @@ import cn.freemud.entities.dto.delivery.CallbackUrlRequestDto; ...@@ -10,10 +10,12 @@ import cn.freemud.entities.dto.delivery.CallbackUrlRequestDto;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.BooleanUtils;
import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.MessageConst; import org.apache.rocketmq.common.message.MessageConst;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.messaging.Message; import org.springframework.messaging.Message;
import org.springframework.messaging.support.MessageBuilder; import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -32,26 +34,36 @@ public class ProduceMQService { ...@@ -32,26 +34,36 @@ public class ProduceMQService {
@Resource @Resource
private RocketMQTemplate deliveryRocketMqTemplate; private RocketMQTemplate deliveryRocketMqTemplate;
@Value("${rocketmq.delivery.enable:false}")
private Boolean rocketMQDeliveryEnable;
/** /**
* @Description 发现配送信息到rabbitMQ
* @param deliveryRequest * @param deliveryRequest
* @Description 发现配送信息到rabbitMQ
*/ */
public void sendOfDeliveryInfo(CallbackUrlRequestDto deliveryRequest) { public void sendOfDeliveryInfo(CallbackUrlRequestDto deliveryRequest) {
Header header = new Header(MQAction.UPDATE.getAction(), "delivery/callbackUrl", deliveryRequest.getOrderId(), "open-platform-order-delivery-queue"); Header header = new Header(MQAction.UPDATE.getAction(), "delivery/callbackUrl", deliveryRequest.getOrderId(), "open-platform-order-delivery-queue");
MQMessage<CallbackUrlRequestDto> mqMessage = new MQMessage<>(header, deliveryRequest); MQMessage<CallbackUrlRequestDto> mqMessage = new MQMessage<>(header, deliveryRequest);
mqService.convertAndSend(PushOrderConfig.EXCHANGE_NAME, PushOrderConfig.OPEN_PLATFORM_ORDER_DELIVERY_ROUTING_KEY, mqMessage); try {
mqService.convertAndSend(PushOrderConfig.EXCHANGE_NAME, PushOrderConfig.OPEN_PLATFORM_ORDER_DELIVERY_ROUTING_KEY, mqMessage);
} catch (Exception e) {
log.error("sendOfDeliveryInfo.error, message:{}, cause:{}", JSON.toJSONString(deliveryRequest), Throwables.getStackTraceAsString(e));
}
} }
/** /**
* @Description 发送配送信息到rocketMq:
* @param deliveryRequest * @param deliveryRequest
* @Description 发送配送信息到rocketMq:
*/ */
public void sendRocketMqOfDeliveryInfo(CallbackUrlRequestDto deliveryRequest) { public void sendRocketMqOfDeliveryInfo(CallbackUrlRequestDto deliveryRequest) {
if (BooleanUtils.isNotTrue(rocketMQDeliveryEnable)) {
return;
}
Header header = new Header(MQAction.UPDATE.getAction(), "delivery/callbackUrl", deliveryRequest.getOrderId(), RocketMQConst.ORDER_THIRD_PUSH_TOPIC); Header header = new Header(MQAction.UPDATE.getAction(), "delivery/callbackUrl", deliveryRequest.getOrderId(), RocketMQConst.ORDER_THIRD_PUSH_TOPIC);
MQMessage<CallbackUrlRequestDto> mqMessage = new MQMessage(header, deliveryRequest); MQMessage<CallbackUrlRequestDto> mqMessage = new MQMessage(header, deliveryRequest);
String destination = String.format("%s:%s", RocketMQConst.ORDER_THIRD_PUSH_TOPIC, RocketMQConst.OrderSubsidiaryTag.delivery); String destination = String.format("%s:%s", RocketMQConst.ORDER_THIRD_PUSH_TOPIC, RocketMQConst.OrderSubsidiaryTag.delivery);
Message message = MessageBuilder Message message = MessageBuilder
.withPayload(mqMessage) .withPayload(mqMessage)
.setHeader("partnerId", deliveryRequest.getPartnerId()) .setHeader("partnerId", deliveryRequest.getPartnerId())
......
...@@ -4,7 +4,7 @@ import com.freemud.application.sdk.api.config.StockCenterProperties; ...@@ -4,7 +4,7 @@ import com.freemud.application.sdk.api.config.StockCenterProperties;
import com.freemud.application.sdk.api.membercenter.config.MemberCenterProperties; import com.freemud.application.sdk.api.membercenter.config.MemberCenterProperties;
import com.freemud.application.sdk.api.membercenter.config.MemberExtendProperties; import com.freemud.application.sdk.api.membercenter.config.MemberExtendProperties;
import com.freemud.application.sdk.api.membercenter.config.MemberPropertyProperties; import com.freemud.application.sdk.api.membercenter.config.MemberPropertyProperties;
import com.freemud.application.sdk.api.membercenter.config.MermberScoreProperties; import com.freemud.application.sdk.api.membercenter.config.MemberScoreProperties;
import com.freemud.application.sdk.api.productcenter.config.InventoryCenterProperties; import com.freemud.application.sdk.api.productcenter.config.InventoryCenterProperties;
import com.freemud.application.sdk.api.productcenter.config.ProductCenterProperties; import com.freemud.application.sdk.api.productcenter.config.ProductCenterProperties;
import com.freemud.application.sdk.api.storecenter.config.StoreCenterProperties; import com.freemud.application.sdk.api.storecenter.config.StoreCenterProperties;
...@@ -40,7 +40,7 @@ public class PreReleaseBeanConfig { ...@@ -40,7 +40,7 @@ public class PreReleaseBeanConfig {
@Profile({"pre-release"}) @Profile({"pre-release"})
@Bean(name = {"member.score"}) @Bean(name = {"member.score"})
public RestTemplate scoreRestTemplateQa(@Qualifier("mermberScoreProperties") MermberScoreProperties properties) { public RestTemplate scoreRestTemplateQa(@Qualifier("mermberScoreProperties") MemberScoreProperties properties) {
return BaseRequestUtils.getRestTemplate(properties.getRetryTimes(), properties.getConnectTimeOut(), properties.getReadTimeOut()); return BaseRequestUtils.getRestTemplate(properties.getRetryTimes(), properties.getConnectTimeOut(), properties.getReadTimeOut());
} }
......
...@@ -3,6 +3,8 @@ package cn.freemud.entities.dto; ...@@ -3,6 +3,8 @@ package cn.freemud.entities.dto;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty; import org.hibernate.validator.constraints.NotEmpty;
import java.util.List;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
* *
...@@ -25,4 +27,6 @@ public class QueryValidShareActivityReq { ...@@ -25,4 +27,6 @@ public class QueryValidShareActivityReq {
private String storeId; private String storeId;
@NotEmpty(message = "appId不能为空") @NotEmpty(message = "appId不能为空")
private String appId; private String appId;
//组织ID
private List<String> orgIds;
} }
...@@ -18,7 +18,8 @@ public enum OrderRefundEnum { ...@@ -18,7 +18,8 @@ public enum OrderRefundEnum {
REFUND_DATA_RANGE("refundDateRange", "退款允许日期"), REFUND_DATA_RANGE("refundDateRange", "退款允许日期"),
TAKEORDER_REFUND("takeOrderRefund", "未接单是否支持退款"), TAKEORDER_REFUND("takeOrderRefund", "未接单是否支持退款"),
RECEIPTORDER_REFUND("receiptOrderRefund", "已接单是否支持退款"), RECEIPTORDER_REFUND("receiptOrderRefund", "已接单是否支持退款"),
COMPLETEMAKEORDER_REFUND("completeMakeOrderRefund", "制作完成是否支持退款"); COMPLETEMAKEORDER_REFUND("completeMakeOrderRefund", "制作完成是否支持退款"),
REFUND_DELIVERY_FEE_ENABLE("refundShippingFee","商家同意退款时是否退配送费");
private String keyValue; private String keyValue;
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderType
* @Package cn.freemud.enums
* @Description: 订单状态
* @author: liming.guo
* @date: 2018/5/21 14:43
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.enums;
public enum PayChannel {
SVC("10102", "svc卡支付");
private String code;
private String desc;
PayChannel(String code, String desc) {
this.code = code;
this.desc = desc;
}
public static PayChannel getByCode(String code) {
for (PayChannel payType : values()) {
if (payType.getCode().equals(code)) {
return payType;
}
}
return null;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package cn.freemud.service.delivery; package cn.freemud.service.delivery;
import cn.freemud.amp.service.ProduceMQService; import cn.freemud.amp.service.ProduceMQService;
import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.delivery.CallbackUrlRequestDto; import cn.freemud.entities.dto.delivery.CallbackUrlRequestDto;
import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto; import cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto;
...@@ -131,6 +128,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -131,6 +128,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
// 订单配送状态变化时发送到MQ // 订单配送状态变化时发送到MQ
if (DeliveryStatus.checkDeliveryStatueForPlatform(deliveryStatus)) { if (DeliveryStatus.checkDeliveryStatueForPlatform(deliveryStatus)) {
produceMQService.sendOfDeliveryInfo(request);
produceMQService.sendRocketMqOfDeliveryInfo(request); produceMQService.sendRocketMqOfDeliveryInfo(request);
} }
// else { // else {
......
...@@ -52,16 +52,14 @@ import cn.freemud.utils.*; ...@@ -52,16 +52,14 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter; import com.freemud.api.assortment.datamanager.entity.db.*;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxapp;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformWxappAuthorizer;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager; import com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager;
import com.freemud.api.assortment.datamanager.enums.IappIdType; import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappAuthorizerManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappAuthorizerManager;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformWxappManager;
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.api.assortment.datamanager.meal.MealCacheManager; import com.freemud.api.assortment.datamanager.meal.MealCacheManager;
import com.freemud.application.sdk.api.constant.ResponseConstant; import com.freemud.application.sdk.api.constant.ResponseConstant;
...@@ -117,6 +115,7 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -117,6 +115,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -127,6 +126,8 @@ import java.util.concurrent.TimeUnit; ...@@ -127,6 +126,8 @@ import java.util.concurrent.TimeUnit;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
@Service @Service
@Slf4j @Slf4j
public class OrderServiceImpl implements Orderservice { public class OrderServiceImpl implements Orderservice {
...@@ -218,6 +219,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -218,6 +219,8 @@ public class OrderServiceImpl implements Orderservice {
@Autowired @Autowired
private OrderAdapterService orderAdapterService; private OrderAdapterService orderAdapterService;
@Autowired
private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager;
@Override @Override
...@@ -734,7 +737,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -734,7 +737,14 @@ public class OrderServiceImpl implements Orderservice {
// 判断是否有裂变活动 订单扩展信息判断必须有wxappid // 判断是否有裂变活动 订单扩展信息判断必须有wxappid
// 查询门店下有没有 裂变活动 // 查询门店下有没有 裂变活动
Long orderTime = DateUtil.convert2Date(queryOrderResponseVo.getOrderCreateTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS).getTime(); Long orderTime = DateUtil.convert2Date(queryOrderResponseVo.getOrderCreateTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS).getTime();
String activityId = isShareActivity(queryOrderVo.getPartnerId(), queryOrderResponseVo.getShopId(), queryOrderResponseVo.getWxappid(), orderTime == null ? 0 : orderTime, queryOrderResponseVo.getOid(), userId, queryOrderVo.getSessionId()); StoreResponse.BizVO bizVO = storeMap.get(queryOrderResponseVo.getShopId());
String activityId = isShareActivity(queryOrderVo.getPartnerId(), queryOrderResponseVo.getShopId()
, queryOrderResponseVo.getWxappid()
, orderTime == null ? 0 : orderTime
, queryOrderResponseVo.getOid()
, userId
, queryOrderVo.getSessionId()
, bizVO.getParentCode());
// 取红包图片 // 取红包图片
queryOrderResponseVo.setRedpacketsPicture(getRedpacketsPicture(activityId)); queryOrderResponseVo.setRedpacketsPicture(getRedpacketsPicture(activityId));
queryOrderResponseVo.setActivityId(activityId); queryOrderResponseVo.setActivityId(activityId);
...@@ -857,6 +867,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -857,6 +867,7 @@ public class OrderServiceImpl implements Orderservice {
request.setPartnerId(partnerId); request.setPartnerId(partnerId);
request.setStoreCode(storeId); request.setStoreCode(storeId);
StoreResponse storeInfo = storeCenterService.getStoreInfo(request, LogTreadLocal.getTrackingNo()); StoreResponse storeInfo = storeCenterService.getStoreInfo(request, LogTreadLocal.getTrackingNo());
String organizationId = "";
if (storeInfo != null && storeInfo.getBizVO() != null) { if (storeInfo != null && storeInfo.getBizVO() != null) {
StoreResponse.BizVO storeResponseDto = storeInfo.getBizVO(); StoreResponse.BizVO storeResponseDto = storeInfo.getBizVO();
orderBean.setShopAddress(storeResponseDto.getAddress()); orderBean.setShopAddress(storeResponseDto.getAddress());
...@@ -867,6 +878,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -867,6 +878,7 @@ public class OrderServiceImpl implements Orderservice {
orderBean.setShopPhone(storeResponseDto.getPhone()); orderBean.setShopPhone(storeResponseDto.getPhone());
orderBean.setLatitude(Double.valueOf(storeResponseDto.getLatitude())); orderBean.setLatitude(Double.valueOf(storeResponseDto.getLatitude()));
orderBean.setLongitude(Double.valueOf(storeResponseDto.getLongitude())); orderBean.setLongitude(Double.valueOf(storeResponseDto.getLongitude()));
organizationId = storeResponseDto.getParentCode();
} }
//TODO 查询订单的排队人数 //TODO 查询订单的排队人数
orderBean.setQueueIndex(""); orderBean.setQueueIndex("");
...@@ -930,7 +942,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -930,7 +942,7 @@ public class OrderServiceImpl implements Orderservice {
OrderExtInfoDto orderExtInfoDto = gson.fromJson(extInfo, OrderExtInfoDto.class); OrderExtInfoDto orderExtInfoDto = gson.fromJson(extInfo, OrderExtInfoDto.class);
String wxappid = orderExtInfoDto.getAppid(); String wxappid = orderExtInfoDto.getAppid();
// 查询门店下有没有 裂变活动 // 查询门店下有没有 裂变活动
String activityId = isShareActivity(partnerId, storeId, wxappid, response.getData().getGmtCreate(), oid, userId, sessionId); String activityId = isShareActivity(partnerId, storeId, wxappid, response.getData().getGmtCreate(), oid, userId, sessionId,organizationId);
queryOrderResponseVo.setActivityId(activityId); queryOrderResponseVo.setActivityId(activityId);
// 取红包图片 // 取红包图片
queryOrderResponseVo.setRedpacketsPicture(getRedpacketsPicture(activityId)); queryOrderResponseVo.setRedpacketsPicture(getRedpacketsPicture(activityId));
...@@ -974,13 +986,16 @@ public class OrderServiceImpl implements Orderservice { ...@@ -974,13 +986,16 @@ public class OrderServiceImpl implements Orderservice {
* @param orderTime * @param orderTime
* @return * @return
*/ */
private String isShareActivity(String partnerId, String storeId, String wxappid, Long orderTime, String bizId, String userId, String sessionId) { private String isShareActivity(String partnerId, String storeId, String wxappid, Long orderTime, String bizId, String userId, String sessionId,String organizationId) {
QueryValidShareActivityReq activityReq = new QueryValidShareActivityReq(); QueryValidShareActivityReq activityReq = new QueryValidShareActivityReq();
activityReq.setAppId(wxappid); activityReq.setAppId(wxappid);
activityReq.setPartnerId(partnerId); activityReq.setPartnerId(partnerId);
activityReq.setStoreId(storeId); activityReq.setStoreId(storeId);
activityReq.setOrderId(bizId); activityReq.setOrderId(bizId);
if (StringUtils.isNotBlank(organizationId)) {
activityReq.setOrgIds(Arrays.asList(organizationId));
}
String activityId = Optional.ofNullable(promotionActivityClient.queryValidShareActivity(activityReq)).map(BaseResponse::getResult).map(Object::toString).orElse(""); String activityId = Optional.ofNullable(promotionActivityClient.queryValidShareActivity(activityReq)).map(BaseResponse::getResult).map(Object::toString).orElse("");
String nickName = Optional.ofNullable(customerInfoManager.getCustomerInfoByObject(sessionId)).map(AssortmentCustomerInfoVo::getNickName).orElse(""); String nickName = Optional.ofNullable(customerInfoManager.getCustomerInfoByObject(sessionId)).map(AssortmentCustomerInfoVo::getNickName).orElse("");
...@@ -1115,16 +1130,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1115,16 +1130,6 @@ public class OrderServiceImpl implements Orderservice {
// 删除订单 通知活动添加商品库存 // 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
} else { } else {
// com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest var1 = new com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest();
// OrderRefundRequestDto orderRefundRequestDto = orderAdapter.convent2OrderRefundRequestDto(orderRefundVo, orderBean.getOid());
// BeanUtil.convertBean(orderRefundRequestDto, var1);
// var1.setTrackingNo(LogTreadLocal.getTrackingNo());
// var1.setPartnerId(orderRefundVo.getPartnerId());
// var1.setStoreId(orderBean.getShopId());
// var1.setOrderStatus(orderBean.getStatus());
// var1.setOperator(orderBean.getUserName());
// BaseOrderResponse baseResponseDto = orderCenterSdkService.orderRefund(var1);
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
...@@ -1137,7 +1142,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1137,7 +1142,7 @@ public class OrderServiceImpl implements Orderservice {
if (OldOrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) { if (OldOrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN); cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN);
} }
// cancelOrderRequest.setCreateEvent(null);
cancelOrderRequest.setReason(orderRefundVo.getReason()); cancelOrderRequest.setReason(orderRefundVo.getReason());
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks()); cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setOperator(orderBean.getUserName()); cancelOrderRequest.setOperator(orderBean.getUserName());
......
...@@ -89,7 +89,7 @@ public class OrderServiceTest { ...@@ -89,7 +89,7 @@ public class OrderServiceTest {
JSONObject jsonObject = JSONObject.parseObject(string); JSONObject jsonObject = JSONObject.parseObject(string);
QueryOrderByIdResponseDto orderByIdResponseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class); QueryOrderByIdResponseDto orderByIdResponseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class);
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderByIdResponseDto.getData(); QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderByIdResponseDto.getData();
orderService.sendApplyRefundSubscriptionNotice(orderBean,request); // orderService.sendApplyRefundSubscriptionNotice(orderBean,request);
} }
......
package cn.freemud.management.entities.dto.response.pay;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: RefundConfig
* @Package cn.freemud.management.entities.dto.response.pay
* @Description:
* @author: shuhu.hou
* @date: 2020/5/7 17:18
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class RefundConfig {
/**
* 是否退配送费
*/
private boolean isRefundDeliveryFee;
/**
* 订单是否支持退款
*/
private boolean isCanRefund;
public RefundConfig(){
}
public RefundConfig(boolean isCanRefund, boolean isRefundDeliveryFee){
this.isCanRefund = isCanRefund;
this.isRefundDeliveryFee=isRefundDeliveryFee;
}
}
...@@ -18,7 +18,8 @@ public enum OrderRefundEnum { ...@@ -18,7 +18,8 @@ public enum OrderRefundEnum {
REFUND_DATA_RANGE("refundDateRange", "退款允许日期"), REFUND_DATA_RANGE("refundDateRange", "退款允许日期"),
TAKEORDER_REFUND("takeOrderRefund", "未接单是否支持退款"), TAKEORDER_REFUND("takeOrderRefund", "未接单是否支持退款"),
RECEIPTORDER_REFUND("receiptOrderRefund", "已接单是否支持退款"), RECEIPTORDER_REFUND("receiptOrderRefund", "已接单是否支持退款"),
COMPLETEMAKEORDER_REFUND("completeMakeOrderRefund", "制作完成是否支持退款"); COMPLETEMAKEORDER_REFUND("completeMakeOrderRefund", "制作完成是否支持退款"),
REFUND_DELIVERY_FEE_ENABLE("refundShippingFee","商家同意退款时是否退配送费");
private String keyValue; private String keyValue;
......
...@@ -160,7 +160,7 @@ public enum ResponseResult { ...@@ -160,7 +160,7 @@ public enum ResponseResult {
REJECT_ORDER_FAIL("45075", "拒单失败"), REJECT_ORDER_FAIL("45075", "拒单失败"),
AGREE_REFUND_ORDER_FAIL("45076", "同意退款失败"), AGREE_REFUND_ORDER_FAIL("45076", "同意退款失败"),
ORDER_REFUND_NOT_APPLY("45077","用户未申请退款"), ORDER_REFUND_NOT_APPLY("45077","用户未申请退款"),
ORDER_HAD_AFFIRM_CAN_NOT_REFUND("45078","订单已经完成,不能申请退款"), ORDER_HAD_AFFIRM_CAN_NOT_REFUND("45078","当前订单不允许退款,请前往B端后台设置"),
ORDER_REJECT_REFUND_REPETITION("45079","重复操作,订单已拒绝退款"), ORDER_REJECT_REFUND_REPETITION("45079","重复操作,订单已拒绝退款"),
ORDER_REJECT_REFUND_STATUS_NOT("45080","订单不是申请退款中,不能操作"), ORDER_REJECT_REFUND_STATUS_NOT("45080","订单不是申请退款中,不能操作"),
ORDER_REJECT_REFUND_STATUS_END("45081","订单未接单或者已取消,不能操作"), ORDER_REJECT_REFUND_STATUS_END("45081","订单未接单或者已取消,不能操作"),
......
...@@ -3,6 +3,7 @@ package cn.freemud.management.service.handle; ...@@ -3,6 +3,7 @@ package cn.freemud.management.service.handle;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.RefundConfig;
import cn.freemud.management.enums.OrderRefundEnum; import cn.freemud.management.enums.OrderRefundEnum;
import cn.freemud.management.enums.OrderSource; import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.enums.OrderStatus; import cn.freemud.management.enums.OrderStatus;
...@@ -13,8 +14,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa ...@@ -13,8 +14,6 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager; import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient; import com.freemud.application.sdk.api.ordercenter.enums.OperateClient;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType; import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
...@@ -45,7 +44,11 @@ public class OrderVerifyHandle { ...@@ -45,7 +44,11 @@ public class OrderVerifyHandle {
/** /**
* 允许退款 * 允许退款
*/ */
public static final String ALLOW_REFUND = "1"; private static final String ALLOW_REFUND = "1";
/**
* svc储值卡支付,可用于判断订单是否用储值卡支付
*/
private static final String PAY_CODE_10102 = "10102";
@Autowired @Autowired
private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager; private CacheOpenPlatformPartnerWxappConfigManager cacheOpenPlatformPartnerWxappConfigManager;
...@@ -215,16 +218,21 @@ public class OrderVerifyHandle { ...@@ -215,16 +218,21 @@ public class OrderVerifyHandle {
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) { || orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY); return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
} }
//订单是否支持退款
boolean isCanRefund = false; boolean isCanRefund = false;
//订单
boolean isRefundDeliveryFee=false;
//saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款 //saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
if (ObjectUtils.equals(orderBean.getSource(), OrderSource.SAAS.getSource())) { if (ObjectUtils.equals(orderBean.getSource(), OrderSource.SAAS.getSource())) {
isCanRefund = isCanRefund(orderBean); RefundConfig refundConfig = getRefundConfig(orderBean);
isCanRefund=refundConfig.isCanRefund();
isRefundDeliveryFee=refundConfig.isRefundDeliveryFee();
if (!isCanRefund) { if (!isCanRefund) {
return ResponseUtil.error(ResponseResult.ORDER_HAD_AFFIRM_CAN_NOT_REFUND); return ResponseUtil.error(ResponseResult.ORDER_HAD_AFFIRM_CAN_NOT_REFUND);
} }
} }
if (isCanRefund) { if (isCanRefund) {
orderBean.setAmount(getRefundAmount(orderBean).longValue()); orderBean.setAmount(getRefundAmount(orderBean,isRefundDeliveryFee).longValue());
} }
return ResponseUtil.success(); return ResponseUtil.success();
} }
...@@ -302,7 +310,7 @@ public class OrderVerifyHandle { ...@@ -302,7 +310,7 @@ public class OrderVerifyHandle {
* @param data * @param data
* @return true=可同意退款 * @return true=可同意退款
*/ */
private boolean isCanRefund(QueryOrdersResponse.DataBean.OrderBean data) { private RefundConfig getRefundConfig(QueryOrdersResponse.DataBean.OrderBean data) {
boolean isFinishRefund = false; boolean isFinishRefund = false;
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto extInfo = null; com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto extInfo = null;
JSONObject jsonObject1 = JSONObject.parseObject(data.getExtInfo()); JSONObject jsonObject1 = JSONObject.parseObject(data.getExtInfo());
...@@ -345,18 +353,26 @@ public class OrderVerifyHandle { ...@@ -345,18 +353,26 @@ public class OrderVerifyHandle {
break; break;
} }
return isFinishRefund; boolean isRefundDeliveryFee = false;
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
// 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig && ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = true;
}
return new RefundConfig(isFinishRefund,isRefundDeliveryFee);
} }
/** /**
* 获取已完成订单退款金额 * 获取已完成订单退款金额
*/ */
private BigDecimal getRefundAmount(QueryOrdersResponse.DataBean.OrderBean data) { private BigDecimal getRefundAmount(QueryOrdersResponse.DataBean.OrderBean data,boolean isRefundDeliveryFee) {
//是否配置已完成订单可退款 //是否配置已完成订单可退款
BigDecimal refundAmount = new BigDecimal(data.getAmount()); BigDecimal refundAmount = new BigDecimal(data.getAmount());
if (isRefundDeliveryFee || isPayBySVC(data)){
return refundAmount;
}
List<QueryOrdersResponse.DataBean.OrderBean.AccountBean> accountList = data.getAccountList(); List<QueryOrdersResponse.DataBean.OrderBean.AccountBean> accountList = data.getAccountList();
//外卖订单,已完成,不退配送费 if (CollectionUtils.isNotEmpty(accountList)) {
if (data.getStatus() == OldOrderStatus.COMPLETE.getCode() && data.getType() == OldOrderType.TAKE_OUT.getCode()) {
for (QueryOrdersResponse.DataBean.OrderBean.AccountBean orderCostResp : accountList) { for (QueryOrdersResponse.DataBean.OrderBean.AccountBean orderCostResp : accountList) {
if (orderCostResp.getType() == OldOrderAccountType.DELIVERY_AMOUNT.getCode()) { if (orderCostResp.getType() == OldOrderAccountType.DELIVERY_AMOUNT.getCode()) {
refundAmount = new BigDecimal(data.getAmount().intValue() - orderCostResp.getPrice()); refundAmount = new BigDecimal(data.getAmount().intValue() - orderCostResp.getPrice());
...@@ -365,4 +381,13 @@ public class OrderVerifyHandle { ...@@ -365,4 +381,13 @@ public class OrderVerifyHandle {
} }
return refundAmount; return refundAmount;
} }
/**
* 订单是否使用储值卡支付(储值卡支付的订单,不支持部分退款)
*
* @param order
* @return true-是,false-不是
*/
private boolean isPayBySVC(QueryOrdersResponse.DataBean.OrderBean order) {
return PAY_CODE_10102.equalsIgnoreCase(order.getPayChannel());
}
} }
...@@ -65,4 +65,9 @@ public class OrderCancelReq { ...@@ -65,4 +65,9 @@ public class OrderCancelReq {
//任务 //任务
private OrderTaskReq orderTask; private OrderTaskReq orderTask;
/**
* 是否退配送费
*/
private boolean isRefundDeliveryAmount;
} }
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