From e9d5d32c7ee67eec2f47ed80fe9aae92a0ce7ec1 Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 14 一月 2025 10:17:38 +0800
Subject: [PATCH] 12.18

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java |   94 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 78 insertions(+), 16 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java
index 4f31a82..bd3ec88 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/BannerController.java
@@ -1,14 +1,25 @@
 package com.ruoyi.other.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.AppUser;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.ServletUtils;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.other.api.domain.Banner;
+import com.ruoyi.other.api.domain.Goods;
+import com.ruoyi.other.api.domain.SeckillActivityInfo;
 import com.ruoyi.other.service.BannerService;
+import com.ruoyi.other.service.GoodsService;
+import com.ruoyi.other.service.GoodsVipService;
+import com.ruoyi.other.service.SeckillActivityInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.ibatis.annotations.Param;
+import io.swagger.annotations.ApiParam;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -28,45 +39,96 @@
 public class BannerController {
     @Resource
     private BannerService bannerService;
-    @PostMapping("/index/list")
-	@ApiOperation(value = "banner列表", tags = {"小程序-首页"})
-	public R<List<Banner>> list(String name, Integer jumpType, Integer position){
+    @Resource
+    private GoodsService goodsService;
+    @Resource
+    private GoodsVipService goodsVipService;
+    @Resource
+    private SeckillActivityInfoService seckillActivityInfoService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private AppUserClient appUserClient;
+
+
+
+    @GetMapping("/list")
+	@ApiOperation(value = "banner列表", tags = {"小程序-banner"})
+	public R<List<Banner>> list(@ApiParam("名称") String name,
+                                @ApiParam("跳转类型(1=无跳转,2=外部链接,3=商品详情,4=秒杀商品详情,5=领券中心)") Integer jumpType,
+                                @ApiParam("位置(1=首页,2=商城首页)") Integer position){
         List<Banner> list = bannerService.lambdaQuery().like(StringUtils.isNotEmpty(name), Banner::getName, name)
-                .eq(Banner::getJumpType, jumpType)
-                .eq(Banner::getPosition, position)
+                .eq(jumpType!=null,Banner::getJumpType, jumpType)
+                .eq(position!=null,Banner::getPosition, position)
                 .list();
+        Integer vipId = 0;
+        String token = SecurityUtils.getToken(ServletUtils.getRequest());
+        if(StringUtils.isNotEmpty(token)){
+            Long userid = tokenService.getLoginUserApplet().getUserid();
+            AppUser appUser = appUserClient.getAppUserById(userid);
+            vipId = appUser.getVipId();
+        }
+        for (Banner banner : list) {
+            Integer jumpType1 = banner.getJumpType();
+            //商品详情
+            if(null != jumpType1 && 3 == jumpType1){
+                Goods goods = goodsService.getById(banner.getContent());
+                if(null == goods || goods.getDelFlag() == 1){
+                    banner.setJumpType(1);
+                }
+                if(!goods.getCommodityAuthority().contains("-1") && !goods.getCommodityAuthority().contains(vipId.toString())){
+                    banner.setJumpType(1);
+                }
+            }
+            //秒杀活动
+            if(null != jumpType1 && 4 == jumpType1){
+                SeckillActivityInfo activityInfo = seckillActivityInfoService.getById(banner.getContent());
+                if(null == activityInfo || activityInfo.getDelFlag() == 1){
+                    banner.setJumpType(1);
+                }
+                if(!activityInfo.getVipIds().contains(vipId.toString())){
+                    banner.setJumpType(1);
+                }
+            }
+        }
         return R.ok(list);
     }
     @PostMapping("/add")
-	@ApiOperation(value = "添加", tags = {"后台-广告管理-banner管理"})
+	@ApiOperation(value = "广告管理-banner管理-添加", tags = {"管理后台"})
 	public R add(@RequestBody Banner banner){
             bannerService.save(banner);
             return R.ok();
       }
-      @PostMapping("/delete")
-	@ApiOperation(value = "删除", tags = {"后台-广告管理-banner管理"})
+      @GetMapping("/delete")
+	@ApiOperation(value = "广告管理-banner管理-删除", tags = {"管理后台"})
 	public R delete(@RequestParam Integer id){
             bannerService.removeById(id);
             return R.ok();
       }
       @PostMapping("/edit")
-	@ApiOperation(value = "修改", tags = {"后台-广告管理-banner管理"})
+	@ApiOperation(value = "广告管理-banner管理-修改", tags = {"管理后台"})
 	public R edit(@RequestBody Banner banner){
             bannerService.updateById(banner);
+            if (banner.getContentType()==2){
+                LambdaUpdateWrapper<Banner> bannerLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+                bannerLambdaUpdateWrapper.set(Banner::getJumpType,null);
+                bannerLambdaUpdateWrapper.eq(Banner::getId,banner.getId());
+                bannerService.update(bannerLambdaUpdateWrapper);
+            }
             return R.ok();
       }
-      @PostMapping("/detail")
-	@ApiOperation(value = "详情", tags = {"后台-广告管理-banner管理"})
+      @GetMapping("/detail")
+	@ApiOperation(value = "广告管理-banner管理-详情", tags = {"管理后台"})
 	public R detail(@RequestParam Integer id){
           Banner byId = bannerService.getById(id);
           return R.ok(byId);
       }
-      @PostMapping("/page/list")
-	@ApiOperation(value = "列表", tags = {"后台-广告管理--banner"})
+      @GetMapping("/page/list")
+	@ApiOperation(value = "广告管理-banner-列表", tags = {"管理后台"})
 	public R<Page<Banner>> pagelist(String name, Integer jumpType, Integer position,Integer pageNum,Integer pageSize){
           Page<Banner> page = bannerService.lambdaQuery().like(StringUtils.isNotEmpty(name), Banner::getName, name)
-                  .eq(Banner::getJumpType, jumpType)
-                  .eq(Banner::getPosition, position)
+                  .eq(jumpType!=null,Banner::getJumpType, jumpType)
+                  .eq(position!=null,Banner::getPosition, position)
                   .page(Page.of(pageNum, pageSize));
           return R.ok(page);
     }

--
Gitblit v1.7.1