diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java index b4555ee5..8a8e3767 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java @@ -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 add(@Validated @RequestBody PayMeeting payMeeting) { - payMeetingService.add(payMeeting); + public Result add(@RequestBody PayMeetingVO payMeetingVO) { + ValidUtil.validate(payMeetingVO); + payMeetingService.add(payMeetingVO); return Result.OK("添加成功!"); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java index c9036673..fd3ad169 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeeting.java @@ -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 = "备注") diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingHotelContacts.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingHotelContacts.java new file mode 100644 index 00000000..26dc8625 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/entity/PayMeetingHotelContacts.java @@ -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; + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingHotelContactsMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingHotelContactsMapper.java new file mode 100644 index 00000000..2fbc72c5 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/PayMeetingHotelContactsMapper.java @@ -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 { + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingHotelContactsMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingHotelContactsMapper.xml new file mode 100644 index 00000000..1168a5c2 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/mapper/xml/PayMeetingHotelContactsMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingHotelContactsService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingHotelContactsService.java new file mode 100644 index 00000000..9fede8aa --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingHotelContactsService.java @@ -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 { + + /** + * 保存 + */ + void add(PayMeetingHotelContacts payMeetingHotelContacts); + + /** + * 更新 + */ + void editById(PayMeetingHotelContacts payMeetingHotelContacts); + + /** + * 通过id删除 + */ + void deleteById(String id); + + /** + * 批量删除 + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + */ + PayMeetingHotelContacts queryById(String id); + + /** + * 列表查询 + */ + List queryList(); +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java index 242fccde..ccb1f9dc 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingService.java @@ -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 { /** * 保存 - * - * @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 ids); /** * 通过id查询 - * - * @param id - * @return */ PayMeeting queryById(String id); /** * 列表查询 - * - * @return */ List queryList(); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java index 1c1772d3..91ce9045 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/IPayMeetingSituationService.java @@ -14,48 +14,31 @@ public interface IPayMeetingSituationService extends IService ids); /** * 通过id查询 - * - * @param id - * @return */ PayMeetingSituation queryById(String id); /** * 列表查询 - * - * @return */ List queryList(); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingHotelContactsServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingHotelContactsServiceImpl.java new file mode 100644 index 00000000..4252746c --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingHotelContactsServiceImpl.java @@ -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 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 ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + */ + @Override + public PayMeetingHotelContacts queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + */ + @Override + public List queryList() { + return list(); + } +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index 217046d1..3077ee15 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -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 errorMsgList = new ArrayList<>(); + String meetingName = payMeetingVO.getMeetingName(); + LambdaQueryWrapper 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); + } + /** * 更新 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/StandardMeeting.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/StandardMeeting.java new file mode 100644 index 00000000..a49d8243 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/StandardMeeting.java @@ -0,0 +1,9 @@ +package com.jero.meeting.valid.group; + +/** + * 标协会议类型 + * @author liJiaRao + * @date 2021-09-02 16:36 + */ +public @interface StandardMeeting { +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/WorkingGroupProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/WorkingGroupProject.java new file mode 100644 index 00000000..5fbf461d --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/valid/group/WorkingGroupProject.java @@ -0,0 +1,9 @@ +package com.jero.meeting.valid.group; + +/** + * 工作组类型 + * @author liJiaRao + * @date 2021-09-02 16:38 + */ +public @interface WorkingGroupProject { +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java new file mode 100644 index 00000000..fa632a19 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/PayMeetingVO.java @@ -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 payMeetingHotelContactsList; + + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + @Size(max = 200, message = "备注最大为200字符") + private String remark; + +} diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/valid/ValidList.java b/jero-boot-incoming-payment/src/main/java/com/jero/valid/ValidList.java new file mode 100644 index 00000000..c19845d2 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/valid/ValidList.java @@ -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 implements List { + @Valid + private List list; + + public ValidList() { + this.list = new ArrayList<>(); + } + + public ValidList(List list) { + this.list = list; + } + + public List getList() { + return list; + } + + public void setList(List 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 iterator() { + return list.iterator(); + } + + @Override + public Object[] toArray() { + return list.toArray(); + } + + @Override + public 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 c) { + return list.addAll(c); + } + + @Override + public boolean addAll(int index, @NotNull Collection 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 listIterator() { + return list.listIterator(); + } + + @Override + public ListIterator listIterator(int index) { + return list.listIterator(index); + } + + @Override + public List subList(int fromIndex, int toIndex) { + return list.subList(fromIndex, toIndex); + } +} +