JavaWeb項目筆記:家庭財務管理系統

一.用戶管理模塊
1.用戶登錄

@RequestMapping("/index.do")
	public String index(ModelMap map) {
		List<Role> list = roleService.getRoles();
		map.addAttribute("roles", list);
		return "login";
	}
/**
	 * 用戶登錄
	 * 
	 * @param user
	 * @param request
	 * @return
	 */
	@RequestMapping("/login.do")
	public String login(User user, HttpServletRequest request, HttpServletResponse response) {
		JSONObject result = new JSONObject();
		User resultUsername = userService.loginUsername(user);
		if (resultUsername == null) {
			result.put("errres", 101);
			result.put("errmsg", "用戶名不存在!");
			result.put("inputfocus", "inputUsername");
		} else {
			User resultPassword = userService.loginPassword(user);
			if (resultPassword == null){
				result.put("errres", 102);
				result.put("errmsg", "密碼不正確!");
				result.put("inputfocus", "inputPassword");
			} else {
				User resultRolename = userService.loginRolename(user);
				if (resultRolename == null) {
					result.put("errres", 103);
					result.put("errmsg", "用戶角色不匹配!");
					result.put("inputfocus", "rolename");
				} else {
					resultRolename.setPassword(Base64Util.decodeStr(resultRolename.getPassword(),"UTF-8"));
					HttpSession session = request.getSession();
					session.setAttribute(Constants.currentUserSessionKey, resultRolename);
					result.put("errres", 200);
				}
			}
		}
		ResponseUtil.write(response, result);
		return null;
	}

2.用戶註冊

/**
	 * 用戶註冊頁面
	 */
	@RequestMapping("/sign.do")
	public String sign() {
		return "sign";
	}
	
	/**
	 * 註冊用戶操作
	 */
	@RequestMapping("/gosign.do")
	public String gosign(User user, HttpServletResponse response) throws Exception {
		int resultTotal = 0; // 操作的記錄條數
		int resultTotalother = 0; // 操作的記錄條數
		JSONObject result = new JSONObject();
		if (isUserExists(user)) {
			result.put("errres", false);
			result.put("errmsg", "用戶名已經被使用!");
			result.put("inputfocus", "inputUsername");
			ResponseUtil.write(response, result);
			return null;
		}
		resultTotal = userService.addSign(user);
		resultTotalother = userService.addUserRole(user);

		if ((resultTotal > 0)&&(resultTotalother>0)) { // 執行成功
			result.put("errres", true);
			result.put("errmsg", "註冊成功,請返回登錄!");
		} else {
			result.put("errres", false);
			result.put("errmsg", "註冊失敗");
			result.put("inputfocus", "inputUsername");
		}
		ResponseUtil.write(response, result);
		return null;
	}

3.用戶管理頁面-用戶添加

/**
	 * 判斷指定的用戶是否已經存在
	 * 
	 * @param User
	 *            user
	 * @param response
	 * @return
	 * @throws Exception
	 */

	private boolean isUserExists(User user) throws Exception {
		long resultTotal = 0; // 操作的記錄條數
		resultTotal = userService.getUserIsExists(user);
		boolean rs = false;
		if (resultTotal > 0) { // 執行成功
			rs = true;
		}
		return rs;
	}
	/**
	 * 添加與修改用戶
	 * 
	 * @param customer
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/usersave.do")
	public String save(User user, HttpServletResponse response) throws Exception {
		int resultTotal = 0; // 操作的記錄條數
		JSONObject result = new JSONObject();
		if (isUserExists(user)) {
			result.put("errres", false);
			result.put("errmsg", "用戶名已經被使用!");
			ResponseUtil.write(response, result);
			return null;
		}
		if (user.getId() == null) {
			resultTotal = userService.addUser(user);
			userService.addUserRole(user);
		} else {
			resultTotal = userService.updateUser(user);
		}

		if (resultTotal > 0) { // 執行成功
			result.put("errres", true);
			result.put("errmsg", "數據保存成功!");
		} else {
			result.put("errres", false);
			result.put("errmsg", "數據保存失敗");
		}
		ResponseUtil.write(response, result);
		return null;
	}

4.用戶管理頁面-用戶修改

/**
	 * 修改用戶密碼
	 * 
	 * @param user
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/modifyPassword.do")
	public String modifyPassword(User user, HttpServletResponse response) throws Exception {
		int resultTotal = userService.updateUser(user);
		JSONObject result = new JSONObject();
		if (resultTotal > 0) { // 執行成功
			result.put("success", true);
		} else {
			result.put("success", false);
		}
		ResponseUtil.write(response, result);
		return null;
	}

5.用戶管理頁面-用戶刪除

/**
	 * 刪除用戶
	 * 
	 * @param ids
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/userdelete.do")
	public String delete(@RequestParam(value = "ids") String ids, HttpServletResponse response) throws Exception {
		JSONObject result = new JSONObject();
		String[] idsStr = ids.split(",");
		for (int i = 0; i < idsStr.length; i++) {
			userService.deleteUser(Integer.parseInt(idsStr[i]));
		}
		result.put("errres", true);
		result.put("errmsg", "數據刪除成功!");
		ResponseUtil.write(response, result);
		return null;
	}

6.用戶管理頁面-用戶查詢

/**
	 * 查詢用戶集合
	 * 
	 * @param page
	 * @param rows
	 * @param s_user
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/userlist.do")
	public String list(@RequestParam(value = "page", required = false) String page,
			@RequestParam(value = "rows", required = false) String rows, User s_user, HttpServletResponse response)
			throws Exception {
		PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(rows));
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("username", StringUtil.formatLike(s_user.getUsername()));
		map.put("truename", StringUtil.formatLike(s_user.getTruename()));
		map.put("appellation", StringUtil.formatLike(s_user.getAppellation()));
		map.put("sex", s_user.getSex());
		map.put("roleid", s_user.getRoleid());
		map.put("start", pageBean.getStart());
		map.put("size", pageBean.getPageSize());
		List<User> userList = userService.findUser(map);
		for(int i = 0; i < userList.size(); i++) {
			userList.get(i).setPassword(Base64Util.decodeStr(userList.get(i).getPassword(),"UTF-8"));
        }
		Long total = userService.getTotalUser(map);
		JSONObject result = new JSONObject();
		JSONArray jsonArray = JSONArray.fromObject(userList);
		result.put("rows", jsonArray);
		result.put("total", total);
		ResponseUtil.write(response, result);
		return null;
	}
	/**
	 * 判斷指定的用戶是否已經存在
	 * 
	 * @param User
	 *            user
	 * @param response
	 * @return
	 * @throws Exception
	 */

	private boolean isUserExists(User user) throws Exception {
		long resultTotal = 0; // 操作的記錄條數
		resultTotal = userService.getUserIsExists(user);
		boolean rs = false;
		if (resultTotal > 0) { // 執行成功
			rs = true;
		}
		return rs;
	}

7.用戶登出

@RequestMapping("/logout.do")
	public String logout(HttpSession session) throws Exception {
		session.removeAttribute(Constants.currentUserSessionKey);
		return "redirect:/index.do";
	}

二.收支管理模塊
1.查詢用戶輸入集合

/**
	 * 收入信息管理頁面
	 */
	@RequestMapping("/incomeManage.do")
	public String incomeManage(ModelMap map, HttpServletRequest request) {
		List<Datadic> list = datadicService.getDatadicIncome();
		map.addAttribute("incomes", list);
		
		HttpSession session = request.getSession();
		User curuser = (User)session.getAttribute(Constants.currentUserSessionKey);
		Map<String, Object> userMap = new HashMap<String, Object>();
		userMap.put("userid", curuser.getId());
		userMap.put("roleid", curuser.getRoleid());
		List<User> userlist = userService.getAllUser(userMap);
		map.addAttribute("allUsers", userlist);
		return "incomeManage";
	}

2.添加與修改收入信息

/**
	 * 添加與修改用戶
	 * 
	 * @param income
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/incomesave.do")
	public String save(Income income, HttpServletResponse response) throws Exception {
		int resultTotal = 0; // 操作的記錄條數
		JSONObject result = new JSONObject();
		
		if (income.getId() == null) {
			resultTotal = incomeService.addIncome(income);
		} else {
			resultTotal = incomeService.updateIncome(income);
		}

		if (resultTotal > 0) { // 執行成功
			result.put("errres", true);
			result.put("errmsg", "數據保存成功!");
		} else {
			result.put("errres", false);
			result.put("errmsg", "數據保存失敗");
		}
		ResponseUtil.write(response, result);
		return null;
	}

3.刪除收入信息

/**
	 * 刪除用戶
	 * 
	 * @param ids
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/incomedelete.do")
	public String delete(@RequestParam(value = "ids") String ids, HttpServletResponse response) throws Exception {
		JSONObject result = new JSONObject();
		String[] idsStr = ids.split(",");
		for (int i = 0; i < idsStr.length; i++) {
			incomeService.deleteIncome(Integer.parseInt(idsStr[i]));
		}
		result.put("errres", true);
		result.put("errmsg", "數據刪除成功!");
		ResponseUtil.write(response, result);
		return null;
	}

4.查詢用戶支出集合

/**
	 * 查詢用戶收入集合
	 * 
	 * @param page
	 * @param rows
	 * @param s_pay
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/paylist.do")
	public String list(@RequestParam(value = "page", required = false) String page,
			@RequestParam(value = "rows", required = false) String rows, Pay s_pay, HttpServletResponse response)
			throws Exception {
		PageBean pageBean = new PageBean(Integer.parseInt(page), Integer.parseInt(rows));
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("payer", StringUtil.formatLike(s_pay.getPayer()));
		map.put("tword", StringUtil.formatLike(s_pay.getTword()));
		map.put("dataid", s_pay.getDataid());
		map.put("starttime", s_pay.getStarttime());
		map.put("endtime", s_pay.getEndtime());
		map.put("roleid", s_pay.getRoleid());
		map.put("userid", s_pay.getUserid());
		map.put("start", pageBean.getStart());
		map.put("size", pageBean.getPageSize());
		List<Pay> payList = payService.findPay(map);
		Long total = payService.getTotalPay(map);
		JSONObject result = new JSONObject();
		JSONArray jsonArray = JSONArray.fromObject(payList);
		result.put("rows", jsonArray);
		result.put("total", total);
		ResponseUtil.write(response, result);
		return null;
	}

5.添加與修改用戶支出信息

/**
	 * 添加與修改支出
	 * 
	 * @param pay
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/paysave.do")
	public String save(Pay pay, HttpServletResponse response) throws Exception {
		int resultTotal = 0; // 操作的記錄條數
		JSONObject result = new JSONObject();
		
		if (pay.getId() == null) {
			resultTotal = payService.addPay(pay);
		} else {
			resultTotal = payService.updatePay(pay);
		}

		if (resultTotal > 0) { // 執行成功
			result.put("errres", true);
			result.put("errmsg", "數據保存成功!");
		} else {
			result.put("errres", false);
			result.put("errmsg", "數據保存失敗");
		}
		ResponseUtil.write(response, result);
		return null;
	}

6.刪除用戶支出信息

/**
	 * 刪除用戶
	 * 
	 * @param ids
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/paydelete.do")
	public String delete(@RequestParam(value = "ids") String ids, HttpServletResponse response) throws Exception {
		JSONObject result = new JSONObject();
		String[] idsStr = ids.split(",");
		for (int i = 0; i < idsStr.length; i++) {
			payService.deletePay((Integer.parseInt(idsStr[i])));
		}
		result.put("errres", true);
		result.put("errmsg", "數據刪除成功!");
		ResponseUtil.write(response, result);
		return null;
	}

三.報表管理模塊
1.(時間-金額)生成收入曲線

@RequestMapping("/produceIncomeTime.do")
	public String produceIncomeTime(Income s_income, HttpServletResponse response) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("incomer", StringUtil.formatLike(s_income.getIncomer()));
		map.put("starttime", s_income.getStarttime());
		map.put("endtime", s_income.getEndtime());
		map.put("roleid", s_income.getRoleid());
		map.put("userid", s_income.getUserid());
		List<Income> incomeList = incomeService.getIncomeLine(map);
		List<Income> incomers = incomeService.getIncomer();
		
		String curincomer;
		JSONArray incomeArray,obj;
		JSONObject result;
		
		JSONArray outerobj = new JSONArray();
		for(int i=0;i<incomers.size();i++){
			curincomer = incomers.get(i).getIncomer();
			incomeArray = new JSONArray();
			for(int j = 0; j < incomeList.size(); j++) {
				obj = new JSONArray();
				if(incomeList.get(j).getIncomer().equals(curincomer)){
					obj.add(incomeList.get(j).getIncometime());
					obj.add(incomeList.get(j).getMoney());
					incomeArray.add(obj);
				}
	        }
			if(incomeArray.size()>0){
				result = new JSONObject();
				result.put("name", curincomer);
				result.put("data", incomeArray);
				outerobj.add(result);
			}
		}
		ResponseUtil.write(response, outerobj);
		return null;
	}

2.(時間-金額)生成支出曲線

@RequestMapping("/producePayTime.do")
	public String producePayLine(Pay s_pay, HttpServletResponse response) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("payer", StringUtil.formatLike(s_pay.getPayer()));
		map.put("starttime", s_pay.getStarttime());
		map.put("endtime", s_pay.getEndtime());
		map.put("roleid", s_pay.getRoleid());
		map.put("userid", s_pay.getUserid());
		List<Pay> payList = payService.getPayLine(map);
		List<Pay> payers = payService.getPayer();
		
		String curpayer;
		JSONArray payArray,obj;
		JSONObject result;
		
		JSONArray outerobj = new JSONArray();
		for(int i=0;i<payers.size();i++){
			curpayer = payers.get(i).getPayer();
			payArray = new JSONArray();
			for(int j = 0; j < payList.size(); j++) {
				obj = new JSONArray();
				if(payList.get(j).getPayer().equals(curpayer)){
					obj.add(payList.get(j).getPaytime());
					obj.add(payList.get(j).getMoney());
					payArray.add(obj);
				}
	        }
			if(payArray.size()>0){
				result = new JSONObject();
				result.put("name", curpayer);
				result.put("data", payArray);
				outerobj.add(result);
			}
		}
		ResponseUtil.write(response, outerobj);
		return null;
	}

3.(類型-金額)生成收入餅圖

@RequestMapping("/produceIncomeType.do")
	public String produceIncomeType(Income s_income, HttpServletResponse response) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("incomer", StringUtil.formatLike(s_income.getIncomer()));
		map.put("starttime", s_income.getStarttime());
		map.put("endtime", s_income.getEndtime());
		map.put("roleid", s_income.getRoleid());
		map.put("userid", s_income.getUserid());
		List<Income> incomeList = incomeService.getIncomeLine(map);
		List<Datadic> incomeTypes = datadicService.getDatadicIncome();
		
		JSONArray incomeArray = new JSONArray(),obj;
		JSONObject result = new JSONObject();
		Integer incomeMoney,totalIncomeMoney=0;
		
		for(int k = 0; k < incomeList.size(); k++) {
			totalIncomeMoney = totalIncomeMoney + incomeList.get(k).getMoney();
		}
		
		for (int i = 0; i < incomeTypes.size(); i++) {
			obj = new JSONArray();
			incomeMoney=0;
			for(int j = 0; j < incomeList.size(); j++) {
				if(incomeList.get(j).getDataid().equals(incomeTypes.get(i).getId())){
					incomeMoney = incomeMoney + incomeList.get(j).getMoney();
				}
		    }
			obj.add(incomeTypes.get(i).getDatadicvalue()+":"+(double)Math.round(10000*incomeMoney/totalIncomeMoney)/100+"%");
			obj.add(incomeMoney);
			incomeArray.add(obj);
		}
			
		result.put("name", "(類型——金額)收入餅狀圖");
		result.put("data", incomeArray);
		ResponseUtil.write(response, result);
		return null;
	}

4.(類型-金額)生成支出餅圖

@RequestMapping("/producePayType.do")
	public String producePayType(Pay s_pay, HttpServletResponse response) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("payer", StringUtil.formatLike(s_pay.getPayer()));
		map.put("starttime", s_pay.getStarttime());
		map.put("endtime", s_pay.getEndtime());
		map.put("roleid", s_pay.getRoleid());
		map.put("userid", s_pay.getUserid());
		List<Pay> payList = payService.getPayLine(map);
		List<Datadic> payTypes = datadicService.getDatadicPay();
		
		JSONArray payArray = new JSONArray(),obj;
		JSONObject result = new JSONObject();
		Integer payMoney,totalPayMoney=0;
		
		for(int k = 0; k < payList.size(); k++) {
			totalPayMoney = totalPayMoney + payList.get(k).getMoney();
		}
		
		for (int i = 0; i < payTypes.size(); i++) {
			obj = new JSONArray();
			payMoney=0;
			for(int j = 0; j < payList.size(); j++) {
				if(payList.get(j).getDataid().equals(payTypes.get(i).getId())){
					payMoney = payMoney + payList.get(j).getMoney();
				}
		    }
			obj.add(payTypes.get(i).getDatadicvalue()+":"+(double)Math.round(10000*payMoney/totalPayMoney)/100+"%");
			obj.add(payMoney);
			payArray.add(obj);
		}
			
		result.put("name", "(類型——金額)支出餅狀圖");
		result.put("data", payArray);
		ResponseUtil.write(response, result);
		return null;
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章