package com.ks.daylucky.controller.api.client;
|
|
import com.ks.daylucky.pojo.DO.UserInfo;
|
import com.ks.daylucky.pojo.DTO.AssistJoinInfoDTO;
|
import com.ks.daylucky.pojo.VO.*;
|
import com.ks.daylucky.service.UserInfoService;
|
import com.ks.daylucky.util.Constant;
|
import com.ks.daylucky.util.RSAUtil;
|
import com.ks.daylucky.util.UserInfoUtil;
|
import com.ks.daylucky.util.activity.ActivityUtil;
|
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.LuckyActivity;
|
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 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 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.0",check = false)
|
private LuckyActivityJoinAssistService luckyActivityJoinAssistService;
|
|
@Reference(version = "1.0.0",check = false)
|
private LuckyActivityJoinService luckyActivityJoinService;
|
|
@Reference(version = "1.0.0",check = false)
|
private LuckyActivityService luckyActivityService;
|
|
@Resource
|
private UserInfoService userInfoService;
|
|
|
@ResponseBody
|
@RequestMapping("assist")
|
public String assist(AcceptData acceptData, Long activityId, String joinInfo) {
|
AssistJoinInfoDTO dto = ActivityUtil.parseShareJoinInfo(joinInfo);
|
if (dto == null) {
|
return JsonUtil.loadFalseResult("参与信息解析失败");
|
}
|
|
|
LuckyActivityJoinRecord record = luckyActivityJoinService.getJoinInfo(activityId, acceptData.getApp().getId(), acceptData.getUid() + "");
|
//不存在助力
|
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<AssistFriendVO> list = new ArrayList<>();
|
List<ActivityAssistFriend> recordList = luckyActivityJoinAssistService.getAssistFriendsList(acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE);
|
long count = luckyActivityJoinAssistService.countAssistFriends(acceptData.getApp().getId(), acceptData.getUid() + "");
|
List<Long> uidList = new ArrayList<>();
|
if (recordList != null) {
|
for (ActivityAssistFriend assist : recordList) {
|
uidList.add(Long.parseLong(assist.getUid()));
|
}
|
//填充用户信息
|
if (uidList.size() > 0) {
|
Map<Long, UserInfo> 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<ActivityFriendAssistInfo> list = luckyActivityJoinAssistService.getActivityFriendAssistInfoList(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE);
|
List<ActivityFriendAssistInfoVO> voList = new ArrayList<>();
|
if (list != null) {
|
Map<Long, UserInfo> userMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(list));
|
for (ActivityFriendAssistInfo info : list) {
|
UserInfo user = userMap.get(Long.parseLong(info.getUid()));
|
if (user != null) {
|
List<String> 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);
|
}
|
|
|
}
|