TienChin 活动管理-添加活动接口
ActivityController
@PreAuthorize("hasPermission('tienchin:activity:create')")
@Log(title = "活动管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody ActivityVO activityVO) {
return AjaxResult.success(iActivityService.addActivity(activityVO) > 0 ? "添加成功" : "添加失败");
}
IActivityService
/**
* 添加活动
*
* @param activityVO 活动信息
* @return 结果
*/
int addActivity(ActivityVO activityVO);
ActivityServiceImpl
@Override
public int addActivity(ActivityVO activityVO) {
Activity activity = new Activity();
BeanUtils.copyProperties(activityVO, activity);
activity.setCreateTime(LocalDateTime.now());
activity.setCreateBy(SecurityUtils.getUsername());
return save(activity) ? 1 : 0;
}
ValidationMessages.properties
# 活动管理
activity.name.notBlank=活动名称不能为空
activity.name.size=活动名称最大长度为20个字符
activity.channelId.notnull=渠道ID不能为空
activity.info.notBlank=活动简介不能为空
activity.info.size=活动简介最多为255个字符
activity.type.notnull=活动类型不能为空
activity.status.max=活动状态最大值为1
activity.status.min=活动状态最小值为0
activity.discount.max=折扣最大值为1
activity.discount.min=折扣最小值为0
activity.voucher.min=代金券最小值为0
activity.beginTime.notnull=活动开始时间不能为空
activity.endTime.notnull=活动结束时间不能为空
ActivityVO
/**
* 活动名称
*/
@NotBlank(message = "{activity.name.notBlank}")
@Size(max = 20, message = "{activity.name.size}")
private String activityName;
/**
* 渠道ID
*/
@NotNull(message = "{activity.channelId.notnull}")
private Integer channelId;
/**
* 渠道名称
*/
private String channelName;
/**
* 活动简介
*/
@NotBlank(message = "{activity.info.notBlank}")
@Size(max = 255, message = "{activity.info.size}")
private String activityInfo;
/**
* 活动类型,1.折扣券、2.代金券
*/
@NotNull(message = "{activity.type.notnull}")
private Integer activityType;
/**
* 活动状态,0.表示禁用、1.表示正常
*/
@Max(value = 1, message = "{activity.status.max}")
@Min(value = 0, message = "{activity.status.min}")
private Integer activityStatus;
/**
* 折扣券
*/
@Max(value = 10, message = "{activity.discount.max}")
@Min(value = 0, message = "{activity.discount.min}")
private Double discount;
/**
* 代金券
*/
@Min(value = 0, message = "{activity.voucher.min}")
private Double voucher;
/**
* 活动开始时间
*/
@NotNull(message = "{activity.beginTime.notnull}")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime beginTime;
/**
* 活动结束时间
*/
@NotNull(message = "{activity.endTime.notnull}")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private LocalDateTime endTime;
BaseEntity
给基础实体类时间字段添加时区属性。
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date updateTime;
TienChin 活动管理-添加活动接口的更多相关文章
- Alpha2版本-组织管理、党员管理、活动管理测试
小程序组织管理.党员管理.活动管理测试-测试报告 一.测试工具的选择 微信安卓版v7.0.8 微擎工具v1.7.0 PHPstorm Google Chrome 76.0.3623 二.测试用例 ...
- Android活动管理工具
ActivityCollector.java import android.app.Activity; import java.util.ArrayList; import java.util.Lis ...
- Android笔记:管理所有活动
以关闭所有活动为例 public class ActivityCollector { public static List<Activity> activities = new Array ...
- ERP渠道活动管理(二十六)
设计意义: 渠道活动的方式方法多种多样.不过,大至可分为销售型促销与市场型促销(一般来说,销售型促销以完成销售额为唯一目的,以奖励返点为唯一手段,以增大经销商库存为最终结果,短期行为明显.而市场型促销 ...
- Android训练课程(Android Training) - 添加活动栏(使用action bar)
2014-10-28 张云飞VIR 翻译自:https://developer.android.com/training/basics/actionbar/index.html 添加活动栏(Addin ...
- 玩转Windows服务系列——给Windows服务添加COM接口
当我们运行一个Windows服务的时候,一般情况下,我们会选择以非窗口或者非控制台的方式运行,这样,它就只是一个后台程序,没有界面供我们进行交互. 那么当我们想与Windows服务进行实时交互的时候, ...
- Vue之状态管理(vuex)与接口调用
Vue之状态管理(vuex)与接口调用 一,介绍与需求 1.1,介绍 1,状态管理(vuex) Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态 ...
- 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页
Service: /** * @Description: 1.保存定区 2.让分区关联定区 * 对象三种状态 1.持久态(被session管理对象-一级缓存中有对象) 2.托管态(有OID标识,数据 ...
- 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_14-课程预览功能开发-CMS添加页面接口
5.3 CMS添加页面接口 cms服务对外提供添加页面接口,实现:如果不存在页面则添加,否则就更新页面信息. 此接口由课程管理服务在课程预览时调用. 接口方法.:页面没有就添加.有了更新数据 之前的接 ...
- 电商管理后台 API 接口文档
1. 电商管理后台 API 接口文档 1.1. API V1 接口说明 接口基准地址:http://127.0.0.1:8888/api/private/v1/ 服务端已开启 CORS 跨域支持 AP ...
随机推荐
- 3-3 vector 和 迭代器
1 vector 容器vector可以理解为变长数组,它里面放的是相同类型的元素. vector<int> vec={1,2,3,4};//拷贝构造 vector<string> ...
- ORM执行SQL 双下划线查询 ORM外键字段创建 外键字段相关操作 ORM跨表查询 跨表查询进阶操作
目录 ORM执行SQL语句 方式1:使用pymysql模块 方式2:使用raw方法 方式3:django connection 双下划线查询 __gt(>) __lt(<) queryse ...
- LVS Nginx HAProxy区别
LVS 抗负载能力强,性能高,能达到F5硬件的60%,对内存和cpu资源消耗比较低 工作在四层仅作分发之用,通过vrrp协议转发,具体流量由linux内核处理,没有流量的产生 稳定性.可靠性好,自身有 ...
- Python 使用pip或easy_install或手动安装库/模块/软件包
pip是easy_install的改进版,提供更好的提示信息,删除package等功能.老版本的python中只有easy_install,没有pip.本文主要介绍使用pip或easy_install ...
- POJ:1511 Invitation Cards(双向搜索最短路径)
POJ :1511 http://poj.org/problem?id=1511 思路 求1号点到其他点的最短路 + 其他点到1号点的最短. 结果用long long. 用快读可以加快时间 代码 sp ...
- L2-010. 排座位(种类并查集)
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位.无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席. 输入格式: ...
- 广州|阿里云 Serverless 技术实战营邀你来玩!
活动简介 "Serverless 技术实战与创新沙龙 " 是一场以 Serverless 为主题的开发者活动,活动受众以关注Serverless 技术的开发者.企业决策人.云原生领 ...
- 即学即会 Serverless | 如何解决 Serverless 应用开发部署的难题?
本文节选自<Serverless 开发速查手册>,关注Serverless 公众回复 手册 即可获得下载链接 作者 | 江昱(阿里云 Serverless 产品经理) 破局:工具链体系匮乏 ...
- ava进阶(39)--守护线程与定时器
文档目录: 一.守护线程 二.定时器 ---------------------------------------分割线:正文------------------------------------ ...
- 6. 配置项:relabel_config
6.1relabel_config的位置 6.2 relabel_config参数详解 1.replace 2. keep 3.drop 6.labelkeep 7.hashmod 6.3 正则表达式 ...