Récupérez le code source : Téléchargez-le depuis "Ressources" sur la page d'accueil du blog !
Présentation du projet
Ce projet est divisé en deux rôles : administrateur et visiteur. Le
rôle de super administrateur comprend les fonctions suivantes :
connexion administrateur, gestion des prêts et des retours, ajout d'actifs, aperçu des actifs, rapport de prêt et de retour, gestion des utilisateurs, gestion des rôles, gestion des droits, ressources type, gestion du réseau et autres fonctions.
Le rôle de visiteur comprend les fonctions suivantes :
page d'accueil du visiteur - page de publicité et autres fonctions.
PS : Cliquez sur la console WEB dans le coin supérieur gauche pour accéder à la page de gestion. Il convient de noter que l'administrateur peut ajouter d'innombrables rôles et autorisations en arrière-plan, il ne s'agit donc pas d'un système à rôle unique.
besoins environnementaux
1. Environnement d'exploitation : de préférence java jdk 1.8, nous exécutons sur cette plate-forme. D'autres versions sont également théoriquement possibles.
2. Environnement IDE : IDEA, Eclipse, Myeclipse peuvent être utilisés. IDEA est recommandé
3. Environnement Tomcat : les versions Tomcat 7.x, 8.x, 9.x sont disponibles 4. Environnement matériel
: Windows 7/8/10 avec 1 Go de mémoire ou plus ou Mac OS ;
5. Base de données : MySql version 5.7 ;
6. Si projet Maven : oui ;
pile technologique
1. Backend : springboot, mybatis, shiro
2. Front-end : HTML+CSS+JavaScript+VUE
Mode d'emploi
1. Utilisez Navicat ou d'autres outils pour créer une base de données avec le nom correspondant dans mysql, et importez le fichier sql du projet ;
2. Utilisez IDEA/Eclipse/MyEclipse pour importer le projet. Lors de l'importation depuis Eclipse/MyEclipse, s'il est un projet maven, veuillez sélectionner maven ;
s'il s'agit d'un projet maven. Une fois l'importation réussie, veuillez exécuter la commande maven clean; maven install, puis exécutez-la ;
3. Modifiez la configuration de la base de données dans la configuration config/application.properties fichier dans le projet à votre propre configuration ;
4. Exécutez le projet et entrez http:/ /localhost:8080/ Login
Administrator account/password: admin/123456
Contrôleur d'organisation :
/**
* 组织机构控制器
*/
@Controller
@RequestMapping("/organization")
public class OrgController {
@Autowired
private OrganizationService organizationService;
/**
* 根据条件动态查询组织,数据加载到表格
*/
@PostMapping("/list")
public String listOrganizationByLevel(Organization example, ModelMap map){
List<Organization> list = organizationService.listOrganizationByExample(example);
int sublevel = example.getOrgLevel();
map.put("dtoList",list);
String pageName = null;
switch (sublevel) { //根据参数确定返回页面目标
case 1: pageName= "friDepartments" ;break;
case 2: pageName= "secDepartments" ;break;
case 3: pageName= "macAddress" ;break;
}
return pageName+"::table-refresh";
}
/**
* 根据条件动态查询子级组织
*/
@PostMapping("/sub/list")
@ResponseBody
public List listOrganization(Organization example){
List<Organization> list = organizationService.listOrganizationByExample(example);
return list;
}
/**
* 根据一级部门和二级部门id查询物理位置
*/
@PostMapping("/macAddress/list")
public String listMacaddress(String fristId,String secondId,ModelMap map){
List<Organization> list = organizationService.listMacaddressByRootID(fristId,secondId);
map.put("dtoList",list);
return "macAddress::table-refresh";
}
/**
* 添加组织
* @param organization
* @return
*/
@PostMapping
@ResponseBody
public int addOrganization(Organization organization){
return organizationService.insertOrganization(organization);
}
/**
* 删除组织
* @param orgId
* @return
*/
@DeleteMapping("/{orgId}")
@ResponseBody
public int delteOrganizationByid(@PathVariable("orgId") String orgId){
return organizationService.deleteOrganizationById(orgId);
}
/**
* 修改组织名称
* @param organization
* @return
*/
@PutMapping
@ResponseBody
public int updateDeviceType(Organization organization){
return organizationService.updateOrganizationName(organization);
}
/**
* 获取组织树
* @return
*/
@GetMapping("/tree")
@ResponseBody
public OrganizationDTO getOrganizationTree(){
return organizationService.getOrgTree();
}
}
Couche de contrôle de la gestion des comptes :
@Controller
@RequestMapping("/account")
public class AccountController {
//自动注入服务类
@Autowired
private AccountService accountService;
/**
* 管理员账户信息
* @return
*/
@GetMapping("/admins")
public String listAdmins(ModelMap map){
List<AccountDTO> adminList = accountService.listAccountByLevel(2);
List<AccountDTO> superAdminList = accountService.listAccountByLevel(1);
adminList.addAll(superAdminList);
map.put("adminsList", adminList);
return "system::table-refresh";
}
/**
* 获取所有账户信息
* @param map
* @return
*/
@GetMapping("/list")
public String listAccounts(ModelMap map){
List<AccountDTO> accountList = accountService.listAccount();
map.put("accountDTOList", accountList);
return "account::table-refresh";
}
/**
* 通过用户名称搜索用户
* @param map
* @param userName
* @return
*/
@GetMapping("/list/{userName}")
public String listAccountsByUserName(ModelMap map,@PathVariable("userName")String userName){
List<AccountDTO> accountList = accountService.listAccountByName(userName);
map.put("accountDTOList", accountList);
return "account::table-refresh";
}
/**
* 添加管理员页面
* @param map
* @return
*/
@GetMapping("/users")
public String listUsers(ModelMap map){
List<AccountDTO> accountList = accountService.listAccountByLevel(3);
map.put("usersDTOList", accountList);
return "system::list-refresh";
}
/**
* 获取设备使用人信息
* @param map
* @param devId
* @return
*/
@GetMapping("/ownerList")
public String getOwnerList(ModelMap map, String devId){
Map resMap = accountService.listOwenrByDevId(devId);
map.put("ownerMap", resMap);
return "allotDevice::list-refresh";
}
/**
* 添加账户
* @param account
* @return
*/
@PostMapping
@ResponseBody
public int addAccount(Account account){
return accountService.addAccount(account);
}
/**
* 根据uuid删除账户
* @param uuid
* @return
*/
@DeleteMapping("/{uuid}")
@ResponseBody
public int deleteAccount(@PathVariable("uuid")String uuid){
return accountService.deleteAccountById(uuid);
}
/**
* 修改账户密码
* @param uuid
* @param password
* @return
*/
@PutMapping("/password")
@ResponseBody
public int updatePassword(String uuid, String password){
return accountService.updatePasswordByid(uuid,password);
}
/**
* 修改账户状态
* @param uuid
* @param status
* @return
*/
@PutMapping("/status")
@ResponseBody
public int updateStatus(String uuid,int status){
return accountService.updateStatusByid(uuid,status);
}
/**
* 更改管理员
* @return
*/
@PutMapping("/admins")
@ResponseBody
public int updateDevOwner(HttpServletRequest request){
String[] groups = request.getParameter("groups").split(",");
int level = Integer.parseInt(request.getParameter("level"));
return accountService.updateAccountLevel(level,groups);
};
}
Couche de contrôle de connexion :
@Controller
public class LoginController {
@RequestMapping("/login")
public String login(HttpServletRequest request, Model mv) {
String e = (String) request.getAttribute("shiroLoginFailure");
if (e != null) {
if (e.contains("org.apache.shiro.authc.UnknownAccountException")) {
mv.addAttribute("msg", "账号不存在");
} else if (e.contains("org.apache.shiro.authc.IncorrectCredentialsException")) {
mv.addAttribute("msg", "密码错误");
} else if (e.contains("org.apache.shiro.authc.LockedAccountException")) {
mv.addAttribute("msg", "账户已停用");
}
}
return "login";
}
}
Récupérez le code source : Téléchargez-le depuis "Ressources" sur la page d'accueil du blog !