字典接口定义

This commit is contained in:
chenwenjian 2023-09-08 16:01:36 +08:00
parent 2df098dd53
commit 5194d7fbbf
26 changed files with 380 additions and 596 deletions

View File

@ -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();
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -0,0 +1 @@
package cn.axzo.tyr.client.common.util;

View File

@ -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;
}
}

View File

@ -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")

View File

@ -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;
/**
* 字典名称
*/

View File

@ -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>

View File

@ -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;
}

View File

@ -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>

View File

@ -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~93位项目编号(首位不能为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";
}
}

View File

@ -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;
}
}

View File

@ -1 +0,0 @@
package cn.axzo.tyr.server.common.util;

View File

@ -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;
}
}

View File

@ -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> {
}

View File

@ -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)
);
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -13,4 +13,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface SaasBasicDictMapper extends BaseMapper<SaasBasicDict> {
}

View File

@ -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> {
}

View File

@ -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("电话和邮箱不能都为空");
}
}
}

View File

@ -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);
}
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}