From 09310a5a6da2ffccc17f460244fb9a09ec3ff68b Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 25 八月 2025 17:55:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
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 | 5 +
framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java | 62 ++++++++++++++++++++
framework/src/main/java/cn/lili/modules/lmk/service/PrizeActivityService.java | 8 ++
7 files changed, 140 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 a8338c8..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,6 +60,11 @@
private String activityImgUrl;
+ //鏄惁鑳借缃鍝�
+ private boolean canSet;
+
+ //鏄惁鏄脊绐楁椿鍔�
+ private Boolean popup;
public static PrizeActivityVO getVoByEntity(@NonNull PrizeActivity entity, PrizeActivityVO vo) {
if(vo == null) {
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 0c957e0..24abac8 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
@@ -17,6 +17,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 0b5e08f..9ca5f23 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.domain.vo.PrizeDetailVO;
import cn.lili.modules.lmk.enums.general.PrizeActivityStatusEnum;
@@ -12,10 +11,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;
@@ -24,6 +27,7 @@
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -41,6 +45,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) {
@@ -84,6 +127,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("娣诲姞鎴愬姛");
}
@@ -136,8 +180,23 @@
public Result page(PrizeActivityQuery query) {
IPage<PrizeActivityVO> page = PageUtil.getPage(query, PrizeActivityVO.class);
baseMapper.getPage(page, query);
+ //
for (PrizeActivityVO vo : page.getRecords()) {
+ Object data = activityRefPrizeService.getActivityRefPrizeByActivityId(vo.getId()).get("data");
+
+ if (data instanceof List<?>) {
+ List<?> rawList = (List<?>) data;
+ List<ActivityRefPrizeInfoVO> list = new ArrayList<>();
+ for (Object item : rawList) {
+ if (item instanceof ActivityRefPrizeInfoVO) {
+ list.add((ActivityRefPrizeInfoVO) item);
+ }
+ }
+ vo.setCanSet(CollectionUtils.isEmpty(list));
+ // 浣跨敤 list
+ }
+
if (StringUtils.isNotBlank(vo.getActivityCover())){
vo.setActivityCoverUrl(cOSUtil.getPreviewUrl(vo.getActivityCover()));
}
@@ -159,7 +218,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 204c4fa..c4cee58 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