admin
2021-01-15 5405154d6979f1b50ce2d881bb164b1acca80b6d
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityJoinController.java
@@ -1,19 +1,24 @@
package com.ks.daylucky.controller.api.client;
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.VO.AcceptData;
import com.ks.daylucky.pojo.VO.ActivityJoinerRankInfoVO;
import com.ks.daylucky.pojo.VO.DrawnProbabilityVO;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.daylucky.pojo.DTO.ActivityDetailInfoDTO;
import com.ks.daylucky.pojo.VO.*;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.daylucky.util.UserInfoUtil;
import com.ks.lucky.pojo.DTO.ActivityDrawnProbabilityStatistic;
import com.ks.lucky.pojo.DTO.ActivityJoinStatisticInfo;
import com.ks.lucky.pojo.DTO.ActivityJoinerRankInfo;
import com.ks.lucky.pojo.DTO.ActivitySimpleUser;
import com.ks.daylucky.util.activity.ActivityUtil;
import com.ks.daylucky.util.factory.vo.ActivityListItemInfoVOFactory;
import com.ks.lucky.exception.LuckyActivityException;
import com.ks.lucky.exception.LuckyActivityJoinException;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DTO.*;
import com.ks.lucky.remote.service.LuckyActivityAwardResultService;
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;
@@ -29,11 +34,20 @@
@RequestMapping("api/client/activity/join")
public class ActivityJoinController {
    @Resource
    @Reference(version = "1.0.0", check = false)
    private LuckyActivityJoinService luckyActivityJoinService;
    @Reference(version = "1.0.0", check = false)
    private LuckyActivityAwardResultService luckyActivityAwardResultService;
    @Reference(version = "1.0.0", check = false)
    private LuckyActivityService luckyActivityService;
    @Resource
    private UserInfoService userInfoService;
    @Resource
    private ActivityService activityService;
    /**
@@ -49,12 +63,16 @@
    public String getRankList(AcceptData acceptData, Long activityId, int page) {
        List<ActivityJoinerRankInfoVO> voList = new ArrayList<>();
        List<ActivityJoinerRankInfo> list = luckyActivityJoinService.getWeightRankList(activityId, page, Constant.PAGE_SIZE);
        List<ActivityJoinerRankInfo> list = luckyActivityJoinService.getWeightRankList(activityId, page,10);
        if (list != null && list.size() > 0) {
            Map<Long, UserInfo> userInfoMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(list));
            for (ActivityJoinerRankInfo info : list) {
                UserInfo user = userInfoMap.get(info.getUid());
                UserInfo user = userInfoMap.get(Long.parseLong(info.getUid()));
                if (user != null) {
                    if (user.getId().longValue() == acceptData.getUid()) {
                        continue;
                    }
                    voList.add(new ActivityJoinerRankInfoVO(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()), info.getRank(), info.getWeight()));
                }
            }
@@ -136,11 +154,11 @@
    public String getJoinerList(AcceptData acceptData, Long activityId, int page) {
        List<SimpleUser> voList = new ArrayList<>();
        List<ActivitySimpleUser> list = luckyActivityJoinService.getJoinerList(activityId, page, Constant.PAGE_SIZE);
        List<ActivitySimpleUser> list = luckyActivityJoinService.getJoinerList(activityId, null, page, 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());
                UserInfo user = userInfoMap.get(Long.parseLong(info.getUid()));
                if (user != null) {
                    voList.add(new SimpleUser(user.getId(), user.getNickName(), user.getPortrait()));
                }
@@ -165,5 +183,68 @@
        return JsonUtil.loadTrueResult(data);
    }
    /**
     * 获取抽奖记录
     *
     * @param acceptData
     * @param type       1-待开奖  2-已中奖  3-未中奖
     * @return
     */
    @ResponseBody
    @RequestMapping("getJoinRecord")
    public String getJoinRecord(AcceptData acceptData, int type, int page) {
        List<Long> activityIdList = new ArrayList<>();
        long count = 0;
        Long appId = acceptData.getApp().getId();
        Long uid = acceptData.getUid();
        switch (type) {
            case 1:
                activityIdList = luckyActivityJoinService.getUnOpenActivityIdList(appId, uid + "", page, Constant.PAGE_SIZE);
                count = luckyActivityJoinService.countUnOpenActivityIdList(appId, uid + "");
                break;
            case 2:
                activityIdList = luckyActivityAwardResultService.getDrawnActivityIdList(appId, uid + "", page, Constant.PAGE_SIZE);
                count = luckyActivityAwardResultService.countDrawnActivityIdList(appId, uid + "");
                break;
            case 3:
                activityIdList = luckyActivityJoinService.getUnDrawnActivityIdList(appId, uid + "", page, Constant.PAGE_SIZE);
                count = luckyActivityJoinService.countUnDrawnActivityIdList(appId, uid + "");
                break;
        }
        List<ActivityDetailInfoDTO> voList = activityService.getActivityDetail(activityIdList, appId, uid, type == 2 ? true : false);
        JSONObject data = new JSONObject();
        data.put("data", JsonUtil.getSimpleGson().toJson(ActivityListItemInfoVOFactory.create(voList)));
        data.put("count", count);
        return JsonUtil.loadTrueResult(data);
    }
    @ResponseBody
    @RequestMapping("join")
    public String join(AcceptData acceptData, Long activityId) {
        UserInfo userInfo = userInfoService.getUserDetail(acceptData.getUid());
        if (userInfo == null) {
            return JsonUtil.loadFalseResult("用户不存在");
        }
        JoinInfo joinInfo = new JoinInfo();
        joinInfo.setAlipayUid(userInfo.getAlipayUid());
        try {
            int weight = 1;
            luckyActivityJoinService.join(activityId, acceptData.getApp().getId(), acceptData.getUid() + "", 1, joinInfo, LuckyActivityJoinRecord.USER_TYPE_REAL);
            LuckyActivity activity = luckyActivityService.getActivity(activityId);
            //TODO 抽奖活动的类型需要替换
            return JsonUtil.loadTrueResult(new JoinResultInfoVO(weight, String.format("活动期号:%s\n抽奖活动", ActivityUtil.getActivityDateNumber(activityId, activity.getCreateTime()))));
        } catch (LuckyActivityException e) {
            return JsonUtil.loadFalseResult(e.getMsg());
        } catch (LuckyActivityJoinException e) {
            return JsonUtil.loadFalseResult(e.getMsg());
        }
    }
}