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.ZhuceyonghuInfoService;
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 ZhuceyonghuInfoService zhuceyonghuInfoService;
@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 = zhuceyonghuInfoService.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(zhuceyonghuInfoService.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();
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
小程序毕业设计,小程序课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 1. 技术组成 前端: 小程序 后台框架:SSM/SpringBoot(如果有的话) 开发环境:idea,微信开发者工具 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库可视化工具:使用 Navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven
资源推荐
资源详情
资源评论
收起资源包目录
小程序毕业设计-互动打卡小程序(java)wlw (包括源码,数据库,教程).zip (1125个子文件)
additional-method 13KB
additional-method 13KB
animated-overlay 2KB
animated-overlay 2KB
atelier-dune 2KB
atelier-dune 2KB
atelier-fore 2KB
atelier-fore 2KB
atelier-heat 2KB
atelier-heat 2KB
atelier-lake 2KB
atelier-lake 2KB
atelier-seas 2KB
atelier-seas 2KB
brown_paper 2KB
brown_paper 2KB
brown_papers 18KB
brown_papers 18KB
railscasts.c 3KB
railscasts.c 3KB
googlecode.c 2KB
googlecode.c 2KB
foundation.c 2KB
foundation.c 2KB
jquery.ui.autocomplete.c 338B
jquery.ui.autocomplete.c 338B
jquery.flot.categories 3KB
jquery.flot.categories 3KB
ShangpinxinxiInfoController.class 13KB
ShangpinduihuanInfoController.class 13KB
RenwuqingdanInfoController.class 13KB
ZhuceyonghuInfoController.class 13KB
DakaInfoController.class 13KB
XiaoyuanxinwenInfoController.class 12KB
DakarenwuInfoController.class 12KB
AccountController.class 11KB
AdminInfoController.class 9KB
NxSystemFileController.class 8KB
YonghuService.class 7KB
ZhuceyonghuInfoService.class 6KB
YonghuController.class 5KB
EchartsController.class 5KB
ShangpinduihuanInfoService.class 5KB
DakaInfoService.class 5KB
AdminInfoService.class 5KB
RenwuqingdanInfoService.class 5KB
AdminInfo.class 4KB
DakarenwuInfoService.class 4KB
ShangpinxinxiInfoService.class 4KB
ZhuceyonghuInfo.class 4KB
XiaoyuanxinwenInfoService.class 4KB
ShangpinxinxiInfo.class 4KB
RichtextInfoController.class 3KB
ShangpinduihuanInfo.class 3KB
RenwuqingdanInfo.class 3KB
RichtextInfoService.class 3KB
NxSystemFileInfoService.class 3KB
DakaInfo.class 3KB
Account.class 3KB
Yonghu.class 3KB
Result.class 2KB
DakarenwuInfo.class 2KB
EchartsData.class 2KB
ResultCode.class 2KB
MyInterceptor.class 2KB
ShangpinduihuanInfoDao.class 2KB
RenwuqingdanInfoDao.class 2KB
GlobalExceptionHandler.class 2KB
DakaInfoDao.class 2KB
XiaoyuanxinwenInfo.class 2KB
ShangpinxinxiInfoDao.class 2KB
ZhuceyonghuInfoDao.class 2KB
EchartsData$Data.class 2KB
WebMvcConfig.class 2KB
YonghuDao.class 1KB
EchartsData$Series.class 1KB
MyInterceptorConfig.class 1KB
AuthorityInfo.class 1KB
NxSystemFileInfo.class 1KB
RichtextInfo.class 1KB
XiaoyuanxinwenInfoDao.class 1KB
DakarenwuInfoDao.class 1KB
YonghuVo.class 1KB
AuthorityInfo$Model.class 1KB
CustomException.class 1KB
AdminInfoDao.class 928B
Application.class 793B
NxSystemFileInfoDao.class 773B
RichtextInfoDao.class 641B
ShangpinduihuanInfoVo.class 340B
XiaoyuanxinwenInfoVo.class 336B
ShangpinxinxiInfoVo.class 332B
RenwuqingdanInfoVo.class 328B
ZhuceyonghuInfoVo.class 324B
DakarenwuInfoVo.class 316B
RichtextInfoVo.class 312B
AdminInfoVo.class 300B
DakaInfoVo.class 296B
cont 1KB
cont 1KB
共 1125 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
Java徐师兄
- 粉丝: 1041
- 资源: 1981
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功