/**
* 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.ProjectArticleDAO;
import com.ewcms.content.particular.dao.ProjectBasicDAO;
import com.ewcms.content.particular.model.ProjectArticle;
import com.ewcms.content.particular.model.ProjectBasic;
import com.ewcms.core.site.SiteFacable;
import com.ewcms.core.site.model.Organ;
@Service
public class ProjectArticleService implements ProjectArticleServiceable {
@Autowired
private ProjectBasicDAO projectBasicDAO;
@Autowired
private ProjectArticleDAO projectArticleDAO;
@Autowired
private SiteFacable siteFac;
@Override
public Long addProjectArticle(ProjectArticle projectArticle) {
setProjectBasic(projectArticle);
setOrgan(projectArticle);
projectArticleDAO.persist(projectArticle);
return projectArticle.getId();
}
@Override
public Long updProjectArticle(ProjectArticle projectArticle) {
setProjectBasic(projectArticle);
setOrgan(projectArticle);
projectArticle.setRelease(false);
projectArticleDAO.merge(projectArticle);
return projectArticle.getId();
}
private void setProjectBasic(ProjectArticle projectArticle){
String projectBasic_code = projectArticle.getProjectBasic().getCode();
Assert.notNull(projectBasic_code);
ProjectBasic projectBasic = projectBasicDAO.findProjectBasicByCode(projectBasic_code);
Assert.notNull(projectBasic);
projectArticle.setProjectBasic(projectBasic);
}
private void setOrgan(ProjectArticle projectArticle){
Integer organId = projectArticle.getOrgan().getId();
Organ organ = siteFac.getOrgan(organId);
projectArticle.setOrgan(organ);
}
@Override
public void delProjectArticle(Long id) {
projectArticleDAO.removeByPK(id);
}
@Override
public ProjectArticle findProjectArticleById(Long id) {
return projectArticleDAO.get(id);
}
@Override
public void pubProjectArticle(List<Long> projectArticleIds) {
if (projectArticleIds.isEmpty()) return;
for (Long projectArticleId : projectArticleIds){
ProjectArticle projectArticle = projectArticleDAO.get(projectArticleId);
if (projectArticle.getRelease() || projectArticle.getOrgan() == null) continue;
projectArticle.setRelease(true);
projectArticleDAO.merge(projectArticle);
}
}
@Override
public void unPubProjectArticle(List<Long> projectArticleIds){
if (projectArticleIds.isEmpty()) return;
for (Long projectArticleId : projectArticleIds){
ProjectArticle projectArticle = projectArticleDAO.get(projectArticleId);
if (!projectArticle.getRelease()) continue;
projectArticle.setRelease(false);
projectArticleDAO.merge(projectArticle);
}
}
@Override
public List<ProjectArticle> findProjectArticleAll() {
return projectArticleDAO.findProjectArticleAll();
}
}