From f0893131c84e18a40daa04b73c0573aac989f9d2 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 25 八月 2025 15:00:39 +0800 Subject: [PATCH] 抽奖活动弹窗 --- manager-api/src/main/java/cn/lili/controller/lmk/PrizeActivityController.java | 13 ++++ buyer-api/src/main/java/cn/lili/controller/lmk/PopupController.java | 46 +++++++++++++++ framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeActivity.java | 6 + framework/src/main/resources/mapper/lmk/PrizeActivityMapper.xml | 4 + framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeActivityVO.java | 4 + framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java | 47 +++++++++++++++ framework/src/main/java/cn/lili/modules/lmk/service/PrizeActivityService.java | 8 ++ 7 files changed, 124 insertions(+), 4 deletions(-) diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/PopupController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/PopupController.java new file mode 100644 index 0000000..c3c2ba0 --- /dev/null +++ b/buyer-api/src/main/java/cn/lili/controller/lmk/PopupController.java @@ -0,0 +1,46 @@ +package cn.lili.controller.lmk; + + +import cn.lili.base.Result; +import cn.lili.cache.Cache; +import cn.lili.common.security.context.UserContext; +import cn.lili.modules.lmk.service.PrizeActivityService; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.concurrent.TimeUnit; + +/** + * lmk-shop-java + * + * @author : zxl + * @date : 2025-08-22 17:50 + **/ +@RestController +@RequestMapping("/buyer/lmk/popup") +@RequiredArgsConstructor +public class PopupController { + private final Cache cache; + + private final PrizeActivityService prizeActivityService; + @GetMapping("/setPopupRedisTime") + public Result setPopupRedisTime(){ + String id = UserContext.getCurrentUser().getId(); + + Object o = cache.get(id); + if (o == null){ + cache.put(id,id,10L, TimeUnit.SECONDS); + return Result.ok().put("state",true); + }else { + return Result.ok().put("state",false); + } + } + + @GetMapping("/getPopupActivity") + public Result getPopupActivity(){ + return prizeActivityService.getPopup(); + } +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeActivity.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeActivity.java index 78589dc..558b021 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeActivity.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeActivity.java @@ -58,5 +58,9 @@ /** 鏄惁寮�鍚椿鍔� */ private String enableStatus; - + @TableField("popup") + /** + * 鏄惁鏄脊绐楁椿鍔� + */ + private Boolean popup; } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeActivityVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeActivityVO.java index 5b16419..d67b066 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeActivityVO.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeActivityVO.java @@ -60,8 +60,12 @@ private String activityImgUrl; + //鏄惁鑳借缃鍝� private boolean canSet; + //鏄惁鏄脊绐楁椿鍔� + private Boolean popup; + public static PrizeActivityVO getVoByEntity(@NonNull PrizeActivity entity, PrizeActivityVO vo) { if(vo == null) { vo = new PrizeActivityVO(); diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/PrizeActivityService.java b/framework/src/main/java/cn/lili/modules/lmk/service/PrizeActivityService.java index 7d7c058..0f8239b 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/PrizeActivityService.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/PrizeActivityService.java @@ -15,6 +15,14 @@ */ public interface PrizeActivityService extends IService<PrizeActivity> { + Result getPopup(); + /** + * 璁剧疆寮圭獥娲诲姩 + * @param id + * @return + */ + Result popup(String id); + Result publishPrizeActivity(String id); /** * 娣诲姞 diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java index 08175bd..2bb6dff 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java @@ -1,7 +1,6 @@ package cn.lili.modules.lmk.service.impl; import cn.lili.common.utils.StringUtils; -import cn.lili.modules.lmk.domain.entity.ActivityRefPrize; import cn.lili.modules.lmk.domain.vo.ActivityRefPrizeInfoVO; import cn.lili.modules.lmk.enums.general.PrizeActivityStatusEnum; import cn.lili.modules.lmk.service.ActivityRefPrizeService; @@ -11,10 +10,14 @@ import cn.lili.modules.lmk.mapper.PrizeActivityMapper; import cn.lili.modules.lmk.service.PrizeActivityService; import cn.lili.base.Result; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.lili.modules.lmk.domain.form.PrizeActivityForm; import cn.lili.modules.lmk.domain.vo.PrizeActivityVO; import cn.lili.modules.lmk.domain.query.PrizeActivityQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import cn.lili.utils.PageUtil; @@ -23,6 +26,7 @@ import org.springframework.util.CollectionUtils; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -40,6 +44,45 @@ private final PrizeActivityMapper prizeActivityMapper; private final COSUtil cOSUtil; + + + @Override + public Result getPopup() { + //鑾峰緱寮圭獥娲诲姩 + PrizeActivity prizeActivity = new LambdaQueryChainWrapper<>(baseMapper) + .eq(PrizeActivity::getDeleteFlag,Boolean.FALSE) + .eq(PrizeActivity::getPopup,Boolean.TRUE) + .one(); + PrizeActivityVO prizeActivityVO = new PrizeActivityVO(); + PrizeActivityVO vo = PrizeActivityVO.getVoByEntity(prizeActivity, prizeActivityVO); + if (StringUtils.isNotBlank(vo.getActivityCover())){ + vo.setActivityCoverUrl(cOSUtil.getPreviewUrl(vo.getActivityCover())); + } + return Result.ok().data(prizeActivityVO); + } + + @Override + public Result popup(String id){ + //璁剧疆id鐨勬椿鍔ㄤ负寮圭獥娲诲姩锛屽皢鍏朵粬娲诲姩鐨勫脊绐楃姸鎬佹敼涓篺alse. + PrizeActivity prizeActivity = baseMapper.selectById(id); + if (prizeActivity.getPopup()){ + prizeActivity.setPopup(Boolean.FALSE); + prizeActivityMapper.updateById(prizeActivity); + return Result.ok("鍙栨秷寮圭獥娲诲姩鎴愬姛!"); + }else { + prizeActivity.setPopup(Boolean.TRUE); + //淇敼鍏朵粬娲诲姩鐨勬帹鑽愮姸鎬佸悗锛屼慨鏀硅瀵硅薄鐨勪慨鏀圭姸鎬� + prizeActivityMapper.updateById(prizeActivity); + new LambdaUpdateChainWrapper<>(baseMapper).eq(PrizeActivity::getPopup,Boolean.TRUE) + .eq(PrizeActivity::getDeleteFlag,Boolean.FALSE) + .set(PrizeActivity::getPopup, Boolean.FALSE) + .ne(PrizeActivity::getId, prizeActivity.getId()) + .set(PrizeActivity::getUpdateTime, new Date()) + .update(); + return Result.ok("寮圭獥娲诲姩寮�鍚垚鍔�"); + } + + } @Override public Result publishPrizeActivity(String id) { @@ -83,6 +126,7 @@ public Result add(PrizeActivityForm form) { PrizeActivity entity = PrizeActivityForm.getEntityByForm(form, null); entity.setEnableStatus(PrizeActivityStatusEnum.OFF.name()); + entity.setPopup(Boolean.FALSE); baseMapper.insert(entity); return Result.ok("娣诲姞鎴愬姛"); } @@ -173,7 +217,6 @@ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); return Result.ok().data(vo); } - /** * 鍒楄〃 * @return diff --git a/framework/src/main/resources/mapper/lmk/PrizeActivityMapper.xml b/framework/src/main/resources/mapper/lmk/PrizeActivityMapper.xml index d6b1535..be9362a 100644 --- a/framework/src/main/resources/mapper/lmk/PrizeActivityMapper.xml +++ b/framework/src/main/resources/mapper/lmk/PrizeActivityMapper.xml @@ -14,6 +14,7 @@ <result column="activity_img" property="activityImg" /> <result column="activity_cover" property="activityCover" /> <result column="enable_status" property="enableStatus" /> + <result column="popup" property="popup"/> </resultMap> @@ -52,7 +53,8 @@ LPA.activity_img, LPA.activity_cover, LPA.enable_status, - LPA.id + LPA.id, + LPA.popup FROM lmk_prize_activity LPA WHERE diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/PrizeActivityController.java b/manager-api/src/main/java/cn/lili/controller/lmk/PrizeActivityController.java index d32b54e..4448ec2 100644 --- a/manager-api/src/main/java/cn/lili/controller/lmk/PrizeActivityController.java +++ b/manager-api/src/main/java/cn/lili/controller/lmk/PrizeActivityController.java @@ -2,18 +2,22 @@ import cn.lili.base.Result; +import cn.lili.cache.Cache; +import cn.lili.common.security.context.UserContext; import cn.lili.modules.lmk.domain.form.ActivityRefPrizeForm; import cn.lili.modules.lmk.domain.form.PrizeActivityForm; import cn.lili.modules.lmk.domain.query.PrizeActivityQuery; import cn.lili.modules.lmk.service.ActivityRefPrizeService; import cn.lili.modules.lmk.service.PrizeActivityService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.Size; import java.util.List; +import java.util.concurrent.TimeUnit; /** * lmk-shop-java @@ -31,6 +35,15 @@ private final PrizeActivityService prizeActivityService; private final ActivityRefPrizeService activityRefPrizeService; + + + + + @PutMapping("/popup/{id}") + public Result popup(@PathVariable("id") String id){ + return prizeActivityService.popup(id); + } + @GetMapping public Result getPage(PrizeActivityQuery query){ return prizeActivityService.page(query); -- Gitblit v1.8.0