|
|
@ -1,5 +1,6 @@
|
|
|
|
package cc.yunxi.service.impl;
|
|
|
|
package cc.yunxi.service.impl;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cc.yunxi.common.exception.BizIllegalException;
|
|
|
|
import cc.yunxi.common.exception.DbException;
|
|
|
|
import cc.yunxi.common.exception.DbException;
|
|
|
|
import cc.yunxi.common.utils.BeanUtils;
|
|
|
|
import cc.yunxi.common.utils.BeanUtils;
|
|
|
|
import cc.yunxi.common.utils.CommonUtil;
|
|
|
|
import cc.yunxi.common.utils.CommonUtil;
|
|
|
@ -14,15 +15,18 @@ import cc.yunxi.domain.vo.recycleorder.RecycleOrderUpdateVO;
|
|
|
|
import cc.yunxi.enums.BusinessCodeEnum;
|
|
|
|
import cc.yunxi.enums.BusinessCodeEnum;
|
|
|
|
import cc.yunxi.enums.OrderStatusEnum;
|
|
|
|
import cc.yunxi.enums.OrderStatusEnum;
|
|
|
|
import cc.yunxi.enums.OrderTypeEnum;
|
|
|
|
import cc.yunxi.enums.OrderTypeEnum;
|
|
|
|
|
|
|
|
import cc.yunxi.enums.UserTypeEnum;
|
|
|
|
import cc.yunxi.mapper.RecycleOrderMapper;
|
|
|
|
import cc.yunxi.mapper.RecycleOrderMapper;
|
|
|
|
import cc.yunxi.service.IClientService;
|
|
|
|
import cc.yunxi.service.IClientService;
|
|
|
|
import cc.yunxi.service.IRecycleOrderService;
|
|
|
|
import cc.yunxi.service.IRecycleOrderService;
|
|
|
|
import cc.yunxi.utils.UserContext;
|
|
|
|
import cc.yunxi.utils.UserContext;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
@ -40,16 +44,32 @@ import javax.validation.Valid;
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Service
|
|
|
|
@Service
|
|
|
|
@Validated
|
|
|
|
@Validated
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, RecycleOrder> implements IRecycleOrderService {
|
|
|
|
public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, RecycleOrder> implements IRecycleOrderService {
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private IClientService clientService;
|
|
|
|
private IClientService clientService;
|
|
|
|
|
|
|
|
|
|
|
|
public Page<RecycleOrder> queryOrderByPage(RecycleOrderQuery recycleOrderQuery) {
|
|
|
|
public Page<RecycleOrder> queryOrderByPage(RecycleOrderQuery recycleOrderQuery) {
|
|
|
|
QueryWrapper<RecycleOrder> wrapper = new QueryWrapper<>();
|
|
|
|
LambdaQueryWrapper<RecycleOrder> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
wrapper.lambda()
|
|
|
|
UserDTO userDTO = UserContext.getUser();
|
|
|
|
.eq(StrUtil.isNotEmpty(recycleOrderQuery.getId()), RecycleOrder::getId, recycleOrderQuery.getId())
|
|
|
|
if (userDTO.getUserType().equals(UserTypeEnum.CLIENT.getCode())) { // 散户查询
|
|
|
|
.eq(ObjectUtil.isNotEmpty(recycleOrderQuery.getStatus()), RecycleOrder::getOrderStatus, recycleOrderQuery.getStatus());
|
|
|
|
wrapper.eq(RecycleOrder::getClientId, userDTO.getId());
|
|
|
|
|
|
|
|
wrapper.eq(ObjectUtil.isNotEmpty(recycleOrderQuery.getStatus()), RecycleOrder::getOrderStatus, recycleOrderQuery.getStatus());
|
|
|
|
|
|
|
|
} else { // 回收员查询
|
|
|
|
|
|
|
|
if (StrUtil.isEmpty(userDTO.getStationId())) {
|
|
|
|
|
|
|
|
throw new BizIllegalException("请先联系管理员绑定回收站点!");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 只查回收员所在回收站下的订单
|
|
|
|
|
|
|
|
wrapper.eq(RecycleOrder::getRecycleStationId, userDTO.getStationId());
|
|
|
|
|
|
|
|
// 不为待接单状态时, 只查自己的订单
|
|
|
|
|
|
|
|
if (!recycleOrderQuery.getStatus().equals(OrderStatusEnum.PENDING)) {
|
|
|
|
|
|
|
|
wrapper.eq(RecycleOrder::getStaffsId, userDTO.getId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 必须有订单状态查询
|
|
|
|
|
|
|
|
wrapper.eq(true, RecycleOrder::getOrderStatus, recycleOrderQuery.getStatus());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
wrapper.eq(StrUtil.isNotEmpty(recycleOrderQuery.getId()), RecycleOrder::getId, recycleOrderQuery.getId());
|
|
|
|
Page<RecycleOrder> recycleOrderPage = page(
|
|
|
|
Page<RecycleOrder> recycleOrderPage = page(
|
|
|
|
recycleOrderQuery.buildPageByDefaultOrder(RecycleOrder::getCreatorTime, true), wrapper);
|
|
|
|
recycleOrderQuery.buildPageByDefaultOrder(RecycleOrder::getCreatorTime, true), wrapper);
|
|
|
|
return recycleOrderPage;
|
|
|
|
return recycleOrderPage;
|
|
|
@ -77,6 +97,7 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
|
|
|
|
recycleOrder.setOrderNumber(idNumber);
|
|
|
|
recycleOrder.setOrderNumber(idNumber);
|
|
|
|
recycleOrder.setOrderType(OrderTypeEnum.SH_ORDER);
|
|
|
|
recycleOrder.setOrderType(OrderTypeEnum.SH_ORDER);
|
|
|
|
recycleOrder.setOrderStatus(OrderStatusEnum.PENDING);
|
|
|
|
recycleOrder.setOrderStatus(OrderStatusEnum.PENDING);
|
|
|
|
|
|
|
|
log.info("create recycleOrder info : {}", recycleOrder);
|
|
|
|
this.save(recycleOrder);
|
|
|
|
this.save(recycleOrder);
|
|
|
|
return recycleOrder.getId();
|
|
|
|
return recycleOrder.getId();
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -85,8 +106,10 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public void updateOrder(RecycleOrderUpdateVO orderUpdateVO) {
|
|
|
|
public void updateOrder(RecycleOrderUpdateVO orderUpdateVO) {
|
|
|
|
|
|
|
|
// 接单后无法修改地址 todo
|
|
|
|
validateOrderExists(orderUpdateVO.getId());
|
|
|
|
validateOrderExists(orderUpdateVO.getId());
|
|
|
|
RecycleOrder recycleOrder = BeanUtils.copyBean(orderUpdateVO, RecycleOrder.class);
|
|
|
|
RecycleOrder recycleOrder = BeanUtils.copyBean(orderUpdateVO, RecycleOrder.class);
|
|
|
|
|
|
|
|
log.info("recycleOrder updateVO: {}", recycleOrder);
|
|
|
|
this.updateById(recycleOrder);
|
|
|
|
this.updateById(recycleOrder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -97,6 +120,7 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
|
|
|
|
validateOrderExists(userDTO.getId());
|
|
|
|
validateOrderExists(userDTO.getId());
|
|
|
|
RecycleOrder recycleOrder = BeanUtils.copyBean(orderTakingVO, RecycleOrder.class);
|
|
|
|
RecycleOrder recycleOrder = BeanUtils.copyBean(orderTakingVO, RecycleOrder.class);
|
|
|
|
recycleOrder.setOrderStatus(OrderStatusEnum.UNPROCESSED);
|
|
|
|
recycleOrder.setOrderStatus(OrderStatusEnum.UNPROCESSED);
|
|
|
|
|
|
|
|
log.info("recycleOrder takingVO: {}", recycleOrder);
|
|
|
|
this.updateById(recycleOrder);
|
|
|
|
this.updateById(recycleOrder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|