浏览代码

新首页改版

zhijiezhao 3 月之前
父节点
当前提交
ed199d3dc4

+ 123 - 2
src/main/java/com/caimei365/manager/controller/caimei/page/WebPageApi.java

@@ -1,7 +1,14 @@
 package com.caimei365.manager.controller.caimei.page;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.caimei365.manager.entity.PaginationVo;
+import com.caimei365.manager.entity.ResponseJson;
+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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
 
 /**
  * 网页管理接口
@@ -10,5 +17,119 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/page")
 public class WebPageApi {
 
+    @Autowired
+    private NewPageZoneService newPageZoneService;
+
+    @GetMapping("/zoneList")
+    public ResponseJson<PaginationVo<NewPageZone>> pageZoneList(@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return newPageZoneService.getZoneList(pageNum, pageSize);
+    }
+
+    @PostMapping("/saveZone")
+    public ResponseJson saveZone(NewPageZone pageZone) {
+        return newPageZoneService.saveZone(pageZone);
+    }
+
+    @GetMapping("/delZone")
+    public ResponseJson delZone(Integer id) {
+        return newPageZoneService.delZone(id);
+    }
+
+    /**
+     * @param id
+     * @param status 0停用 1启用
+     * @param type   0www 1小程序
+     * @return
+     */
+    @GetMapping("/updateEnabledStatus")
+    public ResponseJson updateEnabledStatus(Integer id, Integer status, Integer type) {
+        return newPageZoneService.updateEnabledStatus(id, status, type);
+    }
+
+    @GetMapping("/updateSort")
+    public ResponseJson updateSort(Integer id, Integer sort) {
+        if (null == id) {
+            return ResponseJson.error(-1, "专区id不能为空", null);
+        }
+        if (null == sort) {
+            return ResponseJson.error(-1, "排序值不能为空", null);
+        }
+        return newPageZoneService.updateSort(id, sort);
+    }
+
+    /**
+     * 专区商品列表
+     *
+     * @param id
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/zoneProductList")
+    public ResponseJson<PaginationVo<Product>> pageZoneProductList(Integer id,
+                                                                   @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                   @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return newPageZoneService.getZoneProductList(id, pageNum, pageSize);
+    }
+
+    @GetMapping("/delZoneProduct")
+    public ResponseJson delZoneProduct(Integer id, String ids) {
+        return newPageZoneService.delZoneProduct(id, ids);
+    }
+
+    @GetMapping("/addZoneProduct")
+    public ResponseJson addZoneProduct(Integer id, String ids) {
+        return newPageZoneService.addZoneProduct(id, ids);
+    }
+
+    @GetMapping("/updateProductSort")
+    public ResponseJson updateProductSort(Integer id, Integer productId, Integer sort) {
+        if (null == id) {
+            return ResponseJson.error(-1, "专区id不能为空", null);
+        }
+        if (null == productId) {
+            return ResponseJson.error(-1, "商品id不能为空", null);
+        }
+        if (null == sort) {
+            return ResponseJson.error(-1, "排序值不能为空", null);
+        }
+        return newPageZoneService.updateProductSort(id, productId, sort);
+    }
+
+    /**
+     * 专区轮播图
+     * @param id
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/zoneImageList")
+    public ResponseJson<PaginationVo<NewPageZoneImage>> pageZoneImageList(Integer id,
+                                                                          @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                          @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
+        return newPageZoneService.getZoneImageList(id, pageNum, pageSize);
+    }
+
+    @PostMapping("/saveZoneImage")
+    public ResponseJson saveZoneImage(NewPageZoneImage pageZoneImage) {
+        return newPageZoneService.saveZoneImage(pageZoneImage);
+    }
+
+    @GetMapping("/delZoneImage")
+    public ResponseJson delZoneImage(Integer imageId) {
+        return newPageZoneService.delZoneImage(imageId);
+    }
+
 
+    @GetMapping("/updateImageSort")
+    public ResponseJson updateImageSort(Integer imageId, Integer sort) {
+        if (null == imageId) {
+            return ResponseJson.error(-1, "id不能为空", null);
+        }
+        if (null == sort) {
+            return ResponseJson.error(-1, "排序值不能为空", null);
+        }
+        return newPageZoneService.updateImageSort(imageId, sort);
+    }
 }

+ 47 - 0
src/main/java/com/caimei365/manager/dao/page/NewPageZoneDao.java

@@ -0,0 +1,47 @@
+package com.caimei365.manager.dao.page;
+
+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 org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface NewPageZoneDao {
+
+    List<NewPageZone> getZoneList();
+
+    void saveZone(NewPageZone pageZone);
+
+    void updateZone(NewPageZone pageZone);
+
+    void delZone(Integer id);
+
+    void updateEnabledStatus(@Param("id") Integer id, @Param("status") Integer status, @Param("type") Integer type);
+
+    void updateSort(@Param("id") Integer id, @Param("sort") Integer sort);
+
+    List<Product> getZoneProductList(Integer id);
+
+    void delZoneProduct(@Param("id") Integer id, @Param("ids") String ids);
+
+    void addZoneProduct(@Param("id") Integer id, @Param("ids") String ids);
+
+    void updateProductSort(@Param("id") Integer id, @Param("productId") Integer productId, @Param("sort") Integer sort);
+
+    void delProducts(Integer id);
+
+    void delImages(Integer id);
+
+    List<NewPageZoneImage> getZoneImageList(Integer id);
+
+    void saveZoneImage(NewPageZoneImage pageZoneImage);
+
+    void updateZoneImage(NewPageZoneImage pageZoneImage);
+
+    void delImageById(Integer imageId);
+
+    void updateImageSort(@Param("imageId") Integer imageId, @Param("sort") Integer sort);
+}

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

@@ -0,0 +1,20 @@
+package com.caimei365.manager.entity.caimei.page;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class NewPageZone implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private Integer id;
+    private String floorTitle;
+    private String floorDetail;
+    private Integer sort;
+    // Pc端状态 0停用 1启用
+    private Integer wwwEnabledStatus;
+    // CRM端状态 0停用 1启用
+    private Integer crmEnabledStatus;
+    private String createBy;
+    private String updateBy;
+}

+ 21 - 0
src/main/java/com/caimei365/manager/entity/caimei/page/NewPageZoneImage.java

@@ -0,0 +1,21 @@
+package com.caimei365.manager.entity.caimei.page;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class NewPageZoneImage  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    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;
+}

+ 42 - 0
src/main/java/com/caimei365/manager/service/caimei/page/NewPageZoneService.java

@@ -0,0 +1,42 @@
+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.NewPageZone;
+import com.caimei365.manager.entity.caimei.page.NewPageZoneImage;
+import com.caimei365.manager.entity.caimei.product.Product;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2022/3/23
+ */
+public interface NewPageZoneService {
+
+    ResponseJson<PaginationVo<NewPageZone>> getZoneList(int pageNum, int pageSize);
+
+    ResponseJson saveZone(NewPageZone pageZone);
+
+    ResponseJson delZone(Integer id);
+
+    ResponseJson updateEnabledStatus(Integer id, Integer status, Integer type);
+
+    ResponseJson updateSort(Integer id, Integer sort);
+
+    ResponseJson<PaginationVo<Product>> getZoneProductList(Integer id, int pageNum, int pageSize);
+
+    ResponseJson delZoneProduct(Integer id, String ids);
+
+    ResponseJson addZoneProduct(Integer id, String ids);
+
+    ResponseJson updateProductSort(Integer id, Integer productId, Integer sort);
+
+    ResponseJson<PaginationVo<NewPageZoneImage>> getZoneImageList(Integer id, int pageNum, int pageSize);
+
+    ResponseJson saveZoneImage(NewPageZoneImage pageZoneImage);
+
+    ResponseJson delZoneImage(Integer imageId);
+
+    ResponseJson updateImageSort(Integer imageId, Integer sort);
+}

+ 131 - 0
src/main/java/com/caimei365/manager/service/caimei/page/impl/NewPageZoneServiceImpl.java

@@ -0,0 +1,131 @@
+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.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 org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class NewPageZoneServiceImpl implements NewPageZoneService {
+
+    @Autowired
+    private NewPageZoneDao zoneDao;
+
+
+    @Override
+    public ResponseJson<PaginationVo<NewPageZone>> getZoneList(int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<NewPageZone> zoneList = zoneDao.getZoneList();
+        PaginationVo<NewPageZone> page = new PaginationVo<>(zoneList);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson saveZone(NewPageZone pageZone) {
+        // 添加
+        if (null == pageZone.getId()) {
+            zoneDao.saveZone(pageZone);
+        } else {
+            zoneDao.updateZone(pageZone);
+        }
+        // 修改
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson delZone(Integer id) {
+        zoneDao.delZone(id);
+        zoneDao.delProducts(id);
+        zoneDao.delImages(id);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateEnabledStatus(Integer id, Integer status, Integer type) {
+        zoneDao.updateEnabledStatus(id, status, type);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateSort(Integer id, Integer sort) {
+        zoneDao.updateSort(id, sort);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<Product>> getZoneProductList(Integer id, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<Product> zoneList = zoneDao.getZoneProductList(id);
+        PaginationVo<Product> page = new PaginationVo<>(zoneList);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson delZoneProduct(Integer id, String ids) {
+        zoneDao.delZoneProduct(id, ids);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson addZoneProduct(Integer id, String ids) {
+        zoneDao.addZoneProduct(id, ids);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateProductSort(Integer id, Integer productId, Integer sort) {
+        zoneDao.updateProductSort(id, productId, sort);
+        return ResponseJson.success();
+    }
+
+    @Override
+    public ResponseJson<PaginationVo<NewPageZoneImage>> getZoneImageList(Integer id, int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<NewPageZoneImage> zoneList = zoneDao.getZoneImageList(id);
+        PaginationVo<NewPageZoneImage> page = new PaginationVo<>(zoneList);
+        return ResponseJson.success(page);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson saveZoneImage(NewPageZoneImage pageZoneImage) {
+        // 添加
+        if (null == pageZoneImage.getImageId()) {
+            zoneDao.saveZoneImage(pageZoneImage);
+        } else {
+            zoneDao.updateZoneImage(pageZoneImage);
+        }
+        // 修改
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson delZoneImage(Integer imageId) {
+        zoneDao.delImageById(imageId);
+        return ResponseJson.success();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseJson updateImageSort(Integer imageId, Integer sort) {
+        zoneDao.updateImageSort(imageId, sort);
+        return ResponseJson.success();
+    }
+}

+ 178 - 0
src/main/resources/mapper/page/NewPageZoneDao.xml

@@ -0,0 +1,178 @@
+<?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.caimei365.manager.dao.page.NewPageZoneDao">
+
+    <insert id="saveZone">
+        INSERT INTO new_page_zone(
+        floorTitle,
+        floorDetail,
+        <if test="sort != null and sort != ''">
+            sort,
+        </if>
+        wwwEnabledStatus,
+        crmEnabledStatus,
+        createBy,
+        createDate,
+        delFlag) VALUES (
+        #{floorTitle},
+        #{floorDetail},
+        <if test="sort != null and sort != ''">
+            #{sort},
+        </if>
+        #{wwwEnabledStatus},
+        #{crmEnabledStatus},
+        #{createBy},
+        now(),
+        0)
+    </insert>
+
+    <insert id="addZoneProduct">
+        insert into new_page_zone_product (zoneId,productId)
+        values
+        <foreach collection="ids" item="item" index="index" separator=",">
+            (#{id},#{item})
+        </foreach>
+    </insert>
+
+    <insert id="saveZoneImage">
+        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="updateZone">
+        UPDATE new_page_zone
+        SET floorTitle       = #{floorTitle},
+            floorDetail      = #{floorDetail},
+            sort             = #{sort},
+            wwwEnabledStatus = #{wwwEnabledStatus},
+            crmEnabledStatus = #{crmEnabledStatus},
+            updateBy         = #{updateBy},
+            updateDate       = now()
+        WHERE id = #{id}
+    </update>
+
+    <update id="updateEnabledStatus">
+        UPDATE new_page_zone
+        <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>
+
+    <update id="updateSort">
+        update new_page_zone
+        set sort = #{sort}
+        where id = #{id}
+    </update>
+
+    <update id="updateProductSort">
+        UPDATE new_page_zone_product
+        SET sort = #{sort}
+        WHERE zoneId = #{id}
+          and productId = #{productId}
+    </update>
+
+    <update id="updateZoneImage">
+        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="updateImageSort">
+        update new_page_zone_image
+        set sort=#{sort}
+        where id = #{imageId}
+    </update>
+
+    <delete id="delZone">
+        UPDATE new_page_zone
+        set delflag = 1
+        where id = #{id}
+    </delete>
+
+    <delete id="delZoneProduct">
+        delete
+        from new_page_zone_product
+        where zoneId = #{id}
+          and productId in (#{ids})
+    </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="delImageById">
+        delete
+        from new_page_zone_image
+        where id = #{id}
+    </delete>
+
+
+    <select id="getZoneList" resultType="com.caimei365.manager.entity.caimei.page.NewPageZone">
+        SELECT id,
+               floorTitle,
+               floorDetail,
+               sort,
+               wwwEnabledStatus,
+               crmEnabledStatus,
+               createDate,
+               delFlag
+        FROM new_page_zone
+        where delflag = 0
+    </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
+        WHERE p.productCategory = 1
+          AND npz.zoneId = #{id}
+        GROUP BY p.productID
+        ORDER BY npz.sort ASC
+    </select>
+
+    <select id="getZoneImageList" 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 zoneId = #{id}
+    </select>
+</mapper>