Java项目:企业仓库库存管理系统(java+SSM+springboot+layui+Mysql)

 源码获取:俺的博客首页 "资源" 里下载!

主要功能模块
1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、

2.客户信息管理:.客户列表的展示、添加、修改、删除操作、

3.供应商管理:供应商详情列表的查看、添加、删除等操作、

4.退货管理和退货查询

5.公告信息管理:公告信息的查看、添加、修改、删除操作、

6.角色管理:角色查询、添加、删除、

7.系统管理、菜单管理以及权限控制

8.管理员信息管理:管理员信息的查看、修改

 

 

 

登录管理控制层:


/**
 * <p>
 *  登陆前端控制器
 */
@RestController
@RequestMapping("login")
public class LoginController {
	
	@Autowired
	private LoginfoService loginfoService;
	
	@RequestMapping("login")
	public ResultObj login(String loginname,String pwd) {
		Subject subject = SecurityUtils.getSubject();
		AuthenticationToken token=new UsernamePasswordToken(loginname, pwd);
		try {
			subject.login(token);
			ActiverUser activerUser=(ActiverUser) subject.getPrincipal();
			WebUtils.getSession().setAttribute("user", activerUser.getUser());
			//记录登陆日志
			Loginfo entity=new Loginfo();
			entity.setLoginname(activerUser.getUser().getName()+"-"+activerUser.getUser().getLoginname());
			entity.setLoginip(WebUtils.getRequest().getRemoteAddr());
			entity.setLogintime(new Date());
			loginfoService.save(entity);
			return ResultObj.LOGIN_SUCCESS;
		} catch (AuthenticationException e) {
			e.printStackTrace();
			return ResultObj.LOGIN_ERROR_PASS;
		}
	}
}

角色管理控制层: 

@RestController
@RequestMapping("/role")
public class RoleController {

	@Autowired
	private RoleService roleService;
	
	@Autowired
	private PermissionService permissionService;
	
	
	/**
	 * 查询
	 */
	@RequestMapping("loadAllRole")
	public DataGridView loadAllRole(RoleVo roleVo) {
		IPage<Role> page=new Page<>(roleVo.getPage(), roleVo.getLimit());
		QueryWrapper<Role> queryWrapper=new QueryWrapper<>();
		queryWrapper.like(StringUtils.isNotBlank(roleVo.getName()), "name", roleVo.getName());
		queryWrapper.like(StringUtils.isNotBlank(roleVo.getRemark()), "remark", roleVo.getRemark());
		queryWrapper.eq(roleVo.getAvailable()!=null, "available", roleVo.getAvailable());
		queryWrapper.orderByDesc("createtime");
		this.roleService.page(page, queryWrapper);
		return new DataGridView(page.getTotal(), page.getRecords());
	}
	
	
	/**
	 * 添加
	 */
	@RequestMapping("addRole")
	public ResultObj addRole(RoleVo roleVo) {
		try {
			roleVo.setCreatetime(new Date());
			this.roleService.save(roleVo);
			return ResultObj.ADD_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.ADD_ERROR;
		}
	}
	/**
	 * 修改
	 */
	@RequestMapping("updateRole")
	public ResultObj updateRole(RoleVo roleVo) {
		try {
			this.roleService.updateById(roleVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		}
	}
	
	/**
	 * 删除
	 */
	@RequestMapping("deleteRole")
	public ResultObj deleteRole(Integer id) {
		try {
			this.roleService.removeById(id);
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}
	
	
	/**
	 * 根据角色ID加载菜单和权限的树的json串
	 */
	@RequestMapping("initPermissionByRoleId")
	public DataGridView initPermissionByRoleId(Integer roleId) {
		//查询所有可用的菜单和权限
		QueryWrapper<Permission> queryWrapper=new QueryWrapper<>();
		queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
		List<Permission> allPermissions = permissionService.list(queryWrapper);
		/**
		 * 1,根据角色ID查询当前角色拥有的所有的权限或菜单ID
		 * 2,根据查询出来的菜单ID查询权限和菜单数据
		 */
		List<Integer> currentRolePermissions=this.roleService.queryRolePermissionIdsByRid(roleId);
		List<Permission> carrentPermissions=null;
		if(currentRolePermissions.size()>0) { //如果有ID就去查询
			queryWrapper.in("id", currentRolePermissions);		
			carrentPermissions = permissionService.list(queryWrapper);
		}else {
			carrentPermissions=new ArrayList<>();
		}
		//构造 List<TreeNode>
		List<TreeNode> nodes=new ArrayList<>();
		for (Permission p1 : allPermissions) {
			String checkArr="0";
			for (Permission p2 : carrentPermissions) {
				if(p1.getId()==p2.getId()) {
					checkArr="1";
					break;
				}
			}
			Boolean spread=(p1.getOpen()==null||p1.getOpen()==1)?true:false;
			nodes.add(new TreeNode(p1.getId(), p1.getPid(), p1.getTitle(), spread, checkArr));
		}
		return new DataGridView(nodes);
	}
	
	/**
	 * 保存角色和菜单权限之间的关系
	 */
	@RequestMapping("saveRolePermission")
	public ResultObj saveRolePermission(Integer rid,Integer[] ids) {
		try {
			this.roleService.saveRolePermission(rid,ids);
			return ResultObj.DISPATCH_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DISPATCH_ERROR;
		}
	}
}

用户管理控制层:

@RestController
@RequestMapping("/user")
public class UserController {
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private DeptService deptService;
	
	@Autowired
	private RoleService roleService;
	
	/**
	 * 用户全查询
	 */
	@RequestMapping("loadAllUser")
	public DataGridView loadAllUser(UserVo userVo) {
		IPage<User> page=new Page<>(userVo.getPage(), userVo.getLimit());
		QueryWrapper<User> queryWrapper=new QueryWrapper<>();
		queryWrapper.eq(StringUtils.isNotBlank(userVo.getName()), "loginname", userVo.getName()).or().eq(StringUtils.isNotBlank(userVo.getName()), "name", userVo.getName());
		queryWrapper.eq(StringUtils.isNotBlank(userVo.getAddress()), "address", userVo.getAddress());
		queryWrapper.eq("type", Constast.USER_TYPE_NORMAL);//查询系统用户
		queryWrapper.eq(userVo.getDeptid()!=null, "deptid",userVo.getDeptid());
		this.userService.page(page, queryWrapper);
		
		
		System.out.println(userService.getClass().getSimpleName());
		List<User> list = page.getRecords();
		for (User user : list) {
			Integer deptid = user.getDeptid();
			if(deptid!=null) {
				Dept one =deptService.getById(deptid);
				user.setDeptname(one.getTitle());
			}
			Integer mgr = user.getMgr();
			if(mgr!=null) {
				User one = this.userService.getById(mgr);
				user.setLeadername(one.getName());
			}
		}
		
		return new DataGridView(page.getTotal(), list);
		
	}
	
	

	/**
	 * 加载最大的排序码
	 * @param deptVo
	 * @return
	 */
	@RequestMapping("loadUserMaxOrderNum")
	public Map<String,Object> loadUserMaxOrderNum(){
		Map<String, Object> map=new HashMap<String, Object>();
		
		QueryWrapper<User> queryWrapper=new QueryWrapper<>();
		queryWrapper.orderByDesc("ordernum");
		IPage<User> page=new Page<>(1, 1);
		List<User> list = this.userService.page(page, queryWrapper).getRecords();
		if(list.size()>0) {
			map.put("value", list.get(0).getOrdernum()+1);
		}else {
			map.put("value", 1);
		}
		return map;
	}
	
	
	/**
	 * 根据部门ID查询用户
	 */
	@RequestMapping("loadUsersByDeptId")
	public DataGridView loadUsersByDeptId(Integer deptid) {
		QueryWrapper<User> queryWrapper=new QueryWrapper<>();
		queryWrapper.eq(deptid!=null, "deptid", deptid);
		queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
		queryWrapper.eq("type", Constast.USER_TYPE_NORMAL);
		List<User> list = this.userService.list(queryWrapper);
		return new DataGridView(list);
	}
	
	
	/**
	 * 把用户名转成拼音
	 */
	@RequestMapping("changeChineseToPinyin")
	public Map<String,Object> changeChineseToPinyin(String username){
		 Map<String,Object> map=new HashMap<>();
		 if(null!=username) {
			 map.put("value", PinyinUtils.getPingYin(username));
		 }else {
			 map.put("value", "");
		 }
		 return map;
	}
	
	/**
	 * 添加用户
	 */
	@RequestMapping("addUser")
	public ResultObj addUser(UserVo userVo) {
		try {
			userVo.setType(Constast.USER_TYPE_NORMAL);//设置类型
			userVo.setHiredate(new Date());
			String salt=IdUtil.simpleUUID().toUpperCase();
			userVo.setSalt(salt);//设置盐
			userVo.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD, salt, 2).toString());//设置密码
			this.userService.save(userVo);
			return ResultObj.ADD_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.ADD_ERROR;
		}
	}

	
	/**
	 * 根据用户ID查询一个用户
	 */
	@RequestMapping("loadUserById")
	public DataGridView loadUserById(Integer id) {
		return new DataGridView(this.userService.getById(id));
	}
	
	/**
	 * 修改用户
	 */
	@RequestMapping("updateUser")
	public ResultObj updateUser(UserVo userVo) {
		try {
			this.userService.updateById(userVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		}
	}

	/**
	 * 删除用户
	 */
	@RequestMapping("deleteUser")
	public ResultObj deleteUser(Integer id) {
		try {
			this.userService.removeById(id);
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}
	/**
	 * 重置用户密码
	 */
	@RequestMapping("resetPwd")
	public ResultObj resetPwd(Integer id) {
		try {
			User user=new User();
			user.setId(id);
			String salt=IdUtil.simpleUUID().toUpperCase();
			user.setSalt(salt);//设置盐
			user.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD, salt, 2).toString());//设置密码
			this.userService.updateById(user);
			return ResultObj.RESET_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.RESET_ERROR;
		}
	}
	
	
	/**
	 * 根据用户ID查询角色并选中已拥有的角色
	 */
	@RequestMapping("initRoleByUserId")
	public DataGridView initRoleByUserId(Integer id) {
		//1,查询所有可用的角色
		QueryWrapper<Role> queryWrapper=new QueryWrapper<>();
		queryWrapper.eq("available", Constast.AVAILABLE_TRUE);
		List<Map<String, Object>> listMaps = this.roleService.listMaps(queryWrapper);
		
		//2,查询当前用户拥有的角色ID集合
		List<Integer> currentUserRoleIds=this.roleService.queryUserRoleIdsByUid(id);
		for (Map<String, Object> map : listMaps) {
			Boolean LAY_CHECKED=false;
			Integer roleId=(Integer) map.get("id");
			for (Integer rid : currentUserRoleIds) {
				if(rid==roleId) {
					LAY_CHECKED=true;
					break;
				}
			}
			map.put("LAY_CHECKED", LAY_CHECKED);
		}
		return new DataGridView(Long.valueOf(listMaps.size()), listMaps);
	}
	
	/**
	 * 保存用户和角色的关系
	 */
	@RequestMapping("saveUserRole")
	public ResultObj saveUserRole(Integer uid,Integer[] ids) {
		try {
			this.userService.saveUserRole(uid,ids);
			return ResultObj.DISPATCH_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DISPATCH_ERROR;
		}
		
	}
}

源码获取:俺的博客首页 "资源" 里下载!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyondwild

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值