package com.ks.daylucky.controller.api.client; import com.ks.daylucky.pojo.DO.ActivityScanRecord; import com.ks.daylucky.pojo.DO.AppConfig; import com.ks.daylucky.pojo.DTO.ConfigKeyEnum; import com.ks.daylucky.pojo.VO.AcceptData; import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO; import com.ks.daylucky.pojo.VO.ActivityDetailVO; import com.ks.daylucky.pojo.VO.ActivityListItemInfoVO; import com.ks.daylucky.service.*; import com.ks.daylucky.util.Constant; import com.ks.daylucky.util.factory.vo.ActivityDetailVOFactory; import com.ks.daylucky.util.factory.vo.ActivityListItemInfoVOFactory; import com.ks.lucky.pojo.DO.LuckyActivity; import com.ks.lucky.remote.service.LuckyActivityJoinAssistService; import com.ks.lucky.remote.service.LuckyActivityJoinService; import com.ks.lucky.remote.service.LuckyActivityService; import net.sf.json.JSONObject; import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.yeshi.utils.JsonUtil; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("api/client/activity") public class ActivityController { @Reference(version = "1.0") private LuckyActivityService luckyActivityService; @Reference(version = "1.0") private LuckyActivityJoinAssistService luckyActivityJoinAssistService; @Resource private ActivityScanRecordService activityScanRecordService; @Resource private ActivityService activityService; @Resource private AppConfigService appConfigService; /** * 获取活动详情 * * @param acceptData * @param activityId * @return */ @ResponseBody @RequestMapping("getActivityDetail") public String getActivityDetail(AcceptData acceptData, Long activityId) { ActivityDetailInfoDTO dto = activityService.getActivityDetail(activityId, acceptData.getApp().getId(), acceptData.getUid(), true, 20, false); if (dto == null) { return JsonUtil.loadFalseResult("活动不存在"); } AppConfig help = appConfigService.getConfigCache(acceptData.getApp().getId(), ConfigKeyEnum.activityDetailHelp, acceptData.getVersion()); Integer assistCount = null; if (dto.getJoin()) { long count = luckyActivityJoinAssistService.countAssistRecord(activityId, acceptData.getApp().getId(), acceptData.getUid() + ""); assistCount = (int) count; } ActivityDetailVO vo = ActivityDetailVOFactory.create(dto, help != null ? help.getValue() : null, assistCount); return JsonUtil.loadTrueResult(vo); } /** * 获取推荐活动列表 * * @param acceptData * @param page * @return */ @ResponseBody @RequestMapping("getRecommendActivity") public String getRecommendActivity(AcceptData acceptData, int page) { List list = luckyActivityService.getRecommendActivity(acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE); long count = luckyActivityService.getRecommendActivityCount(acceptData.getApp().getId(), acceptData.getUid() + ""); List activityIds = new ArrayList<>(); if (list != null && list.size() > 0) { for (LuckyActivity activity : list) { activityIds.add(activity.getId()); } } List dtoList = activityService.getActivityDetail(activityIds, acceptData.getApp().getId(), acceptData.getUid(), false); JSONObject data = new JSONObject(); data.put("data", ActivityListItemInfoVOFactory.create(dtoList)); data.put("count", count); return JsonUtil.loadTrueResult(data); } /** * 获取赞助商的活动 * * @param acceptData * @param page * @return */ @RequestMapping("getSponsorActivity") public String getSponsorActivity(AcceptData acceptData, Long sponsorId, int page) { List list = luckyActivityService.getActivityList(acceptData.getApp().getId(), sponsorId, getCanShowStateList(), null, page, Constant.CLIENT_ACTIVITY_LIST_PAGE_SIZE); long count = luckyActivityService.countActivity(acceptData.getApp().getId(), sponsorId, getCanShowStateList(), null); List activityIds = new ArrayList<>(); if (list != null && list.size() > 0) { for (LuckyActivity activity : list) { activityIds.add(activity.getId()); } } List dtoList = activityService.getActivityDetail(activityIds, acceptData.getApp().getId(), acceptData.getUid(), false); JSONObject data = new JSONObject(); data.put("data", ActivityListItemInfoVOFactory.create(dtoList)); data.put("count", count); return JsonUtil.loadTrueResult(data); } /** * 获取浏览足迹 * * @param acceptData * @param page * @return */ @RequestMapping("getScanActivityRecord") public String getScanActivityRecord(AcceptData acceptData, int page) { List list = activityScanRecordService.getRecordList(acceptData.getUid(), page, Constant.CLIENT_ACTIVITY_LIST_PAGE_SIZE); long count = activityScanRecordService.countRecord(acceptData.getUid()); List activityIds = new ArrayList<>(); if (list != null && list.size() > 0) { for (ActivityScanRecord record : list) { activityIds.add(record.getActivityId()); } } List dtoList = activityService.getActivityDetail(activityIds, acceptData.getApp().getId(), acceptData.getUid(), false); JSONObject data = new JSONObject(); data.put("data", ActivityListItemInfoVOFactory.create(dtoList)); data.put("count", count); return JsonUtil.loadTrueResult(data); } private List getCanShowStateList() { List list = new ArrayList<>(); list.add(LuckyActivity.STATE_OPENED); list.add(LuckyActivity.STATE_STARTED); list.add(LuckyActivity.STATE_FINISH); return list; } }