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> bannerList(@RequestBody(required = false) Integer position) { List banners = bannerService.list(new QueryWrapper().lambda() .eq(Banner::getDelFlag, PublicCommon.启用) .eq(ObjectUtil.isNotEmpty(position), Banner::getPosition, position) .orderByAsc(Banner::getSort) ); if (!banners.isEmpty()){ Set 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 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 detail(@Valid @NotNull(message = "id不能为空") @RequestBody BodyIdReq req) { return ResponseData.success(this.bannerService.getById(req.getId())); } }