Commit 0c76b274 by 张洪旺

Merge branch 'coco20201223-bug-zhw' of…

Merge branch 'coco20201223-bug-zhw' of gitlab.freemud.com:order-group-application/order-group into qa

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/controller/OrderController.java
#	order-application-service/src/main/java/cn/freemud/service/Orderservice.java
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents 6ce8131e 0315337e
...@@ -406,4 +406,5 @@ public class OrderController { ...@@ -406,4 +406,5 @@ public class OrderController {
return orderservice.timeOutOrderRefund(timeOutOrderVo); return orderservice.timeOutOrderRefund(timeOutOrderVo);
} }
} }
...@@ -146,4 +146,5 @@ public interface Orderservice { ...@@ -146,4 +146,5 @@ public interface Orderservice {
BaseResponse queryOrderRider(OrderRiderRequestVo requestVo); BaseResponse queryOrderRider(OrderRiderRequestVo requestVo);
BaseResponse timeOutOrderRefund(TimeOutOrderVo timeOutOrderVo); BaseResponse timeOutOrderRefund(TimeOutOrderVo timeOutOrderVo);
} }
...@@ -295,9 +295,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -295,9 +295,6 @@ public class OrderServiceImpl implements Orderservice {
private DeliveryFeiginClient deliveryFeiginClient; private DeliveryFeiginClient deliveryFeiginClient;
@Autowired @Autowired
private MulitiPaymentClient mulitiPaymentClient; private MulitiPaymentClient mulitiPaymentClient;
private RedisTemplate redisTemplate;
@Autowired
private PaymentApplicationClient paymentApplicationClient;
@Autowired @Autowired
private CustomerExtendClient extendClient; private CustomerExtendClient extendClient;
...@@ -312,6 +309,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -312,6 +309,7 @@ public class OrderServiceImpl implements Orderservice {
@Autowired @Autowired
private SvcComPayClient svcComPayClient; private SvcComPayClient svcComPayClient;
@Autowired @Autowired
private OrderRelationFactory orderRelationFactory; private OrderRelationFactory orderRelationFactory;
...@@ -1478,7 +1476,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1478,7 +1476,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,organizationId); 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));
...@@ -1510,7 +1508,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1510,7 +1508,7 @@ public class OrderServiceImpl implements Orderservice {
if (userInfo == null || StringUtils.isEmpty(userInfo.getMemberId())) { if (userInfo == null || StringUtils.isEmpty(userInfo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN); return ResponseUtil.error(ResponseResult.NOT_LOGIN);
} }
String oid =queryOrderVo.getOid(); String oid = queryOrderVo.getOid();
if (StringUtils.isBlank(oid)) { if (StringUtils.isBlank(oid)) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空"); return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
} }
...@@ -1577,7 +1575,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1577,7 +1575,7 @@ public class OrderServiceImpl implements Orderservice {
} }
if (OrderStatus.TAKE_ORDER.getCode().equals(queryOrderResponseVo.getOrderStatus()) if (OrderStatus.TAKE_ORDER.getCode().equals(queryOrderResponseVo.getOrderStatus())
|| OrderStatus.WAIT_PAY.getCode().equals(queryOrderResponseVo.getOrderStatus())){ || OrderStatus.WAIT_PAY.getCode().equals(queryOrderResponseVo.getOrderStatus())) {
queryOrderResponseVo.setTakeCode(""); queryOrderResponseVo.setTakeCode("");
} }
...@@ -1585,12 +1583,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1585,12 +1583,12 @@ public class OrderServiceImpl implements Orderservice {
.map(McCafeOrderTypeGather::getDesc).orElse("")); .map(McCafeOrderTypeGather::getDesc).orElse(""));
//48小时自动退款描述 //48小时自动退款描述
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig()!= null if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig() != null
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) { && queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund(); Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){ if (automaticRefund != null && automaticRefund == 1) {
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理"); queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}else { } else {
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理"); queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
} }
} }
...@@ -1610,12 +1608,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1610,12 +1608,12 @@ public class OrderServiceImpl implements Orderservice {
DateTime tomorrow_start = today_start.plusDays(2); DateTime tomorrow_start = today_start.plusDays(2);
System.out.println(new DateTime(tomorrow_start).toString("yyyy-MM-dd HH:mm")); System.out.println(new DateTime(tomorrow_start).toString("yyyy-MM-dd HH:mm"));
if(date.after(today_start.toDate()) && date.before(today_end.toDate())) { if (date.after(today_start.toDate()) && date.before(today_end.toDate())) {
return String.format("%s", new DateTime(date).toString("HH:mm")); return String.format("%s", new DateTime(date).toString("HH:mm"));
} else if(date.after(today_end.toDate()) && date.before(tomorrow_start.toDate())) { } else if (date.after(today_end.toDate()) && date.before(tomorrow_start.toDate())) {
return String.format("明天%s%s", DateUtils.getDayWeek(date), new DateTime(date).toString("HH:mm")); return String.format("明天%s%s", DateUtils.getDayWeek(date), new DateTime(date).toString("HH:mm"));
} }
return new DateTime(date).toString("yyyy-MM-dd") + DateUtils.getDayWeek(date) + new DateTime(date).toString("HH:mm") ; return new DateTime(date).toString("yyyy-MM-dd") + DateUtils.getDayWeek(date) + new DateTime(date).toString("HH:mm");
} }
/** /**
...@@ -1639,7 +1637,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1639,7 +1637,7 @@ public class OrderServiceImpl implements Orderservice {
orderBean.setSendTime(result.getSendTime()); orderBean.setSendTime(result.getSendTime());
orderBean.setCompleteTime(result.getCompleteTime()); orderBean.setCompleteTime(result.getCompleteTime());
} }
if(orderBean.getAddInfo()!=null&&StringUtils.isNotEmpty(orderBean.getAddInfo().getRiderPhone())) { if (orderBean.getAddInfo() != null && StringUtils.isNotEmpty(orderBean.getAddInfo().getRiderPhone())) {
orderBean.setRiderPhone(orderBean.getAddInfo().getRiderPhone()); orderBean.setRiderPhone(orderBean.getAddInfo().getRiderPhone());
} }
} }
...@@ -1653,7 +1651,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1653,7 +1651,7 @@ 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,String organizationId) { 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);
...@@ -1879,7 +1877,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1879,7 +1877,6 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
/** /**
* 已接单,制作完成,配送中,未接单,用户可申请退款 * 已接单,制作完成,配送中,未接单,用户可申请退款
* *
...@@ -1910,22 +1907,22 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1910,22 +1907,22 @@ public class OrderServiceImpl implements Orderservice {
boolean isRefundDeliveryFee = true; boolean isRefundDeliveryFee = true;
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue()); AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
LogUtil.info("orderRefund of oid:{}, {}, {}", orderBean.getOid(),orderBean.getStatus(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null)); LogUtil.info("orderRefund of oid:{}, {}, {}", orderBean.getOid(), orderBean.getStatus(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
// 0、null表示 关闭 ; 1 表示开启 // 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig if (null != refundDeliveryFeeConfig
&& Arrays.asList(OrderStatus.DISTRIBUTION.getCode(),OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus()) && Arrays.asList(OrderStatus.DISTRIBUTION.getCode(), OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus())
&& !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) { && !ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())) {
isRefundDeliveryFee = false; isRefundDeliveryFee = false;
} }
// 未接单 // 未接单
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) { if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
//商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口 //商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId,AfterSalesType.USER_CANCEL,isRefundDeliveryFee); BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId, AfterSalesType.USER_CANCEL, isRefundDeliveryFee);
if (baseResponse != null) { if (baseResponse != null) {
return baseResponse; return baseResponse;
} }
// 删除订单 通知活动添加商品库存 // 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(),orderBean.getPayStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus(), orderBean.getPayStatus());
} else { } else {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest(); CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId()); cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
...@@ -1960,33 +1957,34 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1960,33 +1957,34 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(); return ResponseUtil.success();
} }
/** /**
* 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口 * 商家未接单,取消订单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
* *
* @param orderRefundVo * @param orderRefundVo
* @param orderBean * @param orderBean
*/ */
private BaseResponse partnerNoTakeOrder(OrderRefundVo orderRefundVo, OrderBean orderBean, String fatherOrderId,AfterSalesType afterSalesType,Boolean isRefundDeliveryFee) { @SneakyThrows
private BaseResponse partnerNoTakeOrder(OrderRefundVo orderRefundVo, OrderBean orderBean, String fatherOrderId, AfterSalesType afterSalesType, Boolean isRefundDeliveryFee) {
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null; com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null;
Long refundId = System.currentTimeMillis(); Long refundId = System.currentTimeMillis();
String partnerId = orderBean.getCompanyId(); String partnerId = orderBean.getCompanyId();
int state = PayRefundStatus.SUCCESS.getCode(); int state = PayRefundStatus.SUCCESS.getCode();
if (orderBean.getAmount() != 0) { if (orderBean.getAmount() != 0) {
if(null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size()>0){ if (null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size() > 0) {
//调用支付退款 //调用支付退款
MultiOrderRefundRequest multiOrderRefundRequest = orderAdapter.getMultiOrderPayRefundRequest(orderBean, refundId); MultiOrderRefundRequest multiOrderRefundRequest = orderAdapter.getMultiOrderPayRefundRequest(orderBean, refundId);
MultiOrderRefundResponse multiOrderRefundResponse = mulitiPaymentClient.paymentApplicationRefund(multiOrderRefundRequest,orderBean.getCompanyId()); MultiOrderRefundResponse multiOrderRefundResponse = mulitiPaymentClient.paymentApplicationRefund(multiOrderRefundRequest, orderBean.getCompanyId());
if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) { if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.ORDER_PAY_RESPONSE_SUCCESS.equals(multiOrderRefundResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed"); return ResponseUtil.error(ResponseResult.MULTIORDER__ERRORREFUND.getCode(), "multiOrderRefund_failed");
} }
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList; List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList;
refundPlatformResponseList = refundPlatformResponseList.stream().filter(m -> !m.getEbcode().equalsIgnoreCase("10102")).collect(Collectors.toList()); if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) {
if(null != refundPlatformResponseList && refundPlatformResponseList.size()>0){ redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
redisCache.save(RedisUtil.getPaymentTransIdSequenceKey(refundPlatformResponseList.get(0).getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS);
} }
//获取支付返回退款状态 //获取支付返回退款状态
state = PayRefundStatus.SUCCESS.getCode(); state = PayRefundStatus.SUCCESS.getCode();
}else { } else {
//调用支付退款 //调用支付退款
com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, fatherOrderId); com.freemud.sdk.api.assortment.payment.request.OrderRefundRequest orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, fatherOrderId);
response = standardPaymentService.orderRefund(orderPayRefundRequest, LogTreadLocal.getTrackingNo()); response = standardPaymentService.orderRefund(orderPayRefundRequest, LogTreadLocal.getTrackingNo());
...@@ -2017,6 +2015,23 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2017,6 +2015,23 @@ public class OrderServiceImpl implements Orderservice {
return null; return null;
} }
// public void backOrdersNotifyActivity(OrderBean orderBean, List<Integer> transType) {
// LogUtil.info("backOrdersNotifyActivity", gson.toJson(orderBean), gson.toJson(transType));
// if (orderBean == null) {
// return;
// }
// // 删除订单 通知活动添加商品库存
// ActivityCancelStockRequestDto activityCancelStockRequestDto = activityAdapter.convert2ActivityCancelStockRequestDto(
// orderBean, transType);
// try {
// Header header = new Header(MQAction.INSERT.getAction(), "backOrdersNotifyActivity", orderBean.getOid(), backOrdersChangeOrderStatusConsumerQueue);
// MQMessage<ActivityCancelStockRequestDto> message = new MQMessage<>(header, activityCancelStockRequestDto);
// mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
// } catch (Exception e) {
// LogUtil.error("ActivityReverse", JSON.toJSONString(activityCancelStockRequestDto), "", e);
// }
// }
public void backOrdersStatusChange(String oid, Integer orderStatus) { public void backOrdersStatusChange(String oid, Integer orderStatus) {
if (StringUtils.isEmpty(oid)) { if (StringUtils.isEmpty(oid)) {
...@@ -2036,7 +2051,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2036,7 +2051,7 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
public void backOrdersStatusChange(String oid, Integer orderStatus,Integer payStatus) { public void backOrdersStatusChange(String oid, Integer orderStatus, Integer payStatus) {
if (StringUtils.isEmpty(oid)) { if (StringUtils.isEmpty(oid)) {
return; return;
} }
...@@ -2320,7 +2335,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2320,7 +2335,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) { for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) {
pids.add(productDto.getProductId()); pids.add(productDto.getProductId());
} }
Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId(),fatherSonOrderRequest.getMenuType()); Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId(), fatherSonOrderRequest.getMenuType());
if (products.isEmpty()) { if (products.isEmpty()) {
return fatherSonOrderRequest; return fatherSonOrderRequest;
} }
...@@ -2329,21 +2344,21 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2329,21 +2344,21 @@ public class OrderServiceImpl implements Orderservice {
productDto.setCustomerCode(products.get(productDto.getSpecification()).getCustomerCode()); productDto.setCustomerCode(products.get(productDto.getSpecification()).getCustomerCode());
productDto.setProductCode(products.get(productDto.getSpecification()).getProductCode()); productDto.setProductCode(products.get(productDto.getSpecification()).getProductCode());
productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId()); productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId());
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(),productDto.getAddInfo())); productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(), productDto.getAddInfo()));
} else { } else {
productDto.setCustomerCode(""); productDto.setCustomerCode("");
productDto.setProductCode(""); productDto.setProductCode("");
LogUtil.error("getProducts_exception", JSONObject.toJSONString(pids), JSONObject.toJSONString(products)); LogUtil.error("getProducts_exception", JSONObject.toJSONString(pids), JSONObject.toJSONString(products));
} }
//套餐子商品 //套餐子商品
if(CollectionUtils.isNotEmpty(productDto.getComboProduct())){ if (CollectionUtils.isNotEmpty(productDto.getComboProduct())) {
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()){ for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()) {
String comboSkuId = comboProduct.getSpecification(); String comboSkuId = comboProduct.getSpecification();
if (products.get(comboSkuId) != null) { if (products.get(comboSkuId) != null) {
comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode()); comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode());
comboProduct.setProductCode(products.get(comboSkuId).getProductCode()); comboProduct.setProductCode(products.get(comboSkuId).getProductCode());
comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId()); comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId());
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(),comboProduct.getAddInfo())); comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(), comboProduct.getAddInfo()));
} else { } else {
comboProduct.setCustomerCode(""); comboProduct.setCustomerCode("");
comboProduct.setProductCode(""); comboProduct.setProductCode("");
...@@ -2366,7 +2381,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2366,7 +2381,7 @@ public class OrderServiceImpl implements Orderservice {
for (CreateOrderProductRequest productDto : createOrderDto.getProducts()) { for (CreateOrderProductRequest productDto : createOrderDto.getProducts()) {
spuIds.add(productDto.getProductId()); spuIds.add(productDto.getProductId());
} }
Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId(),createOrderDto.getMenuType()); Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId(), createOrderDto.getMenuType());
if (products.isEmpty()) { if (products.isEmpty()) {
return createOrderDto; return createOrderDto;
} }
...@@ -2376,7 +2391,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2376,7 +2391,7 @@ public class OrderServiceImpl implements Orderservice {
productDto.setCustomerCode(products.get(skuId).getCustomerCode()); productDto.setCustomerCode(products.get(skuId).getCustomerCode());
productDto.setProductCode(products.get(skuId).getProductCode()); productDto.setProductCode(products.get(skuId).getProductCode());
productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId()); productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId());
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(),productDto.getAddInfo())); productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(), productDto.getAddInfo()));
// todo 商品组信息 // todo 商品组信息
setProductGroupInfo(products.get(skuId).getProductGroupList(), productDto); setProductGroupInfo(products.get(skuId).getProductGroupList(), productDto);
...@@ -2386,15 +2401,15 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2386,15 +2401,15 @@ public class OrderServiceImpl implements Orderservice {
LogUtil.error("getProducts_exception", JSONObject.toJSONString(skuId), JSONObject.toJSONString(products), null); LogUtil.error("getProducts_exception", JSONObject.toJSONString(skuId), JSONObject.toJSONString(products), null);
} }
//套餐子商品 //套餐子商品
if(CollectionUtils.isNotEmpty(productDto.getComboProduct())){ if (CollectionUtils.isNotEmpty(productDto.getComboProduct())) {
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()){ for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()) {
String comboSkuId = comboProduct.getSpecification(); String comboSkuId = comboProduct.getSpecification();
System.out.println(comboSkuId); System.out.println(comboSkuId);
if (products.get(comboSkuId) != null) { if (products.get(comboSkuId) != null) {
comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode()); comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode());
comboProduct.setProductCode(products.get(comboSkuId).getProductCode()); comboProduct.setProductCode(products.get(comboSkuId).getProductCode());
comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId()); comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId());
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(),comboProduct.getAddInfo())); comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(), comboProduct.getAddInfo()));
comboProduct.setStapleFood(products.get(comboSkuId).getStapleFood()); comboProduct.setStapleFood(products.get(comboSkuId).getStapleFood());
// todo 套餐商品的商品组信息 // todo 套餐商品的商品组信息
setProductGroupInfo(products.get(comboSkuId).getProductGroupList(), comboProduct); setProductGroupInfo(products.get(comboSkuId).getProductGroupList(), comboProduct);
...@@ -2433,22 +2448,22 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2433,22 +2448,22 @@ public class OrderServiceImpl implements Orderservice {
private String getThirdPropertyId(List<ProductAttributeGroup> productAttributeGroups, String addInfo) { private String getThirdPropertyId(List<ProductAttributeGroup> productAttributeGroups, String addInfo) {
String thirdProductPropertyId = ""; String thirdProductPropertyId = "";
if(StringUtils.isBlank(addInfo) || CollectionUtils.isEmpty(productAttributeGroups) ){ if (StringUtils.isBlank(addInfo) || CollectionUtils.isEmpty(productAttributeGroups)) {
return thirdProductPropertyId; return thirdProductPropertyId;
} }
JSONObject jsonObject = JSONObject.parseObject(addInfo); JSONObject jsonObject = JSONObject.parseObject(addInfo);
String attributeNames = (String)jsonObject.get("attributeNames"); String attributeNames = (String) jsonObject.get("attributeNames");
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
String[] split = attributeNames.split("/"); String[] split = attributeNames.split("/");
List<AttributeValue> attributeValues = new ArrayList<>(); List<AttributeValue> attributeValues = new ArrayList<>();
for (ProductAttributeGroup attributeGroup : productAttributeGroups){ for (ProductAttributeGroup attributeGroup : productAttributeGroups) {
attributeValues.addAll(attributeGroup.getAttributeValues()); attributeValues.addAll(attributeGroup.getAttributeValues());
} }
for (int i= 0;i<split.length;i++){ for (int i = 0; i < split.length; i++) {
for (AttributeValue attributeValue : attributeValues){ for (AttributeValue attributeValue : attributeValues) {
if(attributeValue.getAttributeValue().equals(split[i])){ if (attributeValue.getAttributeValue().equals(split[i])) {
list.add(attributeValue.getCustomerCode()); list.add(attributeValue.getCustomerCode());
break; break;
} }
...@@ -2466,20 +2481,16 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2466,20 +2481,16 @@ public class OrderServiceImpl implements Orderservice {
* @return * @return
*/ */
public BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, public BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
AssortmentCustomerInfoVo userLoginInfoDto) { AssortmentCustomerInfoVo userLoginInfoDto) {
CreateOrderOperateDto response = new CreateOrderOperateDto(); CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto); OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
OrderClientType orderClient = OrderClientType.SAAS; OrderClientType orderClient = OrderClientType.SAAS;
String appId = userLoginInfoDto.getWxAppId(); String appId = userLoginInfoDto.getWxAppId();
if("2".equals(userLoginInfoDto.getChannel()) ){ if ("2".equals(userLoginInfoDto.getChannel())) {
orderClient = OrderClientType.ALIPAY; orderClient = OrderClientType.ALIPAY;
} else if(UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) { } else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
orderClient = OrderClientType.APP; orderClient = OrderClientType.APP;
} }
//抖音小程序
if(PayChannelType.TIKTOKPAY.getIndex().equals(createOrderVo.getPayChannelType()) && "5".equalsIgnoreCase(createOrderVo.getChannel())) {
orderClient = OrderClientType.TIKTOKPAY;
}
long totalAmount = 0; long totalAmount = 0;
int cardAmount = 0; int cardAmount = 0;
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne = new QueryOrdersResponse.DataBean.OrderBean(); QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne = new QueryOrdersResponse.DataBean.OrderBean();
...@@ -2489,7 +2500,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2489,7 +2500,7 @@ public class OrderServiceImpl implements Orderservice {
int cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() == null ? 0 : shoppingCartGoodsDto.getCardOriginalAmount(); int cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() == null ? 0 : shoppingCartGoodsDto.getCardOriginalAmount();
int cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() == null ? 0 : shoppingCartGoodsDto.getCardDiscountAmount(); int cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() == null ? 0 : shoppingCartGoodsDto.getCardDiscountAmount();
cardAmount = cardOriginalAmount - cardDiscountAmount; cardAmount = cardOriginalAmount - cardDiscountAmount;
CreateFatherSonOrderResponse createFatherSonOrderResponse = createFatherSonOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq,appId); CreateFatherSonOrderResponse createFatherSonOrderResponse = createFatherSonOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, appId);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createFatherSonOrderResponse.getErrcode())) { if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createFatherSonOrderResponse.getErrcode())) {
return ResponseUtil.error(createFatherSonOrderResponse.getErrcode().toString(), createFatherSonOrderResponse.getErrmsg()); return ResponseUtil.error(createFatherSonOrderResponse.getErrcode().toString(), createFatherSonOrderResponse.getErrmsg());
} }
...@@ -2504,7 +2515,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2504,7 +2515,7 @@ public class OrderServiceImpl implements Orderservice {
fatherBeanList.get(0).setCompanyId(createOrderVo.getPartnerId()); fatherBeanList.get(0).setCompanyId(createOrderVo.getPartnerId());
} else { } else {
//普通订单 //普通订单
CreateOrderResponse createOrderFlowResponse = createOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, orderClient,appId); CreateOrderResponse createOrderFlowResponse = createOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, orderClient, appId);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createOrderFlowResponse.getErrcode())) { if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createOrderFlowResponse.getErrcode())) {
return ResponseUtil.error(createOrderFlowResponse.getErrcode().toString(), createOrderFlowResponse.getErrmsg()); return ResponseUtil.error(createOrderFlowResponse.getErrcode().toString(), createOrderFlowResponse.getErrmsg());
} }
...@@ -2541,7 +2552,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2541,7 +2552,7 @@ public class OrderServiceImpl implements Orderservice {
} }
//混合支付+svc卡 //混合支付+svc卡
else if (totalAmount > 0 && StringUtils.isNotBlank(cardCode)) { else if (totalAmount > 0 && StringUtils.isNotBlank(cardCode)) {
orderPayResponse = switchSvcOrComb(totalAmount,cardCode, createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, createPrepayRequestDto.getChannel(),createPrepayRequestDto.getStoreId(),LogThreadLocal.getTrackingNo()); orderPayResponse = switchSvcOrComb(totalAmount, cardCode, createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, createPrepayRequestDto.getChannel(), createPrepayRequestDto.getStoreId(), LogThreadLocal.getTrackingNo());
} else { } else {
// 0元订单如果不需要支付,自定义支付单号 // 0元订单如果不需要支付,自定义支付单号
orderPayResponse = getOrderPayResponse(paymentRequest, createPrepayRequestDto.getFatherOrderBean()); orderPayResponse = getOrderPayResponse(paymentRequest, createPrepayRequestDto.getFatherOrderBean());
...@@ -2565,14 +2576,11 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2565,14 +2576,11 @@ public class OrderServiceImpl implements Orderservice {
} }
if (totalAmount > 0 && StringUtils.isBlank(cardCode) && Objects.isNull(createPrepayRequestDto.getUnionPayCard())) { if (totalAmount > 0 && StringUtils.isBlank(cardCode) && Objects.isNull(createPrepayRequestDto.getUnionPayCard())) {
createOrderResponse.setPaySuccess(false); createOrderResponse.setPaySuccess(false);
} } else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.COMB.getEbcode().equals(orderPayResponse.getPayMode())) {
else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.COMB.getEbcode().equals(orderPayResponse.getPayMode())){
createOrderResponse.setPaySuccess(false); createOrderResponse.setPaySuccess(false);
} } else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())) {
else if (StringUtils.isNotBlank(orderPayResponse.getPayMode()) && PayChannelType.SVC.getEbcode().equals(orderPayResponse.getPayMode())){
createOrderResponse.setPaySuccess(true); createOrderResponse.setPaySuccess(true);
} } else {
else {
createOrderResponse.setPaySuccess(true); createOrderResponse.setPaySuccess(true);
} }
// 推荐优惠插件用户下单数据上报 // 推荐优惠插件用户下单数据上报
...@@ -2620,7 +2628,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2620,7 +2628,7 @@ public class OrderServiceImpl implements Orderservice {
if (check && StringUtils.isNotBlank(channel)) { if (check && StringUtils.isNotBlank(channel)) {
log.info("混合支付:"); log.info("混合支付:");
String partnerPayOvertime = this.getPartnerPayOvertime(orderBean.getCompanyId()); String partnerPayOvertime = this.getPartnerPayOvertime(orderBean.getCompanyId());
orderPayResponse = comPayOrder(cardCode,orderBean,paymentRequest,partnerPayOvertime,totalAmount.intValue(),channel,storeId,LogThreadLocal.getTrackingNo()); orderPayResponse = comPayOrder(cardCode, orderBean, paymentRequest, partnerPayOvertime, totalAmount.intValue(), channel, storeId, LogThreadLocal.getTrackingNo());
} }
//svc 支付 //svc 支付
else { else {
...@@ -2684,7 +2692,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2684,7 +2692,7 @@ public class OrderServiceImpl implements Orderservice {
* 创建普通订单 * 创建普通订单
*/ */
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq, OrderClientType orderClient,String appId) { OrderExtendedReq orderExtendedReq, OrderClientType orderClient, String appId) {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto); BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号 //查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest); baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
...@@ -2702,13 +2710,14 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2702,13 +2710,14 @@ public class OrderServiceImpl implements Orderservice {
createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo()); createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
return orderCenterSdkService.createOrderFlow(createOrderRequest); return orderCenterSdkService.createOrderFlow(createOrderRequest);
} }
/** /**
* 创建父子订单 * 创建父子订单
*/ */
public CreateFatherSonOrderResponse createFatherSonOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, public CreateFatherSonOrderResponse createFatherSonOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto,
ShoppingCartGoodsDto shoppingCartGoodsDto, OrderExtendedReq orderExtendedReq, ShoppingCartGoodsDto shoppingCartGoodsDto, OrderExtendedReq orderExtendedReq,
String appId) { String appId) {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq,storeResponseDto,appId); CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq, storeResponseDto, appId);
//查询第三方商品编号 //查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest); createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest(); MqMessageRequest mqMessageRequest = new MqMessageRequest();
...@@ -2728,10 +2737,10 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2728,10 +2737,10 @@ public class OrderServiceImpl implements Orderservice {
private BaseResponse failPreOrderPay(String trackingNo, QueryOrdersResponse.DataBean.OrderBean orderBean, String cardCode, OrderClientType orderClient, String msg) { private BaseResponse failPreOrderPay(String trackingNo, QueryOrdersResponse.DataBean.OrderBean orderBean, String cardCode, OrderClientType orderClient, String msg) {
List<OrderClientType> notCancelOrderClientList = Lists.newArrayList(OrderClientType.APP); List<OrderClientType> notCancelOrderClientList = Lists.newArrayList(OrderClientType.APP);
if(!notCancelOrderClientList.contains(orderClient)) { if (!notCancelOrderClientList.contains(orderClient)) {
//失败冲正库存,冲正活动库存,取消订单 //失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL, StringUtils.defaultIfBlank(msg,"获取预支付失败"), trackingNo, null); AfterSalesType.SYSTEM_CANCEL, StringUtils.join(new String[]{"获取预支付失败", msg}, '-'), trackingNo, null);
orderCenterSdkService.orderCancel(cancelOrderRequest); orderCenterSdkService.orderCancel(cancelOrderRequest);
// TODO: 2019/9/10 hubowen mq推送变更 // TODO: 2019/9/10 hubowen mq推送变更
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
...@@ -2743,13 +2752,10 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2743,13 +2752,10 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(), ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getMessage(), null); return ResponseUtil.error(ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getCode(), ResponseResultEnum.PAY_UNIFIED_ORDER_ERROR.getMessage(), null);
} }
public OrderPayResponse getPreOrderPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount, String transId, String partnerPayOvertime ,OrderExtInfoDto orderExtInfoDto) { public OrderPayResponse getPreOrderPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String trackingNo, Integer cardAmount, String transId, String partnerPayOvertime, OrderExtInfoDto orderExtInfoDto) {
OrderPayResponse orderPayResponse; OrderPayResponse orderPayResponse;
try { try {
UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId, partnerPayOvertime); UnifiedOrderRequest request = orderAdapter.convent2UnifiedOrderRequest(orderBean, paymentRequest, orderBean.getAmount(), cardAmount, transId, partnerPayOvertime);
if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) {
request.setStationId(orderExtInfoDto.getStationId());
}
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 start // add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 start
if (null != orderBean.getMarketingType() && OrderMarketType.COLLAGE.getIndex() == orderBean.getMarketingType()) { if (null != orderBean.getMarketingType() && OrderMarketType.COLLAGE.getIndex() == orderBean.getMarketingType()) {
// 拼单人数大于1人时参加拼单补贴 // 拼单人数大于1人时参加拼单补贴
...@@ -2760,6 +2766,9 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2760,6 +2766,9 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
// add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 end // add by miaohui for 拼单群收款判断拼单人数大于1时参与微信平台补贴活动,创建预支付时上送goodsTag,后续抽成促销服务活动时删除此逻辑 end
if (orderExtInfoDto != null && StringUtils.isNotBlank(orderExtInfoDto.getStationId())) {
request.setStationId(orderExtInfoDto.getStationId());
}
com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo); com.freemud.application.sdk.api.base.BaseResponse<UnifiedOrderResponse> responseBase = standardPaymentService.unifiedOrder(request, trackingNo);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) { if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode())) {
log.error("支付SDK返回信息错误,trackingNo:{} request:{} response:{}", trackingNo, JSONObject.toJSONString(request), JSONObject.toJSONString(responseBase)); log.error("支付SDK返回信息错误,trackingNo:{} request:{} response:{}", trackingNo, JSONObject.toJSONString(request), JSONObject.toJSONString(responseBase));
...@@ -2774,7 +2783,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2774,7 +2783,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setPartnerId(orderBean.getCompanyId()); orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid()); orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(PayChannelType.WECHAT.getEbcode()); orderPayResponse.setPayMode(PayChannelType.WECHAT.getEbcode());
if (orderPayResponse.getPayOrder()!=null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) { if (orderPayResponse.getPayOrder() != null && StringUtils.isNotBlank(orderPayResponse.getPayOrder().getAliPayOrder())) {
orderPayResponse.setPayMode(PayChannelType.ALIPAY.getEbcode()); orderPayResponse.setPayMode(PayChannelType.ALIPAY.getEbcode());
} }
} }
...@@ -2891,14 +2900,13 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2891,14 +2900,13 @@ public class OrderServiceImpl implements Orderservice {
if (StringUtils.isNotBlank(createOrderVo.getScene())) { if (StringUtils.isNotBlank(createOrderVo.getScene())) {
orderExtInfoDto.setScene(createOrderVo.getScene()); orderExtInfoDto.setScene(createOrderVo.getScene());
} }
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getSendPoint()){ if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getSendPoint()) {
ShoppingCartGoodsDto.SendPoint sendPoint = shoppingCartGoodsDto.getSendPoint(); ShoppingCartGoodsDto.SendPoint sendPoint = shoppingCartGoodsDto.getSendPoint();
orderExtInfoDto.setSendPointValidityDateDays(sendPoint.getValidityDateDays()); orderExtInfoDto.setSendPointValidityDateDays(sendPoint.getValidityDateDays());
orderExtInfoDto.setSendPointMaxNum(sendPoint.getMaxNum()); orderExtInfoDto.setSendPointMaxNum(sendPoint.getMaxNum());
orderExtInfoDto.setSendPointActivityCode(sendPoint.getActivityCode()); orderExtInfoDto.setSendPointActivityCode(sendPoint.getActivityCode());
orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime()+""); orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime() + "");
orderExtInfoDto.setSendPointSendPoint(sendPoint.getSendPoint()); orderExtInfoDto.setSendPointSendPoint(sendPoint.getSendPoint());
orderExtInfoDto.setSendPointStoreLevel(sendPoint.getStoreLevel());
} }
return orderExtInfoDto; return orderExtInfoDto;
} }
...@@ -2969,7 +2977,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2969,7 +2977,7 @@ public class OrderServiceImpl implements Orderservice {
JSONObject.toJSONString(orderExtInfo)); JSONObject.toJSONString(orderExtInfo));
orderEditRequest.setOrderId(orderBean.getOid()); orderEditRequest.setOrderId(orderBean.getOid());
orderEditRequest.setTrackingNo(trackingNo); orderEditRequest.setTrackingNo(trackingNo);
if (orderPayResponse.getPayMode()!=null) { if (orderPayResponse.getPayMode() != null) {
orderEditRequest.setPayChannel(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getEbcode()); orderEditRequest.setPayChannel(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getEbcode());
orderEditRequest.setPayChannelName(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getName()); orderEditRequest.setPayChannelName(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getName());
orderEditRequest.setPayChannelType(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getIndex()); orderEditRequest.setPayChannelType(PayChannelType.getByEbcode(orderPayResponse.getPayMode()).getIndex());
...@@ -3004,21 +3012,22 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3004,21 +3012,22 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* 通知小助手发送申请退款公众号订阅消息 * 通知小助手发送申请退款公众号订阅消息
*
* @param orderBean * @param orderBean
*/ */
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundVo request) { public void sendApplyRefundSubscriptionNotice(OrderBean orderBean, OrderRefundVo request) {
LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null); LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null);
String partnerId = orderBean.getCompanyId(); String partnerId = orderBean.getCompanyId();
String shopId = orderBean.getShopId(); String shopId = orderBean.getShopId();
if(orderBean.getExtInfo() == null){ if (orderBean.getExtInfo() == null) {
return; return;
} }
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class); OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
if(extInfo == null || extInfo.getAppid() == null){ if (extInfo == null || extInfo.getAppid() == null) {
return; return;
} }
AssortmentOpenPlatformWxappAuthorizer authorizerAppid = wxappAuthorizerManager.findAuthorizerByWxAppId(extInfo.getAppid()); AssortmentOpenPlatformWxappAuthorizer authorizerAppid = wxappAuthorizerManager.findAuthorizerByWxAppId(extInfo.getAppid());
if(authorizerAppid == null){ if (authorizerAppid == null) {
return; return;
} }
String accessToken = authorizerAppid.getAuthorizerAccessToken(); String accessToken = authorizerAppid.getAuthorizerAccessToken();
...@@ -3031,7 +3040,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3031,7 +3040,7 @@ public class OrderServiceImpl implements Orderservice {
keyword1.setValue(orderId); keyword1.setValue(orderId);
MpTemplateMsgDataValue keyword2 = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue keyword2 = new MpTemplateMsgDataValue();
Double amount = orderBean.getAmount() / 100.0D; Double amount = orderBean.getAmount() / 100.0D;
keyword2.setValue(amount.toString()+ " 元"); keyword2.setValue(amount.toString() + " 元");
MpTemplateMsgDataValue keyword3 = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue keyword3 = new MpTemplateMsgDataValue();
keyword3.setValue(orderBean.getGmtPay() == null ? "" : DateUtil.convert2String(new Date(orderBean.getGmtPay()), "yyyy-MM-dd HH:mm:ss")); keyword3.setValue(orderBean.getGmtPay() == null ? "" : DateUtil.convert2String(new Date(orderBean.getGmtPay()), "yyyy-MM-dd HH:mm:ss"));
MpTemplateMsgDataValue keyword4 = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue keyword4 = new MpTemplateMsgDataValue();
...@@ -3039,7 +3048,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3039,7 +3048,7 @@ public class OrderServiceImpl implements Orderservice {
MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue();
keyword5.setValue(orderBean.getPhone()); keyword5.setValue(orderBean.getPhone());
MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue();
remark.setValue(request.getReason()+","+request.getRemarks()); remark.setValue(request.getReason() + "," + request.getRemarks());
data.setFirst(first); data.setFirst(first);
data.setKeyword1(keyword1); data.setKeyword1(keyword1);
data.setKeyword2(keyword2); data.setKeyword2(keyword2);
...@@ -3099,16 +3108,16 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3099,16 +3108,16 @@ public class OrderServiceImpl implements Orderservice {
private BaseResponse createOrderAndPay(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, private BaseResponse createOrderAndPay(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDto orderExtInfoDTO) { AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDto orderExtInfoDTO) {
//创建订单--包括下单购买会员卡创建父子订单 //创建订单--包括下单购买会员卡创建父子订单
CreateOrderOperateDto operateDto = createOrderForFace(createOrderVo, storeResponseDto, shoppingCartGoodsDto,userLoginInfoDto.getWxAppId()); CreateOrderOperateDto operateDto = createOrderForFace(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto.getWxAppId());
long totalAmount = operateDto.getTotalAmount(); long totalAmount = operateDto.getTotalAmount();
int cardAmount = operateDto.getCardAmount(); int cardAmount = operateDto.getCardAmount();
QueryOrdersResponse.DataBean.OrderBean fatherOrderBean = operateDto.getFatherOrderBean(); QueryOrdersResponse.DataBean.OrderBean fatherOrderBean = operateDto.getFatherOrderBean();
QueryOrdersResponse.DataBean.OrderBean productOrderBean = operateDto.getProductOrderBean(); QueryOrdersResponse.DataBean.OrderBean productOrderBean = operateDto.getProductOrderBean();
//支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付 //支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付
OrderPayResponse orderPayResponse = pay(userLoginInfoDto,createOrderVo,totalAmount,cardAmount,fatherOrderBean); OrderPayResponse orderPayResponse = pay(userLoginInfoDto, createOrderVo, totalAmount, cardAmount, fatherOrderBean);
// 默认支付成功必有非码订单号 // 默认支付成功必有非码订单号
if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) { if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) {
if(createOrderVo.getFaceCode() != null){ if (createOrderVo.getFaceCode() != null) {
createOrderVo.setCardCode(createOrderVo.getFaceCode()); createOrderVo.setCardCode(createOrderVo.getFaceCode());
} }
BaseResponse baseResponse = failPreOrderPay(LogThreadLocal.getTrackingNo(), productOrderBean, createOrderVo.getCardCode(), null, BaseResponse baseResponse = failPreOrderPay(LogThreadLocal.getTrackingNo(), productOrderBean, createOrderVo.getCardCode(), null,
...@@ -3158,12 +3167,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3158,12 +3167,12 @@ public class OrderServiceImpl implements Orderservice {
* 创建订单 * 创建订单
*/ */
private CreateOrderOperateDto createOrderForFace(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, private CreateOrderOperateDto createOrderForFace(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto,
ShoppingCartGoodsDto shoppingCartGoodsDto,String appId){ ShoppingCartGoodsDto shoppingCartGoodsDto, String appId) {
CreateOrderOperateDto response = new CreateOrderOperateDto(); CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto); OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
//创建普通订单 //创建普通订单
Function<Object, CreateOrderResponse> createOrder = (var -> { Function<Object, CreateOrderResponse> createOrder = (var -> {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto,storeResponseDto); BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号 //查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest); baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
//保存门店渠道信息 //保存门店渠道信息
...@@ -3181,7 +3190,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3181,7 +3190,7 @@ public class OrderServiceImpl implements Orderservice {
}); });
//创建父子订单 //创建父子订单
Function<Object, CreateFatherSonOrderResponse> createFatherSonOrder = (var -> { Function<Object, CreateFatherSonOrderResponse> createFatherSonOrder = (var -> {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq,storeResponseDto,appId); CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq, storeResponseDto, appId);
//查询第三方商品编号 //查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest); createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
MqMessageRequest mqMessageRequest = new MqMessageRequest(); MqMessageRequest mqMessageRequest = new MqMessageRequest();
...@@ -3233,12 +3242,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3233,12 +3242,12 @@ public class OrderServiceImpl implements Orderservice {
* 支付 * 支付
* 包含唤起微信支付、储值卡支付直接支付、扫脸支付、商品券无需支付 * 包含唤起微信支付、储值卡支付直接支付、扫脸支付、商品券无需支付
*/ */
private OrderPayResponse pay(AssortmentCustomerInfoVo userLoginInfoDto,CreateOrderVo createOrderVo,long totalAmount,int cardAmount, private OrderPayResponse pay(AssortmentCustomerInfoVo userLoginInfoDto, CreateOrderVo createOrderVo, long totalAmount, int cardAmount,
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne){ QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne) {
//<!---创建订单公共方法执行逻辑---> //<!---创建订单公共方法执行逻辑--->
OrderPayResponse orderPayResponse = null; OrderPayResponse orderPayResponse = null;
String appId = userLoginInfoDto.getWxAppId(); String appId = userLoginInfoDto.getWxAppId();
PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto.getOpenId(), createOrderVo.getPartnerId(),appId, null); PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto.getOpenId(), createOrderVo.getPartnerId(), appId, null);
//支付金额异常 //支付金额异常
if (totalAmount < 0) { if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR); throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
...@@ -3250,7 +3259,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3250,7 +3259,7 @@ public class OrderServiceImpl implements Orderservice {
//唤起微信支付 //唤起微信支付
if (totalAmount > 0 && StringUtils.isBlank(createOrderVo.getCardCode()) && StringUtils.isBlank(createOrderVo.getFaceCode())) { if (totalAmount > 0 && StringUtils.isBlank(createOrderVo.getCardCode()) && StringUtils.isBlank(createOrderVo.getFaceCode())) {
String partnerPayOvertime = this.getPartnerPayOvertime(createOrderVo.getPartnerId()); String partnerPayOvertime = this.getPartnerPayOvertime(createOrderVo.getPartnerId());
orderPayResponse = getPreOrderPay(fatherBeanListOne, paymentRequest, LogThreadLocal.getTrackingNo(), cardAmount, fatherBeanListOne.getOid(), partnerPayOvertime,null); orderPayResponse = getPreOrderPay(fatherBeanListOne, paymentRequest, LogThreadLocal.getTrackingNo(), cardAmount, fatherBeanListOne.getOid(), partnerPayOvertime, null);
return orderPayResponse; return orderPayResponse;
} }
//储值卡支付 //储值卡支付
...@@ -3266,7 +3275,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3266,7 +3275,7 @@ public class OrderServiceImpl implements Orderservice {
return orderPayResponse; return orderPayResponse;
} }
//0元订单,商品券订单等等 //0元订单,商品券订单等等
if (totalAmount == 0){ if (totalAmount == 0) {
// 0元订单如果不需要支付,自定义支付单号 // 0元订单如果不需要支付,自定义支付单号
String fmId = "SPAY" + ValidationCode.getRandomUuid(); String fmId = "SPAY" + ValidationCode.getRandomUuid();
orderPayResponse = orderAdapter.getOrderPayResponse(fatherBeanListOne.getCompanyId(), paymentRequest, fatherBeanListOne.getOid(), fmId); orderPayResponse = orderAdapter.getOrderPayResponse(fatherBeanListOne.getCompanyId(), paymentRequest, fatherBeanListOne.getOid(), fmId);
...@@ -3297,8 +3306,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3297,8 +3306,8 @@ public class OrderServiceImpl implements Orderservice {
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> responseDto = null; com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> responseDto = null;
try { try {
responseDto = paymentNewClient.facePay(request); responseDto = paymentNewClient.facePay(request);
LogUtil.info("facePay_response", null,JSONObject.toJSON(responseDto)); LogUtil.info("facePay_response", null, JSONObject.toJSON(responseDto));
}catch (Exception e){ } catch (Exception e) {
LogUtil.error("facePay_error", null, null, e); LogUtil.error("facePay_error", null, null, e);
} }
if (responseDto == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseDto.getCode()) || responseDto.getData() == null) { if (responseDto == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseDto.getCode()) || responseDto.getData() == null) {
...@@ -3324,17 +3333,17 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3324,17 +3333,17 @@ public class OrderServiceImpl implements Orderservice {
*/ */
private String getQueryOrderChannelType(QueryOrderVo queryOrderVo, AssortmentCustomerInfoVo userLoginInfoDto) { private String getQueryOrderChannelType(QueryOrderVo queryOrderVo, AssortmentCustomerInfoVo userLoginInfoDto) {
String channelType = OrderChannelType.SAAS.getCode(); String channelType = OrderChannelType.SAAS.getCode();
if(IappIdType.WC_XCX.getCode().equals(userLoginInfoDto.getIappId())) { if (IappIdType.WC_XCX.getCode().equals(userLoginInfoDto.getIappId())) {
channelType = OrderChannelType.IWC.getCode(); channelType = OrderChannelType.IWC.getCode();
} else if(OrderChannelType.SAASMALL.getCode().equals(queryOrderVo.getChannelType())) { } else if (OrderChannelType.SAASMALL.getCode().equals(queryOrderVo.getChannelType())) {
channelType = OrderChannelType.SAASMALL.getCode(); channelType = OrderChannelType.SAASMALL.getCode();
} else if(UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) { } else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
channelType = OrderChannelType.APP.getCode(); channelType = OrderChannelType.APP.getCode();
} }
return channelType; return channelType;
} }
public BaseResponse queryOrderByConditions(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo){ public BaseResponse queryOrderByConditions(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo) {
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(queryOrderByConditionsRequestVo.getSessionId()); AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(queryOrderByConditionsRequestVo.getSessionId());
if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) { if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN); return ResponseUtil.error(ResponseResult.NOT_LOGIN);
...@@ -3346,42 +3355,43 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3346,42 +3355,43 @@ public class OrderServiceImpl implements Orderservice {
BeanUtil.convertBean(queryOrderByConditionsRequestVo, orderConditionsReq); BeanUtil.convertBean(queryOrderByConditionsRequestVo, orderConditionsReq);
orderConditionsReq.setUserId(userId); orderConditionsReq.setUserId(userId);
Date startDate = DateUtil.convert2Date("2020-08-01 00:00:00", DateUtil.FORMAT_YYYY_MM_DD_HHMMSS); Date startDate = DateUtil.convert2Date("2020-08-01 00:00:00", DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
orderConditionsReq.setStartTimestamp(startDate.getTime()/1000); orderConditionsReq.setStartTimestamp(startDate.getTime() / 1000);
orderConditionsReq.setEndTimestamp(new Date().getTime()/1000); orderConditionsReq.setEndTimestamp(new Date().getTime() / 1000);
BaseDownLoadResponse<List<OrderInfoReqs>> orderInfoReqs = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq,LogTreadLocal.getTrackingNo()); BaseDownLoadResponse<List<OrderInfoReqs>> orderInfoReqs = orderDownLoadSdkService.queryOrderByConditions(orderConditionsReq, LogTreadLocal.getTrackingNo());
if (!String.valueOf(RESPONSE_SUCCESS_CODE).equals(orderInfoReqs.getCode())) { if (!String.valueOf(RESPONSE_SUCCESS_CODE).equals(orderInfoReqs.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode()); return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode());
} }
Map<String, Object> responseMap = Maps.newTreeMap(); Map<String, Object> responseMap = Maps.newTreeMap();
//用户无订单数据 //用户无订单数据
if (orderInfoReqs.getResult() == null || orderInfoReqs.getTotalNum()== 0) { if (orderInfoReqs.getResult() == null || orderInfoReqs.getTotalNum() == 0) {
return ResponseUtil.success(); return ResponseUtil.success();
} }
responseVos = orderInfoReqs.getResult().stream().map( responseVos = orderInfoReqs.getResult().stream().map(
orderBean -> { orderBean -> {
QueryOrderByConditionsResponseVo queryOrderByConditionsResponseVo = new QueryOrderByConditionsResponseVo(); QueryOrderByConditionsResponseVo queryOrderByConditionsResponseVo = new QueryOrderByConditionsResponseVo();
BeanUtil.convertBean(orderBean,queryOrderByConditionsResponseVo); BeanUtil.convertBean(orderBean, queryOrderByConditionsResponseVo);
BeanUtil.convertBean(orderBean,queryOrderByConditionsResponseVo); BeanUtil.convertBean(orderBean, queryOrderByConditionsResponseVo);
List<String> imgUrl = new ArrayList<>(); List<String> imgUrl = new ArrayList<>();
String extInfo = orderBean.getExtInfo(); String extInfo = orderBean.getExtInfo();
if(!StringUtil.isEmpty(extInfo)){ if (!StringUtil.isEmpty(extInfo)) {
JSONObject jsonObject = JSONObject.parseObject(extInfo); JSONObject jsonObject = JSONObject.parseObject(extInfo);
JSONArray jsonArray = (JSONArray) JSONArray.parse(jsonObject.getString("imgUlr")); JSONArray jsonArray = (JSONArray) JSONArray.parse(jsonObject.getString("imgUlr"));
for(int i = 0 ;i< jsonArray.size() ;i++){ for (int i = 0; i < jsonArray.size(); i++) {
imgUrl.add(String.valueOf(jsonArray.get(i))); imgUrl.add(String.valueOf(jsonArray.get(i)));
}
}
if (null != orderBean.getOrderSettlementDetailList() && orderBean.getOrderSettlementDetailList().size() > 0) {
queryOrderByConditionsResponseVo.setSettlementAmount(orderBean.getOrderSettlementDetailList().stream().map(OrderSettlementResp::getSettlementAmount).reduce(BigDecimal.ZERO, BigDecimal::add));
} else {
queryOrderByConditionsResponseVo.setSettlementAmount(BigDecimal.ZERO);
}
queryOrderByConditionsResponseVo.setImgUrl(imgUrl);
queryOrderByConditionsResponseVo.setOrderStateValue(orderSdkAdapter.getOrderStatusValue(orderBean.getOrderState()));
SimpleDateFormat sdff = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdff.format(new Date(Long.valueOf(orderBean.getCreateTime())));
queryOrderByConditionsResponseVo.setCreateTime(sd);
return queryOrderByConditionsResponseVo;
} }
}
if(null !=orderBean.getOrderSettlementDetailList() && orderBean.getOrderSettlementDetailList().size()>0){
queryOrderByConditionsResponseVo.setSettlementAmount(orderBean.getOrderSettlementDetailList().stream().map(OrderSettlementResp::getSettlementAmount).reduce(BigDecimal.ZERO,BigDecimal::add));
}else{
queryOrderByConditionsResponseVo.setSettlementAmount(BigDecimal.ZERO);
}
queryOrderByConditionsResponseVo.setImgUrl(imgUrl);
queryOrderByConditionsResponseVo.setOrderStateValue(orderSdkAdapter.getOrderStatusValue(orderBean.getOrderState()));
SimpleDateFormat sdff=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sd = sdff.format(new Date(Long.valueOf(orderBean.getCreateTime())));
queryOrderByConditionsResponseVo.setCreateTime(sd);
return queryOrderByConditionsResponseVo; }
).collect(Collectors.toList()); ).collect(Collectors.toList());
} catch (Exception e) { } catch (Exception e) {
LogUtil.error("queryOrders_error", gson.toJson(queryOrderByConditionsRequestVo), e); LogUtil.error("queryOrders_error", gson.toJson(queryOrderByConditionsRequestVo), e);
...@@ -3392,6 +3402,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3392,6 +3402,7 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* 获取商户支付超时时间 * 获取商户支付超时时间
*
* @param partnerId 商户Id * @param partnerId 商户Id
* @return 超时时间 * @return 超时时间
*/ */
...@@ -3407,6 +3418,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3407,6 +3418,7 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* 催单 * 催单
*
* @param reminderVo * @param reminderVo
* @return * @return
*/ */
...@@ -3416,9 +3428,6 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3416,9 +3428,6 @@ public class OrderServiceImpl implements Orderservice {
if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) { if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN); return ResponseUtil.error(ResponseResult.NOT_LOGIN);
} }
if(fnStoreId.indexOf(userLoginInfoDto.getStoreId()) >= 0) {
return ResponseUtil.success();
}
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(reminderVo.getOid()); baseQueryOrderRequest.setOrderId(reminderVo.getOid());
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo()); baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
...@@ -3433,19 +3442,19 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3433,19 +3442,19 @@ public class OrderServiceImpl implements Orderservice {
} }
//调用配送服务进行催单 //调用配送服务进行催单
OrderRemindRequestDto dto =new OrderRemindRequestDto(); OrderRemindRequestDto dto = new OrderRemindRequestDto();
dto.setOrderKey(reminderVo.getOid()); dto.setOrderKey(reminderVo.getOid());
dto.setStoreId(orderBean.getShopId()); dto.setStoreId(orderBean.getShopId());
dto.setDeliveryChannel("CanDao"); dto.setDeliveryChannel("CanDao");
dto.setDisplayOrderId(orderBean.getDownstreamThirdOrderCode()); dto.setDisplayOrderId(orderBean.getDownstreamThirdOrderCode());
if (orderBean.getAddInfo() != null){ if (orderBean.getAddInfo() != null) {
dto.setDeliveryId(orderBean.getAddInfo().getDeliveryId()); dto.setDeliveryId(orderBean.getAddInfo().getDeliveryId());
} }
QueryDeliveryAmountResponseDto responseDto = deliveryFeiginClient.orderRemind(dto); QueryDeliveryAmountResponseDto responseDto = deliveryFeiginClient.orderRemind(dto);
if(null != responseDto && 120 == responseDto.getCode()) { if (null != responseDto && 120 == responseDto.getCode()) {
return ResponseUtil.error("120", responseDto.getMsg()); return ResponseUtil.error("120", responseDto.getMsg());
} }
if(responseDto == null || RESPONSE_SUCCESS_CODE != responseDto.getCode()) { if (responseDto == null || RESPONSE_SUCCESS_CODE != responseDto.getCode()) {
return ResponseUtil.error(ResponseResult.DELIVERY_REMINDER_ERROR); return ResponseUtil.error(ResponseResult.DELIVERY_REMINDER_ERROR);
} }
return ResponseUtil.success(); return ResponseUtil.success();
...@@ -3453,6 +3462,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3453,6 +3462,7 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* 查询骑手位置 * 查询骑手位置
*
* @param vo * @param vo
* @return * @return
*/ */
...@@ -3462,11 +3472,11 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3462,11 +3472,11 @@ public class OrderServiceImpl implements Orderservice {
if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) { if (userLoginInfoDto == null || StringUtils.isBlank(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN); return ResponseUtil.error(ResponseResult.NOT_LOGIN);
} }
QueryLocusRiderTrackDto dto =new QueryLocusRiderTrackDto(); QueryLocusRiderTrackDto dto = new QueryLocusRiderTrackDto();
dto.setDeliveryChannel("CanDao"); dto.setDeliveryChannel("CanDao");
dto.setOrderId(vo.getOid()); dto.setOrderId(vo.getOid());
MCCafeDeliveryBaseResponse<ResRiderTrackDto> responses = deliveryFeiginClient.listFreeRider(dto); MCCafeDeliveryBaseResponse<ResRiderTrackDto> responses = deliveryFeiginClient.listFreeRider(dto);
if(responses == null || RESPONSE_SUCCESS_CODE != Integer.valueOf(responses.getCode()) || responses.getData() ==null ) { if (responses == null || RESPONSE_SUCCESS_CODE != Integer.valueOf(responses.getCode()) || responses.getData() == null) {
return ResponseUtil.error(ResponseResult.DELIVERY_QUERY_RIDER_ERROR); return ResponseUtil.error(ResponseResult.DELIVERY_QUERY_RIDER_ERROR);
} }
return ResponseUtil.success(responses.getData()); return ResponseUtil.success(responses.getData());
...@@ -3484,12 +3494,12 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3484,12 +3494,12 @@ public class OrderServiceImpl implements Orderservice {
} }
public String getMealCodeRule(String appId){ public String getMealCodeRule(String appId) {
String mealCodeRule = ""; String mealCodeRule = "";
List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = orderAdapter.cacheSelectDefaultPage(appId, "2"); List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = orderAdapter.cacheSelectDefaultPage(appId, "2");
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity())); Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get("mealCodeRule"); AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get("mealCodeRule");
if(null != refundDeliveryFeeConfig) { if (null != refundDeliveryFeeConfig) {
mealCodeRule = refundDeliveryFeeConfig.getAppValue(); mealCodeRule = refundDeliveryFeeConfig.getAppValue();
} }
return mealCodeRule; return mealCodeRule;
...@@ -3497,6 +3507,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3497,6 +3507,7 @@ public class OrderServiceImpl implements Orderservice {
/** /**
* 创建混合支付 * 创建混合支付
*
* @param orderBean * @param orderBean
* @param paymentRequest * @param paymentRequest
* @param partnerPayOvertime * @param partnerPayOvertime
...@@ -3516,7 +3527,8 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3516,7 +3527,8 @@ public class OrderServiceImpl implements Orderservice {
, String trackingNo) { , String trackingNo) {
String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId); String ebCode = this.getPayCodeByChanel(paymentRequest.getWxAppId(), channel, storeId);
OrderPayResponse orderPayResponse = new OrderPayResponse();; OrderPayResponse orderPayResponse = new OrderPayResponse();
;
if (StringUtils.isBlank(ebCode)) { if (StringUtils.isBlank(ebCode)) {
orderPayResponse.setMsg("请先联系相关人员配置商户对应的支付渠道"); orderPayResponse.setMsg("请先联系相关人员配置商户对应的支付渠道");
return orderPayResponse; return orderPayResponse;
...@@ -3529,22 +3541,23 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3529,22 +3541,23 @@ public class OrderServiceImpl implements Orderservice {
do { do {
try { try {
combPayResponse = comPayClient.combPay(combPayRequest, combPayRequest.getPartner_id()); combPayResponse = comPayClient.combPay(combPayRequest, combPayRequest.getPartner_id());
if (combPayResponse!=null) { if (combPayResponse != null) {
break; break;
} }
} catch (Exception exception) {} } catch (Exception exception) {
}
i++; i++;
} while (i<4); } while (i < 4);
if (combPayResponse==null || !ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS.equals(combPayResponse.getCode())) { if (combPayResponse==null || !ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS.equals(combPayResponse.getCode())) {
log.info("混合支付返回信息错误,trackingNo:{} request:{} response:{}",trackingNo, JSONObject.toJSONString(combPayRequest), JSONObject.toJSONString(combPayResponse)); log.info("混合支付返回信息错误,trackingNo:{} request:{} response:{}",trackingNo, JSONObject.toJSONString(combPayRequest), JSONObject.toJSONString(combPayResponse));
orderPayResponse.setMsg(combPayResponse.getMsg()); orderPayResponse.setMsg(combPayResponse!=null ? "支付:"+combPayResponse.getMsg() :"混合支付忙不过来啦,请稍后再试");
return orderPayResponse; return orderPayResponse;
} }
Integer svcAmount = 0; Integer svcAmount = 0;
Integer svcVAmount = 0; Integer svcVAmount = 0;
List<CombPayResponse.PayPlatform> payPlatforms = combPayResponse.getData().getPayPlatformResponseList(); List<CombPayResponse.PayPlatform> payPlatforms = combPayResponse.getData().getPayPlatformResponseList();
if(payPlatforms.size()==0) { if (payPlatforms.size() == 0) {
orderPayResponse.setMsg("混合支付:生成预支付失败"); orderPayResponse.setMsg("混合支付:生成预支付失败");
return orderPayResponse; return orderPayResponse;
} }
...@@ -3563,13 +3576,13 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3563,13 +3576,13 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setOrderId(orderBean.getOid()); orderPayResponse.setOrderId(orderBean.getOid());
orderPayResponse.setPayMode(orderPayResponse.getPayMode()); orderPayResponse.setPayMode(orderPayResponse.getPayMode());
//隐射关系 //隐射关系
redisCache.save(RedisUtil.getPaymentTransIdOrderKey(cashPay.getTransId()),orderBean.getOid(),1L,TimeUnit.DAYS); redisCache.save(RedisUtil.getPaymentTransIdOrderKey(cashPay.getTransId()), orderBean.getOid(), 1L, TimeUnit.DAYS);
//加入轮训队列 //加入轮训队列
putDelMq(orderBean.getCompanyId(),storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue()); putDelMq(orderBean.getCompanyId(), storeId, orderPayResponse.getFmId(), orderBean.getOid(), PayChannelType.getByEbcode(cashPay.getEbCode()).getIndex().intValue());
return orderPayResponse; return orderPayResponse;
} }
//单svc //单svc
else{ else {
CombPayResponse.PayPlatform svcPay = payPlatforms CombPayResponse.PayPlatform svcPay = payPlatforms
.stream() .stream()
.filter(f -> PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst() .filter(f -> PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
...@@ -3594,19 +3607,20 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3594,19 +3607,20 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
return orderPayResponse; return orderPayResponse;
} }
/** /**
* 通过payCode ->clientCode * 通过payCode ->clientCode
*
* @param wxAppid * @param wxAppid
* @param channel * @param channel
* @param storeId * @param storeId
* @return * @return
*/ */
private String getPayCodeByChanel(String wxAppid,String channel,String storeId) { private String getPayCodeByChanel(String wxAppid, String channel, String storeId) {
if (StringUtils.isBlank(channel)) return ""; if (StringUtils.isBlank(channel)) return "";
PayChannelType byIndex = PayChannelType.getByIndex(Byte.parseByte(channel)); PayChannelType byIndex = PayChannelType.getByIndex(Byte.parseByte(channel));
...@@ -3614,7 +3628,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3614,7 +3628,7 @@ public class OrderServiceImpl implements Orderservice {
AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(wxAppid AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(wxAppid
, storeId , storeId
, byIndex.getEbcode()); , byIndex.getEbcode());
if (wxAppStore!=null && StringUtils.isNotBlank(wxAppStore.getClientCode())) { if (wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getClientCode())) {
return wxAppStore.getClientCode(); return wxAppStore.getClientCode();
} }
return ""; return "";
...@@ -3623,22 +3637,23 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3623,22 +3637,23 @@ public class OrderServiceImpl implements Orderservice {
public String cannelComPayOrder(ConfirmOrderDto confirmOrderDto, QueryOrdersResponseDto.DataBean.OrderBean orderBean) { public String cannelComPayOrder(ConfirmOrderDto confirmOrderDto, QueryOrdersResponseDto.DataBean.OrderBean orderBean) {
//失败冲正库存,冲正活动库存,取消订单 //失败冲正库存,冲正活动库存,取消订单
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(confirmOrderDto.getOrderId(), orderBean.getCompanyId(), CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(confirmOrderDto.getOrderId(), orderBean.getCompanyId(),
AfterSalesType.SYSTEM_CANCEL,"混合支付SVC卡支付失败", LogTreadLocal.getTrackingNo(), null); AfterSalesType.SYSTEM_CANCEL, "混合支付SVC卡支付失败", LogTreadLocal.getTrackingNo(), null);
//BaseOrderResponse request = orderCenterSdkService.orderCancel(cancelOrderRequest); //BaseOrderResponse request = orderCenterSdkService.orderCancel(cancelOrderRequest);
BaseOrderResponse request = null; BaseOrderResponse request = null;
int i = 1; int i = 1;
do { do {
try { try {
request = orderCenterSdkService.orderCancel(cancelOrderRequest); request = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (request!=request) { if (request != request) {
break; break;
} }
} catch (Exception e) {} } catch (Exception e) {
}
i++; i++;
}while (i<4); } while (i < 4);
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
if(ResponseCodeConstant.RESPONSE_SUCCESS.equals(request.getErrcode())) { if (ResponseCodeConstant.RESPONSE_SUCCESS.equals(request.getErrcode())) {
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
return this.newSendPaySuccessNoticeMessage(); return this.newSendPaySuccessNoticeMessage();
} else { } else {
......
...@@ -99,7 +99,7 @@ public class DefaultPromotionService implements IPromotionService { ...@@ -99,7 +99,7 @@ public class DefaultPromotionService implements IPromotionService {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount : discounts) { for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount : discounts) {
int discountAmount = (discount.getDiscount() == null) ? 0 : discount.getDiscount(); int discountAmount = (discount.getDiscount() == null) ? 0 : discount.getDiscount();
Integer discountType = discount.getType(); Integer discountType = discount.getType();
if (discountType != null && discountAmount > 0) { if (discountType != null && discountAmount >= 0) {
ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto(); ActivityDiscountsDto activityDiscountsDto = new ActivityDiscountsDto();
activityDiscountsDto.setActivityCode(discount.getActivityCode()); activityDiscountsDto.setActivityCode(discount.getActivityCode());
activityDiscountsDto.setActivityName(discount.getActivityName()); activityDiscountsDto.setActivityName(discount.getActivityName());
......
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