map = new HashMap<>();
+ map.put("userid",user1.getUserid());
+ map.put("username",user1.getUsername());
+ map.put("createTime",user1.getCreateTime());
+ //生成jwt令牌
+ String jwt = JwtUtils.generateJwt(map);
+ return Result.success(jwt);
+ }
+ return Result.error("用户名或者密码错误");
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/controller/RecommendationController.java b/src/main/java/org/hlrj/duobao_demo/controller/RecommendationController.java
index b6bd558..1b93612 100644
--- a/src/main/java/org/hlrj/duobao_demo/controller/RecommendationController.java
+++ b/src/main/java/org/hlrj/duobao_demo/controller/RecommendationController.java
@@ -1,6 +1,7 @@
package org.hlrj.duobao_demo.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.asm.Advice;
import org.hlrj.duobao_demo.entity.Recommendation;
@@ -9,13 +10,13 @@ import org.hlrj.duobao_demo.tool.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import java.util.HashMap;
import java.util.List;
+import java.util.Optional;
/**
*
@@ -27,7 +28,7 @@ import java.util.List;
*/
@RestController
@Slf4j//日志记录
-@RequestMapping("/recommendation")
+@RequestMapping("/recommendation/api")
public class RecommendationController {
//记录日志
@@ -37,7 +38,13 @@ public class RecommendationController {
private IRecommendationService recommendationService;
///api/brain/addUserPrivileges
//@RequestMapping(value = "/api/selectRecommendation",method = RequestMethod.POST)
- @PostMapping("/api/selectRecommendation")
+ @Autowired
+ private RedisTemplate redisTemplate;
+ /**
+ * 查询操作
+ * @return
+ */
+ @PostMapping("/selectRecommendation")
public Result selectRecommendation() {
log.info("查询全部的推荐视频");//日志记录
@@ -46,4 +53,78 @@ public class RecommendationController {
return Result.success(recommendationList);
}
+
+ /**
+ * 删除操作
+ * @param id
+ * @return
+ */
+ @PostMapping("/deleteRecommendation/{id}")
+ public Result deleteRecommendation(@PathVariable Integer id) {
+ log.info("根据id删除推荐:{}",id);
+
+ recommendationService.delete(id);
+ return Result.success();
+ }
+
+// /**
+// * 新增操作
+// * @param recommendation
+// * @return
+// */
+// @PostMapping("/addRecommendation")
+// public Result addRecommendation(@RequestBody Recommendation recommendation) {
+// log.info("新增推荐内容:{}",recommendation);
+// //调用service
+// recommendationService.add(recommendation);
+// return Result.success();
+// }
+
+ /**
+ * 根据id查询数据
+ * @param id
+ * @return
+ */
+ @PostMapping("/selectRecommendationById/{id}")
+ public Result selectRecommendationById(@PathVariable Integer id) {
+ log.info("根据id进行查询:{}",id);
+ Recommendation recommendation = recommendationService.selectById(id);
+ return Result.success(recommendation);
+ }
+
+ /**
+ * 更新
+ * @param recommendation
+ * @return
+ */
+ @PostMapping("/updateRecommendation")
+ public Result updateRecommendation(@RequestBody Recommendation recommendation) {
+ log.info("更新员工的信息:{}",recommendation);
+ recommendationService.updateRecommendation(recommendation);
+ return Result.success();
+ }
+
+ /**
+ * 点赞数量加1
+ * @param
+ * @return
+ */
+ @PostMapping("/addLike/{id}")
+ public Result addLike( @PathVariable Integer id){
+ log.info("点赞操作:{}");
+ recommendationService.isLiked(id);
+ return Result.success();
+ }
+
+
+
+ /* @PostMapping("/addLike/{id}")
+ public Result addLike(@RequestParam Integer id) {
+ Recommendation recommendation = new Recommendation();
+ String key= String.valueOf(recommendation.getLikes());
+ key = "like:"+ id;
+ long result = redisTemplate.opsForValue().increment(key);
+ return Result.success(result);
+
+ }*/
}
diff --git a/src/main/java/org/hlrj/duobao_demo/controller/SpecialTopicController.java b/src/main/java/org/hlrj/duobao_demo/controller/SpecialTopicController.java
index 562da3b..5203b63 100644
--- a/src/main/java/org/hlrj/duobao_demo/controller/SpecialTopicController.java
+++ b/src/main/java/org/hlrj/duobao_demo/controller/SpecialTopicController.java
@@ -3,15 +3,13 @@ package org.hlrj.duobao_demo.controller;
import lombok.extern.slf4j.Slf4j;
import org.hlrj.duobao_demo.entity.CuratedVideo;
+import org.hlrj.duobao_demo.entity.Recommendation;
import org.hlrj.duobao_demo.entity.SpecialTopic;
import org.hlrj.duobao_demo.service.ICuratedVideoService;
import org.hlrj.duobao_demo.service.ISpecialTopicService;
import org.hlrj.duobao_demo.tool.Result;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -25,18 +23,66 @@ import java.util.List;
*/
@RestController
@Slf4j
-@RequestMapping("/special-topic")
+@RequestMapping("/special-topic/api")
public class SpecialTopicController {
@Autowired
private ISpecialTopicService specialTopicService;
- @PostMapping("/api/selectSpecialTopic")
+ /**
+ * 查询全部数据
+ * @return
+ */
+ @PostMapping("/selectSpecialTopic")
public Result selectSpecialTopic() {
log.info("查询全部的专题视频");//日志记录
//查询全部数据
List specialTopic=specialTopicService.select();
+
+ return Result.success(specialTopic);
+ }
+
+ /**
+ * 根据id删除专题
+ * @param id
+ * @return
+ */
+ @PostMapping("/deleteSpecialTopic/{id}")
+ public Result deleteSpecialTopic(@PathVariable Integer id) {
+ log.info("根据id删除专题:{}",id);
+
+ specialTopicService.delete(id);
+ return Result.success();
+ }
+ /**
+ * 根据id查询数据
+ * @param id
+ * @return
+ */
+ @PostMapping("/selectSpecialTopicById/{id}")
+ public Result selectSpecialTopicById(@PathVariable Integer id) {
+ log.info("根据id进行查询:{}",id);
+ SpecialTopic specialTopic = specialTopicService.selectById(id);
return Result.success(specialTopic);
}
+// /**
+// * 点赞数量加1
+// * @param id
+// * @return
+// */
+// @PostMapping("/addLike/{id}")
+// public Result addLike(@PathVariable Integer id){
+// log.info("增加点赞操作:{}");
+// SpecialTopic specialTopic = specialTopicService.selectById(id);
+//
+// specialTopicService.addLike(specialTopic);
+// return Result.success();
+// }
+ @PostMapping("/isLikedById/{id}")
+ public Result isLikedById(@PathVariable Integer id) {
+ log.info("点赞操作:{}",id);
+ specialTopicService.isLikedById(id);
+ return Result.success();
+ }
}
diff --git a/src/main/java/org/hlrj/duobao_demo/controller/VideoDataController.java b/src/main/java/org/hlrj/duobao_demo/controller/VideoDataController.java
index d21f0ad..3fb036a 100644
--- a/src/main/java/org/hlrj/duobao_demo/controller/VideoDataController.java
+++ b/src/main/java/org/hlrj/duobao_demo/controller/VideoDataController.java
@@ -8,6 +8,7 @@ import org.hlrj.duobao_demo.service.ISpecialTopicService;
import org.hlrj.duobao_demo.service.IVideoDataService;
import org.hlrj.duobao_demo.tool.Result;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,18 +26,31 @@ import java.util.List;
*/
@RestController
@Slf4j
-@RequestMapping("/video-data")
+@RequestMapping("/video-data/api")
public class VideoDataController {
@Autowired
private IVideoDataService iVideoDataService;
- @PostMapping("/api/selectVideoData")
+ @PostMapping("/selectVideoData")
public Result selectVideoData() {
- log.info("查询全部的z直播广场内容");//日志记录
+ log.info("查询全部的直播广场内容");//日志记录
//查询全部数据
List videoData=iVideoDataService.select();
return Result.success(videoData);
}
+ @PostMapping("/deleteVideoData/{id}")
+ public Result deleteVideoData(@PathVariable Integer id) {
+ log.info("根据id删除直播:{}",id);
+
+ iVideoDataService.delete(id);
+ return Result.success();
+ }
+ @PostMapping("/isBookedById/{id}")
+ public Result isBookedById(@PathVariable Integer id) {
+ log.info("根据id进行预约:{}",id);
+ iVideoDataService.isBooked(id);
+ return Result.success();
+ }
}
diff --git a/src/main/java/org/hlrj/duobao_demo/entity/PageBean.java b/src/main/java/org/hlrj/duobao_demo/entity/PageBean.java
new file mode 100644
index 0000000..ae2437e
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/entity/PageBean.java
@@ -0,0 +1,24 @@
+package org.hlrj.duobao_demo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @program: duobao_demo
+ * @ClassName PageBean
+ * @description: 分页查询的实体类
+ * @author:liuyusong
+ * @create: 2025−04-10 14:37
+ * @Version 1.0
+ **/
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageBean {
+
+ private Long total;//总记录数
+ private List rows;//数据列表
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/entity/Recommendation.java b/src/main/java/org/hlrj/duobao_demo/entity/Recommendation.java
index f05d485..095e047 100644
--- a/src/main/java/org/hlrj/duobao_demo/entity/Recommendation.java
+++ b/src/main/java/org/hlrj/duobao_demo/entity/Recommendation.java
@@ -7,6 +7,7 @@ import java.time.LocalDateTime;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@@ -47,7 +48,7 @@ public class Recommendation implements Serializable {
@ApiModelProperty(value = "点赞数")
private Integer likes;
- @ApiModelProperty(value = "评论数")
+ @ApiModelProperty(value = "观看数")
private Integer comments;
@ApiModelProperty(value = "分享数")
@@ -56,5 +57,10 @@ public class Recommendation implements Serializable {
@ApiModelProperty(value = "来源")
private String source;
+ @ApiModelProperty(value = "头像")
+ private String head;
+
+ @ApiModelProperty(value = "是否点赞")
+ private Integer isLiked;
}
diff --git a/src/main/java/org/hlrj/duobao_demo/entity/SpecialTopic.java b/src/main/java/org/hlrj/duobao_demo/entity/SpecialTopic.java
index bb5fb08..ea853b2 100644
--- a/src/main/java/org/hlrj/duobao_demo/entity/SpecialTopic.java
+++ b/src/main/java/org/hlrj/duobao_demo/entity/SpecialTopic.java
@@ -56,5 +56,12 @@ public class SpecialTopic implements Serializable {
@ApiModelProperty(value = "点赞数")
private Integer likeCount;
+ @ApiModelProperty(value = "俱乐部")
+ private String club;
+ @ApiModelProperty(value = "头像")
+ private String head;
+
+ @ApiModelProperty(value = "是否点赞")
+ private Integer isLiked;
}
diff --git a/src/main/java/org/hlrj/duobao_demo/entity/User.java b/src/main/java/org/hlrj/duobao_demo/entity/User.java
new file mode 100644
index 0000000..6022957
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/entity/User.java
@@ -0,0 +1,45 @@
+package org.hlrj.duobao_demo.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ *
+ *
+ *
+ *
+ * @author liuyusong
+ * @since 2025-04-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("user")
+@ApiModel(value="User对象", description="")
+public class User implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "ID")
+ @TableId(value = "userid", type = IdType.AUTO)
+ private Integer userid;
+
+ @ApiModelProperty(value = "用户名")
+ private String username;
+
+ @ApiModelProperty(value = "密码")
+ private String password;
+
+ @ApiModelProperty(value = "创建时间")
+ private java.util.Date createTime;
+
+
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/entity/VideoData.java b/src/main/java/org/hlrj/duobao_demo/entity/VideoData.java
index 81437bb..de0bae7 100644
--- a/src/main/java/org/hlrj/duobao_demo/entity/VideoData.java
+++ b/src/main/java/org/hlrj/duobao_demo/entity/VideoData.java
@@ -29,19 +29,23 @@ public class VideoData implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
- private Integer id;
+ private Integer id;//视频编号
- private String mainTitle;
+ private String mainTitle;//主题
- private String sectionTitle;
+ private String sectionTitle;//所属专题
- private String coverImg;
+ private String coverImg;//封面图片
- private String author;
+ private String author;//作者
- private LocalDateTime publishTime;
+ private LocalDateTime publishTime;//开始时间
- private String description;
+ private String description;//描述
+
+ private String head;//头像
+
+ private Integer isBooked;//是否预约
}
diff --git a/src/main/java/org/hlrj/duobao_demo/mapper/RecommendationMapper.java b/src/main/java/org/hlrj/duobao_demo/mapper/RecommendationMapper.java
index 47978d1..a97f109 100644
--- a/src/main/java/org/hlrj/duobao_demo/mapper/RecommendationMapper.java
+++ b/src/main/java/org/hlrj/duobao_demo/mapper/RecommendationMapper.java
@@ -1,5 +1,9 @@
package org.hlrj.duobao_demo.mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
import org.hlrj.duobao_demo.entity.Recommendation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -11,6 +15,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author liuyusong
* @since 2025-04-09
*/
+@Mapper
public interface RecommendationMapper extends BaseMapper {
+
+ void updateRecommendation(Recommendation recommendation);
+
+ void addLike(Recommendation recommendation);
+
+ void isLikedById(Integer id);
}
diff --git a/src/main/java/org/hlrj/duobao_demo/mapper/SpecialTopicMapper.java b/src/main/java/org/hlrj/duobao_demo/mapper/SpecialTopicMapper.java
index 997a1ef..c816b37 100644
--- a/src/main/java/org/hlrj/duobao_demo/mapper/SpecialTopicMapper.java
+++ b/src/main/java/org/hlrj/duobao_demo/mapper/SpecialTopicMapper.java
@@ -13,4 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface SpecialTopicMapper extends BaseMapper {
+
+
+ void isLikedById(Integer id);
}
diff --git a/src/main/java/org/hlrj/duobao_demo/mapper/UserMapper.java b/src/main/java/org/hlrj/duobao_demo/mapper/UserMapper.java
new file mode 100644
index 0000000..bb5c242
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/mapper/UserMapper.java
@@ -0,0 +1,17 @@
+package org.hlrj.duobao_demo.mapper;
+
+import org.hlrj.duobao_demo.entity.User;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author liuyusong
+ * @since 2025-04-14
+ */
+public interface UserMapper extends BaseMapper {
+
+ public User getUserByUsernameAndPassword(User user);
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/mapper/VideoDataMapper.java b/src/main/java/org/hlrj/duobao_demo/mapper/VideoDataMapper.java
index 3b43d9c..9e3a8ab 100644
--- a/src/main/java/org/hlrj/duobao_demo/mapper/VideoDataMapper.java
+++ b/src/main/java/org/hlrj/duobao_demo/mapper/VideoDataMapper.java
@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface VideoDataMapper extends BaseMapper {
+ void isBookedById(Integer id);
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/ICuratedVideoService.java b/src/main/java/org/hlrj/duobao_demo/service/ICuratedVideoService.java
index d71c00e..29c11d8 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/ICuratedVideoService.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/ICuratedVideoService.java
@@ -19,4 +19,19 @@ public interface ICuratedVideoService extends IService {
* @return
*/
public List select();
+
+ /**
+ * 根据id删除精选
+ * @param id
+ */
+ public void delete(Integer id);
+
+ /**
+ * 根据id查询数据
+ * @param id
+ * @return
+ */
+ public CuratedVideo selectById(Integer id);
+
+
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/IRecommendationService.java b/src/main/java/org/hlrj/duobao_demo/service/IRecommendationService.java
index c4d1477..f31de04 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/IRecommendationService.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/IRecommendationService.java
@@ -4,6 +4,7 @@ import org.hlrj.duobao_demo.entity.Recommendation;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
+import java.util.Optional;
/**
*
@@ -19,4 +20,32 @@ public interface IRecommendationService extends IService {
* @return
*/
public List select();
+
+ /**
+ * 删除
+ * @param id
+ */
+ public void delete(Integer id);
+
+
+
+ /**
+ * 根据id进行查询
+ * @param id
+ * @return
+ */
+ public Recommendation selectById(Integer id);
+
+ /**
+ * 更新
+ * @param recommendation
+ */
+ public void updateRecommendation(Recommendation recommendation);
+
+
+ /**
+ * 进行点赞操作
+ * @param id
+ */
+ public void isLiked(Integer id);
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/ISpecialTopicService.java b/src/main/java/org/hlrj/duobao_demo/service/ISpecialTopicService.java
index 9823317..52a2bbe 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/ISpecialTopicService.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/ISpecialTopicService.java
@@ -19,4 +19,24 @@ public interface ISpecialTopicService extends IService {
* @return
*/
public List select();
+
+ /**
+ * 根据id删除专题
+ * @param id
+ */
+ public void delete(Integer id);
+
+ /**
+ * 根据id查询数据
+ * @param id
+ * @return
+ */
+ public SpecialTopic selectById(Integer id);
+
+
+ /**
+ * 点赞设置
+ * @param id
+ */
+ public void isLikedById(Integer id);
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/IUserService.java b/src/main/java/org/hlrj/duobao_demo/service/IUserService.java
new file mode 100644
index 0000000..1751012
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/service/IUserService.java
@@ -0,0 +1,21 @@
+package org.hlrj.duobao_demo.service;
+
+import org.hlrj.duobao_demo.entity.User;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author liuyusong
+ * @since 2025-04-14
+ */
+public interface IUserService extends IService {
+ /**
+ * 用户登录
+ * @param user
+ * @return
+ */
+ public User login(User user);
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/IVideoDataService.java b/src/main/java/org/hlrj/duobao_demo/service/IVideoDataService.java
index cebf29c..4057b8a 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/IVideoDataService.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/IVideoDataService.java
@@ -19,4 +19,16 @@ public interface IVideoDataService extends IService {
* @return
*/
public List select();
+
+ /**
+ * 根据id删除直播
+ * @param id
+ */
+ public void delete(Integer id);
+
+ /**
+ * 根据id进行预订
+ * @param id
+ */
+ public void isBooked(Integer id);
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/impl/CuratedVideoServiceImpl.java b/src/main/java/org/hlrj/duobao_demo/service/impl/CuratedVideoServiceImpl.java
index 44f6e8a..a7b85b9 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/impl/CuratedVideoServiceImpl.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/impl/CuratedVideoServiceImpl.java
@@ -30,4 +30,14 @@ public class CuratedVideoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>();
return curatedVideoMapper.selectList(queryWrapper);
}
+
+ @Override
+ public void delete(Integer id) {
+ curatedVideoMapper.deleteById(id);
+ }
+
+ @Override
+ public CuratedVideo selectById(Integer id) {
+ return curatedVideoMapper.selectById(id);
+ }
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/impl/RecommendationServiceImpl.java b/src/main/java/org/hlrj/duobao_demo/service/impl/RecommendationServiceImpl.java
index 09880d7..9988804 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/impl/RecommendationServiceImpl.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/impl/RecommendationServiceImpl.java
@@ -8,8 +8,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.time.LocalDateTime;
import java.util.Collections;
+import java.util.Date;
import java.util.List;
+import java.util.Optional;
/**
*
@@ -28,4 +31,31 @@ public class RecommendationServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>();
return recommendationMapper.selectList(wrapper);
}
+
+ @Override
+ public void delete(Integer id) {
+ recommendationMapper.deleteById(id);
+ }
+
+
+
+ @Override
+ public Recommendation selectById(Integer id) {
+ return recommendationMapper.selectById(id);
+ }
+
+ @Override
+ public void updateRecommendation(Recommendation recommendation) {
+
+ recommendationMapper.updateRecommendation(recommendation);
+ }
+
+ @Override
+ public void isLiked(Integer id) {
+ recommendationMapper.isLikedById(id);
+ }
+
+
+
+
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/impl/SpecialTopicServiceImpl.java b/src/main/java/org/hlrj/duobao_demo/service/impl/SpecialTopicServiceImpl.java
index 2cdc87f..2b6558e 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/impl/SpecialTopicServiceImpl.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/impl/SpecialTopicServiceImpl.java
@@ -28,4 +28,21 @@ public class SpecialTopicServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>();
return specialTopicMapper.selectList(queryWrapper);
}
+
+ @Override
+ public void delete(Integer id) {
+ specialTopicMapper.deleteById(id);
+ }
+
+ @Override
+ public SpecialTopic selectById(Integer id) {
+ return specialTopicMapper.selectById(id);
+ }
+
+ @Override
+ public void isLikedById(Integer id) {
+ specialTopicMapper.isLikedById(id);
+ }
+
+
}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/impl/UserServiceImpl.java b/src/main/java/org/hlrj/duobao_demo/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..a5491ae
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/service/impl/UserServiceImpl.java
@@ -0,0 +1,28 @@
+package org.hlrj.duobao_demo.service.impl;
+
+import org.hlrj.duobao_demo.entity.User;
+import org.hlrj.duobao_demo.mapper.UserMapper;
+import org.hlrj.duobao_demo.service.IUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author liuyusong
+ * @since 2025-04-14
+ */
+@Service
+public class UserServiceImpl extends ServiceImpl implements IUserService {
+
+ @Autowired
+ private UserMapper userMapper;
+
+ @Override
+ public User login(User user) {
+ return userMapper.getUserByUsernameAndPassword(user);
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/service/impl/VideoDataServiceImpl.java b/src/main/java/org/hlrj/duobao_demo/service/impl/VideoDataServiceImpl.java
index 425c4b0..ff18770 100644
--- a/src/main/java/org/hlrj/duobao_demo/service/impl/VideoDataServiceImpl.java
+++ b/src/main/java/org/hlrj/duobao_demo/service/impl/VideoDataServiceImpl.java
@@ -21,6 +21,7 @@ import java.util.List;
*/
@Service
public class VideoDataServiceImpl extends ServiceImpl implements IVideoDataService {
+
@Autowired
private VideoDataMapper videoDataMapper;
@Override
@@ -28,4 +29,14 @@ public class VideoDataServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>();
return videoDataMapper.selectList(queryWrapper);
}
+
+ @Override
+ public void delete(Integer id) {
+ videoDataMapper.deleteById(id);
+ }
+
+ @Override
+ public void isBooked(Integer id) {
+ videoDataMapper.isBookedById(id);
+ }
}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/CorsConfig.java b/src/main/java/org/hlrj/duobao_demo/tool/CorsConfig.java
new file mode 100644
index 0000000..0dd5ccf
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/tool/CorsConfig.java
@@ -0,0 +1,35 @@
+package org.hlrj.duobao_demo.tool;
+
+/**
+ * @program: duobao_demo
+ * @ClassName CorsConfig
+ * @description: 跨域所用到的跨域类
+ * @author:liuyusong
+ * @create: 2025−04-14 19:02
+ * @Version 1.0
+ **/
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+
+@Configuration
+public class CorsConfig {
+
+ // 当前跨域请求最大有效时长。这里默认1天
+ private static final long MAX_AGE = 24 * 60 * 60;
+
+ @Bean
+ public CorsFilter corsFilter() {
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+ corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
+ corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
+ corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
+ corsConfiguration.setMaxAge(MAX_AGE);
+ source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
+ return new CorsFilter(source);
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.java b/src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.java
new file mode 100644
index 0000000..1ffe759
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/tool/DomoFilter.java
@@ -0,0 +1,34 @@
+package org.hlrj.duobao_demo.tool;
+
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import java.io.IOException;
+
+/**
+ * @program: duobao_demo
+ * @ClassName DomoFilter
+ * @description:
+ * @author:liuyusong
+ * @create: 2025−04-14 15:43
+ * @Version 1.0
+ **/
+@WebFilter(urlPatterns="/*")
+public class DomoFilter implements Filter {
+
+ @Override//初始化方法,只调用一次
+ public void init(FilterConfig filterConfig) throws ServletException {
+ System.out.println("init,初始化方法执行了");
+ }
+
+ @Override//拦截到请求之后调用,调用多次
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ filterChain.doFilter(servletRequest, servletResponse);
+
+ }
+
+ @Override//销毁方法,只能调用一次
+ public void destroy() {
+ System.out.println("destroy 销毁方法执行了");
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java b/src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java
new file mode 100644
index 0000000..9404196
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/tool/JwtUtils.java
@@ -0,0 +1,46 @@
+package org.hlrj.duobao_demo.tool;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @program: duobao_demo
+ * @ClassName JwtUtils
+ * @description:
+ * @author:liuyusong
+ * @create: 2025−04-14 14:38
+ * @Version 1.0
+ **/
+
+public class JwtUtils {
+
+ private static String singKey="hongli";//签名密钥
+ private static Long expire = 30*60*1000L;//设置过期时间为半小时
+
+ /**
+ * 生成JWT令牌
+ * @param claims
+ * @return
+ */
+ public static String generateJwt(Map claims){
+ String jwt = Jwts.builder()
+ .addClaims(claims)
+ .signWith(SignatureAlgorithm.HS256,singKey)
+ .setExpiration(new Date(System.currentTimeMillis()+expire))
+ .compact();
+ return jwt;
+ }
+
+ public static Claims parseJwt(String jwt){
+ Claims claims = Jwts.parser()
+ .setSigningKey(singKey)
+ .parseClaimsJws(jwt)
+ .getBody();
+ return claims;
+ }
+}
diff --git a/src/main/java/org/hlrj/duobao_demo/tool/RedisConfig.java b/src/main/java/org/hlrj/duobao_demo/tool/RedisConfig.java
new file mode 100644
index 0000000..3924739
--- /dev/null
+++ b/src/main/java/org/hlrj/duobao_demo/tool/RedisConfig.java
@@ -0,0 +1,58 @@
+package org.hlrj.duobao_demo.tool;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+
+import java.net.UnknownHostException;
+
+/**
+ * @program: duobao_demo
+ * @ClassName RedisConfig
+ * @description:
+ * @author:liuyusong
+ * @create: 2025−04-11 15:46
+ * @Version 1.0
+ **/
+@Configuration
+public class RedisConfig {
+ @Bean
+ @ConditionalOnMissingBean(name = "redisTemplate")
+ public RedisTemplate redisTemplate(
+ RedisConnectionFactory redisConnectionFactory)
+ throws UnknownHostException {
+
+ Jackson2JsonRedisSerializer