package com.crk.yiyuanguahao.service.impl;
import com.crk.yiyuanguahao.dao.FunctionDao;
import com.crk.yiyuanguahao.dao.ResAuthDao;
import com.crk.yiyuanguahao.dao.RoleAuthDao;
import com.crk.yiyuanguahao.dao.UserDao;
import com.crk.yiyuanguahao.entity.Function;
import com.crk.yiyuanguahao.entity.ResAuth;
import com.crk.yiyuanguahao.entity.RoleAuth;
import com.crk.yiyuanguahao.entity.User;
import com.crk.yiyuanguahao.entity.menu.SysFunctionMenuDto;
import com.crk.yiyuanguahao.entity.menu.SysFunctionTreeDto;
import com.crk.yiyuanguahao.service.FunctionService;
import com.crk.yiyuanguahao.service.ResAuthService;
import com.crk.yiyuanguahao.util.ResponseEnum;
import com.crk.yiyuanguahao.util.ResponseResult;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.*;
/**
* @Author: 程荣凯
* @Date: 2019/3/21 17:38
*/
@Service
public class ResAuthServiceImpl implements ResAuthService {
@Autowired
ResAuthDao resAuthDao;
@Autowired
FunctionDao functionDao;
@Autowired
RoleAuthDao roleAuthDao;
@Autowired
FunctionService functionService;
@Autowired
UserDao userDao;
@Autowired
DataSourceTransactionManager transactionManager;
// @Autowired
// private Config config;
@Override
public ResponseResult addResAuth(ResAuth resAuth) {
if (null == resAuth){
return ResponseResult.fail(ResponseEnum.PARAM_ERROR);
}
List<ResAuth> roleAuth = (List<ResAuth>)getResAuth(resAuth.getRoleId(), resAuth.getFunctionId())
.getData();
if (null != roleAuth && roleAuth.size()>0){
return ResponseResult.fail(ResponseEnum.DATAEXIST_ERROR);
}
try {
resAuth.setCreateTime(new Date());
User user = (User) SecurityUtils.getSubject().getPrincipal();
resAuth.setCreator(user.getId());
resAuth.setUpdateTime(new Date());
resAuth.setUpdator(user.getId());
int insert = resAuthDao.insert(resAuth);
if (insert>0){
return ResponseResult.success();
}else{
return ResponseResult.fail();
}
}catch (Exception e){
e.printStackTrace();
return ResponseResult.fail();
}
}
@Override
@Transactional
public ResponseResult batchAddResAuth(int roleId, List<HashMap<String, Integer>> res) {
for (HashMap<String, Integer> map : res) {
ResAuth resAuth = new ResAuth();
resAuth.setRoleId(roleId);
resAuth.setStatus((short)1);
resAuth.setFunctionId(map.get("functionId"));
ResponseResult responseResult = addResAuth(resAuth);
if (!ResponseResult.isSuccess(responseResult)){
break;
}
}
return ResponseResult.success();
}
@Override
public ResponseResult updateResAuth(ResAuth resAuth) {
if (null == resAuth){
return ResponseResult.fail(ResponseEnum.PARAM_ERROR);
}
try {
int update = resAuthDao.updateByPrimaryKey(resAuth);
if (update>0){
return ResponseResult.success();
}else{
return ResponseResult.fail();
}
}catch (Exception e){
e.printStackTrace();
return ResponseResult.fail();
}
}
@Override
@Transactional
public ResponseResult batchUpdateResAuth(int roleId, List<HashMap<String, Integer>> res) {
//删除原有权限
resAuthDao.deleteByRoleId(roleId);
ResponseResult responseResult = batchAddResAuth(roleId, res);
if (!ResponseResult.isSuccess(responseResult)){
return ResponseResult.fail();
}
return ResponseResult.success();
}
@Override
public ResponseResult deleteResAuth(int resAuthId) {
if (StringUtils.isEmpty(resAuthId) ){
ResponseResult.fail(ResponseEnum.PARAM_ERROR);
}
try {
int count = resAuthDao.deleteByPrimaryKey(resAuthId);
if (count>0){
return ResponseResult.success();
}else{
return ResponseResult.fail();
}
}catch (Exception e){
e.printStackTrace();
return ResponseResult.fail();
}
}
@Override
public ResponseResult queryResAuthList(int userId) {
try {
List<RoleAuth> roleAuthList = roleAuthDao.getRoleAuthList(userId, 1);
List<Function> result = new ArrayList<Function>();
if (null != roleAuthList && !roleAuthList.isEmpty()){
for (RoleAuth roleAuth : roleAuthList) {
List<Function> sysResAuths = resAuthDao.queryFunctionList(roleAuth.getRoleId());
if (!StringUtils.isEmpty(sysResAuths)){
result.addAll(sysResAuths);
}
}
}
return ResponseResult.success(result);
}catch (Exception e){
e.printStackTrace();
return ResponseResult.fail();
}
}
@Override
public ResponseResult queryResListTreeByRole(int roleId,int functionId,int type) {
try {
List<ResAuth> sysResAuths = resAuthDao.queryResAuthList(roleId);
List<SysFunctionTreeDto> list = new ArrayList<SysFunctionTreeDto>();
List<SysFunctionTreeDto> childrenTree = getChildrenTree(list, sysResAuths, functionId, type);
return ResponseResult.success(childrenTree);
}catch (Exception e){
e.printStackTrace();
return ResponseResult.fail();
}
}
public ResponseResult getResAuth(int roleId,int parentFunction) {
try {
List<ResAuth> sysResAuths = resAuthDao.getResAuthListByParent(roleId,parentFunction);
if (null != sysResAuths && sysResAuths.size()>0){
return ResponseResult.success(sysResAuths);
}else{
return ResponseResult.fail();
}
}catch (Exception e){
e.printStackTrace();
return ResponseResult.fail();
}
}
@Override
public List<SysFunctionTreeDto> getChildrenTree(List<SysFunctionTreeDto> functionList,List<ResAuth> sysResAuths
,int functionId,int type){
List<Function> sysFunctionList = functionDao.selectByParentId(functionId, type);
if (null == sysFunctionList || sysFunctionList.size() == 0){
return functionList;
}else {
HashSet<Integer> set = new HashSet<Integer>();
if (null != sysResAuths && sysResAuths.size() >0){
//判断是否被选中
for (ResAuth ResAuth : sysResAuths) {
set.add(ResAuth.getFunctionId());
}
}
for (Function function : sysFunctionList) {
SysFunctionTreeDto sysFunctionTreeDto = new SysFunctionTreeDto();
sysFunctionTreeDto.setKey(function.getId());
sysFunctionTreeDto.setLabel(function.getFunctionName());
sysFunctionTreeDto.setSpread(false);
sysFunctionTreeDto.setChecked(false);
if (set.contains(function.getId())){
sysFunctionTreeDto.setChecked(true);
}
List<Function> sysFunctions = functionDao.selectByParentId(function.ge
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
环境:开发工具:idea,数据库:MySQL5.7 jdk1.8 架构:SpringBoot,前端html 主要功能 病人:就诊预约、查看预约、评价等; 医生:我的预约日常、对我的评价等; 管理员:医生管理、预约信息管理、科室管理等;
资源推荐
资源详情
资源评论
收起资源包目录
毕设-基于SpringBoot医院挂号管理系统 (1390个子文件)
ResAuthServiceImpl.class 13KB
UserServiceImpl.class 8KB
DoctorAppointmentServiceImpl.class 8KB
DoctorServiceImpl.class 8KB
UserRemarkServiceImpl.class 7KB
ResAuthController.class 7KB
DoctorCommentServiceImpl.class 7KB
DoctorAppointmentController.class 6KB
RoleServiceImpl.class 5KB
SysFunctionMenuDto.class 5KB
DoctorFeedbackServiceImpl.class 5KB
OrgServiceImpl.class 5KB
FunctionController.class 5KB
UserRemarkController.class 5KB
OrgController.class 5KB
UserController.class 5KB
DoctorCommentController.class 5KB
DruidConfig.class 4KB
User.class 4KB
RoleAuthServiceImpl.class 4KB
RoleController.class 4KB
Function.class 4KB
MyShiroRealm.class 4KB
DoctorController.class 4KB
MenuTreeDto.class 4KB
Doctor.class 4KB
HomeController.class 4KB
SysFunctionTreeDto.class 3KB
DoctorFeedbackController.class 3KB
RoleAuth.class 3KB
DoctorComment.class 3KB
Role.class 3KB
FunctionServiceImpl.class 3KB
ResAuth.class 3KB
DoctorAppointment.class 3KB
ResponseResult.class 3KB
Org.class 3KB
DoctorFeedback.class 3KB
ResponseEnum.class 3KB
MenuNode.class 3KB
ShiroConfig.class 3KB
DoctorReplay.class 3KB
DoctorAppointmentDto.class 3KB
UserRemark.class 2KB
UserRemarkDto.class 2KB
DoctorDto.class 2KB
DoctorCommentDto.class 2KB
RoleAuthDto.class 2KB
OrgDto.class 2KB
ResAuthService.class 2KB
DoctorFeedbackDto.class 2KB
LayUiTableJson.class 2KB
ResAuthDao.class 2KB
UserDao.class 2KB
Page.class 2KB
MenuZtreeNode.class 2KB
DoctorAppointmentDao.class 2KB
UserOrg.class 2KB
RoleDao.class 2KB
UserService.class 2KB
DoctorDao.class 2KB
RoleAuthController.class 2KB
DoctorReplayDto.class 2KB
DoctorCommentDao.class 1KB
DoctorAppointmentService.class 1KB
FunctionDao.class 1KB
OrgDao.class 1KB
UserRemarkDao.class 1KB
DoctorFeedbackDao.class 1KB
DoctorService.class 1016B
RoleService.class 996B
DoctorReplayDao.class 951B
UserRemarkService.class 948B
RoleAuthDao.class 919B
FunctionService.class 917B
DoctorCommentService.class 880B
YiyuanguahaoApplication.class 864B
OrgService.class 745B
DoctorFeedbackService.class 703B
YiyuanguahaoApplicationTests.class 563B
UserOrgDao.class 557B
RoleAuthService.class 474B
mvnw.cmd 6KB
test.css 497KB
test.css 497KB
element.css 249KB
element.css 249KB
layui.css 68KB
layui.css 68KB
layui.css 68KB
layui.css 68KB
base.css 50KB
base.css 50KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
layer.css 19KB
layer.css 19KB
formSelects-v4.css 18KB
formSelects-v4.css 18KB
layer.css 14KB
共 1390 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
- captain_ch2022-05-22用户下载后在一定时间内未进行评价,系统默认好评。
- 拱白菜的佩奇2022-05-28用户下载后在一定时间内未进行评价,系统默认好评。
- qq_508251922023-05-11发现一个超赞的资源,赶紧学习起来,大家一起进步,支持!
- m0_750287012023-03-29实在是宝藏资源、宝藏分享者!感谢大佬~
计算机毕业设计,
- 粉丝: 545
- 资源: 110
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Data$distriLecturer.class
- SECS移动解决方案 SECS如何实现扫码功能 SECS安卓APP SECS PDA应用 安卓版本SECS协议应用
- tuxiangsunajisjkN;SDN
- Linux:开源之光的发展历程与未来展望
- C++Qt操作Lotus Domino数据库 Lotus Domino C++连接Lotus Domino C++开发lotus
- Linux 操作系统提供了很多命令来进行系统管理、文件操作、网络设置等各种任务
- MySQL是一种广泛使用的关系型数据库管理系统
- MySQL是一种广泛使用的关系型数据库管理系统
- MySQL是一种广泛使用的关系型数据库管理系统
- test02_060523129_何梦颖.cpp
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功