⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 articleact.java

📁 JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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() {
		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(getWebId(), 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(getWebId(), false);
		memberGroupList = cmsMemberGroupMng.getList(getWebId(), 0, true);
		CmsChannel channel = cmsChannelMng.findById(chnlId);
		tplContentList = channel.getModel().tplContentList(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().getId();
		contentCtgList = contentCtgMng.getList(webId, false);
		memberGroupList = cmsMemberGroupMng.getList(webId, 0, true);
		tplContentList = bean.getChannel().getModel().tplContentList(
				ARTICLE_SYS, contextPvd.getAppRoot());

		List<CmsChannel> chnlList = cmsChannelMng.getRightChnl(webId,
				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.deleteById(ids)) {
			log.info("禁用 文章 成功:{}", o.getTitle());
		}
		return list();
	}

	public String undisable() {
		for (Article o : articleMng.deleteById(ids)) {
			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)) {
			addActionError("不能维护不属于自己的数据:" + id);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -