Browse Source

首页改版专区轮播图

zhijiezhao 1 month ago
parent
commit
e48fe6192c

+ 190 - 0
caimei.properties

@@ -0,0 +1,190 @@
+#============================#
+#===== Database sttings =====#
+#============================#
+
+#oracle database settings
+#jdbc.type=oracle
+#jdbc.driver=oracle.jdbc.driver.OracleDriver
+#jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
+#jdbc.username=root
+#jdbc.password=123456
+
+#mysql database setting
+jdbc.type=mysql
+jdbc.driver=com.mysql.cj.jdbc.Driver
+jdbc.url=jdbc:mysql://rm-wz928s8btl7kxil44.mysql.rds.aliyuncs.com:3306/caimei?characterEncoding=utf8&useSSL=false&rewriteBatchedStatements=true
+jdbc.username=coder
+jdbc.password=diKtPYZ%wToI&9#L
+
+#mssql database settings
+#jdbc.type=mssql
+#jdbc.driver=net.sourceforge.jtds.jdbc.Driver
+#jdbc.url=jdbc:jtds:sqlserver://localhost:1433/jeesite
+#jdbc.username=sa
+#jdbc.password=sa
+
+#pool settings
+jdbc.pool.init=1
+jdbc.pool.minIdle=3
+jdbc.pool.maxActive=20
+
+#jdbc.testSql=SELECT 'x'
+jdbc.testSql=SELECT 'x' FROM DUAL
+
+#redis settings
+redis.keyPrefix=caimei
+redis.host=172.31.165.23
+redis.port=6379
+redis.pass=123456
+redis.timeout=100000
+#\u6700\u5927\u8FDE\u63A5\u6570
+redis.pool.maxActive=300
+#\u6700\u5927\u7A7A\u95F2\u6570
+redis.pool.maxIdle=100
+redis.pool.minIdle=10
+#\u6700\u5927\u5EFA\u7ACB\u8FDE\u63A5\u7B49\u5F85\u65F6\u95F4
+redis.pool.maxWait=1000
+redis.pool.maxTotal=6000
+
+#============================#
+#===== System settings ======#
+#============================#
+
+#\u4EA7\u54C1\u4FE1\u606F\u8BBE\u7F6E
+productName=\u91C7\u7F8E\u540E\u53F0
+copyrightYear=2014-2021
+version=V6.3.2
+
+#\u6F14\u793A\u6A21\u5F0F: \u4E0D\u80FD\u64CD\u4F5C\u548C\u4FDD\u5B58\u7684\u6A21\u5757\uFF1A sys: area/office/user/role/menu/dict, cms: site/category
+demoMode=false
+
+#\u7BA1\u7406\u57FA\u7840\u8DEF\u5F84, \u9700\u540C\u6B65\u4FEE\u6539\uFF1Aweb.xml
+adminPath=/a
+
+#\u524D\u7AEF\u57FA\u7840\u8DEF\u5F84
+frontPath=/f
+
+#\u7F51\u7AD9URL\u540E\u7F00
+urlSuffix=.html
+
+#\u662F\u5426\u4E0D\u5141\u8BB8\u5237\u65B0\u4E3B\u9875\uFF0C\u4E0D\u5141\u8BB8\u60C5\u51B5\u4E0B\uFF0C\u5237\u65B0\u4E3B\u9875\u4F1A\u5BFC\u81F4\u91CD\u65B0\u767B\u5F55
+notAllowRefreshIndex=false
+
+#\u662F\u5426\u5141\u8BB8\u591A\u8D26\u53F7\u540C\u65F6\u767B\u5F55
+user.multiAccountLogin=true
+
+#\u5206\u9875\u914D\u7F6E
+page.pageSize=30
+
+#\u7855\u6B63\u7EC4\u4EF6\u662F\u5426\u4F7F\u7528\u7F13\u5B58
+supcan.useCache=false
+
+#\u901A\u77E5\u95F4\u9694\u65F6\u95F4\u8BBE\u7F6E, \u5355\u4F4D\uFF1A\u6BEB\u79D2, 30s=30000ms, 60s=60000ms
+oa.notify.remind.interval=60000
+
+#============================#
+#==== Framework settings ====#
+#============================#
+
+#\u4F1A\u8BDD\u8D85\u65F6\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
+session.sessionTimeout=21600000
+#\u4F1A\u8BDD\u6E05\u7406\u95F4\u9694\u65F6\u95F4\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C2m=120000ms\u3002
+session.sessionTimeoutClean=120000
+
+#\u7F13\u5B58\u8BBE\u7F6E
+ehcache.configFile=cache/ehcache-local.xml
+#ehcache.configFile=cache/ehcache-rmi.xml
+
+#\u7D22\u5F15\u9875\u8DEF\u5F84
+web.view.index=/a
+
+#\u89C6\u56FE\u6587\u4EF6\u5B58\u653E\u8DEF\u5F84
+web.view.prefix=/WEB-INF/views/
+web.view.suffix=.jsp
+
+#\u6700\u5927\u6587\u4EF6\u4E0A\u4F20\u9650\u5236\uFF0C\u5355\u4F4D\u5B57\u8282. 30M=10*1024*1024*3(B)=10485760 bytes\uFF0C\u9700\u540C\u6B65\u4FEE\u6539\uFF1Ackfinder.xml
+web.maxUploadSize=504857600
+
+#\u65E5\u5FD7\u62E6\u622A\u8BBE\u7F6E\uFF0C\u6392\u9664\u7684URI\uFF1B\u5305\u542B @RequestMapping\u6CE8\u89E3\u7684value\u3002\uFF08\u5DF2\u4F5C\u5E9F\uFF09
+#web.logInterceptExcludeUri=/, /login, /sys/menu/tree, /sys/menu/treeData, /oa/oaNotify/self/count
+#web.logInterceptIncludeRequestMapping=save, delete, import, updateSort
+
+#\u9759\u6001\u6587\u4EF6\u540E\u7F00
+web.staticFile=.css,.js,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.htm,.html,.crx,.xpi,.exe,.ipa,.apk
+
+#\u5355\u70B9\u767B\u5F55CAS\u8BBE\u7F6E
+cas.server.url=http://127.0.0.1:8180/cas
+cas.project.url=http://127.0.0.1:8080/jeesite
+
+#\u5DE5\u4F5C\u6D41\u8BBE\u7F6E
+activiti.isSynActivitiIndetity=false
+activiti.export.diagram.path=c:/activiti_diagram
+#activiti font (windows font: \u5B8B\u4F53  linux font: simsun)
+activiti.diagram.activityFontName=\u5B8B\u4F53
+activiti.diagram.labelFontName=\u5B8B\u4F53
+#activiti\u5916\u90E8\u8868\u5355\u6839\u5730\u5740\u914D\u7F6E
+activiti.form.server.url=
+
+#\u4E0A\u4F20\u6587\u4EF6\u7EDD\u5BF9\u8DEF\u5F84, \u8DEF\u5F84\u4E2D\u4E0D\u5141\u8BB8\u5305\u542B\u201Cuserfiles\u201D
+userfiles.basedir=/mnt/newdatadrive/nfs_client/
+
+#\u5DE5\u7A0B\u8DEF\u5F84\uFF0C\u5728\u4EE3\u7801\u751F\u6210\u65F6\u83B7\u53D6\u4E0D\u5230\u5DE5\u7A0B\u8DEF\u5F84\u65F6\uFF0C\u53EF\u518D\u6B64\u6307\u5B9A\u7EDD\u5BF9\u8DEF\u5F84\u3002
+#projectPath=D\:\\workspace\\jeesite
+
+#\u56FE\u7247\u670D\u52A1\u5668\u5730\u5740
+photoServer=https\://img.caimei365.com/
+server=https\://admin.caimei365.com/
+admin2Server=https\://admin2.caimei365.com/
+wwwServer=https\://www.caimei365.com/
+bServer=http\://b.caimei365.com/
+
+#CRM\u5730\u5740
+caimei.crm.server=https\://crm.caimei365.com/
+weixin.appId=wxea43a0f9ebce9e66
+
+#\u654F\u611F\u8BCD\u6587\u6863\u4F4D\u7F6E
+keyword.product=mnt/newdatadrive/nfs_client/keywords/keyword.txt
+user.mails=2088892826@qq.com,512431995@qq.com
+#\u7528\u6237\u5546\u54C1\u4EF7\u683C\u8FC7\u5C0F\u90AE\u4EF6\u63D0\u793A
+#user.mails=2088892826@qq.com,512431995@qq.com
+
+#\u6613\u5B9D\u5206\u8D26
+yeepay.appkey=BM12345678902069
+yeepay.secretKey=OH6huQqihk0ZfGzWgR1WcQ==
+yeepay.secretRoot=https://openapi.yeepay.com/yop-center
+yeepay.divideCallback=http://admin.caimei365.com/a/order/newShouldPay/divideCallback
+yeepay.mails=jun.li@caimei365.com,718478952@qq.com,472492267@qq.com
+
+#\u5FAE\u4FE1\u516C\u4F17\u53F7\u529F\u4FE1\u606F
+appId=wx91c4152b60ca91a3
+appSecret=a563dd2c07c9c815a4e697c8b6cb73dc
+token=caimei
+encryptMessage=false
+encodingAesKey=wJWhhXuWAByeBPA8NicwFGraVhjKqWBUm94sOKN3s66
+#\u5FAE\u4FE1\u83B7\u53D6\u6587\u7AE0\u914D\u7F6E
+wx.getToken=https\://api.weixin.qq.com/cgi-bin/token
+wx.getMaterial=https\://api.weixin.qq.com/cgi-bin/material/batchget_material
+wx.getMaterialCount=https\://api.weixin.qq.com/cgi-bin/material/get_materialcount
+
+#\u8FD0\u8D39\u5546\u54C1\u9ED8\u8BA4ID
+freightProductID=999
+
+cm.config=product
+#\u7EBF\u4E0A\u76F4\u63A5\u8BFB\u53D6\u670D\u52A1\u5668\u4F4D\u7F6E\u6587\u4EF6
+export.template=/mnt/newdatadrive/data/custom/manager-export-template
+
+# SPI-server\uFF08CKEditor5\u56FE\u7247\u4E0A\u4F20API\uFF0C\u641C\u7D22\u66F4\u65B0\u7D22\u5F15\uFF09
+caimei.spi=https://spi.caimei365.com
+caimei.core=https://core.caimei365.com
+caimei.manager=https://manager.caimei365.com
+
+#\u963F\u91CC\u4E91oss\u5B58\u50A8
+aliyun.accessKeyId=LTAI5tKMgBnvy7sjmBmtFjit
+aliyun.accessKeySecret=VPFtZvwkfC5OxUDJzCMrq1qx3Zhjj8
+aliyun.bucketName=caimei-oss
+aliyun.endpoint=https://oss-cn-shenzhen.aliyuncs.com
+
+#\u5546\u54C1\u8D44\u6599\u5E93\u6587\u4EF6\u4E34\u65F6\u8DEF\u5F84
+  archive.tempPath=/mnt/newdatadrive/data/runtime/tomcat-instance/manager/tempFile/
+#ffmpeg\u8DEF\u5F84
+ffmpeg.path=/mnt/newdatadrive/apps/ffmpeg/ffmpeg-master/bin/ffmpeg

+ 21 - 0
src/main/java/com/caimei/modules/newhome/dao/NewPageZoneDao.java

@@ -1,6 +1,7 @@
 package com.caimei.modules.newhome.dao;
 package com.caimei.modules.newhome.dao;
 
 
 import com.caimei.modules.newhome.entity.NewPageZone;
 import com.caimei.modules.newhome.entity.NewPageZone;
+import com.caimei.modules.newhome.entity.NewPageZoneImage;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.entity.Product;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
@@ -20,4 +21,24 @@ public interface NewPageZoneDao extends CrudDao<NewPageZone> {
     void addProducts(@Param("split") String[] split, @Param("zoneId") Integer zoneId);
     void addProducts(@Param("split") String[] split, @Param("zoneId") Integer zoneId);
 
 
     void delProduct(@Param("productId") Integer productId, @Param("zoneId") Integer zoneId);
     void delProduct(@Param("productId") Integer productId, @Param("zoneId") Integer zoneId);
+
+    void delProducts(NewPageZone newPageZone);
+
+    void delImages(NewPageZone newPageZone);
+
+    List<NewPageZoneImage> findImageList(NewPageZoneImage image);
+
+    NewPageZoneImage getImage(NewPageZoneImage image);
+
+    void saveImage(NewPageZoneImage image);
+
+    void updateImage(NewPageZoneImage image);
+
+    void deleteImage(NewPageZoneImage image);
+
+    void updateImageCrmEnabledStatusByIds(@Param("crmEnabledStatus") String crmEnabledStatus, @Param("ids") String[] ids);
+
+    void updateImageEnabledStatusByIds(@Param("enabledStatus") String enabledStatus, @Param("ids") String[] ids);
+
+    void updateImageSort(@Param("id") String id, @Param("sort") String sort);
 }
 }

+ 19 - 0
src/main/java/com/caimei/modules/newhome/entity/NewPageZoneImage.java

@@ -0,0 +1,19 @@
+package com.caimei.modules.newhome.entity;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+import lombok.Data;
+
+@Data
+public class NewPageZoneImage extends DataEntity<NewPageZoneImage> {
+    private Integer imageId;
+    private Integer zoneId;
+    private String image;
+    private String crmImage;
+    private String title;
+    private String crmTitle;
+    private String link;
+    private String crmLink;
+    private Integer wwwEnabledStatus;
+    private Integer crmEnabledStatus;
+    private Integer sort;
+}

+ 94 - 0
src/main/java/com/caimei/modules/newhome/service/NewPageZoneService.java

@@ -1,14 +1,22 @@
 package com.caimei.modules.newhome.service;
 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.NewPageZoneDao;
 import com.caimei.modules.newhome.dao.NewPageZoneDao;
 import com.caimei.modules.newhome.entity.NewPageZone;
 import com.caimei.modules.newhome.entity.NewPageZone;
+import com.caimei.modules.newhome.entity.NewPageZoneImage;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.entity.Product;
+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.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
 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.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.List;
 
 
 @Service
 @Service
@@ -42,4 +50,90 @@ public class NewPageZoneService extends CrudService<NewPageZoneDao, NewPageZone>
     public void productDel(Integer productId, Integer zoneId) {
     public void productDel(Integer productId, Integer zoneId) {
         pageZoneDao.delProduct(productId, zoneId);
         pageZoneDao.delProduct(productId, zoneId);
     }
     }
+
+    @Transactional(readOnly = false)
+    public void deleteZone(NewPageZone newPageZone) {
+        pageZoneDao.delete(newPageZone);
+        pageZoneDao.delProducts(newPageZone);
+        pageZoneDao.delImages(newPageZone);
+    }
+
+    public Page<NewPageZoneImage> findImagePage(Page<NewPageZoneImage> newPageZonePage, NewPageZoneImage image) {
+        image.setPage(newPageZonePage);
+        newPageZonePage.setList(pageZoneDao.findImageList(image));
+        return newPageZonePage;
+    }
+
+    public NewPageZoneImage getImage(NewPageZoneImage image) {
+        return pageZoneDao.getImage(image);
+    }
+
+    @Transactional(readOnly = false)
+    public void saveImage(NewPageZoneImage image, HttpServletRequest request) {
+        if (null != image.getImage() && !"".equals(image.getImage())) {
+            String img = saveImageToServer(image.getImage(), request);
+            image.setImage(img);
+        }
+        if (null != image.getCrmImage() && !"".equals(image.getCrmImage())) {
+            String img = saveImageToServer(image.getCrmImage(), request);
+            image.setCrmImage(img);
+        }
+        if (null != image.getImageId()) {
+            pageZoneDao.updateImage(image);
+        } else {
+            pageZoneDao.saveImage(image);
+        }
+    }
+
+    @Transactional(readOnly = false)
+    public void imageDelete(NewPageZoneImage image) {
+        pageZoneDao.deleteImage(image);
+    }
+
+    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 = UploadImageUtils.getAbsolutePath(imagesHead);
+            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 updateImageCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids) {
+        pageZoneDao.updateImageCrmEnabledStatusByIds(crmEnabledStatus, ids);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateImageEnabledStatusByIds(String enabledStatus, String[] ids) {
+        pageZoneDao.updateImageEnabledStatusByIds(enabledStatus, ids);
+    }
+
+    @Transactional(readOnly = false)
+    public void updateImageSorts(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];
+                    pageZoneDao.updateImageSort(id, sort);
+                }
+            }
+        }
+
+    }
 }
 }

+ 114 - 15
src/main/java/com/caimei/modules/newhome/web/NewPageZoneController.java

@@ -1,6 +1,9 @@
 package com.caimei.modules.newhome.web;
 package com.caimei.modules.newhome.web;
 
 
+import com.caimei.constants.common.RedisKeyUtil;
+import com.caimei.modules.newhome.entity.NewPageHomeimage;
 import com.caimei.modules.newhome.entity.NewPageZone;
 import com.caimei.modules.newhome.entity.NewPageZone;
+import com.caimei.modules.newhome.entity.NewPageZoneImage;
 import com.caimei.modules.newhome.service.NewPageZoneService;
 import com.caimei.modules.newhome.service.NewPageZoneService;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.opensearch.GenerateUtils;
 import com.caimei.modules.product.entity.Product;
 import com.caimei.modules.product.entity.Product;
@@ -65,6 +68,95 @@ public class NewPageZoneController extends BaseController {
         return "modules/newhome/newPageZoneList";
         return "modules/newhome/newPageZoneList";
     }
     }
 
 
+    @RequestMapping(value = "imageList")
+    public String imageList(NewPageZoneImage image, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<NewPageZoneImage> page = newPageZoneService.findImagePage(new Page<NewPageZoneImage>(request, response), image);
+        model.addAttribute("zoneImage", image);
+        model.addAttribute("page", page);
+        return "modules/newhome/zoneImageList";
+    }
+
+    @RequestMapping(value = "imageForm")
+    public String form(NewPageZoneImage image, Model model) {
+        if (null != image.getImageId()) {
+            image = newPageZoneService.getImage(image);
+        }
+        if (image == null) {
+            image = new NewPageZoneImage();
+        }
+        model.addAttribute("zoneImage", image);
+        return "modules/newhome/zoneImageForm";
+    }
+
+    @RequestMapping(value = "imageSave")
+    public String save(NewPageZoneImage image, RedirectAttributes redirectAttributes, HttpServletRequest request) {
+        newPageZoneService.saveImage(image, request);
+        cleanRedisCache(null);
+        //清除首页轮播图缓存
+        redisService.remove("getHomeBanners::www");
+        addMessage(redirectAttributes, "保存新首页轮播图成功");
+        return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/imageList?repage";
+    }
+
+    @RequestMapping(value = "imageDelete")
+    public String imageDelete(NewPageZoneImage image, RedirectAttributes redirectAttributes) {
+        newPageZoneService.imageDelete(image);
+        cleanRedisCache();
+        addMessage(redirectAttributes, "删除楼层管理成功");
+        return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/imageList/?repage";
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "updateImageCrmEnabledStatusByIds")
+    public Map<String, Object> updateImageCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            newPageZoneService.updateImageCrmEnabledStatusByIds(crmEnabledStatus, ids);
+            cleanRedisCache();
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        return map;
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "updateImageEnabledStatus")
+    public Map<String, Object> updateImageEnabledStatus(String crmEnabledStatus, String[] ids) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            newPageZoneService.updateImageEnabledStatusByIds(crmEnabledStatus, ids);
+            cleanRedisCache();
+            map.put("success", true);
+            map.put("msg", "修改成功");
+        } catch (Exception e) {
+            logger.debug(e.toString(), e);
+            map.put("success", false);
+            map.put("msg", "修改失败");
+        }
+        return map;
+    }
+
+    @RequestMapping(value = "updateImageSort")
+    @ResponseBody
+    public Map<String, Object> updateImageSort(String sortNums) {
+        Map<String, Object> map = Maps.newLinkedHashMap();
+        try {
+            newPageZoneService.updateImageSorts(sortNums);
+            cleanRedisCache();
+            map.put("success", true);
+            map.put("msg", "更新排序成功");
+            return map;
+        } catch (Exception e) {
+            map.put("success", false);
+            map.put("msg", "更新排序失败");
+            return map;
+        }
+    }
+
     @RequestMapping(value = "productList")
     @RequestMapping(value = "productList")
     public String productList(Integer zoneId, HttpServletRequest request, HttpServletResponse response, Model model) {
     public String productList(Integer zoneId, HttpServletRequest request, HttpServletResponse response, Model model) {
         Page<Product> page = new Page<Product>(request, response);
         Page<Product> page = new Page<Product>(request, response);
@@ -138,20 +230,16 @@ public class NewPageZoneController extends BaseController {
     }
     }
 
 
     @RequestMapping(value = "delete")
     @RequestMapping(value = "delete")
-    public String delete(Integer floor, NewPageZone newPageZone, RedirectAttributes redirectAttributes) {
-        newPageZoneService.delete(newPageZone);
+    public String delete(NewPageZone newPageZone, RedirectAttributes redirectAttributes) {
+        newPageZoneService.deleteZone(newPageZone);
         cleanRedisCache();
         cleanRedisCache();
         addMessage(redirectAttributes, "删除楼层管理成功");
         addMessage(redirectAttributes, "删除楼层管理成功");
-        if (floor != null) {
-            return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/lists";
-        } else {
-            return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/?repage";
-        }
+        return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/?repage";
     }
     }
 
 
     @ResponseBody
     @ResponseBody
     @RequestMapping(value = "updateEnabledStatus")
     @RequestMapping(value = "updateEnabledStatus")
-    public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
+    public Map<String, Object> updateEnabledStatus(String enabledStatus, String[] ids) {
         Map<String, Object> map = Maps.newLinkedHashMap();
         Map<String, Object> map = Maps.newLinkedHashMap();
         try {
         try {
             newPageZoneService.updateEnabledStatusByIds(enabledStatus, ids);
             newPageZoneService.updateEnabledStatusByIds(enabledStatus, ids);
@@ -168,7 +256,7 @@ public class NewPageZoneController extends BaseController {
 
 
     @ResponseBody
     @ResponseBody
     @RequestMapping(value = "updateCrmEnabledStatusByIds")
     @RequestMapping(value = "updateCrmEnabledStatusByIds")
-    public Map<String, Object> updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids, String[] supplierIDs, HttpServletRequest request, HttpServletResponse response) {
+    public Map<String, Object> updateCrmEnabledStatusByIds(String crmEnabledStatus, String[] ids) {
         Map<String, Object> map = Maps.newLinkedHashMap();
         Map<String, Object> map = Maps.newLinkedHashMap();
         try {
         try {
             newPageZoneService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids);
             newPageZoneService.updateCrmEnabledStatusByIds(crmEnabledStatus, ids);
@@ -202,11 +290,6 @@ public class NewPageZoneController extends BaseController {
                     String id = split[0];
                     String id = split[0];
                     String sort = split[1];
                     String sort = split[1];
                     if (isInteger(sort)) {
                     if (isInteger(sort)) {
-                        if (StringUtils.equals("0", sort)) {
-                            map.put("success", false);
-                            map.put("msg", "排序值只能填写大于等于1的整数");
-                            return map;
-                        }
                         newPageZoneService.saveSort(sort, id, zoneId);
                         newPageZoneService.saveSort(sort, id, zoneId);
                     } else {
                     } else {
                         map.put("success", false);
                         map.put("success", false);
@@ -241,7 +324,7 @@ public class NewPageZoneController extends BaseController {
 
 
     @RequestMapping(value = "deleteProduct")
     @RequestMapping(value = "deleteProduct")
     public String productDel(Integer productId, Integer zoneId, RedirectAttributes redirectAttributes) {
     public String productDel(Integer productId, Integer zoneId, RedirectAttributes redirectAttributes) {
-        newPageZoneService.productDel(productId,zoneId);
+        newPageZoneService.productDel(productId, zoneId);
         addMessage(redirectAttributes, "删除成功");
         addMessage(redirectAttributes, "删除成功");
         return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/productList?zoneId=" + zoneId;
         return "redirect:" + Global.getAdminPath() + "/newhome/newPageZone/productList?zoneId=" + zoneId;
     }
     }
@@ -265,4 +348,20 @@ public class NewPageZoneController extends BaseController {
         generateUtils.generateHome();
         generateUtils.generateHome();
 
 
     }
     }
+
+    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();
+        }
+    }
+
 }
 }

+ 2 - 2
src/main/resources/config/prod/caimei.properties

@@ -179,8 +179,8 @@ caimei.core=https://core.caimei365.com
 caimei.manager=https://manager.caimei365.com
 caimei.manager=https://manager.caimei365.com
 
 
 #\u963F\u91CC\u4E91oss\u5B58\u50A8
 #\u963F\u91CC\u4E91oss\u5B58\u50A8
-aliyun.accessKeyId=LTAI5tRM3C1pNDuhcSve3MTf
-aliyun.accessKeySecret=soXAFV0elA4InXvarOUO8ZMB2DhZlP
+aliyun.accessKeyId=LTAI5tKMgBnvy7sjmBmtFjit
+aliyun.accessKeySecret=VPFtZvwkfC5OxUDJzCMrq1qx3Zhjj8
 aliyun.bucketName=caimei-oss
 aliyun.bucketName=caimei-oss
 aliyun.endpoint=https://oss-cn-shenzhen.aliyuncs.com
 aliyun.endpoint=https://oss-cn-shenzhen.aliyuncs.com
 
 

+ 100 - 3
src/main/resources/mappings/modules/newhome/NewPageZoneMapper.xml

@@ -81,6 +81,37 @@
             </otherwise>
             </otherwise>
         </choose>
         </choose>
     </select>
     </select>
+    <select id="findImageList" resultType="com.caimei.modules.newhome.entity.NewPageZoneImage">
+        select id as imageId,
+               zoneId,
+               image,
+               crmImage,
+               title,
+               crmTitle,
+               link,
+               crmLink,
+               wwwEnabledStatus,
+               crmEnabledStatus,
+               sort
+        from new_page_zone_image
+    </select>
+
+    <select id="getImage" resultType="com.caimei.modules.newhome.entity.NewPageZoneImage">
+        select id as imageId,
+               zoneId,
+               image,
+               crmImage,
+               title,
+               crmTitle,
+               link,
+               crmLink,
+               wwwEnabledStatus,
+               crmEnabledStatus,
+               sort
+        from new_page_zone_image
+        where id = #{imageId}
+    </select>
+
 
 
     <insert id="insert" parameterType="NewPageZone" keyProperty="id" useGeneratedKeys="true">
     <insert id="insert" parameterType="NewPageZone" keyProperty="id" useGeneratedKeys="true">
         INSERT INTO new_page_zone(
         INSERT INTO new_page_zone(
@@ -120,6 +151,18 @@
         </foreach>
         </foreach>
     </insert>
     </insert>
 
 
+    <insert id="saveImage">
+        insert into new_page_zone_image(id, zoneId, image, crmImage, title, crmTitle, link, crmLink, wwwEnabledStatus,
+                                        crmEnabledStatus, sort)
+        values (#{imageId}, #{zoneId}, #{image}, #{crmImage}, #{title},
+                #{crmTitle},
+                #{link},
+                #{crmLink},
+                #{wwwEnabledStatus},
+                #{crmEnabledStatus},
+                #{sort})
+    </insert>
+
     <update id="update">
     <update id="update">
         UPDATE new_page_zone
         UPDATE new_page_zone
         SET floorTitle       = #{floorTitle},
         SET floorTitle       = #{floorTitle},
@@ -142,9 +185,27 @@
     </delete>
     </delete>
 
 
     <delete id="delProduct">
     <delete id="delProduct">
-        delete from new_page_zone_product
+        delete
+        from new_page_zone_product
         where productId = #{productId}
         where productId = #{productId}
-        and zoneId = #{zoneId}
+          and zoneId = #{zoneId}
+    </delete>
+
+    <delete id="delProducts">
+        delete
+        from new_page_zone_product
+        where zoneId = #{id}
+    </delete>
+    <delete id="delImages">
+        delete
+        from new_page_zone_image
+        where zoneId = #{id}
+    </delete>
+
+    <delete id="deleteImage">
+        delete
+        from new_page_zone_image
+        where id = #{imageId}
     </delete>
     </delete>
 
 
     <update id="updateEnabledStatusByIds">
     <update id="updateEnabledStatusByIds">
@@ -167,7 +228,43 @@
         UPDATE new_page_zone_product
         UPDATE new_page_zone_product
         SET sort = #{sort}
         SET sort = #{sort}
         WHERE zoneId = #{zoneId}
         WHERE zoneId = #{zoneId}
-        and productId = #{id}
+          and productId = #{id}
+    </update>
+
+    <update id="updateImage">
+        update new_page_zone_image
+        set image           = #{image},
+            crmImage=#{crmImage},
+            title=#{title},
+            crmTitle=#{crmTitle},
+            link=#{link},
+            crmLink=#{crmLink},
+            wwwEnabledStatus=#{wwwEnabledStatus},
+            crmEnabledStatus=#{crmEnabledStatus},
+            sort=#{sort}
+        where id = #{imageId}
+    </update>
+
+    <update id="updateImageCrmEnabledStatusByIds">
+        UPDATE new_page_zone_image a SET a.crmEnabledStatus = #{crmEnabledStatus}
+        WHERE a.id IN
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <update id="updateImageEnabledStatusByIds">
+        UPDATE new_page_zone_image a SET a.wwwEnabledStatus = #{enabledStatus}
+        WHERE a.id IN
+        <foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <update id="updateImageSort">
+        UPDATE new_page_zone_image
+        set sort = #{sort}
+        where id = #{id}
     </update>
     </update>
 
 
 </mapper>
 </mapper>

+ 1 - 1
src/main/webapp/WEB-INF/views/modules/newhome/newPageZoneList.jsp

@@ -177,7 +177,7 @@
             <td>
             <td>
                 <a href="${ctx}/newhome/newPageZone/form?id=${newPageZone.id}">编辑</a>
                 <a href="${ctx}/newhome/newPageZone/form?id=${newPageZone.id}">编辑</a>
                 <a href="${ctx}/newhome/newPageZone/productList?zoneId=${newPageZone.id}">专区商品</a>
                 <a href="${ctx}/newhome/newPageZone/productList?zoneId=${newPageZone.id}">专区商品</a>
-                <a href="${ctx}/newhome/newPageZone/goContentPage?floorId=${newPageZone.id}">专区轮播图</a>
+                <a href="${ctx}/newhome/newPageZone/imageList?zoneId=${newPageZone.id}">专区轮播图</a>
 
 
                 <a href="${ctx}/newhome/newPageZone/delete?id=${newPageZone.id}"
                 <a href="${ctx}/newhome/newPageZone/delete?id=${newPageZone.id}"
                    onclick="return confirmx('确定删除该专区吗?', this.href)">删除</a>
                    onclick="return confirmx('确定删除该专区吗?', this.href)">删除</a>

+ 124 - 0
src/main/webapp/WEB-INF/views/modules/newhome/zoneImageForm.jsp

@@ -0,0 +1,124 @@
+<%@ 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/newPageZone/imageList?imageId=${zoneImage.zoneId}">专区轮播图列表</a></li>
+		<li class="active"><a href="${ctx}/newhome/newPageZone/imageForm?zoneId=${zoneImage.zoneId}">专区轮播图${not empty zoneImage.zoneId?'编辑':'添加'}</a></li>
+	</ul><br/>
+	<form:form id="inputForm" modelAttribute="zoneImage" action="${ctx}/newhome/newPageZone/imageSave" method="post" class="form-horizontal">
+		<form:hidden path="imageId"/>
+		<form:hidden path="zoneId"/>
+		<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 zoneImage.imageId}">
+				    <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 zoneImage.imageId}">
+                    <form:input path="sort" htmlEscape="false" maxlength="9" class="input-xlarge required digits" value="${empty zoneImage.sort?0:(zoneImage.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="form-actions">
+			<input id="btnSubmit" class="btn btn-primary" type="submit" value="保 存"/>&nbsp;
+			<input id="btnCancel" class="btn" type="button" value="返 回" onclick="history.go(-1)"/>
+		</div>
+	</form:form>
+</body>
+</html>

+ 203 - 0
src/main/webapp/WEB-INF/views/modules/newhome/zoneImageList.jsp

@@ -0,0 +1,203 @@
+<%@ 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/newPageZone/updateImageSort", {'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/newPageZone/updateImageEnabledStatus", {
+                        '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/newPageZone/updateImageCrmEnabledStatusByIds", {
+                        '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/newPageZone/imageList?zoneId=${zoneImage.zoneId}">专区轮播图列表</a></li>
+    <li><a href="${ctx}/newhome/newPageZone/imageForm?zoneId=${zoneImage.zoneId}">专区轮播图添加</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="zoneImage" action="${ctx}/newhome/zoneImage/" 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="imageId" 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="zoneImage">
+        <tr>
+            <td>${zoneImage.imageId}</td>
+            <td>${zoneImage.title}</td>
+            <td><img style="width:120px;height: 80px;" src="${zoneImage.image}"/></td>
+            <td><a href="${zoneImage.link}" target="_blank">${zoneImage.link}</a></td>
+
+            <td>
+                <input id="sortNum${zoneImage.id}" type="text" name="sort" style="width:50px;"
+                       value="${zoneImage.sort}" onkeyup="onlynum(this)"
+                       onchange="changeSort(${zoneImage.id})"/>
+            </td>
+            <td>
+                <c:if test="${zoneImage.crmEnabledStatus eq 1 }">
+                    <a href="javascript:void(0);" onclick="updateCrmEnabledStatusByIds('0','${zoneImage.imageId}');">
+                        <img alt="启用" src="/static/images/yes.gif" width="15px" border="none" title="启用">
+                    </a>
+                </c:if>
+                <c:if test="${zoneImage.crmEnabledStatus ne 1 }">
+                    <a href="javascript:void(0)" onclick="updateCrmEnabledStatusByIds('1','${zoneImage.imageId}');">
+                        <img alt="停用" src="/static/images/no.gif" width="15px" border="none" title="停用">
+                    </a>
+                </c:if>
+            </td>
+            <td>
+                <c:if test="${zoneImage.wwwEnabledStatus eq 1 }">
+                    <a href="javascript:void(0);" onclick="updateEnabledStatus('0','${zoneImage.imageId}');">
+                        <img alt="启用" src="/static/images/yes.gif" width="15px" border="none" title="启用">
+                    </a>
+                </c:if>
+                <c:if test="${zoneImage.wwwEnabledStatus ne 1 }">
+                    <a href="javascript:void(0)" onclick="updateEnabledStatus('1','${zoneImage.imageId}');">
+                        <img alt="停用" src="/static/images/no.gif" width="15px" border="none" title="停用">
+                    </a>
+                </c:if>
+            </td>
+            <td><fmt:formatDate value="${zoneImage.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
+            <td>
+                <a href="${ctx}/newhome/newPageZone/imageForm?imageId=${zoneImage.imageId}">编辑</a>
+                <a href="${ctx}/newhome/newPageZone/imageDelete?imageId=${zoneImage.imageId}"
+                   onclick="return confirmx('确认要删除该新首页轮播图吗?', this.href)">删除</a>
+            </td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+<div class="pagination">${page}</div>
+</body>
+</html>

+ 3 - 3
src/main/webapp/WEB-INF/views/modules/newhome/zoneProductList.jsp

@@ -84,15 +84,15 @@
             $.post("${ctx}/newhome/newPageZone/batchSaveSort?sortList=" + items + "&zoneId=" + zoneId, function (data) {
             $.post("${ctx}/newhome/newPageZone/batchSaveSort?sortList=" + items + "&zoneId=" + zoneId, function (data) {
                 if (true == data.success) {
                 if (true == data.success) {
                     $.jBox.tip(data.msg, 'info');
                     $.jBox.tip(data.msg, 'info');
-                    setInterval(g, 1000);
+                    setInterval(g(zoneId), 1000);
                 } else {
                 } else {
                     $.jBox.tip(data.msg, 'error');
                     $.jBox.tip(data.msg, 'error');
                 }
                 }
             }, "JSON");//这里返回的类型有:json,html,xml,text
             }, "JSON");//这里返回的类型有:json,html,xml,text
         }
         }
 
 
-        function g() {
-            window.location.href = "${ctx}/newhome/newPageZone/productList";//刷新页面
+        function g(zoneId) {
+            window.location.href = "${ctx}/newhome/newPageZone/productList?zoneId="+zoneId;//刷新页面
         }
         }
 
 
         //修改排序值
         //修改排序值