feat(REQ-3488): 单位联系人接口定义

This commit is contained in:
songyuanlun 2024-12-31 17:50:59 +08:00
parent 60879a7822
commit a430394912
7 changed files with 271 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package cn.axzo.orgmanax.api.contact;
import cn.axzo.foundation.page.PageResp;
import cn.axzo.foundation.result.ApiResult;
import cn.axzo.orgmanax.dto.unit.contact.req.OperateOrgContactReq;
import cn.axzo.orgmanax.dto.unit.contact.req.PageOrgContactReq;
import cn.axzo.orgmanax.dto.unit.contact.req.SaveBatchOrgContactReq;
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitContactDTO;
import java.util.List;
import javax.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* 组织联系人api
*/
@FeignClient(
value = "orgmanax",
url = "${axzo.service.orgmanax:http://orgmanax:8080}")
public interface OrgContactApi {
/**
* 批量新增单位联系人
*/
@PostMapping("/api/unit/contact/save-batch")
ApiResult<List<OrgUnitContactDTO>> saveBatch(@RequestBody @Valid SaveBatchOrgContactReq req);
/**
* 编辑单位联系人 or 删除单位联系人
*/
@PostMapping("/api/unit/contact/update")
ApiResult<OrgUnitContactDTO> update(@RequestBody @Valid OperateOrgContactReq req);
/**
* 分页获取单位联系人列表
*
* @param req
* @return
*/
@PostMapping("/api/unit/contact/page")
ApiResult<PageResp<OrgUnitContactDTO>> page(@RequestBody @Valid PageOrgContactReq req);
}

View File

@ -0,0 +1,35 @@
package cn.axzo.orgmanax.dto.unit.contact.enums;
import java.util.Arrays;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author syl
* @date 2024/12/31
*/
@Getter
@AllArgsConstructor
public enum ContactOperateEnum {
/**
* 编辑联系人
*/
UPDATE(1, "编辑联系人"),
/**
* 删除联系人
*/
DELETE(2, "删除联系人"),
;
private final Integer code;
private final String desc;
public static ContactOperateEnum getByCode(Integer code) {
return Arrays.stream(values()).filter(it -> it.getCode().equals(code))
.findFirst()
.orElse(null);
}
}

View File

@ -0,0 +1,68 @@
package cn.axzo.orgmanax.dto.unit.contact.req;
import cn.axzo.orgmanax.dto.unit.contact.enums.ContactOperateEnum;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
/**
* 编辑单位联系人
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OperateOrgContactReq {
/**
* 操作类型
*/
@NotNull(message = "操作类型不能为空")
private ContactOperateEnum operateEnum;
/**
* 联系人id
*/
@NotNull(message = "联系人id不能为空")
private Long id;
/**
* 单位id
*/
// @NotNull(message = "联系人所属单位不能为空")
private Long organizationalUnitId;
/**
* 联系人姓名
*/
// @NotBlank(message = "联系人姓名不能为空")
private String name;
/**
* 联系人手机号码
*/
// @NotBlank(message = "联系人手机号码不能为空")
@Pattern(regexp = "^1\\d{10}$", message = "手机号格式不正确")
private String phone;
/**
* 联系人职务
*/
// @NotBlank(message = "联系人职务不能为空")
@Length(max = 20, message = "职位名字最长为20个字符")
private String position;
/**
* 备注
*/
private String memo;
/**
* 操作人ID
*/
private Long operatorId;
}

View File

@ -0,0 +1,35 @@
package cn.axzo.orgmanax.dto.unit.contact.req;
import cn.axzo.foundation.page.PageReqV2;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* @author syl
* @date 2024/12/16
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageOrgContactReq extends PageReqV2 {
/**
* 联系人ID
*/
private Long contactId;
/**
* 单位id
*/
private Long unitId;
/**
* 手机号码
*/
// TODO 注意这个现在还是明文需要修改 需要咨询陈文健
private String phone;
}

View File

@ -0,0 +1,31 @@
package cn.axzo.orgmanax.dto.unit.contact.req;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author syl
* @date 2024/12/16
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaveBatchOrgContactReq {
/**
* 单位联系人列表
*/
@Valid
@NotEmpty(message = "单位联系人列表不能为空")
private List<SaveOrgContactReq> contacts;
/**
* 操作人ID
*/
private Long operatorId;
}

View File

@ -0,0 +1,52 @@
package cn.axzo.orgmanax.dto.unit.contact.req;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
/**
* 新增单位联系人
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaveOrgContactReq {
/**
* 单位id
*/
@NotNull(message = "联系人所属单位不能为空")
private Long organizationalUnitId;
/**
* 联系人姓名
*/
@NotBlank(message = "联系人姓名不能为空")
private String name;
/**
* 联系人手机号码
*/
@NotBlank(message = "联系人手机号码不能为空")
//数据清洗暂时屏蔽
//@Pattern(regexp = "^1\\d{10}$", message = "手机号格式不正确")
private String phone;
/**
* 联系人职务
*/
// @NotBlank(message = "联系人职务不能为空")
@Length(max = 20, message = "职位名字最长为20个字符")
private String position;
/**
* 备注
*/
// @NotBlank(message = "备注不能为空")
private String memo;
}

View File

@ -38,6 +38,12 @@ public class OrgUnitContactDTO implements Serializable {
*/
private String phoneEncode;
/**
* 联系人手机号码
* // todo 实际使用时看是否使用
*/
private String phoneDecode;
/**
* 联系人职务
*/