├── .DS_Store
├── src
├── .DS_Store
├── test
│ ├── .DS_Store
│ └── java
│ │ └── com
│ │ └── xiaobaitiao
│ │ └── springbootinit
│ │ ├── MainApplicationTests.java
│ │ ├── manager
│ │ └── CosManagerTest.java
│ │ ├── mapper
│ │ ├── PostMapperTest.java
│ │ └── PostFavourMapperTest.java
│ │ ├── service
│ │ ├── PostThumbServiceTest.java
│ │ ├── PostServiceTest.java
│ │ ├── UserServiceTest.java
│ │ └── PostFavourServiceTest.java
│ │ └── utils
│ │ └── EasyExcelTest.java
└── main
│ ├── resources
│ ├── test_excel.xlsx
│ ├── banner.txt
│ ├── application-test.yml
│ ├── templates
│ │ ├── model
│ │ │ ├── TemplateAddRequest.java.ftl
│ │ │ ├── TemplateEditRequest.java.ftl
│ │ │ ├── TemplateUpdateRequest.java.ftl
│ │ │ └── TemplateQueryRequest.java.ftl
│ │ └── TemplateService.java.ftl
│ ├── mapper
│ │ ├── CommodityTypeMapper.xml
│ │ ├── PostThumbMapper.xml
│ │ ├── CommodityScoreMapper.xml
│ │ ├── NoticeMapper.xml
│ │ ├── UserAiMessageMapper.xml
│ │ ├── BarrageMapper.xml
│ │ ├── UserCommodityFavoritesMapper.xml
│ │ ├── CommentMapper.xml
│ │ ├── PostFavourMapper.xml
│ │ ├── PrivateMessageMapper.xml
│ │ ├── CommodityOrderMapper.xml
│ │ └── PostMapper.xml
│ ├── application-prod.yml
│ └── META-INF
│ │ └── additional-spring-configuration-metadata.json
│ └── java
│ └── com
│ └── xiaobaitiao
│ └── springbootinit
│ ├── wxmp
│ ├── WxMpConstant.java
│ └── handler
│ │ ├── EventHandler.java
│ │ ├── MessageHandler.java
│ │ └── SubscribeHandler.java
│ ├── constant
│ ├── FileConstant.java
│ ├── QuestionConstant.java
│ ├── CommonConstant.java
│ └── UserConstant.java
│ ├── model
│ ├── dto
│ │ ├── commodityOrder
│ │ │ ├── PayCommodityOrderRequest.java
│ │ │ ├── CommodityOrderEditRequest.java
│ │ │ ├── CommodityOrderUpdateRequest.java
│ │ │ ├── CommodityOrderAddRequest.java
│ │ │ └── CommodityOrderQueryRequest.java
│ │ ├── file
│ │ │ └── UploadFileRequest.java
│ │ ├── postthumb
│ │ │ └── PostThumbAddRequest.java
│ │ ├── postfavour
│ │ │ ├── PostFavourAddRequest.java
│ │ │ └── PostFavourQueryRequest.java
│ │ ├── user
│ │ │ ├── UserLoginRequest.java
│ │ │ ├── UserRegisterRequest.java
│ │ │ ├── UserUpdateMyRequest.java
│ │ │ ├── UserAddRequest.java
│ │ │ ├── UserUpdateRequest.java
│ │ │ └── UserQueryRequest.java
│ │ ├── comment
│ │ │ ├── CommentEditRequest.java
│ │ │ ├── CommentAddRequest.java
│ │ │ ├── CommentUpdateRequest.java
│ │ │ └── CommentQueryRequest.java
│ │ ├── commodityType
│ │ │ ├── CommodityTypeUpdateRequest.java
│ │ │ ├── CommodityTypeQueryRequest.java
│ │ │ ├── CommodityTypeAddRequest.java
│ │ │ └── CommodityTypeEditRequest.java
│ │ ├── post
│ │ │ ├── PostAddRequest.java
│ │ │ ├── PostEditRequest.java
│ │ │ ├── PostUpdateRequest.java
│ │ │ └── PostQueryRequest.java
│ │ ├── userAiMessage
│ │ │ ├── UserAiMessageAddRequest.java
│ │ │ ├── UserAiMessageEditRequest.java
│ │ │ ├── UserAiMessageUpdateRequest.java
│ │ │ └── UserAiMessageQueryRequest.java
│ │ ├── commodityScore
│ │ │ ├── CommodityScoreUpdateRequest.java
│ │ │ ├── CommodityScoreQueryRequest.java
│ │ │ ├── CommodityScoreAddRequest.java
│ │ │ └── CommodityScoreEditRequest.java
│ │ ├── barrage
│ │ │ ├── BarrageUpdateRequest.java
│ │ │ ├── BarrageAddRequest.java
│ │ │ ├── BarrageEditRequest.java
│ │ │ └── BarrageQueryRequest.java
│ │ ├── notice
│ │ │ ├── NoticeAddRequest.java
│ │ │ ├── NoticeEditRequest.java
│ │ │ ├── NoticeUpdateRequest.java
│ │ │ └── NoticeQueryRequest.java
│ │ ├── commodity
│ │ │ ├── BuyCommodityRequest.java
│ │ │ ├── CommodityAddRequest.java
│ │ │ ├── CommodityEditRequest.java
│ │ │ ├── CommodityUpdateRequest.java
│ │ │ └── CommodityQueryRequest.java
│ │ ├── userCommodityFavorites
│ │ │ ├── UserCommodityFavoritesUpdateRequest.java
│ │ │ ├── UserCommodityFavoritesQueryRequest.java
│ │ │ ├── UserCommodityFavoritesAddRequest.java
│ │ │ └── UserCommodityFavoritesEditRequest.java
│ │ └── privateMessage
│ │ │ ├── PrivateMessageAddRequest.java
│ │ │ ├── PrivateMessageEditRequest.java
│ │ │ ├── PrivateMessageUpdateRequest.java
│ │ │ └── PrivateMessageQueryRequest.java
│ ├── vo
│ │ ├── MyCommentVO.java
│ │ ├── LoginUserVO.java
│ │ └── UserVO.java
│ ├── entity
│ │ ├── PostThumb.java
│ │ ├── PostFavour.java
│ │ ├── CommodityType.java
│ │ ├── Comment.java
│ │ ├── Barrage.java
│ │ ├── Notice.java
│ │ ├── UserAiMessage.java
│ │ ├── CommodityScore.java
│ │ ├── UserCommodityFavorites.java
│ │ ├── CommodityOrder.java
│ │ ├── PrivateMessage.java
│ │ └── Post.java
│ └── enums
│ │ ├── FileUploadBizEnum.java
│ │ └── UserRoleEnum.java
│ ├── mapper
│ ├── PostThumbMapper.java
│ ├── NoticeMapper.java
│ ├── CommentMapper.java
│ ├── BarrageMapper.java
│ ├── UserMapper.java
│ ├── UserAiMessageMapper.java
│ ├── CommodityOrderMapper.java
│ ├── CommodityTypeMapper.java
│ ├── PrivateMessageMapper.java
│ ├── CommodityMapper.java
│ ├── UserCommodityFavoritesMapper.java
│ ├── PostMapper.java
│ ├── CommodityScoreMapper.java
│ └── PostFavourMapper.java
│ ├── common
│ ├── DeleteRequest.java
│ ├── PageRequest.java
│ ├── ErrorCode.java
│ ├── JwtProperties.java
│ ├── BaseResponse.java
│ └── ResultUtils.java
│ ├── manager
│ ├── constant
│ │ ├── SparkMessageRole.java
│ │ └── SparkApiVersion.java
│ ├── model
│ │ ├── response
│ │ │ ├── SparkResponseUsage.java
│ │ │ ├── SparkResponse.java
│ │ │ ├── SparkResponsePayload.java
│ │ │ ├── SparkResponseChoices.java
│ │ │ ├── SparkResponseHeader.java
│ │ │ ├── SparkResponseFunctionCall.java
│ │ │ └── SparkTextUsage.java
│ │ ├── request
│ │ │ ├── SparkRequestParameter.java
│ │ │ ├── SparkRequestMessage.java
│ │ │ ├── function
│ │ │ │ ├── SparkRequestFunctions.java
│ │ │ │ ├── SparkRequestFunctionProperty.java
│ │ │ │ ├── SparkRequestFunctionMessage.java
│ │ │ │ └── SparkRequestFunctionParameters.java
│ │ │ ├── SparkRequestHeader.java
│ │ │ ├── SparkRequestPayload.java
│ │ │ └── SparkRequest.java
│ │ └── SparkSyncChatResponse.java
│ ├── exception
│ │ └── SparkException.java
│ └── CosManager.java
│ ├── esdao
│ └── PostEsDao.java
│ ├── annotation
│ └── AuthCheck.java
│ ├── utils
│ ├── SqlUtils.java
│ ├── SpringContextUtils.java
│ └── NetUtils.java
│ ├── service
│ ├── PostThumbService.java
│ ├── PostFavourService.java
│ ├── impl
│ │ └── CaptchaCacheServiceRedisImpl.java
│ ├── NoticeService.java
│ ├── BarrageService.java
│ ├── PostService.java
│ ├── CommodityTypeService.java
│ ├── UserAiMessageService.java
│ ├── PrivateMessageService.java
│ ├── CommentService.java
│ ├── CommodityService.java
│ └── CommodityScoreService.java
│ ├── config
│ ├── CaptchaConfig.java
│ ├── CorsConfig.java
│ ├── AuthInterceptorConfig.java
│ ├── MyBatisPlusConfig.java
│ ├── JsonConfig.java
│ ├── ThreadPoolExecutorConfig.java
│ ├── RedisConfig.java
│ ├── CosClientConfig.java
│ └── WxOpenConfig.java
│ ├── exception
│ ├── BusinessException.java
│ ├── GlobalExceptionHandler.java
│ └── ThrowUtils.java
│ ├── MainApplication.java
│ └── job
│ └── once
│ └── FullSyncPostToEs.java
├── doc
└── swagger.png
├── .mvn
└── wrapper
│ └── maven-wrapper.properties
├── Dockerfile
└── sql
└── post_es_mapping.json
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luoye6/vue3_trade_backend/HEAD/.DS_Store
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luoye6/vue3_trade_backend/HEAD/src/.DS_Store
--------------------------------------------------------------------------------
/doc/swagger.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luoye6/vue3_trade_backend/HEAD/doc/swagger.png
--------------------------------------------------------------------------------
/src/test/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luoye6/vue3_trade_backend/HEAD/src/test/.DS_Store
--------------------------------------------------------------------------------
/src/main/resources/test_excel.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/luoye6/vue3_trade_backend/HEAD/src/main/resources/test_excel.xlsx
--------------------------------------------------------------------------------
/src/main/resources/banner.txt:
--------------------------------------------------------------------------------
1 | by 程序员小白条
2 | GitEE: https://gitee.com/falle22222n-leaves
3 | GitHub: https://github.com/luoye6
4 | 个人博客: https://luoye6.github.io/
5 | Knife4j 在线接口文档调用地址(注意全局参数加 Token 后调用):http://localhost:8102/api/doc.html#/home
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
2 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
3 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/wxmp/WxMpConstant.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.wxmp;
2 |
3 | /**
4 | * 微信公众号相关常量
5 | *
6 | * @author 程序员小白条
7 | * @from 个人博客
8 | **/
9 | public class WxMpConstant {
10 |
11 | /**
12 | * 点击菜单 key
13 | */
14 | public static final String CLICK_MENU_KEY = "CLICK_MENU_KEY";
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/constant/FileConstant.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.constant;
2 |
3 | /**
4 | * 文件常量
5 | *
6 | * @author 程序员小白条
7 | * @from 个人博客
8 | */
9 | public interface FileConstant {
10 |
11 | /**
12 | * COS 访问地址
13 | * todo 需替换配置
14 | */
15 | String COS_HOST = "https://xiaobaitiao.icu";
16 | }
17 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityOrder/PayCommodityOrderRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityOrder;
2 |
3 | import lombok.Data;
4 |
5 | /**
6 | * @author 程序员小白条
7 | * @date 2025/3/12 15:19
8 | * @gitee https://gitee.com/falle22222n-leaves/vue_-book-manage-system
9 | */
10 | @Data
11 | public class PayCommodityOrderRequest {
12 | private Long commodityOrderId;
13 | }
14 |
--------------------------------------------------------------------------------
/src/test/java/com/xiaobaitiao/springbootinit/MainApplicationTests.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit;
2 |
3 | import org.junit.jupiter.api.Test;
4 | import org.springframework.boot.test.context.SpringBootTest;
5 |
6 | /**
7 | * 主类测试
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @SpringBootTest
13 | class MainApplicationTests {
14 |
15 | @Test
16 | void contextLoads() {
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | # Docker 镜像构建
2 | # @author 程序员小白条
3 | # @from 个人博客
4 | FROM maven:3.8.1-jdk-8-slim as builder
5 |
6 | # Copy local code to the container image.
7 | WORKDIR /app
8 | COPY pom.xml .
9 | COPY src ./src
10 |
11 | # Build a release artifact.
12 | RUN mvn package -DskipTests
13 |
14 | # Run the web service on container startup.
15 | CMD ["java","-jar","/app/target/springboot-init-0.0.1-SNAPSHOT.jar","--spring.profiles.active=prod"]
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/PostThumbMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.xiaobaitiao.springbootinit.model.entity.PostThumb;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * 帖子点赞数据库操作
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | public interface PostThumbMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/common/DeleteRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.common;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 删除请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class DeleteRequest implements Serializable {
14 |
15 | /**
16 | * id
17 | */
18 | private Long id;
19 |
20 | private static final long serialVersionUID = 1L;
21 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/constant/SparkMessageRole.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.constant;
2 |
3 | /**
4 | * 消息角色常量
5 | *
6 | * @author briqt
7 | */
8 | public interface SparkMessageRole {
9 |
10 | /**
11 | * 用户
12 | */
13 | String USER = "user";
14 |
15 | /**
16 | * 机器人助手
17 | */
18 | String ASSISTANT = "assistant";
19 |
20 | /**
21 | * 系统指令
22 | */
23 | String SYSTEM = "system";
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/NoticeMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.Notice;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【notice】的数据库操作Mapper
9 | * @createDate 2025-01-25 15:44:30
10 | * @Entity generator.domain.Notice
11 | */
12 | public interface NoticeMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/CommentMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.Comment;
5 |
6 | /**
7 | * @author 程序员小白条
8 | * @description 针对表【comment】的数据库操作Mapper
9 | * @createDate 2024-12-02 10:41:09
10 | * @Entity com.yupi.mianshiya.model.entity.Comment
11 | */
12 | public interface CommentMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/file/UploadFileRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.file;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 文件上传请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class UploadFileRequest implements Serializable {
14 |
15 | /**
16 | * 业务
17 | */
18 | private String biz;
19 |
20 | private static final long serialVersionUID = 1L;
21 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/BarrageMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.xiaobaitiao.springbootinit.model.entity.Barrage;
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【barrage】的数据库操作Mapper
9 | * @createDate 2025-01-30 12:10:23
10 | * @Entity com.xiaobaitiao.springbootinit.model.entity.Barrage
11 | */
12 | public interface BarrageMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/UserMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.User;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【user(用户)】的数据库操作Mapper
9 | * @createDate 2025-01-09 13:13:26
10 | * @Entity generator.domain.User
11 | */
12 | public interface UserMapper extends BaseMapper {
13 | User selectByIdWithLock(Long id);
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/UserAiMessageMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.UserAiMessage;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【user_ai_message】的数据库操作Mapper
9 | * @createDate 2025-02-07 16:02:58
10 | * @Entity generator.domain.UserAiMessage
11 | */
12 | public interface UserAiMessageMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/postthumb/PostThumbAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.postthumb;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 帖子点赞请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class PostThumbAddRequest implements Serializable {
14 |
15 | /**
16 | * 帖子 id
17 | */
18 | private Long postId;
19 |
20 | private static final long serialVersionUID = 1L;
21 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/CommodityOrderMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.CommodityOrder;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【commodity_order】的数据库操作Mapper
9 | * @createDate 2025-03-11 15:16:08
10 | * @Entity generator.domain.CommodityOrder
11 | */
12 | public interface CommodityOrderMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/CommodityTypeMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 |
4 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 | import com.xiaobaitiao.springbootinit.model.entity.CommodityType;
6 |
7 | /**
8 | * @author zhao9
9 | * @description 针对表【commodity_type】的数据库操作Mapper
10 | * @createDate 2025-03-14 13:27:45
11 | * @Entity generator.domain.CommodityType
12 | */
13 | public interface CommodityTypeMapper extends BaseMapper {
14 |
15 | }
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/PrivateMessageMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.PrivateMessage;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【private_message】的数据库操作Mapper
9 | * @createDate 2025-03-15 13:45:41
10 | * @Entity generator.domain.PrivateMessage
11 | */
12 | public interface PrivateMessageMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/esdao/PostEsDao.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.esdao;
2 |
3 | import com.xiaobaitiao.springbootinit.model.dto.post.PostEsDTO;
4 | import java.util.List;
5 | import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
6 |
7 | /**
8 | * 帖子 ES 操作
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | public interface PostEsDao extends ElasticsearchRepository {
14 |
15 | List findByUserId(Long userId);
16 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/postfavour/PostFavourAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.postfavour;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 帖子收藏 / 取消收藏请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class PostFavourAddRequest implements Serializable {
14 |
15 | /**
16 | * 帖子 id
17 | */
18 | private Long postId;
19 |
20 | private static final long serialVersionUID = 1L;
21 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/CommodityMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.Commodity;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【commodity】的数据库操作Mapper
9 | * @createDate 2025-03-11 13:35:54
10 | * @Entity generator.domain.Commodity
11 | */
12 | public interface CommodityMapper extends BaseMapper {
13 | Commodity selectByIdWithLock(Long id);
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/user/UserLoginRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.user;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 用户登录请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class UserLoginRequest implements Serializable {
14 |
15 | private static final long serialVersionUID = 3191241716373120793L;
16 |
17 | private String userAccount;
18 |
19 | private String userPassword;
20 | }
21 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/UserCommodityFavoritesMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.UserCommodityFavorites;
5 |
6 | /**
7 | * @author zhao9
8 | * @description 针对表【user_commodity_favorites】的数据库操作Mapper
9 | * @createDate 2025-03-12 13:22:44
10 | * @Entity generator.domain.UserCommodityFavorites
11 | */
12 | public interface UserCommodityFavoritesMapper extends BaseMapper {
13 |
14 | }
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/constant/QuestionConstant.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.constant;
2 |
3 | /**
4 | * @author 程序员小白条
5 | * @date 2025/1/31 14:49
6 | * @gitee https://gitee.com/falle22222n-leaves/vue_-book-manage-system
7 | */
8 | public interface QuestionConstant {
9 | /**
10 | * 简单
11 | */
12 | String QUESTION_DIFFICULTY_EASY = "easy";
13 |
14 | /**
15 | * 中等
16 | */
17 | String QUESTION_DIFFICULTY_MEDIUM = "medium";
18 |
19 | /**
20 | * 困难
21 | */
22 | String QUESTION_DIFFICULTY_HARD = "hard";
23 | }
24 |
--------------------------------------------------------------------------------
/src/test/java/com/xiaobaitiao/springbootinit/manager/CosManagerTest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager;
2 |
3 | import javax.annotation.Resource;
4 | import org.junit.jupiter.api.Test;
5 | import org.springframework.boot.test.context.SpringBootTest;
6 |
7 | /**
8 | * Cos 操作测试
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | @SpringBootTest
14 | class CosManagerTest {
15 |
16 | @Resource
17 | private CosManager cosManager;
18 |
19 | @Test
20 | void putObject() {
21 | cosManager.putObject("test", "test.json");
22 | }
23 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/comment/CommentEditRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.comment;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 编辑请求
9 | *
10 | * @author 码羊
11 | */
12 | @Data
13 | public class CommentEditRequest implements Serializable {
14 |
15 | /**
16 | * 评论 ID
17 | */
18 | private Long id;
19 |
20 |
21 | /**
22 | * 评论内容
23 | */
24 | private String content;
25 |
26 |
27 |
28 | private static final long serialVersionUID = 1L;
29 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/PostMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.Post;
5 | import java.util.Date;
6 | import java.util.List;
7 |
8 | /**
9 | * 帖子数据库操作
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | public interface PostMapper extends BaseMapper {
15 |
16 | /**
17 | * 查询帖子列表(包括已被删除的数据)
18 | */
19 | List listPostWithDelete(Date minUpdateTime);
20 |
21 | }
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/response/SparkResponseUsage.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.response;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * $.payload.usage
7 | *
8 | * @author briqt
9 | */
10 | public class SparkResponseUsage implements Serializable {
11 | private static final long serialVersionUID = 2181817132625461079L;
12 |
13 | private SparkTextUsage text;
14 |
15 | public SparkTextUsage getText() {
16 | return text;
17 | }
18 |
19 | public void setText(SparkTextUsage text) {
20 | this.text = text;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/constant/CommonConstant.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.constant;
2 |
3 | /**
4 | * 通用常量
5 | *
6 | * @author 程序员小白条
7 | * @from 个人博客
8 | */
9 | public interface CommonConstant {
10 |
11 | /**
12 | * 升序
13 | */
14 | String SORT_ORDER_ASC = "ascend";
15 |
16 | /**
17 | * 降序
18 | */
19 | String SORT_ORDER_DESC = " descend";
20 | /**
21 | * 预检请求
22 | */
23 | String OPTIONS = "OPTIONS";
24 | /**
25 | * 无敌令牌(仅用于测试接口文档)
26 | */
27 | String INVINCIBLE_TOKEN = "InvincibleToken";
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/user/UserRegisterRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.user;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 用户注册请求体
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class UserRegisterRequest implements Serializable {
14 |
15 | private static final long serialVersionUID = 3191241716373120793L;
16 |
17 | private String userAccount;
18 |
19 | private String userPassword;
20 |
21 | private String checkPassword;
22 |
23 | // private String captchaVerification;
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/annotation/AuthCheck.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.annotation;
2 |
3 | import java.lang.annotation.ElementType;
4 | import java.lang.annotation.Retention;
5 | import java.lang.annotation.RetentionPolicy;
6 | import java.lang.annotation.Target;
7 |
8 | /**
9 | * 权限校验
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Target(ElementType.METHOD)
15 | @Retention(RetentionPolicy.RUNTIME)
16 | public @interface AuthCheck {
17 |
18 | /**
19 | * 必须有某个角色
20 | *
21 | * @return
22 | */
23 | String mustRole() default "";
24 |
25 | }
26 |
27 |
--------------------------------------------------------------------------------
/src/main/resources/application-test.yml:
--------------------------------------------------------------------------------
1 | # 测试配置文件
2 | # @author 程序员小白条
3 | # @from 个人博客
4 | server:
5 | port: 8101
6 | spring:
7 | # 数据库配置
8 | # todo 需替换配置
9 | datasource:
10 | driver-class-name: com.mysql.cj.jdbc.Driver
11 | url: jdbc:mysql://localhost:3306/mianshi
12 | username: root
13 | password: 123456
14 | # Redis 配置
15 | # todo 需替换配置
16 | redis:
17 | database: 1
18 | host: localhost
19 | port: 6379
20 | timeout: 5000
21 | password: 123456
22 | # Elasticsearch 配置
23 | # todo 需替换配置
24 | elasticsearch:
25 | uris: http://localhost:9200
26 | username: root
27 | password: 123456
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityType/CommodityTypeUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityType;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 更新商品类别表请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class CommodityTypeUpdateRequest implements Serializable {
16 | /**
17 | * 商品分类 ID
18 | */
19 | private Long id;
20 |
21 | /**
22 | * 商品类别名称
23 | */
24 | private String typeName;
25 |
26 | private static final long serialVersionUID = 1L;
27 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/constant/UserConstant.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.constant;
2 |
3 | /**
4 | * 用户常量
5 | *
6 | * @author 程序员小白条
7 | * @from 个人博客
8 | */
9 | public interface UserConstant {
10 |
11 | /**
12 | * 用户登录态键
13 | */
14 | String USER_LOGIN_STATE = "user_login";
15 |
16 | // region 权限
17 |
18 | /**
19 | * 默认角色
20 | */
21 | String DEFAULT_ROLE = "user";
22 |
23 | /**
24 | * 管理员角色
25 | */
26 | String ADMIN_ROLE = "admin";
27 |
28 | /**
29 | * 被封号
30 | */
31 | String BAN_ROLE = "ban";
32 |
33 | // endregion
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/utils/SqlUtils.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.utils;
2 |
3 | import org.apache.commons.lang3.StringUtils;
4 |
5 | /**
6 | * SQL 工具
7 | *
8 | * @author 程序员小白条
9 | * @from 个人博客
10 | */
11 | public class SqlUtils {
12 |
13 | /**
14 | * 校验排序字段是否合法(防止 SQL 注入)
15 | *
16 | * @param sortField
17 | * @return
18 | */
19 | public static boolean validSortField(String sortField) {
20 | if (StringUtils.isBlank(sortField)) {
21 | return false;
22 | }
23 | return !StringUtils.containsAny(sortField, "=", "(", ")", " ");
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/comment/CommentAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.comment;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 创建请求
9 | *
10 | * @author 码羊
11 | */
12 | @Data
13 | public class CommentAddRequest implements Serializable {
14 |
15 |
16 | /**
17 | * 面经帖子 ID
18 | */
19 | private Long postId;
20 |
21 | /**
22 | * 评论内容
23 | */
24 | private String content;
25 |
26 | /**
27 | * 父评论 ID,支持多级嵌套回复
28 | */
29 | private Long parentId;
30 |
31 |
32 | private static final long serialVersionUID = 1L;
33 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/user/UserUpdateMyRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.user;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 用户更新个人信息请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class UserUpdateMyRequest implements Serializable {
14 |
15 | /**
16 | * 用户昵称
17 | */
18 | private String userName;
19 |
20 | /**
21 | * 用户头像
22 | */
23 | private String userAvatar;
24 |
25 | /**
26 | * 简介
27 | */
28 | private String userProfile;
29 |
30 | private static final long serialVersionUID = 1L;
31 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/post/PostAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.post;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 | import lombok.Data;
6 |
7 | /**
8 | * 创建请求
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | @Data
14 | public class PostAddRequest implements Serializable {
15 |
16 | /**
17 | * 标题
18 | */
19 | private String title;
20 |
21 | /**
22 | * 内容
23 | */
24 | private String content;
25 |
26 | /**
27 | * 标签列表
28 | */
29 | private List tags;
30 |
31 | private static final long serialVersionUID = 1L;
32 | }
--------------------------------------------------------------------------------
/src/main/resources/templates/model/TemplateAddRequest.java.ftl:
--------------------------------------------------------------------------------
1 | package ${packageName}.model.dto.${dataKey};
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 创建${dataName}请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class ${upperDataKey}AddRequest implements Serializable {
16 |
17 | /**
18 | * 标题
19 | */
20 | private String title;
21 |
22 | /**
23 | * 内容
24 | */
25 | private String content;
26 |
27 | /**
28 | * 标签列表
29 | */
30 | private List tags;
31 |
32 | private static final long serialVersionUID = 1L;
33 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/common/PageRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.common;
2 |
3 | import com.xiaobaitiao.springbootinit.constant.CommonConstant;
4 | import lombok.Data;
5 |
6 | /**
7 | * 分页请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class PageRequest {
14 |
15 | /**
16 | * 当前页号
17 | */
18 | private int current = 1;
19 |
20 | /**
21 | * 页面大小
22 | */
23 | private int pageSize = 10;
24 |
25 | /**
26 | * 排序字段
27 | */
28 | private String sortField;
29 |
30 | /**
31 | * 排序顺序(默认升序)
32 | */
33 | private String sortOrder = CommonConstant.SORT_ORDER_ASC;
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/post/PostEditRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.post;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 | import lombok.Data;
6 |
7 | /**
8 | * 编辑请求
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | @Data
14 | public class PostEditRequest implements Serializable {
15 |
16 | /**
17 | * id
18 | */
19 | private Long id;
20 |
21 | /**
22 | * 标题
23 | */
24 | private String title;
25 |
26 | /**
27 | * 内容
28 | */
29 | private String content;
30 |
31 | /**
32 | * 标签列表
33 | */
34 | private List tags;
35 |
36 | private static final long serialVersionUID = 1L;
37 | }
--------------------------------------------------------------------------------
/src/main/resources/templates/model/TemplateEditRequest.java.ftl:
--------------------------------------------------------------------------------
1 | package ${packageName}.model.dto.${dataKey};
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 编辑${dataName}请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class ${upperDataKey}EditRequest implements Serializable {
16 |
17 | /**
18 | * id
19 | */
20 | private Long id;
21 |
22 | /**
23 | * 标题
24 | */
25 | private String title;
26 |
27 | /**
28 | * 内容
29 | */
30 | private String content;
31 |
32 | /**
33 | * 标签列表
34 | */
35 | private List tags;
36 |
37 | private static final long serialVersionUID = 1L;
38 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/post/PostUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.post;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 | import lombok.Data;
6 |
7 | /**
8 | * 更新请求
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | @Data
14 | public class PostUpdateRequest implements Serializable {
15 |
16 | /**
17 | * id
18 | */
19 | private Long id;
20 |
21 | /**
22 | * 标题
23 | */
24 | private String title;
25 |
26 | /**
27 | * 内容
28 | */
29 | private String content;
30 |
31 | /**
32 | * 标签列表
33 | */
34 | private List tags;
35 |
36 | private static final long serialVersionUID = 1L;
37 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/user/UserAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.user;
2 |
3 | import java.io.Serializable;
4 | import lombok.Data;
5 |
6 | /**
7 | * 用户创建请求
8 | *
9 | * @author 程序员小白条
10 | * @from 个人博客
11 | */
12 | @Data
13 | public class UserAddRequest implements Serializable {
14 |
15 | /**
16 | * 用户昵称
17 | */
18 | private String userName;
19 |
20 | /**
21 | * 账号
22 | */
23 | private String userAccount;
24 |
25 | /**
26 | * 用户头像
27 | */
28 | private String userAvatar;
29 |
30 | /**
31 | * 用户角色: user, admin
32 | */
33 | private String userRole;
34 |
35 | private static final long serialVersionUID = 1L;
36 | }
--------------------------------------------------------------------------------
/src/main/resources/templates/model/TemplateUpdateRequest.java.ftl:
--------------------------------------------------------------------------------
1 | package ${packageName}.model.dto.${dataKey};
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 更新${dataName}请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class ${upperDataKey}UpdateRequest implements Serializable {
16 |
17 | /**
18 | * id
19 | */
20 | private Long id;
21 |
22 | /**
23 | * 标题
24 | */
25 | private String title;
26 |
27 | /**
28 | * 内容
29 | */
30 | private String content;
31 |
32 | /**
33 | * 标签列表
34 | */
35 | private List tags;
36 |
37 | private static final long serialVersionUID = 1L;
38 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/userAiMessage/UserAiMessageAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.userAiMessage;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.Date;
7 | import java.util.List;
8 |
9 | /**
10 | * 创建用户对话表请求
11 | *
12 | * @author 程序员小白条
13 | * @from 个人博客
14 | */
15 | @Data
16 | public class UserAiMessageAddRequest implements Serializable {
17 |
18 |
19 | /**
20 | * 用户输入
21 | */
22 | private String userInputText;
23 |
24 | /**
25 | * AI 生成结果
26 | */
27 | private String aiGenerateText;
28 |
29 | /**
30 | * 用户ID
31 | */
32 | private Long userId;
33 |
34 |
35 |
36 |
37 | private static final long serialVersionUID = 1L;
38 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityType/CommodityTypeQueryRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityType;
2 |
3 | import com.xiaobaitiao.springbootinit.common.PageRequest;
4 | import lombok.Data;
5 | import lombok.EqualsAndHashCode;
6 |
7 | import java.io.Serializable;
8 | import java.util.List;
9 |
10 | /**
11 | * 查询商品类别表请求
12 | *
13 | * @author 程序员小白条
14 | * @from 个人博客
15 | */
16 | @EqualsAndHashCode(callSuper = true)
17 | @Data
18 | public class CommodityTypeQueryRequest extends PageRequest implements Serializable {
19 |
20 | /**
21 | * 商品分类 ID
22 | */
23 | private Long id;
24 |
25 | /**
26 | * 商品类别名称
27 | */
28 | private String typeName;
29 |
30 | private static final long serialVersionUID = 1L;
31 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityScore/CommodityScoreUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityScore;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 更新商品评分表请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class CommodityScoreUpdateRequest implements Serializable {
16 | /**
17 | * 商品评分 ID
18 | */
19 | private Long id;
20 |
21 | /**
22 | * 商品 ID
23 | */
24 | private Long commodityId;
25 |
26 | /**
27 | * 用户 ID
28 | */
29 | private Long userId;
30 |
31 | /**
32 | * 评分(0-5,星级评分)
33 | */
34 | private Integer score;
35 |
36 | private static final long serialVersionUID = 1L;
37 | }
--------------------------------------------------------------------------------
/src/test/java/com/xiaobaitiao/springbootinit/mapper/PostMapperTest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.xiaobaitiao.springbootinit.model.entity.Post;
4 | import java.util.Date;
5 | import java.util.List;
6 | import javax.annotation.Resource;
7 | import org.junit.jupiter.api.Assertions;
8 | import org.junit.jupiter.api.Test;
9 | import org.springframework.boot.test.context.SpringBootTest;
10 |
11 | /**
12 | * 帖子数据库操作测试
13 | *
14 | * @author 程序员小白条
15 | * @from 个人博客
16 | */
17 | @SpringBootTest
18 | class PostMapperTest {
19 |
20 | @Resource
21 | private PostMapper postMapper;
22 |
23 | @Test
24 | void listPostWithDelete() {
25 | List postList = postMapper.listPostWithDelete(new Date());
26 | Assertions.assertNotNull(postList);
27 | }
28 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/comment/CommentUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.comment;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * 更新请求
9 | *
10 | * @author 码羊
11 | */
12 | @Data
13 | public class CommentUpdateRequest implements Serializable {
14 |
15 | /**
16 | * 评论 ID
17 | */
18 | private Long id;
19 |
20 |
21 | /**
22 | * 面经帖子 ID
23 | */
24 | private Long postId;
25 |
26 | /**
27 | * 用户 ID
28 | */
29 | private Long userId;
30 |
31 | /**
32 | * 评论内容
33 | */
34 | private String content;
35 |
36 | /**
37 | * 父评论 ID,支持多级嵌套回复
38 | */
39 | private Long parentId;
40 |
41 |
42 | private static final long serialVersionUID = 1L;
43 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/postfavour/PostFavourQueryRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.postfavour;
2 |
3 | import com.xiaobaitiao.springbootinit.common.PageRequest;
4 | import com.xiaobaitiao.springbootinit.model.dto.post.PostQueryRequest;
5 | import java.io.Serializable;
6 | import lombok.Data;
7 | import lombok.EqualsAndHashCode;
8 |
9 | /**
10 | * 帖子收藏查询请求
11 | *
12 | * @author 程序员小白条
13 | * @from 个人博客
14 | */
15 | @Data
16 | @EqualsAndHashCode(callSuper = true)
17 | public class PostFavourQueryRequest extends PageRequest implements Serializable {
18 |
19 | /**
20 | * 帖子查询请求
21 | */
22 | private PostQueryRequest postQueryRequest;
23 |
24 | /**
25 | * 用户 id
26 | */
27 | private Long userId;
28 |
29 | private static final long serialVersionUID = 1L;
30 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/service/PostThumbService.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.service;
2 |
3 | import com.xiaobaitiao.springbootinit.model.entity.PostThumb;
4 | import com.baomidou.mybatisplus.extension.service.IService;
5 | import com.xiaobaitiao.springbootinit.model.entity.User;
6 |
7 | /**
8 | * 帖子点赞服务
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | public interface PostThumbService extends IService {
14 |
15 | /**
16 | * 点赞
17 | *
18 | * @param postId
19 | * @param loginUser
20 | * @return
21 | */
22 | int doPostThumb(long postId, User loginUser);
23 |
24 | /**
25 | * 帖子点赞(内部服务)
26 | *
27 | * @param userId
28 | * @param postId
29 | * @return
30 | */
31 | int doPostThumbInner(long userId, long postId);
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/mapper/CommodityScoreMapper.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.mapper;
2 |
3 | import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 | import com.xiaobaitiao.springbootinit.model.entity.CommodityScore;
5 | import org.apache.ibatis.annotations.Select;
6 |
7 | /**
8 | * @author zhao9
9 | * @description 针对表【commodity_score】的数据库操作Mapper
10 | * @createDate 2025-03-13 13:48:18
11 | * @Entity generator.domain.CommodityScore
12 | */
13 | public interface CommodityScoreMapper extends BaseMapper {
14 | /**
15 | * 查询商品的平均评分
16 | *
17 | * @param commodityId 商品 ID
18 | * @return 平均评分
19 | */
20 | @Select("SELECT AVG(score) AS averageScore FROM commodity_score WHERE commodityId = #{commodityId} AND isDelete = 0")
21 | Double getAverageScoreByCommodityId(Long commodityId);
22 | }
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/request/SparkRequestParameter.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.request;
2 |
3 |
4 |
5 | import com.xiaobaitiao.springbootinit.manager.model.SparkChatParameter;
6 |
7 | import java.io.Serializable;
8 |
9 | /**
10 | * $.parameter
11 | *
12 | * @author briqt
13 | */
14 | public class SparkRequestParameter implements Serializable {
15 | private static final long serialVersionUID = 4502096141480336425L;
16 |
17 | private SparkChatParameter chat;
18 |
19 | public SparkRequestParameter() {
20 | }
21 |
22 | public SparkRequestParameter(SparkChatParameter chat) {
23 | this.chat = chat;
24 | }
25 |
26 | public SparkChatParameter getChat() {
27 | return chat;
28 | }
29 |
30 | public void setChat(SparkChatParameter chat) {
31 | this.chat = chat;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/response/SparkResponse.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.response;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * SparkResponse
7 | *
8 | * @author briqt
9 | */
10 | public class SparkResponse implements Serializable {
11 | private static final long serialVersionUID = 886720558849587945L;
12 |
13 | private SparkResponseHeader header;
14 |
15 | private SparkResponsePayload payload;
16 |
17 | public SparkResponseHeader getHeader() {
18 | return header;
19 | }
20 |
21 | public void setHeader(SparkResponseHeader header) {
22 | this.header = header;
23 | }
24 |
25 | public SparkResponsePayload getPayload() {
26 | return payload;
27 | }
28 |
29 | public void setPayload(SparkResponsePayload payload) {
30 | this.payload = payload;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/response/SparkResponsePayload.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.response;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * $.payload
7 | *
8 | * @author briqt
9 | */
10 | public class SparkResponsePayload implements Serializable {
11 | private static final long serialVersionUID = 8090192271782303700L;
12 |
13 | private SparkResponseChoices choices;
14 |
15 | private SparkResponseUsage usage;
16 |
17 | public SparkResponseChoices getChoices() {
18 | return choices;
19 | }
20 |
21 | public void setChoices(SparkResponseChoices choices) {
22 | this.choices = choices;
23 | }
24 |
25 | public SparkResponseUsage getUsage() {
26 | return usage;
27 | }
28 |
29 | public void setUsage(SparkResponseUsage usage) {
30 | this.usage = usage;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/barrage/BarrageUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.barrage;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 更新弹幕请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class BarrageUpdateRequest implements Serializable {
16 | /**
17 | * id
18 | */
19 | private Long id;
20 |
21 | /**
22 | * 弹幕文本
23 | */
24 | private String message;
25 |
26 | /**
27 | * 用户头像
28 | */
29 | private String userAvatar;
30 |
31 | /**
32 | * 用户id
33 | */
34 | private Long userId;
35 |
36 | /**
37 | * 是否精选(默认0,精选为1)
38 | */
39 | private Integer isSelected;
40 |
41 |
42 |
43 | private static final long serialVersionUID = 1L;
44 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/config/CaptchaConfig.java:
--------------------------------------------------------------------------------
1 | //package com.xiaobaitiao.springbootinit.config;
2 | //
3 | //import com.anji.captcha.properties.AjCaptchaProperties;
4 | //import com.anji.captcha.service.CaptchaCacheService;
5 | //import com.anji.captcha.service.impl.CaptchaServiceFactory;
6 | //import org.springframework.context.annotation.Bean;
7 | //import org.springframework.context.annotation.Configuration;
8 | //import org.springframework.context.annotation.Primary;
9 | //
10 | ////@Configuration
11 | //public class CaptchaConfig {
12 | //
13 | //
14 | //
15 | //// @Bean(name = "CaptchaCacheService")
16 | //// @Primary
17 | // public CaptchaCacheService captchaCacheService(AjCaptchaProperties config){
18 | // //缓存类型redis/local/....
19 | // CaptchaCacheService ret = CaptchaServiceFactory.getCache(config.getCacheType().name());
20 | // return ret;
21 | // }
22 | //}
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/request/SparkRequestMessage.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.request;
2 |
3 |
4 |
5 | import com.xiaobaitiao.springbootinit.manager.model.SparkMessage;
6 |
7 | import java.io.Serializable;
8 | import java.util.List;
9 |
10 | /**
11 | * $.payload.message
12 | *
13 | * @author briqt
14 | */
15 | public class SparkRequestMessage implements Serializable {
16 | private static final long serialVersionUID = 6725091574720504980L;
17 |
18 | private List text;
19 |
20 | public SparkRequestMessage() {
21 | }
22 |
23 | public SparkRequestMessage(List text) {
24 | this.text = text;
25 | }
26 |
27 | public List getText() {
28 | return text;
29 | }
30 |
31 | public void setText(List text) {
32 | this.text = text;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/request/function/SparkRequestFunctions.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.request.function;
2 |
3 | import java.io.Serializable;
4 | import java.util.List;
5 |
6 | /**
7 | * $.payload.functions
8 | *
9 | * @author briqt
10 | */
11 | public class SparkRequestFunctions implements Serializable {
12 |
13 | private static final long serialVersionUID = -7696196392354475586L;
14 |
15 | private List text;
16 |
17 | public SparkRequestFunctions() {
18 | }
19 |
20 | public SparkRequestFunctions(List text) {
21 | this.text = text;
22 | }
23 |
24 | public List getText() {
25 | return text;
26 | }
27 |
28 | public void setText(List text) {
29 | this.text = text;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityType/CommodityTypeAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityType;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import com.baomidou.mybatisplus.annotation.TableLogic;
7 | import com.fasterxml.jackson.annotation.JsonFormat;
8 | import lombok.Data;
9 |
10 | import java.io.Serializable;
11 | import java.util.Date;
12 | import java.util.List;
13 |
14 | /**
15 | * 创建商品类别表请求
16 | *
17 | * @author 程序员小白条
18 | * @from 个人博客
19 | */
20 | @Data
21 | public class CommodityTypeAddRequest implements Serializable {
22 |
23 |
24 |
25 | /**
26 | * 商品类别名称
27 | */
28 | private String typeName;
29 |
30 |
31 | private static final long serialVersionUID = 1L;
32 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/barrage/BarrageAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.barrage;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import com.baomidou.mybatisplus.annotation.TableLogic;
7 | import lombok.Data;
8 |
9 | import java.io.Serializable;
10 | import java.util.Date;
11 | import java.util.List;
12 |
13 | /**
14 | * 创建弹幕请求
15 | *
16 | * @author 程序员小白条
17 | * @from 个人博客
18 | */
19 | @Data
20 | public class BarrageAddRequest implements Serializable {
21 |
22 |
23 | /**
24 | * 弹幕文本
25 | */
26 | private String message;
27 |
28 | /**
29 | * 用户头像
30 | */
31 | private String userAvatar;
32 |
33 |
34 |
35 |
36 | private static final long serialVersionUID = 1L;
37 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/notice/NoticeAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.notice;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import lombok.Data;
7 |
8 | import java.io.Serializable;
9 | import java.util.Date;
10 | import java.util.List;
11 |
12 | /**
13 | * 创建公告请求
14 | *
15 | * @author 程序员小白条
16 | * @from 个人博客
17 | */
18 | @Data
19 | public class NoticeAddRequest implements Serializable {
20 |
21 |
22 | /**
23 | * 公告标题
24 | */
25 | private String noticeTitle;
26 |
27 | /**
28 | * 公告内容
29 | */
30 | private String noticeContent;
31 |
32 | /**
33 | * 发布公告的管理员 id
34 | */
35 | private Long noticeAdminId;
36 |
37 |
38 | private static final long serialVersionUID = 1L;
39 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/notice/NoticeEditRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.notice;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import lombok.Data;
7 |
8 | import java.io.Serializable;
9 | import java.util.Date;
10 | import java.util.List;
11 |
12 | /**
13 | * 编辑公告请求
14 | *
15 | * @author 程序员小白条
16 | * @from 个人博客
17 | */
18 | @Data
19 | public class NoticeEditRequest implements Serializable {
20 |
21 | /**
22 | * id
23 | */
24 | private Long id;
25 |
26 | /**
27 | * 公告标题
28 | */
29 | private String noticeTitle;
30 |
31 | /**
32 | * 公告内容
33 | */
34 | private String noticeContent;
35 |
36 | /**
37 | * 发布公告的管理员 id
38 | */
39 | private Long noticeAdminId;
40 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/vo/MyCommentVO.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.vo;
2 |
3 | import lombok.AllArgsConstructor;
4 | import lombok.Data;
5 | import lombok.NoArgsConstructor;
6 |
7 | import java.io.Serializable;
8 | import java.util.Date;
9 |
10 | /**
11 | *
12 | * @TableName comment
13 | */
14 | @NoArgsConstructor
15 | @AllArgsConstructor
16 | @Data
17 | public class MyCommentVO implements Serializable {
18 | /**
19 | * 评论 ID
20 | */
21 | private Long id;
22 |
23 | /**
24 | * 评论内容
25 | */
26 | private String content;
27 |
28 |
29 | /**
30 | * 面经帖子 ID
31 | */
32 | private Long postId;
33 | /**
34 | * 面经帖子标题
35 | */
36 | private String postTitle;
37 | /**
38 | * 面经帖子内容
39 | */
40 | private String postContent;
41 |
42 |
43 | /**
44 | * 更新时间
45 | */
46 | private Date updateTime;
47 |
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodity/BuyCommodityRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodity;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.math.BigDecimal;
7 |
8 | /**
9 | * @author 程序员小白条
10 | * @date 2025/3/12 14:16
11 | * @gitee https://gitee.com/falle22222n-leaves/vue_-book-manage-system
12 | */
13 | @Data
14 | public class BuyCommodityRequest implements Serializable {
15 |
16 | /**
17 | * 商品 ID
18 | */
19 | private Long commodityId;
20 |
21 |
22 | /**
23 | * 购买商品的数量
24 | */
25 | private Integer buyNumber;
26 | /**
27 | * 支付金额
28 | */
29 | private BigDecimal paymentAmount;
30 | /**
31 | * 支付状态(1已支付,0未支付)默认0
32 | */
33 | private Integer payStatus;
34 |
35 | /**
36 | * 订单备注
37 | */
38 | private String remark;
39 |
40 | private static final long serialVersionUID = 1L;
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/userCommodityFavorites/UserCommodityFavoritesUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.userCommodityFavorites;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.List;
7 |
8 | /**
9 | * 更新用户商品收藏表请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class UserCommodityFavoritesUpdateRequest implements Serializable {
16 |
17 |
18 | /**
19 | *
20 | */
21 | private Long id;
22 |
23 | /**
24 | * 用户 ID
25 | */
26 | private Long userId;
27 |
28 | /**
29 | * 商品 ID
30 | */
31 | private Long commodityId;
32 |
33 | /**
34 | * 1-正常收藏 0-取消收藏
35 | */
36 | private Integer status;
37 |
38 | /**
39 | * 用户备注
40 | */
41 | private String remark;
42 |
43 | private static final long serialVersionUID = 1L;
44 | }
--------------------------------------------------------------------------------
/src/main/resources/mapper/CommodityTypeMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | id,typeName,createTime,
17 | updateTime,isDelete
18 |
19 |
20 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/exception/BusinessException.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.exception;
2 |
3 | import com.xiaobaitiao.springbootinit.common.ErrorCode;
4 |
5 | /**
6 | * 自定义异常类
7 | *
8 | * @author 程序员小白条
9 | * @from 个人博客
10 | */
11 | public class BusinessException extends RuntimeException {
12 |
13 | /**
14 | * 错误码
15 | */
16 | private final int code;
17 |
18 | public BusinessException(int code, String message) {
19 | super(message);
20 | this.code = code;
21 | }
22 |
23 | public BusinessException(ErrorCode errorCode) {
24 | super(errorCode.getMessage());
25 | this.code = errorCode.getCode();
26 | }
27 |
28 | public BusinessException(ErrorCode errorCode, String message) {
29 | super(message);
30 | this.code = errorCode.getCode();
31 | }
32 |
33 | public int getCode() {
34 | return code;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityType/CommodityTypeEditRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityType;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import com.baomidou.mybatisplus.annotation.TableLogic;
7 | import com.fasterxml.jackson.annotation.JsonFormat;
8 | import lombok.Data;
9 |
10 | import java.io.Serializable;
11 | import java.util.Date;
12 | import java.util.List;
13 |
14 | /**
15 | * 编辑商品类别表请求
16 | *
17 | * @author 程序员小白条
18 | * @from 个人博客
19 | */
20 | @Data
21 | public class CommodityTypeEditRequest implements Serializable {
22 |
23 | /**
24 | * 商品分类 ID
25 | */
26 | private Long id;
27 |
28 | /**
29 | * 商品类别名称
30 | */
31 | private String typeName;
32 |
33 | private static final long serialVersionUID = 1L;
34 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityScore/CommodityScoreQueryRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityScore;
2 |
3 | import com.xiaobaitiao.springbootinit.common.PageRequest;
4 | import lombok.Data;
5 | import lombok.EqualsAndHashCode;
6 |
7 | import java.io.Serializable;
8 | import java.util.List;
9 |
10 | /**
11 | * 查询商品评分表请求
12 | *
13 | * @author 程序员小白条
14 | * @from 个人博客
15 | */
16 | @EqualsAndHashCode(callSuper = true)
17 | @Data
18 | public class CommodityScoreQueryRequest extends PageRequest implements Serializable {
19 |
20 | /**
21 | * 商品评分 ID
22 | */
23 | private Long id;
24 |
25 | /**
26 | * 商品 ID
27 | */
28 | private Long commodityId;
29 |
30 | /**
31 | * 用户 ID
32 | */
33 | private Long userId;
34 |
35 | /**
36 | * 评分(0-5,星级评分)
37 | */
38 | private Integer score;
39 |
40 | private static final long serialVersionUID = 1L;
41 | }
--------------------------------------------------------------------------------
/src/test/java/com/xiaobaitiao/springbootinit/service/PostThumbServiceTest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.service;
2 |
3 | import com.xiaobaitiao.springbootinit.model.entity.User;
4 | import javax.annotation.Resource;
5 | import org.junit.jupiter.api.Assertions;
6 | import org.junit.jupiter.api.BeforeAll;
7 | import org.junit.jupiter.api.Test;
8 | import org.springframework.boot.test.context.SpringBootTest;
9 |
10 | /**
11 | * 帖子点赞服务测试
12 | *
13 | * @author 程序员小白条
14 | * @from 个人博客
15 | */
16 | @SpringBootTest
17 | class PostThumbServiceTest {
18 |
19 | @Resource
20 | private PostThumbService postThumbService;
21 |
22 | private static final User loginUser = new User();
23 |
24 | @BeforeAll
25 | static void setUp() {
26 | loginUser.setId(1L);
27 | }
28 |
29 | @Test
30 | void doPostThumb() {
31 | int i = postThumbService.doPostThumb(1L, loginUser);
32 | Assertions.assertTrue(i >= 0);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/notice/NoticeUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.notice;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import lombok.Data;
7 |
8 | import java.io.Serializable;
9 | import java.util.Date;
10 | import java.util.List;
11 |
12 | /**
13 | * 更新公告请求
14 | *
15 | * @author 程序员小白条
16 | * @from 个人博客
17 | */
18 | @Data
19 | public class NoticeUpdateRequest implements Serializable {
20 |
21 | /**
22 | * id
23 | */
24 | private Long id;
25 |
26 | /**
27 | * 公告标题
28 | */
29 | private String noticeTitle;
30 |
31 | /**
32 | * 公告内容
33 | */
34 | private String noticeContent;
35 |
36 | /**
37 | * 发布公告的管理员 id
38 | */
39 | private Long noticeAdminId;
40 | private static final long serialVersionUID = 1L;
41 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/userAiMessage/UserAiMessageEditRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.userAiMessage;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.Date;
7 | import java.util.List;
8 |
9 | /**
10 | * 编辑用户对话表请求
11 | *
12 | * @author 程序员小白条
13 | * @from 个人博客
14 | */
15 | @Data
16 | public class UserAiMessageEditRequest implements Serializable {
17 | /**
18 | *
19 | */
20 | private Long id;
21 |
22 | /**
23 | * 用户输入
24 | */
25 | private String userInputText;
26 |
27 | /**
28 | * AI 生成结果
29 | */
30 | private String aiGenerateText;
31 |
32 | /**
33 | * 用户ID
34 | */
35 | private Long userId;
36 |
37 | /**
38 | * 创建时间
39 | */
40 | private Date createTime;
41 |
42 | /**
43 | * 更新时间
44 | */
45 | private Date updateTime;
46 |
47 |
48 | private static final long serialVersionUID = 1L;
49 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/userAiMessage/UserAiMessageUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.userAiMessage;
2 |
3 | import lombok.Data;
4 |
5 | import java.io.Serializable;
6 | import java.util.Date;
7 | import java.util.List;
8 |
9 | /**
10 | * 更新用户对话表请求
11 | *
12 | * @author 程序员小白条
13 | * @from 个人博客
14 | */
15 | @Data
16 | public class UserAiMessageUpdateRequest implements Serializable {
17 |
18 | /**
19 | *
20 | */
21 | private Long id;
22 |
23 | /**
24 | * 用户输入
25 | */
26 | private String userInputText;
27 |
28 | /**
29 | * AI 生成结果
30 | */
31 | private String aiGenerateText;
32 |
33 | /**
34 | * 用户ID
35 | */
36 | private Long userId;
37 |
38 | /**
39 | * 创建时间
40 | */
41 | private Date createTime;
42 |
43 | /**
44 | * 更新时间
45 | */
46 | private Date updateTime;
47 |
48 |
49 | private static final long serialVersionUID = 1L;
50 | }
--------------------------------------------------------------------------------
/src/main/resources/mapper/PostThumbMapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | id,postId,
19 | userId,createTime,updateTime
20 |
21 |
22 |
--------------------------------------------------------------------------------
/src/main/resources/application-prod.yml:
--------------------------------------------------------------------------------
1 | # 线上配置文件
2 | # @author 程序员小白条
3 | # @from 个人博客
4 | server:
5 | port: 8102
6 | spring:
7 | # 数据库配置
8 | # todo 需替换配置
9 | datasource:
10 | driver-class-name: com.mysql.cj.jdbc.Driver
11 | url: jdbc:mysql://localhost:3306/test_db_xbt
12 | username: root
13 | password: hsp
14 | # Redis 配置
15 | # todo 需替换配置
16 | redis:
17 | database: 1
18 | host: localhost
19 | port: 6379
20 | timeout: 5000
21 | password: 123456
22 | # Elasticsearch 配置
23 | # todo 需替换配置
24 | elasticsearch:
25 | uris: http://localhost:9200
26 | username: root
27 | password: 123456
28 | mybatis-plus:
29 | configuration:
30 | # 生产环境关闭日志
31 | log-impl: ''
32 | # 接口文档配置
33 | knife4j:
34 | basic:
35 | enable: true
36 | username: root
37 | password: 123456
38 | #jwt config
39 | jwt:
40 | tokenHeader: Authorization #JWT存储的请求头
41 | secret: mall-jwt-test #jwt加解密使用的密钥
42 | expiration: 36000000 #JWT的超时时间
43 | tokenHead: Bearer #JWT负载中拿到的开头
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/config/CorsConfig.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.config;
2 |
3 | import org.springframework.context.annotation.Configuration;
4 | import org.springframework.web.servlet.config.annotation.CorsRegistry;
5 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
6 |
7 | /**
8 | * 全局跨域配置
9 | *
10 | * @author 程序员小白条
11 | * @from 个人博客
12 | */
13 | @Configuration
14 | public class CorsConfig implements WebMvcConfigurer {
15 |
16 | @Override
17 | public void addCorsMappings(CorsRegistry registry) {
18 | // 覆盖所有请求
19 | registry.addMapping("/**")
20 | // 允许发送 Cookie
21 | .allowCredentials(true)
22 | // 放行哪些域名(必须用 patterns,否则 * 会和 allowCredentials 冲突)
23 | .allowedOriginPatterns("*")
24 | .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
25 | .allowedHeaders("*")
26 | .exposedHeaders("*");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/manager/model/request/SparkRequestHeader.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.manager.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | import java.io.Serializable;
6 |
7 | /**
8 | * $.header
9 | *
10 | * @author briqt
11 | */
12 | public class SparkRequestHeader implements Serializable {
13 | private static final long serialVersionUID = -1426143090218924505L;
14 |
15 | /**
16 | * 应用appid,从开放平台控制台创建的应用中获取
17 | * 必传
18 | */
19 | @JsonProperty("app_id")
20 | private String appId;
21 |
22 | /**
23 | * 每个用户的id,用于区分不同用户
24 | * 非必传,最大长度32
25 | */
26 | private String uid;
27 |
28 | public String getAppId() {
29 | return appId;
30 | }
31 |
32 | public void setAppId(String appId) {
33 | this.appId = appId;
34 | }
35 |
36 | public String getUid() {
37 | return uid;
38 | }
39 |
40 | public void setUid(String uid) {
41 | this.uid = uid;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/test/java/com/xiaobaitiao/springbootinit/service/PostServiceTest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.service;
2 |
3 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 | import com.xiaobaitiao.springbootinit.model.dto.post.PostQueryRequest;
5 | import com.xiaobaitiao.springbootinit.model.entity.Post;
6 | import javax.annotation.Resource;
7 | import org.junit.jupiter.api.Assertions;
8 | import org.junit.jupiter.api.Test;
9 | import org.springframework.boot.test.context.SpringBootTest;
10 |
11 | /**
12 | * 帖子服务测试
13 | *
14 | * @author 程序员小白条
15 | * @from 个人博客
16 | */
17 | @SpringBootTest
18 | class PostServiceTest {
19 |
20 | @Resource
21 | private PostService postService;
22 |
23 | @Test
24 | void searchFromEs() {
25 | PostQueryRequest postQueryRequest = new PostQueryRequest();
26 | postQueryRequest.setUserId(1L);
27 | Page postPage = postService.searchFromEs(postQueryRequest);
28 | Assertions.assertNotNull(postPage);
29 | }
30 |
31 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/user/UserUpdateRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.user;
2 |
3 | import java.io.Serializable;
4 | import java.math.BigDecimal;
5 |
6 | import lombok.Data;
7 |
8 | /**
9 | * 用户更新请求
10 | *
11 | * @author 程序员小白条
12 | * @from 个人博客
13 | */
14 | @Data
15 | public class UserUpdateRequest implements Serializable {
16 | /**
17 | * id
18 | */
19 | private Long id;
20 |
21 | /**
22 | * 用户昵称
23 | */
24 | private String userName;
25 |
26 | /**
27 | * 用户头像
28 | */
29 | private String userAvatar;
30 |
31 | /**
32 | * 简介
33 | */
34 | private String userProfile;
35 |
36 | /**
37 | * 用户角色:user/admin/ban
38 | */
39 | private String userRole;
40 | /**
41 | * 用户余额
42 | */
43 | private BigDecimal balance;
44 | /**
45 | * 用户 AI 剩余可使用次数
46 | */
47 | private Integer aiRemainNumber;
48 | private static final long serialVersionUID = 1L;
49 | }
--------------------------------------------------------------------------------
/src/main/resources/META-INF/additional-spring-configuration-metadata.json:
--------------------------------------------------------------------------------
1 | {
2 | "properties": [
3 | {
4 | "name": "cos.client.accessKey",
5 | "type": "java.lang.String",
6 | "description": "Description for cos.client.accessKey."
7 | },
8 | {
9 | "name": "cos.client.secretKey",
10 | "type": "java.lang.String",
11 | "description": "Description for cos.client.secretKey."
12 | },
13 | {
14 | "name": "cos.client.region",
15 | "type": "java.lang.String",
16 | "description": "Description for cos.client.region."
17 | },
18 | {
19 | "name": "cos.client.bucket",
20 | "type": "java.lang.String",
21 | "description": "Description for cos.client.bucket."
22 | },
23 | {
24 | "name": "wx.open.appId",
25 | "type": "java.lang.String",
26 | "description": "Description for wx.open.appId."
27 | },
28 | {
29 | "name": "wx.open.appSecret",
30 | "type": "java.lang.String",
31 | "description": "Description for wx.open.appSecret."
32 | }
33 | ]
34 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit;
2 |
3 | import org.mybatis.spring.annotation.MapperScan;
4 | import org.springframework.boot.SpringApplication;
5 | import org.springframework.boot.autoconfigure.SpringBootApplication;
6 | import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
7 | import org.springframework.context.annotation.EnableAspectJAutoProxy;
8 | import org.springframework.scheduling.annotation.EnableScheduling;
9 |
10 | /**
11 | * 主类(项目启动入口)
12 | *
13 | * @author 程序员小白条
14 | * @from 个人博客
15 | */
16 | // todo 如需开启 Redis,须移除 exclude 中的内容
17 | @SpringBootApplication(exclude = RedisAutoConfiguration.class)
18 | @MapperScan("com.xiaobaitiao.springbootinit.mapper")
19 | @EnableScheduling
20 | @EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)
21 | public class MainApplication {
22 |
23 | public static void main(String[] args) {
24 | SpringApplication.run(MainApplication.class, args);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/config/AuthInterceptorConfig.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.config;
2 |
3 | import com.xiaobaitiao.springbootinit.aop.AuthInterceptorHandler;
4 | import org.springframework.context.annotation.Bean;
5 | import org.springframework.context.annotation.Configuration;
6 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
8 |
9 | /**
10 | * @author 小白条
11 | * @from 个人博客
12 | */
13 | @Configuration
14 | public class AuthInterceptorConfig implements WebMvcConfigurer {
15 | @Override
16 | public void addInterceptors(InterceptorRegistry registry) {
17 | registry.addInterceptor(authInterceptorHandler()).excludePathPatterns("/**/login","/**/register","/**/register_verify").excludePathPatterns("/doc.html");
18 | }
19 |
20 | @Bean
21 | public AuthInterceptorHandler authInterceptorHandler(){
22 | return new AuthInterceptorHandler();
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/comment/CommentQueryRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.comment;
2 |
3 | import com.xiaobaitiao.springbootinit.common.PageRequest;
4 | import lombok.Data;
5 | import lombok.EqualsAndHashCode;
6 |
7 | import java.io.Serializable;
8 |
9 | /**
10 | * 查询请求
11 | *
12 | * @author 码羊
13 | */
14 | @EqualsAndHashCode(callSuper = true)
15 | @Data
16 | public class CommentQueryRequest extends PageRequest implements Serializable {
17 |
18 | /**
19 | * 评论 ID
20 | */
21 | private Long id;
22 |
23 |
24 | /**
25 | * 面经帖子 ID
26 | */
27 | private Long postId;
28 |
29 | /**
30 | * 用户 ID
31 | */
32 | private Long userId;
33 |
34 | /**
35 | * 评论内容
36 | */
37 | private String content;
38 |
39 | /**
40 | * 父评论 ID,支持多级嵌套回复
41 | */
42 | private Long parentId;
43 | /**
44 | * 顶级父 ID,支持多级嵌套回复
45 | */
46 | private Long ancestorId;
47 |
48 |
49 | private static final long serialVersionUID = 1L;
50 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityOrder/CommodityOrderEditRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityOrder;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import com.baomidou.mybatisplus.annotation.TableLogic;
7 | import com.fasterxml.jackson.annotation.JsonFormat;
8 | import lombok.Data;
9 |
10 | import java.io.Serializable;
11 | import java.math.BigDecimal;
12 | import java.util.Date;
13 | import java.util.List;
14 |
15 | /**
16 | * 编辑商品订单表请求
17 | *
18 | * @author 程序员小白条
19 | * @from 个人博客
20 | */
21 | @Data
22 | public class CommodityOrderEditRequest implements Serializable {
23 | /**
24 | * 订单 ID
25 | */
26 | private Long id;
27 |
28 | /**
29 | * 订单备注
30 | */
31 | private String remark;
32 |
33 | /**
34 | * 0-未支付 1-已支付
35 | */
36 | private Integer payStatus;
37 |
38 | private static final long serialVersionUID = 1L;
39 | }
--------------------------------------------------------------------------------
/src/main/java/com/xiaobaitiao/springbootinit/model/dto/commodityScore/CommodityScoreAddRequest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.model.dto.commodityScore;
2 |
3 | import com.baomidou.mybatisplus.annotation.IdType;
4 | import com.baomidou.mybatisplus.annotation.TableField;
5 | import com.baomidou.mybatisplus.annotation.TableId;
6 | import com.baomidou.mybatisplus.annotation.TableLogic;
7 | import com.fasterxml.jackson.annotation.JsonFormat;
8 | import lombok.Data;
9 |
10 | import java.io.Serializable;
11 | import java.util.Date;
12 | import java.util.List;
13 |
14 | /**
15 | * 创建商品评分表请求
16 | *
17 | * @author 程序员小白条
18 | * @from 个人博客
19 | */
20 | @Data
21 | public class CommodityScoreAddRequest implements Serializable {
22 |
23 |
24 | /**
25 | * 商品 ID
26 | */
27 | private Long commodityId;
28 |
29 | /**
30 | * 用户 ID
31 | */
32 | private Long userId;
33 |
34 | /**
35 | * 评分(0-5,星级评分)
36 | */
37 | private Integer score;
38 |
39 |
40 |
41 |
42 | private static final long serialVersionUID = 1L;
43 | }
--------------------------------------------------------------------------------
/src/test/java/com/xiaobaitiao/springbootinit/utils/EasyExcelTest.java:
--------------------------------------------------------------------------------
1 | package com.xiaobaitiao.springbootinit.utils;
2 |
3 | import com.alibaba.excel.EasyExcel;
4 | import com.alibaba.excel.support.ExcelTypeEnum;
5 | import org.junit.jupiter.api.Test;
6 | import org.springframework.boot.test.context.SpringBootTest;
7 | import org.springframework.util.ResourceUtils;
8 |
9 | import java.io.File;
10 | import java.io.FileNotFoundException;
11 | import java.util.List;
12 | import java.util.Map;
13 |
14 | /**
15 | * EasyExcel 测试
16 | *
17 | * @author 程序员小白条
18 | * @from 个人博客
19 | */
20 | @SpringBootTest
21 | public class EasyExcelTest {
22 |
23 | @Test
24 | public void doImport() throws FileNotFoundException {
25 | File file = ResourceUtils.getFile("classpath:test_excel.xlsx");
26 | List