Browse Source

修改权限管理创建账号功能

fan.yang@cloudcross.com 9 years ago
parent
commit
18a8d5f3dd
1 changed files with 288 additions and 288 deletions
  1. 288 288
      src/main/java/com/cloudcross/ssp/web/back/main/AuthorityController.java

+ 288 - 288
src/main/java/com/cloudcross/ssp/web/back/main/AuthorityController.java

@@ -1,288 +1,288 @@
-package com.cloudcross.ssp.web.back.main;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.cloudcross.ssp.model.Account;
-import com.cloudcross.ssp.model.Resources;
-import com.cloudcross.ssp.model.UserLogin;
-import com.cloudcross.ssp.service.IAccountService;
-import com.cloudcross.ssp.service.IResourcesService;
-import com.cloudcross.ssp.service.IUserLoginService;
-import com.cloudcross.ssp.base.utils.freemarker.FreemarkerTemplateProcessor;
-import com.cloudcross.ssp.base.web.SimpleController;
-import com.cloudcross.ssp.common.consts.Status;
-import com.cloudcross.ssp.common.utils.LangUtil;
-//import com.cloudcross.ssp.common.utils.MD5;
-import com.cloudcross.ssp.common.utils.Md5Tool;
-import com.cloudcross.ssp.common.utils.Pager;
-
-@Controller("back.authorityController")
-@RequestMapping("/back/main/authority")
-public class AuthorityController extends SimpleController{
-	
-	@Autowired
-	private FreemarkerTemplateProcessor templateProcessor;
-	
-	@Autowired
-	protected IAccountService accountService;
-	
-	@Autowired
-	protected IUserLoginService userLoginService;
-	@Autowired
-	protected IResourcesService resourcesService;
-	@RequestMapping
-	public String index(){
-		return redirect(page("list"));
-	}
-	//权限管理的列表页,显示当前登录用户所创建的所有账号!
-	//如果是云联账号,则显示所有的运营商系统的账号!
-	@RequestMapping("list")
-	public String list(Model model,
-			@RequestParam HashMap<String, Object> paramMap,
-			@RequestParam(defaultValue="1") int page){
-		//当前登录用户
-		Account loginAccount = getLoginUser();
-		//当前登录用户是云联的账号还是运营商账号!
-		paramMap.put("loginAccount", loginAccount);
-		int totalRow = accountService.countByParams(paramMap);
-		Pager pager = new Pager();
-		pager.setPage(page);
-		pager.setTotalRow(totalRow);
-		List<Account> accountList = accountService.findByParams(paramMap, pager);
-		//循环获取查询到账号的登录时间;保存到对象的creatTime字段中
-		for (int i = 0; i < accountList.size(); i++) {
-			UserLogin login = userLoginService.getById(new Integer(accountList.get(i).getId()).toString());
-			//查询到的用户可能从未登录过系统,所以这里要判断一下,避免空指针异常!
-			if (login == null) {
-				continue;
-			}
-			accountList.get(i).setCreateTime(login.getLoginTime());
-		}
-		model.addAttribute("accountList",accountList);
-		model.addAttribute("pager",pager);
-		model.addAllAttributes(paramMap);
-		return page("list");
-	}
-	/**
-	 * @author CloudCross
-	 * @return 返回create页面
-	 */
-	@RequestMapping("/create")
-	public String create(){
-		return page("create");
-	}
-	/**
-	 * 
-	 * @return
-	 */
-	@RequestMapping("/save")
-	public String save(Model model,
-					@ModelAttribute("form") Account t,
-					@RequestParam(value = "authority", defaultValue = "") String authority,
-					@RequestParam(value = "ensurePassword", defaultValue = "") String ensurePassword){
-		//得到当前登陆用户,因为我们这个系统,只是媒体方系统,所以不用考虑是广告主登录进来的问题,
-		//但是这个地方要考虑是某个媒体账号进来创建的账号,所以要打上这个媒体的标签。
-		
-		String password = t.getPassword();
-		if ((t.getId()) == 0) {
-			Account account = getLoginUser();
-			t.setSysType(account.getSysType());
-			t.setPassword(Md5Tool.getMd5(password));
-			t.setDescription(account.getDescription());
-
-			accountService.addAccount(t);
-			
-			if(authority!=null && !authority.equals("")){
-				List<Long> autList = new ArrayList<Long>();
-				String[] aut = authority.split(",");
-				for(int i=0;i < aut.length;i++){
-					autList.add(Long.parseLong(aut[i]));
-				}
-				resourcesService.addAccountResourcess(new Long(t.getId()),autList);
-			}
-		} else {
-				if (StringUtils.isNotBlank(password)) {
-					t.setPassword(Md5Tool.getMd5(password));
-				}
-				accountService.editAccount(t);
-				if(authority!=null){
-					if(authority.equals("")){
-						resourcesService.deleteResourceByAccount(Long.parseLong(String.valueOf(t.getId())));
-					}else {
-						List<Long> autList = new ArrayList<Long>();
-						String[] aut = authority.split(",");
-						for(int i=0;i < aut.length;i++){
-							autList.add(Long.parseLong(aut[i]));
-						}
-						resourcesService.addAccountResourcess(Long.parseLong(String.valueOf(t.getId())),autList);
-					}
-				}
-			}
-		// 跳转到管理页面。
-		return redirect(page("list"));
-	}
-	@RequestMapping("/edit")
-	public String edit(Model model, @RequestParam long accountId) {
-		Account account = accountService.getById(String.valueOf(accountId));
-		System.out.println("yuan"+account);
-		String authority = ""; 
-			List<Resources> resources = resourcesService.findResourcesByAccount(accountId);
-		for (Resources r:resources){
-				//循环取出resources中的id
-				if(authority.equals("")){
-					authority = authority + r.getId().toString();
-				}
-				else{
-					authority = authority + ","+r.getId().toString();
-				}
-			}
-		model.addAttribute("authority",authority);
-		model.addAttribute("account", account);
-		return page("edit");
-	}
-	
-	//这个地方要注意,因为我们表示1开启,0表示停止
-	@RequestMapping("enable")
-	public @ResponseBody String enable(Long[] id){
-		if (ArrayUtils.isNotEmpty(id)) {
-			accountService.updateState(LangUtil.array2List(id),Status.disable.value);
-		}
-		return OK;
-	}
-	@RequestMapping("disable")
-	public @ResponseBody String disable(Long[] id){
-		if (ArrayUtils.isNotEmpty(id)) {
-			accountService.updateState(LangUtil.array2List(id),Status.enable.value);
-		}
-		return OK;
-	}
-	
-	/**
-	 * 跳转到个人信息修改页面
-	 * @param model
-	 * @return
-	 */
-	@RequestMapping("/loginperson")
-	public String personInfEdit(Model model){
-		/**
-		 * ————————————————这个地方要注意,还要将当前登录用户的对应表的一些信息读取出来:
-		 *	例如:媒体系统的就要去t_operater表中读取数据;
-		 *  广告主系统的:运营商登录系统,去t_adv_agent;广告主登录系统,去t_advertiser。
-		 *  要判断当前登录用户是不是超管账号。admin_id字段等于当前登录用户的id就表示是超管,是超管就要将operator中的信息传到页面上去;
-		 *  否则就表示不是!
-		 */
-		Account account = getLoginUser();
-		model.addAttribute("account",account);
-		return page("loginperson");
-	}
-	/**
-	 * 个人信息修改的保存操作!!
-	 * @param model
-	 * @param t
-	 * @param ensurePassword
-	 * @return 保存操作成功要跳转回login页面,重新输入密码后才能再次进入系统
-	 */
-	@RequestMapping("/saveloginperson")
-	public String saveloginperson(Model model,
-					@ModelAttribute("form") Account t,
-					@RequestParam(value = "ensurePassword", defaultValue = "") String ensurePassword){
-		Account loginAccount = getLoginUser();
-		String password = t.getPassword();
-		if (StringUtils.isNotBlank(password)) {
-			t.setPassword(Md5Tool.getMd5(password));
-		}
-		accountService.editAccount(t);
-		if(!loginAccount.getPassword().equals(t.getPassword())){
-			return "/login";//修改密码跳转login界面重新登陆
-		}else{
-			return "/back/main/dashboard";//并未修改密码,则跳转主页!
-		}
-	}
-	
-	@RequestMapping("isExist")
-	public @ResponseBody String isExist(Model model,
-			@RequestParam(defaultValue = "") String accountName
-			) {
-		String success = "";
-		Account account = accountService.querySingleAccount(accountName);
-//		System.err.println(account);
-		if(account!=null){
-			model.addAttribute("isExist", new Long(1));
-			success = "YES";
-//			System.out.println("yuanzhiq11111111");
-		}else {
-			model.addAttribute("isExist", new Long(0));
-			success = "NO";
-//			System.out.println("yuanzhiq0000000");
-		}
-		return success;
-	}
-	
-	@RequestMapping("/exportDataReportExcel")
-	public void exportDataReportExcel(HttpServletRequest request,
-			HttpServletResponse response,
-			@RequestParam HashMap<String, Object> paramMap) {
-		/**
-		 * 参数和list里要一样
-		 */
-		Account loginAccount = getLoginUser();
-		paramMap.put("loginAccount", loginAccount);
-		List<Account> accountList = accountService.findExcelAccounts(paramMap);
-		for (int i = 0; i < accountList.size(); i++) {
-			UserLogin login = userLoginService.getById(new Integer(accountList.get(i).getId()).toString());
-			//查询到的用户可能从未登录过系统,所以这里要判断一下,避免空指针异常!
-			if (login == null) {
-				continue;
-			}
-			accountList.get(i).setCreateTime(login.getLoginTime());
-		}
-		System.out.println("yuanzzzz"+accountList);
-		paramMap.put("dataList", accountList);
-		
-		response.reset();
-		// Content-Type:application/vnd.ms-excel;charset=utf8或者text/xml;charset=utf8
-		response.setContentType("application/vnd.ms-excel;charset=utf8");
-		// 设置excel文件名称
-		SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddHHmmss");
-		String fileName = "account" + df2.format(new Date());
-		response.setHeader("Content-Disposition", "attachment;filename="
-				+ fileName + ".xls");
-		// 需要对excel的列和行的总数进行指定
-		int column = 6;
-		paramMap.put("dataSize", (accountList.size() + 100));
-		paramMap.put("column", column);
-	
-		paramMap.put("accountList", "账号列表");
-		String excelTemplate = templateProcessor.processTemplate(
-				"excel/dataAccount.ftl", paramMap);
-		try {
-			PrintWriter out = response.getWriter();
-			out.write(excelTemplate);
-			out.flush();
-			out.close();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-}
-
+package com.cloudcross.ssp.web.back.main;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.cloudcross.ssp.model.Account;
+import com.cloudcross.ssp.model.Resources;
+import com.cloudcross.ssp.model.UserLogin;
+import com.cloudcross.ssp.service.IAccountService;
+import com.cloudcross.ssp.service.IResourcesService;
+import com.cloudcross.ssp.service.IUserLoginService;
+import com.cloudcross.ssp.base.utils.freemarker.FreemarkerTemplateProcessor;
+import com.cloudcross.ssp.base.web.SimpleController;
+import com.cloudcross.ssp.common.consts.Status;
+import com.cloudcross.ssp.common.utils.LangUtil;
+//import com.cloudcross.ssp.common.utils.MD5;
+import com.cloudcross.ssp.common.utils.Md5Tool;
+import com.cloudcross.ssp.common.utils.Pager;
+
+@Controller("back.authorityController")
+@RequestMapping("/back/main/authority")
+public class AuthorityController extends SimpleController{
+	
+	@Autowired
+	private FreemarkerTemplateProcessor templateProcessor;
+	
+	@Autowired
+	protected IAccountService accountService;
+	
+	@Autowired
+	protected IUserLoginService userLoginService;
+	@Autowired
+	protected IResourcesService resourcesService;
+	@RequestMapping
+	public String index(){
+		return redirect(page("list"));
+	}
+	//权限管理的列表页,显示当前登录用户所创建的所有账号!
+	//如果是云联账号,则显示所有的运营商系统的账号!
+	@RequestMapping("list")
+	public String list(Model model,
+			@RequestParam HashMap<String, Object> paramMap,
+			@RequestParam(defaultValue="1") int page){
+		//当前登录用户
+		Account loginAccount = getLoginUser();
+		//当前登录用户是云联的账号还是运营商账号!
+		paramMap.put("loginAccount", loginAccount);
+		int totalRow = accountService.countByParams(paramMap);
+		Pager pager = new Pager();
+		pager.setPage(page);
+		pager.setTotalRow(totalRow);
+		List<Account> accountList = accountService.findByParams(paramMap, pager);
+		//循环获取查询到账号的登录时间;保存到对象的creatTime字段中
+		for (int i = 0; i < accountList.size(); i++) {
+			UserLogin login = userLoginService.getById(new Integer(accountList.get(i).getId()).toString());
+			//查询到的用户可能从未登录过系统,所以这里要判断一下,避免空指针异常!
+			if (login == null) {
+				continue;
+			}
+			accountList.get(i).setCreateTime(login.getLoginTime());
+		}
+		model.addAttribute("accountList",accountList);
+		model.addAttribute("pager",pager);
+		model.addAllAttributes(paramMap);
+		return page("list");
+	}
+	/**
+	 * @author CloudCross
+	 * @return 返回create页面
+	 */
+	@RequestMapping("/create")
+	public String create(){
+		return page("create");
+	}
+	/**
+	 * 
+	 * @return
+	 */
+	@RequestMapping("/save")
+	public String save(Model model,
+					@ModelAttribute("form") Account t,
+					@RequestParam(value = "authority", defaultValue = "") String authority,
+					@RequestParam(value = "ensurePassword", defaultValue = "") String ensurePassword){
+		//得到当前登陆用户,因为我们这个系统,只是媒体方系统,所以不用考虑是广告主登录进来的问题,
+		//但是这个地方要考虑是某个媒体账号进来创建的账号,所以要打上这个媒体的标签。
+		
+		String password = t.getPassword();
+		if ((t.getId()) == 0) {
+			Account account = getLoginUser();
+			t.setSysType(account.getSysType());
+			t.setPassword(Md5Tool.getMd5(password));
+			t.setDescription(account.getDescription());
+			t.setType(1);
+			accountService.addAccount(t);
+			
+			if(authority!=null && !authority.equals("")){
+				List<Long> autList = new ArrayList<Long>();
+				String[] aut = authority.split(",");
+				for(int i=0;i < aut.length;i++){
+					autList.add(Long.parseLong(aut[i]));
+				}
+				resourcesService.addAccountResourcess(new Long(t.getId()),autList);
+			}
+		} else {
+				if (StringUtils.isNotBlank(password)) {
+					t.setPassword(Md5Tool.getMd5(password));
+				}
+				accountService.editAccount(t);
+				if(authority!=null){
+					if(authority.equals("")){
+						resourcesService.deleteResourceByAccount(Long.parseLong(String.valueOf(t.getId())));
+					}else {
+						List<Long> autList = new ArrayList<Long>();
+						String[] aut = authority.split(",");
+						for(int i=0;i < aut.length;i++){
+							autList.add(Long.parseLong(aut[i]));
+						}
+						resourcesService.addAccountResourcess(Long.parseLong(String.valueOf(t.getId())),autList);
+					}
+				}
+			}
+		// 跳转到管理页面。
+		return redirect(page("list"));
+	}
+	@RequestMapping("/edit")
+	public String edit(Model model, @RequestParam long accountId) {
+		Account account = accountService.getById(String.valueOf(accountId));
+		System.out.println("yuan"+account);
+		String authority = ""; 
+			List<Resources> resources = resourcesService.findResourcesByAccount(accountId);
+		for (Resources r:resources){
+				//循环取出resources中的id
+				if(authority.equals("")){
+					authority = authority + r.getId().toString();
+				}
+				else{
+					authority = authority + ","+r.getId().toString();
+				}
+			}
+		model.addAttribute("authority",authority);
+		model.addAttribute("account", account);
+		return page("edit");
+	}
+	
+	//这个地方要注意,因为我们表示1开启,0表示停止
+	@RequestMapping("enable")
+	public @ResponseBody String enable(Long[] id){
+		if (ArrayUtils.isNotEmpty(id)) {
+			accountService.updateState(LangUtil.array2List(id),Status.disable.value);
+		}
+		return OK;
+	}
+	@RequestMapping("disable")
+	public @ResponseBody String disable(Long[] id){
+		if (ArrayUtils.isNotEmpty(id)) {
+			accountService.updateState(LangUtil.array2List(id),Status.enable.value);
+		}
+		return OK;
+	}
+	
+	/**
+	 * 跳转到个人信息修改页面
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping("/loginperson")
+	public String personInfEdit(Model model){
+		/**
+		 * ————————————————这个地方要注意,还要将当前登录用户的对应表的一些信息读取出来:
+		 *	例如:媒体系统的就要去t_operater表中读取数据;
+		 *  广告主系统的:运营商登录系统,去t_adv_agent;广告主登录系统,去t_advertiser。
+		 *  要判断当前登录用户是不是超管账号。admin_id字段等于当前登录用户的id就表示是超管,是超管就要将operator中的信息传到页面上去;
+		 *  否则就表示不是!
+		 */
+		Account account = getLoginUser();
+		model.addAttribute("account",account);
+		return page("loginperson");
+	}
+	/**
+	 * 个人信息修改的保存操作!!
+	 * @param model
+	 * @param t
+	 * @param ensurePassword
+	 * @return 保存操作成功要跳转回login页面,重新输入密码后才能再次进入系统
+	 */
+	@RequestMapping("/saveloginperson")
+	public String saveloginperson(Model model,
+					@ModelAttribute("form") Account t,
+					@RequestParam(value = "ensurePassword", defaultValue = "") String ensurePassword){
+		Account loginAccount = getLoginUser();
+		String password = t.getPassword();
+		if (StringUtils.isNotBlank(password)) {
+			t.setPassword(Md5Tool.getMd5(password));
+		}
+		accountService.editAccount(t);
+		if(!loginAccount.getPassword().equals(t.getPassword())){
+			return "/login";//修改密码跳转login界面重新登陆
+		}else{
+			return "/back/main/dashboard";//并未修改密码,则跳转主页!
+		}
+	}
+	
+	@RequestMapping("isExist")
+	public @ResponseBody String isExist(Model model,
+			@RequestParam(defaultValue = "") String accountName
+			) {
+		String success = "";
+		Account account = accountService.querySingleAccount(accountName);
+//		System.err.println(account);
+		if(account!=null){
+			model.addAttribute("isExist", new Long(1));
+			success = "YES";
+//			System.out.println("yuanzhiq11111111");
+		}else {
+			model.addAttribute("isExist", new Long(0));
+			success = "NO";
+//			System.out.println("yuanzhiq0000000");
+		}
+		return success;
+	}
+	
+	@RequestMapping("/exportDataReportExcel")
+	public void exportDataReportExcel(HttpServletRequest request,
+			HttpServletResponse response,
+			@RequestParam HashMap<String, Object> paramMap) {
+		/**
+		 * 参数和list里要一样
+		 */
+		Account loginAccount = getLoginUser();
+		paramMap.put("loginAccount", loginAccount);
+		List<Account> accountList = accountService.findExcelAccounts(paramMap);
+		for (int i = 0; i < accountList.size(); i++) {
+			UserLogin login = userLoginService.getById(new Integer(accountList.get(i).getId()).toString());
+			//查询到的用户可能从未登录过系统,所以这里要判断一下,避免空指针异常!
+			if (login == null) {
+				continue;
+			}
+			accountList.get(i).setCreateTime(login.getLoginTime());
+		}
+		System.out.println("yuanzzzz"+accountList);
+		paramMap.put("dataList", accountList);
+		
+		response.reset();
+		// Content-Type:application/vnd.ms-excel;charset=utf8或者text/xml;charset=utf8
+		response.setContentType("application/vnd.ms-excel;charset=utf8");
+		// 设置excel文件名称
+		SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMddHHmmss");
+		String fileName = "account" + df2.format(new Date());
+		response.setHeader("Content-Disposition", "attachment;filename="
+				+ fileName + ".xls");
+		// 需要对excel的列和行的总数进行指定
+		int column = 6;
+		paramMap.put("dataSize", (accountList.size() + 100));
+		paramMap.put("column", column);
+	
+		paramMap.put("accountList", "账号列表");
+		String excelTemplate = templateProcessor.processTemplate(
+				"excel/dataAccount.ftl", paramMap);
+		try {
+			PrintWriter out = response.getWriter();
+			out.write(excelTemplate);
+			out.flush();
+			out.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+}
+