字典接口定义
This commit is contained in:
parent
2df098dd53
commit
5194d7fbbf
@ -0,0 +1,28 @@
|
||||
package cn.axzo.tyr.client.common.annotation;
|
||||
|
||||
import cn.axzo.tyr.client.common.validator.EnumValueValidator;
|
||||
|
||||
import javax.validation.Constraint;
|
||||
import javax.validation.Payload;
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/8/29 18:31
|
||||
* @description:
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Documented
|
||||
@Constraint(validatedBy = EnumValueValidator.class)
|
||||
@Target({ElementType.FIELD, ElementType.PARAMETER})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface EnumValidator {
|
||||
String message() default "Value is not valid";
|
||||
|
||||
Class<?>[] groups() default {};
|
||||
|
||||
Class<? extends Payload>[] payload() default {};
|
||||
|
||||
Class<? extends Enum<?>> enumClass();
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
package cn.axzo.tyr.client.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/9/8 15:12
|
||||
* @description: 字典type字段枚举
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
|
||||
public enum DictTypeFiledEnum {
|
||||
|
||||
/**
|
||||
* 企业类型
|
||||
*/
|
||||
OUTYPE("ou_type","企业类型"),
|
||||
|
||||
/**
|
||||
* 端
|
||||
*/
|
||||
TERMINAL("terminal","端"),
|
||||
|
||||
/**
|
||||
* 工作台
|
||||
*/
|
||||
WORKSPACE("workspace","工作台")
|
||||
;
|
||||
|
||||
private final String value;
|
||||
|
||||
private final String description;
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
DictTypeFiledEnum(String value, String description) {
|
||||
this.value = value;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过value值获取枚举类型
|
||||
*
|
||||
* @param value value值
|
||||
* @return
|
||||
*/
|
||||
public static DictTypeFiledEnum getByValue(String value) {
|
||||
return Arrays.stream(values()).filter(l -> l.getValue().equals(value)).findFirst().orElse(null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
package cn.axzo.tyr.client.common.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/9/8 14:21
|
||||
* @description: 字典工作台类型枚举
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
public enum DictWorkSpaceTypeEnum {
|
||||
|
||||
/**
|
||||
* 企业工作台
|
||||
*/
|
||||
ENT("ent", "企业工作台"),
|
||||
|
||||
/**
|
||||
* 项目部工作台
|
||||
*/
|
||||
PROJ("proj", "项目部工作台"),
|
||||
|
||||
/**
|
||||
* OMS工作台
|
||||
*/
|
||||
OMS("oms", "OMS工作台");
|
||||
|
||||
private final String value;
|
||||
|
||||
private final String description;
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
DictWorkSpaceTypeEnum(String value, String description) {
|
||||
this.value = value;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过value值获取枚举类型
|
||||
*
|
||||
* @param value value值
|
||||
* @return
|
||||
*/
|
||||
public static DictWorkSpaceTypeEnum getByValue(String value) {
|
||||
return Arrays.stream(values()).filter(l -> l.getValue().equals(value)).findFirst().orElse(null);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
package cn.axzo.tyr.client.common.util;
|
||||
@ -0,0 +1,34 @@
|
||||
package cn.axzo.tyr.client.common.validator;
|
||||
|
||||
|
||||
import cn.axzo.tyr.client.common.annotation.EnumValidator;
|
||||
|
||||
import javax.validation.ConstraintValidator;
|
||||
import javax.validation.ConstraintValidatorContext;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/8/29 18:24
|
||||
* @description:
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class EnumValueValidator implements ConstraintValidator<EnumValidator, Enum<?>> {
|
||||
|
||||
@Override
|
||||
public boolean isValid(Enum<?> value, ConstraintValidatorContext context) {
|
||||
if (value == null) {
|
||||
return true;
|
||||
}
|
||||
Class<? extends Enum<?>> enumClass = value.getDeclaringClass();
|
||||
Enum<?>[] enumValues = enumClass.getEnumConstants();
|
||||
for (Enum<?> enumValue : enumValues) {
|
||||
if (enumValue.name().equals(value.name())) {
|
||||
// 找到匹配的枚举值
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// 未找到匹配的枚举值
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1,9 +1,11 @@
|
||||
package cn.axzo.tyr.client.feign;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.model.dict.request.*;
|
||||
import cn.axzo.tyr.client.model.dict.request.BasicDictCreateReq;
|
||||
import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq;
|
||||
import cn.axzo.tyr.client.model.dict.request.BasicDictUpdateReq;
|
||||
import cn.axzo.tyr.client.model.dict.request.BasicDictUpdateStatusReq;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
@ -19,31 +21,12 @@ import java.util.List;
|
||||
* @version: 1.0
|
||||
*/
|
||||
@FeignClient(name = "tyr", url = "http://tyr:8080")
|
||||
public interface BasicDictApi {
|
||||
public interface SaasBasicDictApi {
|
||||
|
||||
/**
|
||||
* 通过workspace和type获取字典节点列表
|
||||
* 获取字典树所有节点
|
||||
*
|
||||
* @param req 包含workspace和type两个字段
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("api/dict/get-by-type")
|
||||
ApiResult<List<BasicDictNodeResp>> getDictByType(@RequestBody BasicDictNodeReq req);
|
||||
|
||||
|
||||
/**
|
||||
* 获取字典树(树形结构,无需自行组装)
|
||||
*
|
||||
* @param req 当不进行筛选时不传
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("api/dict/get-tree")
|
||||
ApiResult<List<BasicDictTreeResp>> getBasicDictTree(@RequestBody BasicDictQueryReq req);
|
||||
|
||||
/**
|
||||
* 获取字典树所有节点(列表结构,需自行组装成树)
|
||||
*
|
||||
* @param req
|
||||
* @param req 根据自身需求传入参数
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("api/dict/node-list")
|
||||
@ -1,5 +1,8 @@
|
||||
package cn.axzo.tyr.client.model.dict.request;
|
||||
|
||||
import cn.axzo.tyr.client.common.annotation.EnumValidator;
|
||||
import cn.axzo.tyr.client.common.enums.DictTypeFiledEnum;
|
||||
import cn.axzo.tyr.client.common.enums.DictWorkSpaceTypeEnum;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
@ -12,6 +15,20 @@ import lombok.Data;
|
||||
@Data
|
||||
public class BasicDictQueryReq {
|
||||
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* workspace
|
||||
*/
|
||||
@EnumValidator(enumClass = DictWorkSpaceTypeEnum.class, message = "枚举类型错误")
|
||||
private DictWorkSpaceTypeEnum workspaceType;
|
||||
|
||||
/**
|
||||
* type
|
||||
*/
|
||||
@EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误")
|
||||
private DictTypeFiledEnum type;
|
||||
|
||||
/**
|
||||
* 字典名称
|
||||
*/
|
||||
|
||||
@ -1,181 +0,0 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>cn.axzo.yoke</groupId>
|
||||
<artifactId>yoke</artifactId>
|
||||
<version>${revision}</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>yoke-server</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>yoke-server</name>
|
||||
|
||||
<properties>
|
||||
<org.projectlombok.version>1.18.16</org.projectlombok.version>
|
||||
<org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
|
||||
<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
|
||||
</properties>
|
||||
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.framework</groupId>
|
||||
<artifactId>axzo-web-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.framework</groupId>
|
||||
<artifactId>axzo-auth-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.framework</groupId>
|
||||
<artifactId>axzo-logger-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.maokai</groupId>
|
||||
<artifactId>maokai-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate.validator</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.mns</groupId>
|
||||
<artifactId>mns-http-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.basics</groupId>
|
||||
<artifactId>basics-profiles-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.apollo</groupId>
|
||||
<artifactId>apollo-workspace-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.third</groupId>
|
||||
<artifactId>third-party-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.thrones</groupId>
|
||||
<artifactId>thrones-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.basics</groupId>
|
||||
<artifactId>basics-auth-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.trade</groupId>
|
||||
<artifactId>trade-dingtalk</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.trade</groupId>
|
||||
<artifactId>trade-data-security-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.pokonyan</groupId>
|
||||
<artifactId>pokonyan</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.github.openfeign</groupId>
|
||||
<artifactId>feign-httpclient</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.outman</groupId>
|
||||
<artifactId>outman-http-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.pudge</groupId>
|
||||
<artifactId>pudge-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.msgcenter</groupId>
|
||||
<artifactId>msgcenter-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.pluto</groupId>
|
||||
<artifactId>pluto-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.axzo.nanopart</groupId>
|
||||
<artifactId>black-list-api</artifactId>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>dingtalk</artifactId>
|
||||
<version>2.0.14</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>yoke</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${org.projectlombok.version}</version>
|
||||
</path>
|
||||
<!-- This is needed when using Lombok 1.18.16 and above -->
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||
<version>${lombok-mapstruct-binding.version}</version>
|
||||
</path>
|
||||
<!-- Mapstruct should follow the lombok path(s) -->
|
||||
<path>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>${org.mapstruct.version}</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@ -36,6 +36,11 @@ public class BasicDictNodeResp {
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 唯一code
|
||||
*/
|
||||
private String uniqueCode;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ -45,4 +50,15 @@ public class BasicDictNodeResp {
|
||||
* 路径
|
||||
*/
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 层级
|
||||
*/
|
||||
private Integer level;
|
||||
|
||||
/**
|
||||
* 扩展字段
|
||||
*/
|
||||
private String ext;
|
||||
|
||||
}
|
||||
|
||||
@ -50,5 +50,11 @@
|
||||
<groupId>cn.axzo.framework</groupId>
|
||||
<artifactId>axzo-logger-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.axzo.tyr</groupId>
|
||||
<artifactId>tyr-api</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
package cn.axzo.tyr.server.common.enums;
|
||||
|
||||
import cn.axzo.framework.domain.web.code.IProjectRespCode;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Author: liyong.tian
|
||||
* @Date: 2022/9/5
|
||||
* @Description: 响应码规范:一共8位,取值范围0~9,3位项目编号(首位不能为0)+2位模块编号+3位自定义编号
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum ErrorCode implements IProjectRespCode {
|
||||
|
||||
USER_NOT_EXISTS("01001", "用户不存在,id=%s"),
|
||||
USER_PHONE_EMAIL_IS_NULL("01002", "电话和邮箱不能都为空");
|
||||
|
||||
private String code;
|
||||
private String message;
|
||||
|
||||
@Override
|
||||
public String getProjectCode() {
|
||||
// 根据不同项目进行项目编码调整,可联系框架组获取项目编号(首位不能为0)
|
||||
return "100";
|
||||
}
|
||||
}
|
||||
@ -1,88 +0,0 @@
|
||||
package cn.axzo.tyr.server.common.enums;
|
||||
|
||||
/**
|
||||
* @Author: liyong.tian
|
||||
* @Date: 2022/9/5
|
||||
* @Description:
|
||||
*/
|
||||
public enum ResultCode {
|
||||
/**
|
||||
* 成功 [GET]
|
||||
*/
|
||||
SUCCESS(200),
|
||||
/**
|
||||
* [POST/PUT/PATCH] 用户新建或修改数据成功
|
||||
*/
|
||||
CREATED(201),
|
||||
/**
|
||||
* [*] 标识一个请求已经进入后台排队 (异步任务)
|
||||
*/
|
||||
ACCEPTED(202),
|
||||
/**
|
||||
* [DELETE]: 用户删除数据成功
|
||||
*/
|
||||
NO_CONTENT(204),
|
||||
/**
|
||||
* [POST/PUT/PATCH] 用户发出的请求有错误, 服务器没有进行新建或修改数据的操作, 该操作是幂等的.
|
||||
*/
|
||||
FAIL(400),
|
||||
/**
|
||||
* [*] 标识没有权限 (令牌、用户名、密码错误)
|
||||
*/
|
||||
UNAUTHORIZED(401),
|
||||
/**
|
||||
* [*] 标识用户得到授权(与401错误相对), 但是访问是被禁止的
|
||||
*/
|
||||
FORBIDDEN(403),
|
||||
/**
|
||||
* [*] 用户发出的请求针对的是不存在的记录, 服务器没有进行操作
|
||||
*/
|
||||
NOT_FOUND(404),
|
||||
/**
|
||||
* [GET] 用户请求的格式不可得 (比如用户请求JSON格式, 但是只有XML格式)
|
||||
*/
|
||||
NOT_ACCEPTABLE(406),
|
||||
/**
|
||||
* [GET] 用户请求的资源被永久删除, 且不会再得到
|
||||
*/
|
||||
GONE(410),
|
||||
/**
|
||||
* [POST/PUT/PATCH] 当创建一个对象时, 发生一个验证错误646
|
||||
*/
|
||||
UNPROCESSABLE_ENTITY(422),
|
||||
/**
|
||||
* 服务器内部错误
|
||||
*/
|
||||
INTERNAL_SERVER_ERROR(9999),
|
||||
/**
|
||||
* 通用业务异常
|
||||
*/
|
||||
SERVICE_EXCEPTION_ERROR(9998),
|
||||
|
||||
/**
|
||||
* ####业务的响应码####
|
||||
* 按业务依次划分 :
|
||||
* 一共6位, 第6位是业务代码 第1-5位响应码, 按业务不同码不同
|
||||
* #100000 全局级别
|
||||
*/
|
||||
|
||||
/**
|
||||
* 100001 当前用户被强制下线
|
||||
*/
|
||||
CUSTOM_100001(100001),
|
||||
/**
|
||||
* 确认弹窗响应码
|
||||
*/
|
||||
CUSTOM_100002(100002);
|
||||
|
||||
public int code;
|
||||
|
||||
ResultCode(int code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
package cn.axzo.tyr.server.common.util;
|
||||
@ -0,0 +1,54 @@
|
||||
package cn.axzo.tyr.server.controller;
|
||||
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.tyr.client.feign.SaasBasicDictApi;
|
||||
import cn.axzo.tyr.client.model.dict.request.*;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
|
||||
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
|
||||
import cn.axzo.tyr.server.service.SaasBasicDictService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/9/8 14:32
|
||||
* @description:
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class SaasBasicDictController implements SaasBasicDictApi {
|
||||
|
||||
private final SaasBasicDictService saasBasicDictService;
|
||||
|
||||
|
||||
@Override
|
||||
public ApiResult<List<BasicDictTreeResp>> getBasicDictTree(BasicDictQueryReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<BasicDictNodeResp>> getBasicDictNodeList(BasicDictQueryReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Long> create(BasicDictCreateReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Boolean> update(BasicDictUpdateReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Boolean> updateStatus(BasicDictUpdateStatusReq req) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -13,5 +13,6 @@ import org.springframework.stereotype.Service;
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Service
|
||||
public class SaasBasicDictDao extends ServiceImpl<SaasBasicDictMapper,SaasBasicDict> {
|
||||
public class SaasBasicDictDao extends ServiceImpl<SaasBasicDictMapper, SaasBasicDict> {
|
||||
|
||||
}
|
||||
|
||||
@ -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<UserMapper, User> {
|
||||
|
||||
private final UserMapper userMapper;
|
||||
|
||||
public User findById(Long id) {
|
||||
return userMapper.selectById(id);
|
||||
}
|
||||
|
||||
public void delete(Long id) {
|
||||
userMapper.deleteById(id);
|
||||
}
|
||||
|
||||
public IPage<User> 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<User> 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)
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,19 +1,97 @@
|
||||
package cn.axzo.tyr.server.repository.entity;
|
||||
|
||||
import cn.axzo.framework.data.mybatisplus.model.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/9/7 17:39
|
||||
* @description:
|
||||
* @description: 字典实体类
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName("saas_basic_dict")
|
||||
public class SaasBasicDict extends BaseEntity<SaasBasicDict> implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 100L;
|
||||
|
||||
/**
|
||||
* 父节点id
|
||||
*/
|
||||
@TableField(value = "parent_id")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 工作台类型,"ent", "proj", "oms"
|
||||
*/
|
||||
@TableField(value = "workspace_type")
|
||||
private String workspaceType;
|
||||
|
||||
/**
|
||||
* 类型,"ouType", "terminal"
|
||||
*/
|
||||
@TableField(value = "type")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
@TableField(value = "name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* code
|
||||
*/
|
||||
@TableField(value = "code")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 唯一code
|
||||
*/
|
||||
@TableField(value = "unique_code")
|
||||
private String uniqueCode;
|
||||
|
||||
/**
|
||||
* 状态,0禁用,1启用
|
||||
*/
|
||||
@TableField(value = "status")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@TableField(value = "sort")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 层级
|
||||
*/
|
||||
@TableField(value = "level")
|
||||
private Integer level;
|
||||
|
||||
/**
|
||||
* 路径
|
||||
*/
|
||||
@TableField(value = "path")
|
||||
private String path;
|
||||
|
||||
/**
|
||||
* 扩展信息
|
||||
*/
|
||||
@TableField(value = "ex", typeHandler = JacksonTypeHandler.class)
|
||||
private Map<String, String> ext;
|
||||
|
||||
}
|
||||
|
||||
@ -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<User> {
|
||||
|
||||
private String name;
|
||||
|
||||
private Integer sex;
|
||||
|
||||
private Integer age;
|
||||
|
||||
private String phone;
|
||||
|
||||
private String email;
|
||||
|
||||
private String address;
|
||||
}
|
||||
@ -13,4 +13,5 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
*/
|
||||
@Mapper
|
||||
public interface SaasBasicDictMapper extends BaseMapper<SaasBasicDict> {
|
||||
|
||||
}
|
||||
|
||||
@ -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<User> {
|
||||
}
|
||||
@ -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("电话和邮箱不能都为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.tyr.server.repository.SaasBasicDictDao;
|
||||
import cn.axzo.tyr.server.service.SaasBasicDictService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author: chenwenjian
|
||||
* @date: 2023/9/8 15:40
|
||||
* @description:
|
||||
* @modifiedBy:
|
||||
* @version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class SaasBasicDictServiceImpl implements SaasBasicDictService {
|
||||
|
||||
private final SaasBasicDictDao saasBasicDictDao;
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user