package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.*;
import com.example.exception.CustomException;
import com.example.service.AdminInfoService;
import com.example.service.YonghuxinxiInfoService;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.json.JSONUtil;
import java.util.*;
import java.util.stream.Collectors;
@RestController
public class AccountController {
@Value("${authority.info}")
private String authorityStr;
@Resource
private AdminInfoService adminInfoService;
@Resource
private YonghuxinxiInfoService yonghuxinxiInfoService;
@PostMapping("/login")
public Result<Account> login(@RequestBody Account account, HttpServletRequest request) {
if (StrUtil.isBlank(account.getUsername()) || StrUtil.isBlank(account.getMima()) || account.getLevel() == null) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
String level = account.getLevel();
Account login = new Account();
if (level.equals("管理员")) {
login = adminInfoService.login(account.getUsername(), account.getMima());
}
if (level.equals("注册用户")) {
login = yonghuxinxiInfoService.login(account.getUsername(), account.getMima());
//yoxusxhenhe if(login.getStatus().equals("否")){return Result.error("500","帐号未审核通过,请联系管理员");}
}
// if (2 == level) {
// login = sellerInfoService.login(account.getUsername(), account.getMima());
// }
// if (level.equals("用户")) {
// login = userInfoService.login(account.getUsername(), account.getMima());
// if(login.getStatus().equals("否")){
// return Result.error("500","状态异常,请联系管理员");
// }
// }
// if (level.equals("员工")) {
// login = yuangongxinxiInfoService.login(account.getUsername(), account.getMima());
// if(login.getStatus().equals("否")){
// return Result.error("500","状态异常,请联系管理员");
// }
// }
request.getSession().setAttribute("user", login);
return Result.success(login);
}
@GetMapping("/logout")
public Result logout(HttpServletRequest request) {
request.getSession().setAttribute("user", null);
return Result.success();
}
@GetMapping("/auth")
public Result getAuth(HttpServletRequest request) {
Object user = request.getSession().getAttribute("user");
if(user == null) {
return Result.error("401", "未登录");
}
return Result.success(user);
}
@GetMapping("/getAccountInfo")
public Result<Object> getAccountInfo(HttpServletRequest request) {
Account account = (Account) request.getSession().getAttribute("user");
if (account == null) {
return Result.success(new Object());
}
String level = account.getLevel();
if (level.equals("管理员")) {
return Result.success(adminInfoService.findById(account.getId()));
}
if (level.equals("注册用户")) { return Result.success(yonghuxinxiInfoService.findById(account.getId())); }
// if (level.equals("管理员")) {
// return Result.success(sellerInfoService.findById(account.getId()));
// }
// if (level.equals("用户")) {
// return Result.success(userInfoService.findById(account.getId()));
// }
//
// if (level.equals("医生")) {
// return Result.success(yishengxinxiInfoService.findById(account.getId()));
// }
// if (level.equals("员工")) {
// return Result.success(yuangongxinxiInfoService.findById(account.getId()));
// }
return Result.success(new Object());
}
@GetMapping("/getSession")
public Result<Map<String, String>> getSession(HttpServletRequest request) {
Account account = (Account) request.getSession().getAttribute("user");
if (account == null) {
return Result.success(new HashMap<>(1));
}
Map<String, String> map = new HashMap<>(1);
map.put("username", account.getUsername());
return Result.success(map);
}
@GetMapping("/getAuthority")
public Result<List<AuthorityInfo>> getAuthorityInfo() {
List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);
return Result.success(authorityInfoList);
}
/**
* 获取当前用户所能看到的模块信息
* @param request
* @return
*/
@GetMapping("/authority")
public Result<List<Integer>> getAuthorityInfo(HttpServletRequest request) {
Account user = (Account) request.getSession().getAttribute("user");
if (user == null) {
return Result.success(new ArrayList<>());
}
JSONArray objects = JSONUtil.parseArray(authorityStr);
for (Object object : objects) {
JSONObject jsonObject = (JSONObject) object;
if (user.getLevel().equals(jsonObject.getStr("level"))) {
JSONArray array = JSONUtil.parseArray(jsonObject.getStr("models"));
List<Integer> modelIdList = array.stream().map((o -> {
JSONObject obj = (JSONObject) o;
return obj.getInt("modelId");
})).collect(Collectors.toList());
return Result.success(modelIdList);
}
}
return Result.success(new ArrayList<>());
}
@GetMapping("/permission/{modelId}")
public Result<List<Integer>> getPermission(@PathVariable Integer modelId, HttpServletRequest request) {
List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);
Account user = (Account) request.getSession().getAttribute("user");
if (user == null) {
return Result.success(new ArrayList<>());
}
Optional<AuthorityInfo> optional = authorityInfoList.stream().filter(x -> x.getLevel().equals(user.getLevel())).findFirst();
if (optional.isPresent()) {
Optional<AuthorityInfo.Model> firstOption = optional.get().getModels().stream().filter(x -> x.getModelId().equals(modelId)).findFirst();
if (firstOption.isPresent()) {
List<Integer> info = firstOption.get().getOperation();
return Result.success(info);
}
}
return Result.success(new ArrayList<>());
}
@PutMapping("/updateMima")
public Result updateMima(@RequestBody Account info, HttpServletRequest request) {
Account account = (Account) request.getSession().getAttribute("user");
if (account == null) {
return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);
}
String oldMima = SecureUtil.md5(info.getMima());
if (!oldMima.equals(account.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewMima()));
String level = account.getLevel();
if (level.equals("管理员")) {
AdminInfo adminInfo = new AdminInfo();
BeanUtils.co
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java+SpringBoot汽车改装方案网站(vue)-(项目源码+数据库脚本+开发说明文档+LW+PPT+演示视频)
共852个文件
gif:170个
js:124个
xml:93个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 166 浏览量
2024-01-29
16:11:15
上传
评论
收藏 120.56MB ZIP 举报
温馨提示
内容概要: 本系统源代码基于Spring Boot、Vue.js和MySQL,提供一个通用的Web应用程序框架。通过该系统源代码,学习如何使用这些技术构建可扩展的管理系统。涵盖前端开发、后端开发、数据库集成等核心内容。通过阅读和实践该系统源代码,将掌握Web应用程序开发技能,了解前后端交互方式。 适用人群: 该项目适合具有一定编程基础、对技术有浓厚兴趣的开发者,以及大学生作为学习参考的实践项目。主流技术栈,对编程和Web开发有一定了解的人群能更好地理解和应用该项目。 使用场景及目标: 我们可以了解系统的设计思路、架构和实现细节,掌握使用Spring Boot进行Web应用开发的技能。该系统的源代码可以作为技术分享和交流的资源。将自己对该系统的理解和实践经验分享给他人,促进技术互动和知识共享。 能学到什么: 通过阅读和分析源代码,将深入了解Springboot等主流技术的使用方式和原理,从而提升对这些技术的理解和熟练度。掌握Web应用程序开发技能、学习系统设计思路和架构以及推动技术分享和交流,将在实践中掌握Web应用程序开发的关键技能,包括前后端交互、数据存储和处理等方面。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java+SpringBoot汽车改装方案网站(vue)-(项目源码+数据库脚本+开发说明文档+LW+PPT+演示视频) (852个子文件)
font.c 527B
font.c 527B
GaizhuangfanganInfoController.class 13KB
XinwentongzhiInfoController.class 13KB
GaizhuangxuqiuInfoController.class 13KB
XitongjianjieInfoController.class 12KB
YonghuxinxiInfoController.class 12KB
LiuyanbanInfoController.class 12KB
AccountController.class 11KB
AdminInfoController.class 9KB
NxSystemFileController.class 8KB
EchartsController.class 5KB
YonghuxinxiInfoService.class 5KB
XinwentongzhiInfoService.class 5KB
AdminInfoService.class 5KB
AdminInfo.class 4KB
CommentInfoService.class 4KB
YonghuxinxiInfo.class 4KB
GaizhuangxuqiuInfoService.class 4KB
XitongjianjieInfoService.class 4KB
XinwentongzhiInfo.class 4KB
CollectInfoController.class 4KB
GaizhuangfanganInfoService.class 4KB
LiuyanbanInfoService.class 4KB
CommentInfoController.class 4KB
RichtextInfoController.class 3KB
CollectInfoService.class 3KB
GaizhuangxuqiuInfo.class 3KB
RichtextInfoService.class 3KB
NxSystemFileInfoService.class 3KB
LiuyanbanInfo.class 3KB
CollectInfo.class 3KB
GaizhuangfanganInfo.class 3KB
CommentInfo.class 3KB
Account.class 3KB
Result.class 2KB
EchartsData.class 2KB
ResultCode.class 2KB
MyInterceptor.class 2KB
XitongjianjieInfo.class 2KB
GlobalExceptionHandler.class 2KB
XinwentongzhiInfoDao.class 2KB
EchartsData$Data.class 2KB
GaizhuangxuqiuInfoDao.class 2KB
WebMvcConfig.class 2KB
CommentInfoDao.class 1KB
EchartsData$Series.class 1KB
GaizhuangfanganInfoDao.class 1KB
MyInterceptorConfig.class 1KB
AuthorityInfo.class 1KB
NxSystemFileInfo.class 1KB
CollectInfoDao.class 1KB
RichtextInfo.class 1KB
LiuyanbanInfoDao.class 1KB
YonghuxinxiInfoDao.class 1KB
AuthorityInfo$Model.class 1KB
CustomException.class 1KB
XitongjianjieInfoDao.class 1KB
AdminInfoDao.class 928B
Application.class 793B
NxSystemFileInfoDao.class 773B
RichtextInfoDao.class 641B
GaizhuangfanganInfoVo.class 340B
GaizhuangxuqiuInfoVo.class 336B
XitongjianjieInfoVo.class 332B
XinwentongzhiInfoVo.class 332B
YonghuxinxiInfoVo.class 324B
LiuyanbanInfoVo.class 316B
RichtextInfoVo.class 312B
CollectInfoVo.class 308B
AdminInfoVo.class 300B
layer.cs 15KB
layer.cs 15KB
datepicker.cs 4KB
datepicker.cs 4KB
index.css 227KB
index.css 227KB
index.css 227KB
index.css 227KB
bootstrap.min.css 141KB
bootstrap.min.css 141KB
bootstrap.css 138KB
bootstrap.css 138KB
bootstrap.min.css 119KB
bootstrap.min.css 119KB
bootstrap.min.css 119KB
bootstrap.min.css 119KB
layui.css 78KB
layui.css 78KB
styley.css 27KB
styley.css 27KB
font-awesome.css 26KB
font-awesome.css 26KB
font-awesome.css 26KB
font-awesome.css 26KB
quill.snow.css 24KB
quill.snow.css 24KB
quill.snow.css 24KB
quill.snow.css 24KB
admin.css 21KB
共 852 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
Java智慧阁
- 粉丝: 409
- 资源: 1016
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功