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("免费参与抽奖活动");
|
if (sponsorInfo.getAd().getAlipayLifeAdInfo().getMustAttention() == null || !sponsorInfo.getAd().getAlipayLifeAdInfo().getMustAttention()) {
|
descList.add("无需关注生活号。");
|
} else {
|
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;
|
}
|
|
}
|