package com.jspxcms.core.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jspxcms.core.domain.Role;
import com.jspxcms.core.domain.RoleSite;
import com.jspxcms.core.domain.Site;
import com.jspxcms.core.repository.RoleSiteDao;
import com.jspxcms.core.service.RoleNodeInfoService;
import com.jspxcms.core.service.RoleNodeNodeService;
import com.jspxcms.core.service.RoleSiteService;
/**
* RoleSiteServiceImpl
*
* @author liufang
*
*/
@Service
@Transactional(readOnly = true)
public class RoleSiteServiceImpl implements RoleSiteService {
public RoleSite get(Integer id) {
return dao.findOne(id);
}
@Transactional
public RoleSite save(Role role, Site site, Boolean allPerm, String perms,
Boolean allInfo, Integer[] infoRightIds, Boolean allNode,
Integer[] nodeRightIds, Integer infoRightType) {
RoleSite bean = new RoleSite();
bean.setRole(role);
bean.setSite(site);
bean.setAllPerm(allPerm);
bean.setPerms(perms);
bean.setAllInfo(allInfo);
bean.setAllNode(allNode);
bean.setInfoRightType(infoRightType);
bean.applyDefaultValue();
bean = dao.save(bean);
roleNodeInfoService.save(bean, infoRightIds);
roleNodeNodeService.save(bean, nodeRightIds);
return bean;
}
@Transactional
public RoleSite update(Role role, Site site, Boolean allPerm, String perms,
Boolean allInfo, Integer[] infoRightIds, Boolean allNode,
Integer[] nodeRightIds, Integer infoRightType) {
RoleSite bean = role.getRoleSite(site.getId());
if (bean == null) {
save(role, site, allPerm, perms, allInfo, infoRightIds, allNode,
nodeRightIds, infoRightType);
} else {
bean.setAllPerm(allPerm);
bean.setPerms(perms);
bean.setAllInfo(allInfo);
bean.setAllNode(allNode);
bean.setInfoRightType(infoRightType);
bean.applyDefaultValue();
bean = dao.save(bean);
roleNodeInfoService.update(bean, infoRightIds);
roleNodeNodeService.update(bean, nodeRightIds);
}
return bean;
}
@Transactional
public RoleSite delete(Integer id) {
RoleSite entity = dao.findOne(id);
dao.delete(entity);
return entity;
}
@Transactional
public RoleSite[] delete(Integer[] ids) {
RoleSite[] beans = new RoleSite[ids.length];
for (int i = 0; i < ids.length; i++) {
beans[i] = delete(ids[i]);
}
return beans;
}
private RoleNodeInfoService roleNodeInfoService;
private RoleNodeNodeService roleNodeNodeService;
@Autowired
public void setRoleNodeInfoService(RoleNodeInfoService roleNodeInfoService) {
this.roleNodeInfoService = roleNodeInfoService;
}
@Autowired
public void setRoleNodeNodeService(RoleNodeNodeService roleNodeNodeService) {
this.roleNodeNodeService = roleNodeNodeService;
}
private RoleSiteDao dao;
@Autowired
public void setDao(RoleSiteDao dao) {
this.dao = dao;
}
}