admin
2021-01-28 8c1c003c60d2f27b3c55e248451caeec7f2b5631
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.ks.daylucky.util.factory.vo;
 
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.DTO.ActivityJoinConditionEvent;
import com.ks.daylucky.pojo.VO.ActivityAwardVO;
import com.ks.daylucky.pojo.VO.ActivityDetailVO;
import com.ks.daylucky.pojo.VO.LabelVO;
import com.ks.daylucky.pojo.VO.common.JumpDetailVO;
import com.ks.daylucky.util.activity.ActivityUtil;
import com.ks.lucky.pojo.DO.*;
import com.ks.lucky.pojo.DTO.sponsorad.AlipayLifeAdInfo;
import net.sf.json.JSONObject;
import org.yeshi.utils.TimeUtil;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class ActivityDetailVOFactory {
 
    public static ActivityDetailVO create(ActivityDetailInfoDTO dto, String helpLink, Integer assistCount, int sponsorActivityCount) {
        ActivityDetailVO vo = new ActivityDetailVO();
        vo.setActivity(create(dto.getActivity()));
        vo.setJoined(dto.getJoin());
        vo.setJoinCondition(createJoinCondition(dto.getActivity().getSponsorInfo()));
        //设置开奖信息
        vo.setOpenConditions(create(dto.getActivity().getOpenInfo()));
        //总共的参与人数
        vo.setTotalJoinNumerDesc(String.format("共%s人参与拼手气抽奖", dto.getActivity().getCurrentPersonCount()));
        //设置最近几位的参与者信息
        vo.setUserList(dto.getJoinerList());
        if (dto.getTagList() != null) {
            List<LabelVO> labelVOList = new ArrayList<>();
            for (ActivityTag tag : dto.getTagList()) {
                labelVOList.add(create(tag));
            }
            vo.setLabels(labelVOList);
        }
 
        vo.setHelpLink(helpLink);
        vo.setAssistCount(assistCount);
        vo.setSponsorActivityCount(sponsorActivityCount <= 1 ? 0 : sponsorActivityCount - 1);
        if (dto.getActivity().getOpenInfo().getActualOpenTime() != null) {
            vo.setActualOpenDate(TimeUtil.getGernalTime(dto.getActivity().getOpenInfo().getActualOpenTime().getTime(), "yyyy.MM.dd HH:mm"));
        }
 
        return vo;
    }
 
 
    public static LabelVO create(ActivityTag tag) {
        LabelVO vo = new LabelVO(tag.getTagName(), tag.getTagBgColor(), tag.getTagFontColor());
        return vo;
    }
 
    private static ActivityDetailVO.ActivityBean create(LuckyActivity activity) {
        ActivityDetailVO.ActivityBean bean = new ActivityDetailVO.ActivityBean();
        List<ActivityAwardVO> awardList = new ArrayList<>();
        int p = 0;
        for (LuckyActivityAwards awards : activity.getAwardsList()) {
            awardList.add(ActivityListItemInfoVOFactory.create(awards, p++));
        }
        bean.setAwardList(awardList);
        bean.setId(activity.getId());
        //设置了预计结束时间
        if (activity.getPreFinishTime() != null) {
            long leftTime = 0;
            if (activity.getState() == LuckyActivity.STATE_STARTED) {
                leftTime = activity.getPreFinishTime().getTime() - System.currentTimeMillis();
                if (leftTime < 0) {
                    leftTime = 0L;
                }
            }
            bean.setLeftTime(leftTime);
        }
        bean.setName(activity.getName());
        if (activity.getBannerList() == null || activity.getBannerList().size() == 0) {
            bean.setBannerList(Arrays.asList(new String[]{activity.getMaterialPoster()}));
        } else {
            List<String> bannerList = new ArrayList<>();
            for (LuckyActivityImage image : activity.getBannerList()) {
                bannerList.add(image.getUrl());
            }
            bean.setBannerList(bannerList);
        }
        bean.setSponsor(ActivityListItemInfoVOFactory.create(activity.getSponsorInfo().getSponsors()));
        bean.setSponsorAd(create(activity.getSponsorInfo()));
        bean.setDateNumber("活动期号:" + ActivityUtil.getActivityDateNumber(activity.getId(), activity.getCreateTime()));
        return bean;
    }
 
    private static ActivityDetailVO.ActivityBean.JoinConditionBean createJoinCondition(LuckyActivitySponsorInfo sponsorInfo) {
        ActivityDetailVO.ActivityBean.JoinConditionBean bean = new ActivityDetailVO.ActivityBean.JoinConditionBean();
        if (sponsorInfo.getAd().getAdType() == LuckySponsorAd.SponsorAdType.alipayLife) {
 
            List<ActivityJoinConditionEvent> conditions = new ArrayList<>();
            if (sponsorInfo.getAd().getAlipayLifeAdInfo().getMustAttention()) {
                conditions.add(ActivityJoinConditionEvent.attention);
            }
 
            List<String> descList = new ArrayList<>();
            descList.add("关注赞助商生活号。");
            descList.add("点赞赞助商生活号最新发布消息。");
 
            bean.setConditions(conditions);
            bean.setConditionsDesc(descList);
            bean.setMarks(sponsorInfo.getAd().getDesc());
        }
 
        return bean;
    }
 
    private static ActivityDetailVO.ActivityBean.OpenConditionsBean create(LuckyActivityOpenInfo openInfo) {
        ActivityDetailVO.ActivityBean.OpenConditionsBean bean = new ActivityDetailVO.ActivityBean.OpenConditionsBean();
        List<String> conditions = new ArrayList<>();
 
        if (openInfo.getOpenType() == LuckyActivityOpenInfo.OPEN_TYPE_PERSON_AND_TIME) {
            conditions.add(String.format("%s自动开奖", TimeUtil.getGernalTime(openInfo.getPreOpenTime().getTime(), "MM月dd日 HH:mm")));
        }
        conditions.add(String.format("参与者到达%s人自动开奖", openInfo.getMinPersonCount()));
        bean.setConditions(conditions);
        bean.setMarks(openInfo.getRemarks());
        return bean;
    }
 
    private static ActivityDetailVO.ActivityBean.SponsorAdBean create(LuckyActivitySponsorInfo sponsorInfo) {
        ActivityDetailVO.ActivityBean.SponsorAdBean bean = new ActivityDetailVO.ActivityBean.SponsorAdBean();
        if (sponsorInfo.getAd().getAdType() == LuckySponsorAd.SponsorAdType.alipayLife) {
            bean.setLabel(new LabelVO("生活号", "#D2E9FF", "#0080FF"));
            AlipayLifeAdInfo ad = sponsorInfo.getAd().getAlipayLifeAdInfo();
            bean.setContent(ad.getDesc());
            bean.setIcon(ad.getIcon());
            bean.setTitle(ad.getName());
            JSONObject params = new JSONObject();
            params.put("sceneId", ad.getSceneId());
            bean.setJump(new JumpDetailVO(JumpDetailVO.JumpType.alipayLife, "关注生活号", params));
        } else {
            //其他广告类型的支持
        }
 
        return bean;
    }
 
}