Commit 44e0a574 by 徐康

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

parents 687feba7 9b5ce865
...@@ -617,6 +617,7 @@ public class OrderSdkAdapter { ...@@ -617,6 +617,7 @@ public class OrderSdkAdapter {
orderClients.add(OrderClientType.APP.getIndex()); orderClients.add(OrderClientType.APP.getIndex());
} }
} }
orderClients.add(OrderClientType.TIKTOKPAY.getIndex());
orderClients.add(OrderClientType.ALIPAY.getIndex()); orderClients.add(OrderClientType.ALIPAY.getIndex());
orderConditionsReq.setOrderClients(orderClients); orderConditionsReq.setOrderClients(orderClients);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
......
...@@ -113,6 +113,7 @@ public class OrderCallBackMQService { ...@@ -113,6 +113,7 @@ public class OrderCallBackMQService {
//2:未支付 //2:未支付
requestDto.setOrderStatus(2); requestDto.setOrderStatus(2);
try { try {
log.info("common on revert body try requestDto:" + requestDto);
Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", orderCode, backOrdersChangeOrderStatusConsumerQueue); Header header = new Header(MQAction.INSERT.getAction(), "backOrdersStatusChange", orderCode, backOrdersChangeOrderStatusConsumerQueue);
MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto); MQMessage<OrderStatusChangeRequestDto> message = new MQMessage<>(header, requestDto);
mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message); mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersChangeOrderStatusConsumerQueue, message);
......
...@@ -29,7 +29,6 @@ import javax.validation.Valid; ...@@ -29,7 +29,6 @@ import javax.validation.Valid;
@RestController @RestController
@RequestMapping(value = "/callback", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) @RequestMapping(value = "/callback", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Log4j
public class CallBackController { public class CallBackController {
@Autowired @Autowired
...@@ -38,8 +37,6 @@ public class CallBackController { ...@@ -38,8 +37,6 @@ public class CallBackController {
@PostMapping("/order") @PostMapping("/order")
@ApiAnnotation(logMessage = "/order") @ApiAnnotation(logMessage = "/order")
public BaseResponse orderCallBackHandle(@Valid @RequestBody @LogParams OrderCallBackRequestVo requestVo) { public BaseResponse orderCallBackHandle(@Valid @RequestBody @LogParams OrderCallBackRequestVo requestVo) {
log.info("in callback order ordercode:"+ requestVo.getOrderCode());
log.info("callback order requestVo:"+ requestVo);
return orderCallBackService.orderCallBackHandle(requestVo); return orderCallBackService.orderCallBackHandle(requestVo);
} }
......
...@@ -2905,10 +2905,11 @@ public class OrderAdapter { ...@@ -2905,10 +2905,11 @@ public class OrderAdapter {
} }
createOrderResponseVo.setOrderStr(payOrderBean == null ? "" : payOrderBean.getAliPayOrder()); createOrderResponseVo.setOrderStr(payOrderBean == null ? "" : payOrderBean.getAliPayOrder());
//抖音支付添加返回OrderInfo //抖音支付添加返回OrderInfo
if(PayChannelType.TIKTOKPAY.getIndex().equals(orderBean.getPayChannelType())) { if(String.valueOf(PayChannelType.TIKTOKPAY.getIndex()).equals(orderBean.getPayChannelType())) {
OrderInfo orderInfo = new OrderInfo(); OrderInfo orderInfo = new OrderInfo();
orderInfo.setOrder_id(orderPayResponse.getThirdOrderId()); orderInfo.setOrder_id(orderPayResponse.getThirdOrderId());
orderInfo.setOrder_token(orderPayResponse.getThirdOrderToken()); orderInfo.setOrder_token(orderPayResponse.getThirdOrderToken());
createOrderResponseVo.setOrderInfo(orderInfo);
} }
return createOrderResponseVo; return createOrderResponseVo;
......
...@@ -395,5 +395,15 @@ public class OrderController { ...@@ -395,5 +395,15 @@ public class OrderController {
public BaseResponse queryOrderRider(@Validated @LogParams @RequestBody OrderRiderRequestVo requestVo){ public BaseResponse queryOrderRider(@Validated @LogParams @RequestBody OrderRiderRequestVo requestVo){
return orderservice.queryOrderRider(requestVo); return orderservice.queryOrderRider(requestVo);
} }
/**
* timeOutRefund
* @param timeOutOrderVo
* @return
*/
@ApiAnnotation(logMessage = "timeOutOrderRefund")
@PostMapping("/timeOutOrderRefund")
public BaseResponse timeOutOrderRefund(@Validated @LogParams @RequestBody TimeOutOrderVo timeOutOrderVo){
return orderservice.timeOutOrderRefund(timeOutOrderVo);
}
} }
...@@ -200,7 +200,7 @@ public class QueryOrdersResponseDto { ...@@ -200,7 +200,7 @@ public class QueryOrdersResponseDto {
private List<OrderCostResp> orderCostDetailList; private List<OrderCostResp> orderCostDetailList;
private List<QueryOrdersResponse.DataBean.OrderBean.OrderPayItem> orderPayItem; private List<QueryOrdersResponse.DataBean.OrderBean.OrderPayItem> orderPayItem;
private Integer abnormalState;
/** /**
* 订单操作状态(从订单操作历史表中获取) * 订单操作状态(从订单操作历史表中获取)
*/ */
......
...@@ -64,16 +64,6 @@ public class CreateOrderResponseVo { ...@@ -64,16 +64,6 @@ public class CreateOrderResponseVo {
private String orderStr; private String orderStr;
/** /**
* 抖音支付的返回的为orderId 映射为我们thirdOrderId
*/
private String thirdOrderId;
/**
* 抖音支付的orderToken 映射为我们thirdOrderToken
*/
private String thirdOrderToken;
/**
* 抖音支付返回数据 * 抖音支付返回数据
*/ */
private OrderInfo orderInfo; private OrderInfo orderInfo;
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: GetProductVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: liming.guo
* @date: 2018/5/16 17:35
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class TimeOutOrderVo {
@NotEmpty(message = "订单编号不能为空")
private String oid;
private String partnerId;
}
...@@ -144,4 +144,6 @@ public interface Orderservice { ...@@ -144,4 +144,6 @@ public interface Orderservice {
BaseResponse queryCollageOrderById(Integer operation,String sessionId, String oid, String partnerId,String channel); BaseResponse queryCollageOrderById(Integer operation,String sessionId, String oid, String partnerId,String channel);
BaseResponse queryOrderRider(OrderRiderRequestVo requestVo); BaseResponse queryOrderRider(OrderRiderRequestVo requestVo);
BaseResponse timeOutOrderRefund(TimeOutOrderVo timeOutOrderVo);
} }
...@@ -41,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -41,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -99,7 +100,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -99,7 +100,8 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
private OrderCommonService orderCommonService; private OrderCommonService orderCommonService;
@Autowired @Autowired
private SellCouponOrderServiceImpl sellCouponOrderService; private SellCouponOrderServiceImpl sellCouponOrderService;
@Value("${saas.autoRefund.client}")
private String autoRefundClient;
@Override @Override
public BaseResponse createOrderNew(CreateOrderVo createOrderVo) { public BaseResponse createOrderNew(CreateOrderVo createOrderVo) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId()); AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
...@@ -249,8 +251,9 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -249,8 +251,9 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){ if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
Integer client = OrderSourceType.getClientByCode(orderBean.getSource());
//若是app订单超时回调了 订单已取消则做退款处理 //若是app订单超时回调了 订单已取消则做退款处理
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus()) && OrderSourceType.SAAS.getCode().equals(orderBean.getSource())) { if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus()) && Arrays.asList(autoRefundClient.split(",")).contains(client.toString())) {
orderService.timeOutRefund(orderBean); orderService.timeOutRefund(orderBean);
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
......
...@@ -1265,6 +1265,20 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1265,6 +1265,20 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responseVo); return ResponseUtil.success(responseVo);
} }
@Override
public BaseResponse timeOutOrderRefund(TimeOutOrderVo timeOutOrderVo) {
Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans = this.getOrderBeanByOrderId(timeOutOrderVo.getOid());
if (MapUtils.isEmpty(orderBeans)) {
ResponseUtil.error("404","订单不存在");
}
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())){
this.timeOutRefund(orderBean);
}
return ResponseUtil.success();
}
private String getRedpacketsPicture(String activityId) { private String getRedpacketsPicture(String activityId) {
if (StringUtils.isNotBlank(activityId)) { if (StringUtils.isNotBlank(activityId)) {
try { try {
...@@ -2461,7 +2475,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2461,7 +2475,7 @@ public class OrderServiceImpl implements Orderservice {
orderClient = OrderClientType.APP; orderClient = OrderClientType.APP;
} }
//抖音小程序 //抖音小程序
if(PayChannelType.TIKTOKPAY.getIndex().equals(createOrderVo.getPayChannelType()) && "3".equalsIgnoreCase(createOrderVo.getChannel())) { if(PayChannelType.TIKTOKPAY.getIndex().equals(createOrderVo.getPayChannelType()) && "5".equalsIgnoreCase(createOrderVo.getChannel())) {
orderClient = OrderClientType.TIKTOKPAY; orderClient = OrderClientType.TIKTOKPAY;
} }
long totalAmount = 0; long totalAmount = 0;
...@@ -3687,10 +3701,16 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3687,10 +3701,16 @@ public class OrderServiceImpl implements Orderservice {
public void timeOutRefund(QueryOrdersResponseDto.DataBean.OrderBean orderBean) { public void timeOutRefund(QueryOrdersResponseDto.DataBean.OrderBean orderBean) {
//调用支付退款 //调用支付退款
log.info("payment timeout callback for refund orderDto={}",JSON.toJSONString(orderBean)); log.info("payment timeout callback for refund orderDto={}",JSON.toJSONString(orderBean));
Integer abState = 4;
if (abState.equals(orderBean.getAbnormalState()) ) {
log.info("payment timeout callback for refund is exist");
return;
}
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();
OrderExtInfoDto orderExtInfoDTO = gson.fromJson(orderBean.getExtInfo(), OrderExtInfoDto.class); OrderExtInfoDto orderExtInfoDTO = gson.fromJson(orderBean.getExtInfo(), OrderExtInfoDto.class);
if (orderExtInfoDTO==null || StringUtils.isBlank(orderExtInfoDTO.getFmId())) { if (orderExtInfoDTO==null || StringUtils.isBlank(orderExtInfoDTO.getFmId())) {
log.info("payment timeout callback for refund not create pre order");
return; return;
} }
Integer state = PayRefundStatus.SUCCESS.getCode(); Integer state = PayRefundStatus.SUCCESS.getCode();
...@@ -3746,4 +3766,5 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3746,4 +3766,5 @@ public class OrderServiceImpl implements Orderservice {
} }
} }
} }
} }
...@@ -425,6 +425,9 @@ public class CartGoods { ...@@ -425,6 +425,9 @@ public class CartGoods {
if (CollectionUtils.isNotEmpty(productGroupList)) { if (CollectionUtils.isNotEmpty(productGroupList)) {
for (ComboxGoods goods : productGroupList) { for (ComboxGoods goods : productGroupList) {
originalString.append(goods.toString()); originalString.append(goods.toString());
if (CollectionUtils.isNotEmpty(goods.getProductMaterialList())) {
goods.getProductMaterialList().stream().sorted(Comparator.comparing(MaterialGoods::getSpuId)).forEach(e -> originalString.append(e.getSpuId()));
}
} }
} }
if (CollectionUtils.isNotEmpty(productMaterialList)) { if (CollectionUtils.isNotEmpty(productMaterialList)) {
......
...@@ -513,7 +513,7 @@ public class CalculationServiceImpl { ...@@ -513,7 +513,7 @@ public class CalculationServiceImpl {
//单品、多规格加料 //单品、多规格加料
if(CollectionUtils.isNotEmpty(cartGoods.getProductMaterialList())){ if(CollectionUtils.isNotEmpty(cartGoods.getProductMaterialList())){
for (CartGoods.MaterialGoods materialGoods : cartGoods.getProductMaterialList()){ for (CartGoods.MaterialGoods materialGoods : cartGoods.getProductMaterialList()){
materialPrice+= materialGoods.getFinalPrice() * cartGoods.getQty(); materialPrice+= (null != materialGoods.getFinalPrice() ? materialGoods.getFinalPrice() : 0) * (null != cartGoods.getQty() ? cartGoods.getQty() : 0);
} }
} }
return materialPrice; return materialPrice;
......
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