Pu Zhibing
2025-03-26 7f26677ab7f9b83697370fa142dd1686cdf4082a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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.SeckillActivityInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.List;
 
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author luodangjia
 * @since 2024-11-20
 */
@RestController
@RequestMapping("/banner")
@Api("轮播图")
public class BannerController {
    @Resource
    private BannerService bannerService;
    @Resource
    private GoodsService goodsService;
    @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(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);
                } else 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 || !activityInfo.getVipIds().contains(vipId.toString())){
                    banner.setJumpType(1);
                }
 
            }
        }
        return R.ok(list);
    }
    @PostMapping("/add")
    @ApiOperation(value = "广告管理-banner管理-添加", tags = {"管理后台"})
    public R add(@RequestBody Banner banner){
            bannerService.save(banner);
            return R.ok();
      }
      @GetMapping("/delete")
    @ApiOperation(value = "广告管理-banner管理-删除", tags = {"管理后台"})
    public R delete(@RequestParam Integer id){
            bannerService.removeById(id);
            return R.ok();
      }
      @PostMapping("/edit")
    @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();
      }
      @GetMapping("/detail")
    @ApiOperation(value = "广告管理-banner管理-详情", tags = {"管理后台"})
    public R detail(@RequestParam Integer id){
          Banner byId = bannerService.getById(id);
          return R.ok(byId);
      }
      @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(jumpType!=null,Banner::getJumpType, jumpType)
                  .eq(position!=null,Banner::getPosition, position)
                  .page(Page.of(pageNum, pageSize));
          return R.ok(page);
    }
 
 
}