Browse Source

新首页改版

zhijiezhao 1 month ago
parent
commit
b68f266a83

+ 115 - 4
src/main/java/com/caimei365/manager/controller/caimei/page/WebPageApi.java

@@ -2,6 +2,8 @@ package com.caimei365.manager.controller.caimei.page;
 
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.caimei.page.NewPageAdvertisementImage;
+import com.caimei365.manager.entity.caimei.page.NewPageTopAdvertisementImage;
 import com.caimei365.manager.entity.caimei.page.NewPageZone;
 import com.caimei365.manager.entity.caimei.page.NewPageZoneImage;
 import com.caimei365.manager.entity.caimei.product.Product;
@@ -9,6 +11,8 @@ import com.caimei365.manager.service.caimei.page.NewPageZoneService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 
 /**
  * 网页管理接口
@@ -27,7 +31,7 @@ public class WebPageApi {
     }
 
     @PostMapping("/saveZone")
-    public ResponseJson saveZone(NewPageZone pageZone) {
+    public ResponseJson saveZone(@RequestBody NewPageZone pageZone) {
         return newPageZoneService.saveZone(pageZone);
     }
 
@@ -67,10 +71,10 @@ public class WebPageApi {
      * @return
      */
     @GetMapping("/zoneProductList")
-    public ResponseJson<PaginationVo<Product>> pageZoneProductList(Integer id,
+    public ResponseJson<PaginationVo<Product>> pageZoneProductList(Integer id, String shopName, Integer productId,
                                                                    @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                    @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
-        return newPageZoneService.getZoneProductList(id, pageNum, pageSize);
+        return newPageZoneService.getZoneProductList(id, shopName, productId, pageNum, pageSize);
     }
 
     @GetMapping("/delZoneProduct")
@@ -99,6 +103,7 @@ public class WebPageApi {
 
     /**
      * 专区轮播图
+     *
      * @param id
      * @param pageNum
      * @param pageSize
@@ -111,8 +116,13 @@ public class WebPageApi {
         return newPageZoneService.getZoneImageList(id, pageNum, pageSize);
     }
 
+    @GetMapping("/zoneImageForm")
+    public ResponseJson<NewPageZoneImage> zoneImageForm(Integer imageId) {
+        return newPageZoneService.getZoneImageForm(imageId);
+    }
+
     @PostMapping("/saveZoneImage")
-    public ResponseJson saveZoneImage(NewPageZoneImage pageZoneImage) {
+    public ResponseJson saveZoneImage(@RequestBody NewPageZoneImage pageZoneImage) {
         return newPageZoneService.saveZoneImage(pageZoneImage);
     }
 
@@ -121,6 +131,16 @@ public class WebPageApi {
         return newPageZoneService.delZoneImage(imageId);
     }
 
+    /**
+     * @param imageId
+     * @param status  0停用 1启用
+     * @param type    0www 1小程序
+     * @return
+     */
+    @GetMapping("/updateImageStatus")
+    public ResponseJson updateImageStatus(Integer imageId, Integer status, Integer type) {
+        return newPageZoneService.updateImageStatus(imageId, status, type);
+    }
 
     @GetMapping("/updateImageSort")
     public ResponseJson updateImageSort(Integer imageId, Integer sort) {
@@ -132,4 +152,95 @@ public class WebPageApi {
         }
         return newPageZoneService.updateImageSort(imageId, sort);
     }
+
+    /**
+     * 首页商品推荐
+     *
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/recommendList")
+    public ResponseJson<PaginationVo<Product>> recommendList(String shopName, Integer productId,
+                                                             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return newPageZoneService.getRecommendList(shopName, productId, pageNum, pageSize);
+    }
+
+    @GetMapping("/addRecommendProduct")
+    public ResponseJson addRecommendProduct(String ids) {
+        return newPageZoneService.addRecommendProduct(ids);
+    }
+
+    @GetMapping("/recommendDel")
+    public ResponseJson recommendDel(String ids) {
+        return newPageZoneService.recommendDel(ids);
+    }
+
+    @GetMapping("/recommendSort")
+    public ResponseJson recommendSort(Integer productId, Integer sort) {
+        return newPageZoneService.recommendSort(productId, sort);
+    }
+
+    /**
+     * pc 小广告位图
+     *
+     * @return
+     */
+    @GetMapping("/advertisement/list")
+    public ResponseJson<PaginationVo<NewPageAdvertisementImage>> advertisementList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                                   @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return newPageZoneService.advertisementList(pageNum, pageSize);
+    }
+
+    @GetMapping("/advertisement/form")
+    public ResponseJson<NewPageAdvertisementImage> advertisementForm(Integer id) {
+        return newPageZoneService.advertisementForm(id);
+    }
+
+    @PostMapping("/saveAdvertisement")
+    public ResponseJson saveAdvertisement(@RequestBody NewPageAdvertisementImage image) {
+        return newPageZoneService.saveAdvertisement(image);
+    }
+
+    @GetMapping("/advertisement/sort")
+    public ResponseJson advertisementSort(Integer id, Integer sort) {
+        return newPageZoneService.advertisementSort(id, sort);
+    }
+
+    @GetMapping("/advertisementDel")
+    public ResponseJson advertisementDel(Integer id) {
+        return newPageZoneService.advertisementDel(id);
+    }
+
+    /**
+     * pc 专属广告图
+     *
+     * @return
+     */
+    @GetMapping("/topAdvertisement/list")
+    public ResponseJson<PaginationVo<NewPageTopAdvertisementImage>> topAdvertisementList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                                         @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return newPageZoneService.topAdvertisementList(pageNum, pageSize);
+    }
+
+    @GetMapping("/topAdvertisement/form")
+    public ResponseJson<NewPageTopAdvertisementImage> topAdvertisementForm(Integer id) {
+        return newPageZoneService.topAdvertisementForm(id);
+    }
+
+    @PostMapping("/saveTopAdvertisement")
+    public ResponseJson saveTopAdvertisement(@RequestBody NewPageTopAdvertisementImage image) {
+        return newPageZoneService.saveTopAdvertisement(image);
+    }
+
+    @GetMapping("/topAdvertisementDel")
+    public ResponseJson topAdvertisementDel(Integer id) {
+        return newPageZoneService.topAdvertisementDel(id);
+    }
+
+    @GetMapping("/updateTopStatus")
+    public ResponseJson updateTopStatus(Integer id, Integer status, Integer type) {
+        return newPageZoneService.updateTopStatus(id, status, type);
+    }
 }

+ 42 - 3
src/main/java/com/caimei365/manager/dao/page/NewPageZoneDao.java

@@ -1,5 +1,8 @@
 package com.caimei365.manager.dao.page;
 
+import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.caimei.page.NewPageAdvertisementImage;
+import com.caimei365.manager.entity.caimei.page.NewPageTopAdvertisementImage;
 import com.caimei365.manager.entity.caimei.page.NewPageZone;
 import com.caimei365.manager.entity.caimei.page.NewPageZoneImage;
 import com.caimei365.manager.entity.caimei.product.Product;
@@ -23,11 +26,11 @@ public interface NewPageZoneDao {
 
     void updateSort(@Param("id") Integer id, @Param("sort") Integer sort);
 
-    List<Product> getZoneProductList(Integer id);
+    List<Product> getZoneProductList(@Param("id") Integer id, @Param("shopName") String shopName, @Param("productId") Integer productId);
 
-    void delZoneProduct(@Param("id") Integer id, @Param("ids") String ids);
+    void delZoneProduct(@Param("id") Integer id, @Param("ids") List<Integer> ids);
 
-    void addZoneProduct(@Param("id") Integer id, @Param("ids") String ids);
+    void addZoneProduct(@Param("id") Integer id, @Param("ids") List<Integer> ids);
 
     void updateProductSort(@Param("id") Integer id, @Param("productId") Integer productId, @Param("sort") Integer sort);
 
@@ -44,4 +47,40 @@ public interface NewPageZoneDao {
     void delImageById(Integer imageId);
 
     void updateImageSort(@Param("imageId") Integer imageId, @Param("sort") Integer sort);
+
+    void updateImageStatus(@Param("imageId") Integer imageId, @Param("status") Integer status, @Param("type") Integer type);
+
+    NewPageZoneImage getImage(Integer imageId);
+
+    List<Product> getRecommendList(@Param("shopName") String shopName, @Param("productId") Integer productId);
+
+    void addRecommendProduct(List<Integer> list);
+
+    void recommendDel(List<Integer> list);
+
+    void recommendSort(@Param("productId") Integer productId, @Param("sort") Integer sort);
+
+    List<NewPageAdvertisementImage> advertisementList();
+
+    void saveAdvertisement(NewPageAdvertisementImage image);
+
+    void updateAdvertisement(NewPageAdvertisementImage image);
+
+    void advertisementSort(@Param("id") Integer id, @Param("sort") Integer sort);
+
+    void advertisementDel(Integer id);
+
+    List<NewPageTopAdvertisementImage> topAdvertisementList();
+
+    void saveTopAdvertisement(NewPageTopAdvertisementImage image);
+
+    void updateTopAdvertisement(NewPageTopAdvertisementImage image);
+
+    void delTopAdvertisement(Integer id);
+
+    void updateTopStatus(@Param("id") Integer id, @Param("status") Integer status, @Param("type") Integer type);
+
+    NewPageAdvertisementImage getAdvertisementForm(Integer id);
+
+    NewPageTopAdvertisementImage getTopAdvertisementForm(Integer id);
 }

+ 19 - 0
src/main/java/com/caimei365/manager/entity/caimei/page/NewPageAdvertisementImage.java

@@ -0,0 +1,19 @@
+package com.caimei365.manager.entity.caimei.page;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 新版首页轮播图下小广告图
+ */
+@Data
+public class NewPageAdvertisementImage  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private Integer id;
+    private String title;
+    private String link;
+    private String image;
+    private Integer sort;
+    private Integer delflag;
+}

+ 23 - 0
src/main/java/com/caimei365/manager/entity/caimei/page/NewPageTopAdvertisementImage.java

@@ -0,0 +1,23 @@
+package com.caimei365.manager.entity.caimei.page;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 新版首页专属广告图
+ */
+@Data
+public class NewPageTopAdvertisementImage implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private Integer id;
+    private String title;
+    private String crmTitle;
+    private String link;
+    private String crmLink;
+    private String image;
+    private String crmImage;
+    private Integer wwwEnabledStatus;
+    private Integer crmEnabledStatus;
+    private Integer delflag;
+}

+ 4 - 0
src/main/java/com/caimei365/manager/entity/caimei/page/NewPageZone.java

@@ -1,8 +1,10 @@
 package com.caimei365.manager.entity.caimei.page;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 
 @Data
 public class NewPageZone implements Serializable {
@@ -17,4 +19,6 @@ public class NewPageZone implements Serializable {
     private Integer crmEnabledStatus;
     private String createBy;
     private String updateBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createDate;
 }

+ 37 - 1
src/main/java/com/caimei365/manager/service/caimei/page/NewPageZoneService.java

@@ -2,10 +2,14 @@ package com.caimei365.manager.service.caimei.page;
 
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.caimei.page.NewPageAdvertisementImage;
+import com.caimei365.manager.entity.caimei.page.NewPageTopAdvertisementImage;
 import com.caimei365.manager.entity.caimei.page.NewPageZone;
 import com.caimei365.manager.entity.caimei.page.NewPageZoneImage;
 import com.caimei365.manager.entity.caimei.product.Product;
 
+import java.util.List;
+
 /**
  * Description
  *
@@ -24,7 +28,7 @@ public interface NewPageZoneService {
 
     ResponseJson updateSort(Integer id, Integer sort);
 
-    ResponseJson<PaginationVo<Product>> getZoneProductList(Integer id, int pageNum, int pageSize);
+    ResponseJson<PaginationVo<Product>> getZoneProductList(Integer id, String shopName, Integer productId, int pageNum, int pageSize);
 
     ResponseJson delZoneProduct(Integer id, String ids);
 
@@ -39,4 +43,36 @@ public interface NewPageZoneService {
     ResponseJson delZoneImage(Integer imageId);
 
     ResponseJson updateImageSort(Integer imageId, Integer sort);
+
+    ResponseJson updateImageStatus(Integer imageId, Integer status, Integer type);
+
+    ResponseJson<NewPageZoneImage> getZoneImageForm(Integer imageId);
+
+    ResponseJson<PaginationVo<Product>> getRecommendList(String shopName, Integer productId, int pageNum, int pageSize);
+
+    ResponseJson addRecommendProduct(String ids);
+
+    ResponseJson recommendDel(String ids);
+
+    ResponseJson recommendSort(Integer productId, Integer sort);
+
+    ResponseJson<PaginationVo<NewPageAdvertisementImage>> advertisementList(int pageNum, int pageSize);
+
+    ResponseJson saveAdvertisement(NewPageAdvertisementImage image);
+
+    ResponseJson advertisementSort(Integer id, Integer sort);
+
+    ResponseJson advertisementDel(Integer id);
+
+    ResponseJson<PaginationVo<NewPageTopAdvertisementImage>> topAdvertisementList(int pageNum, int pageSize);
+
+    ResponseJson saveTopAdvertisement(NewPageTopAdvertisementImage image);
+
+    ResponseJson topAdvertisementDel(Integer id);
+
+    ResponseJson updateTopStatus(Integer id, Integer status, Integer type);
+
+    ResponseJson<NewPageAdvertisementImage> advertisementForm(Integer id);
+
+    ResponseJson<NewPageTopAdvertisementImage> topAdvertisementForm(Integer id);
 }

+ 161 - 4
src/main/java/com/caimei365/manager/service/caimei/page/impl/NewPageZoneServiceImpl.java

@@ -3,17 +3,22 @@ package com.caimei365.manager.service.caimei.page.impl;
 import com.caimei365.manager.dao.page.NewPageZoneDao;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
+import com.caimei365.manager.entity.caimei.page.NewPageAdvertisementImage;
+import com.caimei365.manager.entity.caimei.page.NewPageTopAdvertisementImage;
 import com.caimei365.manager.entity.caimei.page.NewPageZone;
 import com.caimei365.manager.entity.caimei.page.NewPageZoneImage;
 import com.caimei365.manager.entity.caimei.product.Product;
 import com.caimei365.manager.service.caimei.page.NewPageZoneService;
 import com.github.pagehelper.PageHelper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 
+@Slf4j
 @Service
 public class NewPageZoneServiceImpl implements NewPageZoneService {
 
@@ -66,9 +71,9 @@ public class NewPageZoneServiceImpl implements NewPageZoneService {
     }
 
     @Override
-    public ResponseJson<PaginationVo<Product>> getZoneProductList(Integer id, int pageNum, int pageSize) {
+    public ResponseJson<PaginationVo<Product>> getZoneProductList(Integer id, String shopName, Integer productId, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<Product> zoneList = zoneDao.getZoneProductList(id);
+        List<Product> zoneList = zoneDao.getZoneProductList(id, shopName, productId);
         PaginationVo<Product> page = new PaginationVo<>(zoneList);
         return ResponseJson.success(page);
     }
@@ -76,14 +81,32 @@ public class NewPageZoneServiceImpl implements NewPageZoneService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public ResponseJson delZoneProduct(Integer id, String ids) {
-        zoneDao.delZoneProduct(id, ids);
+        List<Integer> list = new ArrayList<>();
+        if (ids.contains(",")) {
+            String[] split = ids.split(",");
+            for (String str : split) {
+                list.add(Integer.parseInt(str));
+            }
+        } else {
+            list.add(Integer.parseInt(ids));
+        }
+        zoneDao.delZoneProduct(id, list);
         return ResponseJson.success();
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public ResponseJson addZoneProduct(Integer id, String ids) {
-        zoneDao.addZoneProduct(id, ids);
+        List<Integer> list = new ArrayList<>();
+        if (ids.contains(",")) {
+            String[] split = ids.split(",");
+            for (String str : split) {
+                list.add(Integer.parseInt(str));
+            }
+        } else {
+            list.add(Integer.parseInt(ids));
+        }
+        zoneDao.addZoneProduct(id, list);
         return ResponseJson.success();
     }
 
@@ -128,4 +151,138 @@ public class NewPageZoneServiceImpl implements NewPageZoneService {
         zoneDao.updateImageSort(imageId, sort);
         return ResponseJson.success();
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateImageStatus(Integer imageId, Integer status, Integer type) {
+        zoneDao.updateImageStatus(imageId, status, type);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<NewPageZoneImage> getZoneImageForm(Integer imageId) {
+        return ResponseJson.success(zoneDao.getImage(imageId));
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<Product>> getRecommendList(String shopName, Integer productId, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<Product> products = zoneDao.getRecommendList(shopName, productId);
+        PaginationVo<Product> page = new PaginationVo<>(products);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson addRecommendProduct(String ids) {
+        List<Integer> list = new ArrayList<>();
+        if (ids.contains(",")) {
+            String[] split = ids.split(",");
+            for (String str : split) {
+                list.add(Integer.parseInt(str));
+            }
+        } else {
+            list.add(Integer.parseInt(ids));
+        }
+        zoneDao.addRecommendProduct(list);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson recommendDel(String ids) {
+        List<Integer> list = new ArrayList<>();
+        if (ids.contains(",")) {
+            String[] split = ids.split(",");
+            for (String str : split) {
+                list.add(Integer.parseInt(str));
+            }
+        } else {
+            list.add(Integer.parseInt(ids));
+        }
+        zoneDao.recommendDel(list);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson recommendSort(Integer productId, Integer sort) {
+        zoneDao.recommendSort(productId, sort);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<NewPageAdvertisementImage>> advertisementList(int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<NewPageAdvertisementImage> images = zoneDao.advertisementList();
+        PaginationVo<NewPageAdvertisementImage> page = new PaginationVo<>(images);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson saveAdvertisement(NewPageAdvertisementImage image) {
+        if (null == image.getId()) {
+            zoneDao.saveAdvertisement(image);
+        } else {
+            zoneDao.updateAdvertisement(image);
+        }
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson advertisementSort(Integer id, Integer sort) {
+        zoneDao.advertisementSort(id, sort);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson advertisementDel(Integer id) {
+        zoneDao.advertisementDel(id);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<NewPageTopAdvertisementImage>> topAdvertisementList(int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<NewPageTopAdvertisementImage> images = zoneDao.topAdvertisementList();
+        PaginationVo<NewPageTopAdvertisementImage> page = new PaginationVo<>(images);
+        return ResponseJson.success(page);
+    }
+
+    @Override
+    public ResponseJson saveTopAdvertisement(NewPageTopAdvertisementImage image) {
+        if (null == image.getId()) {
+            zoneDao.saveTopAdvertisement(image);
+        } else {
+            zoneDao.updateTopAdvertisement(image);
+        }
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson topAdvertisementDel(Integer id) {
+        zoneDao.delTopAdvertisement(id);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateTopStatus(Integer id, Integer status, Integer type) {
+        zoneDao.updateTopStatus(id, status, type);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<NewPageAdvertisementImage> advertisementForm(Integer id) {
+        return ResponseJson.success(zoneDao.getAdvertisementForm(id));
+    }
+
+    @Override
+    public ResponseJson<NewPageTopAdvertisementImage> topAdvertisementForm(Integer id) {
+        return ResponseJson.success(zoneDao.getTopAdvertisementForm(id));
+    }
 }

+ 198 - 7
src/main/resources/mapper/page/NewPageZoneDao.xml

@@ -46,6 +46,26 @@
                 #{sort})
     </insert>
 
+    <insert id="addRecommendProduct">
+        insert into cm_page_recommend_product (productId)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item})
+        </foreach>
+    </insert>
+
+    <insert id="saveAdvertisement">
+        INSERT INTO new_page_advertisement (title, link, image, sort, delflag)
+        VALUES (#{title}, #{link}, #{image}, #{sort}, 0)
+    </insert>
+
+    <insert id="saveTopAdvertisement">
+        insert into new_page_top_advertisement(title, link, image, crmTitle, crmLink, crmImage, wwwEnabledStatus,
+                                               crmEnabledStatus, delflag)
+        values (#{title}, #{link}, #{image}, #{crmTitle}, #{crmLink}, #{crmImage}, #{wwwEnabledStatus},
+                #{crmEnabledStatus}, 0)
+    </insert>
+
     <update id="updateZone">
         UPDATE new_page_zone
         SET floorTitle       = #{floorTitle},
@@ -61,10 +81,10 @@
     <update id="updateEnabledStatus">
         UPDATE new_page_zone
         <set>
-            <if test="type !=null and type = 0">
+            <if test="type !=null and type == 0">
                 wwwEnabledStatus = #{status},
             </if>
-            <if test="type !=null and type = 1">
+            <if test="type !=null and type == 1">
                 crmEnabledStatus = #{status},
             </if>
         </set>
@@ -86,7 +106,7 @@
 
     <update id="updateZoneImage">
         update new_page_zone_image
-        set image = #{image},
+        set image           = #{image},
             crmImage=#{crmImage},
             title=#{title},
             crmTitle=#{crmTitle},
@@ -104,6 +124,73 @@
         where id = #{imageId}
     </update>
 
+    <update id="updateImageStatus">
+        UPDATE new_page_zone_image
+        <set>
+            <if test="type !=null and type == 0">
+                wwwEnabledStatus = #{status},
+            </if>
+            <if test="type !=null and type == 1">
+                crmEnabledStatus = #{status},
+            </if>
+        </set>
+        where id = #{imageId}
+    </update>
+
+    <update id="recommendSort">
+        update cm_page_recommend_product
+        set sort = #{sort}
+        where productId = #{productId}
+    </update>
+
+    <update id="updateAdvertisement">
+        UPDATE new_page_advertisement
+        SET title = #{title},
+            link  = #{link},
+            image = #{image},
+            sort  = #{sort}
+        WHERE id = #{id}
+    </update>
+
+    <update id="advertisementSort">
+        UPDATE new_page_advertisement
+        SET sort = #{sort}
+        WHERE id = #{id}
+    </update>
+
+    <update id="advertisementDel">
+        UPDATE new_page_advertisement
+        SET delflag = 1
+        WHERE id = #{id}
+    </update>
+
+    <update id="updateTopAdvertisement">
+        update new_page_top_advertisement
+        set title            = #{title},
+            link             = #{link},
+            image            = #{image},
+            crmTitle         = #{crmTitle},
+            crmLink          = #{crmLink},
+            crmImage         = #{crmImage},
+            sort             = #{sort},
+            wwwEnabledStatus = #{wwwEnabledStatus},
+            crmEnabledStatus = #{crmEnabledStatus}
+        where id = #{id}
+    </update>
+
+    <update id="updateTopStatus">
+        UPDATE new_page_top_advertisement
+        <set>
+            <if test="type !=null and type == 0">
+                wwwEnabledStatus = #{status},
+            </if>
+            <if test="type !=null and type == 1">
+                crmEnabledStatus = #{status},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
+
     <delete id="delZone">
         UPDATE new_page_zone
         set delflag = 1
@@ -114,7 +201,10 @@
         delete
         from new_page_zone_product
         where zoneId = #{id}
-          and productId in (#{ids})
+        and productId in
+        <foreach collection="ids" open="(" separator="," close=")" item="id">
+            #{id}
+        </foreach>
     </delete>
 
     <delete id="delProducts">
@@ -135,6 +225,20 @@
         where id = #{id}
     </delete>
 
+    <delete id="recommendDel">
+        delete from cm_page_recommend_product
+        where productId in
+        <foreach collection="list" open="(" separator="," close=")" item="id">
+            #{id}
+        </foreach>
+    </delete>
+
+    <delete id="delTopAdvertisement">
+        update new_page_top_advertisement
+        set delflag = 1
+        where id = #{id}
+    </delete>
+
 
     <select id="getZoneList" resultType="com.caimei365.manager.entity.caimei.page.NewPageZone">
         SELECT id,
@@ -147,15 +251,22 @@
                delFlag
         FROM new_page_zone
         where delflag = 0
+        order by sort
     </select>
 
     <select id="getZoneProductList" resultType="com.caimei365.manager.entity.caimei.product.Product">
         SELECT npz.sort, p.mainImage, p.name, p.productId, s.name AS shopName
         FROM new_page_zone_product npz
-                 LEFT JOIN product p ON npz.productId = p.productID
-                 LEFT JOIN shop s ON p.shopId = s.shopId
+        LEFT JOIN product p ON npz.productId = p.productID
+        LEFT JOIN shop s ON p.shopId = s.shopId
         WHERE p.productCategory = 1
-          AND npz.zoneId = #{id}
+        AND npz.zoneId = #{id}
+        <if test="shopName !=''">
+            AND s.name like concat('%',#{shopName},'%')
+        </if>
+        <if test="productId != null">
+            AND npz.productId = #{productId}
+        </if>
         GROUP BY p.productID
         ORDER BY npz.sort ASC
     </select>
@@ -174,5 +285,85 @@
                sort
         from new_page_zone_image
         where zoneId = #{id}
+        order by sort
+    </select>
+
+    <select id="getImage" resultType="com.caimei365.manager.entity.caimei.page.NewPageZoneImage">
+        select id as imageId,
+               zoneId,
+               image,
+               crmImage,
+               title,
+               crmTitle,
+               link,
+               crmLink,
+               wwwEnabledStatus,
+               crmEnabledStatus,
+               sort
+        from new_page_zone_image
+        where id = #{imageId}
+    </select>
+
+    <select id="getRecommendList" resultType="com.caimei365.manager.entity.caimei.product.Product">
+        select cpp.sort, p.mainImage, p.name, p.productId, s.name as shopName
+        from cm_page_recommend_product cpp
+        left join product p on cpp.productId = p.productID
+        left join shop s on p.shopId = s.shopId
+        where p.productCategory = 1
+        <if test="shopName !=''">
+            AND s.name like concat('%',#{shopName},'%')
+        </if>
+        <if test="productId != null">
+            AND cpp.productId = #{productId}
+        </if>
+        group by p.productID
+        order by cpp.sort asc
+    </select>
+
+    <select id="advertisementList"
+            resultType="com.caimei365.manager.entity.caimei.page.NewPageAdvertisementImage">
+        select id, title, link, image, sort, delflag
+        from new_page_advertisement
+        where delflag = 0
+        order by sort
+    </select>
+
+    <select id="topAdvertisementList"
+            resultType="com.caimei365.manager.entity.caimei.page.NewPageTopAdvertisementImage">
+        select id,
+               title,
+               link,
+               image,
+               crmTitle,
+               crmLink,
+               crmImage,
+               wwwEnabledStatus,
+               crmEnabledStatus,
+               delflag
+        from new_page_top_advertisement
+        where delflag = 0
+    </select>
+
+    <select id="getAdvertisementForm"
+            resultType="com.caimei365.manager.entity.caimei.page.NewPageAdvertisementImage">
+        select id, title, link, image, sort
+        from new_page_advertisement
+        where id = #{id}
+    </select>
+
+    <select id="getTopAdvertisementForm"
+            resultType="com.caimei365.manager.entity.caimei.page.NewPageTopAdvertisementImage">
+        select id,
+               title,
+               link,
+               image,
+               crmTitle,
+               crmLink,
+               crmImage,
+               wwwEnabledStatus,
+               crmEnabledStatus,
+               delflag
+        from new_page_top_advertisement
+        where id = #{id}
     </select>
 </mapper>