订单详情新增所属回收站信息功能

door
LI-CCONG\李聪聪 7 months ago
parent 0f89de9ef4
commit ca3f649e18

@ -22,11 +22,14 @@ import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderCreateVO;
import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderRespVO; import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.domain.vo.recyclestation.RecycleStationRespVO;
import cc.yunxi.domain.vo.recyclestation.RecycleStationSimpleVO;
import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.OrderTypeEnum;
import cc.yunxi.enums.UserTypeEnum; import cc.yunxi.enums.UserTypeEnum;
import cc.yunxi.service.*; import cc.yunxi.service.*;
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -56,6 +59,8 @@ public class RecycleOrderController {
private final IRecyclerService recyclerService; private final IRecyclerService recyclerService;
private final IRecycleStationService recycleStationService;
private final IRecycleOrderProductService recycleOrderProductService; private final IRecycleOrderProductService recycleOrderProductService;
private final IPriceProductService priceProductService; private final IPriceProductService priceProductService;
@ -231,17 +236,20 @@ public class RecycleOrderController {
this.assembleProductInfo(shOrderRespVOList); this.assembleProductInfo(shOrderRespVOList);
this.assembleClientAddressInfo(shOrderRespVOList); this.assembleClientAddressInfo(shOrderRespVOList);
this.assembleRecyclerInfo(shOrderRespVOList); this.assembleRecyclerInfo(shOrderRespVOList);
this.assembleStationInfo(shOrderRespVOList);
return shOrderRespVOList; return shOrderRespVOList;
case TM_RECOVERY: case TM_RECOVERY:
List<TMRecycleOrderRespVO> tmOrderRespVOList = BeanUtils.copyList(recycleOrderList, TMRecycleOrderRespVO.class); List<TMRecycleOrderRespVO> tmOrderRespVOList = BeanUtils.copyList(recycleOrderList, TMRecycleOrderRespVO.class);
this.assembleProductInfo(tmOrderRespVOList); this.assembleProductInfo(tmOrderRespVOList);
this.assembleRecyclerInfo(tmOrderRespVOList); this.assembleRecyclerInfo(tmOrderRespVOList);
this.assembleStationInfo(tmOrderRespVOList);
this.assembleHousingEstateInfo(tmOrderRespVOList); this.assembleHousingEstateInfo(tmOrderRespVOList);
return tmOrderRespVOList; return tmOrderRespVOList;
case DZ_RECOVERY: case DZ_RECOVERY:
List<DZRecycleOrderRespVO> dzOrderRespVOList = BeanUtils.copyList(recycleOrderList, DZRecycleOrderRespVO.class); List<DZRecycleOrderRespVO> dzOrderRespVOList = BeanUtils.copyList(recycleOrderList, DZRecycleOrderRespVO.class);
this.assembleProductInfo(dzOrderRespVOList); this.assembleProductInfo(dzOrderRespVOList);
this.assembleRecyclerInfo(dzOrderRespVOList); this.assembleRecyclerInfo(dzOrderRespVOList);
this.assembleStationInfo(dzOrderRespVOList);
return dzOrderRespVOList; return dzOrderRespVOList;
default: default:
return BeanUtils.copyList(recycleOrderList, RecycleOrderRespVO.class); return BeanUtils.copyList(recycleOrderList, RecycleOrderRespVO.class);
@ -270,6 +278,26 @@ public class RecycleOrderController {
} }
/**
*
*
* @param orderRespVOList
*/
private <T extends RecycleOrderRespVO> void assembleStationInfo(List<T> orderRespVOList) {
Set<String> stationIds = orderRespVOList.stream().map(RecycleOrderRespVO::getRecycleStationId)
.filter(StrUtil::isNotEmpty).collect(Collectors.toSet());
List<RecycleStation> stationList = recycleStationService.getStationByIds(stationIds);
if (ObjectUtil.isNotEmpty(stationList)) {
List<RecycleStationSimpleVO> stationSimpleVOList = BeanUtils.copyList(stationList, RecycleStationSimpleVO.class);
Map<String, RecycleStationSimpleVO> stationMap = stationSimpleVOList.stream().collect(Collectors.toMap(
RecycleStationSimpleVO::getId, s -> s, (k1, k2) -> k1));
orderRespVOList.forEach(v -> {
CommonUtil.assignField(v, "recycleStationInfo", stationMap.get(v.getRecycleStationId()));
});
}
}
/** /**
* *
* *

@ -4,6 +4,7 @@ package cc.yunxi.domain.vo.recycleorder.dzorder;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO; import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.domain.vo.recyclestation.RecycleStationSimpleVO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -17,6 +18,9 @@ public class DZRecycleOrderRespVO extends RecycleOrderRespVO {
@ApiModelProperty("回收员信息") @ApiModelProperty("回收员信息")
private RecyclerSimpleVO recyclerInfo; private RecyclerSimpleVO recyclerInfo;
@ApiModelProperty("回收站信息")
private RecycleStationSimpleVO recycleStationInfo;
@ApiModelProperty("订单明细详情") @ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails; private List<RecycleOrderDetailResponseVO> orderDetails;

@ -6,6 +6,7 @@ import cc.yunxi.domain.vo.housingestate.HousingEstateSimpleVO;
import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO; import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.domain.vo.recyclestation.RecycleStationSimpleVO;
import cc.yunxi.enums.OrderStatusEnum; import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.OrderTypeEnum;
import cc.yunxi.enums.ProductWeightEnum; import cc.yunxi.enums.ProductWeightEnum;
@ -65,6 +66,9 @@ public class SHRecycleOrderRespVO extends RecycleOrderRespVO {
@ApiModelProperty("回收员信息") @ApiModelProperty("回收员信息")
private RecyclerSimpleVO recyclerInfo; private RecyclerSimpleVO recyclerInfo;
@ApiModelProperty("回收站信息")
private RecycleStationSimpleVO recycleStationInfo;
@ApiModelProperty("订单明细详情") @ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails; private List<RecycleOrderDetailResponseVO> orderDetails;

@ -6,6 +6,7 @@ import cc.yunxi.domain.vo.recycleorder.RecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO; import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailResponseVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO; import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.domain.vo.recyclestation.RecycleStationSimpleVO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -25,6 +26,9 @@ public class TMRecycleOrderRespVO extends RecycleOrderRespVO {
@ApiModelProperty("回收员信息") @ApiModelProperty("回收员信息")
private RecyclerSimpleVO recyclerInfo; private RecyclerSimpleVO recyclerInfo;
@ApiModelProperty("回收站信息")
private RecycleStationSimpleVO recycleStationInfo;
@ApiModelProperty("订单明细详情") @ApiModelProperty("订单明细详情")
private List<RecycleOrderDetailResponseVO> orderDetails; private List<RecycleOrderDetailResponseVO> orderDetails;

@ -0,0 +1,65 @@
package cc.yunxi.domain.vo.recyclestation;
import cc.yunxi.domain.vo.priceproduct.ProductRespVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* VO
* </p>
*
* @author ccongli
* @since 2024-03-01 11:15:39
*/
@ApiModel(description = "回收站 Simple VO")
@Data
public class RecycleStationSimpleVO {
@ApiModelProperty("主键id")
private String id;
@ApiModelProperty("企业id")
private String enterpriseId;
@ApiModelProperty("回收站编号")
private String stationCode;
@ApiModelProperty("回收站名称")
private String stationName;
@ApiModelProperty("回收站照片")
private String stationImg;
@ApiModelProperty("联系人")
private String contactPerson;
@ApiModelProperty("回收电话")
private String recycleTel;
@ApiModelProperty("详细地址")
private String address;
@ApiModelProperty("回收站介绍")
private String stationDescription;
@ApiModelProperty("营业日")
private String businessDays;
@ApiModelProperty("营业时刻起")
private String appointmentTimeStart;
@ApiModelProperty("营业时刻止")
private String appointmentTimeEnd;
@ApiModelProperty("范围限制(单位m)")
private Integer acceptRange;
// @ApiModelProperty("站点类目信息")
// private List<ProductRespVO> stationProducts;
}

@ -8,6 +8,7 @@ import cc.yunxi.domain.vo.recyclestation.RecycleStationRespVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
@ -43,6 +44,13 @@ public interface IRecycleStationService extends IService<RecycleStation> {
*/ */
RecycleStation getStationById(String id); RecycleStation getStationById(String id);
/**
* id
* @param ids
* @return RecycleOrder
*/
List<RecycleStation> getStationByIds(Collection<String> ids);
/** /**
* *

@ -3,6 +3,7 @@ package cc.yunxi.service.impl;
import cc.yunxi.common.domain.LambdaQueryWrapperX; import cc.yunxi.common.domain.LambdaQueryWrapperX;
import cc.yunxi.common.exception.BizIllegalException; import cc.yunxi.common.exception.BizIllegalException;
import cc.yunxi.common.utils.BeanUtils; import cc.yunxi.common.utils.BeanUtils;
import cc.yunxi.common.utils.CollUtils;
import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.dto.LocationDTO;
import cc.yunxi.domain.po.*; import cc.yunxi.domain.po.*;
import cc.yunxi.domain.query.RecycleStationQuery; import cc.yunxi.domain.query.RecycleStationQuery;
@ -23,6 +24,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -94,6 +96,17 @@ public class RecycleStationServiceImpl extends ServiceImpl<RecycleStationMapper,
} }
@Override
public List<RecycleStation> getStationByIds(Collection<String> stationIds) {
LambdaQueryWrapperX<RecycleStation> wrapperX = new LambdaQueryWrapperX<>();
if (CollUtils.isEmpty(stationIds)) {
return CollUtils.emptyList();
}
wrapperX.in(RecycleStation::getId, stationIds);
return list(wrapperX);
}
@Override @Override
public List<ProductRespVO> getStationProduct(String stationId) { public List<ProductRespVO> getStationProduct(String stationId) {
QueryWrapper<Price> wrapper = new QueryWrapper<Price>().eq("a.status", GlobalStatusEnum.VALID); QueryWrapper<Price> wrapper = new QueryWrapper<Price>().eq("a.status", GlobalStatusEnum.VALID);

Loading…
Cancel
Save