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;
|
}
|
|
|
}
|