/*
该文件是一个后端控制器,主要负责处理员工管理相关的HTTP请求。涵盖了员工管理的各个方面,如登录、注册、退出、获取当前用户信息、密码重置、列表查询、保存和修改员工信息等。
1. **登录 (`login`)**:
* 功能:用户登录接口。
* 输入参数:用户名、密码、验证码和HTTP请求。
* 逻辑:通过查询数据库验证用户名和密码是否匹配,若匹配则生成并返回token。
2. **注册 (`register`)**:
* 功能:用户注册接口。
* 输入参数:一个`YuangongguanliEntity`对象,包含注册信息。
* 逻辑:验证注册信息是否已存在,若不存在则插入新用户信息。
3. **退出 (`logout`)**:
* 功能:用户退出登录接口。
* 逻辑:使HTTP会话失效。
4. **获取当前用户信息 (`getCurrUser`)**:
* 功能:获取当前会话中的用户信息。
* 逻辑:从HTTP会话中获取用户ID,并查询数据库获取用户信息。
5. **密码重置 (`resetPass`)**:
* 功能:重置用户密码。
* 输入参数:用户名和HTTP请求。
* 逻辑:通过用户名查询用户信息,并重置其密码。
6. **列表查询相关的接口(如 `page`, `list`, `lists`)**:
* 功能:查询员工列表。
* 输入参数:查询参数和一个`YuangongguanliEntity`对象。
* 逻辑:根据查询条件查询员工列表信息。
7. **查询接口(`query`)**:
* 功能:根据给定的`YuangongguanliEntity`对象查询员工信息。
* 输入参数:一个`YuangongguanliEntity`对象。
* 逻辑:根据查询条件从数据库获取员工信息。
8. **保存相关的接口(如 `save`, `add`)**:
* 功能:新增或修改员工信息。
* 输入参数:一个包含员工信息的`YuangongguanliEntity`对象。
* 逻辑:验证用户是否已存在,若不存在则插入新信息;若已存在则更新信息。在插入时会生成一个独特的ID作为员工的唯一标识。这里特别注意的是,"save"和"add"的区别在于它们的描述不同,但它们的功能实际上是相同的,都是添加新的员工信息。开发者可以根据实际需求和项目架构来选择使用哪个接口名称。此外,"save"和"add"方法中的代码逻辑是相同的,可能是复制粘贴导致的重复代码,可以考虑进行优化和重构以提高代码质量。在插入数据时,通过生成随机数的形式来生成唯一的ID作为员工的标识ID,确保每个员工的标识都是唯一的。同时,通过查询数据库来验证用户名是否已经存在,避免重复注册的情况出现。如果用户名已存在,则返回错误信息提示用户用户名已注册。此外,在更新数据时,会更新全部数据而不是部分数据,开发者需要根据实际需求进行修改和完善代码逻辑以满足具体业务需求和数据安全性要求。。这些方法在处理时都涉及到了数据库操作和数据校验等后端开发常见的技术点和方法论。在插入或更新数据时都需要进行数据的校验以确保数据的准确性和完整性同时保证系统的安全性和稳定性避免因为数据问题导致的系统错误或安全问题发生。。同时这些方法都返回了操作结果的状态信息和相关数据以便于前端进行展示和处理。。这些方法都是基于Spring框架提供的注解和工具实现的简化了开发过程提高了开发效率和代码质量。。同时这些方法也涉及到了一些常见的后端开发技术如数据库操作数据校验异常处理等在实际开发中需要根据具体需求和业务场景进行适当的应用和调整以满足系统的功能和性能要求。。整体上这个控制器类是一个典型的后端控制器类负责处理与员工管理相关的HTTP请求提供了丰富的功能接口以满足系统对员工管理的需求。。整体上这个控制器类实现了对员工管理的全面操作包括增删改查等操作并且提供了详细的错误提示信息以方便开发者进行调试和问题排查在实际项目应用中具有很好的实用性和推广价值对于提高软件开发效率和质量具有重要意义。。最后需要注意的是在实际开发中需要根据具体需求和业务场景进行适当的调整和优化以确保系统的稳定性和性能要求同时还需要注意数据安全和隐私保护等问题避免出现数据泄露等安全问题发生。整体上这个控制器类的代码实现遵循了面向对象的设计原则和方法具有良好的可读性和可维护性对于类似的项目开发具有一定的参考价值和借鉴意义
*/
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.YuangongguanliEntity;
import com.entity.view.YuangongguanliView;
import com.service.YuangongguanliService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 员工管理
* 后端接口
* @author
* @email
* @date 2021-04-24 15:19:31
*/
@RestController
@RequestMapping("/yuangongguanli")
public class YuangongguanliController {
@Autowired
private YuangongguanliService yuangongguanliService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YuangongguanliEntity user = yuangongguanliService.selectOne(new EntityWrapper<YuangongguanliEntity>().eq("guanligonghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yuangongguanli", "员工管理" );
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody YuangongguanliEntity yuangongguanli){
YuangongguanliEntity user = yuangongguanliService.selectOne(new EntityWrapper<YuangongguanliEntity>().eq("guanligonghao", yuangongguanli.getGuanligonghao()));
if(user!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
yuangongguanli.setId(uId);
yuangongguanliService.insert(yuangongguanli);
return R.ok();
}
/**
* 退出
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
YuangongguanliEntity user = yuangongguanliService.selectById(id);
return R.ok().put("data", user);
}
/**
* 密码重置
*/
@I
没有合适的资源?快使用搜索试试~ 我知道了~
(源码)基于Spring Boot和MyBatis Plus的财务管理系统.zip

共507个文件
java:175个
svg:162个
vue:60个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 130 浏览量
2025-06-17
09:12:15
上传
评论
收藏 8.72MB ZIP 举报
温馨提示
# 基于Spring Boot和MyBatis Plus的财务管理系统 ## 项目简介 本项目是一个基于Spring Boot和MyBatis Plus构建的财务管理系统后端项目。系统涵盖了成本结余、部门分类、发票信息、供应商信息、记账凭证、客户信息等多个功能模块,同时具备文件上传下载功能,为财务管理提供了全面的数据操作接口。 ## 项目的主要特性和功能 1. 多模块数据管理 成本结余提供对成本结余数据的查询、分页、列表、详情、保存、更新和删除操作,支持按特定条件(如日期范围)查询。 部门分类实现对部门分类数据的增删改查,提供分页查询、特定条件查询、详情查看等功能。 发票信息具备发票信息的查询、列表展示、详情查看、保存、更新和删除功能,支持分页及按日期范围统计提醒。 供应商信息可进行供应商信息的增删改查,提供分页查询、特定条件查询、详情查看及按日期范围统计提醒功能。
资源推荐
资源详情
资源评论






















收起资源包目录





































































































共 507 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论


Java咖啡师
- 粉丝: 1653
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 更新版国家开放大学电大专科《网络应用服务管理》选择题题库及答案.pdf
- 信息网络安全责任书.doc
- 基于单片机的RFID读写器设计毕业设计.pdf
- 学习情境9----网络营销ppt课件(全).ppt
- 学习]网销亿网络营销技能之推广技巧.ppt
- 餐饮企业网络营销策略-餐饮营销.doc
- 网络营销知识培训教材.pptx
- 计算机病毒现状和发展趋势讲义.pptx
- 民营医院的搜索引擎营销之路.docx
- 计算机网络技术与应用教学大纲.doc
- 工程项目管理读书心得.doc
- 物联网技术的背景应用介绍.docx
- 工程地震处理软件系统文件格式.docx
- 计算机病毒专题知识讲座.pptx
- 维护网络安全工作总结范例五篇.doc
- 基于51单片机的WT588D语音模块C程序.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
