package com.nis.web.service.configuration; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.eclipse.jetty.util.ajax.JSON; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import com.nis.domain.Page; import com.nis.domain.configuration.UserManage; import com.nis.exceptions.MaatConvertException; import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.util.httpclient.HttpClientUtil; import com.nis.web.dao.configuration.UserManageDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @Service public class UserManageService extends BaseService{ @Autowired protected UserManageDao userManageDao; public Page findPage(Page page, UserManage entity) { entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); entity.setPage(page); List list=userManageDao.findList(entity); page.setList(list); return page; } public UserManage getUserByLoginName(String userName) { return userManageDao.getUserByLoginName(userName); } public UserManage getUserById(String id) { return userManageDao.getUserById(id); } public void save(UserManage entity,Model model, HttpServletRequest request){ Date createTime=new Date(); if(entity.getId()==null){ try { entity.setCreateTime(createTime); entity.setCreatorId(entity.getCurrentUser().getId()); entity.setIsValid(Constants.VALID_NO); userManageDao.insert(entity); //cgi接口添加 /*String[] ipArray = entity.getServerIp().split(","); for(String ip :ipArray){ //循环调用接口增加 Map params = new HashMap(); params.put("server_ip", ip); params.put("user_name", entity.getUserName()); params.put("user_pwd", entity.getUserPwd()); Map map=getUrl(params,Constants.NTC_IP_REUSE_USER_CREATE,request); //返回处理 }*/ } catch (MaatConvertException e) { e.printStackTrace(); logger.info("获取编译ID出错"); throw new MaatConvertException(""); } }else{ try { entity.setEditTime(createTime); entity.setEditorId(entity.getCurrentUser().getId()); //获取修改之前数据 UserManage olduser=userManageDao.getUserById(String.valueOf(entity.getId())); userManageDao.update(entity); //cgi接口删除旧数据 String[] ipArray = olduser.getServerIp().split(","); /*for(String ip :ipArray){ //循环调用接口删除 Map params = new HashMap(); params.put("server_ip", ip); params.put("user_name", olduser.getUserName()); Map map=getUrl(params,Constants.NTC_IP_REUSE_USER_DELETE,request); //返回处理 }*/ if(StringUtil.isEmpty(entity.getUserName())){ entity.setUserName(olduser.getUserName()); } if(StringUtil.isEmpty(entity.getUserPwd())){ entity.setUserPwd(olduser.getUserPwd()); } /*String[] newIpArray = entity.getServerIp().split(","); for(String newIp :newIpArray){ //循环调用接口添加 Map params = new HashMap(); params.put("server_ip", newIp); params.put("user_name", entity.getUserName()); params.put("user_pwd", entity.getUserPwd()); Map map=getUrl(params,Constants.NTC_IP_REUSE_USER_CREATE,request); //返回处理 }*/ }catch (Exception e) { e.printStackTrace(); logger.info("获取编译ID出错"); throw new MaatConvertException(""); } } } public Map getUrl(Map params,String urlType,HttpServletRequest request){ Map map=new HashMap(); try{ String url =Constants.IP_REUSE_CALL_CGI_URL+ Constants.NTC_IP_REUSE_USER_GET ; String recv = HttpClientUtil.getCGI(url, params, request); logger.info("查询结果:" + recv); if (StringUtils.isNotBlank(recv)) { map=(Map)JSON.parse(recv); } } catch (Exception e) { logger.error("查询失败", e); } return map; } //根据vpn服务器ip获取用户vpn服务器ip信息 public Map getUser(String serverIp,String userName,HttpServletRequest request){ Map params = new HashMap(); params.put("server_ip", serverIp); params.put("user_name", userName); Map map=new HashMap(); try{ String url =Constants.IP_REUSE_CALL_CGI_URL+ Constants.NTC_IP_REUSE_USER_GET ; String recv = HttpClientUtil.getCGI(url, params, request); logger.info("查询结果:" + recv); if (StringUtils.isNotBlank(recv)) { map=(Map)JSON.parse(recv); } } catch (Exception e) { logger.error("查询失败", e); } return map; } /** * * @param isAudit * @param isValid * @param ids compileIds */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void delete(Integer isValid,String ids,HttpServletRequest request){ try{ String[] idArray = ids.split(","); List userList=new ArrayList(); for(String id :idArray){ UserManage entity = new UserManage(); entity=userManageDao.getUserById(id); if(entity!=null){ userList.add(entity); } entity.setId(Long.valueOf(id)); entity.setIsValid(isValid); entity.setEditorId(UserUtils.getUser().getId()); entity.setEditTime(new Date()); userManageDao.update(entity); } //cgi接口删除旧数据 /*for (int i = 0; i < userList.size(); i++) { String[] ipArray = userList.get(i).getServerIp().split(","); for(String ip :ipArray){ //循环调用接口删除 Map params = new HashMap(); params.put("server_ip", ip); params.put("user_name",userList.get(i).getUserName()); Map map=getUrl(params,Constants.NTC_IP_REUSE_USER_DELETE,request); //返回处理 } }*/ } catch (Exception e) { logger.error("查询失败", e); } } public List findUsers() { return userManageDao.findUsers(); } }