Commit 46eb23a0 by xiaoer.li@freemud.com

Merge remote-tracking branch 'origin/qa' into qa

parents 639a92e3 28267cd3
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.4.4-SNAPSHOT</version>
<version>1.5.7-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>1.3.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -31,4 +31,6 @@
| 1.3.3.RELEASE | 第三方外卖单配送费类型与新用户立减类型重复区分 | wuping | 2020-04-21 |
| 1.3.4.RELEASE | 记录真实配送费 | 海波 | 2020-04-27 |
| 1.3.5.RELEASE | oms正向履单流程 | 侯书虎 | 2020-04-27 |
| 1.3.6.RELEASE | 蜜雪 | 丁凯 | 2020-04-27 |
\ No newline at end of file
| 1.3.6.RELEASE | 蜜雪 | 丁凯 | 2020-04-27 |
| 1.5.5-SNAPSHOT | 返回售后单创建时间 | wuping | 2020-04-27 |
| 1.5.6-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
\ No newline at end of file
......@@ -760,6 +760,7 @@ public class OrderSdkAdapter {
refundBean.setRid(afterSalesOrderResp.getAfterSalesCode());
//售后单状态 1:待处理 2:退货中 3:拒绝退款 4:已退货 5:完成 6:取消
refundBean.setStatus(getOldOrderRefundStatus(afterSalesOrderResp.getAfterSalesStatus()));
refundBean.setCreateTime(afterSalesOrderResp.getCreateTime());
refundBeans.add(refundBean);
}
return refundBeans;
......
......@@ -23,6 +23,8 @@ public class CancelOrderRequest extends BaseConfig {
private String partnerId;
private String storeId;
private AfterSalesType afterSalesType;
/**
* 订单ID
......
......@@ -536,6 +536,9 @@ public class QueryOrdersResponse {
//商家退单审核 备注
private String decisionReason;
//创建时间
private String createTime;
}
@NoArgsConstructor
......
......@@ -362,11 +362,33 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime()));
}
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask();
request.setOrderTask(orderTask);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.createAfterSalesOrder(request, orderRefundRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response);
}
/**
* 设置申请退款48小时后回调任务
*/
private OrderTaskReq setAfterSalesOrderTimeOutTask() {
OrderTaskReq orderTask = new OrderTaskReq();
orderTask.setTaskType(4);
orderTask.setTimeout(1);
//1000*60*60*24*2 毫秒(48小时)
long timeout = 172800000;
long timeMillis = System.currentTimeMillis();
Date processingDate = new Date(timeMillis + timeout - 60000);
Date taskTime = new Date(timeMillis + timeout);
orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
//处理时间,当前时间加48小时减1分钟
orderTask.setProcessingTime(DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
return orderTask;
// request.setOrderTask(orderTask);
}
/**
* 获取门店自动配置信息
*
* @param partnerId
......@@ -464,6 +486,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setCreateEvent(cancelOrderRequest.getCreateEvent());
request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo());
request.setOperator(cancelOrderRequest.getOperator());
//为空发起售后单
if(cancelOrderRequest.getCreateEvent() == null){
// 查询门店服务配置,退单模式为2为自动退款,判断自动退款时间,设置为0则不传入timeout,
StoreResponse.Configuration configuration = getStoreAutoConfiguration(cancelOrderRequest.getPartnerId(), cancelOrderRequest.getStoreId(), cancelOrderRequest.getTrackingNo());
if (configuration != null && ObjectUtils.equals("2", configuration.getAutoChargebackOrderType())
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime()));
}
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask();
request.setOrderTask(orderTask);
}
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.cancelOrder(request, cancelOrderRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response);
}
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.5.5-SNAPSHOT</version>
<version>1.5.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -93,7 +93,7 @@
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId>
<version>2.3.3-SNAPSHOT</version>
<version>2.6.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
......
......@@ -763,12 +763,23 @@ public class OrderAdapter {
fatherOrderInfo.setPayChannel("10102");
fatherOrderInfo.setPayChannelName("储值卡支付");
}
/**
long deliveryAmount = 0;
if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude());
}*/
long discountDeliveryAmount = 0;
if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(createOrderVo.getMenuType())) {
long deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
if(shoppingCartGoodsDto.getIsDiscountDelivery() && deliveryAmount > shoppingCartGoodsDto.getDiscountDeliveryAmount()){
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
}
}
Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0 : shoppingCartGoodsDto.getPackageAmount();
fatherOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount);
fatherOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount);
return fatherOrderInfo;
}
......@@ -988,6 +999,8 @@ public class OrderAdapter {
responseVo.setRefundStatusDesc(Optional.ofNullable(RefundStatus.getByCode(refundBean.getStatus()))
.map(RefundStatus::getDesc).orElse(""));
responseVo.setRefundReason(refundBean.getReason());
String refundCreateTime = DateUtil.convert2String(new Date(Long.parseLong(refundBean.getCreateTime())),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
responseVo.setRefundCreateTime(refundCreateTime);
}
}
//商品信息转换
......@@ -1426,7 +1439,7 @@ public class OrderAdapter {
}
//TODO 判断配送中的逻辑 如果是有第三方配送,要查询第三方配送信息,显示骑手信息 如果有骑手信息 显示 联系骑手
if (OrderStatus.DISTRIBUTION.getCode().equals(orderBean.getStatus())) {
if (orderBean.getDeliverStatus() == null) {
if (orderBean.getDeliverStatus() == null || DeliverStatus.OTHER.getCode().equals(orderBean.getDeliverStatus())) {
orderViewStatusDto.setOrderStatus(OrderStatus.DISTRIBUTION.getCode());
orderViewStatusDto.setOrderStatusDesc("配送中");
orderViewStatusDto.setOrderStatusDescText("请稍等片刻,美味即将到达哦~");
......@@ -2771,4 +2784,52 @@ public class OrderAdapter {
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO);
}
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;
}
}
......@@ -85,6 +85,15 @@ public class OrderController {
}
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@ApiAnnotation(logMessage = "appCreateOrder")
@PostMapping("/app/create")
public BaseResponse appCreateOrder(@Validated @LogParams @RequestBody AppCreateOrderVo createOrderVo) {
return orderAdapterService.appCreateOrder(createOrderVo);
}
/**
* 订单支付成功后通知
*/
@ApiAnnotation(logMessage = "paySuccessCallback")
......
......@@ -64,7 +64,7 @@ public class ShoppingCartGoodsDto {
*/
List<ActivityDiscountsDto> activityDiscountsDtos;
/**
* 库存
* 活动库存
*/
private List<SubtractStockVO> stocks;
......
package cn.freemud.entities.vo;
import cn.freemud.entities.dto.CreateOrderProductDto;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: AppCreateOrderVo
* @Package cn.freemud.entities
* @Description:
* @author: ping1.wu
* @date: 2020/4/23 16:39
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class AppCreateOrderVo {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
private String partnerId;
//@NotEmpty(message = "门店ID 不能为空") //本次需要根据业务做校验
private String shopId;
private String thirdShopId;
/**
* 订单类型 1 到店自取 2 外卖 枚举CreateOrderType
*/
//@NotNull(message = "下单类型不能为空")
private Integer orderType;
/**
* 到店类型 4(打包带走)和5(店内就餐)
*/
private Integer reachStoreType;
/**
* 取餐时间
*/
private String takeMealTime;
/**
* 订单备注
*/
private String orderRemark;
/**
* 收货地址ID
*/
private String receiveId;
/**
* 收货人性别 sexType 1 男 2 女 0 未知
*/
private Integer sex;
@Builder.Default
private String menuType = "saas";
private List<OrderProductVo> orderProducts;
/**
* 下单渠道 版本号
*/
private String version;
}
package cn.freemud.entities.vo;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Comparator;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderProductComboxVo
* @Package cn.freemud.entities
* @Description:
* @author: ping1.wu
* @date: 2020/4/23 16:16
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class OrderProductComboxVo {
/**
* 单规格spuId,多规格skuId
*/
private String goodsId;
private String skuId;
private String skuName;
/**
* 所有属性attributeId的拼接
*/
private String specProductId;
/**
* 购物车一行商品的原单机
*/
private Long originalPrice;
/**
* 购物车一行商品的现售单价
*/
private Long finalPrice;
/**
* 购物车一行商品的包装费
*/
private Long packPrice;
/**
* 购物车一行商品的原价
*/
private Long originalAmount;
/**
* 购物车一行商品的现价
*/
private Long amount;
/**
* 购物车一行商品的数量
*/
private Integer qty;
/**
* 购物车一行商品的名称
*/
private String name;
/**
* 商品的spuName
*/
private String spuName;
/**
* 购物车一行商品的副名称
*/
private String subName;
/**
* 商品图片URL
*/
private String pic;
/**
* 配料或属性
*/
private List<OrderProductExtraVo> extra;
/**
* 1:称重菜
*/
private boolean weightType;
/**
* 重量
*/
private Double weight;
/**
* 单位
*/
private String unit;
/**
* 第三方商品编号
*/
private String customerCode;
/**
* 商品组Id
*/
private Long productGroupId;
@Override
public int hashCode() {
StringBuilder sb = new StringBuilder();
sb.append(goodsId);
if (CollectionUtils.isNotEmpty(extra)) {
extra.stream().sorted(Comparator.comparing(OrderProductExtraVo::getAttributeId)).forEach(e -> sb.append(e.getAttributeId()));
}
return sb.toString().hashCode();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(goodsId);
if (CollectionUtils.isNotEmpty(extra)) {
extra.stream().sorted(Comparator.comparing(OrderProductExtraVo::getAttributeId)).forEach(e -> sb.append(e.getAttributeId()));
}
return sb.toString();
}
}
package cn.freemud.entities.vo;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderProductExtraVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping1.wu
* @date: 2020/4/23 16:15
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class OrderProductExtraVo {
/**
* 属性Id
*/
private String attributeId;
/**
* 属性名
*/
private String attributeName;
}
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderProductVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping1.wu
* @date: 2020/4/23 16:14
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class OrderProductVo {
@NotEmpty(message = "spuId不能为空")
private String spuId;
private String skuId;
/**
* 商品额外的属性
*/
private List<OrderProductExtraVo> extra;
private String appType;
/**
* 数量
*/
private Integer qty;
/**
* 套餐固定商品
*/
private List<OrderProductComboxVo> productComboList;
/**
* 套餐可选商品
*/
private List<OrderProductComboxVo> productGroupList;
}
......@@ -199,6 +199,16 @@ public class QueryOrderResponseVo {
private String rid;
/**
* 申请退款时间 yyyy-MM-dd HH:mm:ss
*/
private String refundCreateTime;
/**
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
*/
private String refundTips;
/**
* 订单备注
*/
private String orderRemark;
......
......@@ -14,6 +14,7 @@ package cn.freemud.enums;
*/
public enum DeliverStatus {
OTHER(-2,"未处理"),
WATINGORDER(0,"待接单"),
SYSTEMGETORDER(1,"系统接单"),
ALLOTRIDER(2,"分配骑手"),
......
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
/**
* app订单服务
......@@ -18,4 +20,9 @@ public interface AppOrderService {
* 创建预支付
*/
BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
BaseResponse createOrder(AppCreateOrderVo createOrderVo, AssortmentCustomerInfoVo customerInfo);
}
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
......@@ -29,4 +30,9 @@ public interface OrderAdapterService {
*/
BaseResponse createPrepay(CreatePrepayVo createPrepayVo);
/**
* APP下单,下单带商品信息,不经过购物车服务
*/
BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo);
}
package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
......@@ -110,6 +111,21 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@Override
public BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrder(createOrderVo,assortmentCustomerInfoVo);
}
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
}
/**
* 标准点餐参数校验
* @param createOrderVo
* @return
......
......@@ -46,7 +46,6 @@ import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService;
import cn.freemud.service.Orderservice;
import cn.freemud.service.process.WechatPush.WechatPushProcessor;
import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON;
......@@ -96,6 +95,7 @@ import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.adapter.ActivitySdkAdapter;
import com.freemud.sdk.api.assortment.order.entities.OrderExtInfoDTO;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*;
import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
......@@ -934,6 +934,17 @@ public class OrderServiceImpl implements Orderservice {
throw new ServiceException(ResponseResult.ORDER_QUERYORDER_ERROR);
}
QueryOrderResponseVo queryOrderResponseVo = queryOrderResponseVos.get(0);
//48小时自动退款描述
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig()!= null
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,自动同意");
}else {
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,拒绝退款");
}
}
if (IappIdType.WC_XCX.getCode().equals(userInfo.getIappId())) {
queryOrderResponseVo.getProducts().stream().forEach(each -> {
orderBean.getProductList().forEach(var -> {
......@@ -1071,8 +1082,6 @@ public class OrderServiceImpl implements Orderservice {
}
String memberId = userInfo.getMemberId();
String partnerId = userInfo.getPartnerId();
// String openid = map.get("openid").toString();
// String wxappId = map.get("wxAppid").toString();
if (StringUtils.isBlank(orderRefundVo.getOid())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
......@@ -1094,14 +1103,10 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "不能操作非本人的订单");
}
OrderBean orderBean = orderByIdResponseDto.getData();
//orderBean.setOid(orderId);
if (PayStatus.NOT_PAY.getCode().equals(orderByIdResponseDto.getData().getPayStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单未支付,无法退款");
}
// if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
// return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单已完成,无法退款");
// }
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单已取消,无法退款");
}
......@@ -1141,18 +1146,37 @@ public class OrderServiceImpl implements Orderservice {
return baseResponse;
}
// 删除订单 通知活动添加商品库存
//backOrdersNotifyActivity(orderBean, Arrays.asList(TransTypeEnum.ACTIVITY.getCode(), TransTypeEnum.COUPON.getCode(), TransTypeEnum.PRODUCT.getCode()));
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
} 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);
// 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.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setStoreId(orderBean.getShopId());
cancelOrderRequest.setOrderId(orderBean.getOid());
cancelOrderRequest.setOrderClient(orderAdapter.getNewOrderClient(orderBean.getSource()));
//传入的售后单类型为:2:售中用户取消 8:售后申请
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL);
if (OldOrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN);
}
// cancelOrderRequest.setCreateEvent(null);
cancelOrderRequest.setReason(orderRefundVo.getReason());
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), baseResponseDto.getErrmsg());
}
......@@ -1160,7 +1184,7 @@ public class OrderServiceImpl implements Orderservice {
sendPosMessage(partnerId, orderBean.getShopId());
}
//通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice(orderBean,var1);
sendApplyRefundSubscriptionNotice(orderBean,orderRefundVo);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, orderRefundVo);
}
......@@ -2110,7 +2134,7 @@ public class OrderServiceImpl implements Orderservice {
* 通知小助手发送申请退款公众号订阅消息
* @param orderBean
*/
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundRequest request) {
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundVo request) {
LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null);
String partnerId = orderBean.getCompanyId();
String shopId = orderBean.getShopId();
......@@ -2143,7 +2167,7 @@ public class OrderServiceImpl implements Orderservice {
MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue();
keyword5.setValue(orderBean.getPhone());
MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue();
remark.setValue(request.getReason()+","+request.getRemark());
remark.setValue(request.getReason()+","+request.getRemarks());
data.setFirst(first);
data.setKeyword1(keyword1);
data.setKeyword2(keyword2);
......
......@@ -22,6 +22,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CheckBeforeCreateOrderRequestVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.ApportionType;
import cn.freemud.service.impl.OrderServiceImpl;
......@@ -78,9 +79,9 @@ public class OrderServiceTest {
@Test
public void sendApplyRefundSubscriptionNoticeTest() {
OrderRefundRequest request = new OrderRefundRequest();
OrderRefundVo request = new OrderRefundVo();
request.setReason("下错单");
request.setRemark("不要了");
request.setRemarks("不要了");
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId("16420126386356464000002");
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.2.2.RELEASE</version>
<version>1.3.4-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -17,3 +17,5 @@
| 1.2.0.RELEASE | 新增订单商品汇总下载接口 | 侯书虎 | 2020-04-07 |
| 1.2.1.RELEASE | oms接单 | 侯书虎 | 2020-04-13 |
| 1.2.2.RELEASE | 新增真实配送费 | 海波 | 2020-04-27 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
\ No newline at end of file
......@@ -12,6 +12,7 @@
*/
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import lombok.Data;
@Data
......@@ -88,6 +89,9 @@ public class CreateAfterSalesOrder {
private Integer timeOut;
//任务
private OrderTaskReq orderTask;
// @ApiModelProperty(value = "售后图片信息")
// private List<AfterSalesImageReq> afterSalesImages = new ArrayList<>();
......
......@@ -12,6 +12,7 @@
*/
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import lombok.Data;
@Data
......@@ -59,4 +60,9 @@ public class OrderCancelReq {
//操作人
private String operator;
private Integer timeOut;
//任务
private OrderTaskReq orderTask;
}
......@@ -26,6 +26,7 @@ public class OrderTaskReq {
//任务类型:1预约单 (OrderType设置为2预约堂食,4预约外送,6预约自取 默认为预约单)
//2 超时回调
//3 拉单队列
//4 申请退款48小时未处理自动回调
private Integer taskType;
private Integer timeout;
......
......@@ -59,7 +59,7 @@
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<version>1.4.1-SNAPSHOT</version>
<version>2.6.1-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId>
</dependency>
......
......@@ -58,6 +58,7 @@ public enum ResponseResult {
STORE_BUSINESS_HOUR_ERROR("43010", "门店营业时间错误"),
STORE_NOT_ENABLE_COLLECT_GOODS("43011", "门店不支持到店"),
STORE_MALL_NOT_FOUND("43012", "商城门店不存在"),
STORE_DELIVERY_AMOUNT_ERROR("43013", "配送费错误"),
/**
* 购物车状态码
......
......@@ -50,7 +50,9 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmou
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.promotioncenter.response.ActivityResponse;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
......@@ -84,6 +86,10 @@ import static java.util.stream.Collectors.toList;
@Service
public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:false}")
private boolean storeDeliveryUseOld;
@Autowired
private ActivityAdapter activityAdapter;
@Autowired
......@@ -1440,6 +1446,34 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return amount;
}
private Long getNewDeliveryAmount(String receiveId, String partnerId, String storeId) {
String trackingNo = LogThreadLocal.getTrackingNo();
Long amount = 0L;
if (StringUtils.isBlank(receiveId)) {
return amount;
}
QueryReceiveAddressRequest queryReceive = new QueryReceiveAddressRequest(receiveId, partnerId);
//查询会员后货地址经纬度
com.freemud.application.sdk.api.base.BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(queryReceive, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
}
QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
queryDeliveryRequest.setPartnerId(partnerId);
queryDeliveryRequest.setStoreCode(storeId);
queryDeliveryRequest.setUserLatitude(queryReceiveAddressResponse.getData().getLatitude());
queryDeliveryRequest.setUserLongitude(queryReceiveAddressResponse.getData().getLongitude());
com.freemud.application.sdk.api.base.BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
if(queryDeliverDetailResponse.getData().getDeliveryAmount() == null) {
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
return queryDeliverDetailResponse.getData().getDeliveryAmount();
}
/**
* 获取配送范围内集合
*/
......@@ -1485,12 +1519,18 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
private Long calculateDeliveryAmount(String receiveId,String partnerId,String storeId,String wxappid){
Long deliveryAmount = 0l;
if(receiveId==null) {
}else{
Long deliveryAmount = 0L;
if(StringUtils.isBlank(receiveId)) {
return deliveryAmount;
}
log.info("获取配送配逻辑 tackingNo:{},storeDeliveryUseOld:{},receiveId:{},partnerId:{},storeId:{}", LogThreadLocal.getTrackingNo(), storeDeliveryUseOld, receiveId, partnerId, storeId);
if(storeDeliveryUseOld) {
deliveryAmount = Long.parseLong(getDeliveryAmount(receiveId,partnerId,storeId).toString());
} else {
deliveryAmount = getNewDeliveryAmount(receiveId, partnerId, storeId);
}
return deliveryAmount;
}
}
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