package com.ks.daylucky.controller.api.client; import com.ks.daylucky.pojo.DO.UserInfo; import com.ks.daylucky.pojo.VO.*; import com.ks.daylucky.service.UserInfoService; import com.ks.daylucky.util.Constant; import com.ks.daylucky.util.UserInfoUtil; import com.ks.lucky.exception.LuckyActivityException; import com.ks.lucky.exception.LuckyActivityJoinAssistException; import com.ks.lucky.pojo.DO.ActivityJoinAssistEvent; import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist; import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord; import com.ks.lucky.pojo.DTO.ActivityAssistFriend; import com.ks.lucky.pojo.DTO.ActivityFriendAssistInfo; import com.ks.lucky.remote.service.LuckyActivityJoinAssistService; import com.ks.lucky.remote.service.LuckyActivityJoinService; 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 org.yeshi.utils.StringUtil; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; @Controller @RequestMapping("api/client/activity/assist") public class ActivityAssistController { @Reference(version = "1.0") private LuckyActivityJoinAssistService luckyActivityJoinAssistService; @Reference(version = "1.0") private LuckyActivityJoinService luckyActivityJoinService; @Resource private UserInfoService userInfoService; @ResponseBody @RequestMapping("assist") public String assist(AcceptData acceptData, Long activityId, Long joinId, int page) { LuckyActivityJoinRecord record = luckyActivityJoinService.getJoinRecord(joinId); //不存在助力 if (record == null) { return JsonUtil.loadFalseResult(""); } try { luckyActivityJoinAssistService.assist(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", record.getUid(), ActivityJoinAssistEvent.assist, 1); UserInfo user = userInfoService.getUserDetail(Long.parseLong(record.getUid())); JSONObject data = new JSONObject(); if (user != null) { //助力成功 data.put("invite", new AssistResultInfoVO(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()), "邀请你助力拼手气抽奖")); } return JsonUtil.loadTrueResult(data); } catch (LuckyActivityException e) { e.printStackTrace(); } catch (LuckyActivityJoinAssistException e) { e.printStackTrace(); } return JsonUtil.loadFalseResult("助力失败"); } @ResponseBody @RequestMapping("getAssistFriendsList") public String getAssistFriendsList(AcceptData acceptData, int page) { List list = new ArrayList<>(); List recordList = luckyActivityJoinAssistService.getAssistFriendsList(acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE); long count = luckyActivityJoinAssistService.countAssistFriends(acceptData.getApp().getId(), acceptData.getUid() + ""); List uidList = new ArrayList<>(); if (recordList != null) { for (ActivityAssistFriend assist : recordList) { uidList.add(Long.parseLong(assist.getUid())); } //填充用户信息 if (uidList.size() > 0) { Map userInfoMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(recordList)); for (ActivityAssistFriend assistFriend : recordList) { list.add(new AssistFriendVO(userInfoMap.get(Long.parseLong(assistFriend.getUid())), assistFriend.getAssistCount())); } } } JSONObject data = new JSONObject(); data.put("data", JsonUtil.getApiCommonGson().toJson(list)); data.put("count", count); return JsonUtil.loadTrueResult(data); } /** * 活动助力列表 * * @param acceptData * @param page * @return */ @ResponseBody @RequestMapping("getActivityAssistCouponList") public String getActivityAssistCouponList(AcceptData acceptData, Long activityId, int page) { List list = luckyActivityJoinAssistService.getActivityFriendAssistInfoList(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE); List voList = new ArrayList<>(); if (list != null) { Map userMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(list)); for (ActivityFriendAssistInfo info : list) { UserInfo user = userMap.get(Long.parseLong(info.getUid())); if (user != null) { List eventList = new ArrayList<>(); if (info.getEventList() != null) { for (ActivityJoinAssistEvent event : info.getEventList()) { eventList.add(event.getName()); } } voList.add(new ActivityFriendAssistInfoVO(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()), StringUtil.concat(eventList, "\n且"), info.getWeight())); } } } long count = luckyActivityJoinAssistService.countyActivityFriendAssistInfo(activityId, acceptData.getApp().getId(), acceptData.getUid() + ""); JSONObject data = new JSONObject(); data.put("data", voList); data.put("count", count); return JsonUtil.loadTrueResult(data); } }