Commit 6810ef4e authored by lixinglin's avatar lixinglin

轮播视频,上传封面

parent be5c1e0d
package com.ruoyi.system.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.VO.BaseInfoParam;
import com.ruoyi.system.VO.BaseInfoVO;
import com.ruoyi.system.domain.DevelopmentInfo;
import com.ruoyi.system.domain.MegalopolisInfo;
import com.ruoyi.system.domain.ParkInfo;
import com.ruoyi.system.service.*;
import com.ruoyi.system.domain.SysCarouselInfo;
import com.ruoyi.system.service.IDevelopmentInfoService;
import com.ruoyi.system.service.IMegalopolisInfoService;
import com.ruoyi.system.service.IParkInfoService;
import com.ruoyi.system.service.ISysCarouselInfoService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.SysCarouselInfo;
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;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 轮播图信息Controller
......@@ -62,6 +60,16 @@ public class SysCarouselInfoController extends BaseController
return prefix + "/info";
}
@GetMapping("/videoCover")
public String industry(HttpServletRequest request, ModelMap mmap)
{
String id = request.getParameter("videoId");
SysCarouselInfo sysCarouselInfo = sysCarouselInfoService.selectSysCarouselInfoById(Long.parseLong(id));
mmap.put("sysCarouselInfo", sysCarouselInfo);
mmap.put("id",id);
return prefix + "/video_cover";
}
/**
* 查询轮播图信息列表
*/
......@@ -122,6 +130,20 @@ public class SysCarouselInfoController extends BaseController
return prefix + "/edit";
}
/**
* 保存封面
*/
@Log(title = "保存封面", businessType = BusinessType.UPDATE)
@PostMapping("/editVideoCover")
@ResponseBody
public AjaxResult editVideoCover(SysCarouselInfo sysCarouselInfo)
{
return toAjax(sysCarouselInfoService.updateVideoCover(sysCarouselInfo));
}
/**
* 修改保存轮播图信息
*/
......
......@@ -11,47 +11,72 @@ import lombok.Data;
* @date 2023-11-28
*/
@Data
public class SysCarouselInfo extends BaseEntity
{
public class SysCarouselInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */
/**
* 主键id
*/
private Long id;
/** 图片地址链接 */
/**
* 图片地址链接
*/
@Excel(name = "图片地址链接")
private String imgUrl;
/** 图片描述 */
@Excel(name = "描述")
/**
* 图片描述
*/
@Excel(name = "图片描述")
private String description;
/** 图片状态(0-禁用;1-可用) */
@Excel(name = "状态", readConverterExp = "0=-禁用;1-可用")
/**
* 图片状态(0-禁用;1-可用)
*/
@Excel(name = "图片状态", readConverterExp = "0=-禁用;1-可用")
private Integer status;
/** 类型(0 -都市圈、1-开发区、2-园区、3-首页) */
@Excel(name = "资源所属类型", readConverterExp = "0=,-=都市圈、1-开发区、2-园区、3-首页")
/**
* 类型(0 -都市圈、1-开发区、2-园区、3-首页)
*/
@Excel(name = "类型", readConverterExp = "0=,-=都市圈、1-开发区、2-园区、3-首页")
private Integer type;
/** 排序 */
/**
* 排序
*/
@Excel(name = "排序")
private Integer orderNumber;
/** 关联id */
/**
* 关联id
*/
@Excel(name = "关联id")
private Long associationId;
/** 关联名称 */
/**
* 关联名称
*/
@Excel(name = "关联名称")
private String associationName;
/** 转跳链接 */
/**
* 转跳链接
*/
@Excel(name = "转跳链接")
private String linkUrl;
/** 类型 1-图片 2-视频 3-其他 */
@Excel(name = "类型 1-图片 2-视频 3-其他")
/**
* 类型 1-图 2-视频 3.其他
*/
@Excel(name = "类型 1-图 2-视频 3.其他")
private Integer urlType;
/**
* 视频封面
*/
@Excel(name = "视频封面")
private String videoCover;
}
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.SysCarouselInfo;
import java.util.List;
/**
* 轮播图信息Service接口
*
......@@ -43,6 +44,8 @@ public interface ISysCarouselInfoService
*/
public int updateSysCarouselInfo(SysCarouselInfo sysCarouselInfo);
int updateVideoCover(SysCarouselInfo sysCarouselInfo);
/**
* 批量删除轮播图信息
*
......
......@@ -5,6 +5,7 @@ import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.SysCarouselInfo;
import com.ruoyi.system.mapper.SysCarouselInfoMapper;
import com.ruoyi.system.service.ISysCarouselInfoService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -104,6 +105,17 @@ public class SysCarouselInfoServiceImpl implements ISysCarouselInfoService {
return sysCarouselInfoMapper.updateSysCarouselInfo(sysCarouselInfo);
}
@Override
public int updateVideoCover(SysCarouselInfo sysCarouselInfo) {
Long id = sysCarouselInfo.getId();
SysCarouselInfo sysCarouselInfo1 = sysCarouselInfoMapper.selectSysCarouselInfoById(id);
String videoCover = sysCarouselInfo.getVideoCover();
if ("".equals(videoCover) || !ObjectUtils.isEmpty(videoCover)) {
sysCarouselInfo1.setVideoCover(videoCover);
}
return sysCarouselInfoMapper.updateSysCarouselInfo(sysCarouselInfo1);
}
/**
* 批量删除轮播图信息
*
......
......@@ -17,10 +17,11 @@
<result property="associationName" column="association_name" />
<result property="linkUrl" column="link_url" />
<result property="urlType" column="url_type" />
<result property="videoCover" column="video_cover" />
</resultMap>
<sql id="selectSysCarouselInfoVo">
select id, create_time, update_time, img_url, description, status, type, order_number, association_id, association_name, link_url, url_type from sys_carousel_info
select id, create_time, update_time, img_url, description, status, type, order_number, association_id, association_name, link_url, url_type, video_cover from sys_carousel_info
</sql>
<select id="selectSysCarouselInfoList" parameterType="SysCarouselInfo" resultMap="SysCarouselInfoResult">
......@@ -34,7 +35,8 @@
<if test="associationId != null "> and association_id = #{associationId}</if>
<if test="associationName != null and associationName != ''"> and association_name like concat('%', #{associationName}, '%')</if>
<if test="linkUrl != null and linkUrl != ''"> and link_url = #{linkUrl}</if>
<if test="urlType != null and urlType != ''"> and url_type = #{urlType}</if>
<if test="urlType != null "> and url_type = #{urlType}</if>
<if test="videoCover != null and videoCover != ''"> and video_cover = #{videoCover}</if>
</where>
</select>
......@@ -57,6 +59,7 @@
<if test="associationName != null">association_name,</if>
<if test="linkUrl != null">link_url,</if>
<if test="urlType != null">url_type,</if>
<if test="videoCover != null">video_cover,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="createTime != null">#{createTime},</if>
......@@ -70,6 +73,7 @@
<if test="associationName != null">#{associationName},</if>
<if test="linkUrl != null">#{linkUrl},</if>
<if test="urlType != null">#{urlType},</if>
<if test="videoCover != null">#{videoCover},</if>
</trim>
</insert>
......@@ -87,6 +91,7 @@
<if test="associationName != null">association_name = #{associationName},</if>
<if test="linkUrl != null">link_url = #{linkUrl},</if>
<if test="urlType != null">url_type = #{urlType},</if>
<if test="videoCover != null">video_cover = #{videoCover},</if>
</trim>
where id = #{id}
</update>
......
......@@ -91,6 +91,8 @@
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "轮播图信息",
sortName: "id",
sortOrder: "desc",
columns: [{
checkbox: true
},
......@@ -108,7 +110,7 @@
actions.push('<img style="width:50px;height:50px" src=' + value + '>');
} else if (urlType == 2) {
actions.push
('<video width="50px" height="50px" controls>' +
('<video style="width:50px;height:50px" controls>' +
'<source src="' + value + '" type="video/mp4">' +
' 您的浏览器不支持Video标签。' +
'</video>');
......@@ -171,6 +173,18 @@
align: 'center',
formatter: function (value, row, index) {
var actions = [];
let urlType = row.urlType;
if (urlType == 2) {
var title = "\'编辑封面\'";
var url = "\'/carousel/info/videoCover?videoId=" + row.id + "\'";
actions.push(
'<a class="btn btn-primary btn-xs ' + editFlag +
'" href="javascript:void(0)"' +
' onclick="$.modal.open(' + title + ',' + url + ')">' +
'<i class="fa fa-edit"></i>' +
'编辑封面</a> '
);
}
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('封面信息')"/>
<th:block th:include="include :: bootstrap-fileinput-css"/>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-info-edit" th:object="${sysCarouselInfo}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">图片地址链接:</label>
<div class="col-sm-8">
<input type="hidden" name="videoCover" th:field="*{videoCover}">
<div class="file-loading">
<input class="form-control img-upload" id="videoCover" name="file" type="file" accept="image/*">
</div>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: bootstrap-fileinput-js"/>
<script th:inline="javascript">
var prefix = ctx + "carousel/info"
$("#form-info-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/editVideoCover", $('#form-info-edit').serialize());
}
}
$(".img-upload").each(function (i) {
var val = $("input[name='" + this.id + "']").val()
$(this).fileinput({
// 'uploadUrl': ctx + 'common/upload',
'uploadUrl': ctx + 'sysFile/uploadImgHuawei',
initialPreviewAsData: true,
initialPreview: [val],
maxFileCount: 1,
autoReplace: true
}).on('fileuploaded', function (event, data, previewId, index) {
$("input[name='" + event.currentTarget.id + "']").val(data.response.url)
}).on('fileremoved', function (event, id, index) {
$("input[name='" + event.currentTarget.id + "']").val('');
})
$(this).fileinput('_initFileActions');
});
</script>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment