Commit cb9339f1 by xiaoer.li@freemud.com

Merge branch 'feature/2.1.0_核销优惠券增加参数' into develop

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
parents d9ff7fbf 952c4dfd
...@@ -89,7 +89,6 @@ import java.util.stream.Collectors; ...@@ -89,7 +89,6 @@ import java.util.stream.Collectors;
import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO; import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO;
import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS; import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS;
import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR; import static com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR;
@Import(ManagerOrderBeanConfig.class) @Import(ManagerOrderBeanConfig.class)
@Service @Service
public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...@@ -229,45 +228,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -229,45 +228,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
} }
// 下单成锁定劵,冻结失败提示下单失败并冲正库存积分等,判断支付渠道,积分和svc卡直接核销,无需锁定10102 = svc卡支付 || 支付金额小于等于0 // 下单成锁定劵,冻结失败提示下单失败并冲正库存积分等,判断支付渠道,积分和svc卡直接核销,无需锁定10102 = svc卡支付 || 支付金额小于等于0
// 混合支付 //todo:统一流程 下单锁券再核销
OrderBean.OrderPayItem svc = null; CouponLockRequest couponLockRequest = orderSdkAdapter.convert2CouponLockRequest(orderBean, accounts);
if (CollectionUtils.isNotEmpty(orderBean.getOrderPayItem()) && orderBean.getOrderPayItem().size()==1) { if (couponLockRequest != null) {
svc = orderBean.getOrderPayItem().stream() BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.couponLock(couponLockRequest, "");
.filter(e ->e.getPayChannelType()!=null && e.getPayChannelType().equals(PayChannelType.SVC.getIndex().intValue())) if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponLockResponseBaseResponse.getCode())) {
.findFirst() CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null);
.orElse(null); orderCancel(cancelOrderRequest);
} //失败异步冲正库存,取消订单
//svc 或是混合svc支付直接核销 backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
if((!StringUtils.isEmpty(orderBean.getPayChannel()) && orderBean.getPayChannel().equalsIgnoreCase("10102")) || orderBean.getAmount() <=0 || (svc!=null) ){ return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage());
// 核销优惠券,核销失败提示下单失败并冲正库存积分等
CouponRequest couponVerificationRequest = orderSdkAdapter.convert2CouponVerificationRequest(orderBean, accounts);
if (couponVerificationRequest!=null){
// 核销券新增参数:组织机构
couponVerificationRequest.setChannel_codes(this.getOrgIds(orderBean.getCompanyId(), orderBean.getShopId()));
BaseResponse<CouponRedeemResponse> couponRedeemResponseBaseResponse = offlineCouponSdkService.couponRedeem(couponVerificationRequest, "");
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponRedeemResponseBaseResponse.getCode())) {
//TODO 失败取消订单,异步冲正库存
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, "核销券码失败", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(couponRedeemResponseBaseResponse.getCode(), "核销券码失败");
}
}
}else{
CouponLockRequest couponLockRequest = orderSdkAdapter.convert2CouponLockRequest(orderBean, accounts);
if (couponLockRequest != null) {
BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.couponLock(couponLockRequest, "");
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponLockResponseBaseResponse.getCode())) {
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null);
orderCancel(cancelOrderRequest);
//失败异步冲正库存,取消订单
backOrdersNotifyActivity(orderBean, mqMessageRequest.getBackOrdersNotifyActivityQueue(), mqMessageRequest.getBackOrdersNotifyActivityExchange());
return BaseOrderResponse.getErrorBaseOrderResponse(couponLockResponseBaseResponse.getCode(), couponLockResponseBaseResponse.getMessage());
}
} }
} }
return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, ""); return BaseOrderResponse.getErrorBaseOrderResponse(RESPONSE_SUCCESS_STR, "");
} }
......
...@@ -149,6 +149,7 @@ public class CouponAdapter { ...@@ -149,6 +149,7 @@ public class CouponAdapter {
couponCodeVerificationDto.setStation_id("-1"); couponCodeVerificationDto.setStation_id("-1");
couponCodeVerificationDto.setOperator_id("-1"); couponCodeVerificationDto.setOperator_id("-1");
couponCodeVerificationDto.setStore_id(storeId); couponCodeVerificationDto.setStore_id(storeId);
couponCodeVerificationDto.setMemberId(userId);
// 订单号 替换成唯一序号 // 订单号 替换成唯一序号
couponCodeVerificationDto.setTrans_id(orderId); couponCodeVerificationDto.setTrans_id(orderId);
couponCodeVerificationDto.setBusiness_date(DateUtil.convert2Str(new Date(), DateUtil.FORMAT_yyyyMMdd)); couponCodeVerificationDto.setBusiness_date(DateUtil.convert2Str(new Date(), DateUtil.FORMAT_yyyyMMdd));
......
...@@ -945,6 +945,11 @@ public class OrderAdapter { ...@@ -945,6 +945,11 @@ public class OrderAdapter {
if (QueryOrderStatus.ORDER_CANCEL.getCode().equals(queryOrderDto.getQueryOrderStatus())) { if (QueryOrderStatus.ORDER_CANCEL.getCode().equals(queryOrderDto.getQueryOrderStatus())) {
queryOrdersDto.setStatus(new Integer[]{OrderStatus.CALCEL.getCode()}); queryOrdersDto.setStatus(new Integer[]{OrderStatus.CALCEL.getCode()});
} }
if (QueryOrderStatus.ORDER_CANCEL_MIXUE.getCode().equals(queryOrderDto.getQueryOrderStatus())) {
queryOrdersDto.setStatus(new Integer[]{OrderStatus.CALCEL.getCode()});
queryOrdersDto.setPayStatus(new Integer[]{PayStatus.NOT_PAY.getCode()});
}
} }
// 兼容历史版本,如果传参是4 查询拆程4和5 // 兼容历史版本,如果传参是4 查询拆程4和5
......
...@@ -210,6 +210,15 @@ public class OrderController { ...@@ -210,6 +210,15 @@ public class OrderController {
} }
/** /**
* 取消支付订单
*/
@ApiAnnotation(logMessage = "cancelPayOrder")
@PostMapping("/cancelPayOrder")
public BaseResponse cancelPayOrder(@Validated @LogParams @RequestBody DeleteOrderVo deleteOrderVo) {
return orderservice.cancelPayOrder(deleteOrderVo);
}
/**
* 取消支付删除订单 * 取消支付删除订单
*/ */
@ApiAnnotation(logMessage = "deleteOrder") @ApiAnnotation(logMessage = "deleteOrder")
......
...@@ -21,6 +21,7 @@ public class CouponCodeVerificationDto extends CouponCodeBaseDto { ...@@ -21,6 +21,7 @@ public class CouponCodeVerificationDto extends CouponCodeBaseDto {
private String trans_id; private String trans_id;
private String business_date; private String business_date;
private String channel; private String channel;
private String memberId;
private List<CouponCodeVerificationTransDto> transactions; private List<CouponCodeVerificationTransDto> transactions;
......
...@@ -31,7 +31,7 @@ public class QueryOrderVo { ...@@ -31,7 +31,7 @@ public class QueryOrderVo {
@ApiModelProperty(value = "订单编号") @ApiModelProperty(value = "订单编号")
private String oid; private String oid;
/** /**
* 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付 ,6 已取消 * 订单状态 enum queryOrderStatus 全部订单 1 待取餐 2 已完成 3 全部 4.退款,5 待支付 ,6 已取消 7未支付取消
*/ */
private Integer queryOrderStatus; private Integer queryOrderStatus;
/** /**
......
...@@ -20,7 +20,10 @@ public enum QueryOrderStatus { ...@@ -20,7 +20,10 @@ public enum QueryOrderStatus {
ALL_BILL(3, "全部"), ALL_BILL(3, "全部"),
REFUND_BILL(4, "退款"), REFUND_BILL(4, "退款"),
NO_PAY(5, "待支付"), NO_PAY(5, "待支付"),
ORDER_CANCEL(6, "已取消"); ORDER_CANCEL(6, "已取消"),
//密雪
ORDER_CANCEL_MIXUE(7, "未支付已取消");
private Integer code; private Integer code;
......
...@@ -62,6 +62,8 @@ public interface Orderservice { ...@@ -62,6 +62,8 @@ public interface Orderservice {
*/ */
BaseResponse deleteOrder(DeleteOrderVo deleteOrderVo); BaseResponse deleteOrder(DeleteOrderVo deleteOrderVo);
BaseResponse cancelPayOrder(DeleteOrderVo deleteOrderVo);
/** /**
* 支付取消删除订单 * 支付取消删除订单
*/ */
......
...@@ -1650,6 +1650,49 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1650,6 +1650,49 @@ public class OrderServiceImpl implements Orderservice {
} }
@Override @Override
public BaseResponse cancelPayOrder(DeleteOrderVo deleteOrderVo) {
if (StringUtils.isBlank(deleteOrderVo.getOid())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
}
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(deleteOrderVo.getOid());
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
String string = JSONObject.toJSONString(queryOrderByIdResponse);
JSONObject jsonObject = JSONObject.parseObject(string);
QueryOrderByIdResponseDto responseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class);
if (!RESPONSE_SUCCESS_CODE.equals(responseDto.getErrcode()) || responseDto.getData() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
}
OrderBean orderBean = responseDto.getData();
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许取消");
}
if (!OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许取消");
}
//
CancelOrderRequest var1 = new CancelOrderRequest();
var1.setOrderId(deleteOrderVo.getOid());
var1.setPartnerId(deleteOrderVo.getPartnerId());
var1.setAfterSalesType(AfterSalesType.SYSTEM_CANCEL);
var1.setReason(null);
var1.setTrackingNo(LogTreadLocal.getTrackingNo());
var1.setRefundSerialNo(null);
var1.setReqRemark("未支付取消");
var1.setOperator("admin");
//若为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
var1.setCreateEvent(4);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(var1);
if (!RESPONSE_SUCCESS_CODE.equals(baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER_CANCEL_ERROR.getCode(),baseOrderResponse.getErrmsg());
}
// TODO: 2019/9/10 删除订单通知
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
return ResponseUtil.success();
}
@Override
public BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo) { public BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo) {
if (StringUtils.isBlank(deleteOrderVo.getOid())) { if (StringUtils.isBlank(deleteOrderVo.getOid())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空"); return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
...@@ -1676,7 +1719,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1676,7 +1719,7 @@ public class OrderServiceImpl implements Orderservice {
DeleteOrderRequest var1 = new DeleteOrderRequest(); DeleteOrderRequest var1 = new DeleteOrderRequest();
var1.setOrderId(deleteOrderDto.getOrderId()); var1.setOrderId(deleteOrderDto.getOrderId());
var1.setTrackingNo(LogTreadLocal.getTrackingNo()); var1.setTrackingNo(LogTreadLocal.getTrackingNo());
var1.setOperator("未支付删除"); var1.setOperator("未支付取消");
BaseOrderResponse baseOrderResponse = orderCenterSdkService.deleteOrder(var1); BaseOrderResponse baseOrderResponse = orderCenterSdkService.deleteOrder(var1);
if (!RESPONSE_SUCCESS_CODE.equals(baseOrderResponse.getErrcode())) { if (!RESPONSE_SUCCESS_CODE.equals(baseOrderResponse.getErrcode())) {
...@@ -2478,6 +2521,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2478,6 +2521,7 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* - 老的svc卡或是0元订单下单成功直接核销 这里不处理 * - 老的svc卡或是0元订单下单成功直接核销 这里不处理
* - 混合支付纯svc支付 需要直接内部核销 其他支付方式需依靠外部回调 * - 混合支付纯svc支付 需要直接内部核销 其他支付方式需依靠外部回调
* -
*/ */
PaysuccessNoticeMessage message = new PaysuccessNoticeMessage(); PaysuccessNoticeMessage message = new PaysuccessNoticeMessage();
message.setResult_code(100); message.setResult_code(100);
...@@ -2487,10 +2531,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2487,10 +2531,12 @@ public class OrderServiceImpl implements Orderservice {
message.setOpenid(createPrepayRequestDto.getOpenId()); message.setOpenid(createPrepayRequestDto.getOpenId());
message.setPlatform_coupon(0); message.setPlatform_coupon(0);
message.setMerchant_coupon(0); message.setMerchant_coupon(0);
message.setSource(PaySuccessSource.INSIDE.getSource()); message.setSource(PaySuccessSource.OUTSIDE.getSource());
/*
if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())) { if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())) {
message.setSource(PaySuccessSource.OUTSIDE.getSource()); message.setSource(PaySuccessSource.OUTSIDE.getSource());
} }
*/
orderAdapterService.paySuccessCallback(message); orderAdapterService.paySuccessCallback(message);
return ResponseUtil.success(createOrderResponse); return ResponseUtil.success(createOrderResponse);
} }
......
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