package com.gk.study.controller; import com.gk.study.common.APIResponse; import com.gk.study.common.ResponeCode; import com.gk.study.entity.Banner; import com.gk.study.permission.Access; import com.gk.study.permission.AccessLevel; import com.gk.study.service.BannerService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.util.List; import java.util.UUID; @RestController @RequestMapping("/banner") public class BannerController { private final static Logger logger = LoggerFactory.getLogger(BannerController.class); @Autowired BannerService service; @Value("${File.uploadPath}") private String uploadPath; @RequestMapping(value = "/list", method = RequestMethod.GET) public APIResponse list(){ List list = service.getBannerList(); return new APIResponse(ResponeCode.SUCCESS, "查询成功", list); } @Access(level = AccessLevel.ADMIN) @RequestMapping(value = "/create", method = RequestMethod.POST) @Transactional public APIResponse create(Banner banner) throws IOException { String image = saveBanner(banner); if(!StringUtils.isEmpty(image)) { banner.image = image; } service.createBanner(banner); return new APIResponse(ResponeCode.SUCCESS, "创建成功"); } @Access(level = AccessLevel.ADMIN) @RequestMapping(value = "/delete", method = RequestMethod.POST) public APIResponse delete(String ids){ System.out.println("ids===" + ids); // 批量删除 String[] arr = ids.split(","); for (String id : arr) { service.deleteBanner(id); } return new APIResponse(ResponeCode.SUCCESS, "删除成功"); } @Access(level = AccessLevel.ADMIN) @RequestMapping(value = "/update", method = RequestMethod.POST) @Transactional public APIResponse update(Banner banner) throws IOException { String image = saveBanner(banner); if(!StringUtils.isEmpty(image)) { banner.image = image; } service.updateBanner(banner); return new APIResponse(ResponeCode.SUCCESS, "更新成功"); } public String saveBanner(Banner banner) throws IOException { MultipartFile file = banner.getImageFile(); String newFileName = null; if(file !=null && !file.isEmpty()) { // 存文件 String oldFileName = file.getOriginalFilename(); String randomStr = UUID.randomUUID().toString(); newFileName = randomStr + oldFileName.substring(oldFileName.lastIndexOf(".")); String filePath = uploadPath + File.separator + "banner" + File.separator + newFileName; File destFile = new File(filePath); if(!destFile.getParentFile().exists()){ destFile.getParentFile().mkdirs(); } file.transferTo(destFile); } if(!StringUtils.isEmpty(newFileName)) { banner.image = newFileName; } return newFileName; } }