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;
}


目录
相关文章
|
8月前
|
存储 JavaScript 前端开发
usdt余额模拟生成器,模拟生成PureScript工具库
该项目为USDT母生成器,采用PureScript技术栈开发,旨在提供安全可靠的USDT母生成工具,服务于相关区块链应用开发。
1487 0
|
算法框架/工具
成功解决INFO: pip is looking at multiple versions of keras-preprocessing to determine which version is c
成功解决INFO: pip is looking at multiple versions of keras-preprocessing to determine which version is c
|
数据采集 存储 缓存
构建“天气雷达”一样的网页监控系统
证券级信息精准监测系统,具备雷达感知能力,实时探测网页变动,快速响应公告更新,助力投资决策抢占先机。
662 0
构建“天气雷达”一样的网页监控系统
|
12月前
|
数据采集 SQL 人工智能
评估工程正成为下一轮 Agent 演进的重点
AI系统因不确定性需重构评估体系,评估工程正从人工经验走向自动化。通过LLM-as-a-Judge、奖励模型与云监控2.0等技术,实现对Agent输出的可量化、可追溯、闭环优化的全周期评估,构建AI质量护城河。(238字)
|
存储 人工智能 数据可视化
从零构建能自我优化的AI Agent:Reflection和Reflexion机制对比详解与实现
AI能否从错误中学习?Reflection与Reflexion Agent通过生成-反思-改进循环,实现自我优化。前者侧重内容精炼,后者结合外部研究提升准确性,二者分别适用于创意优化与知识密集型任务。
2368 9
从零构建能自我优化的AI Agent:Reflection和Reflexion机制对比详解与实现
|
缓存 Android开发 开发者
《跨端开发变革者:解码阿里Ant Container Engine的底层逻辑》
阿里Ant Container Engine(ACE)是跨端开发领域的革新工具,通过一套代码库实现多端应用构建,大幅降低开发成本与周期。它整合丰富组件库与优化工具链,确保各平台一致的优质体验。ACE的热插拔技术实现毫秒级更新,助力应用快速迭代;深度性能优化使其媲美原生应用。以闲鱼为例,其跨端模块占比达78%,彰显ACE高效灵活特性。ACE助力企业降本增效、抓住市场机遇,推动数字化创新与发展。
415 11
|
SQL Oracle 关系型数据库
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
2869 0
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【9月更文挑战第10天】随着软件应用的不断扩展,性能测试成为确保系统稳定运行的关键环节。本文通过对比Apache JMeter和Locust,探讨了如何在Python环境中利用这两款工具挖掘更多性能测试潜力。JMeter是一款成熟且功能强大的开源工具,支持多种协议,适用于各种应用的测试;而Locust则基于Python,通过简单脚本模拟HTTP请求,更适合Web应用测试。
608 3
|
机器学习/深度学习 存储 缓存
2024机器遗忘(Machine Unlearning)技术分类-思维导图
本文通过思维导图的形式,详细介绍了机器遗忘技术的分类、优缺点、面临的威胁和攻击以及防御机制,并探讨了评估机器遗忘系统有效性的方法,包括精确遗忘和近似遗忘技术,以及在数据隐私保护和法律遵从方面的应用。
1818 5
|
安全 Java 测试技术
最佳实践:通义灵码生成单元测试,让单测更简单
本文首先讲述了什么是单元测试、单元测试的价值、一个好的单元测试所具备的原则,进而引入如何去编写一个好的单元测试,通义灵码是如何快速生成单元测试的。