/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.content.particular.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import com.ewcms.content.particular.dao.EnterpriseArticleDAO;
import com.ewcms.content.particular.dao.EnterpriseBasicDAO;
import com.ewcms.content.particular.model.EnterpriseArticle;
import com.ewcms.content.particular.model.EnterpriseBasic;
import com.ewcms.core.site.SiteFacable;
import com.ewcms.core.site.model.Organ;
@Service
public class EnterpriseArticleService implements EnterpriseArticleServiceable {
@Autowired
private EnterpriseBasicDAO enterpriseBasicDAO;
@Autowired
private EnterpriseArticleDAO enterpriseArticleDAO;
@Autowired
private SiteFacable siteFac;
@Override
public Long addEnterpriseArticle(EnterpriseArticle enterpriseArticle) {
setEnterpriseBasic(enterpriseArticle);
setOrgan(enterpriseArticle);
enterpriseArticleDAO.persist(enterpriseArticle);
return enterpriseArticle.getId();
}
@Override
public Long updEnterpriseArticle(EnterpriseArticle enterpriseArticle) {
setEnterpriseBasic(enterpriseArticle);
setOrgan(enterpriseArticle);
enterpriseArticle.setRelease(false);
enterpriseArticleDAO.merge(enterpriseArticle);
return enterpriseArticle.getId();
}
private void setEnterpriseBasic(EnterpriseArticle enterpriseArticle){
String projectBasic_yyzzzch = enterpriseArticle.getEnterpriseBasic().getYyzzzch();
Assert.notNull(projectBasic_yyzzzch);
EnterpriseBasic enterpriseBasic = enterpriseBasicDAO.findEnterpriseBasicByYyzzzch(projectBasic_yyzzzch);
Assert.notNull(enterpriseBasic);
enterpriseArticle.setEnterpriseBasic(enterpriseBasic);
}
private void setOrgan(EnterpriseArticle enterpriseArticle){
Integer organId = enterpriseArticle.getOrgan().getId();
Organ organ = siteFac.getOrgan(organId);
enterpriseArticle.setOrgan(organ);
}
@Override
public void delEnterpriseArticle(Long id) {
enterpriseArticleDAO.removeByPK(id);
}
@Override
public EnterpriseArticle findEnterpriseArticleById(Long id) {
return enterpriseArticleDAO.get(id);
}
@Override
public void pubEnterpriseArticle(List<Long> enterpriseArticleIds) {
if (enterpriseArticleIds.isEmpty()) return;
for (Long enterpriseArticleId : enterpriseArticleIds){
EnterpriseArticle enterpriseArticle = enterpriseArticleDAO.get(enterpriseArticleId);
if (enterpriseArticle.getRelease() || enterpriseArticle.getOrgan() == null) continue;
enterpriseArticle.setRelease(true);
enterpriseArticleDAO.merge(enterpriseArticle);
}
}
@Override
public void unPubEnterpriseArticle(List<Long> enterpriseArticleIds){
if (enterpriseArticleIds.isEmpty()) return;
for (Long projectArticleId : enterpriseArticleIds){
EnterpriseArticle enterpriseArticle = enterpriseArticleDAO.get(projectArticleId);
if (!enterpriseArticle.getRelease()) continue;
enterpriseArticle.setRelease(false);
enterpriseArticleDAO.merge(enterpriseArticle);
}
}
@Override
public List<EnterpriseArticle> findEnterpriseArticleAll() {
return enterpriseArticleDAO.findEnterpriseArticleAll();
}
}