提交 1557d576 编写于 作者: O o2sword

论坛优化2:小黑屋;匿名发布

上级 99efb9d5
package com.x.bbs.assemble.control.jaxrs.shutup;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckRemoveType;
import com.x.base.core.project.exception.ExceptionAccessDenied;
import com.x.base.core.project.exception.ExceptionEntityNotExist;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.jaxrs.WrapBoolean;
import com.x.bbs.assemble.control.Business;
import com.x.bbs.entity.BBSShutup;
class ActionDelete extends BaseAction {
ActionResult<Wo> execute(EffectivePerson effectivePerson, String id) throws Exception {
ActionResult<Wo> result = new ActionResult<>();
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Business business = new Business(emc);
if(!business.isManager(effectivePerson)){
throw new ExceptionAccessDenied(effectivePerson);
}
BBSShutup shutup = emc.find(id, BBSShutup.class);
if (null == shutup) {
throw new ExceptionEntityNotExist(id);
}
emc.beginTransaction(BBSShutup.class);
emc.remove(shutup, CheckRemoveType.all);
emc.commit();
Wo wo = new Wo();
wo.setValue(true);
result.setData(wo);
return result;
}
}
public static class Wo extends WrapBoolean {
}
}
......@@ -81,8 +81,9 @@ class ActionListPaging extends BaseAction {
private static final long serialVersionUID = 4928128631701115688L;
static WrapCopier<BBSShutup, Wo> copier = WrapCopierFactory.wo(BBSShutup.class, Wo.class,null,
ListTools.toList(JpaObject.FieldsUnmodifyExcludeId, BBSShutup.unmuteDateTime_FIELDNAME, BBSShutup.operator_FIELDNAME));
static WrapCopier<BBSShutup, Wo> copier = WrapCopierFactory.wo(BBSShutup.class, Wo.class,
JpaObject.singularAttributeField(BBSShutup.class, true, true),
ListTools.toList(BBSShutup.unmuteDateTime_FIELDNAME));
}
......
......@@ -82,4 +82,22 @@ public class ShutupAction extends StandardJaxrsAction {
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement));
}
@JaxrsMethodDescribe(value = "解除禁言", action = ActionDelete.class)
@DELETE
@Path("{id}")
@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
@Consumes(MediaType.APPLICATION_JSON)
public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
@JaxrsParameterDescribe("标识") @PathParam("id") String id) {
ActionResult<ActionDelete.Wo> result = new ActionResult<>();
EffectivePerson effectivePerson = this.effectivePerson(request);
try {
result = new ActionDelete().execute(effectivePerson, id);
} catch (Exception e) {
logger.error(e, effectivePerson, request, null);
result.error(e);
}
asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册