TienChin 活动管理-修改活动接口

简介: TienChin 活动管理-修改活动接口

前端

activity.js

直接替换现有的,最求速度了,后面在详细一个个记录,不在过多解释了。

import request from '@/utils/request'
/**
 * 查询活动列表
 * @param query 查询条件参数
 * @returns {*} 查询结果
 */
export function listActivity(query) {
    return request({
        url: '/tienchin/activity/list',
        method: 'get',
        params: query
    })
}
/**
 * 查询渠道列表
 * @returns {*} 查询结果
 */
export function listChannel() {
    return request({
        url: '/tienchin/activity/channel/list',
        method: 'get'
    })
}
/**
 * 查询活动详细
 * @param activityId 活动ID
 * @returns {*} 查询结果
 */
export function getInfo(activityId) {
    return request({
        url: '/tienchin/activity/' + activityId,
        method: 'get'
    })
}
// 查询活动详细
export function getActivity(activityId) {
    return request({
        url: '/tienchin/activity/' + activityId,
        method: 'get'
    })
}
// 新增活动
export function addActivity(data) {
    return request({
        url: '/tienchin/activity',
        method: 'post',
        data: data
    })
}
// 修改活动
export function updateActivity(data) {
    return request({
        url: '/tienchin/activity',
        method: 'put',
        data: data
    })
}
// 删除活动
export function delActivity(activityIds) {
    return request({
        url: '/tienchin/activity/' + activityIds,
        method: 'delete'
    })
}

后端

我们在进行数据修改的时候,有的数据在新增的时候是需要校验必填项的,但是在编辑的时候却不需要,这个时候可以使用校验分组的方式进行区分实现方式如下。


新建一个 validator 包,在当中分别创建,CreateGroup,EditGroup:

/**
 * @author BNTang
 * @version 1.0
 * @description 添加活动校验分组
 * @since 2023-09-10
 **/
public interface CreateGroup {
}
/**
 * @author BNTang
 * @version 1.0
 * @description 编辑活动校验分组
 * @since 2023-09-10
 **/
public interface EditGroup {
}

ActivityController.java

2105804-20230922012224176-1717810897.png

@PreAuthorize("hasPermission('tienchin:activity:create')")
@Log(title = "活动管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated(CreateGroup.class) @RequestBody ActivityVO activityVO) {
    return AjaxResult.success(iActivityService.addActivity(activityVO) > 0 ? "添加成功" : "添加失败");
}
/**
 * 修改活动
 */
@PreAuthorize("hasPermission('tienchin:activity:edit')")
@Log(title = "活动管理", businessType = BusinessType.UPDATE)
@PutMapping
AjaxResult edit(@Validated(EditGroup.class) @RequestBody ActivityVO activityVO) {
    return AjaxResult.success(iActivityService.updateActivity(activityVO) > 0 ? "更新成功" : "更新失败");
}

ValidationMessages.properties

添加一个活动id不能为空的校验信息:

activity.id.notnull=活动ID不能为空

ActivityVO

/**
 * 活动ID
 */
@NotNull(message = "{activity.id.notnull}", groups = {EditGroup.class})
private Integer activityId;
/**
 * 活动名称
 */
@NotBlank(message = "{activity.name.notBlank}", groups = {EditGroup.class, CreateGroup.class})
@Size(max = 20, message = "{activity.name.size}", groups = {EditGroup.class, CreateGroup.class})
private String activityName;
/**
 * 渠道ID
 */
@NotNull(message = "{activity.channelId.notnull}", groups = {EditGroup.class, CreateGroup.class})
private Integer channelId;
/**
 * 活动简介
 */
@NotBlank(message = "{activity.info.notBlank}", groups = {EditGroup.class, CreateGroup.class})
@Size(max = 255, message = "{activity.info.size}", groups = {EditGroup.class, CreateGroup.class})
private String activityInfo;
/**
 * 活动类型,1.折扣券、2.代金券
 */
@NotNull(message = "{activity.type.notnull}", groups = {EditGroup.class, CreateGroup.class})
private Integer activityType;
/**
 * 活动状态,0.表示禁用、1.表示正常
 */
@Max(value = 1, message = "{activity.status.max}", groups = {EditGroup.class, CreateGroup.class})
@Min(value = 0, message = "{activity.status.min}", groups = {EditGroup.class, CreateGroup.class})
private Integer activityStatus;
/**
 * 折扣券
 */
@Max(value = 10, message = "{activity.discount.max}", groups = {EditGroup.class, CreateGroup.class})
@Min(value = 0, message = "{activity.discount.min}", groups = {EditGroup.class, CreateGroup.class})
private Double discount;
/**
 * 代金券
 */
@Min(value = 0, message = "{activity.voucher.min}", groups = {EditGroup.class, CreateGroup.class})
private Double voucher;
/**
 * 活动开始时间
 */
@NotNull(message = "{activity.beginTime.notnull}", groups = {EditGroup.class, CreateGroup.class})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime beginTime;
/**
 * 活动结束时间
 */
@NotNull(message = "{activity.endTime.notnull}", groups = {EditGroup.class, CreateGroup.class})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime endTime;

IActivityService

/**
 * 修改活动
 *
 * @param activityVO 活动信息
 * @return 结果
 */
int updateActivity(ActivityVO activityVO);

ActivityServiceImpl

@Override
public int updateActivity(ActivityVO activityVO) {
    Activity activity = new Activity();
    BeanUtils.copyProperties(activityVO, activity);
    activity.setUpdateBy(SecurityUtils.getUsername());
    activity.setUpdateTime(LocalDateTime.now());
    // 将来更新的时候,不修改为 null 的字段
    activity.setCreateBy(null);
    activity.setCreateTime(null);
    activity.setDelFlag(null);
    return updateById(activity) ? 1 : 0;
}

!> 将实体类都统一放入到 domain 包当中自己改下


目录
相关文章
|
机器学习/深度学习 人工智能 搜索推荐
人工智能发音评估(Artificial Intelligence Pronunciation Scoring, AI-PS)
人工智能发音评估(Artificial Intelligence Pronunciation Scoring, AI-PS)
1959 2
|
XML 分布式计算 安全
hadoop升级流程
hadoop升级流程
|
应用服务中间件 Docker 容器
Docker 安装 Tomcat
一、查看 tomcat 版本 访问 tomcat 镜像库地址:https://hub.docker.com/_/tomcat,可以通过 Tags 查看其他版本的 tomcat; 二、拉取 Tomcat Docker 镜像 打开终端或命令提示符,运行以下命令从 Docker Hub 拉取 Tomcat Docker 镜像: docker pull tomcat 三、创建 Tomcat 容器 一旦 Tomcat 镜像下载完成,可以基于该镜像创建一个容器。运行以下命令创建 Tomcat 容器: docker run -d -p 8080:8080 --name tomcat-container t
788 0
|
人工智能 计算机视觉
教程 |【阿里云.人脸识别】Access Key ID 和 Access Key Secret 查看方法
本章主要介绍阿里云.人脸识别 Access Key ID 和 Access Key Secret 查看方法。
|
5月前
|
人工智能 搜索推荐 知识图谱
中国文旅产业的下一个十年:由生成式引擎优化与知识图谱驱动
当AI搜索成为游客的第一入口,文旅产业的竞争从“流量战”转向“认知战”。本文从技术角度解析GEO(生成式引擎优化)与文旅知识图谱如何重塑产业格局,并提供面向不同主体的行动建议。
|
7月前
|
人工智能 JSON 机器人
Win10/11 飞书联动 OpenClaw 远程办公自动化搭建教程
OpenClaw(小龙虾)v2.4.1 新增飞书机器人支持!无需公网,通过内网长连接即可实现飞书端自然语言指令下发,自动解析、拆解并执行本地AI自动化任务。Windows一键部署,可视化配置,适配Win10/11,开箱即用。(239字)
1256 3
|
7月前
|
供应链 安全 API
企业股权穿透图-企业股权穿透信息查询-公司股权穿透查询-公司股权结构-公司股权结构查询
本服务通过关键词智能检索企业上下游产业链及对外投资关联信息,整合直接/间接投资、参股控股等多层级经营关系,清晰呈现股权结构与产业脉络,助力商业尽调、信贷风控、投资决策、招投标审查及并购交易,提供全面可靠的数据支撑。
631 0
|
存储 数据采集 数据可视化
大数据处理技术
【4月更文挑战第10天】大数据处理涵盖采集、预处理、存储、分析挖掘、展现和应用等关键步骤。采集涉及多种类型数据,预处理确保数据质量,存储管理关注规模、速度和安全,分析挖掘利用机器学习发现价值,展现和应用则通过可视化和检索实现数据价值。云计算和AI强化了大数据处理能力,整体目标是提取数据中的价值,驱动企业和社会进步。
1613 4
大数据处理技术
|
图形学
unity噪声消融效果Shader实现
在 Unity 中实现噪声消融效果,利用噪声纹理和透明度裁剪技术。噪声纹理(如 Perlin 噪声)为物体表面提供随机参考值,透明度裁剪通过设置阈值控制显示与消失。具体步骤包括引入噪声纹理、设置阈值和边缘颜色,使用自定义着色器代码实现物体部分消失的视觉效果。通过调整材质球和噪声贴图,可优化最终呈现。
|
Kubernetes 异构计算 容器
Kubelet之Topology Manager分析
Topology Manager是kubelet的一个组件,在kubernetes 1.16加入,而kubernetes 1.18中该feature变为beta版。本篇文档将分析Topology Manager的具体工作原理。1.为什么需要Topology Manager现代计算机的CPU架构多采用NUMA(Non-Uniform Memory Access,非统一内存)架构。NUMA就是将cpu
5527 0