|
|
package com.yoho.ufo.order.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.yoho.order.model.*;
|
|
|
import com.yoho.ufo.order.constant.OperateTypeEnum;
|
|
|
import com.yohobuy.ufo.model.order.common.EnumExpressType;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.elasticsearch.common.collect.Lists;
|
|
|
import org.elasticsearch.common.collect.Maps;
|
|
|
import org.elasticsearch.common.netty.util.internal.StringUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yoho.core.common.utils.DateUtil;
|
|
|
import com.yoho.core.rest.client.ServiceCaller;
|
|
|
import com.yoho.error.exception.ServiceException;
|
|
|
import com.yoho.order.dal.AppraiseAddressMapper;
|
|
|
import com.yoho.order.dal.AreaMapper;
|
|
|
import com.yoho.order.dal.BuyerOrderGoodsMapper;
|
|
|
import com.yoho.order.dal.BuyerOrderMapper;
|
|
|
import com.yoho.order.dal.BuyerOrderMetaMapper;
|
|
|
import com.yoho.order.dal.ExpressCompanyMapper;
|
|
|
import com.yoho.order.dal.ExpressInfoMapper;
|
|
|
import com.yoho.order.dal.ExpressRecordMapper;
|
|
|
import com.yoho.order.dal.OrderOperateRecordMapper;
|
|
|
import com.yoho.order.dal.OrdersPayMapper;
|
|
|
import com.yoho.order.dal.QiniuLiveRecordMapper;
|
|
|
import com.yoho.order.dal.SellerOrderGoodsMapper;
|
|
|
import com.yoho.order.dal.SellerOrderMapper;
|
|
|
import com.yoho.order.dal.SellerOrderMetaMapper;
|
|
|
import com.yoho.order.dal.*;
|
|
|
import com.yoho.order.model.*;
|
|
|
import com.yoho.service.model.order.request.OrderRequest;
|
|
|
import com.yoho.ufo.dal.IdentifyRecordsMapper;
|
|
|
import com.yoho.ufo.dal.ProductMapper;
|
|
|
import com.yoho.ufo.dal.model.IdentifyRecords;
|
|
|
import com.yoho.ufo.dal.model.Product;
|
|
|
import com.yoho.ufo.order.constant.Constant;
|
|
|
import com.yoho.ufo.order.constant.OperateTypeEnum;
|
|
|
import com.yoho.ufo.order.service.IBuyerOrderService;
|
|
|
import com.yoho.ufo.service.impl.UserHelper;
|
|
|
import com.yoho.ufo.service.model.PageResponseBO;
|
|
|
import com.yoho.ufo.util.ImagesConstant;
|
|
|
import com.yoho.ufo.util.ImagesHelper;
|
|
|
import com.yohobuy.ufo.model.order.bo.AppraiseExpressInfoBo;
|
|
|
import com.yohobuy.ufo.model.order.common.EnumExpressType;
|
|
|
import com.yohobuy.ufo.model.order.req.BuyerOrderMetaUpdateReq;
|
|
|
import com.yohobuy.ufo.model.order.resp.BuyerOrderResp;
|
|
|
import com.yohobuy.ufo.model.order.resp.ExpressInfoResp;
|
|
|
import com.yohobuy.ufo.model.order.resp.OrderDetailResp;
|
|
|
import com.yohobuy.ufo.model.order.resp.OrderOperateRecordResp;
|
|
|
import java.util.Arrays;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.elasticsearch.common.collect.Lists;
|
|
|
import org.elasticsearch.common.collect.Maps;
|
|
|
import org.elasticsearch.common.netty.util.internal.StringUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author caoyan
|
...
|
...
|
@@ -370,6 +350,35 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService { |
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void cancelBuyerOrder(String orderCode) {
|
|
|
BuyerOrder buyerOrder = buyerOrderMapper.selectByOrderCode(orderCode);
|
|
|
if (null == buyerOrder) {
|
|
|
throw new ServiceException(400, "订单不存在");
|
|
|
}
|
|
|
if (Constant.BUYER_ORDER_STATUS_ALLOCATING.getByteVal() != buyerOrder.getStatus().byteValue()) {
|
|
|
throw new ServiceException(400, "错误:订单状态变化,不允许取消订单,请重新刷新列表");
|
|
|
}
|
|
|
String args = "ufo-gateway.cancelBuyerOrderByCS";
|
|
|
LOGGER.info("call ufo-gateway enter orderCode is {}, interface is {},result is {}", orderCode, args);
|
|
|
OrderRequest request = new OrderRequest();
|
|
|
request.setUid(buyerOrder.getUid());
|
|
|
request.setOrderCode(Long.valueOf(orderCode));
|
|
|
JSONObject result = serviceCaller.asyncCall(args, request, JSONObject.class).get(5);
|
|
|
LOGGER.info("call ufo-gateway orderCode is {}, interface is {},result is {}", orderCode, args, result.toJSONString());
|
|
|
if (result.getIntValue("code") == 200) {
|
|
|
int operateType = OperateTypeEnum.CS_CANCEL_BEFORE_DEPOT_RECEIVE.getCode();
|
|
|
UserHelper userHelper = new UserHelper();
|
|
|
try {
|
|
|
saveOrderOperateRecord(buyerOrder.getOrderCode(), userHelper, operateType, "");
|
|
|
} catch (Exception e) {
|
|
|
LOGGER.info("cancelBuyerOrder saveOrderOperateRecord operateType={} ,order code ={} ,userHelper = {}", operateType, buyerOrder.getOrderCode(), userHelper);
|
|
|
}
|
|
|
} else {
|
|
|
throw new ServiceException(500, result.getString("message"));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public JSONObject judgeBegin(BuyerOrderReq req){
|
|
|
if(null == req.getId()) {
|
|
|
return null;
|
...
|
...
|
|