Commit dd965948 by 周晓航

修改成批量操作

parent 7ad343d8
......@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* @author : xh.Z
......@@ -18,7 +19,7 @@ public class OrderDevelopRefundVo {
* 订单号
*/
@NotBlank(message = "订单编号不能为空")
private String orderCode;
private List<String> orderCodes;
private String partnerId;
......
......@@ -157,7 +157,6 @@ import java.util.stream.Collectors;
import static cn.freemud.constant.OrderRefundConstant.ALLOW_REFUND;
@Service
public class OrderServiceImpl implements Orderservice {
......@@ -675,7 +674,7 @@ public class OrderServiceImpl implements Orderservice {
return newSendPaySuccessNoticeMessage();
}
//无售后单,退款回掉取消订单,冲正库存等
if(CollectionUtils.isEmpty(orderBean.getRefundList())){
if (CollectionUtils.isEmpty(orderBean.getRefundList())) {
return cancelOrder(orderBean);
}
//订单状态
......@@ -980,7 +979,7 @@ public class OrderServiceImpl implements Orderservice {
// 所以在这个地方排除掉coco,在下边单独实现
//参与支付有礼活动
// if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, queryOrderVo.getPayGiftVer());
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, queryOrderVo.getPayGiftVer());
// }
} catch (Exception e) {
......@@ -1256,7 +1255,7 @@ public class OrderServiceImpl implements Orderservice {
// 所以在这个地方排除掉coco,在下边单独实现
//参与支付有礼活动
// if (!cocoPartnerId.contains(queryOrderVo.getPartnerId())) {
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, queryOrderVo.getPayGiftVer());
joinPayGift(queryOrderVo.getSessionId(), queryOrderResponseVo, partnerId, queryOrderVo.getPayGiftVer());
// }
} catch (Exception e) {
AppLogUtil.errorLog("queryOrders_activity_error", gson.toJson(queryOrdersRequest), gson.toJson(queryOrderResponseVo), e);
......@@ -1897,7 +1896,7 @@ public class OrderServiceImpl implements Orderservice {
// 这里如果发现会员id不一致,就去查询会员合并数据,重新匹配一下
// 不要在外面查, 大部分情况不会进这个if, 不影响通常逻辑下的tps
List<String> memberIds = memberInfoManager.getMemberAllIds(partnerId, memberId);
if (! memberIds.contains(orderByIdResponseDto.getData().getUserId()))
if (!memberIds.contains(orderByIdResponseDto.getData().getUserId()))
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "不能操作非本人的订单");
}
OrderBeanV1 orderBean = orderByIdResponseDto.getData();
......@@ -1911,7 +1910,7 @@ public class OrderServiceImpl implements Orderservice {
}
// 微商城订单
if (Objects.equals(BizTypeEnum.MALL.getBizType() ,orderBean.getBizType()) || Objects.equals("23",orderBean.getOrderClient())) {
if (Objects.equals(BizTypeEnum.MALL.getBizType(), orderBean.getBizType()) || Objects.equals("23", orderBean.getOrderClient())) {
// 微商城因为没有退款原因选项 所以将用户退款说明用户作为退款原因
orderRefundVo.setReason(orderRefundVo.getRemarks());
// 必须选择退款方式
......@@ -1929,8 +1928,7 @@ public class OrderServiceImpl implements Orderservice {
&& (StringUtils.isBlank(orderBean.getSpellGroupCode()) || StringUtils.isBlank(orderBean.getSpellGroupActivityCode()))) {
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_GROUP_WORK_ERROR);
}
}
else if (NewOrderStatus.DELIVERING.getIndex().equals(orderBean.getStatusV2())) {
} else if (NewOrderStatus.DELIVERING.getIndex().equals(orderBean.getStatusV2())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单配送中,退款请联系售后!");
}
......@@ -1958,7 +1956,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "商家正在处理中,请稍后……");
}
//商城订单可二次发起退款
if (!Objects.equals(BizTypeEnum.MALL.getBizType(),orderBean.getBizType()) && RefundStatus.REFUSE_REFUND.getCode().equals(refundBean.getStatus())) {
if (!Objects.equals(BizTypeEnum.MALL.getBizType(), orderBean.getBizType()) && RefundStatus.REFUSE_REFUND.getCode().equals(refundBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "您的申请已被商家拒绝,请联系门店沟通。");
}
}
......@@ -1970,7 +1968,7 @@ public class OrderServiceImpl implements Orderservice {
boolean isRefundDeliveryFee = true;
//商城查询配送费
if (Objects.equals(BizTypeEnum.MALL.getBizType(),orderBean.getBizType())
if (Objects.equals(BizTypeEnum.MALL.getBizType(), orderBean.getBizType())
&& StringUtils.isNotEmpty(orderBean.getExtInfo())) {
JSONObject extInfoJsonObject = JSONObject.parseObject(orderBean.getExtInfo());
OrderExtInfoDto orderExtInfoDto = extInfoJsonObject.toJavaObject(OrderExtInfoDto.class);
......@@ -2349,7 +2347,7 @@ public class OrderServiceImpl implements Orderservice {
spuIds.add(productDto.getProductId());
}
Map<String, GetProductsVo> products = itemService.getSpuProducts(spuIds, createOrderDto.getCompanyId(), createOrderDto.getShopId(), createOrderDto.getMenuType());
if (products==null) {
if (products == null) {
return createOrderDto;
}
if (products.isEmpty()) {
......@@ -3311,6 +3309,7 @@ public class OrderServiceImpl implements Orderservice {
/**
* 支付退款成功,订单未创建售后单
*
* @return
*/
private String cancelOrder(OrderBeanV1 orderBean) {
......@@ -3346,7 +3345,7 @@ public class OrderServiceImpl implements Orderservice {
userLoginInfoDto = new AssortmentCustomerInfoVo();
userLoginInfoDto.setMemberId(orderBean.getUserId());
userLoginInfoDto.setWxAppId(orderBean.getAppId());
}else {
} else {
// 校验用户是否登录
BaseResponse<AssortmentCustomerInfoVo> baseResponse = this.checkUserLoginInfoDto(orderRefundVo.getSessionId());
if (!Objects.equals(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
......@@ -3375,7 +3374,7 @@ public class OrderServiceImpl implements Orderservice {
// 走正常退款订单逻辑 这里是否可以丢MQ 异步操作
try {
this.doCouponOrderRefund(orderBean, orderRefundVo);
}catch (Exception e){
} catch (Exception e) {
RefundFailureRequestDTO requestDTO = RefundFailureRequestDTO.builder().orderCode(orderBean.getOid())
.failureType(RefundFailureRequestDTO.FAILURETYPE_SYSTEM_ERROR)
.reason(JSON.toJSONString(e.getMessage()))
......@@ -3388,7 +3387,6 @@ public class OrderServiceImpl implements Orderservice {
}
/**
*
* @param orderBean
* @return
*/
......@@ -3416,7 +3414,8 @@ public class OrderServiceImpl implements Orderservice {
}
/**
* 调用券码作废操作
* 调用券码作废操作
*
* @param orderBean
* @return
*/
......@@ -3438,7 +3437,7 @@ public class OrderServiceImpl implements Orderservice {
CouponResponseDTO<CheckAndCancelResponseDTO> responseDTO = couponOnlineClient.checkandcancel(request);
if (responseDTO == null
|| !Objects.equals(responseDTO.getStatusCode(),100)) {
|| !Objects.equals(responseDTO.getStatusCode(), 100)) {
// 直接接口调用失败,
return ResponseUtil.error(ResponseResult.COUPON_CANCEL_FAIL.getCode(), "操作失败,请稍后重试");
}
......@@ -3476,7 +3475,7 @@ public class OrderServiceImpl implements Orderservice {
QueryRefundFailuresListReq queryRefundFailuresListReq = new QueryRefundFailuresListReq();
queryRefundFailuresListReq.setId(orderRefundRetryVo.getId());
BaseResponse<List<QueryRefundFailuresListDto>> queryRefundFailuresListDtoBaseResponse = orderServiceClient.refundFailuresList(queryRefundFailuresListReq);
if(!ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(queryRefundFailuresListDtoBaseResponse.getCode())
if (!ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(queryRefundFailuresListDtoBaseResponse.getCode())
|| CollectionUtils.isEmpty(queryRefundFailuresListDtoBaseResponse.getResult())
|| queryRefundFailuresListDtoBaseResponse.getResult().size() != 1) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "该记录不存在或查询异常");
......@@ -3486,11 +3485,11 @@ public class OrderServiceImpl implements Orderservice {
// 查询订单
BaseResponse<OrderBeanV1> orderResponse = this.checkOrderAndGetOrderBean(queryRefundFailuresListDto.getOrderCode());
if (!Objects.equals(orderResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单数据查询失败:"+orderResponse.getMessage());
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单数据查询失败:" + orderResponse.getMessage());
}
OrderBeanV1 orderBean = orderResponse.getResult();
AfterSalesOrderResp afterSalesOrderResp = orderBean.getAfterSalesOrderResp();
if(afterSalesOrderResp == null) {
if (afterSalesOrderResp == null) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "不存在售后单信息");
}
......@@ -3501,7 +3500,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "处理中,请稍等。");
}
if(Integer.valueOf(1).equals(queryRefundFailuresListDto.getLastFailureType()) || Integer.valueOf(2).equals(queryRefundFailuresListDto.getLastFailureType())) {
if (Integer.valueOf(1).equals(queryRefundFailuresListDto.getLastFailureType()) || Integer.valueOf(2).equals(queryRefundFailuresListDto.getLastFailureType())) {
Long refundId = System.currentTimeMillis();
if (orderBean.getAmount() != 0) {
......@@ -3510,7 +3509,7 @@ public class OrderServiceImpl implements Orderservice {
MultiOrderRefundRequest multiOrderRefundRequest = orderAdapter.getMultiOrderPayRefundRequest(orderBean, refundId);
MultiOrderRefundResponse multiOrderRefundResponse = payServiceImpl.paymentApplicationRefund(multiOrderRefundRequest, orderBean.getCompanyId());
if (multiOrderRefundResponse == null || multiOrderRefundResponse.getData() == null || !ResponseCodeConstant.RESPONSE_SUCCESS_200.equals(multiOrderRefundResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "调用支付退款接口失败:"+JSON.toJSONString(multiOrderRefundResponse));
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "调用支付退款接口失败:" + JSON.toJSONString(multiOrderRefundResponse));
}
List<MultiOrderRefundResponse.RefundPlatformResponse> refundPlatformResponseList = multiOrderRefundResponse.getData().refundPlatformResponseList;
if (null != refundPlatformResponseList && refundPlatformResponseList.size() > 0) {
......@@ -3523,10 +3522,10 @@ public class OrderServiceImpl implements Orderservice {
orderPayRefundRequest.setRefundDesc("退款失败人工重试");
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = payServiceImpl.orderRefund(orderPayRefundRequest);
if (response == null || response.getData() == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "调用支付退款接口失败:"+JSON.toJSONString(response));
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "调用支付退款接口失败:" + JSON.toJSONString(response));
}
if(!ResponseConstant.SUCCESS_RESPONSE_CODE.equals(response.getData().getStatusCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "支付退款失败:"+JSON.toJSONString(response));
if (!ResponseConstant.SUCCESS_RESPONSE_CODE.equals(response.getData().getStatusCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "支付退款失败:" + JSON.toJSONString(response));
}
}
}
......@@ -3536,7 +3535,7 @@ public class OrderServiceImpl implements Orderservice {
refundFailuresSuccessfulReq.setOrderCode(orderBean.getOid());
refundFailuresSuccessfulReq.setPartnerId(orderBean.getCompanyId());
BaseResponse baseResponse = orderServiceClient.refundFailuresSuccessful(refundFailuresSuccessfulReq);
if(!ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(baseResponse.getCode())) {
if (!ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(baseResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "处理完成但更新记录失败");
}
......@@ -3554,7 +3553,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "基础服务订单退款完成失败");
}
stockHandle.revert(null,orderBean);
stockHandle.revert(null, orderBean);
} else {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "暂不支持该操作");
......@@ -3563,7 +3562,7 @@ public class OrderServiceImpl implements Orderservice {
} catch (Exception e) {
throw e;
} finally {
LockUtils.unlock(redisCache.getRedisTemplate(),lockKey);
LockUtils.unlock(redisCache.getRedisTemplate(), lockKey);
}
return ResponseUtil.success();
......@@ -3571,12 +3570,31 @@ public class OrderServiceImpl implements Orderservice {
@Override
public BaseResponse developRefund(OrderDevelopRefundVo orderRefundVo) {
if (CollectionUtils.isEmpty(orderRefundVo.getOrderCodes())) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR.getCode(), "未传递订单号");
}
BaseResponse finalResp = new BaseResponse();
Map<String, String> resultMap = new HashMap<>();
orderRefundVo.getOrderCodes().forEach(orderCode -> {
BaseResponse resp = this.batchDevelopRefund(orderRefundVo, orderCode);
if (Objects.equals(resp.getCode(), ResponseResult.SUCCESS.getCode())) {
resultMap.put(orderCode, "成功");
} else {
resultMap.put(orderCode, resp.getMessage());
}
});
return finalResp;
}
private BaseResponse batchDevelopRefund(OrderDevelopRefundVo orderRefundVo, String orderCode) {
if (StringUtils.isEmpty(orderRefundVo.getReason())) {
orderRefundVo.setReason("内部操作退款,操作人:" + orderRefundVo.getOperator());
}
// 查询订单
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(orderRefundVo.getOrderCode());
baseQueryOrderRequest.setOrderId(orderCode);
baseQueryOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
String string = JSONObject.toJSONString(queryOrderByIdResponse);
......@@ -3594,7 +3612,7 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单已取消,无法退款");
}
// 微商城订单
if (Objects.equals(BizTypeEnum.MALL.getBizType() ,orderBean.getBizType()) || Objects.equals("23",orderBean.getOrderClient())) {
if (Objects.equals(BizTypeEnum.MALL.getBizType(), orderBean.getBizType()) || Objects.equals("23", orderBean.getOrderClient())) {
// 完成/配送中 可以选择退货退款
List<Integer> refundGoodsCodes = Arrays.asList(
NewOrderStatus.DELIVERING.getIndex(), NewOrderStatus.COMPLETE.getIndex());
......@@ -3606,7 +3624,7 @@ public class OrderServiceImpl implements Orderservice {
&& (StringUtils.isBlank(orderBean.getSpellGroupCode()) || StringUtils.isBlank(orderBean.getSpellGroupActivityCode()))) {
return ResponseUtil.error(ResponseResult.SPELL_GROUP_QUERY_GROUP_WORK_ERROR);
}
}else if (NewOrderStatus.DELIVERING.getIndex().equals(orderBean.getStatusV2())) {
} else if (NewOrderStatus.DELIVERING.getIndex().equals(orderBean.getStatusV2())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单配送中,退款请联系售后!");
}
......@@ -3614,7 +3632,7 @@ public class OrderServiceImpl implements Orderservice {
if (PayStatus.HAVE_PAID.getCode().equals(orderBean.getPayStatus())) {
boolean isRefundDeliveryFee = true;
//商城查询配送费
if (Objects.equals(BizTypeEnum.MALL.getBizType(),orderBean.getBizType())
if (Objects.equals(BizTypeEnum.MALL.getBizType(), orderBean.getBizType())
&& StringUtils.isNotEmpty(orderBean.getExtInfo())) {
JSONObject extInfoJsonObject = JSONObject.parseObject(orderBean.getExtInfo());
OrderExtInfoDto orderExtInfoDto = extInfoJsonObject.toJavaObject(OrderExtInfoDto.class);
......@@ -3636,7 +3654,7 @@ public class OrderServiceImpl implements Orderservice {
}
}
}
}else {
} else {
// 查询小程序是否配置了退运费
String configStr = redisCache.hashGet(MessageFormat.format(OrderRedisKeyConstant.ORDER_REFUND_CONFIG, orderBean.getCompanyId(), orderBean.getAppId()), OrderRedisKeyConstant.HashKeyForOrderRefundConfig.TAKE_OUT);
if (StringUtils.isNotEmpty(configStr)) {
......@@ -3655,7 +3673,7 @@ public class OrderServiceImpl implements Orderservice {
if (NewOrderStatus.PLACE_AN_ORDER.getIndex().equals(orderBean.getStatusV2())) {
// 未接单的 请用户直接操作C端小程序处理
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "订单未接单,请指引用户C端操作退款!");
}else {
} else {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setStoreId(orderBean.getShopId());
......@@ -3731,9 +3749,9 @@ public class OrderServiceImpl implements Orderservice {
//支付退款
PayRefundResponse refundResponse;
try {
if(null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size()>0){
if (null != orderBean.getOrderPayItem() && orderBean.getOrderPayItem().size() > 0) {
refundResponse = paymentHandle.multiRefund(orderBean);
}else{
} else {
refundResponse = paymentHandle.refund("用户买券订单-申请退款", orderBean);
}
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.SUCCESS.getCode()) != 0) {
......@@ -3750,7 +3768,7 @@ public class OrderServiceImpl implements Orderservice {
orderServiceClient.refundFailures(requestDTO);
}
state = refundResponse.getPayRefundStatus().getCode();
} catch (OrderServiceException orderEx){
} catch (OrderServiceException orderEx) {
// 系统异常
RefundFailureRequestDTO requestDTO = RefundFailureRequestDTO.builder().orderCode(orderBean.getOid())
.failureType(RefundFailureRequestDTO.FAILURETYPE_SYSTEM_ERROR)
......@@ -3774,7 +3792,7 @@ public class OrderServiceImpl implements Orderservice {
} else if (Objects.equals(PayRefundStatus.SUCCESS.getCode(), state)) {
//退款成功
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
}else {
} else {
// 退款失败,直接给基础服务null 用于后续补偿操作
cancelOrderRequest.setCreateEvent(null);
}
......@@ -3790,7 +3808,7 @@ public class OrderServiceImpl implements Orderservice {
}
if (Objects.nonNull(state)) {
//冲正库存
stockHandle.revert(null,orderBean);
stockHandle.revert(null, orderBean);
}
// 删除订单 通知活动添加商品库存 status 需要老订单的 ordercode
// orderQueueService.backOrdersStatusChange(orderBean.getOrderCode(), orderBean.getOrderState(), orderBean.getPayState());
......@@ -3822,11 +3840,11 @@ public class OrderServiceImpl implements Orderservice {
}
// fisherman 查询配置是否能退款 未完成
boolean isTrue = orderAdapter.checkRefundButtionBizTypeIs6(orderBean.getCompanyId(), orderBean.getBizType(),
orderBean.getStatus(),userLoginInfoDto.getWxAppId(), new Date(orderBean.getGmtCreate()), orderBean.getOrderType());
orderBean.getStatus(), userLoginInfoDto.getWxAppId(), new Date(orderBean.getGmtCreate()), orderBean.getOrderType());
if (isTrue) {
return ResponseUtil.success();
}
return ResponseUtil.error(ResponseResult.COUPON_ORDER_COMMON_VERIFY_FAIL.getCode(),"虚拟券退款配置未启用,请联系客服");
return ResponseUtil.error(ResponseResult.COUPON_ORDER_COMMON_VERIFY_FAIL.getCode(), "虚拟券退款配置未启用,请联系客服");
}
......@@ -3869,7 +3887,6 @@ public class OrderServiceImpl implements Orderservice {
/**
* 发送支付成功模板消息
*
*/
public void sendMessageByNewApp(SendPaySuccessMessageVo sendPaySuccessMessageVo) {
OrderBeanV1 orderBean = new OrderBeanV1();
......
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