package com.estate.expert.admin.service.impl; import com.estate.expert.admin.domain.business.client.ClientType; import com.estate.expert.admin.domain.business.contract.Contract; import com.estate.expert.admin.domain.business.contract.ContractDto; import com.estate.expert.admin.domain.business.contract.ContractRepository; import com.estate.expert.admin.domain.business.contract.ContractState; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.common.response.PageResp; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.service.ClientService; import com.estate.expert.admin.service.ContractService; import com.estate.expert.admin.service.common.CrudServiceBaseImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; /** * 合同服务实现 * @author ligf * @Description * @date 2023-09-05 **/ @Slf4j @Service public class ContractServiceImpl extends CrudServiceBaseImpl implements ContractService { @Resource private ContractRepository contractRepository; @Resource private ClientService clientService; @Override public PageResp list(String keyword, ClientType clientType, Integer creatorId, PageReq pageReq) { var page = contractRepository.findContracts(keyword, clientType, creatorId, pageReq.toPageRequest()); return PageResp.of(page, toDto(page.getContent())); } @Override public Contract add(User creator, Contract entity) { entity.setState(ContractState.NOT_STARTED); return super.add(creator, entity); } @Override public ContractDto toDto(Contract entity) { var dto = super.toDto(entity); dto.setClientDetail(clientService.toDto(entity.getClient())); return dto; } }