add 标协会议校验酒店联系人

This commit is contained in:
lijiarao
2021-09-03 16:59:58 +08:00
parent aca9b45003
commit 50d89b584f
5 changed files with 38 additions and 164 deletions
@@ -20,7 +20,6 @@ import com.jero.meeting.vo.PayMeetingVO;
import com.jero.modules.system.volid.group.UpdateGroup;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
@@ -1,24 +1,18 @@
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 com.jero.meeting.valid.group.StandardMeeting;
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.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
@@ -8,12 +8,15 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.ValidUtil;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.mapper.PayMeetingMapper;
import com.jero.meeting.service.IPayMeetingHotelContactsService;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.valid.group.InternationalMeeting;
import com.jero.meeting.valid.group.StandardMeeting;
import com.jero.meeting.valid.group.WorkingGroupMeeting;
import com.jero.meeting.vo.PayMeetingVO;
import org.apache.shiro.util.CollectionUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@@ -35,14 +38,26 @@ import javax.annotation.Resource;
public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeeting> implements IPayMeetingService {
@Resource
private ISysBaseAPI sysBaseApi;
@Resource
private IPayMeetingHotelContactsService meetingHotelContactsService;
/**
* 新增会议
*/
@Override
public void add(PayMeetingVO payMeetingVO) {
PayMeeting payMeeting = getPayMeeting(payMeetingVO);
//酒店联系人列表
List<PayMeetingHotelContacts> hotelContactsList = new ArrayList<>();
PayMeeting payMeeting = getPayMeeting(payMeetingVO,hotelContactsList);
save(payMeeting);
//如果酒店联系人列表不为空,就新增
if (!CollectionUtils.isEmpty(hotelContactsList)){
String meetingId = payMeeting.getId();
hotelContactsList.forEach(hotelContacts ->
hotelContacts.setMeetingId(meetingId)
);
meetingHotelContactsService.saveBatch(hotelContactsList);
}
}
/**
@@ -50,12 +65,25 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/
@Override
public void editById(PayMeetingVO payMeetingVO) {
PayMeeting payMeeting = getPayMeeting(payMeetingVO);
List<PayMeetingHotelContacts> hotelContactsList = new ArrayList<>();
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
saveOrUpdate(payMeeting);
//如果酒店联系人列表不为空,就更新
if (!CollectionUtils.isEmpty(hotelContactsList)){
String meetingId = payMeeting.getId();
//先删除原先的酒店联系人,在添加新的
LambdaQueryWrapper<PayMeetingHotelContacts> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayMeetingHotelContacts::getMeetingId,meetingId);
meetingHotelContactsService.remove(queryWrapper);
hotelContactsList.forEach(hotelContacts ->
hotelContacts.setMeetingId(meetingId)
);
meetingHotelContactsService.saveBatch(hotelContactsList);
}
}
@NotNull
private PayMeeting getPayMeeting(PayMeetingVO payMeetingVO) {
private PayMeeting getPayMeeting(PayMeetingVO payMeetingVO, List<PayMeetingHotelContacts> hotelContactsList) {
List<String> errorMsgList = new ArrayList<>();
PayMeeting payMeeting = new PayMeeting();
//判断会议名称
@@ -92,6 +120,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
ValidUtil.validate(payMeetingVO, WorkingGroupMeeting.class);
}else if (meetingType.equals(MeetingCommon.STANDARD_MEETING)){
ValidUtil.validate(payMeetingVO, StandardMeeting.class);
hotelContactsList = payMeetingVO.getHotelContactsList();
for (PayMeetingHotelContacts hotelContacts : hotelContactsList) {
ValidUtil.validate(hotelContacts, StandardMeeting.class);
}
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING)){
ValidUtil.validate(payMeetingVO, InternationalMeeting.class);
//邀请码不能有重复的
@@ -1,26 +1,23 @@
package com.jero.meeting.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.valid.group.InternationalMeeting;
import com.jero.meeting.valid.group.StandardMeeting;
import com.jero.meeting.valid.group.WorkingGroupMeeting;
import com.jero.modules.system.volid.group.UpdateGroup;
import com.jero.valid.ValidList;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.Valid;
import javax.validation.constraints.Max;
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
@@ -219,9 +216,9 @@ public class PayMeetingVO implements Serializable {
/**
* 会议关联酒店联系人列表
*/
@Valid
@NotNull(message = "酒店联系人不能为空",groups = StandardMeeting.class)
@Size(max = 5, message = "酒店联系人最多为5个",groups = StandardMeeting.class)
private ValidList<PayMeetingHotelContacts> payMeetingHotelContactsList;
private List<PayMeetingHotelContacts> hotelContactsList;
/**备注*/
@Excel(name = "备注", width = 15)