zhijiezhao преди 5 месеца
родител
ревизия
ad72228251

+ 26 - 0
src/main/java/com/caimei/modules/newhome/dao/NewPageCenterimageDao.java

@@ -0,0 +1,26 @@
+package com.caimei.modules.newhome.dao;
+
+import com.caimei.modules.newhome.entity.NewPageCenterimage;
+import com.caimei.modules.newhome.entity.NewPageHomeimage;
+import com.caimei.modules.newhome.entity.cmStatisticsType;
+import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 新首页轮播图DAO接口
+ * @author ye.qin
+ * @version 2019-03-13
+ */
+@MyBatisDao
+public interface NewPageCenterimageDao extends CrudDao<NewPageCenterimage> {
+
+    void updateSort(@Param("id") String id, @Param("sort") String sort);
+
+    List<cmStatisticsType> getBannerStatistics(@Param("startPvCreateTime") Date startPvCreateTime, @Param("endPvCreateTime")Date endPvCreateTime);
+
+    String findBigSort();
+}

+ 130 - 0
src/main/java/com/caimei/modules/newhome/entity/NewPageCenterimage.java

@@ -0,0 +1,130 @@
+package com.caimei.modules.newhome.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+
+/**
+ * 新首页轮播图Entity
+ * @author ye.qin
+ * @version 2019-03-13
+ */
+public class NewPageCenterimage extends DataEntity<NewPageCenterimage> {
+
+	private static final long serialVersionUID = 1L;
+	private String title;		// 标题
+	private String link;		// 链接
+	private String image;		// 轮播图片
+	private String crmImage;		// 小程序轮播图片
+	private String crmLink;		//小程序端链接
+	private String crmTitle;	//小程序页面title
+	private String sort;		// 排序
+	private String wwwEnabledStatus;		// www端状态 0停用 1启用
+	private String crmEnabledStatus;		// CRM端状态 0停用 1启用
+	private Date startDate;
+	private Date endDate;
+
+	public NewPageCenterimage() {
+		super();
+	}
+
+	public NewPageCenterimage(String id){
+		super(id);
+	}
+
+	public Date getStartDate() {
+		return startDate;
+	}
+
+	public void setStartDate(Date startDate) {
+		this.startDate = startDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	@Length(min=0, max=40, message="标题长度必须介于 0 和 40 之间")
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	@Length(min=0, max=255, message="链接长度必须介于 0 和 255 之间")
+	public String getLink() {
+		return link;
+	}
+
+	public void setLink(String link) {
+		this.link = link;
+	}
+
+	public String getImage() {
+		return image;
+	}
+
+	public void setImage(String image) {
+		this.image = image;
+	}
+
+	@Length(min=0, max=11, message="排序长度必须介于 0 和 11 之间")
+	public String getSort() {
+		return sort;
+	}
+
+	public void setSort(String sort) {
+		this.sort = sort;
+	}
+
+	@Length(min=0, max=1, message="www端状态 0停用 1启用长度必须介于 0 和 1 之间")
+	public String getWwwEnabledStatus() {
+		return wwwEnabledStatus;
+	}
+
+	public void setWwwEnabledStatus(String wwwEnabledStatus) {
+		this.wwwEnabledStatus = wwwEnabledStatus;
+	}
+
+	@Length(min=0, max=1, message="CRM端状态 0停用 1启用长度必须介于 0 和 1 之间")
+	public String getCrmEnabledStatus() {
+		return crmEnabledStatus;
+	}
+
+	public void setCrmEnabledStatus(String crmEnabledStatus) {
+		this.crmEnabledStatus = crmEnabledStatus;
+	}
+
+	public String getCrmImage() {
+		return crmImage;
+	}
+
+	public void setCrmImage(String crmImage) {
+		this.crmImage = crmImage;
+	}
+
+	public String getCrmLink() {
+		return crmLink;
+	}
+
+	public void setCrmLink(String crmLink) {
+		this.crmLink = crmLink;
+	}
+
+	public String getCrmTitle() {
+		return crmTitle;
+	}
+
+	public void setCrmTitle(String crmTitle) {
+		this.crmTitle = crmTitle;
+	}
+}

+ 110 - 0
src/main/java/com/caimei/modules/newhome/service/NewPageCenterimageService.java

@@ -0,0 +1,110 @@
+package com.caimei.modules.newhome.service;
+
+import com.caimei.dfs.image.beens.ImageUploadInfo;
+import com.caimei.modules.common.utils.UploadUtils;
+import com.caimei.modules.newhome.dao.NewPageCenterimageDao;
+import com.caimei.modules.newhome.dao.NewPageHomeimageDao;
+import com.caimei.modules.newhome.entity.NewPageCenterimage;
+import com.caimei.modules.newhome.entity.NewPageHomeimage;
+import com.caimei.modules.sys.utils.UploadImageUtils;
+import com.thinkgem.jeesite.common.config.Global;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.service.CrudService;
+import com.thinkgem.jeesite.common.utils.Encodes;
+import com.thinkgem.jeesite.common.utils.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 新首页轮播图Service
+ *
+ * @author ye.qin
+ * @version 2019-03-13
+ */
+@Service
+@Transactional(readOnly = true)
+public class NewPageCenterimageService extends CrudService<NewPageCenterimageDao, NewPageCenterimage> {
+
+    @Resource
+    private NewPageCenterimageDao newPageCenterimageDao;
+
+
+
+    public NewPageCenterimage get(String id) {
+        return super.get(id);
+    }
+
+    public List<NewPageCenterimage> findList(NewPageCenterimage newPageCenterimage) {
+        return super.findList(newPageCenterimage);
+    }
+
+    public Page<NewPageCenterimage> findPage(Page<NewPageCenterimage> page, NewPageCenterimage newPageCenterimage) {
+        page.setOrderBy("sort");
+        return super.findPage(page, newPageCenterimage);
+    }
+
+    @Transactional(readOnly = false)
+    public void save(NewPageCenterimage newPageCenterimage, HttpServletRequest request) {
+        if (null != newPageCenterimage.getImage() && !"".equals(newPageCenterimage.getImage())) {
+            String img = saveImageToServer(newPageCenterimage.getImage(), request);
+            newPageCenterimage.setImage(img);
+        }
+        if (null != newPageCenterimage.getCrmImage() && !"".equals(newPageCenterimage.getCrmImage())) {
+            String img = saveImageToServer(newPageCenterimage.getCrmImage(), request);
+            newPageCenterimage.setCrmImage(img);
+        }
+        super.save(newPageCenterimage);
+    }
+
+    @Transactional(readOnly = false)
+    public void delete(NewPageCenterimage newPageCenterimage) {
+        super.delete(newPageCenterimage);
+    }
+
+
+    public String saveImageToServer(String imagesHead, HttpServletRequest request) {
+        String photoServer = Global.getConfig("photoServer");//获取文件服务器地址
+        String res = "";
+        ImageUploadInfo saveImageSerivce = new ImageUploadInfo();
+        if (StringUtils.isNotBlank(imagesHead) && !imagesHead.startsWith("http:") && !imagesHead.startsWith("https:")) {
+            imagesHead = Encodes.urlDecode(imagesHead);
+//			String realPath = request.getSession().getServletContext().getRealPath(imagesHead);
+            String realPath = UploadImageUtils.getAbsolutePath(imagesHead);
+            //			realPath=Encodes.urlDecode(realPath);
+            int pointerIndex = realPath.lastIndexOf(".");
+            try {
+                saveImageSerivce = UploadUtils.saveImageSerivce(realPath, pointerIndex, realPath);
+                res = photoServer + saveImageSerivce.getSource();
+            } catch (Exception e) {
+                logger.error("图片上传错误:" + e.toString(), e);
+            }
+        } else {
+            res = imagesHead;
+        }
+        return res;
+    }
+
+
+    @Transactional(readOnly = false)
+    public void updateSorts(String sortNums) {
+        if (sortNums.contains(",")) {
+            String[] sortNum = sortNums.split(",");
+            for (String s : sortNum) {
+                String[] s1 = s.split("_");
+                if (2 == s1.length) {
+                    String id=s1[0];
+                    String sort=s1[1];
+                    newPageCenterimageDao.updateSort(id,sort);
+                }
+            }
+        }
+    }
+
+    public String findBigSort() {
+        return newPageCenterimageDao.findBigSort();
+    }
+}

+ 163 - 0
src/main/java/com/caimei/modules/newhome/web/NewPageCenterimageController.java

@@ -0,0 +1,163 @@
+package com.caimei.modules.newhome.web;
+
+import com.caimei.constants.common.RedisKeyUtil;
+import com.caimei.modules.newhome.dao.NewPageCenterimageDao;
+import com.caimei.modules.newhome.dao.NewPageHomeimageDao;
+import com.caimei.modules.newhome.entity.NewPageCenterimage;
+import com.caimei.modules.newhome.entity.NewPageHomeimage;
+import com.caimei.modules.newhome.entity.cmStatisticsType;
+import com.caimei.modules.newhome.service.NewPageCenterimageService;
+import com.caimei.modules.newhome.service.NewPageHomeimageService;
+import com.caimei.modules.opensearch.GenerateUtils;
+import com.caimei.modules.utils.DateUtil;
+import com.caimei.redis.RedisService;
+import com.caimei.vo.JsonModel;
+import com.google.common.collect.Maps;
+import com.thinkgem.jeesite.common.config.Global;
+import com.thinkgem.jeesite.common.persistence.Page;
+import com.thinkgem.jeesite.common.utils.StringUtils;
+import com.thinkgem.jeesite.common.web.BaseController;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Controller
+@RequestMapping(value = "${adminPath}/newhome/newPageCenterimage")
+public class NewPageCenterimageController extends BaseController {
+
+    @Resource
+    private RedisService redisService;
+    @Resource
+    private NewPageCenterimageService newPageCenterimageService;
+    @Resource
+    private NewPageCenterimageDao newPageCenterimageDao;
+    @Resource
+    private GenerateUtils generateUtils;
+
+
+    @ModelAttribute
+    public NewPageCenterimage get(@RequestParam(required = false) String id) {
+        NewPageCenterimage entity = null;
+        if (StringUtils.isNotBlank(id)) {
+            entity = newPageCenterimageService.get(id);
+        }
+        if (entity == null) {
+            entity = new NewPageCenterimage();
+        }
+        return entity;
+    }
+
+    @RequestMapping(value = {"list", ""})
+    public String list(NewPageCenterimage newPageCenterimage, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<NewPageCenterimage> page = newPageCenterimageService.findPage(new Page<NewPageCenterimage>(request, response), newPageCenterimage);
+        model.addAttribute("page", page);
+        return "modules/newhome/newPageCenterimageList";
+    }
+
+    @RequestMapping(value = "form")
+    public String form(NewPageCenterimage newPageCenterimage, Model model) {
+        String sort = newPageCenterimageService.findBigSort();
+        model.addAttribute("sort", sort);
+        model.addAttribute("newPageCenterimage", newPageCenterimage);
+        return "modules/newhome/newPageCenterimageForm";
+    }
+
+    @RequestMapping(value = "updateSort")
+    @ResponseBody
+    public JsonModel updateSort(String sortNums) {
+        JsonModel jsonMode = JsonModel.newInstance();
+        newPageCenterimageService.updateSorts(sortNums);
+        return jsonMode.success("批量更新排序成功");
+    }
+
+    @RequiresPermissions("newhome:newPageHomeimage:edit")
+    @RequestMapping(value = "save")
+    public String save(NewPageCenterimage newPageCenterimage, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) {
+        if (!beanValidator(model, newPageCenterimage)) {
+            return form(newPageCenterimage, model);
+        }
+        newPageCenterimageService.save(newPageCenterimage, request);
+        cleanRedisCache(null);
+        addMessage(redirectAttributes, "保存居中广告图成功");
+        return "redirect:" + Global.getAdminPath() + "/newhome/newPageCenterimage/?repage";
+    }
+
+    @RequiresPermissions("newhome:newPageHomeimage:edit")
+    @ResponseBody
+    @RequestMapping(value = "updateEnabledStatus")
+    public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            newPageCenterimageService.updateEnabledStatusByIds(enabledStatus, ids);
+            cleanRedisCache(null);
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        //清除首页轮播图缓存
+        redisService.remove("getHomeBanners::www");
+        return map;
+    }
+
+    @RequiresPermissions("newhome:newPageHomeimage:edit")
+    @ResponseBody
+    @RequestMapping(value = "updateCrmEnabledStatusByIds")
+    public Map<String, Object> updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            newPageCenterimageService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids);
+            cleanRedisCache(null);
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        //清除首页轮播图缓存
+        redisService.remove("getHomeBanners::www");
+        return map;
+    }
+
+    @RequiresPermissions("newhome:newPageHomeimage:delete")
+    @RequestMapping(value = "delete")
+    public String delete(NewPageCenterimage newPageCenterimage, RedirectAttributes redirectAttributes) {
+        newPageCenterimageService.delete(newPageCenterimage);
+        addMessage(redirectAttributes, "删除新首页轮播图成功");
+        return "redirect:" + Global.getAdminPath() + "/newhome/newPageCenterimage/?repage";
+    }
+
+    /**
+     * 有数据变动时需要清除缓存
+     */
+    public void cleanRedisCache(String caller) {
+        if (null == caller) {
+            String www = RedisKeyUtil.getNewPageHomeImageKey("WWW");
+            if (redisService.exists(www)) {
+                redisService.remove(www);
+            }
+            String crm = RedisKeyUtil.getNewPageHomeImageKey("CRM");
+            if (redisService.exists(crm)) {
+                redisService.remove(crm);
+            }
+            // 重新生成静态首页
+            generateUtils.generateHome();
+        }
+    }
+
+}

+ 158 - 0
src/main/resources/mappings/modules/newhome/NewPageCenterimageMapper.xml

@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.caimei.modules.newhome.dao.NewPageCenterimageDao">
+
+    <sql id="newPageHomeimageColumns">
+        a.id AS "id",
+		a.title AS "title",
+		a.link AS "link",
+		a.image AS "image",
+		a.crmImage AS "crmImage",
+		a.crmLink AS "crmLink",
+		a.crmTitle AS "crmTitle",
+		a.sort AS "sort",
+		a.wwwEnabledStatus AS "wwwEnabledStatus",
+		a.crmEnabledStatus AS "crmEnabledStatus",
+		a.startDate AS "startDate",
+		a.endDate AS "endDate",
+        a.createDate as "createDate"
+    </sql>
+
+    <select id="get" resultType="NewPageCenterimage">
+        SELECT
+        <include refid="newPageHomeimageColumns"/>
+        FROM new_page_centerimage a
+        WHERE a.id = #{id}
+    </select>
+
+    <select id="findList" resultType="NewPageCenterimage">
+        SELECT
+        <include refid="newPageHomeimageColumns"/>
+        FROM new_page_centerimage a
+        <where>
+            <if test="id != null and id != ''">
+                AND a.id = #{id}
+            </if>
+            <if test="title != null and title != ''">
+                AND a.title LIKE
+                <if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
+                <if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
+                <if test="dbName == 'mysql'">concat('%',#{title},'%')</if>
+            </if>
+            <if test="wwwEnabledStatus != null and wwwEnabledStatus != ''">
+                AND a.wwwEnabledStatus = #{wwwEnabledStatus}
+            </if>
+            <if test="crmEnabledStatus != null and crmEnabledStatus != ''">
+                AND a.crmEnabledStatus = #{crmEnabledStatus}
+            </if>
+        </where>
+        ORDER BY a.sort desc,a.createDate desc
+    </select>
+    <select id="getBannerStatistics" resultType="com.caimei.modules.newhome.entity.cmStatisticsType">
+        SELECT COUNT(statisticsId) as count, ifnull(bannerId, 0) as bannerId FROM cm_statistics_type WHERE typeId = 1
+        <if test="startPvCreateTime != null ">AND clickTime >= #{startPvCreateTime}</if>
+        <if test="endPvCreateTime != null ">AND clickTime <![CDATA[ <= ]]> #{endPvCreateTime}</if>
+        GROUP BY bannerId
+    </select>
+
+    <select id="findAllList" resultType="NewPageCenterimage">
+        SELECT
+        <include refid="newPageHomeimageColumns"/>
+        FROM new_page_centerimage a
+        <where>
+
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="findBigSort" resultType="java.lang.String">
+        SELECT sort
+        FROM new_page_centerimage
+        ORDER BY sort DESC
+        LIMIT 1
+    </select>
+
+    <insert id="insert" parameterType="NewPageCenterimage" keyProperty="id" useGeneratedKeys="true">
+        INSERT INTO new_page_centerimage(
+        title,
+        link,
+        image,
+        crmImage,
+        crmLink,
+        crmTitle,
+        <if test="sort != null and sort != ''">
+            sort,
+        </if>
+        wwwEnabledStatus,
+        crmEnabledStatus,
+        startDate,
+        endDate,
+        createDate
+        ) VALUES (
+        #{title},
+        #{link},
+        #{image},
+        #{crmImage},
+        #{crmLink},
+        #{crmTitle},
+        <if test="sort != null and sort != ''">
+            #{sort},
+        </if>
+        #{wwwEnabledStatus},
+        #{crmEnabledStatus},
+        #{startDate},
+        #{endDate},
+        now()
+        )
+    </insert>
+
+    <update id="update">
+        UPDATE new_page_centerimage
+        SET title            = #{title},
+            link             = #{link},
+            image            = #{image},
+            crmImage         = #{crmImage},
+            crmLink          = #{crmLink},
+            crmTitle         = #{crmTitle},
+            sort             = #{sort},
+            wwwEnabledStatus = #{wwwEnabledStatus},
+            crmEnabledStatus = #{crmEnabledStatus},
+            startDate         = #{startDate},
+            endDate       = #{endDate}
+        WHERE id = #{id}
+    </update>
+
+    <delete id="delete">
+        DELETE
+        FROM new_page_centerimage
+        WHERE id = #{id}
+    </delete>
+
+    <update id="updateEnabledStatusByIds">
+        UPDATE new_page_centerimage a SET a.wwwEnabledStatus = #{param1}
+        WHERE a.id IN
+        <foreach collection="param2" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <update id="updateCrmEnabledStatusByIds">
+        UPDATE new_page_centerimage a SET a.crmEnabledStatus = #{param1}
+        WHERE a.id IN
+        <foreach collection="param2" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <update id="updateSort">
+        update new_page_centerimage
+        set sort=#{sort}
+        where id = #{id}
+    </update>
+</mapper>

+ 142 - 0
src/main/webapp/WEB-INF/views/modules/newhome/newPageCenterimageForm.jsp

@@ -0,0 +1,142 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<html>
+<head>
+	<title>新首页轮播图管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			//$("#name").focus();
+			$("#inputForm").validate({
+				submitHandler: function(form){
+                    var image = $("#image").val();
+                    if(image != undefined && image.trim() != ""){
+                        loading('正在提交,请稍等...');
+                        form.submit();
+                    }else {
+                        alertx("请先选择PC端图!");
+                    }
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+        //过滤转换特殊字符
+        function clearChar(obj) {
+            obj.value = obj.value.replace(",", "");
+            obj.value = obj.value.replace(",", "");
+        };
+	</script>
+</head>
+<body>
+	<ul class="nav nav-tabs">
+		<li><a href="${ctx}/newhome/newPageCenterimage/">新首页居中广告列表</a></li>
+		<li class="active"><a href="${ctx}/newhome/newPageCenterimage/form?id=${newPageCenterimage.id}">新首页居中广告${not empty newPageCenterimage.id?'编辑':'添加'}</a></li>
+	</ul><br/>
+	<form:form id="inputForm" modelAttribute="newPageCenterimage" action="${ctx}/newhome/newPageCenterimage/save" method="post" class="form-horizontal">
+		<form:hidden path="id"/>
+		<sys:message content="${message}"/>
+
+
+
+		<div class="control-group">
+			<label class="control-label"><span class="help-inline"><font color="red">*</font> </span>标题:</label>
+			<div class="controls">
+				<form:input path="title" htmlEscape="false" maxlength="40" class="input-xlarge required" onkeyup="clearChar(this)" />
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label"><span class="required"><font color="red">*</font> </span>PC端图:</label>
+			<div class="controls">
+				<form:hidden id="image" path="image" htmlEscape="false" value="${image}" maxlength="255" class="input-xlarge required"/>
+				<sys:ckfinder input="image" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
+			</div>
+			<div class="controls" style="padding-top: 20px;">
+				<p style="color:#D0D0D0 ;">建议尺寸:1920 * 510 / PX</p>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label"><span class="required"><font color="red">*</font> </span>PC端链接:</label>
+			<div class="controls">
+				<form:input path="link" htmlEscape="false" maxlength="255" class="input-xlarge required url"/>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">小程序端图:</label>
+			<div class="controls">
+				<form:hidden id="crmImage" path="crmImage" htmlEscape="false"  value="${crmImage}" maxlength="255" class="input-xlarge"/>
+				<sys:ckfinder input="crmImage" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
+			</div>
+			<div class="controls" style="padding-top: 20px;">
+				<p style="color:#D0D0D0 ;">建议尺寸:702 * 280 / PX</p>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">小程序端链接:</label>
+			<div class="controls">
+				<form:input path="crmLink" htmlEscape="false" maxlength="255" class="input-xlarge url"/>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label">小程序页面title:</label>
+			<div class="controls">
+				<form:input path="crmTitle" placeholder="最多输入15个汉字" htmlEscape="false" maxlength="15" class="input-xlarge"/>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label"><span class="help-inline"><font color="red">*</font> </span>排序:</label>
+			<div class="controls">
+                <c:if test="${empty newPageCenterimage.id}">
+				    <form:input path="sort" htmlEscape="false" maxlength="9" class="input-xlarge required digits" value="${empty sort?0:sort+1}"/>
+                </c:if>
+                <c:if test="${not empty newPageCenterimage.id}">
+                    <form:input path="sort" htmlEscape="false" maxlength="9" class="input-xlarge required digits" value="${empty newPageCenterimage.sort?0:(newPageCenterimage.sort) }"/>
+                </c:if>
+			</div>
+		</div>
+		<div class="control-group crmstatus" style="" >
+			<label class="control-label">小程序状态:</label>
+			<div class="controls">
+				<form:select path="crmEnabledStatus" class="input-xlarge ">
+					<form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value" htmlEscape="false" />
+				</form:select>
+			</div>
+		</div>
+		<div class="control-group crmstatus" style="" >
+			<label class="control-label">PC端状态:</label>
+			<div class="controls">
+				<form:select path="wwwEnabledStatus" class="input-xlarge ">
+					<form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value" htmlEscape="false" />
+				</form:select>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label"><font color="red">*</font>上架时间:</label>
+			<div class="controls">
+				<input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
+					   value="<fmt:formatDate value="${newPageCenterimage.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
+					   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()"/>
+			</div>
+		</div>
+		<div class="control-group">
+			<label class="control-label"><font color="red">*</font>下架时间:</label>
+			<div class="controls">
+				<input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
+					   value="<fmt:formatDate value="${newPageCenterimage.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
+					   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
+			</div>
+		</div>
+		<div class="form-actions">
+			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>
+			<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+		</div>
+	</form:form>
+</body>
+</html>

+ 205 - 0
src/main/webapp/WEB-INF/views/modules/newhome/newPageCenterimageList.jsp

@@ -0,0 +1,205 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+    <title>新首页居中广告管理</title>
+    <meta name="decorator" content="default"/>
+    <style type="text/css">
+        .table th {
+            text-align: center;
+        }
+
+        .table td {
+            text-align: center;
+        }
+    </style>
+    <script type="text/javascript">
+        $(document).ready(function () {
+
+        });
+
+        var changeSortNumber = [];
+
+        function changeSort(id) {
+            changeSortNumber.push(id);
+            console.log("changeSortNumber------------>" + changeSortNumber);
+        }
+
+        var changeSorts = "";
+
+        //批量保存排序
+        function updateSortIndex() {
+            for (let i = 0; i < changeSortNumber.length; i++) {
+                var id = changeSortNumber[i];
+                var sortNum = $("#sortNum" + id).val();
+                changeSorts += id + '_' + sortNum + ',';
+            }
+            $.post("${ctx}/newhome/newPageCenterimage/updateSort", {'sortNums': changeSorts}, function (result) {
+                $.jBox.tip(result.data, 'info');
+                setTimeout(function () {
+                    $("#searchForm").submit();
+                }, 500);
+            })
+            changeSortNumber = null;
+            changeSorts = null;
+        }
+
+        function page(n, s) {
+            $("#pageNo").val(n);
+            $("#pageSize").val(s);
+            $("#searchForm").submit();
+            return false;
+        }
+
+        //PC端状态修改
+        function updateEnabledStatus(status, ids) {
+            var msg = '确定开启?';
+            if ('0' == status) {
+                msg = '确定停用?';
+            }
+            top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
+                if (v == 'ok') {
+                    $.post("${ctx}/newhome/newPageCenterimage/updateEnabledStatus", {
+                        'enabledStatus': status,
+                        'ids': ids
+                    }, function (data) {
+                        if (true == data.success) {
+                            $.jBox.tip(data.msg, 'info');
+                        } else {
+                            $.jBox.tip(data.msg, 'error');
+                        }
+                        $("#searchForm").submit();
+                    }, "JSON");//这里返回的类型有:json,html,xml,text
+                }
+                return;
+            }, {buttonsFocus: 1, persistent: true});
+        }
+
+        function onlynum(obj) {
+            obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字"以外的字符
+        }
+
+        //CRM端状态修改
+        function updateCrmEnabledStatusByIds(status, ids) {
+            var msg = '确定开启?';
+            if ('0' == status) {
+                msg = '确定停用?';
+            }
+            top.$.jBox.confirm(msg, '系统提示', function (v, h, f) {
+                if (v == 'ok') {
+                    $.post("${ctx}/newhome/newPageCenterimage/updateCrmEnabledStatusByIds", {
+                        'crmEnabledStatus': status,
+                        'ids': ids
+                    }, function (data) {
+                        if (true == data.success) {
+                            $.jBox.tip(data.msg, 'info');
+                        } else {
+                            $.jBox.tip(data.msg, 'error');
+                        }
+                        $("#searchForm").submit();
+                    }, "JSON");//这里返回的类型有:json,html,xml,text
+                }
+                return;
+            }, {buttonsFocus: 1, persistent: true});
+        }
+    </script>
+</head>
+<body>
+<ul class="nav nav-tabs">
+    <li class="active"><a href="${ctx}/newhome/newPageCenterimage/">新首页居中广告列表</a></li>
+    <li><a href="${ctx}/newhome/newPageCenterimage/form">新首页居中广告添加</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="newPageCenterimage" action="${ctx}/newhome/newPageCenterimage/" method="post"
+           class="breadcrumb form-search">
+    <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+    <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+    <div class="ul-form">
+        <label>ID:</label>
+        <form:input path="id" htmlEscape="false" maxlength="11" class="input-mini"/>
+        <label>标题:</label>
+        <form:input path="title" htmlEscape="false" maxlength="40" class="input-small"/>
+
+        <label>小程序端状态:</label>
+        <form:select path="crmEnabledStatus" class="input-small">
+            <form:option value="" label=" "/>
+            <form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value"
+                          htmlEscape="false"/>
+        </form:select>
+        <label>PC端状态:</label>
+        <form:select path="wwwEnabledStatus" class="input-small">
+            <form:option value="" label=" "/>
+            <form:options items="${fns:getDictList('enabled_status')}" itemLabel="label" itemValue="value"
+                          htmlEscape="false"/>
+        </form:select>
+        &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+<%--        <input class="btn btn-primary" type="button" value="一键排序" onclick="updateSortIndex()"--%>
+<%--               style="margin-left: 15px"/>--%>
+        <div class="clearfix"></div>
+    </div>
+</form:form>
+<sys:message content="${message}"/>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+    <thead>
+    <tr>
+        <th>ID</th>
+        <th>标题</th>
+        <th>图片</th>
+        <th>链接</th>
+<%--        <th>排序</th>--%>
+        <th>小程序端状态</th>
+        <th>PC端状态</th>
+        <th>创建时间</th>
+        <th>操作</th>
+    </tr>
+    </thead>
+    <tbody>
+    <c:forEach items="${page.list}" var="newPageCenterimage">
+        <tr>
+            <td>${newPageCenterimage.id}</td>
+            <td>${newPageCenterimage.title}</td>
+            <td><img style="width:120px;height: 80px;" src="${newPageCenterimage.image}"/></td>
+            <td><a href="${newPageCenterimage.link}" target="_blank">${newPageCenterimage.link}</a></td>
+
+<%--            <td>--%>
+<%--                <input id="sortNum${newPageCenterimage.id}" type="text" name="sort" style="width:50px;"--%>
+<%--                       value="${newPageCenterimage.sort}" onkeyup="onlynum(this)"--%>
+<%--                       onchange="changeSort(${newPageCenterimage.id})"/>--%>
+<%--            </td>--%>
+            <td>
+                <c:if test="${newPageCenterimage.crmEnabledStatus eq 1 }">
+                    <a href="javascript:void(0);"
+                       onclick="updateCrmEnabledStatusByIds('0','${newPageCenterimage.id}');">
+                        <img alt="启用" src="/static/images/yes.gif" width="15px" border="none" title="启用">
+                    </a>
+                </c:if>
+                <c:if test="${newPageCenterimage.crmEnabledStatus ne 1 }">
+                    <a href="javascript:void(0)" onclick="updateCrmEnabledStatusByIds('1','${newPageCenterimage.id}');">
+                        <img alt="停用" src="/static/images/no.gif" width="15px" border="none" title="停用">
+                    </a>
+                </c:if>
+            </td>
+            <td>
+                <c:if test="${newPageCenterimage.wwwEnabledStatus eq 1 }">
+                    <a href="javascript:void(0);" onclick="updateEnabledStatus('0','${newPageCenterimage.id}');">
+                        <img alt="启用" src="/static/images/yes.gif" width="15px" border="none" title="启用">
+                    </a>
+                </c:if>
+                <c:if test="${newPageCenterimage.wwwEnabledStatus ne 1 }">
+                    <a href="javascript:void(0)" onclick="updateEnabledStatus('1','${newPageCenterimage.id}');">
+                        <img alt="停用" src="/static/images/no.gif" width="15px" border="none" title="停用">
+                    </a>
+                </c:if>
+            </td>
+            <td><fmt:formatDate value="${newPageCenterimage.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+            <td>
+                <a href="${ctx}/newhome/newPageCenterimage/form?id=${newPageCenterimage.id}">编辑</a>
+                <a href="${ctx}/newhome/newPageCenterimage/delete?id=${newPageCenterimage.id}"
+                   onclick="return confirmx('确认要删除该新首页轮播图吗?', this.href)">删除</a>
+            </td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+<div class="pagination">${page}</div>
+</body>
+</html>