SkuServiceImpl.java
2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.infoloop.tianting.service.impl;
import com.infoloop.tianting.model.dto.SkuDbDTO.SkuDetailSingleResponseDto;
import com.infoloop.tianting.model.dto.SkuDbDTO.SkuDto;
import com.infoloop.tianting.model.dto.SkuDbDTO.SkuSpecialDetailSingleResponseDto;
import com.infoloop.tianting.service.SkuService;
import com.infoloop.tianting.service.client.SkuServiceRpcClient;
import com.infoloop.tianting.utils.DateUtil;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SkuServiceImpl implements SkuService {
private final SkuServiceRpcClient skuServiceRpcClient;
@Override
public List<SkuDto> getSkusByIds(List<Integer> ids) {
final var response = skuServiceRpcClient.getDishSkusByIds(ids);
return response.getResponseList().stream().map(sku ->
SkuDto.builder()
.id(sku.getId())
.categoryId(sku.getCategoryId())
.name(sku.getName())
.enterpriseId(sku.getEnterpriseId())
.description(sku.getDescription())
.code(sku.getCode())
.alias(sku.getAlias())
.imageUrl(sku.getImageUrl())
.basicMaterials(sku.getBasicMaterials())
.carbohydrate(sku.getCarbohydrate())
.createdAt(DateUtil.formatDate(sku.getCreatedAt()))
.energy(sku.getEnergy())
.fat(sku.getFat())
.protein(sku.getProtein())
.skuList(sku.getSkusList().stream().map(subSku -> SkuDetailSingleResponseDto.builder().id(subSku.getId()).name(subSku.getName()).build()).collect(
Collectors.toList()))
.tasteList(sku.getTastesList().stream().map(taste -> SkuDetailSingleResponseDto.builder().id(taste.getId()).name(taste.getName()).build()).collect(
Collectors.toList()))
.efficacyList(sku.getEfficaciesList().stream().map(efficacy -> SkuDetailSingleResponseDto.builder().id(efficacy.getId()).name(efficacy.getName()).build()).collect(
Collectors.toList()))
.doctorList(sku.getDoctorsList().stream().map(doctor -> SkuSpecialDetailSingleResponseDto
.builder().id(doctor.getId()).name(doctor.getName()).build()).collect(
Collectors.toList()))
.avoidList(sku.getAvoidsList().stream().map(avoid -> SkuDetailSingleResponseDto.builder().id(avoid.getId()).name(avoid.getName()).build()).collect(
Collectors.toList()))
.allergyList(sku.getAllergiesList().stream().map(allergy -> SkuSpecialDetailSingleResponseDto.builder().id(allergy.getId()).name(allergy.getName()).build()).collect(
Collectors.toList()))
.build()
).collect(Collectors.toList());
}
}