BatchFeignCallService.java 26.6 KB
Newer Older
刘基明's avatar
刘基明 committed
1 2 3
package com.tanpu.community.service;

import com.google.common.collect.Maps;
刘基明's avatar
刘基明 committed
4
import com.google.common.collect.Sets;
张辰's avatar
张辰 committed
5 6
import com.tanpu.biz.common.enums.RelTypeEnum;
import com.tanpu.biz.common.enums.user.UserLevelEnum;
刘基明's avatar
刘基明 committed
7 8
import com.tanpu.common.api.CommonResp;
import com.tanpu.common.enums.fund.ProductTypeEnum;
刘基明's avatar
刘基明 committed
9
import com.tanpu.common.util.JsonUtil;
刘基明's avatar
刘基明 committed
10
import com.tanpu.community.api.CommunityConstant;
刘基明's avatar
刘基明 committed
11 12 13
import com.tanpu.community.api.beans.qo.AttachmentDetailVo;
import com.tanpu.community.api.beans.qo.ThemeContentQo;
import com.tanpu.community.api.beans.qo.ThemeQo;
刘基明's avatar
刘基明 committed
14
import com.tanpu.community.api.beans.vo.ImagesDTO;
刘基明's avatar
刘基明 committed
15
import com.tanpu.community.api.beans.vo.feign.activity.OfflineActivitySimpleResp;
刘基明's avatar
刘基明 committed
16 17
import com.tanpu.community.api.beans.vo.feign.course.CourseSimpleResp;
import com.tanpu.community.api.beans.vo.feign.course.ShortVideoBaseInfoResp;
18
import com.tanpu.community.api.beans.vo.feign.fatools.UserInfoResp;
刘基明's avatar
刘基明 committed
19 20 21
import com.tanpu.community.api.beans.vo.feign.product.FundInfoBaseResp;
import com.tanpu.community.api.beans.vo.feign.product.ProductInfoVO;
import com.tanpu.community.api.beans.vo.feign.zhibo.ZhiboListResp;
刘基明's avatar
刘基明 committed
22
import com.tanpu.community.api.enums.FileChechStatusEnum;
刘基明's avatar
刘基明 committed
23
import com.tanpu.community.dao.entity.community.FileRecordEntity;
24
import com.tanpu.community.dao.entity.community.TopicEntity;
刘基明's avatar
刘基明 committed
25
import com.tanpu.community.feign.course.FeignClientForCourse;
刘基明's avatar
刘基明 committed
26 27 28 29 30 31 32
import com.tanpu.community.feign.fatools.FeignClientForFatools;
import com.tanpu.community.feign.product.FeignClientForProducts;
import com.tanpu.community.feign.product.FeignForFund;
import com.tanpu.community.feign.product.FeignForPublicFund;
import com.tanpu.community.feign.tanpuroom.FeignClientForTanpuroom;
import com.tanpu.community.feign.zhibo.FeignClientForZhibo;
import org.springframework.beans.BeanUtils;
张辰's avatar
张辰 committed
33
import org.springframework.beans.factory.annotation.Autowired;
刘基明's avatar
刘基明 committed
34 35
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
36
import org.springframework.util.StringUtils;
刘基明's avatar
刘基明 committed
37 38

import javax.annotation.Resource;
刘基明's avatar
刘基明 committed
39 40 41 42 43 44
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
刘基明's avatar
刘基明 committed
45 46
import java.util.stream.Collectors;

刘基明's avatar
刘基明 committed
47 48 49
/**
 * 批量调用Feign查询接口
 */
刘基明's avatar
刘基明 committed
50
@Service
刘基明's avatar
刘基明 committed
51
public class BatchFeignCallService {
刘基明's avatar
刘基明 committed
52 53 54 55 56 57 58 59 60 61 62


    @Resource
    private FeignClientForTanpuroom feignClientForTanpuroom;

    @Resource
    private FeignClientForZhibo feignClientForZhibo;

    @Resource
    private FeignClientForProducts feignForProduct;

刘基明's avatar
刘基明 committed
63 64 65
    @Resource
    private FeignClientForCourse feignForCourse;

刘基明's avatar
刘基明 committed
66 67 68 69 70 71 72 73 74
    @Resource
    private FeignForFund feignForFund;

    @Resource
    private FeignForPublicFund feignForPublicFund;

    @Resource
    private FeignClientForFatools feignClientForFatools;

75
    @Resource
刘基明's avatar
刘基明 committed
76 77
    private OSSFileService ossFileService;

张辰's avatar
张辰 committed
78 79 80
    @Autowired
    private FeignService feignService;

81 82 83
    @Resource
    private TopicService topicService;

刘基明's avatar
刘基明 committed
84

刘基明's avatar
刘基明 committed
85
    public void getAttachDetail(ThemeQo themeQo) {
刘基明's avatar
刘基明 committed
86 87
        ArrayList<ThemeQo> themeQos = new ArrayList<>();
        themeQos.add(themeQo);
刘基明's avatar
刘基明 committed
88
        getAttachDetailByBatch(themeQos);
刘基明's avatar
刘基明 committed
89 90 91
    }


刘基明's avatar
刘基明 committed
92
    public void getAttachDetailByBatch(List<ThemeQo> themeQos) {
刘基明's avatar
刘基明 committed
93 94 95 96
        // 短视频信息
        Map<String, ShortVideoBaseInfoResp> shortVideoMap = Maps.newHashMap();
        // 课程信息
        Map<String, ShortVideoBaseInfoResp> curriculumMap = Maps.newHashMap();
刘基明's avatar
刘基明 committed
97 98
        // 新课程信息
        Map<String, CourseSimpleResp> courseMap = Maps.newHashMap();
刘基明's avatar
刘基明 committed
99 100 101 102
        // 直播信息
        Map<String, ZhiboListResp> zhiboMap = Maps.newHashMap();
        // 设置产品信息
        Map<String, FundInfoBaseResp> fundMap = Maps.newHashMap();
刘基明's avatar
刘基明 committed
103
        // 设置活动信息
刘基明's avatar
刘基明 committed
104
        Map<String, OfflineActivitySimpleResp> activityMap = Maps.newHashMap();
刘基明's avatar
刘基明 committed
105
        // 图片信息
刘基明's avatar
刘基明 committed
106
        Map<String, FileRecordEntity> imgMap = Maps.newHashMap();
107
        // 话题标题
刘基明's avatar
刘基明 committed
108
        Map<String, TopicEntity> topicMap = Maps.newHashMap();
刘基明's avatar
刘基明 committed
109
        // 图片信息
110
        Map<String, UserInfoResp> userMap = Maps.newHashMap();
刘基明's avatar
刘基明 committed
111
        // 批量查询资源信息,将不同类型的id抽取,并通过ids查询并存放到id-对象Map中
刘基明's avatar
刘基明 committed
112
        this.getResInfo(shortVideoMap, curriculumMap, courseMap, zhiboMap, fundMap, activityMap, imgMap, topicMap, userMap, themeQos);
刘基明's avatar
刘基明 committed
113
        //逐个装入,将对象放入到Content中的detail对象中
刘基明's avatar
刘基明 committed
114
        setResInfo(themeQos, shortVideoMap, curriculumMap, courseMap, zhiboMap, fundMap, activityMap, imgMap, userMap, topicMap);
刘基明's avatar
刘基明 committed
115 116 117 118 119 120 121 122 123 124 125

    }


    /**
     * 获取资源信息
     *
     * @param shortVideoMap
     * @param curriculumMap
     * @param zhiboMap
     * @param fundMap
刘基明's avatar
刘基明 committed
126
     * @param activityMap
刘基明's avatar
刘基明 committed
127 128 129
     */
    private void getResInfo(Map<String, ShortVideoBaseInfoResp> shortVideoMap,
                            Map<String, ShortVideoBaseInfoResp> curriculumMap,
刘基明's avatar
刘基明 committed
130
                            Map<String, CourseSimpleResp> courseMap,
刘基明's avatar
刘基明 committed
131 132
                            Map<String, ZhiboListResp> zhiboMap,
                            Map<String, FundInfoBaseResp> fundMap,
刘基明's avatar
刘基明 committed
133
                            Map<String, OfflineActivitySimpleResp> activityMap, Map<String, FileRecordEntity> imgMap,
刘基明's avatar
刘基明 committed
134
                            Map<String, TopicEntity> topicMap,
135
                            Map<String, UserInfoResp> userMap,
刘基明's avatar
刘基明 committed
136
                            List<ThemeQo> themeQos
137
    ) {
刘基明's avatar
刘基明 committed
138
        // 白名单基金id
刘基明's avatar
刘基明 committed
139
        HashSet<String> tanpuFundIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
140
        // 私募基金id
刘基明's avatar
刘基明 committed
141
        HashSet<String> fundIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
142
        // 理财师导入
刘基明's avatar
刘基明 committed
143
        HashSet<String> ifaFundIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
144
        // 公募基金id
刘基明's avatar
刘基明 committed
145
        HashSet<String> publicFundIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
146
        // 无净值产品id
刘基明's avatar
刘基明 committed
147
        HashSet<String> notNetFundIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
148
        // 短视频id
刘基明's avatar
刘基明 committed
149
        HashSet<String> shortVideoIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
150
        // 直播id
刘基明's avatar
刘基明 committed
151
        HashSet<String> zhiboIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
152
        // 课程id
刘基明's avatar
刘基明 committed
153
        HashSet<String> curriculumIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
154
        // 新课程id
刘基明's avatar
刘基明 committed
155
        HashSet<String> courseIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
156 157
        // 活动id
        HashSet<String> activityIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
158
        // 图片id
刘基明's avatar
刘基明 committed
159
        HashSet<String> imageIds = Sets.newHashSet();
160
        // 话题id
刘基明's avatar
刘基明 committed
161
        HashSet<String> topicIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
162
        // 用户id
刘基明's avatar
刘基明 committed
163
        HashSet<String> userIds = Sets.newHashSet();
刘基明's avatar
刘基明 committed
164 165
        // 获取关联资源id
        if (themeQos != null) {
刘基明's avatar
刘基明 committed
166
            themeQos.forEach(o -> {
刘基明's avatar
刘基明 committed
167
                userIds.add(o.getAuthorId());
168 169 170 171
                if (o.getTopicId() != null) {
                    topicIds.add(o.getTopicId());
                }
            });
刘基明's avatar
刘基明 committed
172 173

            themeQos.forEach(o -> o.getContent().forEach(c -> {
刘基明's avatar
刘基明 committed
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
                        if (c.getType().equals(RelTypeEnum.LIVE.type)) {
                            zhiboIds.add(c.getValue());
                        } else if (c.getType().equals(RelTypeEnum.SHORT_VIDEO.type)) {
                            shortVideoIds.add(c.getValue());
                        } else if (c.getType().equals(RelTypeEnum.FUND.type)) {
                            if (c.getProductType() == ProductTypeEnum.PUBLIC.type) {
                                publicFundIds.add(c.getValue());
                            } else if (c.getProductType() == ProductTypeEnum.PRIVATE.type) {
                                fundIds.add(c.getValue());
                            } else if (c.getProductType() == ProductTypeEnum.TAMP.type) {
                                tanpuFundIds.add(c.getValue());
                            } else if (c.getProductType() == ProductTypeEnum.CUSTOMER_IMPORT.type) {
                                ifaFundIds.add(c.getValue());
                            } else if (c.getProductType() == ProductTypeEnum.NOT_NET_PRODUCT.type) {
                                notNetFundIds.add(c.getValue());
                            }

                        } else if (c.getType().equals(RelTypeEnum.VIDEO.type) || c.getType().equals(RelTypeEnum.AUDIO.type)) {
                            curriculumIds.add(c.getValue());
                        } else if (c.getType().equals(RelTypeEnum.SINGLE_IMG.type)) {
                            imageIds.add(c.getValue());
刘基明's avatar
刘基明 committed
195 196 197
                        } else if (c.getType().equals(RelTypeEnum.MULTIPLE_IMAGE.type)) {
                            c.getImgList().forEach(img -> imageIds.add(img.getRelId()));
                        } else if (c.getType().equals(RelTypeEnum.NEW_COURSE_SECTION_AUDIO.type) ||
刘基明's avatar
刘基明 committed
198 199
                                c.getType().equals(RelTypeEnum.NEW_COURSE_SECTION_VIDEO.type)) {
                            courseIds.add(c.getValue());
刘基明's avatar
刘基明 committed
200
                        } else if (c.getType().equals(RelTypeEnum.OFFLINE_ACTIVITY.type)) {
刘基明's avatar
刘基明 committed
201
                            activityIds.add(c.getValue());
刘基明's avatar
刘基明 committed
202
                        }
刘基明's avatar
刘基明 committed
203
                    })
刘基明's avatar
刘基明 committed
204
            );
刘基明's avatar
刘基明 committed
205

刘基明's avatar
刘基明 committed
206 207 208
        }
        if (!CollectionUtils.isEmpty(shortVideoIds)) {
            // 短视频列表
张辰's avatar
张辰 committed
209
            List<ShortVideoBaseInfoResp> list = feignService.batchGetShortVideoBaseInfo(setToList(shortVideoIds));
刘基明's avatar
刘基明 committed
210
            shortVideoMap.putAll(list.stream().collect(Collectors.toMap(ShortVideoBaseInfoResp::getSourceId, item -> item, (oldValue, newValue) -> oldValue)));
刘基明's avatar
刘基明 committed
211 212 213
        }
        if (!CollectionUtils.isEmpty(curriculumIds)) {
            // 课程列表
214 215
            List<ShortVideoBaseInfoResp> commonResp =
                    feignClientForFatools.getCurriculumByColumnRelId(setToList(curriculumIds));
刘基明's avatar
刘基明 committed
216
            if (commonResp != null && !CollectionUtils.isEmpty(commonResp)) {
刘基明's avatar
刘基明 committed
217
                curriculumMap.putAll(commonResp.stream()
刘基明's avatar
刘基明 committed
218
                        .collect(Collectors.toMap(ShortVideoBaseInfoResp::getColumnRelId, item -> item, (oldValue, newValue) -> oldValue)));
刘基明's avatar
刘基明 committed
219 220
            }
        }
刘基明's avatar
刘基明 committed
221 222
        if (!CollectionUtils.isEmpty(courseIds)) {
            // 新版课程列表
张辰's avatar
张辰 committed
223
            List<CourseSimpleResp> list = feignService.getCourseSimpleList(setToList(courseIds));
刘基明's avatar
刘基明 committed
224
            courseMap.putAll(list.stream().collect(Collectors.toMap(CourseSimpleResp::getCourseId, item -> item, (oldValue, newValue) -> oldValue)));
刘基明's avatar
刘基明 committed
225
        }
刘基明's avatar
刘基明 committed
226 227
        if (!CollectionUtils.isEmpty(zhiboIds)) {
            // 直播列表
张辰's avatar
张辰 committed
228
            List<ZhiboListResp> list = feignService.getZhiboSimpleList(setToList(zhiboIds));
刘基明's avatar
刘基明 committed
229
            zhiboMap.putAll(list.stream().collect(Collectors.toMap(ZhiboListResp::getId, item -> item, (oldValue, newValue) -> oldValue)));
刘基明's avatar
刘基明 committed
230
        }
刘基明's avatar
刘基明 committed
231
        if (!CollectionUtils.isEmpty(activityIds)) {
刘基明's avatar
刘基明 committed
232
            //  活动列表
刘基明's avatar
刘基明 committed
233 234
            List<OfflineActivitySimpleResp> list = feignService.getActivitySimpleList(setToList(activityIds));
            activityMap.putAll(list.stream().collect(Collectors.toMap(OfflineActivitySimpleResp::getActivityId, item -> item, (oldValue, newValue) -> oldValue)));
刘基明's avatar
刘基明 committed
235
        }
刘基明's avatar
刘基明 committed
236
        if (!CollectionUtils.isEmpty(imageIds)) {
刘基明's avatar
刘基明 committed
237
            // 查询图片
刘基明's avatar
刘基明 committed
238 239
            List<FileRecordEntity> fileRecordEntities =
                    ossFileService.queryByIds(setToList(imageIds));
刘基明's avatar
刘基明 committed
240 241
            if (!CollectionUtils.isEmpty(fileRecordEntities)) {
                imgMap.putAll(fileRecordEntities.stream().collect(Collectors
刘基明's avatar
刘基明 committed
242
                        .toMap(FileRecordEntity::getFileId, o -> o)));
刘基明's avatar
刘基明 committed
243
            }
刘基明's avatar
刘基明 committed
244

刘基明's avatar
刘基明 committed
245
        }
246 247
        if (!CollectionUtils.isEmpty(topicIds)) {
            // 查询话题标题
刘基明's avatar
刘基明 committed
248 249
            List<TopicEntity> topicEntities =
                    topicService.queryByIds(setToList(topicIds));
250 251
            if (!CollectionUtils.isEmpty(topicEntities)) {
                topicMap.putAll(topicEntities.stream().collect(Collectors
刘基明's avatar
刘基明 committed
252
                        .toMap(TopicEntity::getTopicId, o->o)));
253 254
            }
        }
刘基明's avatar
刘基明 committed
255 256
        if (!CollectionUtils.isEmpty(userIds)) {
            // 查询用户信息
张辰's avatar
张辰 committed
257
            List<UserInfoResp> queryUsersListNew = feignService.getUserList(setToList(userIds));
刘基明's avatar
刘基明 committed
258
            if (!CollectionUtils.isEmpty(userIds)) {
刘基明's avatar
刘基明 committed
259
                userMap.putAll(queryUsersListNew.stream().collect(Collectors
260
                        .toMap(UserInfoResp::getUserId, o -> o)));
刘基明's avatar
刘基明 committed
261
            }
刘基明's avatar
刘基明 committed
262

刘基明's avatar
刘基明 committed
263
        }
刘基明's avatar
刘基明 committed
264 265 266 267 268 269 270 271 272 273 274
        this.getFundInfo(tanpuFundIds, fundIds, publicFundIds, ifaFundIds, notNetFundIds, fundMap);
    }

    /**
     * 设置产品信息
     *
     * @param tanpuFundIds
     * @param fundIds
     * @param publicFundIds
     * @param fundMap
     */
刘基明's avatar
刘基明 committed
275 276 277 278 279
    private void getFundInfo(Set<String> tanpuFundIds,
                             Set<String> fundIds,
                             Set<String> publicFundIds,
                             Set<String> ifaFundIds,
                             Set<String> notNetFundIds,
刘基明's avatar
刘基明 committed
280
                             Map<String, FundInfoBaseResp> fundMap) {
刘基明's avatar
刘基明 committed
281 282 283 284
        Map<String, FundInfoBaseResp> tampFundMap;
        Map<String, FundInfoBaseResp> privateFundMap;
        Map<String, FundInfoBaseResp> publicFundMap;
        Map<String, FundInfoBaseResp> ifaFundMap;
刘基明's avatar
刘基明 committed
285 286 287 288 289 290
        Map<String, FundInfoBaseResp> notNetFundMap = null;
        if (!CollectionUtils.isEmpty(tanpuFundIds)) {
//            ProductListReq productListReq = ProductListReq.builder()
//                    .fundIds(Lists.newArrayList(tanpuFundIds))
//                    .build();
            // 探普产品
刘基明's avatar
刘基明 committed
291
            List<ProductInfoVO> list = feignService.getProductInfoByIdsForTheme(setToList(tanpuFundIds));
张辰's avatar
张辰 committed
292 293 294
            List<FundInfoBaseResp> fundInfoBaseRespList = list.stream().map(item -> {
                FundInfoBaseResp fundInfoBaseResp = FundInfoBaseResp.builder().build();
                BeanUtils.copyProperties(item, fundInfoBaseResp);
刘基明's avatar
刘基明 committed
295
                fundInfoBaseResp.setProductName(item.getFundName());
张辰's avatar
张辰 committed
296 297 298
                return fundInfoBaseResp;
            }).collect(Collectors.toList());
            tampFundMap = fundInfoBaseRespList.stream().collect(Collectors.toMap(FundInfoBaseResp::getFundId, item -> item));
刘基明's avatar
刘基明 committed
299

刘基明's avatar
刘基明 committed
300
            if (tampFundMap.size() > 0) {
刘基明's avatar
刘基明 committed
301 302 303 304 305 306
                fundMap.putAll(tampFundMap);
            }
        }
        // 私募产品
        if (!CollectionUtils.isEmpty(fundIds)) {
            // 私募产品
张辰's avatar
张辰 committed
307 308 309 310
            List<ProductInfoVO> list = feignService.getFundList(setToList(fundIds));
            List<FundInfoBaseResp> fundInfoBaseRespList = list.stream().map(item -> {
                FundInfoBaseResp fundInfoBaseResp = FundInfoBaseResp.builder().build();
                BeanUtils.copyProperties(item, fundInfoBaseResp);
刘基明's avatar
刘基明 committed
311
                fundInfoBaseResp.setProductName(item.getFundName());
张辰's avatar
张辰 committed
312 313 314
                return fundInfoBaseResp;
            }).collect(Collectors.toList());
            privateFundMap = fundInfoBaseRespList.stream().collect(Collectors.toMap(FundInfoBaseResp::getFundId, item -> item));
刘基明's avatar
刘基明 committed
315

刘基明's avatar
刘基明 committed
316
            if (privateFundMap.size() > 0) {
刘基明's avatar
刘基明 committed
317 318 319 320 321 322
                fundMap.putAll(privateFundMap);
            }
        }

        // 理财师导入产品
        if (!CollectionUtils.isEmpty(ifaFundIds)) {
张辰's avatar
张辰 committed
323 324 325 326
            List<ProductInfoVO> list = feignService.getPrivateFundList(setToList(ifaFundIds));
            List<FundInfoBaseResp> fundInfoBaseRespList = list.stream().map(item -> {
                FundInfoBaseResp fundInfoBaseResp = FundInfoBaseResp.builder().build();
                BeanUtils.copyProperties(item, fundInfoBaseResp);
刘基明's avatar
刘基明 committed
327
                fundInfoBaseResp.setProductName(item.getFundName());
张辰's avatar
张辰 committed
328 329 330 331
                return fundInfoBaseResp;
            }).collect(Collectors.toList());
            ifaFundMap = fundInfoBaseRespList.stream().collect(Collectors.toMap(FundInfoBaseResp::getFundId, item -> item));

刘基明's avatar
刘基明 committed
332

刘基明's avatar
刘基明 committed
333
            if (ifaFundMap.size() > 0) {
刘基明's avatar
刘基明 committed
334 335 336 337 338 339
                fundMap.putAll(ifaFundMap);
            }
        }

        if (!CollectionUtils.isEmpty(publicFundIds)) {
            // 公募产品
张辰's avatar
张辰 committed
340 341 342 343
            List<ProductInfoVO> list = feignService.getPublicFundList(setToList(publicFundIds));
            List<FundInfoBaseResp> fundInfoBaseRespList = list.stream().map(item -> {
                FundInfoBaseResp fundInfoBaseResp = FundInfoBaseResp.builder().build();
                BeanUtils.copyProperties(item, fundInfoBaseResp);
刘基明's avatar
刘基明 committed
344
                fundInfoBaseResp.setProductName(item.getFundName());
张辰's avatar
张辰 committed
345 346 347 348
                return fundInfoBaseResp;
            }).collect(Collectors.toList());
            publicFundMap = fundInfoBaseRespList.stream().collect(Collectors.toMap(FundInfoBaseResp::getFundId, item -> item));

刘基明's avatar
刘基明 committed
349
            if (publicFundMap.size() > 0) {
刘基明's avatar
刘基明 committed
350 351 352 353 354 355
                fundMap.putAll(publicFundMap);
            }
        }

        if (!CollectionUtils.isEmpty(notNetFundIds)) {
            // 无净值产品
刘基明's avatar
刘基明 committed
356 357
            CommonResp<List<ProductInfoVO>> notNetInfoResult =
                    feignForFund.getProductListNotNetInfo(setToList(notNetFundIds));
刘基明's avatar
刘基明 committed
358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377
            if (notNetInfoResult.isSuccess() && !CollectionUtils.isEmpty(notNetInfoResult.getData())) {
                List<FundInfoBaseResp> fundInfoBaseRespList = notNetInfoResult.getData().stream().map(item -> {
                    FundInfoBaseResp fundInfoBaseResp = FundInfoBaseResp.builder().build();
                    BeanUtils.copyProperties(item, fundInfoBaseResp);
                    return fundInfoBaseResp;
                }).collect(Collectors.toList());
                notNetFundMap = fundInfoBaseRespList.stream().collect(Collectors.toMap(FundInfoBaseResp::getFundId, item -> item));
            }
            if (notNetFundMap != null && notNetFundMap.size() > 0) {
                fundMap.putAll(notNetFundMap);
            }
        }
    }

    /**
     * 设置资源信息
     */
    private void setResInfo(List<ThemeQo> themeQos,
                            Map<String, ShortVideoBaseInfoResp> shortVideoMap,
                            Map<String, ShortVideoBaseInfoResp> curriculumMap,
刘基明's avatar
刘基明 committed
378
                            Map<String, CourseSimpleResp> courseMap,
刘基明's avatar
刘基明 committed
379 380
                            Map<String, ZhiboListResp> zhiboMap,
                            Map<String, FundInfoBaseResp> fundMap,
刘基明's avatar
刘基明 committed
381
                            Map<String, OfflineActivitySimpleResp> activityMap, Map<String, FileRecordEntity> imgUrlMap,
382
                            Map<String, UserInfoResp> userMap,
刘基明's avatar
刘基明 committed
383
                            Map<String, TopicEntity> topicMap) {
刘基明's avatar
刘基明 committed
384
        for (ThemeQo themeQo : themeQos) {
刘基明's avatar
刘基明 committed
385
            if (!StringUtils.isEmpty(themeQo.getTopicId()) && topicMap.containsKey(themeQo.getTopicId())) {
刘基明's avatar
刘基明 committed
386
                //话题标题
刘基明's avatar
刘基明 committed
387 388 389
                TopicEntity topicEntity = topicMap.get(themeQo.getTopicId());
                themeQo.setTopicTitle(topicEntity.getTopicTitle());
                themeQo.setTopicSpecialPermission(topicEntity.getSpecialPermission());
390
            }
刘基明's avatar
刘基明 committed
391
            if (!StringUtils.isEmpty(themeQo.getAuthorId()) && userMap.containsKey(themeQo.getAuthorId())) {
刘基明's avatar
刘基明 committed
392
                //用户信息
393
                UserInfoResp userInfo = userMap.get(themeQo.getAuthorId());
刘基明's avatar
刘基明 committed
394
                //昵称头像简介
刘基明's avatar
刘基明 committed
395 396 397
                themeQo.setNickName(userInfo.getNickName());
                themeQo.setUserImg(userInfo.getHeadImageUrl());
                themeQo.setUserIntroduction(userInfo.getIntroduction());
刘基明's avatar
刘基明 committed
398
                //认证标签相关
刘基明's avatar
刘基明 committed
399 400 401 402 403
                themeQo.setUserType(userInfo.getUserType());
                themeQo.setLevelGrade(userInfo.getLevelGrade());
                themeQo.setUserInvestorType(userInfo.getUserInvestorType());
                themeQo.setBelongUserOrgId(userInfo.getBelongUserOrgId());
                themeQo.setBelongUserOrgName(userInfo.getBelongUserOrgName());
刘基明's avatar
刘基明 committed
404 405 406 407 408 409 410 411 412 413 414
                //工作室相关
                themeQo.setWorkshopName(userInfo.getWorkshopName());
                themeQo.setWorkshopStatus(userInfo.getWorkshopStatus());
                themeQo.setWorkshopIntroduction(userInfo.getWorkshopIntroduction());
                //首席投顾
                if (UserLevelEnum.USER_CHIEF_FINANCIAL_ADVISER.getCode() == userInfo.getLevelGrade()
                        && userInfo.getUserInfoNewChief() != null) {
                    themeQo.setNickName(userInfo.getUserInfoNewChief().getUserName());
                    themeQo.setUserImg(userInfo.getUserInfoNewChief().getHeadImageUrl());
                    themeQo.setUserIntroduction(userInfo.getUserInfoNewChief().getPersonalProfile());
                }
刘基明's avatar
刘基明 committed
415
            }
刘基明's avatar
刘基明 committed
416
            if (themeQo.getContent() == null) {
刘基明's avatar
刘基明 committed
417 418
                continue;
            }
刘基明's avatar
刘基明 committed
419 420 421
            for (ThemeContentQo themeContent : themeQo.getContent()) {
                if (themeContent.getType().equals(RelTypeEnum.LIVE.type)) {
                    if (zhiboMap.containsKey(themeContent.getValue())) {
刘基明's avatar
刘基明 committed
422
                        ZhiboListResp zhibo = zhiboMap.get(themeContent.getValue());
刘基明's avatar
刘基明 committed
423 424 425 426 427 428 429 430 431 432 433 434 435
                        themeContent.setDetail(AttachmentDetailVo.builder().zhibo(zhibo).build());
                    }
                } else if (themeContent.getType().equals(RelTypeEnum.SHORT_VIDEO.type)) {
                    if (shortVideoMap.containsKey(themeContent.getValue())) {
                        themeContent.setDetail(AttachmentDetailVo.builder()
                                .shortVideo(shortVideoMap.get(themeContent.getValue())).build());
                    }
                } else if (themeContent.getType().equals(RelTypeEnum.VIDEO.type) ||
                        themeContent.getType().equals(RelTypeEnum.AUDIO.type)) {
                    if (curriculumMap.containsKey(themeContent.getValue())) {
                        themeContent.setDetail(AttachmentDetailVo.builder()
                                .curriculum(curriculumMap.get(themeContent.getValue())).build());
                    }
刘基明's avatar
刘基明 committed
436 437 438 439 440 441
                } else if (themeContent.getType().equals(RelTypeEnum.NEW_COURSE_SECTION_VIDEO.type) ||
                        themeContent.getType().equals(RelTypeEnum.NEW_COURSE_SECTION_AUDIO.type)) {
                    if (courseMap.containsKey(themeContent.getValue())) {
                        themeContent.setDetail(AttachmentDetailVo.builder()
                                .course(courseMap.get(themeContent.getValue())).build());
                    }
刘基明's avatar
刘基明 committed
442 443 444 445 446 447 448 449 450 451
                } else if (themeContent.getType().equals(RelTypeEnum.FUND.type)) {
                    if (fundMap.containsKey(themeContent.getValue())) {
                        FundInfoBaseResp product = fundMap.get(themeContent.getValue());
                        // 推荐语
                        product.setRemark(themeContent.getRemark());
                        // 产品类型
                        product.setProductType(themeContent.getProductType());
                        themeContent.setDetail(AttachmentDetailVo.builder()
                                .product(product).build());
                    }
刘基明's avatar
刘基明 committed
452
                } else if (themeContent.getType().equals(RelTypeEnum.OFFLINE_ACTIVITY.type)) {
刘基明's avatar
刘基明 committed
453
                    if (activityMap.containsKey(themeContent.getValue())) {
刘基明's avatar
刘基明 committed
454 455 456
                        themeContent.setDetail(AttachmentDetailVo.builder()
                                .activity(activityMap.get(themeContent.getValue())).build());
                    }
刘基明's avatar
刘基明 committed
457
                } else if (themeContent.getType().equals(RelTypeEnum.SINGLE_IMG.type)) {
刘基明's avatar
刘基明 committed
458
                    //单图封装到imglist列表中
459
                    if (imgUrlMap.containsKey(themeContent.getValue())) {
刘基明's avatar
刘基明 committed
460
                        FileRecordEntity imgEntity = imgUrlMap.get(themeContent.getValue());
刘基明's avatar
刘基明 committed
461
                        if (imgEntity != null && !StringUtils.isEmpty(imgEntity.getExtInfo())) {
刘基明's avatar
刘基明 committed
462
                            Map<String, Object> extMap = JsonUtil.toMap(imgEntity.getExtInfo());
刘基明's avatar
刘基明 committed
463 464
                            ImagesDTO imagesDTO = ImagesDTO.builder().imgHeight((Integer) extMap.get("height"))
                                    .imgWidth((Integer) extMap.get("width"))
刘基明's avatar
刘基明 committed
465 466
                                    .remark(imgEntity.getUrl())
                                    .relId(imgEntity.getFileId())
刘基明's avatar
刘基明 committed
467 468
                                    //压缩图片
                                    .resizeUrl(imgEntity.getUrl() + CommunityConstant.OSS_RESIZE_RATIO)
刘基明's avatar
刘基明 committed
469
                                    .build();
刘基明's avatar
刘基明 committed
470
                            // 图片审核屏蔽
刘基明's avatar
刘基明 committed
471
                            if (FileChechStatusEnum.BLOCK.getCode().equals(imgEntity.getCheckStatus())) {
刘基明's avatar
刘基明 committed
472
                                imagesDTO.setRemark(CommunityConstant.OSS_CHECK_FAIL_DEFAULT);
刘基明's avatar
刘基明 committed
473
                                imagesDTO.setResizeUrl(CommunityConstant.OSS_CHECK_FAIL_DEFAULT + CommunityConstant.OSS_RESIZE_RATIO);
刘基明's avatar
刘基明 committed
474 475
                                imagesDTO.setImgWidth(CommunityConstant.OSS_CHECK_FAIL_DEFAULT_WIDTH);
                                imagesDTO.setImgHeight(CommunityConstant.OSS_CHECK_FAIL_DEFAULT_HEIGHT);
刘基明's avatar
刘基明 committed
476
                            }
刘基明's avatar
刘基明 committed
477 478
                            themeContent.setImgList(Collections.singletonList(imagesDTO));
                        }
479
                    }
刘基明's avatar
刘基明 committed
480
                } else if (themeContent.getType().equals(RelTypeEnum.MULTIPLE_IMAGE.type)) {
刘基明's avatar
刘基明 committed
481
                    //多图写入图片宽高,压缩图片url
刘基明's avatar
刘基明 committed
482 483
                    List<ImagesDTO> imgList = themeContent.getImgList();
                    for (ImagesDTO imagesDTO : imgList) {
刘基明's avatar
刘基明 committed
484

刘基明's avatar
刘基明 committed
485
                        if (imgUrlMap.containsKey(imagesDTO.getRelId())) {
刘基明's avatar
刘基明 committed
486
                            FileRecordEntity imgEntity = imgUrlMap.get(imagesDTO.getRelId());
刘基明's avatar
刘基明 committed
487
                            // 图片审核不通过,替换为默认图片 todo 配置移除
刘基明's avatar
刘基明 committed
488
                            if (FileChechStatusEnum.BLOCK.getCode().equals(imgEntity.getCheckStatus())) {
刘基明's avatar
刘基明 committed
489
                                imagesDTO.setRemark(CommunityConstant.OSS_CHECK_FAIL_DEFAULT);
刘基明's avatar
刘基明 committed
490
                                imagesDTO.setResizeUrl(CommunityConstant.OSS_CHECK_FAIL_DEFAULT + CommunityConstant.OSS_RESIZE_RATIO);
刘基明's avatar
刘基明 committed
491 492
                                imagesDTO.setImgWidth(CommunityConstant.OSS_CHECK_FAIL_DEFAULT_WIDTH);
                                imagesDTO.setImgHeight(CommunityConstant.OSS_CHECK_FAIL_DEFAULT_HEIGHT);
刘基明's avatar
刘基明 committed
493
                            } else {
刘基明's avatar
刘基明 committed
494 495 496 497 498 499 500 501
                                imagesDTO.setRemark(imgEntity.getUrl());
                                imagesDTO.setResizeUrl(imgEntity.getUrl() + CommunityConstant.OSS_RESIZE_RATIO);
                                String extInfo = imgEntity.getExtInfo();
                                if (!StringUtils.isEmpty(extInfo)) {
                                    Map<String, Object> extMap = JsonUtil.toMap(extInfo);
                                    imagesDTO.setImgHeight((Integer) extMap.get("height"));
                                    imagesDTO.setImgWidth((Integer) extMap.get("width"));
                                }
刘基明's avatar
刘基明 committed
502 503 504 505
                            }
                        }
                    }

刘基明's avatar
刘基明 committed
506 507
                }
            }
刘基明's avatar
刘基明 committed
508 509 510 511 512 513 514 515 516 517
//            String formerThemeId = themeQo.getFormerThemeId();
//            if (!StringUtils.isEmpty(formerThemeId)) {
//                FormerThemeQo formerTheme = themeQo.getFormerTheme();
//
//                //单个查询详情
////            productService.getAttachDetail(formerTheme);
//
//                FormerThemeQo f = ConvertUtil.themeQo2FormerThemeQo(formerTheme);
//                themeQo.setFormerTheme(f);
//            }
刘基明's avatar
刘基明 committed
518
        }
刘基明's avatar
刘基明 committed
519

刘基明's avatar
刘基明 committed
520 521
    }

刘基明's avatar
刘基明 committed
522 523 524 525 526 527
    private List<String> setToList(Set<String> set) {
        List<String> l = new ArrayList<>();
        l.addAll(set);
        return l;
    }

刘基明's avatar
刘基明 committed
528 529 530 531 532
    //组装被转发主题
    private void buildFormerTheme(ThemeQo themeQo) {

    }

刘基明's avatar
刘基明 committed
533
}