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
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot开发技术开发的汽车改装方案网站的设计与实现.zip
共854个文件
gif:170个
js:124个
xml:93个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 130 浏览量
2023-06-10
19:35:02
上传
评论
收藏 151.66MB ZIP 举报
温馨提示
基于SpringBoot开发技术开发的汽车改装方案网站的设计与实现 Java;SpringBoot;MySQL;Vue; 管理员后台模块: (1)管理员信息维护:通过此功能可以查询所有的管理员信息,还可以进行管理员资料的修改比如修改密码。 (2)新闻管理:此模块包含新闻信息的管理、新闻添加等功能。 (3)用户信息管理:管理员可以通过用户信息管理模块查询用户信息,还可以对用户信息进行维护。 (4)留言信息管理:管理员可以对留言信息进行增删改查的操作。 (5)改装方案模块:管理员可以在网站上对改装方案进行管理。 (6)改装需求模块:管理员可以在网站上对改装需求进行管理。 用户后台模块: (1)用户个人信息管理系统:用户在此系统中维护自己的个人信息,比如可以修改自己的姓名及联系方式或者照片等。 (2)改装需求管理模块:用户可以对网站的改装需求信息进行有效地维护。 (3)我的收藏模块:用户可以随时对网站中的收藏信息加以管理和维护。 用户前台模块: (1)新闻信息模块:用户在此系统中可以查看近期的新闻资讯。 (2改装方案功能模块:用户可以对网站的改装方案信息进行有效地查询和详情查看,除此之外还可以评论和收藏。 (3)在线留言功能模块:用户可以在网站内查进行在线留言。 (4)用户登录模块:用户可以在匿名浏览系统内的信息,但只有在登录后才可以使用网站内的所有功能。
资源推荐
资源详情
资源评论
收起资源包目录
基于SpringBoot开发技术开发的汽车改装方案网站的设计与实现.zip (854个子文件)
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
XinwentongzhiInfoVo.class 332B
XitongjianjieInfoVo.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
共 854 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
码上行舟
- 粉丝: 135
- 资源: 1516
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功