ソースを参照

首页侧边栏数据

chao 3 年 前
コミット
9db71ec265

+ 12 - 0
src/main/java/com/caimei365/commodity/controller/ProductPageApi.java

@@ -94,6 +94,18 @@ public class ProductPageApi {
         return pageService.getHomeInit(source);
     }
 
+    /**
+     * 首页侧边栏数据(小程序)
+     *
+     * @param source 来源 : 1 网站 ; 2 小程序
+     */
+    @ApiOperation("首页侧边栏数据(旧:/home/top/data)")
+    @ApiImplicitParam(required = false, name = "source", value = "来源:1网站,2小程序")
+    @GetMapping("/home/sidebar")
+    public ResponseJson<Map<String, Object>> getHomesideBar(Integer source) {
+        return pageService.getHomesideBar(source);
+    }
+
     /**
      * 二级专题页楼层数据
      *

+ 16 - 0
src/main/java/com/caimei365/commodity/mapper/PageMapper.java

@@ -300,4 +300,20 @@ public interface PageMapper {
      * 查询产品,仪器页面信息
      */
     List<Integer> getPageIdByTypeSort(Integer typeSort);
+    /**
+     * 查询首页置顶直播信息
+     */
+    List<LiveVo> getSidebarLive(Integer source);
+    /**
+     * 查询首页置顶文章信息
+     */
+    List<InfoVo> getSidebarInfo();
+    /**
+     * 查询首页置顶活动
+     */
+    List<PageImageVo> getSidebarPageImage(Integer source);
+    /**
+     * 查询首页直播宣传图
+     */
+    String getLiveAdvertisingImage();
 }

+ 136 - 0
src/main/java/com/caimei365/commodity/model/vo/InfoVo.java

@@ -0,0 +1,136 @@
+package com.caimei365.commodity.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/10/21
+ */
+@Data
+public class InfoVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    /**
+     * 信息分类
+     */
+    private Integer typeId;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 信息标签
+     */
+    private String label;
+
+    /**
+     * 发布人
+     */
+    private String publisher;
+
+    /**
+     * 来源
+     */
+    private String source;
+
+    /**
+     * 关键字
+     */
+    private String keyword;
+
+    /**
+     * 推荐语
+     */
+    private String recommendContent;
+
+    /**
+     * 信息内容
+     */
+    private String infoContent;
+
+    /**
+     * 引导图
+     */
+    private String guidanceImage;
+
+    /**
+     * 商城首页图
+     */
+    private String homePageImage;
+
+    /**
+     * 发布时间
+     */
+    private String pubdate;
+
+    /**
+     * 推荐状态 0停用 1启用
+     */
+    private String recommendStatus;
+
+    /**
+     * 启用/禁用状态
+     */
+    private String enabledStatus;
+
+    /**
+     * 基础点赞
+     */
+    private Integer basePraise;
+
+    /**
+     * 基础浏览量
+     */
+    private Integer basePv;
+
+    /**
+     * 优先级
+     */
+    private Integer priorityIndex;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private String createDate;
+
+    /**
+     * 最后更新人
+     */
+    private String updateBy;
+
+    /**
+     * 最后更新时间
+     */
+    private String updateDate;
+
+    /**
+     * 置顶位
+     */
+    private Integer topPosition;
+    /**
+     * 文章链接
+     */
+    private String link;
+    /**
+     * 链接类型
+     */
+    private Integer linkType;
+    /**
+     * 链接参数
+     */
+    private Map<String, Object> linkParam;
+}

+ 82 - 0
src/main/java/com/caimei365/commodity/model/vo/LiveVo.java

@@ -0,0 +1,82 @@
+package com.caimei365.commodity.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/10/21
+ */
+@Data
+public class LiveVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 直播id
+     */
+    private Integer id;
+
+    /**
+     * 直播标题
+     */
+    private String liveTitle;
+
+    /**
+     * 首页图片
+     */
+    private String homePageImage;
+
+    /**
+     * 小程序内容宣传图
+     */
+    private String advertisingImage;
+
+    /**
+     * 直播链接
+     */
+    private String link;
+
+    /**
+     * 网站状态:0停用,1已启用
+     */
+    private String wwwValidFlag;
+
+    /**
+     * 小程序状态:0停用,1已启用
+     */
+    private String crmValidFlag;
+
+    /**
+     * 首页置顶位
+     */
+    private Integer topPosition;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 首页置顶位
+     */
+    private Integer liveStatus;
+
+    /**
+     * 删除标识:0未删除,1已删除
+     */
+    private String delFlag;
+
+}

+ 126 - 0
src/main/java/com/caimei365/commodity/model/vo/PageImageVo.java

@@ -0,0 +1,126 @@
+package com.caimei365.commodity.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * Description
+ *
+ * @author : Charles
+ * @date : 2021/10/21
+ */
+@Data
+public class PageImageVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private Integer id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 链接
+     */
+    private String link;
+
+    /**
+     * APP链接
+     */
+    private String appLink;
+
+    /**
+     * 图片
+     */
+    private String image;
+
+    /**
+     * 商城首页图
+     */
+    private String homePageImage;
+
+    /**
+     * 小程序图片
+     */
+    private String appletsImage;
+
+    /**
+     * 小程序链接
+     */
+    private String appletsLink;
+
+    /**
+     * 小程序端状态
+     */
+    private String appletsEnabledStatus;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 类型1二级列表 ,2项目详情 ,3讲师轮播,4活动专区 , 5顶层广告, 6首页轮播 ,7小专题
+     */
+    private String type;
+
+    /**
+     * 状态 0停用 1启用
+     */
+    private String enabledStatus;
+
+    /**
+     * CRM端状态 0停用 1启用
+     */
+    private String crmEnabledStatus;
+
+    /**
+     * 活动开始时间
+     */
+    private String beginTime;
+
+    /**
+     * 活动开始时间
+     */
+    private String endTime;
+
+    /**
+     * 活动分类
+     */
+    private Integer actType;
+
+    /**
+     * 创建人
+     */
+    private Integer createBy;
+
+    /**
+     * 创建时间
+     */
+    private String createDate;
+
+    /**
+     * 最后更新人
+     */
+    private Integer updateBy;
+
+    /**
+     * 最后更新时间
+     */
+    private String updateDate;
+
+    /**
+     * 首页置顶位
+     */
+    private Integer topPosition;
+    /**
+     * 链接类型
+     */
+    private Integer linkType;
+    /**
+     * 链接参数
+     */
+    private Map<String, Object> linkParam;
+}

+ 6 - 0
src/main/java/com/caimei365/commodity/service/PageService.java

@@ -47,6 +47,12 @@ public interface PageService {
      */
     ResponseJson<Map<String, Object>> getHomeInit(Integer source);
 
+    /**
+     * 首页侧边栏数据
+     * @param source 来源 : 1 网站 ; 2 小程序
+     */
+    ResponseJson<Map<String, Object>> getHomesideBar(Integer source);
+
     /**
      * 二级专题页楼层数据
      * @param pageId 页面id

+ 45 - 0
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -242,6 +242,51 @@ public class PageServiceImpl implements PageService {
         return ResponseJson.success(map);
     }
 
+    /**
+     * 首页侧边栏数据
+     *
+     * @param source 来源 : 1 网站 ; 2 小程序
+     */
+    @Override
+    public ResponseJson<Map<String, Object>> getHomesideBar(Integer source) {
+        Map<String, Object> map = new HashMap<>(4);
+        //直播导航
+        List<LiveVo> liveList = pageMapper.getSidebarLive(source);
+        //设置直播状态
+        liveList.forEach(live -> {
+            if (null != live.getStartTime() && null != live.getEndTime()) {
+                Date date = new Date();
+                int startResult = date.compareTo(live.getStartTime());
+                int endResult = date.compareTo(live.getEndTime());
+                live.setLiveStatus(startResult < 0 ? 1 : endResult < 0 ? 2 : 3);
+            } else {
+                live.setLiveStatus(1);
+            }
+        });
+        map.put("liveList", liveList);
+        //文章导航
+        List<InfoVo> infoList = pageMapper.getSidebarInfo();
+        infoList.forEach(info -> {
+            info.setLink(domain + "/info/detail-" + info.getId() + "-1.html");
+            info.setLinkType(AppletsLinkUtil.getLinkType(info.getLink()));
+            info.setLinkParam(AppletsLinkUtil.getLinkParam(info.getLinkType(), info.getLink()));
+            info.setCreateDate(info.getCreateDate() == null ? null : info.getCreateDate().split(" ")[0]);
+        });
+        map.put("infoList", infoList);
+        //活动导航
+        List<PageImageVo> cmImageList = pageMapper.getSidebarPageImage(source);
+        cmImageList.forEach(cmImage -> {
+            cmImage.setLinkType(AppletsLinkUtil.getLinkType(cmImage.getLink()));
+            cmImage.setLinkParam(AppletsLinkUtil.getLinkParam(cmImage.getLinkType(), cmImage.getLink()));
+            cmImage.setCreateDate(cmImage.getCreateDate() == null ? null : cmImage.getCreateDate().split(" ")[0]);
+        });
+        map.put("cmImageList", cmImageList);
+        // 直播宣传图
+        String liveAdvertisingImage = pageMapper.getLiveAdvertisingImage();
+        map.put("liveImage", liveAdvertisingImage);
+        return ResponseJson.success(map);
+    }
+
     /**
      * 二级专题页楼层数据
      *

+ 99 - 1
src/main/resources/mapper/PageMapper.xml

@@ -501,7 +501,7 @@
     <select id="getSvipProductAdsImage" resultType="java.lang.String">
         select if(#{source} = 1, pcImage, appletsImage)
         from cm_svip_product_adsimage
-        limit 1;
+        limit 1
     </select>
     <select id="getSvipProductList" resultType="com.caimei365.commodity.model.vo.ProductItemVo">
         select
@@ -557,5 +557,103 @@
     <select id="getPageIdByTypeSort" resultType="java.lang.Integer">
         SELECT id FROM cm_page WHERE enabledStatus = 1 AND typeSort = #{typeSort}
     </select>
+    <select id="getSidebarLive" resultType="com.caimei365.commodity.model.vo.LiveVo">
+        SELECT
+            id,
+            liveTitle,
+            homePageImage,
+            advertisingImage,
+            link,
+            wwwValidFlag,
+            crmValidFlag,
+            topPosition,
+            createTime,
+            startTime,
+            endTime,
+            liveStatus,
+            delFlag
+        FROM
+        new_page_live
+        WHERE
+        topPosition IN (1, 2, 3)
+        AND delFlag = '0'
+        <if test="source == 1">
+            AND wwwValidFlag = '1'
+        </if>
+        <if test="source == 2">
+            AND crmValidFlag = '1'
+        </if>
+        ORDER BY topPosition
+    </select>
+    <select id="getSidebarInfo" resultType="com.caimei365.commodity.model.vo.InfoVo">
+        SELECT
+            id,
+            typeId,
+            title,
+            label,
+            publisher,
+            source,
+            keyword,
+            recommendContent,
+            infoContent,
+            guidanceImage,
+            homePageImage,
+            pubdate,
+            recommendStatus,
+            enabledStatus,
+            basePraise,
+            basePv,
+            priorityIndex,
+            createBy,
+            createDate,
+            updateBy,
+            updateDate,
+            topPosition
+        FROM
+            info
+        WHERE
+            topPosition IN (1, 2, 3)
+          AND enabledStatus = '1'
+        ORDER BY
+            topPosition
+    </select>
+    <select id="getSidebarPageImage" resultType="com.caimei365.commodity.model.vo.PageImageVo">
+        SELECT
+            id,
+            title,
+            link,
+            appLink,
+            image,
+            homePageImage,
+            appletsImage,
+            appletsLink,
+            appletsEnabledStatus,
+            sort,
+            type,
+            enabledStatus,
+            crmEnabledStatus,
+            beginTime,
+            endTime,
+            actType,
+            createBy,
+            createDate,
+            updateBy,
+            updateDate,
+            topPosition
+        FROM
+        cm_page_image
+        WHERE
+        topPosition IN (1, 2, 3)
+        <if test="source == 1">
+            AND enabledstatus = '1'
+        </if>
+        <if test="source == 2">
+            AND appletsEnabledStatus = '1'
+        </if>
+        ORDER BY topPosition
+    </select>
+    <select id="getLiveAdvertisingImage" resultType="java.lang.String">
+        SELECT advertisingImage FROM new_page_live_advertising_image LIMIT 1;
+    </select>
 
 </mapper>