提交 f76c0f5f 编写于 作者: hlwwx's avatar hlwwx

'会议室增加删除邀请人员接口'

上级 90e8b558
......@@ -29,4 +29,9 @@ public class MessageFactory {
MessageConnector.send(MessageConnector.TYPE_MEETING_DELETE, title, person, meeting);
}
public static void meeting_deleteInvitePerson(String person, Meeting meeting) throws Exception {
String title = "会议:" + meeting.getSubject() + "已取消.";
MessageConnector.send(MessageConnector.TYPE_MEETING_DELETE, title, person, meeting);
}
}
package com.x.meeting.assemble.control.jaxrs.meeting;
import java.util.List;
import org.apache.commons.collections4.ListUtils;
import com.google.gson.JsonElement;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.exception.ExceptionAccessDenied;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WoId;
import com.x.base.core.project.tools.ListTools;
import com.x.meeting.assemble.control.Business;
import com.x.meeting.assemble.control.MessageFactory;
import com.x.meeting.core.entity.ConfirmStatus;
import com.x.meeting.core.entity.Meeting;
import com.x.meeting.core.entity.Room;
class ActionDeleteInvite extends BaseAction {
ActionResult<Wo> execute(EffectivePerson effectivePerson, String id, JsonElement jsonElement) throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
ActionResult<Wo> result = new ActionResult<>();
Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
Business business = new Business(emc);
Meeting meeting = emc.find(id, Meeting.class);
if (null == meeting) {
throw new ExceptionMeetingNotExist(id);
}
if (!business.meetingEditAvailable(effectivePerson, meeting)) {
throw new ExceptionAccessDenied(effectivePerson);
}
List<String> inviteDelPersonList = this.convertToPerson(business,ListTools.trim(wi.getInvitePersonList(), true, true));
emc.beginTransaction(Meeting.class);
List<String> invitePersonList = ListUtils.subtract(meeting.getInvitePersonList(),inviteDelPersonList);
meeting.setInvitePersonList(invitePersonList);
inviteDelPersonList.addAll(meeting.getInviteDelPersonList());
meeting.setInviteDelPersonList(inviteDelPersonList);
emc.check(meeting, CheckPersistType.all);
emc.commit();
if (ConfirmStatus.wait.equals(meeting.getConfirmStatus())) {
for (String _s : inviteDelPersonList) {
MessageFactory.meeting_deleteInvitePerson(_s, meeting);
}
this.notifyMeetingInviteMessage(business, meeting);
}
Wo wo = new Wo();
wo.setId(meeting.getId());
result.setData(wo);
return result;
}
}
public static class Wi extends GsonPropertyObject {
private static final long serialVersionUID = -4637797853096659198L;
@FieldDescribe("将要删除名单列表")
public List<String> InvitePersonList;
public List<String> getInvitePersonList() {
return InvitePersonList;
}
public void setInvitePersonList(List<String> invitePersonList) {
InvitePersonList = invitePersonList;
}
}
public static class Wo extends WoId {
}
}
......@@ -213,6 +213,25 @@ public class MeetingAction extends BaseAction {
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "删除会议邀请人.", action = ActionDeleteInvite.class)
@PUT
@Path("{id}/delete/invite")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void deleteInvite(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
@PathParam("id") String id, JsonElement jsonElement) {
ActionResult<ActionDeleteInvite.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionDeleteInvite().execute(effectivePerson, id, jsonElement);
} catch (Exception e) {
logger.error(e, effectivePerson, request, jsonElement);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
@JaxrsMethodDescribe(value = "会议签到", action = ActionCheckIn.class)
@GET
@Path("{id}/checkin")
......
......@@ -142,6 +142,19 @@ public class Meeting extends SliceJpaObject {
@ElementIndex(name = TABLE + IndexNameMiddle + invitePersonList_FIELDNAME + ElementIndexNameSuffix)
@CheckPersist(allowEmpty = true)
private List<String> invitePersonList;
public static final String inviteDelPersonList_FIELDNAME = "inviteDelPersonList";
@FieldDescribe("邀请人员,身份,组织已删列表.")
@PersistentCollection(fetch = FetchType.EAGER)
@ContainerTable(name = TABLE + ContainerTableNameMiddle
+ inviteDelPersonList_FIELDNAME, joinIndex = @Index(name = TABLE + IndexNameMiddle + inviteDelPersonList_FIELDNAME
+ JoinIndexNameSuffix))
@OrderColumn(name = ORDERCOLUMNCOLUMN)
@ElementColumn(length = length_255B, name = ColumnNamePrefix + inviteDelPersonList_FIELDNAME)
@ElementIndex(name = TABLE + IndexNameMiddle + inviteDelPersonList_FIELDNAME + ElementIndexNameSuffix)
@CheckPersist(allowEmpty = true)
private List<String> inviteDelPersonList;
// public static final String expandInvitePersonList_FIELDNAME =
// "expandInvitePersonList";
......@@ -419,4 +432,14 @@ public class Meeting extends SliceJpaObject {
this.checkinPersonList = ListTools.removeStringFromList(distinguishedName, this.checkinPersonList);
}
public List<String> getInviteDelPersonList() {
return inviteDelPersonList;
}
public void setInviteDelPersonList(List<String> inviteDelPersonList) {
this.inviteDelPersonList = inviteDelPersonList;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册