luofl
2025-04-03 a78ac968018e42634cfb37a6a1ef3aa2dd10acc9
Merge remote-tracking branch 'origin/2.0' into 2.0
6个文件已修改
1个文件已添加
121 ■■■■■ 已修改文件
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupStore.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupStore.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/HomeModuleController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/HomeModule.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ImageUtils.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
        }
    }
}