cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java
@@ -45,4 +45,7 @@ @TableField("sort") private Integer sort; @TableField("displayType") private Integer displayType; } cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java
@@ -33,5 +33,7 @@ * 排序 */ private Integer sort; private Integer displayType; } cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java
@@ -1,17 +1,22 @@ package com.dsh.guns.modular.system.controller.code; import com.dsh.course.feignClient.other.model.Banner; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.model.HomeModule; import com.dsh.guns.modular.system.service.IHomeModuleService; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.util.ImageUtils; import com.dsh.guns.modular.system.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.io.IOException; import java.util.List; import java.util.Map; @@ -51,6 +56,13 @@ if (homeModule.getPage().equals("请选择")){ homeModule.setPage(null); } if (ToolUtil.isNotEmpty(homeModule.getBackgroundImage())) { try { homeModule.setDisplayType(ImageUtils.getImageDimensions(homeModule.getBackgroundImage()).getDisplayType()); } catch (IOException e) { throw new RuntimeException(e); } } return ResultUtil.success(homeModuleService.updateById(homeModule)); } cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -42,6 +42,7 @@ import com.dsh.guns.modular.system.service.TStoreOtherService; import com.dsh.guns.modular.system.service.TTurnService; import com.dsh.guns.modular.system.util.HttpRequestUtil; import com.dsh.guns.modular.system.util.ImageUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -52,6 +53,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -780,6 +782,9 @@ worldCupStore.setSort(sort); worldCupStore.setId(id1); worldCupStore.setBackgroundImage(backgroundImage); if (ToolUtil.isNotEmpty(backgroundImage)) { worldCupStore.setDisplayType(ImageUtils.getImageDimensions(backgroundImage).getDisplayType()); } worldCupStore.setIsOpen(isOpen); worldCupStores.add(worldCupStore); } @@ -796,11 +801,13 @@ StoreConfig one = storeConfigService.getOne(new QueryWrapper<StoreConfig>() .eq("storeId", id) .eq("type", type)); try { if (one!=null){ one.setSort(sort); one.setIsOpen(isOpen); if(ToolUtil.isNotEmpty(img)){ one.setBackgroundImage(img); one.setDisplayType(ImageUtils.getImageDimensions(img).getDisplayType()); } } if (one == null){ @@ -810,10 +817,15 @@ storeConfig.setIsOpen(isOpen); storeConfig.setSort(sort); storeConfig.setBackgroundImage(img); if (ToolUtil.isNotEmpty(img)) { storeConfig.setDisplayType(ImageUtils.getImageDimensions(img).getDisplayType()); } storeConfigService.save(storeConfig); return storeConfig; } } catch (IOException e) { throw new RuntimeException(e); } return one; } @RequestMapping(value = "/oneChangeNext") cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java
@@ -88,4 +88,9 @@ */ @TableField("typeId") private Integer typeId; /** * 展示类型 1=横屏 2=竖屏 */ @TableField("displayType") private Integer displayType; } cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java
@@ -58,6 +58,9 @@ @TableField("backgroundImage") private String backgroundImage; @TableField("displayType") private Integer displayType; @Override protected Serializable pkVal() { cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ImageUtils.java
New file @@ -0,0 +1,78 @@ package com.dsh.guns.modular.system.util; import lombok.Getter; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class ImageUtils { /** * 获取图片的尺寸(宽高) * * @param imageUrl 图片的URL地址 * @return 包含图片宽高的Dimension对象 * @throws IOException 如果URL无效、读取超时、图片格式不支持或图片损坏 */ public static Dimension getImageDimensions(String imageUrl) throws IOException { URL url = new URL(imageUrl); URLConnection connection = url.openConnection(); // 设置连接和读取超时时间(单位:毫秒) connection.setConnectTimeout(5000); connection.setReadTimeout(5000); try (InputStream inputStream = connection.getInputStream()) { BufferedImage image = ImageIO.read(inputStream); if (image == null) { throw new IOException("Unsupported image format or corrupted image"); } return new Dimension(image.getWidth(), image.getHeight()); } } /** * 封装图片宽高的内部类 */ @Getter public static class Dimension { private final int width; private final int height; public Dimension(int width, int height) { this.width = width; this.height = height; } @Override public String toString() { return "Dimension{width=" + width + ", height=" + height + "}"; } /** * 展示类型 1 横屏 2 竖屏 * @return */ public Integer getDisplayType(){ if (width > height) { return 1; } else { return 2; } } } // 示例用法 public static void main(String[] args) { try { Dimension dimension = getImageDimensions("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/e4ef2672d1a6456f9cd680ce51cf3a6e.jpg"); System.out.println(dimension); System.out.println(dimension.getDisplayType()); } catch (IOException e) { e.printStackTrace(); } } }