From df4441322e9801c102299451da41d7c40b4502e9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 24 六月 2021 18:53:13 +0800 Subject: [PATCH] zookeeper地址修改,Maven采用私服 --- service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java | 90 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 80 insertions(+), 10 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 75509ba..e112c28 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,19 +3,24 @@ 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.LoggerUtil; +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.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Component @@ -29,6 +34,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; + } /** @@ -80,6 +131,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); @@ -97,7 +149,7 @@ update.setId(activityId); update.setCurrentPersonCount(currentCount + count); update.setUpdateTime(new Date()); - luckyActivityMapper.updateByPrimaryKeySelective(update); + updateSelectiveByPrimaryKey(update); if (update.getCurrentPersonCount().intValue() >= openInfo.getMinPersonCount() && currentCount < openInfo.getMinPersonCount()) { //杈惧埌鏈�浣庡紑濂栦汉鏁� CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_REACH_MIN_PERSON, new Date())); @@ -115,6 +167,8 @@ * * @param activityId */ + @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) + @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException { LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (luckyActivity == null) { @@ -132,7 +186,7 @@ update.setId(activityId); update.setActualStartTime(new Date()); update.setUpdateTime(new Date()); - luckyActivityMapper.updateByPrimaryKeySelective(update); + updateSelectiveByPrimaryKey(update); //鏈夐璁$粨鏉熸椂闂� if (luckyActivity.getPreFinishTime() != null) { @@ -149,7 +203,7 @@ e.printStackTrace(); } - + LoggerUtil.activityLogger.info("娲诲姩鍚姩鎴愬姛:activityId-{}", activityId); } @@ -160,6 +214,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); @@ -177,13 +232,18 @@ update.setId(activityId); update.setActualFinishTime(new Date()); update.setUpdateTime(new Date()); - luckyActivityMapper.updateByPrimaryKeySelective(update); + updateSelectiveByPrimaryKey(update); activity.setActualFinishTime(update.getActualFinishTime()); //寮哄埗缁撴潫鐨勪笉寮�濂� if (!force) { //娣诲姞寮�濂栨秷鎭� - LuckyMQ mq = LuckyMQFactory.createOpenActivity(activity); + LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); + Date openTime = openInfo.getPreOpenTime(); + if (openTime == null) { + openTime = new Date(); + } + LuckyMQ mq = LuckyMQFactory.createOpenActivity(activityId, openTime); luckyMQService.addMQ(mq); } //灏濊瘯鍒犻櫎娑堟伅 @@ -194,7 +254,7 @@ e.printStackTrace(); } - + LoggerUtil.activityLogger.info("娲诲姩鎴愬姛缁撴潫:activityId-{} force-{} remarks-{}", activityId, force, remarks); } @@ -216,6 +276,7 @@ * @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(); @@ -223,8 +284,17 @@ activity.setState(state); activity.setStateRemarks(stateRemarks); activity.setUpdateTime(new Date()); - luckyActivityMapper.updateByPrimaryKeySelective(activity); + updateSelectiveByPrimaryKey(activity); CMQManager.getInstance().publishActivityStateChangeMsg(new ActivityStateChangeMsgDTO(activityId, state, stateRemarks, activity.getUpdateTime())); + LoggerUtil.activityLogger.info("娲诲姩鐘舵�佹洿鏀癸細activityId-{} state-{} stateRemarks-{}", activityId, state, stateRemarks); + } + + @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