package com.jspxcms.core.service.impl; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jspxcms.core.domain.User; import com.jspxcms.core.domain.WorkflowProcess; import com.jspxcms.core.domain.WorkflowProcessUser; import com.jspxcms.core.repository.WorkflowProcessUserDao; import com.jspxcms.core.service.WorkflowProcessUserService; @Service @Transactional(readOnly = true) public class WorkflowProcessUserServiceImpl implements WorkflowProcessUserService { @Transactional public Set<WorkflowProcessUser> save(WorkflowProcess process, Set<User> users) { Set<WorkflowProcessUser> processUsers = new HashSet<WorkflowProcessUser>(); process.setProcessUsers(processUsers); if (users != null) { WorkflowProcessUser processUser; for (User user : users) { processUser = new WorkflowProcessUser(process, user); dao.save(processUser); processUsers.add(processUser); } } return processUsers; } public Set<WorkflowProcessUser> update(WorkflowProcess process, Set<User> users) { dao.deleteByPorcessId(Arrays.asList(new Integer[] { process.getId() })); return save(process, users); } @Transactional public int deleteByProcessId(Collection<Integer> processIds) { return dao.deleteByPorcessId(processIds); } @Transactional public int deleteByUserId(Collection<Integer> userIds) { return dao.deleteByUserId(userIds); } @Transactional public int deleteByPorcessUserId(Collection<Integer> userIds) { return dao.deleteByPorcessUserId(userIds); } @Transactional public int deleteByPorcessWorkflowId(Collection<Integer> workflowIds) { return dao.deleteByPorcessWorkflowId(workflowIds); } @Transactional public int deleteByPorcessSiteId(Collection<Integer> siteIds) { return dao.deleteByPorcessSiteId(siteIds); } private WorkflowProcessUserDao dao; @Autowired public void setDao(WorkflowProcessUserDao dao) { this.dao = dao; } }