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.YishengxinxiInfoService;
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 YishengxinxiInfoService yishengxinxiInfoService;
@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 = yishengxinxiInfoService.login(account.getUsername(), account.getMima());
//yoxusxhenhe if(login.getStatus().equals("否")){return Result.error("500","帐号未审核通过,请联系管理员");}
}
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(yishengxinxiInfoService.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_ERR
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
小程序毕业设计,小程序课程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 1. 技术组成 前端: 小程序 后台框架:Java SSM/Java SpringBoot(如果有的话) 开发环境:idea,微信开发者工具 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库可视化工具:使用 Navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven
资源推荐
资源详情
资源评论
收起资源包目录
微信小程序-牙齿健康科普小程序(java)(包括源码,数据库,教程).zip (730个子文件)
YishengxinxiInfoController.class 15KB
YuyueInfoController.class 13KB
ZhuceyonghuInfoController.class 13KB
XinwentongzhiInfoController.class 13KB
NxTestpaperInfoService.class 12KB
LiuyanbanInfoController.class 12KB
AccountController.class 11KB
AdminInfoController.class 9KB
YonghuService.class 8KB
NxSystemFileController.class 8KB
NxQuestionInfoController.class 8KB
NxTestpaperInfoController.class 7KB
YishengxinxiInfoService.class 6KB
ZhuceyonghuInfoService.class 6KB
YonghuController.class 5KB
EchartsController.class 5KB
YuyueInfoService.class 5KB
XinwentongzhiInfoService.class 5KB
NxScoreInfoService.class 5KB
AdminInfoService.class 5KB
YishengxinxiInfo.class 5KB
AdminInfo.class 4KB
NxScoreInfoController.class 4KB
NxUserPaperInfoService.class 4KB
XinwentongzhiInfo.class 4KB
ZhuceyonghuInfo.class 4KB
LiuyanbanInfoService.class 4KB
YuyueInfo.class 4KB
NxUserPaperInfoController.class 4KB
RichtextInfoController.class 3KB
NxQuestionInfoService.class 3KB
RichtextInfoService.class 3KB
NxScoreInfo.class 3KB
NxSystemFileInfoService.class 3KB
Account.class 3KB
LiuyanbanInfo.class 3KB
Yonghu.class 3KB
NxUserPaperInfo.class 2KB
Result.class 2KB
NxUserPaperInfoVo.class 2KB
YishengxinxiInfoDao.class 2KB
YuyueInfoDao.class 2KB
EchartsData.class 2KB
ResultCode.class 2KB
MyInterceptor.class 2KB
NxUserPaperInfoDao.class 2KB
NxTestpaperInfoDao.class 2KB
GlobalExceptionHandler.class 2KB
ZhuceyonghuInfoDao.class 2KB
YonghuDao.class 2KB
XinwentongzhiInfoDao.class 2KB
EchartsData$Data.class 2KB
NxQuestionInfo.class 2KB
WebMvcConfig.class 2KB
NxTestpaperInfo.class 2KB
NxUserPaperQuestionInfo.class 1KB
EchartsData$Series.class 1KB
MyInterceptorConfig.class 1KB
AuthorityInfo.class 1KB
NxSystemFileInfo.class 1KB
RichtextInfo.class 1KB
LiuyanbanInfoDao.class 1KB
NxPaperQuestionInfo.class 1KB
YonghuVo.class 1KB
NxScoreInfoDao.class 1KB
AuthorityInfo$Model.class 1KB
CustomException.class 1KB
NxQuestionInfoDao.class 993B
AdminInfoDao.class 928B
Application.class 793B
NxSystemFileInfoDao.class 773B
RichtextInfoDao.class 641B
NxTestpaperInfoVo.class 631B
NxUserPaperQuestionInfoDao.class 394B
NxPaperQuestionInfoDao.class 382B
XinwentongzhiInfoVo.class 332B
YishengxinxiInfoVo.class 328B
ZhuceyonghuInfoVo.class 324B
NxQuestionInfoVo.class 320B
LiuyanbanInfoVo.class 316B
RichtextInfoVo.class 312B
NxScoreInfoVo.class 308B
AdminInfoVo.class 300B
YuyueInfoVo.class 300B
layer.cs 14KB
layer.cs 14KB
index.css 227KB
index.css 227KB
bootstrap.min.css 119KB
bootstrap.min.css 119KB
bootstrap.min.css 115KB
bootstrap.min.css 115KB
layui.css 68KB
layui.css 68KB
style.css 56KB
style.css 56KB
font-awesome.min.css 31KB
font-awesome.min.css 31KB
font-awesome.css 26KB
font-awesome.css 26KB
共 730 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
IT徐师兄
- 粉丝: 1950
- 资源: 2689
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功