package com.soyuan.patrolinside.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.soyuan.patrolinside.common.*;
import com.soyuan.patrolinside.conf.PatrolConf;
import com.soyuan.patrolinside.dto.DailyAlarm.DailyAlarmExcelDto;
import com.soyuan.patrolinside.dto.DailyAlarm.QueryDailyAlarmDto;
import com.soyuan.patrolinside.dto.alarm.QueryAlarmDto;
import com.soyuan.patrolinside.dto.outer.PatrolPeople;
import com.soyuan.patrolinside.dto.outer.PeopleTrackViewModel;
import com.soyuan.patrolinside.dto.user.*;
import com.soyuan.patrolinside.entity.user.User;
import com.soyuan.patrolinside.mapper.RoleMapper;
import com.soyuan.patrolinside.result.ApiResult;
import com.soyuan.patrolinside.result.PageResult;
import com.soyuan.patrolinside.service.IAlarmService;
import com.soyuan.patrolinside.service.IDailyAlarmService;
import com.soyuan.patrolinside.service.IUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaops
* @since 2021-04-09
*/
@RestController
@RequestMapping("/api/user")
@Slf4j
public class UserController {
@Autowired
private IUserService userService;
@Autowired
private PatrolConf patrolConf;
@Autowired
private RoleMapper roleMapper;
@Autowired
private IAlarmService alarmService;
@Autowired
private UserInfo userInfo;
@Autowired
private IDailyAlarmService dailyAlarmService;
/**
* 登录
*
* @param params
* @return
*/
@PostMapping("/login")
public LoginUserDto login(@RequestBody LoginUserDto params) {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserName, params.getUserName());
queryWrapper.eq(User::getIsDelete, 0);
User userEntity = userService.getOne(queryWrapper);
if (userEntity == null) {
throw new PatrolException(HttpStatusEnum.Error400, "用户不存在!");
}
LoginUserDto loginUserDto = LoginUserDto.toDto(userEntity);
if (!loginUserDto.getPassword().equals(params.getPassword())) {
throw new PatrolException(HttpStatusEnum.Error400, "密码错误!");
}
String token = JWT.create().withAudience(loginUserDto.getId().toString())
.sign(Algorithm.HMAC256(loginUserDto.getPassword()));
loginUserDto.setToken(token);
return loginUserDto;
}
/**
* 是获取用户信息
*
* @return
*/
@PostMapping("/getUserInfo")
@UserLoginToken
public LoginUserDto getUserInfo() {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserName, userInfo.getUser().getUserName());
queryWrapper.eq(User::getIsDelete, 0);
User userEntity = userService.getOne(queryWrapper);
LoginUserDto loginUserDto = LoginUserDto.toDto(userEntity);
return loginUserDto;
}
/**
* 获取菜单
*
* @return
*/
@PostMapping("/menus")
@UserLoginToken
public List<MenuDto> menus() {
return userService.getMenus();
}
/**
* 获取所有派出所
*
* @return
*/
@GetMapping("/allPolices")
@UserLoginToken
public ApiResult getAllPolices() {
return ApiResult.ok(userService.getAllPolices());
}
/**
* 获取角色列表
*
* @return
*/
@PostMapping("/roles")
@UserLoginToken
public PageResult<QueryRoleDto> roles(@RequestBody QueryRoleDto param) {
return userService.selectRoles(param);
}
/**
* 通过id查询权限
*
* @param id
* @return
*/
@GetMapping("/role/{id}")
@UserLoginToken
public ApiResult getRoleById(@PathVariable("id") String id) {
QueryRoleDto queryRoleDto = userService.getRoleById(id);
if (queryRoleDto == null) {
throw new PatrolException(HttpStatusEnum.Error400, "查询角色不存在!");
}
return ApiResult.ok(queryRoleDto);
}
/**
* 添加角色
*
* @param param
* @return
*/
@PostMapping("/role")
@UserLoginToken
public ApiResult addRole(@RequestBody AddRoleDto param) {
userService.addRole(param);
return ApiResult.ok(true);
}
/**
* 删除角色
*
* @param ids
* @return
*/
@DeleteMapping("/role/{ids}")
@UserLoginToken
public ApiResult deleteRole(@PathVariable("ids") String ids) {
List<String> idsArray = Arrays.stream(ids.split(",")).collect(Collectors.toList());
userService.deleteRoles(idsArray);
return ApiResult.ok(true);
}
/**
* 修改橘色
*
* @param param
* @return
*/
@PutMapping("/role")
@UserLoginToken
public ApiResult updateRole(@RequestBody AddRoleDto param) {
userService.updateRole(param);
return ApiResult.ok(true);
}
/**
* 获取用户列表
*
* @param param
* @return
*/
@PostMapping("/users")
@UserLoginToken
public PageResult<QueryUserDto> getUsers(@RequestBody QueryUserDto param) {
return userService.getUsers(param);
}
/**
* 上传头像
*
* @param multipartFile
* @return
*/
@PutMapping("/uploadHeadImg")
@UserLoginToken
public ApiResult uploadHeadImg(@RequestParam("headImg") MultipartFile multipartFile) {
if (multipartFile.isEmpty() || StringUtils.isBlank(multipartFile.getOriginalFilename())) {
throw new PatrolException(HttpStatusEnum.Error400, "图片不能为空");
}
/*路径不存在新建*/
String filePath = Utils.getJarFilePath() + patrolConf.getHeadImgPath();
File file = new File(filePath);
if (!file.exists()) {
file.mkdir();
}
String rootFileName = multipartFile.getOriginalFilename();
String fileName = Utils.getUUID() + rootFileName.substring(rootFileName.indexOf("."));
/* 相对路径 */
String relativeFileName = patrolConf.getHeadImgPath() + fileName;
/* 绝对路径 */
String absoluteFileName = Utils.getJarFilePath() + relativeFileName;
try {
Utils.saveFile(multipartFile, absoluteFileName);
} catch (Exception e) {
throw new PatrolException(HttpStatusEnum.Error400, "上传失败!");
}
return ApiResult.ok(relativeFileName);
}
/**
* 添加用户
*
* @param param
* @return
*/
@PostMapping("")
@UserLoginToken
public ApiResult addUser(@RequestBody AddUserDto param) {
userService.addUser(param);
return ApiResult.ok(true);
}
/**
* 修改用户
*
* @param param
* @return
*/
@PutMapping("")
@UserLoginToken
public ApiResult updateUser(@RequestBody AddUserDto param) {
userService.updateUser(param);
return ApiResult.ok(true);
}
/**
* 通过id获取用户
*
* @param id
* @return
*/
@GetMapping("{id}")
@UserLoginToken
public ApiResult getUserById(@PathVariable("id") String id) {
QueryUserDto user = QueryUserDto.toDto(userService.getById(id));
if (user == null) {
throw new PatrolException(HttpStatusEnum.Error400, "查询记录不
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
该项目是一款基于Java和Shell脚本的内网系统巡逻设计源码,包含286个文件,其中包含216个Java源文件、29个日志文件、20个XML配置文件、5个Markdown文件、4个YAML文件、3个配置文件、1个Git忽略文件、1个JAR包文件和1个LICENSE文件。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java与Shell脚本的内网系统巡逻设计源码 (285个子文件)
mvnw.cmd 6KB
baidu.conf 156B
patrolfile.conf 122B
web.conf 122B
dockerfile 270B
.gitignore 333B
maven-wrapper.jar 50KB
UserController.java 24KB
UserServiceImpl.java 17KB
ExcelUtils.java 14KB
ResourceService.java 14KB
CameraInfoService.java 12KB
AlarmService.java 11KB
GetFtpTask.java 10KB
CommandService.java 9KB
BusinessPlaceService.java 8KB
CameraController.java 8KB
Utils.java 8KB
MapConversion.java 7KB
SchedulingService.java 6KB
FtpUtil.java 6KB
AuthenticationInterceptor.java 5KB
PatrolPlanService.java 5KB
BusinessPlaceController.java 5KB
DailyAlarmController.java 5KB
AlarmController.java 5KB
MavenWrapperDownloader.java 5KB
DailyAlarmService.java 5KB
PatrolAreaService.java 5KB
PeopleController.java 4KB
EquipService.java 4KB
CarService.java 4KB
DeviateAlarmTask.java 4KB
SchedulingController.java 4KB
TempTaskController.java 4KB
regionUtil.java 4KB
PatrolPeople.java 4KB
ResourceController.java 3KB
DocumentGeneration.java 3KB
PatrolPlanController.java 3KB
AddBusinessPlaceDto.java 3KB
BusinessPlace.java 3KB
AddSchedulingDto.java 3KB
AddDailyAlarmDto.java 3KB
PatrolinsideApplication.java 3KB
GeneratorCodeConfig.java 3KB
AddCameraInfoExcelDto.java 3KB
EquipController.java 3KB
PatrolAreaController.java 3KB
AddCameraInfoDto.java 3KB
PatrolEventViewModel.java 3KB
AlarmDto.java 3KB
Alarm.java 3KB
DailyAlarm.java 3KB
CarController.java 3KB
BusinessPlaceExcelDto.java 3KB
IUserService.java 3KB
AddCameraPlanDto.java 3KB
AddTempTaskDto.java 3KB
CameraInfo.java 3KB
AddPatrolPlanDto.java 3KB
AddResourceDto.java 3KB
UserDto.java 3KB
PatrolRoad.java 2KB
AddPeopleDto.java 2KB
CommandController.java 2KB
User.java 2KB
TempTaskService.java 2KB
SchedulingDto.java 2KB
AddAlarmDto.java 2KB
Resource.java 2KB
AddUserDto.java 2KB
Scheduling.java 2KB
MenuDto.java 2KB
ResourceDto.java 2KB
DailyAlarmExcelDto.java 2KB
AddEquipDto.java 2KB
BusinessPlaceDto.java 2KB
CommandFlow.java 2KB
TempTaskDto.java 2KB
Police.java 2KB
TempTask.java 2KB
Community.java 2KB
CommandFlowDto.java 2KB
AddCarDto.java 2KB
PatrolPlanPeopleDto.java 2KB
PoliceDto.java 2KB
CameraPlan.java 2KB
Grid_member.java 2KB
BusinessPeople.java 2KB
Equip.java 2KB
AddPatrolAreaDto.java 2KB
DeviateAlarm.java 2KB
Command.java 2KB
AddRoleDto.java 2KB
Menu.java 2KB
PatrolPlanPeople.java 2KB
EquipDto.java 2KB
DailyAlarmDto.java 2KB
AddCommandDto.java 2KB
共 285 条
- 1
- 2
- 3
资源评论
lly202406
- 粉丝: 3042
- 资源: 5530
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- linux学习资料网络服务中继代理
- 锂电池动力极耳成形机(sw17可编辑+工程图)全套技术资料100%好用.zip
- 热门开源java读取Excel项目EasyExcel所需Jar包下载
- 货架031226.fbx
- 使用cuda核函数实现letterbox对比py的letterbox速度差异
- 粒子分料包装系统x_t全套技术资料100%好用.zip
- 使用 C 语言打印简单圣诞树图案的程序示例
- 无功补偿控制器STM32程序 智能电容控制器
- cvi 2013 运行库 恢复体能速腾
- 全球健康统计数据集,供了自2000年以来关于全球健康的综合统计数据,数据集中包含了主要疾病的患病率、发病率和死亡率信息,以及治疗效果和医疗基础设施的有效性
- 可编程加密芯片SMEC80ST SDK开发包
- 迪博内部控制指数及评级数据(2000-2023年).zip
- 电力电子技术中MOS管关断负压尖峰的成因与对策
- C++ 程序示例:控制台打印圣诞树图案
- linux学习资料网络服务FTP
- STM32内部12位ADC智能路灯源程序与Proteus仿真设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功