孙永军 1 vuosi sitten
vanhempi
commit
296641f95f

+ 37 - 0
src/main/java/com/smcic/api/hotrank/controller/HotRankController.java

@@ -0,0 +1,37 @@
+package com.smcic.api.hotrank.controller;
+
+
+import com.smcic.api.hotrank.dto.HotRankDTO;
+import com.smcic.api.hotrank.service.impl.HotRankServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author syj
+ * @since 2022-04-27
+ */
+@RestController
+@RequestMapping("/hot-rank")
+public class HotRankController {
+
+    @Autowired
+    private HotRankServiceImpl hotRankService;
+
+    @RequestMapping("today")
+    public List<HotRankDTO> todayRank(@RequestParam(value = "name",required = false,defaultValue = "抖音") String name){
+        return hotRankService.todayRank(name);
+    }
+
+    @RequestMapping("local")
+    public List<HotRankDTO> localRank(){
+        return hotRankService.todayRank("地域热点");
+    }
+}

+ 28 - 0
src/main/java/com/smcic/api/hotrank/dto/HotRankDTO.java

@@ -0,0 +1,28 @@
+package com.smcic.api.hotrank.dto;
+
+public class HotRankDTO {
+    private String content;
+
+    private String rk;
+
+    public HotRankDTO(String content, String rk) {
+        this.content = content;
+        this.rk = rk;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getRk() {
+        return rk;
+    }
+
+    public void setRk(String rk) {
+        this.rk = rk;
+    }
+}

+ 44 - 0
src/main/java/com/smcic/api/hotrank/entity/HotRank.java

@@ -0,0 +1,44 @@
+package com.smcic.api.hotrank.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author syj
+ * @since 2022-04-27
+ */
+@Getter
+@Setter
+@TableName("hot_rank")
+public class HotRank implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String platform;
+
+    private String rankName;
+
+    private String rk;
+
+    private String content;
+
+    private String href;
+
+    private String rsCount;
+
+    private String dt;
+
+
+}

+ 19 - 0
src/main/java/com/smcic/api/hotrank/mapper/HotRankMapper.java

@@ -0,0 +1,19 @@
+package com.smcic.api.hotrank.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.smcic.api.hotrank.entity.HotRank;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author syj
+ * @since 2022-04-27
+ */
+@DS("collect")
+public interface HotRankMapper extends BaseMapper<HotRank> {
+    String getLastDt(@Param("rank") String rank);
+}

+ 16 - 0
src/main/java/com/smcic/api/hotrank/service/IHotRankService.java

@@ -0,0 +1,16 @@
+package com.smcic.api.hotrank.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.smcic.api.hotrank.entity.HotRank;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author syj
+ * @since 2022-04-27
+ */
+public interface IHotRankService extends IService<HotRank> {
+
+}

+ 28 - 0
src/main/java/com/smcic/api/hotrank/service/impl/HotRankServiceImpl.java

@@ -0,0 +1,28 @@
+package com.smcic.api.hotrank.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.smcic.api.hotrank.dto.HotRankDTO;
+import com.smcic.api.hotrank.entity.HotRank;
+import com.smcic.api.hotrank.mapper.HotRankMapper;
+import com.smcic.api.hotrank.service.IHotRankService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author syj
+ * @since 2022-04-27
+ */
+@Service
+public class HotRankServiceImpl extends ServiceImpl<HotRankMapper, HotRank> implements IHotRankService {
+    public List<HotRankDTO> todayRank(String rank){
+        String dt = baseMapper.getLastDt(rank);
+        return lambdaQuery().eq(HotRank::getDt, dt).eq(HotRank::getPlatform, rank).orderByAsc(HotRank::getId).last("limit 50").list()
+                .stream().map(data -> new HotRankDTO(data.getContent(), data.getRk())).collect(Collectors.toList());
+    }
+}

+ 4 - 0
src/main/resources/application.yml

@@ -39,6 +39,10 @@ spring:
           url: jdbc:mysql://rm-2vcyu6uzd1n5m9f756o.mysql.cn-chengdu.rds.aliyuncs.com:3306/tidemedia_cms?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&nullCatalogMeansCurrent=true
           username: sxsdst
           password: xfWzxQ@4dfDv
+        collect:
+          url: jdbc:mysql://rm-2vc3039h858t9ab7sfo.mysql.cn-chengdu.rds.aliyuncs.com:3306/collect?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
+          username: cxzx
+          password: sxtvs53$68HD
 
   jackson:
     time-zone: GMT+8

+ 7 - 0
src/main/resources/com/smcic/HotRankMapper.xml

@@ -0,0 +1,7 @@
+<?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.smcic.api.hotrank.mapper.HotRankMapper">
+    <select id="getLastDt" resultType="java.lang.String">
+        select dt from hot_rank where platform = #{rank} order by id desc limit 1
+    </select>
+</mapper>