| | |
| | | package com.ks.lucky.service.impl.remote; |
| | | |
| | | import com.ks.lib.common.exception.ParamsException; |
| | | import com.ks.lucky.exception.LuckyActivityException; |
| | | import com.ks.lucky.exception.LuckyMQException; |
| | | import com.ks.lucky.exception.*; |
| | | import com.ks.lucky.mapper.LuckyActivityMapper; |
| | | import com.ks.lucky.pojo.DO.*; |
| | | import com.ks.lucky.query.ActivityDaoQuery; |
| | | import com.ks.lucky.remote.service.LuckyActivityService; |
| | | import com.ks.lucky.service.LuckyActivityImageService; |
| | | import com.ks.lucky.service.LuckyMQService; |
| | | import com.ks.lucky.service.impl.*; |
| | | import com.ks.lucky.util.annotation.RedisCache; |
| | | import com.ks.lucky.util.annotation.RedisCacheEvict; |
| | | import com.ks.lucky.util.mq.LuckyMQFactory; |
| | | import org.apache.dubbo.config.annotation.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Service(version = "1.0") |
| | | @Service(version = "1.0.0") |
| | | public class LuckyActivityServiceImpl implements LuckyActivityService { |
| | | |
| | | @Resource |
| | |
| | | @Resource |
| | | private LuckyMQService luckyMQService; |
| | | |
| | | @Resource |
| | | private LuckyActivityImageService luckyActivityImageService; |
| | | |
| | | |
| | | private void notNull(LuckyActivity activity) throws LuckyActivityException { |
| | | if (activity == null) { |
| | | throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在"); |
| | | } |
| | | } |
| | | |
| | | @Validated |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public Long addActivity(LuckyActivity activity) throws ParamsException, LuckyActivityException, LuckyActivitySponsorInfoException, LuckyActivityAwardException, LuckyActivityOpenInfoException, LuckySponsorAdException, LuckyActivityAwardMaterialException { |
| | | Long activityId = createActivity(activity); |
| | | //添加banner图片 |
| | | if (activity.getBannerList() != null) { |
| | | for (LuckyActivityImage image : activity.getBannerList()) { |
| | | image.setActivityId(activityId); |
| | | luckyActivityImageService.add(image); |
| | | } |
| | | } |
| | | |
| | | //添加赞助活动 |
| | | activity.getSponsorInfo().setActivityId(activityId); |
| | | luckyActivitySponsorInfoManager.addSponsorInfo(activity.getSponsorInfo()); |
| | | //添加奖项 |
| | | for (LuckyActivityAwards awards : activity.getAwardsList()) { |
| | | awards.setActivityId(activityId); |
| | | luckyActivityAwardManager.addAward(awards); |
| | | } |
| | | |
| | | //添加开奖信息 |
| | | activity.getOpenInfo().setActivityId(activityId); |
| | | luckyActivityOpenInfoManager.addOpenInfo(activity.getOpenInfo()); |
| | | return activityId; |
| | | } |
| | | |
| | | @Override |
| | |
| | | query.appId = appId; |
| | | query.start = (page - 1) * pageSize; |
| | | query.count = pageSize; |
| | | query.sort = "start_time desc"; |
| | | query.sortList = Arrays.asList(new String[]{"actual_start_time desc"}); |
| | | return luckyActivityMapper.list(query); |
| | | } |
| | | |
| | | @Override |
| | | public List<LuckyActivity> getActivityList(Long appId, Long sponsorId, List<Integer> stateList, List<Long> excludeActivityIds, String key, int page, int pageSize) { |
| | | |
| | | |
| | | ActivityDaoQuery query = new ActivityDaoQuery(); |
| | | query.stateList = stateList; |
| | | query.key = key; |
| | | query.sponsorId = sponsorId; |
| | | query.excludeActivityIds = excludeActivityIds; |
| | | query.appId = appId; |
| | | query.start = (page - 1) * pageSize; |
| | | query.count = pageSize; |
| | | query.sortList = Arrays.asList(new String[]{"actual_start_time desc"}); |
| | | return luckyActivityMapper.list(query); |
| | | } |
| | | |
| | |
| | | query.key = key; |
| | | query.sponsorId = sponsorId; |
| | | query.appId = appId; |
| | | |
| | | return luckyActivityMapper.count(query); |
| | | } |
| | | |
| | | @Override |
| | | public long countActivity(Long appId, Long sponsorId, List<Integer> stateList, String key, List<Long> excludeActivityIds) { |
| | | ActivityDaoQuery query = new ActivityDaoQuery(); |
| | | query.stateList = stateList; |
| | | query.key = key; |
| | | query.sponsorId = sponsorId; |
| | | query.appId = appId; |
| | | query.excludeActivityIds = excludeActivityIds; |
| | | |
| | | return luckyActivityMapper.count(query); |
| | | } |
| | |
| | | |
| | | //检查活动状态 |
| | | if (activity.getState() != LuckyActivity.STATE_NOT_PUBLISH) { |
| | | throw new LuckyActivityException(1, "活动已发布"); |
| | | throw new LuckyActivityException(1, "活动未处于审核成功状态"); |
| | | } |
| | | //检查开奖信息 |
| | | LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activity.getId()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public LuckyActivity getActivity(Long id) { |
| | | return luckyActivityManager.selectByPrimaryKey(id); |
| | | } |
| | | |
| | | @Override |
| | | public LuckyActivity getActivityDetail(Long id) { |
| | | LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(id); |
| | | if (activity == null) { |
| | | return null; |
| | | } |
| | | //加载开奖信息 |
| | | LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activity.getId()); |
| | | activity.setOpenInfo(openInfo); |
| | | |
| | | //加载赞助信息 |
| | | LuckyActivitySponsorInfo sponsorInfo = luckyActivitySponsorInfoManager.getSponsorInfo(activity.getId()); |
| | | if (sponsorInfo != null) { |
| | | sponsorInfo = luckyActivitySponsorInfoManager.getSponsorInfoDetail(sponsorInfo.getId()); |
| | | } |
| | | activity.setSponsorInfo(sponsorInfo); |
| | | |
| | | //加载奖项信息 |
| | | List<LuckyActivityAwards> awardsList = luckyActivityAwardManager.getAwardList(activity.getId()); |
| | | activity.setAwardsList(awardsList); |
| | | |
| | | return activity; |
| | | return luckyActivityManager.getActivityDetail(id); |
| | | } |
| | | |
| | | @Override |
| | | public List<LuckyActivity> getActivityDetail(List<Long> ids) { |
| | | List<LuckyActivity> activityList = new ArrayList<>(); |
| | | for (Long id : ids) { |
| | | LuckyActivity luckyActivity = getActivityDetail(id); |
| | | LuckyActivity luckyActivity = luckyActivityManager.getActivityDetail(id); |
| | | activityList.add(luckyActivity); |
| | | } |
| | | return activityList; |
| | |
| | | } |
| | | |
| | | activity.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(activity); |
| | | luckyActivityManager.updateSelectiveByPrimaryKey(activity); |
| | | } |
| | | |
| | | @Override |
| | |
| | | query.appId = appId; |
| | | query.start = (page - 1) * pageSize; |
| | | query.count = pageSize; |
| | | query.sort = "actual_start_time desc"; |
| | | query.sortList = Arrays.asList(new String[]{"actual_start_time desc"}); |
| | | |
| | | query.stateList = Arrays.asList(new Integer[]{ |
| | | LuckyActivity.STATE_STARTED, |
| | |
| | | LuckyActivity.STATE_OPENED, |
| | | }); |
| | | |
| | | |
| | | return luckyActivityMapper.list(query); |
| | | List<LuckyActivity> list = luckyActivityMapper.list(query); |
| | | return list; |
| | | } |
| | | |
| | | @Override |