TienChin 活动管理-添加活动接口

简介: 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;


目录
相关文章
|
网络协议 Windows
网络连接正常但百度网页打不开显示无法访问此网站解决方案
网络连接正常但百度网页打不开显示无法访问此网站解决方案
2618 0
网络连接正常但百度网页打不开显示无法访问此网站解决方案
|
Dubbo Java 应用服务中间件
微服务框架(十)Maven Archetype制作Dubbo项目原型
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Maven Archetype的制作及使用,使用archetype插件制作Dubbo项目原型
|
C语言
【C语言】atoi函数的使用和模拟实现
本篇将介绍atoi函数的使用,通过实例讲解函数的使用方法,模拟实现atoi函数。
367 1
|
Java Android开发
jvisualvm分析jvm内存溢出
jvisualvm分析jvm内存溢出
1464 0
jvisualvm分析jvm内存溢出
|
Kubernetes 网络协议 微服务
Istio的流量管理(实操一)
Istio的流量管理(实操一)
201 3
|
数据可视化
R语言弹性网络Elastic Net正则化惩罚回归模型交叉验证可视化
R语言弹性网络Elastic Net正则化惩罚回归模型交叉验证可视化
|
存储 缓存 IDE
CAN通信的基本原理与实现方法
CAN通信的基本原理与实现方法
2093 1
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
622 5
|
安全 Java
Java switch case隐藏用法
在 Java 中,`switch` 语句是一种多分支选择结构,常用于根据变量值执行不同代码块。除基本用法外,它还有多种进阶技巧,如使用字符串(Java 7 开始支持)、多个 `case` 共享代码块、不使用 `break` 实现 “fall-through”、使用枚举类型、使用表达式(Java 12 及以上)、组合条件以及使用标签等。这些技巧使代码更加简洁、清晰且高效。
283 1
|
12月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
743 2
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......