Commit eb9554d4 by ping.wu

买券下单支付成功调整

parents e58f065c 0f1eacff
...@@ -22,6 +22,8 @@ public class ProductBindingCouponType { ...@@ -22,6 +22,8 @@ public class ProductBindingCouponType {
*/ */
private String activityCode; private String activityCode;
private String activityName;
/** /**
* 数量 * 数量
*/ */
...@@ -30,6 +32,6 @@ public class ProductBindingCouponType { ...@@ -30,6 +32,6 @@ public class ProductBindingCouponType {
/** /**
* 排序 * 排序
*/ */
private int sequence; // private int sequence;
} }
...@@ -1060,6 +1060,11 @@ public class OrderAdapter { ...@@ -1060,6 +1060,11 @@ public class OrderAdapter {
if (OrderStatus.TAKE_ORDER.getCode().equals(ordersBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(ordersBean.getPayStatus())) { if (OrderStatus.TAKE_ORDER.getCode().equals(ordersBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(ordersBean.getPayStatus())) {
responseVo.setEnableRefund(true); responseVo.setEnableRefund(true);
} }
responseVo.setBizType(ordersBean.getBizType());
//6:卖券虚拟商品 暂不能申请退款
if(ordersBean.getBizType() == 6){
responseVo.setButtonRefund(false);
}
List<Integer> enableRefundCodes = Lists.newArrayList(Arrays.asList( List<Integer> enableRefundCodes = Lists.newArrayList(Arrays.asList(
OrderStatus.RECEIPT.getCode(), OrderStatus.COMPLETE_MAKE.getCode())); OrderStatus.RECEIPT.getCode(), OrderStatus.COMPLETE_MAKE.getCode()));
if (enableRefundCodes.contains(ordersBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(ordersBean.getPayStatus())) { if (enableRefundCodes.contains(ordersBean.getStatus()) && PayStatus.HAVE_PAID.getCode().equals(ordersBean.getPayStatus())) {
...@@ -1653,13 +1658,27 @@ public class OrderAdapter { ...@@ -1653,13 +1658,27 @@ public class OrderAdapter {
productVo.setSequence(productBean.getSequence()); productVo.setSequence(productBean.getSequence());
productVo.setQty(productBean.getNumber()); productVo.setQty(productBean.getNumber());
productVo.setSpecification(""); productVo.setSpecification("");
List<InventedParentActivityVo> inventedParentActivityVos = new ArrayList<>();
String attributeNames = ""; String attributeNames = "";
if (StringUtils.isNotBlank(productBean.getAddInfo()) && productBean.getAddInfo().contains("attributeNames")) { if (StringUtils.isNotBlank(productBean.getAddInfo())) {
OrderProductAddInfo orderProductAddInfo = gson.fromJson(productBean.getAddInfo(), OrderProductAddInfo.class); OrderProductAddInfo orderProductAddInfo = gson.fromJson(productBean.getAddInfo(), OrderProductAddInfo.class);
if(productBean.getAddInfo().contains("attributeNames")){
attributeNames = orderProductAddInfo.getAttributeNames(); attributeNames = orderProductAddInfo.getAttributeNames();
productVo.setAttributeNames(attributeNames); productVo.setAttributeNames(attributeNames);
productVo.setSpecification(attributeNames); productVo.setSpecification(attributeNames);
} }
if(CollectionUtils.isNotEmpty(orderProductAddInfo.getProductBindingCoupons())){
for (ProductBindingCouponType productBindingCouponType : orderProductAddInfo.getProductBindingCoupons()){
InventedParentActivityVo inventedParentActivityVo = new InventedParentActivityVo();
// inventedParentActivityVo.setActivityCode(productBindingCouponType.getActivityCode());
inventedParentActivityVo.setActivityName(productBindingCouponType.getActivityName());
inventedParentActivityVo.setNum(productBindingCouponType.getNum());
inventedParentActivityVos.add(inventedParentActivityVo);
}
productVo.setInventedParentActivitiesVo(inventedParentActivityVos);
}
}
productVo.setOriginalPrice(productBean.getPrice()); productVo.setOriginalPrice(productBean.getPrice());
productVo.setFinalPrice(productBean.getSalePrice()); productVo.setFinalPrice(productBean.getSalePrice());
productVo.setExtras(shoppingCartAdapter.getExtraName(productBean.getSpecificationName(), attributeNames)); productVo.setExtras(shoppingCartAdapter.getExtraName(productBean.getSpecificationName(), attributeNames));
......
package cn.freemud.entities.dto; package cn.freemud.entities.dto;
import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
@Builder @Builder
public class OrderProductAddInfo { public class OrderProductAddInfo {
...@@ -16,6 +19,11 @@ public class OrderProductAddInfo { ...@@ -16,6 +19,11 @@ public class OrderProductAddInfo {
*/ */
private ActivityProduct activityProduct; private ActivityProduct activityProduct;
/**
* 商品绑定的券活动(买券虚拟订单才有)
*/
private List<ProductBindingCouponType> productBindingCoupons;
@Data @Data
@Builder @Builder
public static class ActivityProduct { public static class ActivityProduct {
......
package cn.freemud.entities.vo;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: InventedParentActivityVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: ping1.wu
* @date: 2020/5/28 17:01
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class InventedParentActivityVo {
// private String activityCode;
private String activityName;
private int num;
}
...@@ -150,4 +150,6 @@ public class ProductVo { ...@@ -150,4 +150,6 @@ public class ProductVo {
*/ */
private List<ProductVo> setMealProducts; private List<ProductVo> setMealProducts;
private List<InventedParentActivityVo> InventedParentActivitiesVo;
} }
...@@ -342,6 +342,11 @@ public class QueryOrderResponseVo { ...@@ -342,6 +342,11 @@ public class QueryOrderResponseVo {
*/ */
private String receiveRegion; private String receiveRegion;
/**
* 订单业务类型 1:普通订单 2:虚拟订单 3:会员订单 4:积分商城订单 5:储值卡订单 6:卖券虚拟商品
*/
private Integer bizType;
@Data @Data
public static class OrderStatusFlow { public static class OrderStatusFlow {
/** /**
......
package cn.freemud.service.impl; package cn.freemud.service.impl;
import cn.freemud.adapter.LightApplicationConvertToAssortmentSdkAdapter;
import cn.freemud.adapter.OrderAdapter; import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
...@@ -13,6 +14,7 @@ import cn.freemud.enums.ResponseResult; ...@@ -13,6 +14,7 @@ import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.UserLoginChannelEnum; import cn.freemud.enums.UserLoginChannelEnum;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
...@@ -45,9 +47,12 @@ import com.freemud.application.sdk.api.storecenter.request.vo.GetOrgTreeListRequ ...@@ -45,9 +47,12 @@ import com.freemud.application.sdk.api.storecenter.request.vo.GetOrgTreeListRequ
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter; import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto; import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType; import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse; import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -82,6 +87,9 @@ public class SellCouponOrderServiceImpl { ...@@ -82,6 +87,9 @@ public class SellCouponOrderServiceImpl {
private MenuService menuService; private MenuService menuService;
@Autowired @Autowired
private OrderSdkService orderSdkService; private OrderSdkService orderSdkService;
//聚合订单服务
@Autowired
private OrderCenterSdkService orderCenterSdkService;
@Autowired @Autowired
private OrderServiceImpl orderservice; private OrderServiceImpl orderservice;
@Autowired @Autowired
...@@ -325,11 +333,16 @@ public class SellCouponOrderServiceImpl { ...@@ -325,11 +333,16 @@ public class SellCouponOrderServiceImpl {
OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto(); OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto();
List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>(); List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBean.getProductBindingCouponTypes()){ for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBean.getProductBindingCouponTypes()){
for (ActiveDetailVO activeDetailVO : activeDetailVOS){
if(productBindingCouponType.getActivityCode().equals(activeDetailVO.getActiveCode())){
ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType(); ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType();
productBindingCouponType2.setActivityCode(productBindingCouponType.getActivityCode()); productBindingCouponType2.setActivityCode(productBindingCouponType.getActivityCode());
productBindingCouponType2.setActivityName(activeDetailVO.getActiveName());
productBindingCouponType2.setNum(productBindingCouponType.getNum()); productBindingCouponType2.setNum(productBindingCouponType.getNum());
productBindingCouponType2.setSequence(productBindingCouponType.getSequence());
productBindingCoupons.add(productBindingCouponType2); productBindingCoupons.add(productBindingCouponType2);
break;
}
}
} }
orderProductAddInfoDto.setProductBindingCoupons(productBindingCoupons); orderProductAddInfoDto.setProductBindingCoupons(productBindingCoupons);
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(orderProductAddInfoDto)); orderItemCreateReq.setExtInfo(JSONObject.toJSONString(orderProductAddInfoDto));
...@@ -372,6 +385,26 @@ public class SellCouponOrderServiceImpl { ...@@ -372,6 +385,26 @@ public class SellCouponOrderServiceImpl {
*/ */
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) { public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode()); QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
ConfirmOrderRequest var1 = LightApplicationConvertToAssortmentSdkAdapter.confirmOrderDtoConvertToConfirmOrderRequest(confirmOrderDto, orderBeans.get(OrderBeanType.MERMBERORDER.getCode()));
var1.setPartnerId(orderBean.getCompanyId());
var1.setStoreId(orderBean.getShopId());
var1.setOrderType(orderBean.getType());
var1.setProductOrderCode(orderBean.getOid());
var1.setPayDate(DateUtil.convert2String(new Date(), "yyyy-MM-dd HH:mm:ss"));
var1.setPayTransId(message.getOut_trade_no());
var1.setOperator(orderBean.getUserName());
var1.setEndTransId(message.getEndTransId());
if(orderBean.getGmtExpect() != null && orderBean.getGmtExpect() != 0){
var1.setExpectTime(DateUtil.convert2String(new Date(orderBean.getGmtExpect()),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
}
try {
// 订单支付成功
PayAccessResponse payAccessResponse = orderCenterSdkService.payAccess(var1);
}catch (Exception e){
LogUtil.error(LogThreadLocal.getTrackingNo(),"sdkPayAccessError",JSONObject.toJSONString(var1),null,e);
}
//支付成功直接完成
OrderChangeStateReq request = new OrderChangeStateReq(); OrderChangeStateReq request = new OrderChangeStateReq();
request.setOrderCode(orderBean.getOid()); request.setOrderCode(orderBean.getOid());
request.setOrderState(NewOrderStatus.COMPLETE.getIndex()); request.setOrderState(NewOrderStatus.COMPLETE.getIndex());
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.4.9-SNAPSHOT</version> <version>1.4.12-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -28,3 +28,5 @@ ...@@ -28,3 +28,5 @@
| 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 | | 1.1.9-SNAPSHOT | 创建订单增加appid字段 | wuping | 2020-05-08 |
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 | | 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 | | 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.2.10.RELEASE | 增加售后单任务 | wuping | 2020-05-21 |
| 1.4.12-SNAPSHOT | 增加新接口:新增结算信息 | wuping | 2020-05-28 |
\ No newline at end of file
...@@ -176,4 +176,9 @@ public class InterfaceAddressConstant { ...@@ -176,4 +176,9 @@ public class InterfaceAddressConstant {
* 根据订单下游POS数据查询订单 * 根据订单下游POS数据查询订单
*/ */
public static final String GET_ORDER_INFO_DOWNSTREAM = "order/v2/queryOrderByDownstream"; public static final String GET_ORDER_INFO_DOWNSTREAM = "order/v2/queryOrderByDownstream";
/**
* 新增结算信息
*/
public static final String CREATE_SETTLEMENT="order/v2/createSettlement";
} }
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderSettlementReq
* @Package com.freemud.application.sdk.api.ordercenter.request
* @Description:
* @author: ping1.wu
* @date: 2020/5/28 20:13
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class OrderSettlementReq {
//商户号
private String partnerId;
//订单编码
private String orderCode;
//第三方订单号
private String thirdOrderCode;
private Integer orderClient;
//订单结算信息
private List<OrderSettlementCreateReq> orderSettlementDetailList;
}
...@@ -63,4 +63,13 @@ public class OrderSettlementCreateReq { ...@@ -63,4 +63,13 @@ public class OrderSettlementCreateReq {
//是否线上 false:不是 true:是 //是否线上 false:不是 true:是
private Boolean isOnline; private Boolean isOnline;
//外部子对象
private String externalObjectSubId;
//外部对象名称 如:活动名称
private String externalObjectName;
//是否忽略,不参与优惠计算
private Boolean ignoreInDiscountAmount;
} }
...@@ -741,4 +741,16 @@ public class OrderSdkService { ...@@ -741,4 +741,16 @@ public class OrderSdkService {
return responseDTO; return responseDTO;
} }
/**
* 新增结算信息,保存虚拟商品订单异步发券券信息
* @return
*/
public BaseResponse createSettlement(OrderSettlementReq request, String trackingNo) {
String url = InterfaceAddressConstant.CREATE_SETTLEMENT;
OrderBaseResp<PaySuccessResp> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, url,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp<PaySuccessResp>>() {
});
return responseHandle(responseDTO);
}
} }
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