作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
管理员角色包含以下功能:
管理员登录,用户管理,账单管理,挂失记录管理等功能。
学生用户角色包含以下功能:
用户登录,查询消费记录,充值余额,挂失校园卡,个人信息修改等功能。
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
技术栈
HTML+CSS+JavaScript+jsp+mysql
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
运行截图
相关代码
学生管理控制器
@Controller
@RequestMapping("/studentController")
public class StudentController extends BaseController{
private static final Logger logger = Logger.getLogger(StudentController.class);
@Autowired
private StudentService studentService;
/**
* 初始访问
* @param
* @param model
* @return
*/
@RequestMapping(params="goStudent")
public ModelAndView goStudent(HttpServletRequest request){
return new ModelAndView("buss/student");
}
@RequestMapping(params="checkNum")
@ResponseBody
public void checkNum(HttpServletRequest request, HttpServletResponse response, String studentNum) throws Exception {
StudentEntity student = this.studentService.findUniqueByProperty(StudentEntity.class, "studentnum", studentNum);
String flag = "true";
if(student != null){
flag = "false";
}
response.setCharacterEncoding("utf-8");
response.getWriter().write(flag);
}
@RequestMapping(params="save")
@ResponseBody
public AjaxJson save(HttpServletRequest request, HttpServletResponse response, StudentEntity student) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("保存成功!");
j.setSuccess(true);
try{
this.studentService.save(student);
}catch(Exception e){
j.setMsg("保存失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(params="update")
@ResponseBody
public AjaxJson update(HttpServletRequest request, HttpServletResponse response, StudentEntity student) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("更新成功!");
j.setSuccess(true);
try{
// StudentEntity se = this.studentService.get(StudentEntity.class, student.getId());
this.studentService.update(student);
}catch(Exception e){
j.setMsg("更新失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(params="delete",method=RequestMethod.POST)
@ResponseBody
public AjaxJson delete(HttpServletRequest request, HttpServletResponse response, String ids) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("删除成功!");
j.setSuccess(true);
try{
for(String id:ids.split(",")){
StudentEntity student = this.studentService.get(StudentEntity.class, id);
this.studentService.delete(student);
}
}catch(ConstraintViolationException ce){
ce.printStackTrace();
j.setMsg("删除失败,存在外键引用,请查看其它数据项中是否有与当前数据有关的信息!");
j.setSuccess(false);
}catch(Exception e){
j.setMsg("删除失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(params="datagrid")
@ResponseBody
public void datagrid(HttpServletRequest request, HttpServletResponse response,StudentEntity student) throws Exception {
String page = request.getParameter("page");
String rows = request.getParameter("rows");
if(page == null){
page = "0";
}
if(rows == null){
rows = "0";
}
DetachedCriteria condition = DetachedCriteria.forClass(StudentEntity.class);
Pagination<?> pagination = studentService.findPageData(condition,student,Integer.parseInt(page), Integer.parseInt(rows));
JSONObject jobj = new JSONObject();
jobj.put("total", pagination.getTotalCount());
jobj.put("rows", pagination.getDatas());
response.setCharacterEncoding("utf-8");
response.getWriter().write(jobj.toString());
}
}
登录管理控制器
@Controller
@RequestMapping("/loginController")
public class LoginController {
private static final Logger logger = Logger.getLogger(LoginController.class);
@Autowired
private SystemService systemService;
/**
* 登陆页
* @param error
* @param model
* @return
*/
@RequestMapping(params="login")
public ModelAndView login(HttpServletRequest request){
return new ModelAndView("system/login");
}
@RequestMapping(params="home")
public ModelAndView home(HttpServletRequest request){
return new ModelAndView("system/home");
}
/**
* 退出系统
*
* @param user
* @param req
* @return
*/
@RequestMapping(params = "logout")
public ModelAndView logout(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = ContextHolderUtils.getSession();
ClientManager.getInstance().removeClinet(session.getId());
session.invalidate();
ModelAndView modelAndView = new ModelAndView(new RedirectView(
"loginController.do?login"));
return modelAndView;
}
@RequestMapping(params="doLogin")
public ModelAndView doLogin(HttpServletRequest req){
ModelAndView mav = new ModelAndView("system/main");
HttpSession session = ContextHolderUtils.getSession();
Client client = ClientManager.getInstance().getClient(session.getId());
req.setAttribute("username", client.getUser().getUsername());
return mav;
}
@RequestMapping(params="doCheck")
@ResponseBody
public AjaxJson doCheck(HttpServletRequest req,String username, String password, String captcha){
HttpSession session = ContextHolderUtils.getSession();
AjaxJson j = new AjaxJson();
if(!captcha.equalsIgnoreCase(String.valueOf(session.getAttribute(SystemConstant.KEY_CAPTCHA)))){
j.setSuccess(false);
j.setMsg("验证码错误!");
}else{
UserEntity user = new UserEntity();
user.setUsername(username);
user.setPassword(password);
user = this.systemService.getUserByNameAndPassword(user);
if(user == null){
j.setSuccess(false);
j.setMsg("用户名或密码错误!");
return j;
}
List<ResourceEntity> resourceList = new ArrayList<ResourceEntity>();
List<RoleEntity> roleList = user.getRoles();
for(RoleEntity re : roleList){
List<ResourceEntity> tempRes = re.getResource();
for(ResourceEntity res : tempRes){
if(!resourceList.contains(res)){
resourceList.add(res);
}
}
}
Client client = new Client();
client.setIp(ResourceUtil.getIpAddr(req));
client.setLogindatetime(new Date());
client.setUser(user);
client.setMenuList(resourceList);
ClientManager.getInstance().addClinet(session.getId(),
client);
if(user != null && user.getId() != null){
j.setSuccess(true);
j.setMsg("登陆成功!");
}else{
j.setSuccess(false);
j.setMsg("用户名或密码错误!");
}
}
return j;
}
@RequestMapping(params="getTreeMenu")
@ResponseBody
public String getTreeMenu(HttpServletRequest request){
Client client = ResourceUtil.getClient();
List<ResourceEntity> resourceList = new ArrayList<ResourceEntity>();
if(client == null || client.getUser() == null){
return "system/login";
}else{
resourceList = client.getMenuList();
}
List<ResourceEntity> resource = new ArrayList<ResourceEntity>();
for(ResourceEntity re:resourceList){
if(resourceList.size()<=0){
break;
}
if("1".equals(re.getId())){
resource.add(re);
break;
}
}
return JSONObject.valueToString(resourceToTreeNode(resource,resourceList));
}
/**
* 将sysResource类型的数据集合转化为前端较好识别的TreeNode
* @param resource
* @return
*/
private List<TreeNode> resourceToTreeNode(List<ResourceEntity> resource, List<ResourceEntity> userResource) {
if (resource != null && !resource.isEmpty() && resource.get(0).getResourceType() == ResourceEntity.TYPE_MENU) {
List<TreeNode> ch = new ArrayList<TreeNode>();
for (ResourceEntity rr : resource) {
TreeNode node = new TreeNode();
if(userResource.contains(rr)){
if(rr.getHref()==null){
node.setId(rr.getId());
}else{
node.setId(rr.getId());
}
node.setId(rr.getId());
node.setState("open");
node.setText(rr.getName());
Map<String, Object> _temp = new HashMap<String, Object>();
_temp.put("href", rr.getHref());
node.setAttributes(_temp);
ch.add(node);
}
node.setChildren(resourceToTreeNode(rr.getResources(),userResource));
}
return ch;
}
return Collections.emptyList();
}
}
用户管理控制器
@Controller
@RequestMapping("/userController")
public class UserController extends BaseController{
private static final Logger logger = Logger.getLogger(UserController.class);
@Autowired
private SystemService systemService;
/**
* 登陆页
* @param
* @param model
* @return
*/
@RequestMapping(params="goUser")
public ModelAndView goUser(HttpServletRequest request){
return new ModelAndView("system/user");
}
@RequestMapping(params="checkRemote")
@ResponseBody
public void checkRemote(HttpServletRequest request, HttpServletResponse response, String signcode) throws Exception {
UserEntity user = this.systemService.findUniqueByProperty(UserEntity.class, "username", signcode);
String flag = "true";
if(user != null){
flag = "false";
}
response.setCharacterEncoding("utf-8");
response.getWriter().write(flag);
}
@RequestMapping(params="save")
@ResponseBody
public AjaxJson save(HttpServletRequest request, HttpServletResponse response, UserEntity user, String roleid) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("保存成功!");
j.setSuccess(true);
try{
Md5Hash md5Hash = new Md5Hash(user.getPassword());
user.setPassword(md5Hash.toHex());
user.setRoles(getRoleList(roleid));
this.systemService.save(user);
}catch(Exception e){
j.setMsg("保存失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(params="update")
@ResponseBody
public AjaxJson update(HttpServletRequest request, HttpServletResponse response, UserEntity user, String roleid) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("更新成功!");
j.setSuccess(true);
try{
UserEntity t = this.systemService.get(UserEntity.class, user.getId());
user.setRoles(getRoleList(roleid));
user.setPassword(t.getPassword());
user.setUsername(t.getUsername());
BeanUtils.copyProperties(t, user);
this.systemService.update(t);
}catch(Exception e){
j.setMsg("更新失败!");
j.setSuccess(false);
}
return j;
}
private List<RoleEntity> getRoleList(String roleid){
if(roleid == null){
return null;
}
String[] ids = roleid.split(",");
List<RoleEntity> roleList = new ArrayList<RoleEntity>();
for(String id:ids){
RoleEntity re = this.systemService.get(RoleEntity.class, id);
roleList.add(re);
}
return roleList;
}
@RequestMapping(params="delete",method=RequestMethod.POST)
@ResponseBody
public AjaxJson delete(HttpServletRequest request, HttpServletResponse response, String ids) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("删除成功!");
j.setSuccess(true);
try{
for(String id:ids.split(",")){
UserEntity user = new UserEntity();
user.setId(id);
this.systemService.delete(user);
}
}catch(Exception e){
j.setMsg("删除失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(params="queryRole",method=RequestMethod.POST)
@ResponseBody
public AjaxJson queryRole(HttpServletRequest request, HttpServletResponse response, String id) throws Exception {
AjaxJson j = new AjaxJson();
j.setMsg("成功!");
j.setSuccess(true);
try{
UserEntity user = this.systemService.get(UserEntity.class, id);
String roleId = "";
for(RoleEntity re:user.getRoles()){
roleId += (re.getId() + ",");
}
if(roleId.length()>0){
roleId = roleId.substring(0, roleId.length()-1);
}
j.setObj(roleId);
}catch(Exception e){
j.setMsg("失败!");
j.setSuccess(false);
}
return j;
}
@RequestMapping(params="datagrid")
@ResponseBody
public void datagrid(HttpServletRequest request, HttpServletResponse response) throws Exception {
String page = request.getParameter("page");//easyui datagrid 分页 页号
String rows = request.getParameter("rows");//easyui datagrid 分页 页数
if(page == null){
page = "0";
}
if(rows == null){
rows = "0";
}
DetachedCriteria condition = DetachedCriteria.forClass(UserEntity.class);
Pagination<?> pagination = systemService.getPageData(condition,Integer.parseInt(page), Integer.parseInt(rows));
JSONObject jobj = new JSONObject();
jobj.put("total", pagination.getTotalCount());
jobj.put("rows", pagination.getDatas());
response.setCharacterEncoding("utf-8");
response.getWriter().write(jobj.toString());
}
}
如果也想学习本系统,下面领取。关注并回复:052jsp