package cn.lili.modules.lmk.domain.form; import cn.lili.group.Update; import cn.lili.group.Add; import cn.lili.base.AbsForm; import cn.lili.modules.lmk.domain.entity.ActionRecord; import org.springframework.beans.BeanUtils; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 用户行为记录表单 * * @author peng * @since 2025-09-08 */ @Data @ApiModel(value = "ActionRecord表单", description = "用户行为记录表单") public class ActionRecordForm extends AbsForm { @NotNull(message = "用户id不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("用户id") private Long userId; @NotBlank(message = "页面会话id不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("页面会话id") private String sessionId; @NotBlank(message = "行为类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("行为类型") private String actionType; @NotNull(message = "触发时间不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("触发时间") private Date startTime; @NotBlank(message = "进入页面方式不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("进入页面方式") private String joinType; @NotBlank(message = "上一个页面的会话id不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("上一个页面的会话id") private String previousSessionId; @NotNull(message = "分享id不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("分享id") private Long shareId; @NotBlank(message = "页面编码不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("页面编码") private String pageCode; @NotBlank(message = "页面详情参数(json格式)不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("页面详情参数(json格式)") private String pageParams; @NotBlank(message = "页面类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("页面类型") private String pageType; @NotBlank(message = "用户在页面状态不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("用户在页面状态") private String pageStatus; public static ActionRecord getEntityByForm(@NonNull ActionRecordForm form, ActionRecord entity) { if(entity == null) { entity = new ActionRecord(); } BeanUtils.copyProperties(form, entity); return entity; } }