package com.ks.daylucky.util.factory.vo;
|
|
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
|
import com.ks.daylucky.pojo.VO.ActivityAwardVO;
|
import com.ks.daylucky.pojo.VO.ActivityListItemInfoVO;
|
import com.ks.daylucky.pojo.VO.SponsorVO;
|
import com.ks.daylucky.util.activity.ActivityUtil;
|
import com.ks.lucky.pojo.DO.*;
|
import org.yeshi.utils.TimeUtil;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class ActivityListItemInfoVOFactory {
|
|
public static ActivityListItemInfoVO create(ActivityDetailInfoDTO dto) {
|
ActivityListItemInfoVO vo = new ActivityListItemInfoVO();
|
vo.setActivity(create(dto.getActivity()));
|
vo.setJoined(dto.getJoin());
|
//设置开奖信息
|
LuckyActivityOpenInfo openInfo = dto.getActivity().getOpenInfo();
|
if (openInfo.getOpenType() == LuckyActivityOpenInfo.OPEN_TYPE_PERSON) {
|
vo.setOpenInfoDesc(String.format("参与者到达%s人自动开奖", openInfo.getMinPersonCount()));
|
} else {
|
vo.setOpenInfoDesc(String.format("%s自动开奖", TimeUtil.getGernalTime(openInfo.getPreOpenTime().getTime(), "MM月dd日 HH:mm")));
|
}
|
vo.setStateInfo(create(dto.getActivity(), dto.getAwardResult()));
|
//总共的参与人数
|
vo.setTotalJoinNumerDesc(String.format("%s人参与拼手气", dto.getActivity().getCurrentPersonCount()));
|
//设置最近几位的参与者信息
|
vo.setUserList(dto.getJoinerList());
|
return vo;
|
}
|
|
public static List<ActivityListItemInfoVO> create(List<ActivityDetailInfoDTO> dtoList) {
|
List<ActivityListItemInfoVO> voList = new ArrayList<>();
|
if (dtoList != null) {
|
for (ActivityDetailInfoDTO dto : dtoList) {
|
voList.add(create(dto));
|
}
|
}
|
return voList;
|
}
|
|
private static ActivityListItemInfoVO.ActivityBean create(LuckyActivity activity) {
|
ActivityListItemInfoVO.ActivityBean bean = new ActivityListItemInfoVO.ActivityBean();
|
List<ActivityAwardVO> list = new ArrayList<>();
|
int p = 0;
|
for (LuckyActivityAwards awards : activity.getAwardsList()) {
|
//最多显示3个奖项
|
if (list.size() >= 3) {
|
break;
|
}
|
list.add(create(awards, p++));
|
}
|
bean.setId(activity.getId());
|
bean.setAwardList(list);
|
bean.setName(activity.getName());
|
bean.setPoster(activity.getMaterialPoster());
|
bean.setSponsor(create(activity.getSponsorInfo().getSponsors()));
|
return bean;
|
}
|
|
public static ActivityAwardVO create(LuckyActivityAwards awards, Integer position) {
|
String[] pdescs = new String[]{
|
"一", "二", "三", "四", "五", "六", "七", "八", "九", "十"
|
};
|
ActivityAwardVO bean = new ActivityAwardVO();
|
if (awards.getMaterial() != null) {
|
//TODO 获取详情链接
|
bean.setLink(null);
|
}
|
|
bean.setId(awards.getId());
|
bean.setTitle(awards.getAwardName());
|
if (position != null && position < 10) {
|
bean.setTitle("奖品" + pdescs[position] + ":" + bean.getTitle());
|
}
|
if (awards.getMaterial().getType() == LuckyActivityAwardMaterial.ActivityAwardMaterialType.alipayRedPackage) {
|
switch (awards.getAwardWay()) {
|
case LuckyActivityAwards.AWARD_WAY_DIVIDE:
|
bean.setTypeIcon("http://img.j.banliapp.com/image/icon/icon_award_way_divide.png");
|
if(awards.getCount()==1){
|
bean.setTypeIcon("http://img.j.banliapp.com/image/icon/icon_award_way_jing.png");
|
}
|
|
break;
|
case LuckyActivityAwards.AWARD_WAY_RANDOM:
|
bean.setTypeIcon("http://img.j.banliapp.com/image/icon/icon_award_way_random.png");
|
break;
|
}
|
} else {
|
// 其他类型的奖品
|
}
|
return bean;
|
}
|
|
public static SponsorVO create(LuckySponsors sponsor) {
|
SponsorVO bean = new SponsorVO();
|
//TODO 设置等级图标
|
bean.setIcon("");
|
bean.setId(sponsor.getId());
|
bean.setName(sponsor.getName());
|
return bean;
|
}
|
|
|
private static ActivityListItemInfoVO.StateInfoBean create(LuckyActivity activity, LuckyActivityAwardResult result) {
|
ActivityListItemInfoVO.StateInfoBean bean = new ActivityListItemInfoVO.StateInfoBean();
|
bean.setDrawnInfo(create(result));
|
|
switch (activity.getState()) {
|
//已经开奖
|
case LuckyActivity.STATE_OPENED:
|
//中奖
|
if (result != null) {
|
switch (result.getState()) {
|
case LuckyActivityAwardResult.STATE_NOT_RECIEVE:
|
bean.setTitle("恭喜你!本活动中奖了(未领)。");
|
break;
|
case LuckyActivityAwardResult.STATE_RECIEVED:
|
bean.setTitle("恭喜你!本活动中奖了(已领)。");
|
break;
|
case LuckyActivityAwardResult.STATE_OUT_OF_DATE:
|
bean.setTitle("很遗憾,中奖超期未领。");
|
break;
|
case LuckyActivityAwardResult.STATE_RECIEVE_FAILED:
|
bean.setTitle("很遗憾,领取失败。");
|
break;
|
}
|
bean.setSubTitle(String.format("(活动期号 %s)", ActivityUtil.getActivityDateNumber(activity.getId(), activity.getCreateTime())));
|
} else {//未中奖
|
bean.setTitle("本活动,未中奖!");
|
bean.setSubTitle(String.format("(活动期号 %s)", ActivityUtil.getActivityDateNumber(activity.getId(), activity.getCreateTime())));
|
}
|
break;
|
default:
|
bean.setTitle("本活动,暂未开奖!");
|
bean.setSubTitle(String.format("(活动期号 %s)", ActivityUtil.getActivityDateNumber(activity.getId(), activity.getCreateTime())));
|
}
|
|
|
return bean;
|
}
|
|
private static ActivityListItemInfoVO.StateInfoBean.DrawnInfoBean create(LuckyActivityAwardResult result) {
|
if (result != null && result.getState() == LuckyActivityAwardResult.STATE_NOT_SHOW) {
|
result = null;
|
}
|
ActivityListItemInfoVO.StateInfoBean.DrawnInfoBean bean = new ActivityListItemInfoVO.StateInfoBean.DrawnInfoBean();
|
if (result != null) {
|
bean.setAward(create(result.getAward(), 0));
|
//设置领取时间
|
long start = result.getCreateTime().getTime();
|
long end = start + 1000 * 60 * 60L * 24 * 7;
|
bean.setSubTitle(String.format("领取时间: %s-%s", TimeUtil.getGernalTime(start, "yyyy.MM.dd HH:mm"), TimeUtil.getGernalTime(end, "yyyy.MM.dd HH:mm")));
|
return bean;
|
} else {
|
return null;
|
}
|
}
|
|
|
}
|