package com.example.demo.controller;
import com.example.demo.entity.Admin;
import com.example.demo.entity.AdminDevice;
import com.example.demo.result.Result;
import com.example.demo.service.AdminDeviceService;
import com.example.demo.service.AdminService;
import com.example.demo.service.DeviceService;
import com.example.demo.utils.ResultUtil;
import com.example.demo.view.AdminView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.websocket.server.PathParam;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api/admin")
@CrossOrigin
public class AdminControl {
@Autowired
private AdminService adminService;
@Autowired
private AdminDeviceService adminDeviceService;
@Autowired
private DeviceService deviceService;
/**
* @Description: 登录功能
* @Param: [admin]
* @return: com.example.demo.result.Result
* @Author: Zjh
* @Date: 5/19/21
*/
@RequestMapping("/login")
@ResponseBody
public Result login(@RequestBody Admin admin) {
Admin admin1 = adminService.Login(admin);
if (null != admin1) {
List<Integer> devices;
if (admin.getUsername().equals("admin")) {
devices = deviceService.getAllDeviceId();
} else {
devices = adminDeviceService.getDidByUsername(admin1.getUsername());
}
return ResultUtil.buildSuccessResult("登录成功", devices);
} else {
return ResultUtil.buildFailResult("用户名或密码错误", null);
}
}
@GetMapping("/getAllAdmin")
public List<AdminView> getAllAdmins() {
List<AdminView> list = new ArrayList<>();
List<Admin> admins = adminService.getAllAdmin();
for (Admin admin : admins) {
List<Integer> devices = adminDeviceService.getDidByUsername(admin.getUsername());
AdminView userView = new AdminView(admin.getUsername(), admin.getPassword(), devices);
list.add(userView);
}
return list;
}
@GetMapping("/findByKeyword")
public List<AdminView> findByKeyWord(@PathParam("keyword") String keyword) {
keyword = "%" + keyword + "%";
List<AdminView> list = new ArrayList<>();
List<Admin> admins = adminService.findByKeyWord(keyword);
for (Admin admin : admins) {
List<Integer> devices = adminDeviceService.getDidByUsername(admin.getUsername());
AdminView userView = new AdminView(admin.getUsername(), admin.getPassword(), devices);
list.add(userView);
}
return list;
}
@RequestMapping("/addAdmin")
@ResponseBody
public Result addUser(@RequestBody AdminView adminView) {
Admin admin = new Admin(adminView.getUsername(), "123456");
//判断用户名是否已存在
Admin admin1 = adminService.findByUsername(admin);
if (null == admin1) {
//1.新增一个admin,成功则返回1
int ret = adminService.insertAdmin(admin);
if (ret == 1) {
//2.新增权限
for (int i : adminView.getDevices()) {
AdminDevice adminDevice = new AdminDevice(0, adminView.getUsername(), i);
int flag = adminDeviceService.insertAdminDevice(adminDevice);
if (flag == 0) {
return ResultUtil.buildFailResult("增加管理员权限失败", null);
}
}
return ResultUtil.buildSuccessResult("新增管理员成功,默认密码为123456", null);
} else {
return ResultUtil.buildFailResult("增加管理员失败", null);
}
} else {
return ResultUtil.buildFailResult("昵称已存在", null);
}
}
@RequestMapping("/deleteAdmin")
@ResponseBody
public Result deleteUser(@RequestBody Admin admin) {
int flag = adminDeviceService.deleteAllAdminDevice(admin.getUsername());
if (flag == 0) {
return ResultUtil.buildFailResult("删除权限失败", null);
}
flag = adminService.deleteAdmin(admin);
if (flag == 0) {
return ResultUtil.buildFailResult("删除管理员失败", null);
}
return ResultUtil.buildSuccessResult("删除管理员成功!", null);
}
/**
* @Description: 修改某个管理员的权限,括号内为新的权限
* @Param: [username, devices]
* @return: com.example.demo.result.Result
* @Author: Zjh
* @Date: 5/19/21
*/
@RequestMapping("/changeAuthority")
@ResponseBody
public Result changeAuthority(@RequestBody AdminView adminView) {
String username = adminView.getUsername();
List<Integer> devices = adminView.getDevices();
Admin admin = new Admin(username, "");
if (null != adminService.findByUsername(admin)) {
if (devices == null) {
// 清空
adminDeviceService.deleteAllAdminDevice(username);
} else {
// 求差集,删除一些权限
List<Integer> old_devices = adminDeviceService.getDidByUsername(username);
old_devices.removeAll(devices);
for (int i : old_devices) {
AdminDevice adminDevice = new AdminDevice(0, username, i);
adminDeviceService.deleteOneAdminDevice(adminDevice);
}
//求差集,增加一些权限
old_devices = adminDeviceService.getDidByUsername(username);
devices.removeAll(old_devices);
for (int i : devices) {
AdminDevice adminDevice = new AdminDevice(0, username, i);
adminDeviceService.insertAdminDevice(adminDevice);
}
}
return ResultUtil.buildSuccessResult("修改权限成功", null);
} else {
return ResultUtil.buildFailResult("用户不存在", null);
}
}
@RequestMapping("/changePassword")
@ResponseBody
public Result changePassword(@RequestParam String username,@RequestParam String oldPassword, @RequestParam String newPassword) {
System.out.println(username);
Admin admin = new Admin(username, oldPassword);
if (null != adminService.Login(admin)){
admin.setPassword(newPassword);
int ret = adminService.updatePassword(admin);
if (ret == 1){
return ResultUtil.buildSuccessResult("修改密码成功!",null);
} else {
return ResultUtil.buildFailResult("修改密码失败!",null);
}
}
return ResultUtil.buildFailResult("旧密码错误!",null);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot+MyBatis+Vue+Element的门禁管理系统源码.zip (86个子文件)
基于SpringBoot+MyBatis+Vue+Element的门禁管理系统源码
acess-control-vue
.editorconfig 147B
src
App.vue 413B
store
index.js 2KB
assets
login-bg.jpg 69KB
logo.png 7KB
css
color-dark.css 421B
main.css 3KB
img.jpg 6KB
main.js 2KB
components
otherAdmin
Manager.vue 8KB
admin
RecordsManager.vue 6KB
AdminManager.vue 9KB
SystemView.vue 5KB
DeviceManager.vue 7KB
UserManager.vue 11KB
common
Tags.vue 4KB
Sidebar.vue 2KB
Header.vue 2KB
Login.vue 3KB
Home.vue 858B
router
index.js 3KB
.babelrc 230B
package.json 2KB
build
check-versions.js 1KB
logo.png 7KB
utils.js 3KB
vue-loader.conf.js 553B
webpack.prod.conf.js 5KB
build.js 1KB
webpack.base.conf.js 2KB
webpack.dev.conf.js 3KB
package-lock.json 918KB
.postcssrc.js 246B
index.html 331B
.gitignore 154B
static
.gitkeep 0B
config
prod.env.js 61B
index.js 2KB
dev.env.js 156B
access-control-spring
mvnw.cmd 6KB
pom.xml 2KB
src
test
java
com
example
demo
DemoApplicationTests.java 265B
main
resources
static
image
pexels-snapwire-670061.jpg 1.49MB
application.yml 380B
java
com
example
demo
DemoApplication.java 405B
mapper
DeviceMapper.java 1KB
RecordsMapper.java 3KB
UserMapper.java 1007B
UserDeviceMapper.java 894B
AdminDeviceMapper.java 960B
AdminMapper.java 1KB
controller
DeviceControl.java 3KB
AdminControl.java 7KB
UserControl.java 5KB
RecordsControl.java 2KB
utils
ResultUtil.java 736B
service
UserService.java 1013B
AdminService.java 1KB
AdminDeviceService.java 1000B
UserDeviceService.java 1KB
DeviceService.java 1KB
RecordsService.java 1KB
view
RecordView.java 471B
AdminView.java 419B
UserView.java 426B
entity
Records.java 303B
AdminDevice.java 266B
Admin.java 249B
UserDevice.java 257B
Device.java 291B
User.java 282B
result
Result.java 214B
ResultCode.java 498B
.mvn
wrapper
maven-wrapper.properties 218B
maven-wrapper.jar 50KB
MavenWrapperDownloader.java 5KB
AcsCtl.sql 42KB
mvnw 10KB
.gitignore 395B
images
login.png 1.16MB
device.png 87KB
manager.png 144KB
admin.png 83KB
index.png 98KB
user.png 123KB
access.png 152KB
共 86 条
- 1
资源评论
mYlEaVeiSmVp
- 粉丝: 1820
- 资源: 19万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功