From cb88f99a24351fd1c9ba61ec37701f46feb6726f Mon Sep 17 00:00:00 2001 From: zhansihu Date: Wed, 6 Sep 2023 16:29:17 +0800 Subject: [PATCH] =?UTF-8?q?feature(=E6=9D=83=E9=99=90=E7=82=B9)=EF=BC=9A?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9D=83=E9=99=90=E7=82=B9API=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=9B=20refactor(init):=20=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=EF=BC=8C=E5=88=A0=E9=99=A4=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/client/feign/PermissionPointApi.java | 24 ++++++ .../model/permission/PermissionPointDTO.java | 5 +- .../permission/PermissionPointTreeNode.java | 3 + .../PermissionPointTreeQueryReq.java | 5 ++ tyr-server/pom.xml | 22 +++-- .../cn/axzo/tyr/server/TyrApplication.java | 37 ++++++++- .../server/controller/app/package-info.java | 1 - .../permission/PermissionPointController.java | 33 ++++++++ .../server/controller/web/UserController.java | 76 ----------------- .../server/controller/web/UserResource.java | 78 ------------------ .../axzo/tyr/server/repository/UserDao.java | 55 ------------- .../server/repository/entity/SaasFeature.java | 3 - .../server/repository/entity/user/User.java | 27 ------ .../server/repository/mapper/UserMapper.java | 14 ---- .../service/PermissionPointService.java | 17 ++++ .../service/converter/UserConverter.java | 26 ------ .../service/dto/request/user/NewUserDTO.java | 44 ---------- .../dto/request/user/UpdateUserDTO.java | 47 ----------- .../service/dto/request/user/UserQO.java | 26 ------ .../service/dto/request/user/UserQO1.java | 26 ------ .../service/dto/response/user/UserVO.java | 34 -------- .../impl/PermissionPointServiceImpl.java | 53 ++++++++++++ .../tyr/server/service/user/UserService.java | 29 ------- .../service/user/impl/UserServiceImpl.java | 82 ------------------- .../permission/PermissionPointTest.java | 33 ++++++++ 25 files changed, 223 insertions(+), 577 deletions(-) create mode 100644 tyr-api/src/main/java/cn/axzo/tyr/client/feign/PermissionPointApi.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PermissionPointController.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserController.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserResource.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/repository/UserDao.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/user/User.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/UserMapper.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionPointService.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/converter/UserConverter.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/NewUserDTO.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UpdateUserDTO.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO1.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/response/user/UserVO.java create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/user/UserService.java delete mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/service/user/impl/UserServiceImpl.java create mode 100644 tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PermissionPointApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PermissionPointApi.java new file mode 100644 index 00000000..c39772f4 --- /dev/null +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PermissionPointApi.java @@ -0,0 +1,24 @@ +package cn.axzo.tyr.client.feign; + +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; + +/** + * 权限点API接口 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/9/6 14:48 + */ +@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://localhost:8899}") +public interface PermissionPointApi { + + /** 查询权限点树形节点 **/ + @PostMapping(value = "/api/v1/permissionPoint/listTreeNodes") + ApiResult> listTreeNodes(PermissionPointTreeQueryReq request); +} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointDTO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointDTO.java index d4b8f613..bec51d28 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointDTO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointDTO.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.client.model.permission; +import lombok.Data; + import java.time.LocalDateTime; /** @@ -9,6 +11,7 @@ import java.time.LocalDateTime; * @author: ZhanSiHu * @date: 2023/9/5 15:50 */ +@Data public class PermissionPointDTO { /** @@ -68,7 +71,7 @@ public class PermissionPointDTO { private Integer sort; /** - * 菜单适用于平台 0:企业工作台 1:项目工作台 + * 菜单适用工作台 */ private String terminal; diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java index 312b79e3..469123e1 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeNode.java @@ -1,5 +1,7 @@ package cn.axzo.tyr.client.model.permission; +import lombok.Data; + import java.util.List; /** @@ -9,6 +11,7 @@ import java.util.List; * @author: ZhanSiHu * @date: 2023/9/5 15:20 */ +@Data public class PermissionPointTreeNode { /** 权限点ID **/ private Long permissionPointId; diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java index 66a994cd..f1f01d56 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/permission/PermissionPointTreeQueryReq.java @@ -2,6 +2,8 @@ package cn.axzo.tyr.client.model.permission; import lombok.Data; +import java.util.List; + /** * 权限点树形查询请求参数 * @@ -20,4 +22,7 @@ public class PermissionPointTreeQueryReq { /** 权限点父级ID - 用于查询子节点 **/ private Long parentId; + + /** 权限点所属工作台 **/ + private List terminalList; } diff --git a/tyr-server/pom.xml b/tyr-server/pom.xml index a416ea86..8ea77f14 100644 --- a/tyr-server/pom.xml +++ b/tyr-server/pom.xml @@ -20,6 +20,13 @@ + + + cn.axzo.tyr + tyr-api + ${project.version} + + cn.axzo.framework axzo-web-spring-boot-starter @@ -36,16 +43,21 @@ cn.axzo.framework axzo-processor-spring-boot-starter + + cn.axzo.basics + basics-common + + + + + mysql + mysql-connector-java + cn.axzo.framework axzo-mybatisplus-spring-boot-starter - - - cn.axzo.framework - axzo-swagger-yapi-spring-boot-starter - com.alibaba diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/TyrApplication.java b/tyr-server/src/main/java/cn/axzo/tyr/server/TyrApplication.java index dd5073f9..e0449744 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/TyrApplication.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/TyrApplication.java @@ -1,13 +1,44 @@ package cn.axzo.tyr.server; +import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableAsync; -@MapperScan(value = {"cn.axzo.**.mapper"}) -@SpringBootApplication +@Slf4j +@EnableAsync +@EnableDiscoveryClient +@EnableFeignClients(basePackages = { + "cn.axzo.data.collection.api", +}) +@MapperScan(value = {"cn.axzo.tyr.server.repository.mapper"}) +@SpringBootApplication(scanBasePackages = "cn.axzo") public class TyrApplication { public static void main(String[] args) { - SpringApplication.run(TyrApplication.class, args); + ConfigurableApplicationContext run = SpringApplication.run(TyrApplication.class, args); + Environment env = run.getEnvironment(); + log.info( + "--------------------------------------------------------------------------------------------------------------------\n" + + "Application 【{}】 is running on 【{}】 environment!\n" + + "Api Local: \thttp://127.0.0.1:{}\n" + + "Mysql: \t{}\t username:{}\n" + + "Redis: \t{}:{}\t database:{}\n" + + "RabbitMQ: \t{}\t username:{}", + env.getProperty("spring.application.name"), + env.getProperty("spring.profiles.active"), + env.getProperty("server.port"), + env.getProperty("spring.datasource.url"), + env.getProperty("spring.datasource.username"), + env.getProperty("spring.redis.host"), + env.getProperty("spring.redis.port"), + env.getProperty("spring.redis.database"), + env.getProperty("spring.rabbitmq.addresses"), + env.getProperty("spring.rabbitmq.username") + + "\n----------------------------------------------------------"); } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/app/package-info.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/app/package-info.java index 49e38f03..e69de29b 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/app/package-info.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/app/package-info.java @@ -1 +0,0 @@ -package cn.axzo.tyr.server.controller.app; \ No newline at end of file diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PermissionPointController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PermissionPointController.java new file mode 100644 index 00000000..c1cc1252 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PermissionPointController.java @@ -0,0 +1,33 @@ +package cn.axzo.tyr.server.controller.permission; + +import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.feign.PermissionPointApi; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; +import cn.axzo.tyr.server.service.PermissionPointService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 权限点接口实现 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/9/6 14:55 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +public class PermissionPointController implements PermissionPointApi { + + private final PermissionPointService permissionPointService; + + @Override + public ApiResult> listTreeNodes(PermissionPointTreeQueryReq request) { + + return ApiResult.ok(permissionPointService.listTreeNodes(request)); + } +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserController.java deleted file mode 100644 index 7ce449bd..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserController.java +++ /dev/null @@ -1,76 +0,0 @@ -package cn.axzo.tyr.server.controller.web; - -import cn.axzo.tyr.server.service.user.UserService; -import cn.axzo.tyr.server.service.dto.request.user.NewUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UpdateUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO; -import cn.axzo.tyr.server.service.dto.response.user.UserVO; -import cn.azxo.framework.common.model.CommonPageResponse; -import cn.azxo.framework.common.model.CommonResponse; -import com.github.xiaoymin.knife4j.annotations.ApiSupport; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; - -/** - * @Author: liyong.tian - * @Date: 2022/9/2 - * @Description: - */ -@Slf4j -@Api(tags = "web-用户信息接口") -@ApiSupport(author = "田立勇") -@RequestMapping("/api/v1") -@RestController -@RequiredArgsConstructor -public class UserController { - - private final UserService userService; - - @ApiOperation(value = "创建用户") - @PostMapping("/users") - public CommonResponse createUser(@Valid @RequestBody NewUserDTO dto) { - log.info("REST request to save user : {}", dto); - // 校验入参 - dto.valid(); - UserVO result = userService.create(dto); - return CommonResponse.success(result); - } - - @ApiOperation(value = "修改用户") - @PutMapping("/users/{id}") - public CommonResponse updateUser(@ApiParam("用户ID") @PathVariable Long id, - @Valid @RequestBody UpdateUserDTO dto) { - log.info("REST request to update user : {}", dto); - // 校验入参 - dto.valid(); - UserVO result = userService.update(id, dto); - return CommonResponse.success(result); - } - - @ApiOperation("获取用户列表") - @GetMapping("/users") - public CommonResponse> getUsers(@Valid UserQO userQO) { - CommonPageResponse results = userService.queryByPage(userQO); - return CommonResponse.success(results); - } - - @ApiOperation("获取用户详情") - @GetMapping("/users/{id}") - public CommonResponse getUser(@ApiParam("用户ID") @PathVariable Long id) { - UserVO result = userService.getOne(id); - return CommonResponse.success(result); - } - - @ApiOperation("删除用户") - @DeleteMapping("/users/{id}") - public CommonResponse deleteUser(@ApiParam("用户ID") @PathVariable Long id) { - userService.delete(id); - return CommonResponse.success(); - } -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserResource.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserResource.java deleted file mode 100644 index 73607e7f..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/web/UserResource.java +++ /dev/null @@ -1,78 +0,0 @@ -package cn.axzo.tyr.server.controller.web; - -import cn.axzo.framework.domain.page.PageQO; -import cn.axzo.framework.domain.page.PageResp; -import cn.axzo.framework.web.http.ApiResponse; -import cn.axzo.framework.web.http.ApiPageResponse; -import cn.axzo.tyr.server.service.dto.request.user.NewUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UpdateUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO1; -import cn.axzo.tyr.server.service.dto.response.user.UserVO; -import cn.axzo.tyr.server.service.user.UserService; -import com.github.xiaoymin.knife4j.annotations.ApiSupport; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; - -/** - * @Author: liyong.tian - * @Date: 2022/10/28 - * @Description: 新项目搭建推荐方式 - */ -@Slf4j -@Api(tags = "web-用户信息接口") -@ApiSupport(author = "田立勇") -@RequestMapping("/api/v2") -@RestController -@RequiredArgsConstructor -public class UserResource { - - private final UserService userService; - - @ApiOperation(value = "创建用户") - @PostMapping("/users") - public ApiResponse createUser(@Valid @RequestBody NewUserDTO dto) { - log.info("REST request to save user : {}", dto); - // 校验入参 - dto.valid(); - UserVO result = userService.create(dto); - return ApiResponse.ok(result); - } - - @ApiOperation(value = "修改用户") - @PutMapping("/users/{id}") - public ApiResponse updateUser(@ApiParam("用户ID") @PathVariable Long id, - @Valid @RequestBody UpdateUserDTO dto) { - log.info("REST request to update user : {}", dto); - // 校验入参 - dto.valid(); - UserVO result = userService.update(id, dto); - return ApiResponse.ok(result); - } - - @ApiOperation("获取用户列表") - @GetMapping("/users") - public ApiPageResponse getUsers(@ModelAttribute UserQO1 userQo, PageQO page) { - PageResp results = userService.find(userQo, page); - return ApiPageResponse.ok(results); - } - - @ApiOperation("获取用户详情") - @GetMapping("/users/{id}") - public ApiResponse getUser(@ApiParam("用户ID") @PathVariable Long id) { - UserVO result = userService.getOne(id); - return ApiResponse.ok(result); - } - - @ApiOperation("删除用户") - @DeleteMapping("/users/{id}") - public ApiResponse deleteUser(@ApiParam("用户ID") @PathVariable Long id) { - userService.delete(id); - return ApiResponse.ok(); - } -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/UserDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/UserDao.java deleted file mode 100644 index b0909277..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/UserDao.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.axzo.tyr.server.repository; - -import cn.axzo.framework.domain.page.PageQO; -import cn.axzo.tyr.server.repository.mapper.UserMapper; -import cn.axzo.tyr.server.service.dto.request.user.UserQO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO1; -import cn.axzo.tyr.server.repository.entity.user.User; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Repository; - -/** - * @Author: liyong.tian - * @Date: 2022/9/5 - * @Description: - */ -@Repository -@RequiredArgsConstructor -public class UserDao extends ServiceImpl { - - private final UserMapper userMapper; - - public User findById(Long id) { - return userMapper.selectById(id); - } - - public void delete(Long id) { - userMapper.deleteById(id); - } - - public IPage queryByPage(UserQO userQO) { - return userMapper.selectPage(userQO.toPage(), - Wrappers.lambdaQuery(User.class) - .eq(userQO.getId() != null, User::getId, userQO.getId()) - .like(StringUtils.isNotBlank(userQO.getName()), User::getName, userQO.getName()) - .like(StringUtils.isNotBlank(userQO.getPhone()), User::getPhone, userQO.getPhone()) - .like(StringUtils.isNotBlank(userQO.getEmail()), User::getEmail, userQO.getEmail()) - .orderByDesc(User::getCreateAt) - ); - } - - public IPage find(UserQO1 userQO, PageQO page) { - return userMapper.selectPage(page.toPage(), - Wrappers.lambdaQuery(User.class) - .eq(userQO.getId() != null, User::getId, userQO.getId()) - .like(StringUtils.isNotBlank(userQO.getName()), User::getName, userQO.getName()) - .like(StringUtils.isNotBlank(userQO.getPhone()), User::getPhone, userQO.getPhone()) - .like(StringUtils.isNotBlank(userQO.getEmail()), User::getEmail, userQO.getEmail()) - .orderByDesc(User::getCreateAt) - ); - } -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasFeature.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasFeature.java index afcc8786..174de7cc 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasFeature.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/SaasFeature.java @@ -1,8 +1,6 @@ package cn.axzo.tyr.server.repository.entity; import cn.axzo.framework.data.mybatisplus.model.BaseEntity; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Builder; @@ -10,7 +8,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.time.LocalDateTime; /** *

diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/user/User.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/user/User.java deleted file mode 100644 index 3ceee26d..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/entity/user/User.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.axzo.tyr.server.repository.entity.user; - -import cn.axzo.framework.data.mybatisplus.model.BaseEntity; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -/** - * @Author: liyong.tian - * @Date: 2022/9/5 - * @Description: - */ -@Data -@TableName("b_user") -public class User extends BaseEntity { - - private String name; - - private Integer sex; - - private Integer age; - - private String phone; - - private String email; - - private String address; -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/UserMapper.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/UserMapper.java deleted file mode 100644 index 0f0704f9..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/mapper/UserMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package cn.axzo.tyr.server.repository.mapper; - -import cn.axzo.tyr.server.repository.entity.user.User; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Mapper; - -/** - * @Author: liyong.tian - * @Date: 2022/9/5 - * @Description: - */ -@Mapper -public interface UserMapper extends BaseMapper { -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionPointService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionPointService.java new file mode 100644 index 00000000..52bcf517 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/PermissionPointService.java @@ -0,0 +1,17 @@ +package cn.axzo.tyr.server.service; + +import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; + +import java.util.List; + +/** + * 权限点服务 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/9/6 15:51 + */ +public interface PermissionPointService { + List listTreeNodes(PermissionPointTreeQueryReq request); +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/converter/UserConverter.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/converter/UserConverter.java deleted file mode 100644 index af7010d8..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/converter/UserConverter.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.axzo.tyr.server.service.converter; - -import cn.axzo.tyr.server.service.dto.request.user.NewUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UpdateUserDTO; -import cn.axzo.tyr.server.service.dto.response.user.UserVO; -import cn.axzo.tyr.server.repository.entity.user.User; -import org.mapstruct.Mapper; -import org.mapstruct.MappingTarget; - -import static org.mapstruct.NullValueCheckStrategy.ALWAYS; - -/** - * @Author: liyong.tian - * @Date: 2022/9/2 - * @Description: - */ -@Mapper( - componentModel = "spring", - nullValueCheckStrategy = ALWAYS -) -public interface UserConverter extends EntityConverter { - - User toEntity(NewUserDTO dto); - - void updateEntity(UpdateUserDTO dto, @MappingTarget User user); -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/NewUserDTO.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/NewUserDTO.java deleted file mode 100644 index 732aefe6..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/NewUserDTO.java +++ /dev/null @@ -1,44 +0,0 @@ -package cn.axzo.tyr.server.service.dto.request.user; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import org.apache.commons.lang3.StringUtils; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - -/** - * @Author: liyong.tian - * @Date: 2022/9/2 - * @Description: - */ -@Data -public class NewUserDTO { - - @ApiModelProperty(value = "名称", position = 1) - @NotBlank(message = "名称不能为空") - private String name; - - @ApiModelProperty(value = "性别", position = 2) - @NotNull - private Integer sex; - - @ApiModelProperty(value = "年龄", position = 3) - private Integer age; - - @ApiModelProperty(value = "电话", position = 4) - private String phone; - - @ApiModelProperty(value = "邮箱", position = 5) - private String email; - - @ApiModelProperty(value = "地址", position = 6) - private String address; - - public void valid() { - // 电话和邮箱不能都为空 - if (StringUtils.isEmpty(phone) && StringUtils.isEmpty(email)) { - throw new RuntimeException("电话和邮箱不能都为空"); - } - } -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UpdateUserDTO.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UpdateUserDTO.java deleted file mode 100644 index bec543a7..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UpdateUserDTO.java +++ /dev/null @@ -1,47 +0,0 @@ -package cn.axzo.tyr.server.service.dto.request.user; - -import cn.axzo.framework.domain.web.ApiException; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import org.apache.commons.lang3.StringUtils; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - -import static cn.axzo.tyr.server.common.enums.ErrorCode.USER_PHONE_EMAIL_IS_NULL; - -/** - * @Author: liyong.tian - * @Date: 2022/9/5 - * @Description: - */ -@Data -public class UpdateUserDTO { - - @ApiModelProperty(value = "名称", position = 1) - @NotBlank(message = "名称不能为空") - private String name; - - @ApiModelProperty(value = "性别", position = 2) - @NotNull - private Integer sex; - - @ApiModelProperty(value = "年龄", position = 3) - private Integer age; - - @ApiModelProperty(value = "电话", position = 4) - private String phone; - - @ApiModelProperty(value = "邮箱", position = 5) - private String email; - - @ApiModelProperty(value = "地址", position = 6) - private String address; - - public void valid() { - // 电话和邮箱不能都为空 - if (StringUtils.isEmpty(phone) && StringUtils.isEmpty(email)) { - throw new ApiException(USER_PHONE_EMAIL_IS_NULL); - } - } -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO.java deleted file mode 100644 index 090a549b..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.axzo.tyr.server.service.dto.request.user; - -import cn.axzo.framework.domain.page.PageQO; -import io.swagger.annotations.ApiParam; -import lombok.Data; - -/** - * @Author: liyong.tian - * @Date: 2022/9/5 - * @Description: - */ -@Data -public class UserQO extends PageQO { - - @ApiParam("主键") - private Long id; - - @ApiParam("姓名") - private String name; - - @ApiParam("手机") - private String phone; - - @ApiParam("邮箱") - private String email; -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO1.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO1.java deleted file mode 100644 index 09c4dac5..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/request/user/UserQO1.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.axzo.tyr.server.service.dto.request.user; - -import cn.axzo.framework.domain.page.PageQO; -import io.swagger.annotations.ApiParam; -import lombok.Data; - -/** - * @Author: liyong.tian - * @Date: 2022/9/5 - * @Description: - */ -@Data -public class UserQO1 { - - @ApiParam("主键") - private Long id; - - @ApiParam("姓名") - private String name; - - @ApiParam("手机") - private String phone; - - @ApiParam("邮箱") - private String email; -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/response/user/UserVO.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/response/user/UserVO.java deleted file mode 100644 index 8317e4cd..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/dto/response/user/UserVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package cn.axzo.tyr.server.service.dto.response.user; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * @Author: liyong.tian - * @Date: 2022/9/2 - * @Description: - */ -@Data -public class UserVO { - - @ApiModelProperty(value = "id", position = 1) - private Long id; - - @ApiModelProperty(value = "名称", position = 2) - private String name; - - @ApiModelProperty(value = "性别", position = 3) - private Integer sex; - - @ApiModelProperty(value = "年龄", position = 4) - private Integer age; - - @ApiModelProperty(value = "电话", position = 5) - private String phone; - - @ApiModelProperty(value = "邮箱", position = 6) - private String email; - - @ApiModelProperty(value = "地址", position = 7) - private String address; -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java new file mode 100644 index 00000000..fc1ead2d --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/PermissionPointServiceImpl.java @@ -0,0 +1,53 @@ +package cn.axzo.tyr.server.service.impl; + +import cn.axzo.basics.common.BeanMapper; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeNode; +import cn.axzo.tyr.client.model.permission.PermissionPointTreeQueryReq; +import cn.axzo.tyr.server.repository.entity.SaasFeature; +import cn.axzo.tyr.server.repository.service.SaasFeatureDao; +import cn.axzo.tyr.server.service.PermissionPointService; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 权限点服务实现 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/9/6 15:51 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PermissionPointServiceImpl implements PermissionPointService { + private final SaasFeatureDao saasFeatureDao; + + @Override + public List listTreeNodes(PermissionPointTreeQueryReq request) { + List list = saasFeatureDao.list(new LambdaQueryWrapper() + .eq(Objects.isNull(request.getDelegateType()), SaasFeature::getDelegatedType, request.getDelegateType()) + .eq(Objects.isNull(request.getParentId()), SaasFeature::getParentId, request.getParentId()) + .in(CollectionUtil.isEmpty(request.getTerminalList()), SaasFeature::getTerminal, request.getTerminalList()) + ); + return list.stream().map(this::feature2Node).collect(Collectors.toList()); + } + + private PermissionPointTreeNode feature2Node(SaasFeature feature) { + PermissionPointTreeNode node = new PermissionPointTreeNode(); + node.setPermissionPointId(feature.getId()); + node.setPermissionName(feature.getFeatureName()); + node.setParentId(feature.getParentId()); + node.setTerminal(feature.getTerminal()); + return node; + } + + +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/user/UserService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/user/UserService.java deleted file mode 100644 index 1cffffb4..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/user/UserService.java +++ /dev/null @@ -1,29 +0,0 @@ -package cn.axzo.tyr.server.service.user; - -import cn.axzo.framework.domain.page.PageQO; -import cn.axzo.framework.domain.page.PageResp; -import cn.axzo.tyr.server.service.dto.request.user.NewUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UpdateUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO1; -import cn.axzo.tyr.server.service.dto.response.user.UserVO; -import cn.azxo.framework.common.model.CommonPageResponse; - -/** - * @Author: liyong.tian - * @Date: 2022/9/2 - * @Description: - */ -public interface UserService { - UserVO create(NewUserDTO dto); - - UserVO update(Long id, UpdateUserDTO dto); - - UserVO getOne(Long id); - - void delete(Long id); - - CommonPageResponse queryByPage(UserQO userQO); - - PageResp find(UserQO1 userQo, PageQO page); -} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/user/impl/UserServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/user/impl/UserServiceImpl.java deleted file mode 100644 index 56fae11d..00000000 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/user/impl/UserServiceImpl.java +++ /dev/null @@ -1,82 +0,0 @@ -package cn.axzo.tyr.server.service.user.impl; - -import cn.axzo.framework.domain.page.PageQO; -import cn.axzo.framework.domain.page.PageResp; -import cn.axzo.framework.domain.web.ApiException; -import cn.axzo.tyr.server.common.enums.ErrorCode; -import cn.axzo.tyr.server.service.dto.request.user.NewUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UpdateUserDTO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO; -import cn.axzo.tyr.server.service.dto.request.user.UserQO1; -import cn.axzo.tyr.server.service.dto.response.user.UserVO; -import cn.axzo.tyr.server.repository.entity.user.User; -import cn.axzo.tyr.server.repository.UserDao; -import cn.axzo.tyr.server.service.user.UserService; -import cn.axzo.tyr.server.service.converter.UserConverter; -import cn.azxo.framework.common.model.CommonPageResponse; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @Author: liyong.tian - * @Date: 2022/9/2 - * @Description: - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class UserServiceImpl implements UserService { - - private final UserConverter userConverter; - - private final UserDao userDao; - - @Override - public UserVO create(NewUserDTO dto) { - User user = userConverter.toEntity(dto); - userDao.save(user); - return userConverter.toVo(user); - } - - @Override - public UserVO update(Long id, UpdateUserDTO dto) { - User user = userDao.findById(id); - if (user == null) { - throw new ApiException(ErrorCode.USER_NOT_EXISTS, id); - } - userConverter.updateEntity(dto, user); - return userConverter.toVo(user); - } - - @Override - public UserVO getOne(Long id) { - User user = userDao.findById(id); - return userConverter.toVo(user); - } - - @Override - public void delete(Long id) { - userDao.delete(id); - } - - @Override - public CommonPageResponse queryByPage(UserQO userQo) { - IPage page = userDao.queryByPage(userQo); - List userList = page.getRecords(); - if (CollectionUtils.isEmpty(userList)) { - return CommonPageResponse.zero(userQo.getPage(), userQo.getPageSize()); - } - return new CommonPageResponse<>(page.getCurrent(), page.getSize(), page.getTotal(), userConverter.toVo(page.getRecords())); - } - - @Override - public PageResp find(UserQO1 userQo, PageQO page) { - IPage userPage = userDao.find(userQo, page); - return PageResp.list(userPage, userConverter.toVo(userPage.getRecords())); - } -} diff --git a/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java b/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java new file mode 100644 index 00000000..1a4ba03b --- /dev/null +++ b/tyr-server/src/test/java/cn/axzo/tyr/server/permission/PermissionPointTest.java @@ -0,0 +1,33 @@ +package cn.axzo.tyr.server.permission; + +import cn.axzo.tyr.server.controller.permission.PermissionPointController; +import cn.axzo.tyr.server.repository.entity.SaasFeature; +import cn.axzo.tyr.server.repository.service.SaasFeatureDao; +import com.alibaba.fastjson.JSON; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.Arrays; +import java.util.List; + +/** + * 权限点测试 + * + * @version V1.0 + * @author: ZhanSiHu + * @date: 2023/9/6 14:59 + */ +@SpringBootTest +public class PermissionPointTest { + @Autowired + private PermissionPointController controller; + @Autowired + private SaasFeatureDao saasFeatureDao; + + @Test + public void testList() { + List saasFeatures = saasFeatureDao.listByIds(Arrays.asList(206L, 207L, 208L)); + System.out.println(JSON.toJSONString(saasFeatures)); + } +}