admin
2020-12-17 452714cdffb21300ed64d5818efaa9cc38c3ee83
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package com.ks.daylucky.service.impl;
 
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.ActivityTagService;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.daylucky.util.UserInfoUtil;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityAwardResult;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DTO.ActivitySimpleUser;
import com.ks.lucky.remote.service.LuckyActivityAwardResultService;
import com.ks.lucky.remote.service.LuckyActivityAwardService;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import com.ks.lucky.remote.service.LuckyActivityService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
 
@Service
public class ActivityServiceImpl implements ActivityService {
    @Reference(version = "1.0.0")
    private LuckyActivityService luckyActivityService;
 
    @Reference(version = "1.0.0")
    private LuckyActivityJoinService luckyActivityJoinService;
    @Reference(version = "1.0.0")
    private LuckyActivityAwardResultService luckyActivityAwardResultService;
    @Reference(version = "1.0.0")
    private LuckyActivityAwardService luckyActivityAwardService;
 
    @Resource
    private UserInfoService userInfoService;
 
    @Resource
    private ActivityTagService activityTagService;
 
    @Override
    public List<ActivityDetailInfoDTO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult) {
        List<ActivityDetailInfoDTO> voList = new ArrayList<>();
        if (activityIds != null) {
            for (Long activityId : activityIds) {
                voList.add(getActivityDetail(activityId, appId, uid, false, 3, needAwardResult));
            }
        }
        return voList;
    }
 
    @Override
    public ActivityDetailInfoDTO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult) {
        ActivityDetailInfoDTO vo = new ActivityDetailInfoDTO();
 
        LuckyActivity activity = luckyActivityService.getActivityDetail(activityId);
        if (needTag) {
            //获取tag
            List<ActivityTag> tagList = activityTagService.getTagList(activityId);
            vo.setTagList(tagList);
        }
        if (maxJoinerCount != null) {
            //获取最近的参与者列表
            List<SimpleUser> userList = new ArrayList<>();
            List<ActivitySimpleUser> list = luckyActivityJoinService.getJoinerList(activityId, 1, Constant.PAGE_SIZE);
            if (list != null && list.size() > 0) {
                Map<Long, UserInfo> userInfoMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(list));
                for (ActivitySimpleUser info : list) {
                    UserInfo user = userInfoMap.get(info.getUid());
                    if (user != null) {
                        userList.add(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()));
                    }
                }
            }
            vo.setJoinerList(userList);
        }
        if (uid != null) {
            //获取是否参加
            LuckyActivityJoinRecord record = luckyActivityJoinService.getJoinInfo(activityId, appId, uid + "");
            boolean join = false;
            if (record != null) {
                join = true;
            }
            vo.setJoin(join);
        }
 
        //是否需要加载中奖结果
        if (needAwardResult) {
            LuckyActivityAwardResult result = luckyActivityAwardResultService.getResult(appId, uid + "", activityId);
            if (result != null) {
                vo.setAwards(luckyActivityAwardService.getAwardDetail(result.getAwardId()));
            }
        }
        vo.setActivity(activity);
 
        return vo;
    }
 
 
}