基于javaweb+mysql的ssm+maven家庭理财系统(java+ssm+jsp+tomcat+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
登录:
老王 123456——家长(管理员)
大娃 123456
二娃 123456
基于javaweb的SSM+Maven家庭理财系统(java+ssm+jsp+tomcat+mysql)
一、项目简述
功能:家庭理财,财务分析,统计等等。
二、项目运行
运行环境:
jdk8+tomcat8+mysql+IntelliJ IDEA( Eclispe , MyEclispe ,Sts 都支持,代码与开发环境运行无关啦,只需要调整环境即可)
项目技术:SpringMVC + Spring + Mybatis + MySQL + Ajax + HTML + JavaScript + CSS + Jsp等等
/**
* author: llj
*/
@Controller
@RequestMapping("/accountInfo")
public class AccountInfoController {
@Autowired
AccountInfoService accountInfoService;
/**
* 跳转到添加账单页面
*/
@RequestMapping(value = {"/addInfo"})
public String toAddAccount(Model model, HttpSession session) {
User user = (User) session.getAttribute("user");
model.addAttribute("uid", user.getUid());
return "addAccount";
}
/**
* 跳转到账单详情
*/
@RequestMapping(value = {"/queryInfo"})
public String toAccountInfo(int acid, Model model) {
model.addAttribute("acid", acid);
return "accountInfo";
}
/**
* 跳转到账单修改页面
*/
@RequestMapping(value = {"/modifyInfo"})
public String toModifyInfo(int acid, Model model) {
Account account = accountInfoService.queryAccountInfoById(acid);
model.addAttribute("account", account);
return "modifyInfo";
}
/**
* 查询账单分类
*/
@RequestMapping(value = {"/queryAccountType"})
@ResponseBody
public List<AccountType> queryAccountType() {
List<AccountType> list = accountInfoService.queryAccountType();
return list;
}
/**
*/
@Controller
@RequestMapping("/savegoal")
public class SaveGoalController {
@Autowired
private SaveGoalService saveGoalService;
@Autowired
private IndividualManagerService individualManagerService;
@RequestMapping(value = {"/page"})
public String toSaveGoal() {
return "showgoal";
}
@RequestMapping(value = {"/addGoal"})
public String SaveGoal() {
return "savegoal";
}
//添加存款目标
@RequestMapping(value = {"/setgoal"})
@ResponseBody
public SaveGoalStatus doSave(HttpSession session, @RequestBody Deposit goal){
int flag=saveGoalService.isRun(goal.getUid());
SaveGoalStatus sgs=new SaveGoalStatus();
if(flag==0){
//添加存款目标
saveGoalService.addSaveGoal(goal);
sgs.setInfo("添加目标成功");
sgs.setCode(200);
return sgs;
}else {
sgs.setInfo("存在正在进行的目标,请先完成当前目标");
sgs.setCode(0);
return sgs;
}
}
public SaveGoalStatus doSave(HttpSession session, @RequestBody Deposit goal){
int flag=saveGoalService.isRun(goal.getUid());
SaveGoalStatus sgs=new SaveGoalStatus();
if(flag==0){
//添加存款目标
saveGoalService.addSaveGoal(goal);
sgs.setInfo("添加目标成功");
sgs.setCode(200);
return sgs;
}else {
sgs.setInfo("存在正在进行的目标,请先完成当前目标");
sgs.setCode(0);
return sgs;
}
}
//获取家庭成员
@RequestMapping(value={"/getmembers"})
@ResponseBody
public List<User> getMembers(HttpSession session,@RequestBody User user){
return saveGoalService.getAllUser(user.getUid());
}
//获取个人历史存款目标
@RequestMapping(value ={"/getAllGoal"})
@ResponseBody
public GoalListStatus getAllGoal(HttpSession session,@RequestBody SaveGoalCombination saveGoalCombination){
GoalListStatus gls=new GoalListStatus();
List<Deposit> depositList=individualManagerService.getHistoryGoal(saveGoalCombination);
gls.setData(depositList);
gls.setCount(individualManagerService.getCountHistoryGoal(saveGoalCombination));
return gls;
}
//获取个人当前存款目标
@RequestMapping(value = {"/getCurrentGoal"})
@ResponseBody
public AccountAndDepositVo getCurrentGoal(HttpSession session,@RequestBody User user){
return individualManagerService.getIndividualState(user.getUid());
}
//取消存款目标
@RequestMapping(value = {"/cancelGoal"})
/**
*/
@Controller
@RequestMapping("/limit")
public class LineOfLimitController {
@Autowired
private LineOfLimitService lineOfLimitService;
@Autowired
private SaveGoalService saveGoalService;
@RequestMapping(value = {"/page"})
public String toLineOfLimit() {
// 跳转到SaveGoal.jsp页面。
return "lineoflimit";
}
@RequestMapping(value = {"/setlimit"})
@ResponseBody
public Status doLimit(HttpSession session, @RequestBody Spending limit){
Status status=new Status();
lineOfLimitService.addLimit(limit);
status.setCode(200);
status.setInfo("设置额度成功");
return status;
}
@RequestMapping(value={"/getmembers"})
@ResponseBody
public List<User> getMembers(HttpSession session, @RequestBody User user){
return saveGoalService.getAllUser(user.getUid());
}
}
/**
* author: 35024
*/
@Controller
@RequestMapping("/login")
public class LoginController {
@Autowired
private LoginService loginService;
/**
* 登录界面
*
* @return String
*/
@RequestMapping(value = {"/log"})
public String toLogin() {
// 跳转到login.jsp页面。
return "login";
}
/**
* 注册界面
*
* @return String
*/
@RequestMapping(value = {"/reg"})
public String toRegister() {
// 跳转到login.jsp页面。
return "register";
}
/**
* 用户注销
@RequestMapping(value = {"/cancelGoal"})
@ResponseBody
public SaveGoalStatus ConcelGoal(HttpSession session,@RequestBody User user){
SaveGoalStatus sgs=new SaveGoalStatus();
individualManagerService.cancelGoal(user.getUid());
sgs.setInfo("取消目标成功");
sgs.setCode(200);
return sgs;
}
//提前完成存款目标
@RequestMapping(value = {"/finishGoal"})
@ResponseBody
public SaveGoalStatus finishGoal(HttpSession session,@RequestBody User user){
SaveGoalStatus sgs=new SaveGoalStatus();
individualManagerService.finishGoal(user.getUid());
sgs.setInfo("恭喜提前完成目标");
sgs.setCode(200);
return sgs;
}
}
/**
accountCombination.setPage(1);
List<Account> accountList = (List<Account>) accountService.getAccountByCombination(accountCombination);
// 封装报表数据
ObjectMapper objectMapper = new ObjectMapper();
mav.addObject("accountMonthReport", objectMapper.writeValueAsString(accountReport.getAccountMonthReport()));
mav.addObject("accountMonthTypeReport", objectMapper.writeValueAsString(accountReport.getAccountMonthTypeReport()));
mav.addObject("accountYearReport", objectMapper.writeValueAsString(accountYearReport));
mav.addObject("accountList", accountList);
return mav;
}
}
/**
* author: 35024
*/
@Controller
@RequestMapping("/login")
public class LoginController {
@Autowired
private LoginService loginService;
/**
* 登录界面
*
* @return String
*/
LoginStatus ls = new LoginStatus();
if (loginUser != null) {
// 登录成功:设置用户登录状态,并返回信息
loginUser.setPassword(null);
session.setAttribute("user", loginUser);
ls.setCode(200);
ls.setInfo("登录成功!");
ls.setUser(loginUser);
return ls;
} else {
// 登录失败:返回错误信息
ls.setCode(502);
ls.setInfo("姓名或密码有误!");
return ls;
}
}
@RequestMapping(value = {"/rDo"})
@ResponseBody
public RegisterStatus doLogin(HttpSession session, @RequestBody UserAndFamily userAndFamily) {
RegisterStatus registerStatus = new RegisterStatus();
// 首先判断用户是否存在
User existUser = loginService.getUserByUsername(userAndFamily.getUser().getName());
if (existUser != null) {
registerStatus.setInfo("姓名已经存在!");
registerStatus.setCode(400);
return registerStatus;
}
// 新用户注册
loginService.addUserAndFamily(userAndFamily);
registerStatus.setInfo("登记家庭成功!");
registerStatus.setCode(200);
return registerStatus;
}
}
/**
* author: llj
*/
@Controller
@RequestMapping("/accountInfo")
public class AccountInfoController {
@Autowired
AccountInfoService accountInfoService;
/**
* 跳转到添加账单页面
*/
@RequestMapping(value = {"/addInfo"})
public String toAddAccount(Model model, HttpSession session) {
User user = (User) session.getAttribute("user");
model.addAttribute("uid", user.getUid());
return "addAccount";
}
/**
* 跳转到账单详情
*/
@RequestMapping(value = {"/queryInfo"})
public String toAccountInfo(int acid, Model model) {
model.addAttribute("acid", acid);
return "accountInfo";
} else {
return "error";
}
}
/**
* 修改账单信息
*/
@RequestMapping(value = {"/modifyAccount"})
@ResponseBody
public String modifyInfo(Account account) {
int count = accountInfoService.modifyAccount(account);
if (count == 1) {
return "success";
} else {
return "error";
}
}
/**
* 删除账单
*/
@RequestMapping(value = {"/deleteAccount"})
@ResponseBody
public String deleteInfo(@RequestBody Account account) throws JsonProcessingException {
int count = accountInfoService.deleteAccount(account.getAcid());
ObjectMapper objectMapper = new ObjectMapper();
if (count == 1) {
Map<String, String> msg = new HashMap<>();
msg.put("code", "200");
msg.put("msg", "success");
return objectMapper.writeValueAsString(msg);
} else {
Map<String, String> msg = new HashMap<>();
msg.put("code", "500");
msg.put("msg", "error");
return objectMapper.writeValueAsString(msg);
}
}
}
session.setAttribute("user", loginUser);
ls.setCode(200);
ls.setInfo("登录成功!");
ls.setUser(loginUser);
return ls;
} else {
// 登录失败:返回错误信息
ls.setCode(502);
ls.setInfo("姓名或密码有误!");
return ls;
}
}
@RequestMapping(value = {"/rDo"})
@ResponseBody
public RegisterStatus doLogin(HttpSession session, @RequestBody UserAndFamily userAndFamily) {
RegisterStatus registerStatus = new RegisterStatus();
// 首先判断用户是否存在
User existUser = loginService.getUserByUsername(userAndFamily.getUser().getName());
if (existUser != null) {
registerStatus.setInfo("姓名已经存在!");
registerStatus.setCode(400);
return registerStatus;
}
// 新用户注册
loginService.addUserAndFamily(userAndFamily);
registerStatus.setInfo("登记家庭成功!");
registerStatus.setCode(200);
return registerStatus;
}
}
@Controller
@RequestMapping("/accountType")
public class AccountTypeController {
@ResponseBody
public String deleteInfo(@RequestBody Account account) throws JsonProcessingException {
int count = accountInfoService.deleteAccount(account.getAcid());
ObjectMapper objectMapper = new ObjectMapper();
if (count == 1) {
Map<String, String> msg = new HashMap<>();
msg.put("code", "200");
msg.put("msg", "success");
return objectMapper.writeValueAsString(msg);
} else {
Map<String, String> msg = new HashMap<>();
msg.put("code", "500");
msg.put("msg", "error");
return objectMapper.writeValueAsString(msg);
}
}
}
/**
*/
@Controller
@RequestMapping("/savegoal")
public class SaveGoalController {
@Autowired
private SaveGoalService saveGoalService;
//取消存款目标
@RequestMapping(value = {"/cancelGoal"})
@ResponseBody
public SaveGoalStatus ConcelGoal(HttpSession session,@RequestBody User user){
SaveGoalStatus sgs=new SaveGoalStatus();
individualManagerService.cancelGoal(user.getUid());
sgs.setInfo("取消目标成功");
sgs.setCode(200);
return sgs;
}
//提前完成存款目标
@RequestMapping(value = {"/finishGoal"})
@ResponseBody
public SaveGoalStatus finishGoal(HttpSession session,@RequestBody User user){
SaveGoalStatus sgs=new SaveGoalStatus();
individualManagerService.finishGoal(user.getUid());
sgs.setInfo("恭喜提前完成目标");
sgs.setCode(200);
return sgs;
}
}
@RequestMapping(value = {"/log"})
public String toLogin() {
// 跳转到login.jsp页面。
return "login";
}
/**
* 注册界面
*
* @return String
*/
@RequestMapping(value = {"/reg"})
public String toRegister() {
// 跳转到login.jsp页面。
return "register";
}
/**
* 用户注销
*
* @param session 用户会话
* @return 返回到登录界面
*/
@RequestMapping(value = {"/out"})
public String doLogin(HttpSession session) {
session.removeAttribute("user");
return "redirect:log";
}
/**
* 登录功能
*
* @return String 登录结果
*/
@RequestMapping(value = {"/do"})
@ResponseBody
public LoginStatus doLogin(HttpSession session, @RequestBody User user) {
// 用户登录检查
User loginUser = loginService.getUserByUsernameAndPassword(user);
LoginStatus ls = new LoginStatus();
if (loginUser != null) {
// 登录成功:设置用户登录状态,并返回信息
rs.setData(us);
return rs;
}
@RequestMapping(value = {"/userAdd"})
@ResponseBody
public RegisterStatus addUser(@RequestBody User user) {
// 封装返回的JSON数据
RegisterStatus rs = new RegisterStatus();
if (userService.isExists(user.getName())) {
rs.setCode(405);
rs.setInfo("用户名已经存在!");
} else {
userService.add(user);
rs.setCode(200);
rs.setInfo("添加成功!");
}
return rs;
}
/*.@RequestMapping(value={"/UserUpload"})
public String upload(User user, HttpServletRequest request,Model model)throws Exception{
System.out.println(request.getParameter("name"));
String sqlPath=null;
String localPath="D:\\CuitJavaEEPractice\\CuitJavaEEPractice\\src\\main\\webapp\\asset\\avatar\\";
String filename=null;
if(!user.getAvatar().isEmpty()){
String uuid= UUID.randomUUID().toString().replaceAll("-","");
String contentType=user.getAvatar().getContentType();
String suffixName=contentType.substring(contentType.indexOf("/"+1));
filename=uuid+"."+suffixName;
System.out.println(filename);
user.getAvatar().transferTo(newFile(localPath+filename));
}
sqlPath="/image/"+filename;
user.setAvatar(sqlPath);
userService.add(user);
model.addAttribute("user",user);
return "User";
}*/
}
}
}
/**
*/
@Controller
@RequestMapping("/savegoal")
public class SaveGoalController {
@Autowired
private SaveGoalService saveGoalService;
@Autowired
private IndividualManagerService individualManagerService;
@RequestMapping(value = {"/page"})
public String toSaveGoal() {
return "showgoal";
}
@RequestMapping(value = {"/addGoal"})
public String SaveGoal() {
public AccountTypeAddStatus AddAccountType(HttpSession session, @RequestBody AccountType accountType) {
AccountTypeAddStatus atas = new AccountTypeAddStatus();
System.out.print(accountType.toString());
accountTypeService.addAccountType(accountType.getName(), accountType.getDescription());
atas.setCode(200);
atas.setInfo("账单类型添加成功");
return atas;
}
//删除指定id的账目类型
@RequestMapping(value = {"/delete"})
@ResponseBody
public AccountTypeAddStatus DeleteAccountType(HttpSession session, @RequestBody AccountType accountType){
AccountTypeAddStatus deltype = new AccountTypeAddStatus();
System.out.print(accountType.toString());
accountTypeService.deleteAccountType(accountType.getTid());
deltype.setCode(200);
deltype.setInfo("账单类型删除成功");
return deltype;
}
@RequestMapping(value = {"/edit"})
@ResponseBody
public AccountTypeAddStatus EditAccountType(HttpSession session, @RequestBody AccountType accountType){
AccountTypeAddStatus editType = new AccountTypeAddStatus();
System.out.print(accountType.toString());
accountTypeService.updateAccountType(accountType.getTid(),accountType.getName(),accountType.getDescription());
editType.setCode(200);
editType.setInfo("修改成功!");
return editType;
}
}
/**
* 控制器样例
* author: 陈奕铠