| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Service(version = "1.0") |
| | |
| | | private LuckyActivityAwardResultManager luckyActivityAwardResultManager; |
| | | |
| | | @Resource |
| | | private AppManager appManager; |
| | | |
| | | @Resource |
| | | private LuckyActivityManager luckyActivityManager; |
| | | |
| | | |
| | | @Override |
| | | public LuckyActivityAwardResult getResult(String appKey, String uid, Long activityId, Long awardId) { |
| | | Long appId = appManager.getAppId(appKey); |
| | | public LuckyActivityAwardResult getResult(Long appId, String uid, Long activityId) { |
| | | if (appId == null) { |
| | | return null; |
| | | } |
| | |
| | | query.appId = appId; |
| | | query.activityId = activityId; |
| | | query.uid = uid; |
| | | query.awardId = awardId; |
| | | query.start = 0; |
| | | query.count = 1; |
| | | |
| | | List<LuckyActivityAwardResult> list = luckyActivityAwardResultMapper.list(query); |
| | | if (list != null && list.size() > 0) { |
| | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void recieveAward(String appKey, String uid, Long activityId) throws LuckyActivityException, LuckyActivityAwardException, LuckyActivityAwardResultException { |
| | | public void recieveAward(Long appId, String uid, Long activityId) throws LuckyActivityException, LuckyActivityAwardException, LuckyActivityAwardResultException { |
| | | //----------验证开始----------- |
| | | Long appId = appManager.getAppId(appKey); |
| | | LuckyActivity activity = luckyActivityManager.selectByPrimaryKey(activityId); |
| | | if (activity == null) { |
| | | //不存在 |
| | |
| | | query.uid = uid; |
| | | query.appId = appId; |
| | | query.activityId = activityId; |
| | | query.start = 0; |
| | | query.count = 1; |
| | | List<LuckyActivityAwardResult> list = luckyActivityAwardResultMapper.list(query); |
| | | if (list == null || list.size() == 0) { |
| | | throw new LuckyActivityAwardException(LuckyActivityAwardException.CODE_NOT_EXIST, "尚未中奖"); |
| | |
| | | //发奖 |
| | | luckyActivityAwardResultManager.sendAward(result, extra); |
| | | } |
| | | |
| | | @Override |
| | | 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) { |
| | | for (LuckyActivityAwardResult result : list) { |
| | | activityIdList.add(result.getActivityId()); |
| | | } |
| | | } |
| | | return activityIdList; |
| | | } |
| | | |
| | | @Override |
| | | 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})); |
| | | } |
| | | |
| | | @Override |
| | | public List<LuckyActivityAwardResult> getResultListWithAwardInfo(Long activityId, Long awardId, int page, int pageSize) { |
| | | ActivityAwardResultQuery query = new ActivityAwardResultQuery(); |
| | | query.activityId = activityId; |
| | | query.awardId = awardId; |
| | | query.start = (page - 1) * pageSize; |
| | | query.count = pageSize; |
| | | return luckyActivityAwardResultMapper.list(query); |
| | | } |
| | | |
| | | @Override |
| | | public long countResultWithAwardInfo(Long activityId, Long awardId) { |
| | | ActivityAwardResultQuery query = new ActivityAwardResultQuery(); |
| | | query.activityId = activityId; |
| | | query.awardId = awardId; |
| | | |
| | | return luckyActivityAwardResultMapper.count(query); |
| | | } |
| | | |
| | | @Override |
| | | public Date getLatestUpdateTime(Long activityId) { |
| | | ActivityAwardResultQuery query = new ActivityAwardResultQuery(); |
| | | query.activityId = activityId; |
| | | query.count = 1; |
| | | query.sortList = Arrays.asList(new String[]{"update_time desc"}); |
| | | |
| | | List<LuckyActivityAwardResult> list = luckyActivityAwardResultMapper.list(query); |
| | | if (list == null || list.size() == 0) { |
| | | return null; |
| | | } |
| | | 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); |
| | | } |
| | | |
| | | |
| | | } |