前端

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

@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 包当中自己改下

TienChin 活动管理-修改活动接口的更多相关文章

  1. Alpha2版本-组织管理、党员管理、活动管理测试

    小程序组织管理.党员管理.活动管理测试-测试报告   一.测试工具的选择 微信安卓版v7.0.8 微擎工具v1.7.0 PHPstorm Google Chrome 76.0.3623 二.测试用例 ...

  2. ERP渠道活动管理(二十六)

    设计意义: 渠道活动的方式方法多种多样.不过,大至可分为销售型促销与市场型促销(一般来说,销售型促销以完成销售额为唯一目的,以奖励返点为唯一手段,以增大经销商库存为最终结果,短期行为明显.而市场型促销 ...

  3. Android笔记:管理所有活动

    以关闭所有活动为例 public class ActivityCollector { public static List<Activity> activities = new Array ...

  4. 谈谈如何用eoLinker管理各类API接口及分享API接口管理小技巧教程

    在前后端分离的开发模式下,前后端往往需要接口文档来进行交互.我的上一篇随笔中已经写到用传统的文档写接口时,由于需求经常变动,接口文档也会随之变动.一开始,某接口信息已经写入文档,但后期因为需求变动,发 ...

  5. Vue之状态管理(vuex)与接口调用

    Vue之状态管理(vuex)与接口调用 一,介绍与需求 1.1,介绍 1,状态管理(vuex) Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态 ...

  6. 电商管理后台 API 接口文档

    1. 电商管理后台 API 接口文档 1.1. API V1 接口说明 接口基准地址:http://127.0.0.1:8888/api/private/v1/ 服务端已开启 CORS 跨域支持 AP ...

  7. Ruby操作VBA的注意事项和技巧(1):乱码、获取VBA活动和非活动窗口的名称与路径、文件路径的智能拼接与截取(写入日期)

    1.VBA编辑器复制粘贴出来的代码乱码     解决方法:切换到中文输入模式再复制出来就行了 2.获取VBA活动和非活动窗口的名称与路径 Dim wbpath, filename As String ...

  8. git(工作区,暂存区,管理修改,撤销修改,删除文件)

    工作区和暂存区 984次阅读 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的l ...

  9. git教程:管理修改

    转载:管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行 ...

  10. Linux 下修改网卡接口名

    Linux下修改网卡接口名 by:授客 QQ:1033553122 (测试环境:CentOS-6.0-x86_64-bin-DVD1.iso+Vmware) 作用 可以用于解决类似如下Device n ...

随机推荐

  1. 鸿蒙HarmonyOS实战-工具安装和Helloworld案例

    前言 HarmonyOS是华为自主开发的操作系统,它在2020年9月正式发布.它最初被称为鸿蒙OS,后来更名为HarmonyOS.HarmonyOS旨在提供一种可在各种设备上无缝运行的统一操作系统,包 ...

  2. Codeforces Round #645 (Div. 2)

    这一次的Div.2 大多数学思维.. A. Park Lightingtime https://codeforces.com/contest/1358/problem/A 题意:给一个n,m为边的矩形 ...

  3. 2020年第十一届蓝桥杯省赛 第一场(7月5日)B组个人题解

    PDF文件下载: https://files.cnblogs.com/files/Angel-Demon/CB.zip 试题 A: 跑步训练 [问题描述] 小明要做一个跑步训练. 初始时,小明充满体力 ...

  4. 领域驱动设计(DDD)实践之路(二):事件驱动与CQRS

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/Z3uJhxJGDif3qN5OlE_woA作者:wenbo zhang [领域驱动设计实践之 ...

  5. gitlab安装,移库,升级

    概述 最近因为机房原因,需要把我们的本地代码库做移库操作. 针对gitlab的安装升级操作重新进行了梳理,记录一下. 环境 CENTOS6 CENTOS7 gitlab-ce-8.14.2 GITLA ...

  6. python爬虫-豆瓣电影top250

    一.python爬虫简介1.什么是爬虫:网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本.由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略 ...

  7. Fedora 设置 core 文件路径

    sudo vim /etc/sysctl.conf 输入 kernel.core_pattern=core.%p sudo /lib/systemd/systemd-sysctl 使修改生效 cat ...

  8. 基于java+springboot的旅游信息网站、旅游景区门票管理系统

    该系统是基于java+springboot开发的旅游景区门票管理系统.是给师弟开发的大四实习作品.学习过程中,遇到问题可以咨询github作者. 演示地址 前台地址: http://travel.gi ...

  9. AHB-SRAMC Design-03

    SRAMC SRAM CORE 8块memory进行广播信号,例化8片memory

  10. 【Gerrit】 快捷操作

    A:添加Reviewers V+B:Pachset刷到最新 D:Download patch J.K:文件移动选中 R:文件Reviewed状态修改 S:五星状态修改,可用于分类管理 U:返回上层 I ...