| 
					
				 | 
			
			
				@ -0,0 +1,116 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.healthyhouse.service.user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.exception.business.ManageException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthyhouse.dao.UserDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthyhouse.model.user.User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.wlyy.HouseUserContant; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.security.MD5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.PageRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Sort; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.jpa.domain.Specification; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springside.modules.persistence.DynamicSpecifications; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springside.modules.persistence.SearchFilter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.transaction.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.UUID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author HZY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @created 2018/9/18 19:48 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class UserService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private UserDao userDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public User findByCode(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return userDao.findByLoginCode(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public User findByAccount(String username) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return userDao.findByName(username); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Page<User> userList(Integer page, Integer pageSize, Map<String,String> map)throws ManageException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Sort sort = new Sort(Sort.Direction.DESC, "modifyDate"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 分页信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PageRequest pageRequest = new PageRequest(page, pageSize, sort); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 设置查询条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, SearchFilter> filters = new HashMap<String, SearchFilter>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 用户名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String name = map.get("name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!StringUtils.isEmpty(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filters.put("name", new SearchFilter("name", SearchFilter.Operator.LIKE, name)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 电话号码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String mobile = map.get("telephone"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!StringUtils.isEmpty(mobile)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            filters.put("telephone", new SearchFilter("telephone", SearchFilter.Operator.LIKE, mobile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 激活状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        filters.put("activated", new SearchFilter("activated", SearchFilter.Operator.EQ, HouseUserContant.activated_active)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Specification<User> spec = DynamicSpecifications.bySearchFilter(filters.values(), User.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return userDao.findAll(spec, pageRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param codes        待删除code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userCode     修改者code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void delete(String codes, String userCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        User user = userDao.findByLoginCode(userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String userName = user.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(String code:codes.split(",")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user1 = findByCode(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user1.setActivated(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user1.setModifierName(userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user1.setModifier(userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userDao.save(user1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop saveOrUpdate(User user, String oldPsd, String userCode) throws ManageException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        User loginUser = userDao.findByLoginCode(userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String userName = loginUser.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(user.getId()==null){//保存 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //判断登陆账号是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user1 = userDao.findByLoginCode(userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(user1!=null){//登陆账号已存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new ManageException("该登陆账号已存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String salt = UUID.randomUUID().toString().replaceAll("-",""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setSalt(salt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String password = MD5.GetMD5Code(user.getPassword() + salt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setPassword(password); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String code = UUID.randomUUID().toString().replaceAll("-", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setId(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setCreator(userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setActivated(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userDao.save(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Envelop.getSuccess("保存成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{//修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            User user1 = findByCode(user.getLoginCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String psd = MD5.GetMD5Code(oldPsd + user1.getSalt()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!user1.getPassword().equals(psd)){//判断密码是否相同 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new ManageException("原密码错误"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setModifier(userCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            user.setModifierName(userName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            userDao.save(user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Envelop.getSuccess("修改成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |