TienChin-课程管理-课程更新接口

简介: TienChin-课程管理-课程更新接口

更改包名

将之前的 entity 更改为 domain:



将之前的 validator 包当中的校验分组接口移动到 common 模块当中,因为其它模块也需要使用就放到公共当中进行存储。



更改完毕之后在修改下 Course.java 的校验注解的作用范围:

/**
 * 课程ID
 */
@TableId(value = "course_id", type = IdType.AUTO)
@NotNull(message = "{course.id.notnull}")
private Integer courseId;
/**
 * 课程类型 1.舞蹈类 2.游泳类 3.拳击类
 */
@NotNull(message = "{course.type.notnull}", groups = {EditGroup.class, CreateGroup.class})
private Integer type;
/**
 * 课程名称
 */
@NotBlank(message = "{course.name.notnull}", groups = {EditGroup.class, CreateGroup.class})
private String name;
/**
 * 课程价格
 */
@NotNull(message = "{course.price.notnull}", groups = {EditGroup.class, CreateGroup.class})
@Min(value = 0, message = "{course.price.invalid}", groups = {EditGroup.class, CreateGroup.class})
private Double price;
/**
 * 课程适用人群
 */
@NotNull(message = "{course.applyTo.notnull}", groups = {EditGroup.class, CreateGroup.class})
private Integer applyTo;
/**
 * 课程简介
 */
@NotBlank(message = "{course.info.notnull}", groups = {EditGroup.class, CreateGroup.class})
private String info;

ValidationMessages.properties

course.id.notnull=课程ID不能为空

CourseController.java

@PreAuthorize("hasPermission('tienchin:course:edit')")
@Log(title = "课程管理", businessType = BusinessType.UPDATE)
@PutMapping
AjaxResult edit(@Validated(EditGroup.class) @RequestBody Course course) {
    return AjaxResult.success(iCourseService.updateCourse(course) > 0 ? "更新成功" : "更新失败");
}
@PreAuthorize("hasPermission('tienchin:course:edit')")
@GetMapping("/{courseId}")
AjaxResult getInfo(@PathVariable Long courseId) {
    return AjaxResult.success(iCourseService.getById(courseId));
}

ICourseService.java

/**
 * 更新课程
 *
 * @param course 课程
 * @return 影响行数
 */
int updateCourse(Course course);

CourseServiceImpl.java

@Override
public int updateCourse(Course course) {
    // 设置不需要更新的字段
    course.setCreateBy(null);
    course.setCreateTime(null);
    course.setDelFlag(null);
    // 设置需要更新的字段
    course.setUpdateBy(SecurityUtils.getUsername());
    course.setUpdateTime(LocalDateTime.now());
    return updateById(course) ? 1 : 0;
}


目录
相关文章
|
11月前
|
存储 数据管理 开发者
Flutter&鸿蒙next 中的 setState 使用场景与最佳实践
在 Flutter 中,`setState` 是最常用的状态管理方法之一,用于更新局部状态并触发 UI 重新构建。本文介绍了 `setState` 的基本用法、代码示例、适用场景及最佳实践,帮助开发者高效地管理状态,确保代码的可维护性和性能。
283 1
socks5 搭建代理服务
socks5 搭建代理服务
865 0
|
存储 安全 算法
使用jotp实现双因子验证
扫盲使用totp增强身份安全性指南,原理看懂也不用自己造轮子呀,最讨厌哪些啥也不懂的搬运工,我这里给大家解惑吧
882 0
|
8月前
|
人工智能 数据可视化 数据库
低代码:真能“0代码”开发应用吗?
低代码平台通过“0代码”开发模式,利用拖拽组件和配置参数,大幅降低应用开发门槛,使无编程基础的用户也能快速构建应用。这种模式并非完全无需代码,而是将复杂代码封装成可视化组件,简化开发流程。低代码平台适用于多种场景,如企业内部工具、数据可视化等,尤其适合需要快速迭代和灵活调整的应用开发。其核心优势在于提升开发效率、支持多人协作、简化部署流程,并确保数据一致性。未来,低代码平台将进一步融合AI技术,提供智能代码助手、自动化测试等功能,优化开发体验,助力企业在数字化转型中实现高效创新。
|
12月前
|
机器学习/深度学习 编解码 自然语言处理
ResNet(残差网络)
【10月更文挑战第1天】
|
前端开发 JavaScript Linux
宝塔面板超级美化(登录页+后台)
宝塔面板超级美化(登录页+后台)
1447 0
宝塔面板超级美化(登录页+后台)
|
XML JSON 前端开发
json字符串CSS格式化
完成以上步骤后,你便能在网页中看到格式化后的JSON数据,它们将按照CSS定义的样式进行展示,使数据更易于阅读和理解。通过有效地结合JSON和CSS,你可以创建出更加丰富且易于交互的网页内容。
346 64
|
API 开发者 Java
API 版本控制不再难!Spring 框架带你玩转多样化的版本管理策略,轻松应对升级挑战!
【8月更文挑战第31天】在开发RESTful服务时,为解决向后兼容性问题,常需进行API版本控制。本文以Spring框架为例,探讨四种版本控制策略:URL版本控制、请求头版本控制、查询参数版本控制及媒体类型版本控制,并提供示例代码。此外,还介绍了通过自定义注解与过滤器实现更灵活的版本控制方案,帮助开发者根据项目需求选择最适合的方法,确保API演化的管理和客户端使用的稳定与兼容。
600 0
|
消息中间件 数据库
消息中间件系列教程(18) -RabbitMQ-基于RabbitMQ解决分布式事务(思想)
消息中间件系列教程(18) -RabbitMQ-基于RabbitMQ解决分布式事务(思想)
258 0