From 73ba7a60f128e66c316f6055da7900fa3ff05d01 Mon Sep 17 00:00:00 2001 From: xinsin Date: Thu, 11 May 2023 22:09:44 +0800 Subject: [PATCH] feat --- .../controller/AuthPermissionsController.java | 4 + .../controller/AuthRolesController.java | 27 +++++- .../AuthRolesPermissionController.java | 21 ++++- src/main/java/top/xinsin/pojo/AuthRoles.java | 5 +- .../AuthRolesAndAuthPermissionsAndUserVo.java | 8 ++ .../top/xinsin/service/AccountService.java | 4 +- .../service/AuthPermissionsService.java | 20 +++++ .../service/AuthRolesPermissionsService.java | 87 +++++++++++++++++++ .../top/xinsin/service/AuthRolesService.java | 60 ++++++++++++- 9 files changed, 226 insertions(+), 10 deletions(-) create mode 100644 src/main/java/top/xinsin/pojo/vo/AuthRolesAndAuthPermissionsAndUserVo.java diff --git a/src/main/java/top/xinsin/controller/AuthPermissionsController.java b/src/main/java/top/xinsin/controller/AuthPermissionsController.java index 2f8751f..e895a56 100644 --- a/src/main/java/top/xinsin/controller/AuthPermissionsController.java +++ b/src/main/java/top/xinsin/controller/AuthPermissionsController.java @@ -9,6 +9,8 @@ import top.xinsin.service.AuthPermissionsService; import top.xinsin.service.AuthRolesService; import top.xinsin.util.R; +import java.util.List; + /** * @author xinsin * Created On 2023/4/24 21:07 @@ -31,4 +33,6 @@ public class AuthPermissionsController { public R getAuthPermissions(@RequestParam("page")Integer page, @RequestParam("num")Integer num){return authPermissionsService.getAuthPermissions(page,num);} @RequestMapping(path = "/changeAuthPermissionsStats", method = RequestMethod.GET) public R changeAuthPermissionsStats(@RequestParam("authPermissionId") Integer authPermissionId, @RequestParam("status") Boolean status) {return authPermissionsService.changeAuthPermissionsStats(authPermissionId, status);} + @RequestMapping(path = "/getAuthPermissionsId",method = RequestMethod.GET) + public R> getAuthPermissionsId(){return authPermissionsService.getAuthPermissionsId();} } \ No newline at end of file diff --git a/src/main/java/top/xinsin/controller/AuthRolesController.java b/src/main/java/top/xinsin/controller/AuthRolesController.java index 292457e..3609bb0 100644 --- a/src/main/java/top/xinsin/controller/AuthRolesController.java +++ b/src/main/java/top/xinsin/controller/AuthRolesController.java @@ -1,7 +1,15 @@ package top.xinsin.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.alibaba.fastjson2.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.xinsin.pojo.AuthPermissions; +import top.xinsin.pojo.AuthRoles; +import top.xinsin.service.AuthPermissionsService; +import top.xinsin.service.AuthRolesService; +import top.xinsin.util.R; + +import java.util.List; /** * @author xinsin @@ -12,4 +20,19 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/authRoles") public class AuthRolesController { + @Autowired + private AuthRolesService authPermissionsService; + + @RequestMapping(path = "/addAuthRoles",method = RequestMethod.POST) + public R addAuthRoles(@RequestBody AuthRoles authPermissions){return authPermissionsService.addAuthRoles(authPermissions);} + @RequestMapping(path = "/changeAuthRoles",method = RequestMethod.POST) + public R changeAuthRoles(@RequestBody AuthRoles authPermissions){return authPermissionsService.changeAuthRoles(authPermissions);} + @RequestMapping(path = "/delAuthRoles",method = RequestMethod.GET) + public R delAuthRoles(@RequestParam("id")Integer id){return authPermissionsService.delAuthRoles(id);} + @RequestMapping(path = "/getAuthRoles",method = RequestMethod.GET) + public R getAuthRoles(@RequestParam("page")Integer page, @RequestParam("num")Integer num){return authPermissionsService.getAuthRoles(page,num);} + @RequestMapping(path = "/changeAuthRoles", method = RequestMethod.GET) + public R changeAuthRoles(@RequestParam("authRolesId") Integer authPermissionId, @RequestParam("status") Boolean status) {return authPermissionsService.changeAuthRolesStats(authPermissionId, status);} + @RequestMapping(path = "/getAuthRolesId",method = RequestMethod.GET) + public R> getAuthRolesId(){return authPermissionsService.getAuthRolesId();} } \ No newline at end of file diff --git a/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java b/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java index 2f22b3c..4e7a6b7 100644 --- a/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java +++ b/src/main/java/top/xinsin/controller/AuthRolesPermissionController.java @@ -1,9 +1,14 @@ package top.xinsin.controller; +import com.alibaba.fastjson2.JSONObject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import top.xinsin.pojo.AuthPermissions; +import top.xinsin.pojo.AuthRolesPermissions; import top.xinsin.service.AuthRolesPermissionsService; +import top.xinsin.util.R; + +import java.util.List; /** * @author xinsin @@ -16,5 +21,17 @@ public class AuthRolesPermissionController { @Autowired private AuthRolesPermissionsService authRolesPermissionsService; + @RequestMapping(path = "/addAuthRolesPermissions",method = RequestMethod.POST) + public R addAuthRolesPermissions(@RequestBody AuthRolesPermissions authPermissions){return authRolesPermissionsService.addAuthRolesPermissions(authPermissions);} + @RequestMapping(path = "/changeAuthRolesPermissions",method = RequestMethod.POST) + public R changeAuthRolesPermissions(@RequestBody AuthRolesPermissions authPermissions){return authRolesPermissionsService.changeAuthRolesPermissions(authPermissions);} + @RequestMapping(path = "/delAuthRolesPermissions",method = RequestMethod.GET) + public R delAuthRolesPermissions(@RequestParam("id")Integer id){return authRolesPermissionsService.delAuthRolesPermissions(id);} + @RequestMapping(path = "/getAuthRolesPermissions",method = RequestMethod.GET) + public R getAuthRolesPermissions(@RequestParam("page")Integer page, @RequestParam("num")Integer num){return authRolesPermissionsService.getAuthRolesPermissions(page,num);} + @RequestMapping(path = "/changeAuthRolesPermissionsStats", method = RequestMethod.GET) + public R changeAuthRolesPermissionsStats(@RequestParam("authRolesPermissionsId") Integer authPermissionId, @RequestParam("status") Boolean status) {return authRolesPermissionsService.changeAuthRolesPermissionsStats(authPermissionId, status);} +// @RequestMapping(path = "/getAuthRolesPermissions",method = RequestMethod.GET) +// public R> getAuthRolesPermissions(){return authRolesPermissionsService.getAuthRolesPermissions();} } diff --git a/src/main/java/top/xinsin/pojo/AuthRoles.java b/src/main/java/top/xinsin/pojo/AuthRoles.java index 0e0d270..1c18761 100644 --- a/src/main/java/top/xinsin/pojo/AuthRoles.java +++ b/src/main/java/top/xinsin/pojo/AuthRoles.java @@ -8,6 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.Date; /** * @author xinsin @@ -30,11 +31,11 @@ public class AuthRoles implements Serializable { @TableField("create_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private LocalDateTime createTime; + private Date createTime; @TableField("update_time") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - private LocalDateTime updateTime; + private Date updateTime; @TableField("status") private Boolean status; @TableField("del") diff --git a/src/main/java/top/xinsin/pojo/vo/AuthRolesAndAuthPermissionsAndUserVo.java b/src/main/java/top/xinsin/pojo/vo/AuthRolesAndAuthPermissionsAndUserVo.java new file mode 100644 index 0000000..2462c33 --- /dev/null +++ b/src/main/java/top/xinsin/pojo/vo/AuthRolesAndAuthPermissionsAndUserVo.java @@ -0,0 +1,8 @@ +package top.xinsin.pojo.vo; + +import lombok.Data; + +@Data +public class AuthRolesAndAuthPermissionsAndUserVo { + +} diff --git a/src/main/java/top/xinsin/service/AccountService.java b/src/main/java/top/xinsin/service/AccountService.java index 0b4f8b2..153119e 100644 --- a/src/main/java/top/xinsin/service/AccountService.java +++ b/src/main/java/top/xinsin/service/AccountService.java @@ -61,10 +61,8 @@ public class AccountService implements UserDetailsService { return User .withUsername(authAccount.getUsername()) .password(authAccount.getPassword()) - .roles("id=" + authAccount.getId()) - .roles("roleId=" + authAccount.getRoleId()) + .roles("id=" + authAccount.getId(),"roleId=" + authAccount.getRoleId()) .build(); - } } } diff --git a/src/main/java/top/xinsin/service/AuthPermissionsService.java b/src/main/java/top/xinsin/service/AuthPermissionsService.java index d918cbc..d5331bb 100644 --- a/src/main/java/top/xinsin/service/AuthPermissionsService.java +++ b/src/main/java/top/xinsin/service/AuthPermissionsService.java @@ -5,11 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.User; import org.springframework.stereotype.Service; import top.xinsin.mapper.AccountMapper; import top.xinsin.mapper.AuthPermissionsMapper; import top.xinsin.pojo.AuthAccount; import top.xinsin.pojo.AuthPermissions; +import top.xinsin.pojo.AuthRoles; import top.xinsin.pojo.vo.AuthPermissionsAndUserVo; import top.xinsin.util.HttpCodes; import top.xinsin.util.R; @@ -31,6 +35,13 @@ public class AuthPermissionsService { @Autowired private AccountMapper accountMapper; public R addAuthPermissions(AuthPermissions authPermissions) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + authentication.getAuthorities().forEach(e -> { + String authority = e.getAuthority(); + if (authority.startsWith("ROLE_id=")){ + authPermissions.setCreateId(Integer.parseInt(authority.replace("ROLE_id=", ""))); + } + }); authPermissions.setCreateTime(new Date()); int insert = authPermissionsMapper.insert(authPermissions); return insert == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); @@ -64,4 +75,13 @@ public class AuthPermissionsService { public R changeAuthPermissionsStats(Integer authPermissionId, Boolean status) { return R.success(""); } + + public R> getAuthPermissionsId() { + List authRoles = authPermissionsMapper.selectList(null); + ArrayList jsonObjects = new ArrayList<>(); + authRoles.forEach(e -> { + jsonObjects.add(new JSONObject().fluentPut("id",e.getId()).fluentPut("permissionName",e.getPermissionName())); + }); + return R.success(jsonObjects); + } } diff --git a/src/main/java/top/xinsin/service/AuthRolesPermissionsService.java b/src/main/java/top/xinsin/service/AuthRolesPermissionsService.java index abe8afb..e311a79 100644 --- a/src/main/java/top/xinsin/service/AuthRolesPermissionsService.java +++ b/src/main/java/top/xinsin/service/AuthRolesPermissionsService.java @@ -1,6 +1,25 @@ package top.xinsin.service; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import top.xinsin.mapper.AccountMapper; +import top.xinsin.mapper.AuthPermissionsMapper; +import top.xinsin.mapper.AuthRolesMapper; +import top.xinsin.mapper.AuthRolesPermissionsMapper; +import top.xinsin.pojo.AuthAccount; +import top.xinsin.pojo.AuthPermissions; +import top.xinsin.pojo.AuthRoles; +import top.xinsin.pojo.AuthRolesPermissions; +import top.xinsin.pojo.vo.AuthPermissionsAndUserVo; +import top.xinsin.util.HttpCodes; +import top.xinsin.util.R; + +import java.util.*; /** * @author xinsin @@ -9,5 +28,73 @@ import org.springframework.stereotype.Service; */ @Service public class AuthRolesPermissionsService { + @Autowired + private AuthRolesPermissionsMapper authRolesPermissionsMapper; + @Autowired + private AuthRolesMapper authRolesMapper; + @Autowired + private AuthPermissionsMapper authPermissionsMapper; + @Autowired + private AccountMapper accountMapper; + public R addAuthRolesPermissions(AuthRolesPermissions authPermissions) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + authentication.getAuthorities().forEach(e -> { + String authority = e.getAuthority(); + if (authority.startsWith("ROLE_id=")){ + authPermissions.setCreateId(Integer.parseInt(authority.replace("ROLE_id=", ""))); + } + }); + authPermissions.setCreateTime(new Date()); + int insert = authRolesPermissionsMapper.insert(authPermissions); + return insert == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); + } + public R changeAuthRolesPermissions(AuthRolesPermissions authPermissions) { + authPermissions.setUpdateTime(new Date()); + int update = authRolesPermissionsMapper.updateById(authPermissions); + return update == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); + } + + public R delAuthRolesPermissions(Integer id) { + int delete = authRolesPermissionsMapper.deleteById(id); + return delete == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); + } + + public R getAuthRolesPermissions(Integer page, Integer num) { + Page authRolesPage = new Page<>(page, num); + Page authRolesPage1 = authRolesMapper.selectPage(authRolesPage, null); + ArrayList jsonObjects1 = new ArrayList<>(); + authRolesPage1.getRecords().forEach(e -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.fluentPut("roleName",e.getRoleName()); + LambdaQueryWrapper authRolesPermissionsLambdaQueryWrapper = new LambdaQueryWrapper<>(); + authRolesPermissionsLambdaQueryWrapper.eq(AuthRolesPermissions::getRoleId,e.getId()); + List authRolesPermissions = authRolesPermissionsMapper.selectList(authRolesPermissionsLambdaQueryWrapper); + ArrayList jsonObjects = new ArrayList<>(); + authRolesPermissions.forEach(a -> { + JSONObject jsonObject1 = new JSONObject(); + LambdaQueryWrapper authPermissionsLambdaQueryWrapper = new LambdaQueryWrapper<>(); + authPermissionsLambdaQueryWrapper.eq(AuthPermissions::getId,a.getPermissionId()); + AuthPermissions authPermissions = authPermissionsMapper.selectOne(authPermissionsLambdaQueryWrapper); + jsonObject1.fluentPut("permissionName",authPermissions.getPermissionName()).fluentPut("permissionCode",authPermissions.getPermissionCode()); + jsonObjects.add(jsonObject1); + }); + jsonObject.fluentPut("permissions",jsonObjects); + jsonObjects1.add(jsonObject); + }); + return R.success(new JSONObject().fluentPut("info",jsonObjects1).fluentPut("total",authRolesPage.getTotal())); + } + + public R changeAuthRolesPermissionsStats(Integer authPermissionId, Boolean status) { + return R.success(""); + } + +// public R> getAuthRolesPermissions() { +// List authRoles = authRolesPermissionsMapper.selectList(null); +// ArrayList jsonObjects = new ArrayList<>(); +// authRoles.forEach(e -> { +// jsonObjects.add(new JSONObject().fluentPut("id",e.getId()).fluentPut("permissionName",e.getPermissionName())); +// }); +// return R.success(jsonObjects); +// } } diff --git a/src/main/java/top/xinsin/service/AuthRolesService.java b/src/main/java/top/xinsin/service/AuthRolesService.java index e997805..c2ac7dd 100644 --- a/src/main/java/top/xinsin/service/AuthRolesService.java +++ b/src/main/java/top/xinsin/service/AuthRolesService.java @@ -1,8 +1,23 @@ package top.xinsin.service; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import top.xinsin.mapper.AccountMapper; +import top.xinsin.mapper.AuthPermissionsMapper; import top.xinsin.mapper.AuthRolesMapper; +import top.xinsin.pojo.AuthAccount; +import top.xinsin.pojo.AuthPermissions; +import top.xinsin.pojo.AuthRoles; +import top.xinsin.pojo.vo.AuthPermissionsAndUserVo; +import top.xinsin.util.HttpCodes; +import top.xinsin.util.R; + +import java.util.*; /** * @author xinsin @@ -11,6 +26,49 @@ import top.xinsin.mapper.AuthRolesMapper; */ @Service public class AuthRolesService { - @Autowired + + @Autowired private AuthRolesMapper authRolesMapper; + public R addAuthRoles(AuthRoles authPermissions) { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + authentication.getAuthorities().forEach(e -> { + String authority = e.getAuthority(); + if (authority.startsWith("ROLE_id=")){ + authPermissions.setCreateId(Integer.parseInt(authority.replace("ROLE_id=", ""))); + } + }); + authPermissions.setCreateTime(new Date()); + int insert = authRolesMapper.insert(authPermissions); + return insert == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); + } + + public R changeAuthRoles(AuthRoles authPermissions) { + authPermissions.setUpdateTime(new Date()); + int update = authRolesMapper.updateById(authPermissions); + return update == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); + } + + public R delAuthRoles(Integer id) { + int delete = authRolesMapper.deleteById(id); + return delete == 1 ? R.success(true) : R.failed(HttpCodes.HTTP_CODES555, false); + } + + public R getAuthRoles(Integer page, Integer num) { + Page authPermissionsPage = new Page<>(page, num); + Page authRolesPage = authRolesMapper.selectPage(authPermissionsPage, null); + return R.success(new JSONObject().fluentPut("info",authRolesPage.getRecords()).fluentPut("total",authPermissionsPage.getTotal())); + } + + public R changeAuthRolesStats(Integer authPermissionId, Boolean status) { + return R.success(""); + } + + public R> getAuthRolesId() { + List authRoles = authRolesMapper.selectList(null); + ArrayList jsonObjects = new ArrayList<>(); + authRoles.forEach(e -> { + jsonObjects.add(new JSONObject().fluentPut("id",e.getId()).fluentPut("roleName",e.getRoleName())); + }); + return R.success(jsonObjects); + } }