feat(REQ-3488): 实现单位联系人新增\删除 查询接口
This commit is contained in:
parent
b45c32ca74
commit
2734288c63
@ -1,44 +0,0 @@
|
||||
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);
|
||||
|
||||
}
|
||||
@ -1,14 +1,16 @@
|
||||
package cn.axzo.orgmanax.api.unit.feign;
|
||||
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.foundation.result.ApiResult;
|
||||
import cn.axzo.orgmanax.dto.unit.req.CreateUnitContactReq;
|
||||
import cn.axzo.orgmanax.dto.unit.resp.CreateUnitContactResp;
|
||||
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 org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -26,9 +28,23 @@ public interface OrgUnitContactApi {
|
||||
ApiResult<List<OrgUnitContactDTO>> list(@RequestBody List<Long> ouIds);
|
||||
|
||||
/**
|
||||
* 批量创建单位联系人
|
||||
* 批量新增单位联系人
|
||||
*/
|
||||
@PostMapping("/api/org/unit/contact/create")
|
||||
ApiResult<List<CreateUnitContactResp>> create(@RequestBody @Validated List<CreateUnitContactReq> contactReqList);
|
||||
@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);
|
||||
}
|
||||
@ -1,14 +1,15 @@
|
||||
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;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Pattern;
|
||||
|
||||
/**
|
||||
* 编辑单位联系人
|
||||
*/
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
package cn.axzo.orgmanax.infra.dao.unit.repository;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalContact;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UnitContactUpsertRepository {
|
||||
|
||||
/**
|
||||
* 创建联系人
|
||||
*
|
||||
* @param organizationalContact organizationalContact
|
||||
*/
|
||||
void save(OrganizationalContact organizationalContact);
|
||||
|
||||
/**
|
||||
* 批量创建联系人
|
||||
*
|
||||
* @param contactList contactList
|
||||
*/
|
||||
void saveBatch(List<OrganizationalContact> contactList);
|
||||
|
||||
/**
|
||||
* 更新联系人
|
||||
*
|
||||
* @param organizationalContact organizationalContact
|
||||
*/
|
||||
void update(OrganizationalContact organizationalContact);
|
||||
|
||||
/**
|
||||
* 删除联系人
|
||||
*
|
||||
* @param id id
|
||||
*/
|
||||
void delete(Long id);
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package cn.axzo.orgmanax.infra.dao.unit.repository.impl;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.unit.dao.UnitContactDao;
|
||||
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalContact;
|
||||
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitContactUpsertRepository;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/10
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class UnitContactUpsertRepositoryImpl implements UnitContactUpsertRepository {
|
||||
|
||||
private final UnitContactDao unitContactDao;
|
||||
|
||||
@Override
|
||||
public void save(OrganizationalContact organizationalContact) {
|
||||
unitContactDao.save(organizationalContact);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveBatch(List<OrganizationalContact> contactList) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(OrganizationalContact organizationalContact) {
|
||||
unitContactDao.updateById(organizationalContact);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(Long id) {
|
||||
unitContactDao.lambdaUpdate()
|
||||
.setSql(" is_delete = id ")
|
||||
.eq(OrganizationalContact::getId, id)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,9 +1,11 @@
|
||||
package cn.axzo.orgmanax.server.unit.controller;
|
||||
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.foundation.result.ApiResult;
|
||||
import cn.axzo.orgmanax.api.unit.feign.OrgUnitContactApi;
|
||||
import cn.axzo.orgmanax.dto.unit.req.CreateUnitContactReq;
|
||||
import cn.axzo.orgmanax.dto.unit.resp.CreateUnitContactResp;
|
||||
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 cn.axzo.orgmanax.server.unit.service.UnitContactService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -32,8 +34,18 @@ public class UnitContactController implements OrgUnitContactApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<CreateUnitContactResp>> create(List<CreateUnitContactReq> contactReqList) {
|
||||
return null;
|
||||
public ApiResult<List<OrgUnitContactDTO>> saveBatch(SaveBatchOrgContactReq req) {
|
||||
return ApiResult.success(unitContactService.saveBatch(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<OrgUnitContactDTO> update(OperateOrgContactReq req) {
|
||||
return ApiResult.success(unitContactService.update(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<PageResp<OrgUnitContactDTO>> page(PageOrgContactReq req) {
|
||||
return ApiResult.success(unitContactService.page(req));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation;
|
||||
|
||||
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitContactDTO;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitContactCreator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface UnitContactFoundationService {
|
||||
|
||||
/**
|
||||
* 创建联系人
|
||||
*/
|
||||
OrgUnitContactDTO create(UnitContactCreator creator);
|
||||
|
||||
List<OrgUnitContactDTO> saveBatch(List<UnitContactCreator> contacts);
|
||||
|
||||
/**
|
||||
* 更新联系人
|
||||
*/
|
||||
OrgUnitContactDTO update(UnitContactCreator unitCreator);
|
||||
|
||||
void delete(Long id);
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.dto;
|
||||
|
||||
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalContact;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/10
|
||||
*/
|
||||
@Data
|
||||
public class UnitContactCreator {
|
||||
|
||||
/**
|
||||
* 单位id
|
||||
*/
|
||||
private Long organizationalUnitId;
|
||||
|
||||
/**
|
||||
* 联系人姓名
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 联系人手机号
|
||||
*/
|
||||
private String phone;
|
||||
|
||||
/**
|
||||
* 联系人职位
|
||||
*/
|
||||
private String position;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String memo;
|
||||
|
||||
/**
|
||||
* 转换实体
|
||||
*/
|
||||
public OrganizationalContact toEntity() {
|
||||
return BeanUtil.copyProperties(this, OrganizationalContact.class);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package cn.axzo.orgmanax.server.unit.foundation.impl;
|
||||
|
||||
import cn.axzo.orgmanax.dto.unit.dto.OrgUnitContactDTO;
|
||||
import cn.axzo.orgmanax.infra.dao.unit.entity.OrganizationalContact;
|
||||
import cn.axzo.orgmanax.infra.dao.unit.repository.UnitContactUpsertRepository;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.UnitContactFoundationService;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitContactCreator;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author : zhanghonghao@axzo.cn
|
||||
* @since : 2025/1/10
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class UnitContactFoundationServiceImpl implements UnitContactFoundationService {
|
||||
|
||||
private final UnitContactUpsertRepository unitContactUpsertRepository;
|
||||
|
||||
@Override
|
||||
public OrgUnitContactDTO create(UnitContactCreator creator) {
|
||||
OrganizationalContact contact = creator.toEntity();
|
||||
unitContactUpsertRepository.save(contact);
|
||||
return BeanUtil.copyProperties(contact, OrgUnitContactDTO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgUnitContactDTO> saveBatch(List<UnitContactCreator> contacts) {
|
||||
List<OrganizationalContact> contactList = contacts.stream().map(UnitContactCreator::toEntity).collect(Collectors.toList());
|
||||
unitContactUpsertRepository.saveBatch(contactList);
|
||||
return BeanUtil.copyToList(contactList, OrgUnitContactDTO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrgUnitContactDTO update(UnitContactCreator creator) {
|
||||
OrganizationalContact contact = creator.toEntity();
|
||||
unitContactUpsertRepository.update(contact);
|
||||
return BeanUtil.copyProperties(contact, OrgUnitContactDTO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(Long id) {
|
||||
unitContactUpsertRepository.delete(id);
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,9 @@
|
||||
package cn.axzo.orgmanax.server.unit.service;
|
||||
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
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;
|
||||
@ -11,4 +15,10 @@ public interface UnitContactService {
|
||||
* 查询单位联系人信息
|
||||
*/
|
||||
List<OrgUnitContactDTO> list(Set<Long> ouIds);
|
||||
|
||||
List<OrgUnitContactDTO> saveBatch(SaveBatchOrgContactReq req);
|
||||
|
||||
OrgUnitContactDTO update(OperateOrgContactReq req);
|
||||
|
||||
PageResp<OrgUnitContactDTO> page(PageOrgContactReq req);
|
||||
}
|
||||
|
||||
@ -1,7 +1,14 @@
|
||||
package cn.axzo.orgmanax.server.unit.service.impl;
|
||||
|
||||
import cn.axzo.foundation.page.PageResp;
|
||||
import cn.axzo.orgmanax.dto.unit.contact.enums.ContactOperateEnum;
|
||||
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 cn.axzo.orgmanax.infra.dao.unit.repository.UnitContactQueryRepository;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.UnitContactFoundationService;
|
||||
import cn.axzo.orgmanax.server.unit.foundation.dto.UnitContactCreator;
|
||||
import cn.axzo.orgmanax.server.unit.service.UnitContactService;
|
||||
import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
@ -25,6 +32,8 @@ public class UnitContactServiceImpl implements UnitContactService {
|
||||
|
||||
private final UnitContactQueryRepository unitContactQueryRepository;
|
||||
|
||||
private final UnitContactFoundationService unitContactFoundationService;
|
||||
|
||||
@Override
|
||||
public List<OrgUnitContactDTO> list(Set<Long> ouIds) {
|
||||
if (CollUtil.isEmpty(ouIds)) {
|
||||
@ -40,4 +49,32 @@ public class UnitContactServiceImpl implements UnitContactService {
|
||||
resultList.forEach(e -> e.setPhoneEncode(DataSecurityHelper.encrypt(e.getPhone())));
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrgUnitContactDTO> saveBatch(SaveBatchOrgContactReq req) {
|
||||
List<UnitContactCreator> contacts = BeanUtil.copyToList(req.getContacts(), UnitContactCreator.class);
|
||||
return unitContactFoundationService.saveBatch(contacts);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrgUnitContactDTO update(OperateOrgContactReq req) {
|
||||
if (req.getOperateEnum() == ContactOperateEnum.UPDATE) {
|
||||
return unitContactFoundationService.update(BeanUtil.copyProperties(req, UnitContactCreator.class));
|
||||
} else {
|
||||
unitContactFoundationService.delete(req.getId());
|
||||
return BeanUtil.copyProperties(req, OrgUnitContactDTO.class);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResp<OrgUnitContactDTO> page(PageOrgContactReq req) {
|
||||
UnitContactQueryRepository.ListReq listReq = BeanUtil.copyProperties(req, UnitContactQueryRepository.ListReq.class);
|
||||
PageResp<UnitContactQueryRepository.UnitContactResp> page = unitContactQueryRepository.page(listReq);
|
||||
return PageResp.<OrgUnitContactDTO>builder()
|
||||
.current(page.getCurrent())
|
||||
.total(page.getTotal())
|
||||
.size(page.getSize())
|
||||
.data(BeanUtil.copyToList(page.getData(), OrgUnitContactDTO.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user