Files
huitu/ruoyi-main/ruoyi-custom/src/main/java/com/ruoyi/controller/ApiBannerController.java
2025-04-08 16:37:17 +08:00

77 lines
2.7 KiB
Java

package com.ruoyi.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.code.PublicCommon;
import com.ruoyi.enums.user.UserEnums;
import com.ruoyi.frequency.banner.entity.Banner;
import com.ruoyi.frequency.banner.service.BannerService;
import com.ruoyi.frequency.customer.service.UserService;
import com.ruoyi.response.ResponseData;
import com.ruoyi.vo.BodyIdReq;
import com.ruoyi.vo.RyController;
import com.ruoyi.vo.UserInfo;
import com.ruoyi.vo.UserVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 轮播图
*/
@CrossOrigin
@RestController
@RequestMapping("/api/banner")
@Api(tags = "轮播图")
public class ApiBannerController extends RyController {
@Autowired
private BannerService bannerService;
@Autowired
private UserService userService;
@PostMapping("/bannerList")
@ApiOperation(value = "轮播图", notes = "轮播图")
public ResponseData<List<Banner>> bannerList(@RequestBody(required = false) Integer position) {
List<Banner> banners = bannerService.list(new QueryWrapper<Banner>().lambda()
.eq(Banner::getDelFlag, PublicCommon.启用)
.eq(ObjectUtil.isNotEmpty(position), Banner::getPosition, position)
.orderByAsc(Banner::getSort)
);
if (!banners.isEmpty()){
Set<UserVo> userVoSet = banners.stream().filter(s->s.getType() == 4 || s.getType() == 5)
.map(s -> new UserVo(s.getType() == 4? UserEnums.customer.getCode():UserEnums.store.getCode(), Long.valueOf(s.getContent())))
.collect(Collectors.toSet());
//查询用户信息
Map<UserVo, UserInfo> userMap = userService.selectUserInfoMap(userVoSet,null);
banners.stream().forEach(s ->{
if (s.getType() == 4 || s.getType() == 5) {
s.setUserInfo(userMap.get(new UserVo(s.getType() == 4 ? UserEnums.customer.getCode() : UserEnums.store.getCode(), Long.valueOf(s.getContent()))));
}
});
}
return ResponseData.success(banners);
}
@PostMapping("/detail")
@ApiOperation(value = "轮播图详情", notes = "轮播图详情")
public ResponseData<Banner> detail(@Valid @NotNull(message = "id不能为空") @RequestBody BodyIdReq req) {
return ResponseData.success(this.bannerService.getById(req.getId()));
}
}