From 7e389247b3b2877c12f1eaae6e33c9c33e91d2dd Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 08 一月 2021 18:41:59 +0800 Subject: [PATCH] 活动添加后台完善 --- service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java | 70 +++++++++++++++++++++++++++++++++- 1 files changed, 67 insertions(+), 3 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java index ce2dcce..26e9ae8 100644 --- a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java +++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java @@ -3,18 +3,22 @@ import com.ks.lucky.exception.LuckyActivityException; import com.ks.lucky.exception.LuckyMQException; import com.ks.lucky.mapper.LuckyActivityMapper; -import com.ks.lucky.pojo.DO.LuckyActivity; -import com.ks.lucky.pojo.DO.LuckyActivityOpenInfo; -import com.ks.lucky.pojo.DO.LuckyMQ; +import com.ks.lucky.pojo.DO.*; import com.ks.lucky.pojo.DTO.ActivityMQMsg; +import com.ks.lucky.pojo.DTO.mq.ActivityStateChangeMsgDTO; +import com.ks.lucky.service.LuckyActivityImageService; import com.ks.lucky.service.LuckyMQService; +import com.ks.lucky.util.annotation.RedisCache; +import com.ks.lucky.util.annotation.RedisCacheEvict; import com.ks.lucky.util.mq.CMQManager; import com.ks.lucky.util.mq.LuckyMQFactory; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Component @@ -28,6 +32,52 @@ @Resource private LuckyMQService luckyMQService; + @Resource + private LuckyActivityImageService luckyActivityImageService; + @Resource + private LuckyActivitySponsorInfoManager luckyActivitySponsorInfoManager; + @Resource + private LuckyActivityAwardManager luckyActivityAwardManager; + + + @RedisCache(cate = "activity", key = "'activity-detail-'+#id", second = 3600) + public LuckyActivity getActivityDetail(Long id) { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(id); + if (activity == null) { + return null; + } + + //鍔犺浇鍥剧墖淇℃伅 + List<LuckyActivityImage> bannerList = luckyActivityImageService.listByActivityId(id, LuckyActivityImage.LuckyImageType.banner); + activity.setBannerList(bannerList); + + //鍔犺浇寮�濂栦俊鎭� + 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()); + List<LuckyActivityAwards> awardsDetailList = new ArrayList<>(); + if (awardsList != null) { + for (LuckyActivityAwards awards : awardsList) { + awards = luckyActivityAwardManager.getAwardDetail(awards.getId()); + if (awards != null) { + awardsDetailList.add(awards); + } + } + } + activity.setAwardsList(awardsDetailList); + + return activity; + } /** @@ -79,6 +129,7 @@ * @param count * @throws LuckyActivityException */ + @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") @Transactional(rollbackFor = Exception.class) public void addJoinCount(Long activityId, int count) throws LuckyActivityException { LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); @@ -114,6 +165,7 @@ * * @param activityId */ + @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException { LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (luckyActivity == null) { @@ -159,6 +211,7 @@ * @param force 鏄惁寮哄埗缁撴潫 * @param remarks */ + @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") @Transactional(rollbackFor = Exception.class) public void finishActivity(Long activityId, boolean force, String remarks) throws LuckyActivityException, LuckyMQException { LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); @@ -215,12 +268,23 @@ * @param state * @param stateRemarks */ + @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") + @Transactional(rollbackFor = Exception.class) public void setState(Long activityId, int state, String stateRemarks) { LuckyActivity activity = new LuckyActivity(); activity.setId(activityId); activity.setState(state); activity.setStateRemarks(stateRemarks); activity.setUpdateTime(new Date()); + updateSelectiveByPrimaryKey(activity); + CMQManager.getInstance().publishActivityStateChangeMsg(new ActivityStateChangeMsgDTO(activityId, state, stateRemarks, activity.getUpdateTime())); + } + + @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activity.id") + public void updateSelectiveByPrimaryKey(LuckyActivity activity) { + if (activity.getUpdateTime() == null) { + activity.setUpdateTime(new Date()); + } luckyActivityMapper.updateByPrimaryKeySelective(activity); } -- Gitblit v1.8.0