|
@@ -6,9 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.core.util.URLUtil;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -19,42 +17,32 @@ import com.zbkj.common.config.CrmebConfig;
|
|
|
import com.zbkj.common.constants.*;
|
|
|
import com.zbkj.common.exception.CrmebException;
|
|
|
import com.zbkj.common.model.admin.SystemAdmin;
|
|
|
-import com.zbkj.common.model.express.Express;
|
|
|
-import com.zbkj.common.model.merchant.Merchant;
|
|
|
import com.zbkj.common.model.order.*;
|
|
|
import com.zbkj.common.model.secondhand.SecondHandOrder;
|
|
|
import com.zbkj.common.model.secondhand.SecondHandOrderDetail;
|
|
|
import com.zbkj.common.model.secondhand.SecondHandProd;
|
|
|
-import com.zbkj.common.model.system.SystemNotification;
|
|
|
import com.zbkj.common.model.user.User;
|
|
|
-import com.zbkj.common.model.user.UserToken;
|
|
|
import com.zbkj.common.page.CommonPage;
|
|
|
import com.zbkj.common.request.*;
|
|
|
import com.zbkj.common.request.secondhand.SecondHandOrderSendRequest;
|
|
|
import com.zbkj.common.response.*;
|
|
|
-import com.zbkj.common.response.onepass.ElectrResponse;
|
|
|
import com.zbkj.common.result.CommonResultCode;
|
|
|
import com.zbkj.common.result.OrderResultCode;
|
|
|
import com.zbkj.common.utils.CrmebDateUtil;
|
|
|
import com.zbkj.common.utils.CrmebUtil;
|
|
|
-import com.zbkj.common.utils.RedisUtil;
|
|
|
import com.zbkj.common.utils.ValidateFormUtil;
|
|
|
import com.zbkj.common.vo.DateLimitUtilVo;
|
|
|
import com.zbkj.common.vo.LogisticsResultVo;
|
|
|
-import com.zbkj.common.vo.MyRecord;
|
|
|
-import com.zbkj.service.dao.OrderDao;
|
|
|
import com.zbkj.service.dao.secondhand.SecondHandOrderDao;
|
|
|
import com.zbkj.service.service.*;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.support.TransactionTemplate;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -159,15 +147,18 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
Page<SecondHandOrder> page = PageHelper.startPage(request.getPage(), request.getLimit());
|
|
|
if (StrUtil.isBlank(request.getKeywords())) {
|
|
|
LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
|
|
|
- lqw.eq(SecondHandOrder::getUid, userId);
|
|
|
- if (request.getStatus() >= 0) {
|
|
|
+ if(request.getIsMyTask()!=null && 1==request.getIsMyTask()){
|
|
|
+ lqw.eq(SecondHandOrder::getSellerId, userId);
|
|
|
+ }else {
|
|
|
+ lqw.eq(SecondHandOrder::getUid, userId);
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotNull(request.getStatus())&&request.getStatus() >= 0) {
|
|
|
if (request.getStatus() == 1) {
|
|
|
lqw.in(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING, OrderConstants.ORDER_STATUS_PART_SHIPPING);
|
|
|
} else if(request.getStatus() == 3) {
|
|
|
lqw.eq(SecondHandOrder::getStatus, 3);
|
|
|
} else {
|
|
|
lqw.eq(SecondHandOrder::getStatus, request.getStatus());
|
|
|
-// lqw.eq(Order::getGroupBuyRecordStatus, 0);
|
|
|
}
|
|
|
lqw.lt(SecondHandOrder::getRefundStatus, OrderConstants.ORDER_REFUND_STATUS_REFUND);
|
|
|
}
|
|
@@ -183,6 +174,7 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
searchMap.put("keywords", keywords);
|
|
|
searchMap.put("status", request.getStatus());
|
|
|
searchMap.put("userId", userId);
|
|
|
+ searchMap.put("isMyTask", request.getIsMyTask());
|
|
|
List<SecondHandOrder> orderList = dao.findFrontList(searchMap);
|
|
|
return CommonPage.copyPageInfo(page, orderList);
|
|
|
}
|
|
@@ -380,20 +372,22 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
return 0;
|
|
|
}
|
|
|
LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
|
|
|
- lqw.eq(SecondHandOrder::getUid, userId);
|
|
|
lqw.eq(SecondHandOrder::getIsDel, false);
|
|
|
if (OrderConstants.ORDER_STATUS_WAIT_SHIPPING.equals(status)) {
|
|
|
lqw.in(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING, OrderConstants.ORDER_STATUS_PART_SHIPPING);
|
|
|
-
|
|
|
- } else if (OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION.equals(status)) {
|
|
|
- lqw.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_AWAIT_VERIFICATION);
|
|
|
+ lqw.eq(SecondHandOrder::getSellerId, userId);
|
|
|
+ lqw.eq(SecondHandOrder::getRefundStatus, 0);
|
|
|
+ } else if (OrderConstants.ORDER_STATUS_WAIT_REFUND.equals(status)) {
|
|
|
+ lqw.eq(SecondHandOrder::getRefundStatus, 1);
|
|
|
+ lqw.eq(SecondHandOrder::getSellerId, userId);
|
|
|
} else {
|
|
|
+ lqw.eq(SecondHandOrder::getUid, userId);
|
|
|
lqw.eq(SecondHandOrder::getStatus, status);
|
|
|
}
|
|
|
lqw.eq(SecondHandOrder::getIsUserDel, false);
|
|
|
lqw.eq(SecondHandOrder::getIsSellerDel, false);
|
|
|
lqw.eq(SecondHandOrder::getIsDel, false);
|
|
|
- lqw.notIn(SecondHandOrder::getRefundStatus, OrderConstants.MERCHANT_REFUND_ORDER_STATUS_REFUND,OrderConstants.ORDER_REFUND_STATUS_APPLY);
|
|
|
+ lqw.notIn(SecondHandOrder::getRefundStatus, OrderConstants.MERCHANT_REFUND_ORDER_STATUS_REFUND);
|
|
|
return dao.selectCount(lqw);
|
|
|
}
|
|
|
|
|
@@ -406,14 +400,15 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
public Boolean takeDelivery(String orderNo) {
|
|
|
SecondHandOrder order =getByOrderNo(orderNo);
|
|
|
LambdaUpdateWrapper<SecondHandOrder> wrapper = Wrappers.lambdaUpdate();
|
|
|
- wrapper.set(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_COMPLETE);
|
|
|
+ wrapper.set(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_TAKE_DELIVERY);
|
|
|
wrapper.set(SecondHandOrder::getReceivingTime, DateUtil.date());
|
|
|
wrapper.eq(SecondHandOrder::getOrderNo, orderNo);
|
|
|
- if(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)){
|
|
|
- wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING);
|
|
|
- }else {
|
|
|
- wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
|
|
|
- }
|
|
|
+ wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
|
|
|
+// if(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_PICK_UP)){
|
|
|
+// wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_SHIPPING);
|
|
|
+// }else {
|
|
|
+// wrapper.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
|
|
|
+// }
|
|
|
return update(wrapper);
|
|
|
}
|
|
|
|
|
@@ -435,13 +430,13 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_ALL)) {
|
|
|
throw new CrmebException(OrderResultCode.ORDER_REFUND_ED);
|
|
|
}
|
|
|
- if (!(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_EXPRESS))) {
|
|
|
- throw new CrmebException(OrderResultCode.ORDER_SHIPPING_TYPE_PICK_UP);
|
|
|
- }
|
|
|
+// if (!(order.getShippingType().equals(OrderConstants.ORDER_SHIPPING_TYPE_EXPRESS))) {
|
|
|
+// throw new CrmebException(OrderResultCode.ORDER_SHIPPING_TYPE_PICK_UP);
|
|
|
+// }
|
|
|
if (order.getRefundStatus().equals(OrderConstants.ORDER_REFUND_STATUS_APPLY)) {
|
|
|
throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "请先处理售后,再进行发货操作");
|
|
|
}
|
|
|
- return sendExpress(request, order);
|
|
|
+ return "selfPickup".equals(request.getDeliveryType())?selfPickup(request, order):sendExpress(request, order);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -593,6 +588,35 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
return logisticService.info(orderInvoice.getTrackingNumber(), null, Optional.ofNullable(orderInvoice.getExpressCode()).orElse(""), order.getUserPhone());
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<SecondHandOrder> findCanCompleteOrder(Integer autoCompleteDay) {
|
|
|
+ DateTime autoCompleteDate = DateUtil.offsetDay(DateUtil.date(), -autoCompleteDay);
|
|
|
+ LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
|
|
|
+ lqw.select(SecondHandOrder::getId, SecondHandOrder::getUid, SecondHandOrder::getOrderNo);
|
|
|
+ lqw.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_TAKE_DELIVERY);
|
|
|
+ lqw.eq(SecondHandOrder::getLevel, OrderConstants.ORDER_LEVEL_PLATFORM);
|
|
|
+ lqw.le(SecondHandOrder::getReceivingTime, autoCompleteDate);
|
|
|
+ return dao.selectList(lqw);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean batchCompleteByOrderNo(List<String> orderNoList) {
|
|
|
+ LambdaUpdateWrapper<SecondHandOrder> wrapper = Wrappers.lambdaUpdate();
|
|
|
+ wrapper.set(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_COMPLETE);
|
|
|
+ wrapper.in(SecondHandOrder::getOrderNo, orderNoList);
|
|
|
+ return update(wrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SecondHandOrder> findAwaitTakeDeliveryOrderList(String sendTime) {
|
|
|
+ LambdaQueryWrapper<SecondHandOrder> lqw = Wrappers.lambdaQuery();
|
|
|
+ lqw.eq(SecondHandOrder::getStatus, OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
|
|
|
+ lqw.ne(SecondHandOrder::getRefundStatus, OrderConstants.ORDER_REFUND_STATUS_REFUND);
|
|
|
+ lqw.le(SecondHandOrder::getUpdateTime, sendTime);
|
|
|
+ lqw.eq(SecondHandOrder::getIsDel, false);
|
|
|
+ return dao.selectList(lqw);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 快递发货
|
|
|
*
|
|
@@ -649,6 +673,29 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
return execute;
|
|
|
}
|
|
|
/**
|
|
|
+ * 自提
|
|
|
+ *
|
|
|
+ * @param request 发货参数
|
|
|
+ * @param order 订单信息
|
|
|
+ */
|
|
|
+ private Boolean selfPickup(SecondHandOrderSendRequest request, SecondHandOrder order) {
|
|
|
+ // 筛选需要发货的订单详情
|
|
|
+ List<SecondHandOrderDetail> orderDetailList = orderDetailService.getByOrderNo(order.getOrderNo());
|
|
|
+ if (CollUtil.isEmpty(orderDetailList)) {
|
|
|
+ throw new CrmebException(CommonResultCode.VALIDATE_FAILED, "订单没有需要发货的商品");
|
|
|
+ }
|
|
|
+ order.setStatus(OrderConstants.ORDER_STATUS_WAIT_RECEIPT);
|
|
|
+ SecondHandProd secondHandProd=secondHandProdService.getById(orderDetailList.get(0).getProductId());
|
|
|
+ secondHandProd.setSaleStatus(3);//待收货
|
|
|
+ Boolean execute = transactionTemplate.execute(i -> {
|
|
|
+ updateById(order);
|
|
|
+ secondHandProdService.updateById(secondHandProd);
|
|
|
+ return Boolean.TRUE;
|
|
|
+ });
|
|
|
+ if (!execute) throw new CrmebException("自提发货失败!");
|
|
|
+ return execute;
|
|
|
+ }
|
|
|
+ /**
|
|
|
* 校验快递发货参数
|
|
|
*
|
|
|
* @param request 发货参数
|
|
@@ -717,7 +764,6 @@ public class SecondHandOrderServiceImpl extends ServiceImpl<SecondHandOrderDao,
|
|
|
* 根据订单编号获取订单
|
|
|
*
|
|
|
* @param orderNo 订单编号
|
|
|
- * @param merId 商户ID
|
|
|
* @return Order
|
|
|
* @Author 莫名
|
|
|
* @Date 2022/10/8 11:40
|