一.用戶管理模塊
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;
}