rong.liu 4 years ago
commit a774868157
  1. 13
      pom.xml
  2. 4
      src/main/java/com/msdw/tms/api/ExperimentalTeachingControllerApi.java
  3. 12
      src/main/java/com/msdw/tms/controller/ExperimentalProjectController.java
  4. 25
      src/main/java/com/msdw/tms/controller/ExperimentalTeachingController.java
  5. 156
      src/main/java/com/msdw/tms/controller/SysPermissionController.java
  6. 20
      src/main/java/com/msdw/tms/controller/SysRoleController.java
  7. 20
      src/main/java/com/msdw/tms/controller/SysRolePermissionController.java
  8. 20
      src/main/java/com/msdw/tms/controller/SysUserRoleController.java
  9. 22
      src/main/java/com/msdw/tms/dao/SysPermissionMapper.java
  10. 28
      src/main/java/com/msdw/tms/dao/SysRoleMapper.java
  11. 31
      src/main/java/com/msdw/tms/dao/SysRolePermissionMapper.java
  12. 22
      src/main/java/com/msdw/tms/dao/SysUserRoleMapper.java
  13. 2
      src/main/java/com/msdw/tms/entity/ExperimentalTeachingEntity.java
  14. 100
      src/main/java/com/msdw/tms/entity/SysPermission.java
  15. 60
      src/main/java/com/msdw/tms/entity/SysRole.java
  16. 39
      src/main/java/com/msdw/tms/entity/SysRolePermission.java
  17. 39
      src/main/java/com/msdw/tms/entity/SysUserRole.java
  18. 83
      src/main/java/com/msdw/tms/entity/request/RolePermissionRequest.java
  19. 3
      src/main/java/com/msdw/tms/entity/response/CommonCode.java
  20. 80
      src/main/java/com/msdw/tms/entity/response/RolePermissionResponse.java
  21. 2
      src/main/java/com/msdw/tms/entity/vo/ExperimentalTeachingVO.java
  22. 45
      src/main/java/com/msdw/tms/service/ISysPermissionService.java
  23. 16
      src/main/java/com/msdw/tms/service/ISysRolePermissionService.java
  24. 16
      src/main/java/com/msdw/tms/service/ISysRoleService.java
  25. 16
      src/main/java/com/msdw/tms/service/ISysUserRoleService.java
  26. 11
      src/main/java/com/msdw/tms/service/impl/ExperimentalTeachingServiceImpl.java
  27. 127
      src/main/java/com/msdw/tms/service/impl/SysPermissionServiceImpl.java
  28. 20
      src/main/java/com/msdw/tms/service/impl/SysRolePermissionServiceImpl.java
  29. 20
      src/main/java/com/msdw/tms/service/impl/SysRoleServiceImpl.java
  30. 20
      src/main/java/com/msdw/tms/service/impl/SysUserRoleServiceImpl.java
  31. 115
      src/main/java/com/msdw/tms/util/MyBatisPlusCodeGenerator.java
  32. 12
      src/main/resources/application.yml
  33. 36
      src/main/resources/mapper/tms/SysPermissionMapper.xml
  34. 40
      src/main/resources/mapper/tms/SysRoleMapper.xml
  35. 38
      src/main/resources/mapper/tms/SysRolePermissionMapper.xml
  36. 19
      src/main/resources/mapper/tms/SysUserRoleMapper.xml

@ -225,6 +225,19 @@
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

@ -2,12 +2,9 @@ package com.msdw.tms.api;
import com.msdw.tms.common.utils.R;
import com.msdw.tms.entity.ExperimentalTeachingEntity;
import com.msdw.tms.entity.UserEntity;
import com.msdw.tms.entity.vo.ExperimentalTeachingEntityVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import java.text.ParseException;
@ -20,6 +17,7 @@ public interface ExperimentalTeachingControllerApi {
@ApiParam(name = "month", value = "月份:1、近一个月内 3、近三个月内 6、近六个月内", required = false) Integer month,
@ApiParam(name = "type", value = "类型:1、手动发布 2、定时发布", required = false) Integer type,
@ApiParam(name = "status", value = "状态:1、待开始 2、进行中 3、已结束", required = false) Integer status,
@ApiParam(name = "systemId", value = "系统id", required = false) Integer systemId,
@ApiParam(name = "startTime", value = "开始时间", required = false) String startTime,
@ApiParam(name = "stopTime", value = "结束时间", required = false) String stopTime,
@ApiParam(name = "searchContent", value = "搜索内容", required = false) String searchContent,

@ -2,26 +2,16 @@ package com.msdw.tms.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.msdw.tms.api.ExperimentalProjectControllerApi;
import com.msdw.tms.api.ExperimentalTeachingControllerApi;
import com.msdw.tms.api.UserControllerApi;
import com.msdw.tms.common.utils.Constant;
import com.msdw.tms.common.utils.PageUtils;
import com.msdw.tms.common.utils.R;
import com.msdw.tms.entity.ExperimentalProjectEntity;
import com.msdw.tms.entity.ExperimentalTeachingEntity;
import com.msdw.tms.entity.UserEntity;
import com.msdw.tms.entity.vo.ExperimentalProjectEntityVO;
import com.msdw.tms.entity.vo.ExperimentalTeachingEntityVO;
import com.msdw.tms.entity.vo.UserEntityVo;
import com.msdw.tms.service.ExperimentalProjectService;
import com.msdw.tms.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("tms/project")
@ -40,7 +30,7 @@ public class ExperimentalProjectController implements ExperimentalProjectControl
return R.ok().put("experimental_project_name", one);
}
/**
/**nm
* 根据id查询实验班级详情
*/
@GetMapping("/getById/{id}")

@ -2,24 +2,20 @@ package com.msdw.tms.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.msdw.tms.api.ExperimentalTeachingControllerApi;
import com.msdw.tms.api.UserControllerApi;
import com.msdw.tms.common.utils.Constant;
import com.msdw.tms.common.utils.PageUtils;
import com.msdw.tms.common.utils.R;
import com.msdw.tms.entity.ExperimentalTeachingEntity;
import com.msdw.tms.entity.UserEntity;
import com.msdw.tms.entity.vo.ExperimentalTeachingEntityVO;
import com.msdw.tms.entity.vo.ExperimentalTeachingVO;
import com.msdw.tms.entity.vo.UserEntityVo;
import com.msdw.tms.service.ExperimentalTeachingService;
import com.msdw.tms.service.UserService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
@RestController
@RequestMapping("tms/exp")
@ -32,6 +28,7 @@ public class ExperimentalTeachingController implements ExperimentalTeachingContr
/**
* 根据id查询实验班级详情
*/
@Override
@GetMapping("/getById/{id}")
public R getById(@PathVariable("id") Integer id){
ExperimentalTeachingEntity et = experimentalTeachingService.getById(id);
@ -40,6 +37,7 @@ public class ExperimentalTeachingController implements ExperimentalTeachingContr
/**
* 根据邀请码查询
*/
@Override
@GetMapping("/getInvitationCode")
public R getInvitationCode(@RequestParam Integer invitationCode) {
ExperimentalTeachingEntity one = experimentalTeachingService.getOne(new QueryWrapper<ExperimentalTeachingEntity>().eq("invitation_code", invitationCode)
@ -49,15 +47,19 @@ public class ExperimentalTeachingController implements ExperimentalTeachingContr
/**
* 查询
*/
@Override
@GetMapping("/list")
public R list(@RequestParam Integer page,
@RequestParam Integer size,
Integer month, Integer type, Integer status, String startTime, String stopTime, String searchContent,@RequestParam Integer schoolId){
public R list(@RequestParam Integer page, @RequestParam Integer size,
Integer month, Integer type, Integer status,Integer systemId, String startTime,
String stopTime, String searchContent,@RequestParam Integer schoolId){
ExperimentalTeachingVO vo = new ExperimentalTeachingVO();
vo.setSchoolId(schoolId);
if (month!=null){
vo.setMonth(month);
}
if (systemId!=null){
vo.setSystemId(systemId);
}
if (type!=null){
vo.setType(type);
}
@ -80,6 +82,7 @@ public class ExperimentalTeachingController implements ExperimentalTeachingContr
/**
* 保存
*/
@Override
@PostMapping("/save")
public R save(@RequestBody ExperimentalTeachingEntity experimentalTeachingEntity){
experimentalTeachingService.save(experimentalTeachingEntity);
@ -89,6 +92,7 @@ public class ExperimentalTeachingController implements ExperimentalTeachingContr
/**
* 修改
*/
@Override
@PostMapping("/update")
public R update(@RequestBody ExperimentalTeachingEntity experimentalTeachingEntity) throws ParseException {
//添加实验结束时间
@ -117,6 +121,7 @@ public class ExperimentalTeachingController implements ExperimentalTeachingContr
/**
* 删除
*/
@Override
@PostMapping("/delete")
public R delete(@RequestBody Integer[] ids){
experimentalTeachingService.removeByIds(Arrays.asList(ids));

@ -0,0 +1,156 @@
package com.msdw.tms.controller;
import com.msdw.tms.common.exception.ExceptionCast;
import com.msdw.tms.common.utils.PageUtils;
import com.msdw.tms.entity.SysPermission;
import com.msdw.tms.entity.SysRole;
import com.msdw.tms.entity.SysRolePermission;
import com.msdw.tms.entity.request.RolePermissionRequest;
import com.msdw.tms.entity.response.CommonCode;
import com.msdw.tms.entity.response.ResponseResult;
import com.msdw.tms.entity.response.RolePermissionResponse;
import com.msdw.tms.service.ISysPermissionService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 菜单权限表 前端控制器
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@RestController
@RequestMapping("/sys-permission")
@Api(tags = {"角色权限管理"})
public class SysPermissionController {
@Autowired
private ISysPermissionService permissionService;
/**
* 权限菜单树形列表展示
* @return
*/
@GetMapping("/tree")
public ResponseResult tree(){
List<SysPermission> list = permissionService.listWithTree();
return new ResponseResult<List<SysPermission>>().SUCCESS(list);
}
/**
* 新增角色权限
*/
@Transactional
@PostMapping("/saveRolePermission")
public ResponseResult saveRolePermission(@Valid @RequestBody RolePermissionRequest rolePermission) {
Date date = new Date();
rolePermission.setCreateTime(date);
rolePermission.setMotifyTime(date);
//此处要判重,新增的角色名称要唯一
int count = permissionService.uniqueRoleName(rolePermission.getName());
if(count >0){
ExceptionCast.cast(CommonCode.ROLE_NAME_EXIST);
}
//新增角色到角色表
int request = permissionService.addHrmsRole(rolePermission);
//根据选中的permissionId批量新增数据到hrms_role_permission
List<Long> asList = Arrays.asList(rolePermission.getPermissionIds());
List<RolePermissionRequest> rolePermissionList = getRolePermissionList(asList, rolePermission.getRoleId());
boolean result = permissionService.addHrmsRolePermission(rolePermissionList);
return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL();
}
private List<RolePermissionRequest> getRolePermissionList(List<Long> asList, Long roleId) {
return asList.stream().map(permissionId -> {
RolePermissionRequest request = new RolePermissionRequest();
request.setRoleId(roleId);
request.setPermissionId(permissionId);
return request;
}).collect(Collectors.toList());
}
/**
* 修改角色权限
*/
@Transactional
@PostMapping("/updateRolePermission")
public ResponseResult updateRolePermission(@Valid @RequestBody RolePermissionRequest rolePermission) {
Date date = new Date();
rolePermission.setMotifyTime(date);
//根据角色Id修改角色内容
int request = permissionService.updateHrmsRole(rolePermission);
//删除该角色Id对应的所有权限
List<Long> asList = Arrays.asList(rolePermission.getPermissionIds());
permissionService.deleteHrmsRolePermission(rolePermission.getRoleId());
//根据选中的permissionId批量新增数据到hrms_role_permission
List<RolePermissionRequest> rolePermissionList = getRolePermissionList(asList, rolePermission.getRoleId());
boolean result = permissionService.addHrmsRolePermission(rolePermissionList);
return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL();
}
/**
* 删除用户角色权限
*/
@Transactional
@PostMapping("/delRolePermission")
public ResponseResult delRolePermission(@RequestBody RolePermissionRequest rolePermission) {
//根据角色Id查询该角色是否有用户关联
int count = permissionService.queryCountByRoleId(rolePermission.getRoleIds());
if(count >0){
ExceptionCast.cast(CommonCode.ROLE_EMP_EXIST);
}
//没有关联则根据roleId删除hrms_role表对应记录
boolean b = permissionService.deleteHrmsRoleByRoleId(rolePermission.getRoleIds());
//根据角色id删除对应所有权限
boolean result = permissionService.deleteHrmsRolePermission(rolePermission.getRoleIds());
return result ? ResponseResult.SUCCESS() : ResponseResult.FAIL();
}
/**
* 查看权限数组
* @param roleId
* @return
*/
@GetMapping("/queryPermissionArrById")
public ResponseResult queryPermissionArrById(@RequestParam("roleId") Long roleId) {
List<SysRolePermission> list = permissionService.queryPermissionArrById(roleId);
ArrayList<Integer> sb = new ArrayList<Integer>();
for (SysRolePermission rolePermission:list) {
sb.add(rolePermission.getPermissionId().intValue());
}
Integer[] ids = sb.toArray(new Integer[sb.size()]);
//根据roleId查询角色名称和角色描述
SysRole roleMsg = permissionService.queryRoleMsg(roleId);
Map map = new HashMap();
map.put("permissionIds",ids);
map.put("name",roleMsg.getName());
map.put("description",roleMsg.getDescription());
return new ResponseResult<List<RolePermissionResponse>>().SUCCESS(map);
}
/**
* 角色权限列表展示
* @param page
* @param size
* @return
*/
@GetMapping("/rolePermissionList")
public ResponseResult rolePermissionList(@RequestParam("page") Integer page,
@RequestParam("size") Integer size,@RequestParam("name")String name) {
PageUtils data = permissionService.queryPage(page, size, name);
return new ResponseResult<PageUtils>().SUCCESS(data);
}
}

@ -0,0 +1,20 @@
package com.msdw.tms.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 用户角色表 前端控制器
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@RestController
@RequestMapping("/sys-role")
public class SysRoleController {
}

@ -0,0 +1,20 @@
package com.msdw.tms.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 角色权限中间表 前端控制器
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@RestController
@RequestMapping("/sys-role-permission")
public class SysRolePermissionController {
}

@ -0,0 +1,20 @@
package com.msdw.tms.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 用户角色中间表 前端控制器
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@RestController
@RequestMapping("/sys-user-role")
public class SysUserRoleController {
}

@ -0,0 +1,22 @@
package com.msdw.tms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.msdw.tms.entity.SysPermission;
import com.msdw.tms.entity.response.RolePermissionResponse;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 菜单权限表 Mapper 接口
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Mapper
public interface SysPermissionMapper extends BaseMapper<SysPermission> {
IPage<RolePermissionResponse> pageByCondition(Page page,String name);
}

@ -0,0 +1,28 @@
package com.msdw.tms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.msdw.tms.entity.SysRole;
import com.msdw.tms.entity.request.RolePermissionRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 用户角色表 Mapper 接口
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Mapper
public interface SysRoleMapper extends BaseMapper<SysRole> {
int addHrmsRole(RolePermissionRequest rolePermission);
int updateHrmsRole(RolePermissionRequest rolePermission);
boolean deleteHrmsRoleByRoleId(@Param("roleIds") List<Long> roleIds);
}

@ -0,0 +1,31 @@
package com.msdw.tms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.msdw.tms.entity.SysRolePermission;
import com.msdw.tms.entity.request.RolePermissionRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 角色权限中间表 Mapper 接口
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Mapper
public interface SysRolePermissionMapper extends BaseMapper<SysRolePermission> {
int uniqueRoleName(String name);
boolean addHrmsRolePermission(@Param("rolePermissionList") List<RolePermissionRequest> rolePermissionList);
boolean deleteHrmsRolePermission(@Param("roleIds") List<Long> roleIds);
boolean deleteHrmsRolePermissionSingle(Long roleId);
List<SysRolePermission> queryPermissionArrById(Long roleId);
}

@ -0,0 +1,22 @@
package com.msdw.tms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.msdw.tms.entity.SysUserRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 用户角色中间表 Mapper 接口
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Mapper
public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
int queryCountByRoleId(@Param("roleIds") List<Long> roleIds);
}

@ -45,6 +45,8 @@ public class ExperimentalTeachingEntity {
private Integer isCode;
//绑定用户Id
private Integer userId;
//绑定系统Id
private Integer systemId;
//创建时间
private String creationTime;
//实验倒计时

@ -0,0 +1,100 @@
package com.msdw.tms.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* <p>
* 菜单权限表
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Data
@TableName("sys_permission")
public class SysPermission implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 权限标识符
*/
private String code;
/**
* 名称
*/
private String name;
/**
* 父权限id
*/
private Long parentId;
/**
* 层级
*/
private Integer level;
/**
* 是否是菜单10不是0目前为按钮
*/
private Integer menuOrNot;
/**
* 状态0启用1禁用
*/
private Integer status;
/**
* 路径
*/
private String url;
/**
* 页面路径
*/
private String menuUrl;
/**
* 排序
*/
private Integer sort;
/**
* 图标
*/
private String icon;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date motifyTime;
/**
* 子权限
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@TableField(exist = false)
private List<SysPermission> children;
}

@ -0,0 +1,60 @@
package com.msdw.tms.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 用户角色表
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Data
@TableName("sys_role")
public class SysRole implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 角色名称
*/
private String name;
/**
* 角色描述
*/
private String description;
/**
* 是否删除0未删除1删除
*/
private Integer delOrNot;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date motifyTime;
/**
* 编码
*/
private String code;
}

@ -0,0 +1,39 @@
package com.msdw.tms.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 角色权限中间表
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Data
@TableName("sys_role_permission")
public class SysRolePermission implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 角色id
*/
private Long roleId;
/**
* 权限id
*/
private Long permissionId;
}

@ -0,0 +1,39 @@
package com.msdw.tms.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
* 用户角色中间表
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Data
@TableName("sys_user_role")
public class SysUserRole implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 角色id
*/
private Long roleId;
}

@ -0,0 +1,83 @@
package com.msdw.tms.entity.request;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 记录菜单权限
*
* @author gongsj
* @email gongsj@gmail.com
* @date 2020-09-07 17:12:14
*/
@Data
public class RolePermissionRequest implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 角色id
*/
private Long roleId;
/**
* 角色ids
*/
private Long[] roleIds;
/**
* 角色名称
*/
private String name;
/**
* 角色描述
*/
private String description;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date motifyTime;
/**
* 权限ids
*/
@NotEmpty(message = "权限至少选中一项!")
private Long[] permissionIds;
private Long permissionId;
/**
* 拥有权限名称
*/
private String permissionName;
/**
* 父级id
*/
private Long parentId;
/**
* 子权限
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@TableField(exist = false)
private List<RolePermissionRequest> children;
/**
* 排序
*/
private Integer sort;
}

@ -18,6 +18,9 @@ public enum CommonCode implements ResultCode {
REPEAT_INEXCEL(false, 10010, "试题在excel表中重复!"),
EVALUATION_QUESTION_NUM_INVALID(false, 10011, "当前测评题数设置为0,请先设置测评题数!"),
FAIL(false, 11111, "操作失败!"),
ROLE_NAME_EXIST(false,20001,"该角色名称已存在,请重新输入!"),
ROLE_EMP_EXIST(false,44001,"该角色有用户关联,不能删除!"),
SERVER_ERROR(false, 99999, "抱歉,系统繁忙,请稍后重试!");
//操作是否成功
boolean success;

@ -0,0 +1,80 @@
package com.msdw.tms.entity.response;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 记录菜单权限
*
* @author gongsj
* @email gongsj@gmail.com
* @date 2020-09-07 17:12:14
*/
@Data
@TableName("hrms_permission")
public class RolePermissionResponse implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 角色id
*/
@ApiModelProperty("id")
private Long roleId;
/**
* 角色名称
*/
@ApiModelProperty("名称")
private String name;
/**
* 角色描述
*/
@ApiModelProperty("角色描述")
private String description;
/**
* 权限id
*/
@ApiModelProperty("权限id")
private Long permissionId;
/**
* 拥有权限名称
*/
@ApiModelProperty("权限名称")
private String permissionName;
/**
* 父级id
*/
@ApiModelProperty("父级id")
private Long parentId;
/**
* 子权限
*/
@ApiModelProperty("子权限")
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@TableField(exist = false)
private List<RolePermissionResponse> children;
/**
* 排序
*/
@ApiModelProperty("子权限")
private Integer sort;
/**
* 权限标识
*/
private String code;
private boolean disabled=true;
}

@ -18,4 +18,6 @@ public class ExperimentalTeachingVO {
private Integer status;
//学校id
private Integer schoolId;
//绑定系统Id
private Integer systemId;
}

@ -0,0 +1,45 @@
package com.msdw.tms.service;
import com.msdw.tms.common.utils.PageUtils;
import com.msdw.tms.entity.SysPermission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.msdw.tms.entity.SysRole;
import com.msdw.tms.entity.SysRolePermission;
import com.msdw.tms.entity.request.RolePermissionRequest;
import java.util.List;
/**
* <p>
* 菜单权限表 服务类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
public interface ISysPermissionService extends IService<SysPermission> {
List<SysPermission> listWithTree();
int uniqueRoleName(String name);
int addHrmsRole(RolePermissionRequest rolePermission);
boolean addHrmsRolePermission(List<RolePermissionRequest> rolePermissionList);
int updateHrmsRole(RolePermissionRequest rolePermission);
boolean deleteHrmsRolePermission(Long roleId);
boolean deleteHrmsRolePermission(Long[] roleIds);
int queryCountByRoleId(Long[] roleIds);
boolean deleteHrmsRoleByRoleId(Long[] roleIds);
List<SysRolePermission> queryPermissionArrById(Long roleId);
SysRole queryRoleMsg(Long roleId);
PageUtils queryPage(Integer page, Integer size, String name);
}

@ -0,0 +1,16 @@
package com.msdw.tms.service;
import com.msdw.tms.entity.SysRolePermission;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 角色权限中间表 服务类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
public interface ISysRolePermissionService extends IService<SysRolePermission> {
}

@ -0,0 +1,16 @@
package com.msdw.tms.service;
import com.msdw.tms.entity.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 用户角色表 服务类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
public interface ISysRoleService extends IService<SysRole> {
}

@ -0,0 +1,16 @@
package com.msdw.tms.service;
import com.msdw.tms.entity.SysUserRole;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 用户角色中间表 服务类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
public interface ISysUserRoleService extends IService<SysUserRole> {
}

@ -1,31 +1,20 @@
package com.msdw.tms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.msdw.tms.common.utils.Constant;
import com.msdw.tms.common.utils.PageUtils;
import com.msdw.tms.common.utils.Query;
import com.msdw.tms.dao.ClassTeachingDao;
import com.msdw.tms.dao.ExperimentalTeachingDao;
import com.msdw.tms.dao.UserDao;
import com.msdw.tms.entity.ExperimentalTeachingEntity;
import com.msdw.tms.entity.UserEntity;
import com.msdw.tms.entity.vo.ExperimentalTeachingEntityVO;
import com.msdw.tms.entity.vo.ExperimentalTeachingVO;
import com.msdw.tms.entity.vo.ProjectRecordVo;
import com.msdw.tms.entity.vo.UserEntityVo;
import com.msdw.tms.service.ExperimentalTeachingService;
import com.msdw.tms.service.UserService;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@Service("experimentalTeachingService")
public class ExperimentalTeachingServiceImpl extends ServiceImpl<ExperimentalTeachingDao, ExperimentalTeachingEntity> implements ExperimentalTeachingService {

@ -0,0 +1,127 @@
package com.msdw.tms.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.msdw.tms.common.utils.PageUtils;
import com.msdw.tms.dao.SysPermissionMapper;
import com.msdw.tms.dao.SysRoleMapper;
import com.msdw.tms.dao.SysRolePermissionMapper;
import com.msdw.tms.dao.SysUserRoleMapper;
import com.msdw.tms.entity.SysPermission;
import com.msdw.tms.entity.SysRole;
import com.msdw.tms.entity.SysRolePermission;
import com.msdw.tms.entity.request.RolePermissionRequest;
import com.msdw.tms.entity.response.RolePermissionResponse;
import com.msdw.tms.service.ISysPermissionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* <p>
* 菜单权限表 服务实现类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Service
public class SysPermissionServiceImpl extends ServiceImpl<SysPermissionMapper, SysPermission> implements ISysPermissionService {
@Resource
private SysRolePermissionMapper rolePermissionMapper;
@Resource
private SysRoleMapper roleMapper;
@Resource
private SysUserRoleMapper userRoleMapper;
@Override
public List<SysPermission> listWithTree() {
/* List<SysPermission>list = this.getBaseMapper().queryPermissionTree();
return getPermissionTreeList(list,0L);*/
System.out.println("this.list()=================="+this.list());
return getPermissionTreeList(this.list(), 0L);
}
private List<SysPermission> getPermissionTreeList(List<SysPermission> list, Long parentId){
return list.stream()
.filter(item -> parentId.equals(item.getParentId()))
.peek(item -> item.setChildren(getPermissionTreeList(list, item.getId())))
.sorted(Comparator.comparingInt(menu -> (menu.getSort() == null ? 0 : menu.getSort())))
.collect(Collectors.toList());
}
@Override
public int uniqueRoleName(String name) {
return rolePermissionMapper.uniqueRoleName(name);
}
@Override
public int addHrmsRole(RolePermissionRequest rolePermission) {
int request = roleMapper.addHrmsRole(rolePermission);
return request;
}
@Override
public boolean addHrmsRolePermission(List<RolePermissionRequest> rolePermissionList) {
return rolePermissionMapper.addHrmsRolePermission(rolePermissionList);
}
@Override
public int updateHrmsRole(RolePermissionRequest rolePermission) {
return roleMapper.updateHrmsRole(rolePermission);
}
@Override
public boolean deleteHrmsRolePermission(Long roleId) {
return rolePermissionMapper.deleteHrmsRolePermissionSingle(roleId);
}
@Override
public boolean deleteHrmsRolePermission(Long[] roleIds) {
return rolePermissionMapper.deleteHrmsRolePermission(Arrays.asList(roleIds));
}
@Override
public int queryCountByRoleId(Long[] roleIds) {
int count = userRoleMapper.queryCountByRoleId(Arrays.asList(roleIds));
return count;
}
@Override
public boolean deleteHrmsRoleByRoleId(Long[] roleIds) {
return roleMapper.deleteHrmsRoleByRoleId(Arrays.asList(roleIds));
}
@Override
public List<SysRolePermission> queryPermissionArrById(Long roleId) {
return rolePermissionMapper.queryPermissionArrById(roleId);
}
@Override
public SysRole queryRoleMsg(Long roleId) {
return roleMapper.selectById(roleId);
}
@Override
public PageUtils queryPage(Integer page, Integer size, String name) {
//分页参数
if (page <= 0) {
page = 1;
}
if (size <= 0) {
size = 10;
}
IPage<RolePermissionResponse> systemLogVo = this.getBaseMapper().pageByCondition(new Page(page, size),name);
return new PageUtils(systemLogVo);
}
}

@ -0,0 +1,20 @@
package com.msdw.tms.service.impl;
import com.msdw.tms.dao.SysRolePermissionMapper;
import com.msdw.tms.entity.SysRolePermission;
import com.msdw.tms.service.ISysRolePermissionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 角色权限中间表 服务实现类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Service
public class SysRolePermissionServiceImpl extends ServiceImpl<SysRolePermissionMapper, SysRolePermission> implements ISysRolePermissionService {
}

@ -0,0 +1,20 @@
package com.msdw.tms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.msdw.tms.dao.SysRoleMapper;
import com.msdw.tms.entity.SysRole;
import com.msdw.tms.service.ISysRoleService;
import org.springframework.stereotype.Service;
/**
* <p>
* 用户角色表 服务实现类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Service
public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements ISysRoleService {
}

@ -0,0 +1,20 @@
package com.msdw.tms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.msdw.tms.dao.SysUserRoleMapper;
import com.msdw.tms.entity.SysUserRole;
import com.msdw.tms.service.ISysUserRoleService;
import org.springframework.stereotype.Service;
/**
* <p>
* 用户角色中间表 服务实现类
* </p>
*
* @author Qyq
* @since 2021-02-24
*/
@Service
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements ISysUserRoleService {
}

@ -0,0 +1,115 @@
package com.msdw.tms.util;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: LvFang
* @Date: Created in 2019/6/11.
* @Description:
*/
public class MyBatisPlusCodeGenerator {
//包名
public static final String PACKAGE_NAME = "com.msdw.tms";
public static void main(String[] args) {
String[] tables = new String[] {"sys_role","sys_role_permission","sys_user_role"};//表名数组
String[] tablePrefixs = new String[] {""};//去掉前缀
executeCode(PACKAGE_NAME,tables,tablePrefixs);
}
private static void executeCode(String pack, String[] tables, String[] tablePrefixs) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
// 是否覆盖已有文件
gc.setFileOverride(false);
// 生成文件的输出目录
String projectPath = System.getProperty("user.dir");//user.dir 表示当前工程路径无需替换
gc.setOutputDir(projectPath + "/src/main/java");
//设置bean命名规范
gc.setEntityName("%s");
// 开发人员
gc.setAuthor("Qyq");
// 是否打开输出目录
gc.setOpen(false);
// 开启 BaseResultMap
gc.setBaseResultMap(true);
// 指定生成的主键的ID类型
gc.setIdType(IdType.ID_WORKER);
// 时间类型对应策略: 只使用 java.util.date 代替
gc.setDateType(DateType.ONLY_DATE);
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig config= new DataSourceConfig();
// 从试图获取
config.setUrl("jdbc:mysql://localhost:3306/msdw_tms?serverTimezone=UTC");
config.setDriverName("com.mysql.cj.jdbc.Driver");
config.setUsername("root");
config.setPassword("root");
mpg.setDataSource(config);
// 包配置
PackageConfig pc = new PackageConfig();
// 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
pc.setParent(pack);
// Entity包名
pc.setEntity("entity");
mpg.setPackageInfo(pc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
if (StringUtils.isEmpty(pc.getModuleName())) {
return projectPath + "/src/main/resources/mapper/tms/" + tableInfo.getXmlName() + StringPool.DOT_XML;
}else {
return projectPath + "/src/main/resources/mapper/tms/" + pc.getModuleName() + "/" + tableInfo.getXmlName() + StringPool.DOT_XML;
}
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
mpg.setTemplate(new TemplateConfig().setXml(null));
// 策略配置
StrategyConfig strategy = new StrategyConfig();
// 数据库表映射到实体的命名策略: 下划线转驼峰命名
strategy.setNaming(NamingStrategy.underline_to_camel);
// 数据库表字段映射到实体的命名策略: 下划线转驼峰命名
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 【实体】是否为lombok模型(默认 false)
strategy.setEntityLombokModel(false);
// 需要包含的表名,允许正则表达式(与exclude二选一配置)
strategy.setInclude(tables);
// 驼峰转连字符
strategy.setControllerMappingHyphenStyle(true);
// 表前缀
strategy.setTablePrefix(tablePrefixs);
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
}

@ -5,12 +5,12 @@ spring:
# url: jdbc:mysql://www.liuwanr.cn:3306/huoran?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
# username: super
# password: huoran888
url: jdbc:mysql://rm-wz9y13wf7u8q8610fwo.mysql.rds.aliyuncs.com:3306/huoran?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: super
password: huoran888
# url: jdbc:mysql://localhost:3306/msdw_tms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
# username: root
# password: root
# url: jdbc:mysql://rm-wz9y13wf7u8q8610fwo.mysql.rds.aliyuncs.com:3306/huoran?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
# username: super
# password: huoran888
url: jdbc:mysql://localhost:3306/msdw_tms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
# redis:
# host: www.liuwanr.cn

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.msdw.tms.dao.SysPermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.msdw.tms.entity.SysPermission">
<id column="id" property="id" />
<result column="code" property="code" />
<result column="name" property="name" />
<result column="parent_id" property="parentId" />
<result column="level" property="level" />
<result column="menu_or_not" property="menuOrNot" />
<result column="status" property="status" />
<result column="url" property="url" />
<result column="menu_url" property="menuUrl" />
<result column="sort" property="sort" />
<result column="icon" property="icon" />
<result column="create_time" property="createTime" />
<result column="motify_time" property="motifyTime" />
</resultMap>
<select id="pageByCondition" resultType="com.msdw.tms.entity.response.RolePermissionResponse">
select rp.role_id as roleId, hr.`name`,hr.description,GROUP_CONCAT(hp.`name`separator '/') as permissionName
FROM sys_role_permission rp
LEFT JOIN sys_role hr on hr.id = rp.role_id
LEFT JOIN sys_permission hp on hp.id= rp.permission_id
<where>
hr.del_or_not=0
<if test="name != null and name != ''">
AND hr.name LIKE CONCAT('%' #{name} '%')
</if>
</where>
GROUP BY rp.role_id
</select>
</mapper>

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.msdw.tms.dao.SysRoleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.msdw.tms.entity.SysRole">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="description" property="description" />
<result column="del_or_not" property="delOrNot" />
<result column="create_time" property="createTime" />
<result column="motify_time" property="motifyTime" />
<result column="code" property="code" />
</resultMap>
<insert id="addHrmsRole" parameterType="com.msdw.tms.entity.request.RolePermissionRequest"
useGeneratedKeys="true" keyProperty="roleId" keyColumn="id">
INSERT INTO sys_role
(`name`,description,create_time,motify_time)
values (#{name},#{description},#{createTime},#{motifyTime});
</insert>
<update id="updateHrmsRole" parameterType="com.msdw.tms.entity.request.RolePermissionRequest">
UPDATE sys_role
<set>
`name`=#{name},
description=#{description},
motify_time=#{motifyTime},
</set>
WHERE id = #{roleId}
</update>
<delete id="deleteHrmsRoleByRoleId">
update sys_role set del_or_not = 1 where id IN
<foreach collection="roleIds" index="index" open="(" separator="," close=")" item="item">
#{item}
</foreach>
</delete>
</mapper>

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.msdw.tms.dao.SysRolePermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.msdw.tms.entity.SysRolePermission">
<id column="id" property="id" />
<result column="role_id" property="roleId" />
<result column="permission_id" property="permissionId" />
</resultMap>
<select id="uniqueRoleName" parameterType="string" resultType="java.lang.Integer">
select count(0) from sys_role where `name` = #{name}
</select>
<insert id="addHrmsRolePermission" parameterType="com.msdw.tms.entity.request.RolePermissionRequest">
INSERT INTO sys_role_permission (role_id,permission_id) values
<foreach collection="rolePermissionList" index="index" separator="," item="item">
(#{item.roleId},#{item.permissionId})
</foreach>
</insert>
<delete id="deleteHrmsRolePermission">
delete from sys_role_permission where role_id in
<foreach collection="roleIds" index="index" open="(" separator="," close=")" item="item">
#{item}
</foreach>
</delete>
<delete id="deleteHrmsRolePermissionSingle">
delete from sys_role_permission where role_id=#{roleId}
</delete>
<select id="queryPermissionArrById" resultMap="BaseResultMap">
select id, permission_id from sys_role_permission where role_id = #{roleId}
</select>
</mapper>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.msdw.tms.dao.SysUserRoleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.msdw.tms.entity.SysUserRole">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="role_id" property="roleId" />
</resultMap>
<select id="queryCountByRoleId" resultType="java.lang.Integer">
select count(0) from sys_user_role where role_id in
<foreach collection="roleIds" index="index" open="(" separator="," close=")" item="item">
#{item}
</foreach>
</select>
</mapper>
Loading…
Cancel
Save