// Path: geekHome-service/src/main/java/com/geekhome/entity/Role.java
// @Entity
// @Table(name = "ROLE")
// public class Role implements Serializable {
// 
// 	private static final long serialVersionUID = -2337967383981152117L;
// 	
// 	/**
// 	 * 默认开启
// 	 */
// 	public static final Integer ROLE_STATE_DEFAULT = 1;
// 	/**
// 	 * 关闭
// 	 */
// 	public static final Integer ROLE_STATE_CLOSE = 0;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.AUTO)
// 	@Column(name = "ID")
// 	private Long id;
// 	@Column(name = "NAME")
// 	private String name;
// 	@Column(name = "ROLE_DESC")
// 	private String roleDesc;
// 	@Column(name = "STATE")
// 	private Integer state;
// 	@JsonSerialize(using = CustomDateSerializer.class)
// 	@Column(name = "CREATE_TIME")
// 	private Date createTime;
// 	@JsonSerialize(using = CustomDateSerializer.class)
// 	@Column(name = "UPDATE_TIME")
// 	private Date updateTime;
// 
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getRoleDesc() {
// 		return roleDesc;
// 	}
// 
// 	public void setRoleDesc(String roleDesc) {
// 		this.roleDesc = roleDesc;
// 	}
// 
// 	public Integer getState() {
// 		return state;
// 	}
// 
// 	public void setState(Integer state) {
// 		this.state = state;
// 	}
// 
// 	public Date getCreateTime() {
// 		return createTime;
// 	}
// 
// 	public void setCreateTime(Date createTime) {
// 		this.createTime = createTime;
// 	}
// 
// 	public Date getUpdateTime() {
// 		return updateTime;
// 	}
// 
// 	public void setUpdateTime(Date updateTime) {
// 		this.updateTime = updateTime;
// 	}
// 
// 	public Role() {
// 		super();
// 	}
// 
// 	public Role(Long id, String name, String roleDesc, Integer state, Date createTime, Date updateTime) {
// 		super();
// 		this.id = id;
// 		this.name = name;
// 		this.roleDesc = roleDesc;
// 		this.state = state;
// 		this.createTime = createTime;
// 		this.updateTime = updateTime;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Role [id=" + id + ", name=" + name + ", roleDesc=" + roleDesc + ", state=" + state + ", createTime="
// 				+ createTime + ", updateTime=" + updateTime + "]";
// 	}
// 
// }
// 
// Path: geekHome-service/src/main/java/com/geekhome/entity/dao/RoleDao.java
// public interface RoleDao extends JpaRepository<Role, Long> {
// 
// 	public List<Role> findRoleByName(String name);
// 
// 	public List<Role> findRoleByIdNotAndName(Long id,String name );
// 
// 	public List<Role> findRoleByStateNot(Integer state);
// 
// }


import java.util.Date;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.geekhome.entity.Role;
import com.geekhome.entity.dao.RoleDao;
package com.geekhome.entity.service;





@Service
public class RoleService {

	@Autowired
	RoleDao roleDao;

	@Transactional
	public Integer saveRole(Role role) {
		if (role.getId() != null) {
			List<Role> list = roleDao.findRoleByIdNotAndName(role.getId(),role.getName());
			if(list.isEmpty()) {
				Role r = roleDao.findOne(role.getId());
				role.setCreateTime(r.getCreateTime());
				role.setUpdateTime(new Date());
				roleDao.save(role);
				return 1;
			}else {
				return -1;//已存在相同名称
			}
		} else {
			List<Role> list = roleDao.findRoleByName(role.getName());
			if(list.isEmpty()) {
				role.setCreateTime(new Date());
// Path: geekHome-service/src/main/java/com/geekhome/entity/Role.java
// @Entity
// @Table(name = "ROLE")
// public class Role implements Serializable {
// 
// 	private static final long serialVersionUID = -2337967383981152117L;
// 	
// 	/**
// 	 * 默认开启
// 	 */
// 	public static final Integer ROLE_STATE_DEFAULT = 1;
// 	/**
// 	 * 关闭
// 	 */
// 	public static final Integer ROLE_STATE_CLOSE = 0;
// 
// 	@Id
// 	@GeneratedValue(strategy = GenerationType.AUTO)
// 	@Column(name = "ID")
// 	private Long id;
// 	@Column(name = "NAME")
// 	private String name;
// 	@Column(name = "ROLE_DESC")
// 	private String roleDesc;
// 	@Column(name = "STATE")
// 	private Integer state;
// 	@JsonSerialize(using = CustomDateSerializer.class)
// 	@Column(name = "CREATE_TIME")
// 	private Date createTime;
// 	@JsonSerialize(using = CustomDateSerializer.class)
// 	@Column(name = "UPDATE_TIME")
// 	private Date updateTime;
// 
// 	public Long getId() {
// 		return id;
// 	}
// 
// 	public void setId(Long id) {
// 		this.id = id;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getRoleDesc() {
// 		return roleDesc;
// 	}
// 
// 	public void setRoleDesc(String roleDesc) {
// 		this.roleDesc = roleDesc;
// 	}
// 
// 	public Integer getState() {
// 		return state;
// 	}
// 
// 	public void setState(Integer state) {
// 		this.state = state;
// 	}
// 
// 	public Date getCreateTime() {
// 		return createTime;
// 	}
// 
// 	public void setCreateTime(Date createTime) {
// 		this.createTime = createTime;
// 	}
// 
// 	public Date getUpdateTime() {
// 		return updateTime;
// 	}
// 
// 	public void setUpdateTime(Date updateTime) {
// 		this.updateTime = updateTime;
// 	}
// 
// 	public Role() {
// 		super();
// 	}
// 
// 	public Role(Long id, String name, String roleDesc, Integer state, Date createTime, Date updateTime) {
// 		super();
// 		this.id = id;
// 		this.name = name;
// 		this.roleDesc = roleDesc;
// 		this.state = state;
// 		this.createTime = createTime;
// 		this.updateTime = updateTime;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Role [id=" + id + ", name=" + name + ", roleDesc=" + roleDesc + ", state=" + state + ", createTime="
// 				+ createTime + ", updateTime=" + updateTime + "]";
// 	}
// 
// }
// 
// Path: geekHome-service/src/main/java/com/geekhome/entity/dao/RoleDao.java
// public interface RoleDao extends JpaRepository<Role, Long> {
// 
// 	public List<Role> findRoleByName(String name);
// 
// 	public List<Role> findRoleByIdNotAndName(Long id,String name );
// 
// 	public List<Role> findRoleByStateNot(Integer state);
// 
// }


// Path: geekHome-service/src/main/java/com/geekhome/entity/service/RoleService.java
import java.util.Date;
import java.util.List;
import javax.transaction.Transactional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.geekhome.entity.Role;
import com.geekhome.entity.dao.RoleDao;

package com.geekhome.entity.service;





@Service
public class RoleService {

	@Autowired
	RoleDao roleDao;

	@Transactional
	public Integer saveRole(Role role) {
		if (role.getId() != null) {
			List<Role> list = roleDao.findRoleByIdNotAndName(role.getId(),role.getName());
			if(list.isEmpty()) {
				Role r = roleDao.findOne(role.getId());
				role.setCreateTime(r.getCreateTime());
				role.setUpdateTime(new Date());
				roleDao.save(role);
				return 1;
			}else {
				return -1;//已存在相同名称
			}
		} else {
			List<Role> list = roleDao.findRoleByName(role.getName());
			if(list.isEmpty()) {
				role.setCreateTime(new Date());
				roleDao.save(role);