图片及视频上传工具类

上传图片工具类
链接: https://pan.baidu.com/s/1dILoaGE2wtgI-gGsRf7jLA
提取码: uky5

package com.ruoyi.web.controller.app;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.PageHelper;
import com.ruoyi.app.domain.*;
import com.ruoyi.app.service.*;
import com.ruoyi.app.vo.TreeNode;
import com.ruoyi.common.config.Global;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.sql.SqlUtil;
import com.ruoyi.common.utils.FetchFrame;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.framework.util.ShiroUtils;
import com.ruoyi.system.domain.SysTenant;
import com.ruoyi.system.service.ISysTenantService;
import com.ruoyi.web.controller.tool.Cupload;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 商品Controller
 *
 * @author ruoyi
 * @date 2020-09-01
 */

@Controller("product")
@RequestMapping("/app/product")
public class AppProductController extends BaseController {
    private String prefix = "app/product";

    @Autowired
    private IAppProductService appProductService;

    @Autowired
    private IAppTypeService appTypeService;

    @Autowired
    private IAppShopService appShopService;

    @Autowired
    private IAppTagService appTagService;

    @Autowired
    private ISysTenantService sysTenantService;

    @Value("${imageUrl}")
    private String imageUrl;

    @RequiresPermissions("app:product:view")
    @GetMapping()
    public String product() {
        return prefix + "/product";
    }

    /**
     * 查询商品列表
     */
    @RequiresPermissions("app:product:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(AppProduct appProduct) {
        startPage();
        //是否属于组合商品
        appProduct.setCombination(0);
        //是否属于加购商品
        appProduct.setPurchased(0);
        appProduct.setTenantId(ShiroUtils.getTenantId());
        List<AppProduct> list = appProductService.selAppProductList(appProduct);
        return getDataTable(list);
    }

    /**
     * 导出商品列表
     */
    @RequiresPermissions("app:product:export")
    @Log(title = "商品", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(AppProduct appProduct) {
        List<AppProduct> list = appProductService.selAppProductList(appProduct);
        ExcelUtil<AppProduct> util = new ExcelUtil<>(AppProduct.class);
        return util.exportExcel(list, "product");
    }

    /**
     * 新增商品
     */
    @GetMapping("/add")
    public String add(ModelMap mmp) {
        List<TreeNode> nodes = sysTenantService.getNodes(ShiroUtils.getTenantId());
        mmp.put("nodes",nodes);
        if(nodes.size()==1){
            //所有门店列表
            List<AppShop> appShops = appShopService.selNameAll(ShiroUtils.getTenantId());
            mmp.put("appShops", appShops);
        }
        AppTag appTag = new AppTag();
        appTag.setProductId(Long.valueOf(0));
        List<AppTag> appTags = appTagService.selectAppTagList(appTag);
        mmp.put("app_tag", appTags);
        mmp.put("imageUrl", imageUrl);
        return prefix + "/add";
    }

    /**
     * 新增保存商品
     */
    @RequiresPermissions("app:product:add")
    @Log(title = "商品", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult addSave(AppProduct appProduct,
                              AppSku appSku,
                              AppProductType appProductType,
                              @RequestParam(value = "logo",required = false)String[] logo,
                              @RequestParam(value = "pics",required = false)String[] pics,
                              @RequestParam(value = "sharePics1",required = false)String[] sharePics1,
                              @RequestParam(value = "sharePics2",required = false)String sharePics2,
                              @RequestParam(value = "advertPic",required = false)String[] advertPic) throws Exception {
        appSku.setTenantId(appProduct.getTenantId());
        //是否属于组合商品
        appProduct.setCombination(0);
        //是否属于加购商品
        appProduct.setPurchased(0);
        //是否参与秒杀
        appProduct.setSkill(0);
        if (null==logo || logo.length<=0){
            return error("请上传商品缩略图");
        }
        if (null==pics || pics.length<=0){
            return error("请上传商品图");
        }
        if (null==advertPic || advertPic.length<=0){
            return error("请上传首页广告图");
        }
        String logos = Cupload.uploadImages(Global.getProductPath(),logo);
        appProduct.setLogo(logos);
        String picsArray = Cupload.uploadImages(Global.getProductPath(),pics);
        appProduct.setPics(picsArray);
        String sharePicsArray = "";
        if (appProduct.getShareType()==1){
            if (null==sharePics1 || sharePics1.length<=0){
                return error("请上传分享图片");
            }
            sharePicsArray = Cupload.uploadImages(Global.getProductPath(),sharePics1);
        }else if (appProduct.getShareType()==2){
            if (null==sharePics2){
                return error("请上传分享视频");
            }
            String pic = "/product/fetchFrame/" + System.currentTimeMillis() + ".jpg";
            FetchFrame.fetchFrame(Global.getProfile() + sharePics2, Global.getProfile() + pic);
            sharePicsArray = sharePics2.concat(";" + pic);
        }
        appProduct.setSharePics(sharePicsArray);
        String advertPicArray = Cupload.uploadImages(Global.getProductPath(),advertPic);
        appProduct.setAdvertPic(advertPicArray);
        return toAjax(appProductService.insertAppProductCombination(appProduct, appSku, appProductType, 0));
    }

    /**
     * 修改商品
     */
    @GetMapping("/edit/{productId}")
    public String edit(@PathVariable("productId") Long productId, ModelMap mmap) {

        AppProduct appProduct = appProductService.selectAppProductById(productId);
        SysTenant sysTenant = sysTenantService.selectSysTenantInfoByTenantId(appProduct.getTenantId());
        if (null!=sysTenant){
            appProduct.setTenantName(sysTenant.getTenantName());
        }
        List<AppShop> appShops = appShopService.selNameAll(appProduct.getTenantId());
        List<AppType> appTypes = appTypeService.selIdAndName(appProduct.getTenantId());
        AppTag appTag = new AppTag();
        appTag.setProductId(productId);
        List<AppTag> appTags = appTagService.selectAppTagList(appTag);
        mmap.put("appProduct", appProduct);
        mmap.put("appTags", appTags);
        mmap.put("appShops", appShops);
        mmap.put("appTypes", appTypes);
        String[] picsArray = Cupload.viewImages(imageUrl,appProduct.getPics());
        String[] logoArray = Cupload.viewImages(imageUrl,appProduct.getLogo());
        String[] sharePicsArray = Cupload.viewImages(imageUrl,appProduct.getSharePics());
        String[] advertPicArray = Cupload.viewImages(imageUrl,appProduct.getAdvertPic());
        String sharePicsArray2 = appProduct.getSharePics();
        mmap.put("picsArray",picsArray);
        mmap.put("logoArray",logoArray);

        if (appProduct.getShareType()==1){
            mmap.put("sharePicsArray1",sharePicsArray);
        }else{
            mmap.put("sharePicsArray2",sharePicsArray2);
        }
        mmap.put("advertPicArray",advertPicArray);

        AppTag tag = new AppTag();
        tag.setProductId(0L);
        List<AppTag> tagList = appTagService.selectAppTagList(tag);
        mmap.put("app_tag", tagList);
        mmap.put("imageUrl", imageUrl);

        List<ParameterParam> parameterList = new ArrayList<>();
        if (StringUtils.NotNullOrEmpty(appProduct.getParameter())) {
            JSONArray jsonArray = JSONArray.parseArray(appProduct.getParameter());
            if(jsonArray!=null){
                parameterList = jsonArray.toJavaList(ParameterParam.class);
            }
            mmap.put("parameterList", parameterList);
        }else {
            mmap.put("parameterList", parameterList);
        }

        return prefix + "/edit";
    }

    /**
     * 修改保存商品
     */
    @RequiresPermissions("app:product:edit")
    @Log(title = "商品", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult editSave(AppProduct appProduct,
                               AppProductType appProductType,
                               @RequestParam(value = "logo",required = false)String[] logo,
                               @RequestParam(value = "pics",required = false)String[] pics,
                               @RequestParam(value = "sharePics1",required = false)String[] sharePics1,
                               @RequestParam(value = "sharePics2",required = false)String sharePics2,
                               @RequestParam(value = "advertPic",required = false)String[] advertPic) throws IOException, IOException {

        if (null==logo || logo.length<=0){
            return error("请上传商品缩略图");
        }
        if (null==pics || pics.length<=0){
            return error("请上传商品图");
        }
        if (null==advertPic || advertPic.length<=0){
            return error("请上传首页广告图");
        }
        AppProduct product = appProductService.selectAppProductById(appProduct.getProductId());
        if (product == null){
            return error("抱歉,您操作的数据不存在");
        }
        String logoArray = Cupload.editImages(Global.getProductPath(),imageUrl,logo);
        String picsArray = Cupload.editImages(Global.getProductPath(),imageUrl,pics);
        String advertPicArray = Cupload.editImages(Global.getProductPath(),imageUrl,advertPic);
        String sharePicsArray = "";
        if (appProduct.getShareType()==1){
            if (null==sharePics1 || sharePics1.length<=0){
                return error("请上传分享图片");
            }
            sharePicsArray = Cupload.editImages(Global.getProductPath(),imageUrl,sharePics1);
        }else if (appProduct.getShareType()==2){
            if (null==sharePics2){
                return error("请上传分享视频");
            }
            if (product.getShareType()==2 && !product.getSharePics().equals(sharePics2)) {
                String pic = "/product/fetchFrame/" + System.currentTimeMillis() + ".jpg";
                FetchFrame.fetchFrame(Global.getProfile() + sharePics2, Global.getProfile() + pic);
                sharePicsArray = sharePics2.concat(";" + pic);
            }else {
                sharePicsArray = sharePics2;
            }
        }
        appProduct.setLogo(logoArray);
        appProduct.setPics(picsArray);
        appProduct.setSharePics(sharePicsArray);
        appProduct.setAdvertPic(advertPicArray);
        if (product.getHome()==0 && appProduct.getHome()==1) appProduct.setHometime(DateUtils.getTime());
        if (product.getRecommend()==0 && (StringUtils.isNull(appProduct.getRecommend())?0:1)==1) appProduct.setRecomtime(DateUtils.getTime());
        if (product.getJxRecommend()==0 && (StringUtils.isNull(appProduct.getJxRecommend())?0:1)==1) appProduct.setJxRecomtime(DateUtils.getTime());
        if (product.getPayRecommend()==0 && (StringUtils.isNull(appProduct.getPayRecommend())?0:1)==1) appProduct.setPayRecomtime(DateUtils.getTime());
        return toAjax(appProductService.updateAppProduct(appProduct, appProductType, null));
    }

    /**
     * 删除商品
     */
    @RequiresPermissions("app:product:remove")
    @Log(title = "商品", businessType = BusinessType.DELETE)
    @PostMapping("/remove")
    @ResponseBody
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult remove(String ids) {
        return toAjax(appProductService.deleteAppProductByIds(ids));
    }


    /**
     * 复制商品
     */
    @RequiresPermissions("app:product:copy")
    @Log(title = "商品", businessType = BusinessType.DELETE)
    @PostMapping("/copy")
    @ResponseBody
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult copy(String ids) {
        return toAjax(appProductService.copyAppProduct(ids));
    }

    //++++++++++++++++++++++++++二级联动++++++++++++++++++++++++++++++++++++++++++++++++++++


    @GetMapping("/getNodes/{tenantId}")
    @ResponseBody
    public List<AppShop> getNodes(@PathVariable String tenantId){
        List<AppShop> appShopById = appShopService.selNameAll(tenantId);
        return appShopById;
    }

    @GetMapping("/getTypes/{tenantId}")
    @ResponseBody
    public List<AppType> getTypes(@PathVariable String tenantId){
        List<AppType> appTypes = appTypeService.selIdAndName(tenantId);
        return appTypes;
    }


    @PostMapping("/getProductByTypeId")
    @ResponseBody
    public List<AppProduct> getProductByTypeId(String tenantId, String typeId){
        if (typeId==null||"".equals(typeId)){
            return new ArrayList<>();
        }
        return appProductService.getProductIdAndNameByTypeId(tenantId,typeId);
    }

}

pom依赖

<?xml version="1.0" encoding="UTF-8"?>



ruoyi
com.ruoyi
4.1.0

4.0.0

<artifactId>ruoyi-common</artifactId>

<description>
    common通用工具
</description>

<dependencies>
	
	<!-- Spring框架基本的核心工具 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context-support</artifactId>
	</dependency>
	
	<!-- SpringWeb模块 -->
	<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>
    
    <!--Shiro核心框架 -->
	<dependency>
		<groupId>org.apache.shiro</groupId>
		<artifactId>shiro-core</artifactId>
	</dependency>
    
	<!-- pagehelper 分页插件 -->
	<dependency>
		<groupId>com.github.pagehelper</groupId>
		<artifactId>pagehelper-spring-boot-starter</artifactId>
	</dependency>
	
	<!-- 自定义验证注解 -->
    <dependency>
		<groupId>javax.validation</groupId>
		<artifactId>validation-api</artifactId>
    </dependency>

    <!--常用工具类 -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
	</dependency>
	
	<!-- JSON工具类 -->
	<dependency>
	    <groupId>com.fasterxml.jackson.core</groupId>
	    <artifactId>jackson-databind</artifactId>
	</dependency>

	<!-- 阿里JSON解析器 -->
	<dependency>
		<groupId>com.alibaba</groupId>
		<artifactId>fastjson</artifactId>
	</dependency>

	<!-- io常用工具类 -->
	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
	</dependency>

	<!-- 文件上传工具类 -->
	<dependency>
		<groupId>commons-fileupload</groupId>
		<artifactId>commons-fileupload</artifactId>
	</dependency>
	
	<!-- excel工具 -->
	<dependency>
		<groupId>org.apache.poi</groupId>
		<artifactId>poi-ooxml</artifactId>
	</dependency>
	
	<!-- yml解析器 -->
	<dependency>
	    <groupId>org.yaml</groupId>
	    <artifactId>snakeyaml</artifactId>
	</dependency>
	
	<!-- servlet包 -->
    <dependency>
	    <groupId>javax.servlet</groupId>
	    <artifactId>javax.servlet-api</artifactId>
	</dependency>

	<dependency>
		<groupId>com.google.code.gson</groupId>
		<artifactId>gson</artifactId>
		<version>2.8.5</version>
	</dependency>
	<dependency>
		<groupId>com.allinpay.yunst</groupId>
		<artifactId>yunst-sdk</artifactId>
		<version>0.0.1</version>
	</dependency>
	<dependency>
		<groupId>org.bouncycastle</groupId>
		<artifactId>bcprov-jdk16</artifactId>
		<version>1.45</version>
	</dependency>
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.7</version>
	</dependency>

	<!--截取视频第一帧-->
	<dependency>
		<groupId>org.bytedeco</groupId>
		<artifactId>javacv</artifactId>
		<version>1.4.3</version>
	</dependency>
	<dependency>
		<groupId>org.bytedeco.javacpp-presets</groupId>
		<artifactId>ffmpeg-platform</artifactId>
		<version>4.0.2-1.4.3</version>
	</dependency>

</dependencies>
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匠心点睛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值