?? articleact.java
字號:
package com.jeecms.article.action;
import static com.jeecms.cms.Constants.ARTICLE_SYS;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.stereotype.Controller;
import com.jeecms.article.entity.Article;
import com.jeecms.article.manager.ArticleMng;
import com.jeecms.cms.entity.ChnlModel;
import com.jeecms.cms.entity.ChnlModelItem;
import com.jeecms.cms.entity.CmsAdmin;
import com.jeecms.cms.entity.CmsChannel;
import com.jeecms.cms.entity.CmsMemberGroup;
import com.jeecms.cms.entity.ContentCtg;
import com.jeecms.cms.manager.ChnlModelMng;
import com.jeecms.cms.manager.CmsAdminMng;
import com.jeecms.cms.manager.CmsChannelMng;
import com.jeecms.cms.manager.CmsMemberGroupMng;
import com.jeecms.cms.manager.ContentCtgMng;
import com.jeecms.core.util.UploadRule;
import com.ponyjava.common.page.Pagination;
import com.ponyjava.common.util.BCConvert;
import com.ponyjava.common.util.HtmlChecker;
import com.ponyjava.common.util.SelectTreeUtils;
@SuppressWarnings("serial")
@Scope("prototype")
@Controller("article.articleAct")
public class ArticleAct extends com.jeecms.cms.CmsSysAction {
private static final Logger log = LoggerFactory.getLogger(ArticleAct.class);
@SuppressWarnings("unchecked")
public String left() {
System.out.println(getCmsAdminId());
List<CmsChannel> chnlList = cmsChannelMng.getRightChnl(getWebId(),
ARTICLE_SYS, getCmsAdminId(), true);
chnlList = SelectTreeUtils.handleTreeChild(chnlList);
if (chnlList.size() > 0) {
treeRoot = chnlList.get(0);
}
return LEFT;
}
public String listUncheck() {
pagination = articleMng.getUncheckArticle(getAdminId(), pageNo,
getCookieCount());
updateType = "listUncheck";
return "listUncheck";
}
public String list() {
if (chnlId == null) {
chnl = cmsChannelMng.getRoot(getWebId(), ARTICLE_SYS, true);
if (chnl != null) {
chnlId = chnl.getId();
}
} else {
chnl = cmsChannelMng.findById(chnlId);
}
adminList = new ArrayList<CmsAdmin>();
contentCtgList = contentCtgMng.getList(getRootWebId(), false);
if (chnl != null) {
adminList.addAll(chnl.getAdmins());
}
selfOnly = getCmsAdmin().getSelfOnly();
if (selfOnly) {
queryInputAdminId = getAdminId();
}
if (chnlId != null) {
pagination = articleMng.getRightArticle(getWebId(), chnlId,
getAdminId(), queryInputAdminId, queryContentCtgId,
queryDisabled, queryTopTime, queryTopLevel, queryStatus,
queryTitle, queryOrder, pageNo, getCookieCount());
} else {
pagination = new Pagination(1, getCookieCount(), 0, null);
}
return LIST;
}
// chnlId不能為空
@SuppressWarnings("unchecked")
public String add() {
contentCtgList = contentCtgMng.getList(getRootWebId(), false);
memberGroupList = cmsMemberGroupMng.getList(getRootWebId(), 0, true);
CmsChannel channel = cmsChannelMng.findById(chnlId);
tplContentList = channel.getModel().tplContentList(getConfig(),
ARTICLE_SYS, contextPvd.getAppRoot());
// 只能選擇同一模型的欄目
Long modelId;
ChnlModel model;
if (channel.getParent() == null
&& getConfig().getDefArticleModel() != null) {
modelId = getConfig().getDefArticleModel().getId();
model = chnlModelMng.findById(modelId);
} else {
model = channel.getModel();
modelId = model.getId();
}
itemMap = model.getDiplayItemMap(ChnlModel.CONTENT_ITEM);
chnlList = cmsChannelMng.getRightChnl(getWebId(), ARTICLE_SYS, chnlId,
getCmsAdminId(), modelId, true);
chnlList = SelectTreeUtils.handleTreeChild(chnlList);
chnlList = SelectTreeUtils.webTree(chnlList);
// 設置上傳規則
addUploadRule();
return ADD;
}
@SuppressWarnings("unchecked")
public String edit() {
bean = articleMng.findById(id);
itemMap = bean.getChannel().getModel().getDiplayItemMap(
ChnlModel.CONTENT_ITEM);
Long webId = bean.getWebsite().getRootWebId();
contentCtgList = contentCtgMng.getList(webId, false);
memberGroupList = cmsMemberGroupMng.getList(webId, 0, true);
tplContentList = bean.getChannel().getModel().tplContentList(
bean.getConfig(), ARTICLE_SYS, contextPvd.getAppRoot());
List<CmsChannel> chnlList = cmsChannelMng.getRightChnl(bean
.getWebsite().getId(), ARTICLE_SYS, getCmsAdminId(), true);
chnlList = SelectTreeUtils.handleTreeChild(chnlList);
this.list = SelectTreeUtils.webTree(chnlList);
// 設置上傳規則
addUploadRule();
return EDIT;
}
public String save() {
articleMng.saveArticle(bean, getCmsAdmin(), uploadRule, getWeb()
.getResUrl(), getConfig().getCheckCount(), topTime);
// 清除上傳規則
removeUploadRule();
log.info("添加 文章 成功:{}", bean.getTitle());
addActionMessage("添加成功");
return add();
}
public String update() {
articleMng.updateArticle(bean, getCmsAdmin(), uploadRule, getWeb()
.getResUrl(), topTime);
// 清除上傳規則
removeUploadRule();
log.info("修改 文章 成功:{}", bean.getTitle());
if (StringUtils.equals(updateType, "listUncheck")) {
return listUncheck();
} else if (StringUtils.equals(updateType, "listSignin")) {
return listSignin();
} else {
return list();
}
}
public String delete() {
try {
for (Article o : articleMng.deleteById(ids)) {
log.info("刪除 文章 成功:{}", o.getTitle());
}
} catch (DataIntegrityViolationException e) {
addActionError("記錄已被引用,不能刪除!");
return SHOW_ERROR;
}
return list();
public String disable() {
for (Article o : articleMng.disableArticle(ids, getCmsAdmin(), true)) {
log.info("禁用 文章 成功:{}", o.getTitle());
}
return list();
}
public String undisable() {
for (Article o : articleMng.disableArticle(ids, getCmsAdmin(), false)) {
log.info("解禁 文章 成功:{}", o.getTitle());
}
return list();
}
public String checkView() {
bean = articleMng.findById(id);
return "checkView";
}
public String pass() {
for (Article o : articleMng.checkArticle(ids, getCmsAdmin())) {
log.info("審核通過 文章 成功:{}", o.getTitle());
}
return listUncheck();
}
public String reject() {
// 審核意見可選
for (Article o : articleMng.rejectArticle(ids, getCmsAdmin(),
checkOpinion)) {
log.info("審核退回 文章 成功:{}", o.getTitle());
}
if (StringUtils.equals(updateType, "listSignin")) {
return listSignin();
} else {
return listUncheck();
}
}
public String listSignin() {
pagination = articleMng.getUnsigninArticle(getAdminId(), pageNo,
getCookieCount());
updateType = "listSignin";
return "listSignin";
}
public String signinView() {
bean = articleMng.findById(id);
return "signinView";
}
public String signin() {
for (Article o : articleMng.signinArticle(ids, getCmsAdmin())) {
log.info("簽收 文章 成功:{}", o.getTitle());
}
return listSignin();
}
public boolean validateAdd() {
if (hasErrors()) {
return true;
}
if (vldChannel(chnlId, true, null, getWebId())) {
return true;
}
return false;
}
public boolean validateSave() {
if (hasErrors()) {
return true;
}
// 驗證上傳規則
if (vldUploadRule()) {
return true;
}
// 處理bean
if (vldBean()) {
return true;
}
bean.setWebsite(getWeb());
bean.setConfig(getConfig());
// 驗證欄目
if (vldChannel(bean.getChannel().getId(), false, bean, getWebId())) {
return true;
}
// 驗證內容屬性
if (vldContentCtg(bean.getContentCtg().getId(), bean)) {
return true;
}
// 驗證會員組
if (vldMemberGroup(bean.getGroup(), bean, true)) {
return true;
}
return false;
}
public boolean validateEdit() {
if (hasErrors()) {
return true;
}
if (vldArticleRight(id)) {
return true;
}
return false;
}
public boolean validateUpdate() {
if (hasErrors()) {
return true;
}
// 驗證上傳規則
if (vldUploadRule()) {
return true;
}
// 處理bean
if (vldBean()) {
return true;
}
// 驗證文章權限
if (vldArticleRight(bean.getId())) {
return true;
}
// 驗證欄目
Article entity = articleMng.findById(bean.getId());
Long webId = entity.getWebsite().getId();
if (vldChannel(bean.getChannel().getId(), false, null, webId)) {
return true;
}
// 驗證內容屬性
if (vldContentCtg(bean.getContentCtg().getId(), null)) {
return true;
}
return false;
}
public boolean validateDelete() {
if (hasErrors()) {
return true;
}
if (vldBatch()) {
return true;
}
for (Long id : ids) {
if (vldArticleRight(id)) {
return true;
}
}
return false;
}
public boolean validateDisable() {
return validateDelete();
}
public boolean validateUndisable() {
return validateDelete();
}
public boolean validatePass() {
return validateDelete();
}
public boolean validateReject() {
return validateDelete();
}
public boolean validateCheckView() {
return validateEdit();
}
public boolean validateSigninView() {
return validateEdit();
}
public boolean validateSignin() {
return validateDelete();
}
/**
* 驗證文章修改權限
*
* @param entity
* @return
*/
private boolean vldArticleRight(Long id) {
Article entity = articleMng.findById(id);
if (entity == null) {
addActionError("該文章不存在:" + id);
return true;
}
CmsAdmin webAdmin = cmsAdminMng.getAdminByUserId(entity.getWebsite()
.getId(), getUserId());
// 只能管理自己的數據的管理員,不能管理其他數據。
CmsAdmin inputAdmin = entity.getAdminInput();
if (inputAdmin != null && getCmsAdmin().getSelfOnly()
&& !webAdmin.equals(inputAdmin)) {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -