add 会议管理新增

This commit is contained in:
lijiarao
2021-09-02 17:54:37 +08:00
parent 0cbccc387d
commit 9e9f234ced
14 changed files with 673 additions and 53 deletions
@@ -7,11 +7,13 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.ValidUtil;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.service.IPayMeetingService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.meeting.vo.PayMeetingVO;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.validation.annotation.Validated;
@@ -69,8 +71,9 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
@AutoLog(value = "会议管理-添加")
@ApiOperation(value="会议管理-添加", notes="会议管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody PayMeeting payMeeting) {
payMeetingService.add(payMeeting);
public Result<?> add(@RequestBody PayMeetingVO payMeetingVO) {
ValidUtil.validate(payMeetingVO);
payMeetingService.add(payMeetingVO);
return Result.OK("添加成功!");
}
@@ -16,6 +16,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
/**
* @Description: 会议管理
* @Author: jero-boot
@@ -61,22 +63,21 @@ public class PayMeeting implements Serializable {
private String meetingName;
/**会议类型*/
@Excel(name = "会议类型", width = 15)
@Excel(name = "会议类型", width = 15,dicCode = "meeting_type")
@ApiModelProperty(value = "会议类型")
private String meetingType;
private Integer meetingType;
/**标协会议类型*/
@Excel(name = "标协会议类型", width = 15)
@Excel(name = "标协会议类型", width = 15,dicCode = "standard_meeting_type")
@ApiModelProperty(value = "标协会议类型")
private String tbMeetingType;
private Integer tbMeetingType;
/**工作组id*/
@Excel(name = "工作组id", width = 15)
@Excel(name = "工作组名称", width = 15, dictTable = "pay_working_group",dicText = "working_group_project",dicCode = "id")
@ApiModelProperty(value = "工作组id")
private String workingGroupId;
/**工作组名称*/
@Excel(name = "工作组名称", width = 15)
@ApiModelProperty(value = "工作组名称")
private String workingGroupName;
@@ -118,6 +119,11 @@ public class PayMeeting implements Serializable {
@ApiModelProperty(value = "召开地点")
private String venue;
//convokeLocale
/**召开地点对照码*/
@ApiModelProperty(value = "召开地点对照码")
private String convokeLocale;
/**详细地址*/
@Excel(name = "详细地址", width = 15)
@ApiModelProperty(value = "详细地址")
@@ -133,28 +139,54 @@ public class PayMeeting implements Serializable {
@ApiModelProperty(value = "会议内容")
private String meetingContent;
/**报名截止时间*/
@Excel(name = "报名截止时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "报名截止时间")
private java.util.Date registerDeadline;
/**VIP邀请码*/
@Excel(name = "VIP邀请码", width = 15)
@ApiModelProperty(value = "VIP邀请码")
private java.lang.String vipInvitationCode;
/**演讲嘉宾邀请码*/
@Excel(name = "演讲嘉宾邀请码", width = 15)
@ApiModelProperty(value = "演讲嘉宾邀请码")
private java.lang.String speakerInvitationCode;
/**特邀嘉宾邀请码*/
@Excel(name = "特邀嘉宾邀请码", width = 15)
@ApiModelProperty(value = "特邀嘉宾邀请码")
private java.lang.String guestInvitationCode;
/**合作伙伴邀请码*/
@Excel(name = "合作伙伴邀请码", width = 15)
@ApiModelProperty(value = "合作伙伴邀请码")
private java.lang.String cooperativeInvitationCode;
/**会议费用*/
@Excel(name = "会议费用", width = 15)
@ApiModelProperty(value = "会议费用")
private Integer meetingCosts;
/**vip会议费用*/
@Excel(name = "vip会议费用", width = 15)
@ApiModelProperty(value = "vip会议费用")
/**会议费用(标协会员)*/
@Excel(name = "会议费用(标协会员)", width = 15)
@ApiModelProperty(value = "会议费用(标协会员)")
private Integer meetingCostsVip;
/**会议负责人id*/
@Excel(name = "会议负责人id", width = 15)
@Excel(name = "会议负责人", width = 15,dictTable = "sys_user",dicText = "username",dicCode = "id")
@ApiModelProperty(value = "会议负责人id")
private String directorId;
/**会议负责人*/
@Excel(name = "会议负责人", width = 15)
@ApiModelProperty(value = "会议负责人")
private String directorName;
/**会议负责人手机号*/
@Excel(name = "会议负责人手机号", width = 15)
@Excel(name = "会议负责人手机号", width = 15,exportConvert = true)
@ApiModelProperty(value = "会议负责人手机号")
private String directorPhone;
@@ -168,11 +200,6 @@ public class PayMeeting implements Serializable {
@ApiModelProperty(value = "酒店地址")
private String hotelAddress;
/**酒店联系人*/
@Excel(name = "酒店联系人", width = 15)
@ApiModelProperty(value = "酒店联系人")
private String hotelContacts;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@@ -0,0 +1,60 @@
package com.jero.meeting.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @Description: 会议关联酒店联系人表
* @Author: jero-boot
* @Date: 2021-09-02
* @Version: V1.0
*/
@Data
@TableName("pay_meeting_hotel_contacts")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="pay_meeting_hotel_contacts对象", description="会议关联酒店联系人表")
public class PayMeetingHotelContacts implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private String id;
/**会议id*/
@Excel(name = "会议id", width = 15)
@ApiModelProperty(value = "会议id")
private String meetingId;
/**酒店联系人*/
@Excel(name = "酒店联系人", width = 15)
@ApiModelProperty(value = "酒店联系人")
@NotNull(message = "酒店联系人不能为空")
@Size(max = 50, message = "酒店联系人最多为50个字符")
private String hotelContacts;
/**酒店联系人电话*/
@Excel(name = "酒店联系人电话", width = 15)
@ApiModelProperty(value = "酒店联系人电话")
@NotNull(message = "酒店联系人电话")
@Size(max = 50, message = "酒店联系人电话最多为50个字符")
private String hotelContactsPhone;
}
@@ -0,0 +1,17 @@
package com.jero.meeting.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 会议关联酒店联系人表
* @Author: jero-boot
* @Date: 2021-09-02
* @Version: V1.0
*/
public interface PayMeetingHotelContactsMapper extends BaseMapper<PayMeetingHotelContacts> {
}
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.meeting.mapper.PayMeetingHotelContactsMapper">
<resultMap id="PayMeetingHotelContactsResultMap" type="com.jero.meeting.entity.PayMeetingHotelContacts">
<id column="id" property="id" />
<result column="meeting_id" property="meetingId" />
<result column="hotel_contacts" property="hotelContacts" />
<result column="hotel_contacts_phone" property="hotelContactsPhone" />
</resultMap>
</mapper>
@@ -0,0 +1,44 @@
package com.jero.meeting.service;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 会议关联酒店联系人表
* @Author: jero-boot
* @Date: 2021-09-02
* @Version: V1.0
*/
public interface IPayMeetingHotelContactsService extends IService<PayMeetingHotelContacts> {
/**
* 保存
*/
void add(PayMeetingHotelContacts payMeetingHotelContacts);
/**
* 更新
*/
void editById(PayMeetingHotelContacts payMeetingHotelContacts);
/**
* 通过id删除
*/
void deleteById(String id);
/**
* 批量删除
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*/
PayMeetingHotelContacts queryById(String id);
/**
* 列表查询
*/
List<PayMeetingHotelContacts> queryList();
}
@@ -2,6 +2,8 @@ package com.jero.meeting.service;
import com.jero.meeting.entity.PayMeeting;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.vo.PayMeetingVO;
import java.util.List;
/**
@@ -14,48 +16,37 @@ public interface IPayMeetingService extends IService<PayMeeting> {
/**
* 保存
*
* @param payMeeting
* @return
*/
void add(PayMeeting payMeeting);
/**
* 新增会议
* @param payMeetingVO
*/
void add(PayMeetingVO payMeetingVO);
/**
* 更新
*
* @param payMeeting
* @return
*/
void editById(PayMeeting payMeeting);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
PayMeeting queryById(String id);
/**
* 列表查询
*
* @return
*/
List<PayMeeting> queryList();
}
@@ -14,48 +14,31 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
/**
* 保存
*
* @param payMeetingSituation
* @return
*/
void add(PayMeetingSituation payMeetingSituation);
/**
* 更新
*
* @param payMeetingSituation
* @return
*/
void editById(PayMeetingSituation payMeetingSituation);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
PayMeetingSituation queryById(String id);
/**
* 列表查询
*
* @return
*/
List<PayMeetingSituation> queryList();
}
@@ -0,0 +1,66 @@
package com.jero.meeting.service.impl;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.mapper.PayMeetingHotelContactsMapper;
import com.jero.meeting.service.IPayMeetingHotelContactsService;
import org.springframework.stereotype.Service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 会议关联酒店联系人表
* @Author: jero-boot
* @Date: 2021-09-02
* @Version: V1.0
*/
@Service
public class PayMeetingHotelContactsServiceImpl extends ServiceImpl<PayMeetingHotelContactsMapper, PayMeetingHotelContacts> implements IPayMeetingHotelContactsService {
/**
* 保存
*/
@Override
public void add(PayMeetingHotelContacts payMeetingHotelContacts) {
save(payMeetingHotelContacts);
}
/**
* 更新
*/
@Override
public void editById(PayMeetingHotelContacts payMeetingHotelContacts) {
saveOrUpdate(payMeetingHotelContacts);
}
/**
* 通过id删除
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*/
@Override
public PayMeetingHotelContacts queryById(String id) {
return getById(id);
}
/**
* 列表查询
*/
@Override
public List<PayMeetingHotelContacts> queryList() {
return list();
}
}
@@ -1,9 +1,16 @@
package com.jero.meeting.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.mapper.PayMeetingMapper;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.vo.PayMeetingVO;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,9 +28,27 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/
@Override
public void add(PayMeeting payMeeting) {
save(payMeeting);
}
@Override
public void add(PayMeetingVO payMeetingVO) {
List<String> errorMsgList = new ArrayList<>();
String meetingName = payMeetingVO.getMeetingName();
LambdaQueryWrapper<PayMeeting> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeeting::getMeetingName,meetingName);
if (count(wrapper)>0){
errorMsgList.add("会议名称不能重复");
};
if (!errorMsgList.isEmpty()){
throw new JeroBootException(errorMsgList.toString());
}
PayMeeting payMeeting = new PayMeeting();
BeanUtils.copyProperties(payMeetingVO,payMeeting);
save(payMeeting);
}
/**
* 更新
*/
@@ -0,0 +1,9 @@
package com.jero.meeting.valid.group;
/**
* 标协会议类型
* @author liJiaRao
* @date 2021-09-02 16:36
*/
public @interface StandardMeeting {
}
@@ -0,0 +1,9 @@
package com.jero.meeting.valid.group;
/**
* 工作组类型
* @author liJiaRao
* @date 2021-09-02 16:38
*/
public @interface WorkingGroupProject {
}
@@ -0,0 +1,228 @@
package com.jero.meeting.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.valid.group.StandardMeeting;
import com.jero.meeting.valid.group.WorkingGroupProject;
import com.jero.valid.ValidList;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;
/**
* @Description: 会议管理VO
* @Author: jero-boot
* @Date: 2021-09-02
* @Version: V1.0
*/
@Data
@ApiModel(value="pay_meetingVO对象", description="会议管理")
public class PayMeetingVO implements Serializable {
private static final long serialVersionUID = 1L;
/**会议名称*/
@Excel(name = "会议名称", width = 15)
@ApiModelProperty(value = "会议名称")
@NotBlank(message = "会议名称不能为空")
@Size(max = 50,message = "会议名称最长为50字符")
private String meetingName;
/**会议类型*/
@Excel(name = "会议类型", width = 15,dicCode = "meeting_type")
@ApiModelProperty(value = "会议类型")
@NotBlank(message = "会议类型不能为空")
private String meetingType;
/**标协会议类型*/
@Excel(name = "标协会议类型", width = 15,dicCode = "standard_meeting_type")
@ApiModelProperty(value = "标协会议类型")
@NotBlank(message = "会议类型不能为空", groups = StandardMeeting.class)
private String tbMeetingType;
/**工作组项目id*/
@Excel(name = "工作组项目名称", width = 15, dictTable = "pay_working_group",dicText = "working_group_project",dicCode = "id")
@ApiModelProperty(value = "工作组项目id")
@NotBlank(message = "工作组项目名称不能为空", groups = WorkingGroupProject.class)
private String workingGroupId;
/**工作组项目名称*/
@ApiModelProperty(value = "工作组项目名称")
private String workingGroupName;
/**开始时间*/
@Excel(name = "会议开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "会议开始时间")
@NotNull(message = "会议召开时间不能为空")
private java.util.Date startTime;
/**结束时间*/
@Excel(name = "会议结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "会议结束时间")
@NotNull(message = "会议召开时间不能为空")
private java.util.Date endTime;
/**年份*/
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
@NotBlank(message = "年份不能为空")
private String particularYear;
/**开始注册签到时间*/
@Excel(name = "开始注册签到时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始注册签到时间")
@NotNull(message = "开始注册签到时间不能为空")
private java.util.Date startSignInTime;
/**结束注册签到时间*/
@Excel(name = "结束注册签到时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "结束注册签到时间")
@NotNull(message = "结束注册签到时间不能为空")
private java.util.Date endSignInTime;
/**召开地点*/
@Excel(name = "召开地点", width = 15)
@ApiModelProperty(value = "召开地点")
@NotBlank(message = "召开地点不能为空")
@Size(max = 50, message = "召开地点最大为50字符")
private String venue;
//convokeLocale
/**召开地点对照码*/
@ApiModelProperty(value = "召开地点对照码")
@NotBlank(message = "召开地点对照码不能为空")
private String convokeLocale;
/**详细地址*/
@Excel(name = "详细地址", width = 15)
@ApiModelProperty(value = "详细地址")
@NotBlank(message = "详细地址不能为空")
@Size(max = 100, message = "召开地点最大为100字符")
private String address;
/**预计参加人数*/
@Excel(name = "预计参加人数", width = 15)
@ApiModelProperty(value = "预计参加人数")
private String estimatedNumber;
/**会议内容*/
@Excel(name = "会议内容", width = 15)
@ApiModelProperty(value = "会议内容")
@NotBlank(message = "会议内容不能为空")
@Size(max = 200, message = "会议内容最大为200字符")
private String meetingContent;
/**报名截止时间*/
@Excel(name = "报名截止时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "报名截止时间")
@NotNull(message = "报名截止时间不能为空")
private java.util.Date registerDeadline;
/**VIP邀请码*/
@Excel(name = "VIP邀请码", width = 15)
@ApiModelProperty(value = "VIP邀请码")
@NotNull(message = "VIP邀请码不能为空")
@Size(max = 50, message = "VIP邀请码最多为50个字符")
private java.lang.String vipInvitationCode;
/**演讲嘉宾邀请码*/
@Excel(name = "演讲嘉宾邀请码", width = 15)
@ApiModelProperty(value = "演讲嘉宾邀请码")
@NotNull(message = "演讲嘉宾邀请码不能为空")
@Size(max = 50, message = "演讲嘉宾邀请码最多为50个字符")
private java.lang.String speakerInvitationCode;
/**特邀嘉宾邀请码*/
@Excel(name = "特邀嘉宾邀请码", width = 15)
@ApiModelProperty(value = "特邀嘉宾邀请码")
@NotNull(message = "特邀嘉宾邀请码不能为空")
@Size(max = 50, message = "特邀嘉宾邀请码最多为50个字符")
private java.lang.String guestInvitationCode;
/**合作伙伴邀请码*/
@Excel(name = "合作伙伴邀请码", width = 15)
@ApiModelProperty(value = "合作伙伴邀请码")
@NotNull(message = "合作伙伴邀请码不能为空")
@Size(max = 50, message = "合作伙伴邀请码最多为50个字符")
private java.lang.String cooperativeInvitationCode;
/**会议费用*/
@Excel(name = "会议费用", width = 15)
@ApiModelProperty(value = "会议费用")
@NotNull(message = "会议费用不能为空")
private Integer meetingCosts;
/**会议费用(标协会员)*/
@Excel(name = "会议费用(标协会员)", width = 15)
@ApiModelProperty(value = "会议费用(标协会员)")
@NotNull(message = "会议费用(标协会员)不能为空")
private Integer meetingCostsVip;
/**会议负责人id*/
@Excel(name = "会议负责人", width = 15,dictTable = "sys_user",dicText = "username",dicCode = "id")
@ApiModelProperty(value = "会议负责人id")
@NotBlank(message = "会议负责人不能为空")
private String directorId;
/**会议负责人*/
@ApiModelProperty(value = "会议负责人")
private String directorName;
/**会议负责人手机号*/
@Excel(name = "会议负责人手机号", width = 15,exportConvert = true)
@ApiModelProperty(value = "会议负责人手机号")
@NotBlank(message = "会议负责人手机号不能为空")
private String directorPhone;
/**酒店名称*/
@Excel(name = "酒店名称", width = 15)
@ApiModelProperty(value = "酒店名称")
@NotBlank(message = "酒店名称不能为空")
@Size(max = 100, message = "酒店名称最大为100字符")
private String hotelName;
/**酒店地址*/
@Excel(name = "酒店地址", width = 15)
@ApiModelProperty(value = "酒店地址")
@NotBlank(message = "酒店地址不能为空")
@Size(max = 100, message = "酒店地址最大为100字符")
private String hotelAddress;
/**
* 会议关联酒店联系人列表
*/
@Valid
@NotNull(message = "酒店联系人不能为空")
@Size(max = 5, message = "酒店联系人最多为5个")
private ValidList<PayMeetingHotelContacts> payMeetingHotelContactsList;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@Size(max = 200, message = "备注最大为200字符")
private String remark;
}
@@ -0,0 +1,148 @@
package com.jero.valid;
import org.jetbrains.annotations.NotNull;
import javax.validation.Valid;
import java.util.*;
/**
* @author liJiaRao
* @date 2021-09-02 17:36
*/
public class ValidList<E> implements List<E> {
@Valid
private List<E> list;
public ValidList() {
this.list = new ArrayList<>();
}
public ValidList(List<E> list) {
this.list = list;
}
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
//重写List方法,可省略
@Override
public int size() {
return list.size();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public boolean contains(Object o) {
return list.contains(o);
}
@Override
public Iterator<E> iterator() {
return list.iterator();
}
@Override
public Object[] toArray() {
return list.toArray();
}
@Override
public <T> T[] toArray(@NotNull T[] a) {
return list.toArray(a);
}
@Override
public boolean add(E e) {
return list.add(e);
}
@Override
public boolean remove(Object o) {
return list.remove(o);
}
@Override
public boolean containsAll(@NotNull Collection<?> c) {
return list.contains(c);
}
@Override
public boolean addAll(@NotNull Collection<? extends E> c) {
return list.addAll(c);
}
@Override
public boolean addAll(int index, @NotNull Collection<? extends E> c) {
return list.addAll(index, c);
}
@Override
public boolean removeAll(@NotNull Collection<?> c) {
return list.removeAll(c);
}
@Override
public boolean retainAll(@NotNull Collection<?> c) {
return list.retainAll(c);
}
@Override
public void clear() {
list.clear();
}
@Override
public E get(int index) {
return list.get(index);
}
@Override
public E set(int index, E element) {
return list.set(index, element);
}
@Override
public void add(int index, E element) {
list.add(index, element);
}
@Override
public E remove(int index) {
return list.remove(index);
}
@Override
public int indexOf(Object o) {
return list.indexOf(o);
}
@Override
public int lastIndexOf(Object o) {
return list.lastIndexOf(o);
}
@Override
public ListIterator<E> listIterator() {
return list.listIterator();
}
@Override
public ListIterator<E> listIterator(int index) {
return list.listIterator(index);
}
@Override
public List<E> subList(int fromIndex, int toIndex) {
return list.subList(fromIndex, toIndex);
}
}