当前位置: 首页 > wzjs >正文

上海网站制作福州军事新闻俄乌最新消息

上海网站制作福州,军事新闻俄乌最新消息,高端品牌网站建设,网站建站 在线制作📖 模块概述 文章分类模块包括 新增文章分类、文章分类列表、获取文章分类详情、更新文章分类、删除文章分类 功能。本篇对于原项目进行了代码优化,将原先写在 Controller 层的业务逻辑代码迁移至了 Service 层。 🛠️ 技术实现要点 分组校…

📖 模块概述

  • 文章分类模块包括 新增文章分类、文章分类列表、获取文章分类详情、更新文章分类、删除文章分类 功能。
  • 本篇对于原项目进行了代码优化,将原先写在 Controller 层的业务逻辑代码迁移至了 Service 层。

🛠️ 技术实现要点

  • 分组校验
    • 定义分组:在实体类内部定义接口
    • 对校验项进行分组:通过 groups 属性指定
    • 校验时指定分组:给 @Validated 注解的 value 属性赋值
    • 校验项默认属于:Default 分组

⚙️ 各层职责与代码规范

🔗 Controller 层

@RestController
@RequiredArgsConstructor
@RequestMapping("/category")
public class CategoryController {...
}

🔗 Service 层

public interface CategoryService {...
}
@Service
@RequiredArgsConstructor
public class CategoryServiceImpl implements CategoryService {...
}

🔗 Mapper 层

@Mapper
public interface CategoryMapper {...
}

🔗 层间交互与依赖注入

@Service
@RequiredArgsConstructor
public class CategoryServiceImpl implements CategoryService {private final CategoryMapper categoryMapper;...
}
@RestController
@RequiredArgsConstructor
@RequestMapping("/category")
public class CategoryController {private final CategoryService categoryService;...
}

🔍 功能实现详解

🎯 新增文章分类

🧩 Controller 层

请求路径:/category
请求方式:POST
接口描述:该接口用于新增文章分类

@PostMapping
public Result addCategory(@RequestBody @Validated(Category.Add.class) Category category) {categoryService.addCategory(category);return Result.success();
}

🧩 Service 层

  • 接口
// 新增分类
void addCategory(Category category);// 根据分类名称查询分类信息
Category findCategoryByName(String categoryName);// 根据分类别名查询分类信息
Category findCategoryByAlias(String categoryAlias);
  • 实现
/*** 添加分类** @param category 分类对象*/
@Override
public void addCategory(Category category) {// 补充属性值category.setCreateTime(LocalDateTime.now());category.setUpdateTime(LocalDateTime.now());Map<String, Object> map = ThreadLocalUtil.get();Integer userId = (Integer) map.get("id");category.setCreateUser(userId);// 判断分类名称是否已存在Category categoryByName = findCategoryByName(category.getCategoryName());if (categoryByName != null) {throw new RuntimeException("分类名称已存在");}// 判断分类别名是否已存在Category categoryByAlias = findCategoryByAlias(category.getCategoryAlias());if (categoryByAlias != null) {throw new RuntimeException("分类别名已存在");}categoryMapper.addCategory(category);
}/*** 根据分类名称查询分类对象** @param categoryName 分类名称* @return 分类对象*/
@Override
public Category findCategoryByName(String categoryName) {return categoryMapper.findCategoryByName(categoryName);
}/*** 根据分类别名查询分类对象** @param categoryAlias 分类别名* @return 分类对象*/
@Override
public Category findCategoryByAlias(String categoryAlias) {return categoryMapper.findCategoryByAlias(categoryAlias);
}

Mapper 层

// 新增文章分类
@Insert("insert into category(category_name, category_alias, create_user, create_time, update_time) " +"values(#{categoryName}, #{categoryAlias}, #{createUser}, #{createTime}, #{updateTime})")
void addCategory(Category category);// 根据分类名称查询分类
@Select("select * from category where category_name = #{categoryName}")
Category findCategoryByName(String categoryName);// 根据分类别名查询分类
@Select("select * from category where category_alias = #{categoryAlias}")
Category findCategoryByAlias(String categoryAlias);

🎯 文章分类列表

🧩 Controller 层

请求路径:/category
请求方式:GET
接口描述:该接口用于获取当前已登录用户创建的所有文章分类

@GetMapping
public Result<List<Category>> getCategoryList() {List<Category> categoryList = categoryService.getCategoryList();return Result.success(categoryList);
}

🧩 Service 层

  • 接口
// 列表查询
List<Category> getCategoryList();
  • 实现
/*** 查询分类列表** @return 分类列表*/
@Override
public List<Category> getCategoryList() {Map<String, Object> map = ThreadLocalUtil.get();Integer userId = (Integer) map.get("id");return categoryMapper.getCategoryList(userId);
}

🧩 Mapper 层

// 查询某用户的所有文章分类
@Select("select * from category where create_user = #{userId}")
List<Category> getCategoryList(Integer userId);

🎯 获取文章分类详情

🧩 Controller 层

请求路径:/category/detail
请求方式:GET
接口描述:该接口用于根据ID获取文章分类详情

@GetMapping("/detail")
public Result<Category> getCategoryDetail(Integer id) {Category category = categoryService.findCategoryById(id);return Result.success(category);
}

🧩 Service 层

  • 接口
// 根据 id 查询分类信息
Category findCategoryById(Integer id);
  • 实现
/*** 根据id查询分类对象** @param id 分类id* @return 分类对象*/
@Override
public Category findCategoryById(Integer id) {Category category = categoryMapper.findCategoryById(id);return category;
}

🧩 Mapper 层

// 根据 id 查询文章分类
@Select("select * from category where id = #{id}")
Category findCategoryById(Integer id);

🎯 更新文章分类

🧩 Controller 层

请求路径:/category
请求方式:PUT
接口描述:该接口用于更新文章分类

@PutMapping
public Result updateCategory(@RequestBody @Validated(Category.Update.class) Category category) {categoryService.updateCategory(category);return Result.success();
}

🧩 Service 层

  • 接口
// 更新文章分类
void updateCategory(Category category);
  • 实现
/*** 修改分类** @param category 分类对象*/
@Override
public void updateCategory(Category category) {category.setUpdateTime(LocalDateTime.now());categoryMapper.updateCategory(category);
}

🧩 Mapper 层

@Update("update category " +"set category_name = #{categoryName}, category_alias = #{categoryAlias}, update_time = #{updateTime} " +"where id = #{id}")
void updateCategory(Category category);

🎯 删除文章分类

请求路径:/category
请求方式:DELETE
接口描述:该接口用于根据ID删除文章分类

🧩 Controller 层

@DeleteMapping
public Result deleteCategory(Integer id){categoryService.deleteCategoryById(id);return Result.success();
}

🧩 Service 层

  • 接口
// 删除文章分类
void deleteCategoryById(Integer id);
  • 实现
/*** 根据id删除分类** @param id 分类id*/
@Override
public void deleteCategoryById(Integer id) {categoryMapper.deleteCategoryById(id);
}

🧩 Mapper 层

@Delete("delete from category where id = #{id}")
void deleteCategoryById(Integer id);
http://www.dtcms.com/wzjs/101439.html

相关文章:

  • 做推广优化的网站有哪些内容怎么接推广
  • python网站开发实例教程软文发布公司
  • 公众号微信效果好的关键词如何优化
  • 公司商标标志设计seo关键词排名价格
  • 做网站申请域名的流程短视频平台推广方案
  • 企业网站深圳中国的网络营销公司
  • 做一个网站的完整教程高级搜索百度
  • 张家港做网站排名网络推广方案范文
  • 关键词整站排名优化整站优化多少钱
  • 中山企业网站制作公司品牌推广服务
  • 保定微网站 建设排名优化关键词
  • 微信网站建设和维护上海发布微信公众号
  • 做的网站是怎么被收录站长统计app网站
  • 网址生成济宁seo优化公司
  • 网站维护 静态页面企业宣传方式
  • 深圳最好的网站开发公司灵感关键词生成器
  • 网站建设找什么工作百度搜索趋势
  • 重庆网站建设 沛宣百度手机助手下载安卓版
  • 网站建设公司的职责网络销售适合什么人做
  • 吉林做网站数字营销公司排行榜
  • 做国内网站多少钱厦门seo顾问
  • 如何组做网站台州网站建设平台
  • 自己做视频类网站用哪个cms朝阳区seo
  • 深圳做企业网站的公司推荐品牌软文案例
  • 有关建筑企业的网站有哪些百度产品推广
  • 中国建设信号工证网站360优化大师官方免费下载
  • 简洁文章网站模板下载专业seo外包
  • 网站开发文档步骤应该怎么写打开百度
  • phicomm怎么做网站大数据营销软件
  • 怎么做网站封面上的图百度网站提交入口