admin
2020-12-07 3e7debeb2b7e5e77d19bac5edae1334c6c88839c
天天抽奖接口完善
16个文件已修改
5个文件已添加
700 ■■■■■ 已修改文件
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckyActivityAwards.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityAwardResultService.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityJoinService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAssistController.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAwardsController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityController.java 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityJoinController.java 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/AnouncementController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityDetailInfoVO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/AssistResultInfoVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/JoinResultInfoVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/UserActivityUnRecievedAwardVO.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/service/ActivityService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-daylucky/src/main/java/com/ks/daylucky/service/impl/ActivityServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/mapper/LuckyActivityAwardResultMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/query/ActivityAwardResultQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/resources/mapper/LuckyActivityAwardResultMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-lucky/src/main/java/com/ks/lucky/pojo/DO/LuckyActivityAwards.java
@@ -3,12 +3,13 @@
import org.springframework.data.annotation.Transient;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
@Valid
public class LuckyActivityAwards  implements Serializable {
public class LuckyActivityAwards implements Serializable {
    //平分
    public final static int AWARD_WAY_DIVIDE = 1;
@@ -27,8 +28,15 @@
    @NotNull(message = "奖品数量不能为空")
    private Integer count;
    @NotEmpty(message = "奖品名称不能为空")
    private String awardName;
    @NotNull(message = "中奖方式不能为空")
    private Integer awardWay;
    private String awardPoster;
    /**
     * 中奖参数
@@ -135,4 +143,20 @@
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getAwardName() {
        return awardName;
    }
    public void setAwardName(String awardName) {
        this.awardName = awardName;
    }
    public String getAwardPoster() {
        return awardPoster;
    }
    public void setAwardPoster(String awardPoster) {
        this.awardPoster = awardPoster;
    }
}
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityAwardResultService.java
@@ -19,10 +19,10 @@
     * @param appId
     * @param uid
     * @param activityId
     * @param awardId
     * @return
     */
    public LuckyActivityAwardResult getResult(Long appId, String uid, Long activityId, Long awardId);
    public LuckyActivityAwardResult getResult(Long appId, String uid, Long activityId);
    /**
     * 领奖
@@ -42,9 +42,9 @@
     * @param pageSize
     * @return
     */
    public List<Long> getDrawnActivityIdList(Long appId, Long uid, int page, int pageSize);
    public List<Long> getDrawnActivityIdList(Long appId, String uid, int page, int pageSize);
    public long countDrawnActivityIdList(Long appId, Long uid);
    public long countDrawnActivityIdList(Long appId, String uid);
    /**
@@ -78,4 +78,16 @@
    public Date getLatestUpdateTime(Long activityId);
    /**
     * 获取用户未领取的奖项
     *
     * @param appId
     * @param uid
     * @return
     */
    public List<LuckyActivityAwardResult> getUnRecievedAward(Long appId, String uid, int page, int pageSize);
    public long countUnRecievedAward(Long appId, String uid);
}
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityJoinService.java
@@ -41,6 +41,15 @@
    /**
     * 获取参加记录
     *
     * @param id
     * @return
     */
    public LuckyActivityJoinRecord getJoinRecord(Long id);
    /**
     * 获取还未开奖的活动列表
     *
     * @param uid
facade-lucky/src/main/java/com/ks/lucky/remote/service/LuckyActivityService.java
@@ -140,4 +140,19 @@
    public void updateActivity(LuckyActivity activity) throws LuckyActivityException;
    /**
     * 获取推荐活动列表
     *
     * @param appId
     * @param uid
     * @param page
     * @param pageSize
     * @return
     */
    public List<LuckyActivity> getRecommendActivity(Long appId, String uid, int page, int pageSize);
    public Long getRecommendActivityCount(Long appId, String uid);
}
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAssistController.java
@@ -1,17 +1,18 @@
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.ActivityFriendAssistInfoVO;
import com.ks.daylucky.pojo.VO.AssistFriendVO;
import com.ks.daylucky.pojo.VO.SimpleUser;
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.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;
@@ -22,7 +23,6 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -34,10 +34,43 @@
    private LuckyActivityJoinAssistService luckyActivityJoinAssistService;
    @Resource
    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(), LuckyActivityJoinAssist.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<>();
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityAwardsController.java
@@ -3,9 +3,13 @@
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.VO.AcceptData;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.daylucky.pojo.VO.UserActivityUnRecievedAwardVO;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.daylucky.util.UserInfoUtil;
import com.ks.lucky.exception.LuckyActivityAwardException;
import com.ks.lucky.exception.LuckyActivityAwardResultException;
import com.ks.lucky.exception.LuckyActivityException;
import com.ks.lucky.pojo.DO.LuckyActivityAwardResult;
import com.ks.lucky.pojo.DO.LuckyActivityAwards;
import com.ks.lucky.remote.service.LuckyActivityAwardResultService;
@@ -86,13 +90,13 @@
     */
    @ResponseBody
    @RequestMapping("getDrawnList")
    public String getDrawnList(AcceptData acceptData, Long activityId, Long awardId, int page) {
    @RequestMapping("getDrawnJoinerList")
    public String getDrawnJoinerList(AcceptData acceptData, Long activityId, Long awardId, int page) {
        List<LuckyActivityAwardResult> awardResults = luckyActivityAwardResultService.getResultListWithAwardInfo(activityId, awardId, page, Constant.PAGE_SIZE);
        long count = luckyActivityAwardResultService.countResultWithAwardInfo(activityId, awardId);
        List<SimpleUser> userList = new ArrayList<>();
        Map<Long, UserInfo> userMap =userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(awardResults));
        Map<Long, UserInfo> userMap = userInfoService.listUserInfoAsMap(UserInfoUtil.getBaseUserList(awardResults));
        for (LuckyActivityAwardResult info : awardResults) {
            UserInfo user = userMap.get(info.getUid());
            if (user != null) {
@@ -107,5 +111,55 @@
        return JsonUtil.loadTrueResult(data);
    }
    /**
     * 获取未领奖的奖励信息
     *
     * @param acceptData
     * @return
     */
    @ResponseBody
    @RequestMapping("getUnRecieveAward")
    public String getUnRecieveAward(AcceptData acceptData) {
        List<LuckyActivityAwardResult> resultList = luckyActivityAwardResultService.getUnRecievedAward(acceptData.getApp().getId(), acceptData.getUid() + "", 1, 1);
        if (resultList != null && resultList.size() > 0) {
            LuckyActivityAwardResult result = resultList.get(0);
            UserActivityUnRecievedAwardVO vo = new UserActivityUnRecievedAwardVO();
            LuckyActivityAwards award = luckyActivityAwardService.getAwardDetail(result.getAwardId());
            vo.setAwardName(award.getAwardName());
            vo.setAwardId(award.getId());
            vo.setPicture(award.getAwardPoster());
            vo.setTitle("活动期号:NO." + award.getActivityId());
            return JsonUtil.loadTrueResult(vo);
        }
        return JsonUtil.loadFalseResult("");
    }
    /**
     * 领取奖品
     *
     * @param acceptData
     * @param activityId
     * @return
     */
    @ResponseBody
    @RequestMapping("recieveAward")
    public String recieveAward(AcceptData acceptData, Long activityId) {
        LuckyActivityAwardResult result = luckyActivityAwardResultService.getResult(acceptData.getApp().getId(), acceptData.getUid() + "", activityId);
        if (result == null) {
            return JsonUtil.loadFalseResult("未找到中奖记录");
        }
        try {
            luckyActivityAwardResultService.recieveAward(acceptData.getApp().getId(), acceptData.getUid() + "", activityId);
            return JsonUtil.loadTrueResult("领取成功");
        } catch (LuckyActivityException e) {
            e.printStackTrace();
        } catch (LuckyActivityAwardException e) {
            e.printStackTrace();
        } catch (LuckyActivityAwardResultException e) {
            e.printStackTrace();
        }
        return JsonUtil.loadFalseResult("领取失败");
    }
}
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityController.java
@@ -5,6 +5,7 @@
import com.ks.daylucky.pojo.VO.AcceptData;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
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;
@@ -14,6 +15,7 @@
import com.ks.lucky.pojo.DTO.ActivitySimpleUser;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import com.ks.lucky.remote.service.LuckyActivityService;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -40,49 +42,54 @@
    @Resource
    private UserInfoService userInfoService;
    @Resource
    private ActivityService activityService;
    /**
     * 获取活动详情
     *
     * @param acceptData
     * @param activityId
     * @return
     */
    @ResponseBody
    @RequestMapping("getActivityDetail")
    public String getActivityDetail(AcceptData acceptData, Long activityId) {
        ActivityDetailInfoVO vo = new ActivityDetailInfoVO();
        LuckyActivity actiivty = luckyActivityService.getActivityDetail(activityId);
        //获取tag
        List<ActivityTag> tagList = activityTagService.getTagList(activityId);
        //获取参与者数量
        long count = luckyActivityJoinService.countWeightRank(activityId);
        //获取最近的参与者列表
        List<SimpleUser> userList = new ArrayList<>();
        luckyActivityJoinService.getJoinerList(activityId, 1, 20);
        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()));
                }
            }
        ActivityDetailInfoVO vo = activityService.getActivityDetail(activityId, acceptData.getApp().getId(), acceptData.getUid(), true, 20, false);
        if (vo == null) {
            return JsonUtil.loadFalseResult("活动不存在");
        }
        //获取是否参加
        LuckyActivityJoinRecord record = luckyActivityJoinService.getJoinInfo(activityId, acceptData.getApp().getId(), acceptData.getUid() + "");
        boolean join = false;
        if (record != null) {
            join = true;
        }
        vo.setActivity(actiivty);
        vo.setJoin(join);
        vo.setJoinerList(userList);
        vo.setTagList(tagList);
        return JsonUtil.loadTrueResult(vo);
    }
    /**
     * 获取推荐活动列表
     *
     * @param acceptData
     * @param page
     * @return
     */
    @ResponseBody
    @RequestMapping("getRecommendActivity")
    public String getRecommendActivity(AcceptData acceptData, int page) {
        List<LuckyActivity> list = luckyActivityService.getRecommendActivity(acceptData.getApp().getId(), acceptData.getUid() + "", page, Constant.PAGE_SIZE);
        long count = luckyActivityService.getRecommendActivityCount(acceptData.getApp().getId(), acceptData.getUid() + "");
        List<Long> activityIds = new ArrayList<>();
        if (list != null && list.size() > 0) {
            for (LuckyActivity activity : list) {
                activityIds.add(activity.getId());
            }
        }
        List<ActivityDetailInfoVO> voList = activityService.getActivityDetail(activityIds, acceptData.getApp().getId(), acceptData.getUid(), false);
        JSONObject data = new JSONObject();
        data.put("data", voList);
        data.put("count", count);
        return JsonUtil.loadTrueResult(data);
    }
}
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/ActivityJoinController.java
@@ -1,17 +1,15 @@
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.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.lucky.exception.LuckyActivityException;
import com.ks.lucky.exception.LuckyActivityJoinException;
import com.ks.lucky.pojo.DTO.*;
import com.ks.lucky.remote.service.LuckyActivityAwardResultService;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
@@ -33,7 +31,13 @@
    private LuckyActivityJoinService luckyActivityJoinService;
    @Resource
    private LuckyActivityAwardResultService luckyActivityAwardResultService;
    @Resource
    private UserInfoService userInfoService;
    @Resource
    private ActivityService activityService;
    /**
@@ -165,5 +169,67 @@
        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<ActivityDetailInfoVO> voList = activityService.getActivityDetail(activityIdList, appId, uid, type == 2 ? true : false);
        JSONObject data = new JSONObject();
        data.put("data", JsonUtil.getApiCommonGson().toJson(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);
            //TODO 抽奖活动的类型需要替换
            return JsonUtil.loadTrueResult(new JoinResultInfoVO(weight, String.format("活动期号:NO.%s\n抽奖活动", activityId)));
        } catch (LuckyActivityException e) {
            return JsonUtil.loadFalseResult(e.getMsg());
        } catch (LuckyActivityJoinException e) {
            return JsonUtil.loadFalseResult(e.getMsg());
        }
    }
}
service-daylucky/src/main/java/com/ks/daylucky/controller/api/client/AnouncementController.java
New file
@@ -0,0 +1,49 @@
package com.ks.daylucky.controller.api.client;
import com.ks.daylucky.pojo.DO.Announcement;
import com.ks.daylucky.pojo.VO.AcceptData;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
import com.ks.daylucky.service.ActivityService;
import com.ks.daylucky.service.ActivityTagService;
import com.ks.daylucky.service.AnnouncementService;
import com.ks.daylucky.service.UserInfoService;
import com.ks.daylucky.util.Constant;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.remote.service.LuckyActivityJoinService;
import com.ks.lucky.remote.service.LuckyActivityService;
import net.sf.json.JSONObject;
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/anouncement")
public class AnouncementController {
    @Resource
    private AnnouncementService announcementService;
    /**
     * 获取通知
     *
     * @param acceptData
     * @param position
     * @return
     */
    @ResponseBody
    @RequestMapping("getNotice")
    public String getNotice(AcceptData acceptData, String position) {
        Announcement announcement = announcementService.getAnnouncement(acceptData.getApp().getId(), Announcement.AnnouncementType.home);
        if (announcement == null || announcement.getShow() == false) {
            return JsonUtil.loadFalseResult("没有通知");
        }
        return JsonUtil.loadTrueResult(announcement);
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/ActivityDetailInfoVO.java
@@ -3,7 +3,10 @@
import com.google.gson.annotations.Expose;
import com.ks.daylucky.pojo.DO.ActivityTag;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityAwardResult;
import com.ks.lucky.pojo.DO.LuckyActivityAwards;
import javax.annotation.Resource;
import java.util.List;
/**
@@ -27,6 +30,18 @@
    //标签列表
    private List<ActivityTag> tagList;
    @Expose
    //活动中奖结果
    private LuckyActivityAwards awards;
    public LuckyActivityAwards getAwards() {
        return awards;
    }
    public void setAwards(LuckyActivityAwards awards) {
        this.awards = awards;
    }
    public List<ActivityTag> getTagList() {
        return tagList;
    }
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/AssistResultInfoVO.java
New file
@@ -0,0 +1,30 @@
package com.ks.daylucky.pojo.VO;
/**
 * 助力结果
 */
public class AssistResultInfoVO {
    private SimpleUser user;
    private String title;
    public AssistResultInfoVO(SimpleUser user, String title) {
        this.user = user;
        this.title = title;
    }
    public SimpleUser getUser() {
        return user;
    }
    public void setUser(SimpleUser user) {
        this.user = user;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/JoinResultInfoVO.java
New file
@@ -0,0 +1,30 @@
package com.ks.daylucky.pojo.VO;
/**
 * 助力结果
 */
public class JoinResultInfoVO {
    private int weight;
    private String title;
    public JoinResultInfoVO(int weight, String title) {
        this.weight = weight;
        this.title = title;
    }
    public int getWeight() {
        return weight;
    }
    public void setWeight(int weight) {
        this.weight = weight;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/pojo/VO/UserActivityUnRecievedAwardVO.java
New file
@@ -0,0 +1,50 @@
package com.ks.daylucky.pojo.VO;
import com.google.gson.annotations.Expose;
/**
 * 活动详情
 */
public class UserActivityUnRecievedAwardVO {
    @Expose
    private String title;
    @Expose
    private Long awardId;
    @Expose
    private String picture;
    @Expose
    private String awardName;
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public Long getAwardId() {
        return awardId;
    }
    public void setAwardId(Long awardId) {
        this.awardId = awardId;
    }
    public String getPicture() {
        return picture;
    }
    public void setPicture(String picture) {
        this.picture = picture;
    }
    public String getAwardName() {
        return awardName;
    }
    public void setAwardName(String awardName) {
        this.awardName = awardName;
    }
}
service-daylucky/src/main/java/com/ks/daylucky/service/ActivityService.java
@@ -1,7 +1,16 @@
package com.ks.daylucky.service;
import com.ks.daylucky.pojo.VO.ActivityDetailInfoVO;
import java.util.List;
public interface ActivityService {
    public List<ActivityDetailInfoVO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult);
    public ActivityDetailInfoVO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult);
}
service-daylucky/src/main/java/com/ks/daylucky/service/impl/ActivityServiceImpl.java
New file
@@ -0,0 +1,106 @@
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.VO.ActivityDetailInfoVO;
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
    private LuckyActivityService luckyActivityService;
    @Reference
    private ActivityTagService activityTagService;
    @Reference
    private LuckyActivityJoinService luckyActivityJoinService;
    @Reference
    private LuckyActivityAwardResultService luckyActivityAwardResultService;
    @Reference
    private LuckyActivityAwardService luckyActivityAwardService;
    @Resource
    private UserInfoService userInfoService;
    @Override
    public List<ActivityDetailInfoVO> getActivityDetail(List<Long> activityIds, Long appId, Long uid, Boolean needAwardResult) {
        List<ActivityDetailInfoVO> voList = new ArrayList<>();
        if (activityIds != null) {
            for (Long activityId : activityIds) {
                voList.add(getActivityDetail(activityId, appId, uid, false, 3, needAwardResult));
            }
        }
        return voList;
    }
    @Override
    public ActivityDetailInfoVO getActivityDetail(Long activityId, Long appId, Long uid, Boolean needTag, Integer maxJoinerCount, Boolean needAwardResult) {
        ActivityDetailInfoVO vo = new ActivityDetailInfoVO();
        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;
    }
}
service-lucky/src/main/java/com/ks/lucky/mapper/LuckyActivityAwardResultMapper.java
@@ -19,8 +19,8 @@
    int setStateByActivityId(@Param("activityId") Long activityId, @Param("state") Integer state, @Param("stateDesc") String stateDesc, @Param("updateTime") Date updateTime);
    List<LuckyActivityAwardResult> listUserAwardResult(@Param("appId") Long appId, @Param("uid") Long uid, @Param("stateList") List<Integer> stateList, @Param("activityStateList") List<Integer> activityStateList, long start, int count);
    List<LuckyActivityAwardResult> listUserAwardResult(@Param("appId") Long appId, @Param("uid") String uid, @Param("stateList") List<Integer> stateList, @Param("activityStateList") List<Integer> activityStateList, long start, int count);
    long countUserAwardResult(@Param("appId") Long appId, @Param("uid") Long uid, @Param("stateList") List<Integer> stateList, @Param("activityStateList") List<Integer> activityStateList);
    long countUserAwardResult(@Param("appId") Long appId, @Param("uid") String uid, @Param("stateList") List<Integer> stateList, @Param("activityStateList") List<Integer> activityStateList);
}
service-lucky/src/main/java/com/ks/lucky/query/ActivityAwardResultQuery.java
@@ -5,4 +5,5 @@
    public String uid;
    public Long activityId;
    public Long awardId;
    public Integer state;
}
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityAwardResultServiceImpl.java
@@ -39,7 +39,7 @@
    @Override
    public LuckyActivityAwardResult getResult(Long appId, String uid, Long activityId, Long awardId) {
    public LuckyActivityAwardResult getResult(Long appId, String uid, Long activityId) {
        if (appId == null) {
            return null;
        }
@@ -48,7 +48,6 @@
        query.appId = appId;
        query.activityId = activityId;
        query.uid = uid;
        query.awardId = awardId;
        query.start = 0;
        query.count = 1;
@@ -98,7 +97,7 @@
    }
    @Override
    public List<Long> getDrawnActivityIdList(Long appId, Long uid, int page, int pageSize) {
    public List<Long> getDrawnActivityIdList(Long appId, String uid, int page, int pageSize) {
        List<LuckyActivityAwardResult> list = luckyActivityAwardResultMapper.listUserAwardResult(appId, uid, Arrays.asList(new Integer[]{LuckyActivityAwardResult.STATE_NOT_RECIEVE, LuckyActivityAwardResult.STATE_RECIEVED, LuckyActivityAwardResult.STATE_OUT_OF_DATE, LuckyActivityAwardResult.STATE_RECIEVE_FAILED}), Arrays.asList(new Integer[]{LuckyActivity.STATE_OPENED}), (page - 1) * pageSize, pageSize);
        List<Long> activityIdList = new ArrayList<>();
        if (list != null) {
@@ -110,7 +109,7 @@
    }
    @Override
    public long countDrawnActivityIdList(Long appId, Long uid) {
    public long countDrawnActivityIdList(Long appId, String uid) {
        return luckyActivityAwardResultMapper.countUserAwardResult(appId, uid, Arrays.asList(new Integer[]{LuckyActivityAwardResult.STATE_NOT_RECIEVE, LuckyActivityAwardResult.STATE_RECIEVED, LuckyActivityAwardResult.STATE_OUT_OF_DATE, LuckyActivityAwardResult.STATE_RECIEVE_FAILED}), Arrays.asList(new Integer[]{LuckyActivity.STATE_OPENED}));
    }
@@ -147,5 +146,25 @@
        return list.get(0).getUpdateTime() == null ? list.get(0).getCreateTime() : list.get(0).getUpdateTime();
    }
    @Override
    public List<LuckyActivityAwardResult> getUnRecievedAward(Long appId, String uid, int page, int pageSize) {
        ActivityAwardResultQuery query = new ActivityAwardResultQuery();
        query.state = LuckyActivityAwardResult.STATE_NOT_RECIEVE;
        query.appId = appId;
        query.uid = uid;
        query.start = (page - 1) * pageSize;
        query.count = pageSize;
        return luckyActivityAwardResultMapper.list(query);
    }
    @Override
    public long countUnRecievedAward(Long appId, String uid) {
        ActivityAwardResultQuery query = new ActivityAwardResultQuery();
        query.state = LuckyActivityAwardResult.STATE_NOT_RECIEVE;
        query.appId = appId;
        query.uid = uid;
        return luckyActivityAwardResultMapper.count(query);
    }
}
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinServiceImpl.java
@@ -92,6 +92,11 @@
    }
    @Override
    public LuckyActivityJoinRecord getJoinRecord(Long id) {
        return luckyActivityJoinRecordMapper.selectByPrimaryKey(id);
    }
    @Override
    public List<Long> getUnOpenActivityIdList(Long appId, String uid, int page, int pageSize) {
        ActivityJoinRecordQuery query = new ActivityJoinRecordQuery();
        query.appId = appId;
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java
@@ -17,6 +17,7 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -294,5 +295,40 @@
        luckyActivityMapper.updateByPrimaryKeySelective(activity);
    }
    @Override
    public List<LuckyActivity> getRecommendActivity(Long appId, String uid, int page, int pageSize) {
        ActivityDaoQuery query = new ActivityDaoQuery();
        query.appId = appId;
        query.start = (page - 1) * pageSize;
        query.count = pageSize;
        query.sort = "actual_start_time desc";
        query.stateList = Arrays.asList(new Integer[]{
                LuckyActivity.STATE_STARTED,
                LuckyActivity.STATE_FINISH,
                LuckyActivity.STATE_PRE_OPENED,
                LuckyActivity.STATE_OPENED,
        });
        return luckyActivityMapper.list(query);
    }
    @Override
    public Long getRecommendActivityCount(Long appId, String uid) {
        ActivityDaoQuery query = new ActivityDaoQuery();
        query.appId = appId;
        query.stateList = Arrays.asList(new Integer[]{
                LuckyActivity.STATE_STARTED,
                LuckyActivity.STATE_FINISH,
                LuckyActivity.STATE_PRE_OPENED,
                LuckyActivity.STATE_OPENED,
        });
        return luckyActivityMapper.count(query);
    }
}
service-lucky/src/main/resources/mapper/LuckyActivityAwardResultMapper.xml
@@ -39,6 +39,12 @@
            and award_id=#{query.awardId}
        </if>
        <if test="query.state!=null">
            and `state`=#{query.state}
        </if>
        <if test="query.minCreateTime!=null">
            and create_time>=#{query.minCreateTime}
        </if>