Commit 5e39e2ba by jianan

客户信息-证件列表

parent af728e2d
package com.yd.csf.api.controller;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiTaxationService;
import com.yd.csf.feign.dto.taxation.ApiObjectTaxationDto;
import com.yd.csf.feign.dto.taxation.ApiTaxationDto;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dto.CustomerAddRequest;
import com.yd.csf.service.dto.CustomerQueryRequest;
import com.yd.csf.service.dto.CustomerUpdateRequest;
import com.yd.csf.service.dto.TaxCountry;
import com.yd.csf.service.model.Customer;
import com.yd.csf.service.model.Taxation;
import com.yd.csf.service.service.CustomerService;
import com.yd.csf.service.vo.CustomerVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* customer接口
......@@ -34,6 +46,10 @@ public class ApiCustomerController {
@Resource
private CustomerService customerService;
@Resource
private ApiTaxationService apiTaxationService;
@Resource
private ApiRelObjectCertificateFeignClient apiRelObjectCertificateFeignClient;
/**
* 创建客户
......@@ -49,7 +65,27 @@ public class ApiCustomerController {
if (customerAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(customerService.addCustomer(customerAddRequest));
Map<String, Object> resultMap = customerService.addCustomer(customerAddRequest);
String customerBizId = (String) resultMap.get("customerBizId");
// 添加客户税务列表信息
if (CollUtil.isNotEmpty(customerAddRequest.getApiTaxationDtoList())) {
List<ApiTaxationDto> apiTaxationDtoList = customerAddRequest.getApiTaxationDtoList().stream().map(d -> {
ApiTaxationDto apiTaxationDto = new ApiTaxationDto();
apiTaxationDto.setTaxCountry(d.getTaxCountry());
apiTaxationDto.setTaxId(d.getTaxId());
return apiTaxationDto;
}).collect(Collectors.toList());
apiTaxationService.saveTaxationList(ApiObjectTaxationDto.builder()
.objectBizId(customerBizId)
.objectName(CommonEnum.UID_TYPE_CUSTOMER.getName())
.objectTableName(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.objectType(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.apiTaxationDtoList(apiTaxationDtoList)
.build());
}
return Result.success(resultMap);
}
/**
......@@ -87,11 +123,33 @@ public class ApiCustomerController {
*/
@PostMapping("/update")
@Operation(summary = "更新客户信息")
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> updateCustomer(@RequestBody CustomerUpdateRequest customerUpdateRequest) {
if (customerUpdateRequest == null || customerUpdateRequest.getCustomerBizId() == null) {
String customerBizId = customerUpdateRequest.getCustomerBizId();
if (ObjectUtils.isEmpty(customerBizId)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
}
return Result.success(customerService.updateCustomer(customerUpdateRequest));
boolean result = customerService.updateCustomer(customerUpdateRequest);
// 添加客户税务列表信息
if (CollUtil.isNotEmpty(customerUpdateRequest.getApiTaxationDtoList())) {
List<ApiTaxationDto> apiTaxationDtoList = customerUpdateRequest.getApiTaxationDtoList().stream().map(d -> {
ApiTaxationDto apiTaxationDto = new ApiTaxationDto();
apiTaxationDto.setTaxCountry(d.getTaxCountry());
apiTaxationDto.setTaxId(d.getTaxId());
return apiTaxationDto;
}).collect(Collectors.toList());
apiTaxationService.saveTaxationList(ApiObjectTaxationDto.builder()
.objectBizId(customerBizId)
.objectName(CommonEnum.UID_TYPE_CUSTOMER.getName())
.objectTableName(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.objectType(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.apiTaxationDtoList(apiTaxationDtoList)
.build());
}
return Result.success(result);
}
/**
......@@ -115,7 +173,32 @@ public class ApiCustomerController {
customerService.queryDependentsNum(customer);
// 获取封装类
return Result.success(customerService.getCustomerVO(customer));
CustomerVO customerVO = customerService.getCustomerVO(customer);
// 查询税务列表信息
customerVO.setApiTaxationDtoList(apiTaxationDtoList(customerBizId));
return Result.success(customerVO);
}
/**
* 查询税务列表信息
* @param customerBizId
* @return
*/
public List<TaxCountry> apiTaxationDtoList(String customerBizId) {
List<TaxCountry> apiTaxationDtoList = new ArrayList<>();
//查询客户税务列表信息
Result<List<Taxation>> listResult = apiTaxationService.list(ApiObjectTaxationDto.builder().objectBizId(customerBizId).build());
if (!CollUtil.isEmpty(listResult.getData())) {
apiTaxationDtoList = listResult.getData().stream().map(d -> {
TaxCountry taxCountry = new TaxCountry();
taxCountry.setTaxCountry(d.getTaxCountry());
taxCountry.setTaxId(d.getTaxId());
return taxCountry;
}).collect(Collectors.toList());
}
return apiTaxationDtoList;
}
/**
......
package com.yd.csf.service.dto;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.service.vo.AddressVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -141,6 +142,12 @@ public class CustomerAddRequest implements Serializable {
private List<TaxCountry> apiTaxationDtoList;
/**
* 证件信息列表
*/
@Schema(description = "证件信息列表")
private List<ApiCertificateDto> apiCertificateDtoList;
/**
* 移动电话区号
*/
@Schema(description = "移动电话区号")
......
package com.yd.csf.service.dto;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.service.vo.AddressVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -87,6 +88,12 @@ public class CustomerUpdateRequest implements Serializable {
private List<TaxCountry> apiTaxationDtoList;
/**
* 证件信息列表
*/
@Schema(description = "证件信息列表")
private List<ApiCertificateDto> apiCertificateDtoList;
/**
* 吸烟情况(字典)
*/
@Schema(description = "吸烟情况(字典)")
......
......@@ -8,8 +8,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
import com.yd.common.enums.CommonEnum;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dao.CustomerMapper;
......@@ -25,11 +31,9 @@ import com.yd.csf.service.utils.ValidateUtil;
import com.yd.csf.service.vo.AddressVO;
import com.yd.csf.service.vo.CustomerVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
......@@ -55,10 +59,36 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
@Resource
private FnaFormService fnaFormService;
@Resource
private ApiRelObjectCertificateFeignClient apiRelObjectCertificateFeignClient;
@Override
public CustomerVO getCustomerVO(Customer customer) {
return CustomerVO.objToVo(customer);
CustomerVO customerVO = CustomerVO.objToVo(customer);
// 查询证件列表信息
customerVO.setApiCertificateDtoList(apiCertificateDtoList(customerVO.getCustomerBizId()));
return customerVO;
}
/**
* 查询证件列表信息
* @param customerBizId
* @return
*/
public List<ApiCertificateDto> apiCertificateDtoList(String customerBizId) {
List<ApiCertificateDto> apiCertificateDtoList = new ArrayList<>();
//查询客户证件列表信息
Result<List<ApiRelObjectCertificateListResponse>> result = apiRelObjectCertificateFeignClient.list(ApiRelObjectCertificateListRequest.builder()
.objectBizId(customerBizId)
.build());
if (!org.springframework.util.CollectionUtils.isEmpty(result.getData())) {
apiCertificateDtoList = result.getData().stream().map(dto -> {
ApiCertificateDto apiCertificateDto = new ApiCertificateDto();
BeanUtils.copyProperties(dto, apiCertificateDto);
return apiCertificateDto;
}).collect(Collectors.toList());
}
return apiCertificateDtoList;
}
@Override
......@@ -109,7 +139,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
}
@Override
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> addCustomer(CustomerAddRequest customerAddRequest) {
// 校验 请求 对象中,参数是否全部为空
if (ValidateUtil.isAllFieldsNull(customerAddRequest)) {
......@@ -122,10 +151,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
if (CollUtil.isNotEmpty(customerAddRequest.getAddressList())) {
customer.setAddressList(GSON.toJson(customerAddRequest.getAddressList()));
}
// 税务国家列表
if (CollUtil.isNotEmpty(customerAddRequest.getApiTaxationDtoList())) {
customer.setTaxList(GSON.toJson(customerAddRequest.getApiTaxationDtoList()));
}
// 校验客户主表信息
validCustomer(customer);
......@@ -136,6 +161,17 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage());
}
// 添加客户证件列表信息
if (CollUtil.isNotEmpty(customerAddRequest.getApiCertificateDtoList())) {
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest.builder()
.objectBizId(customer.getCustomerBizId())
.objectName(CommonEnum.UID_TYPE_CUSTOMER.getName())
.objectTableName(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.objectType(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.apiCertificateDtoList(customerAddRequest.getApiCertificateDtoList())
.build());
}
Map<String, Object> map = new HashMap<>();
map.put("customerBizId", customer.getCustomerBizId());
return map;
......@@ -158,7 +194,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateCustomer(CustomerUpdateRequest customerUpdateRequest) {
// 判断是否存在
String customerBizId = customerUpdateRequest.getCustomerBizId();
......@@ -168,10 +203,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
}
BeanUtils.copyProperties(customerUpdateRequest, oldCustomer, "customerBizId");
// 税务国家列表
if (CollUtil.isNotEmpty(customerUpdateRequest.getApiTaxationDtoList())) {
oldCustomer.setTaxList(GSON.toJson(customerUpdateRequest.getApiTaxationDtoList()));
}
// 地址列表
if (CollUtil.isNotEmpty(customerUpdateRequest.getAddressList())) {
oldCustomer.setAddressList(GSON.toJson(customerUpdateRequest.getAddressList()));
......@@ -183,6 +214,18 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
if (StringUtils.isNotBlank(customerUpdateRequest.getNamePyEn())) {
fnaService.updateCustomerNameByCustomerBizId(customerUpdateRequest.getNamePyEn(), customerBizId);
}
// 添加客户证件列表信息
if (CollUtil.isNotEmpty(customerUpdateRequest.getApiCertificateDtoList())) {
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest.builder()
.objectBizId(customerBizId)
.objectName(CommonEnum.UID_TYPE_CUSTOMER.getName())
.objectTableName(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.objectType(CommonEnum.UID_TYPE_CUSTOMER.getCode())
.apiCertificateDtoList(customerUpdateRequest.getApiCertificateDtoList())
.build());
}
return true;
}
......
package com.yd.csf.service.vo;
import com.google.gson.reflect.TypeToken;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.service.dto.TaxCountry;
import com.yd.csf.service.model.Customer;
import com.yd.csf.service.utils.GSONUtil;
......@@ -99,6 +100,12 @@ public class CustomerVO implements Serializable {
private List<TaxCountry> apiTaxationDtoList;
/**
* 证件信息列表
*/
@Schema(description = "证件信息列表")
private List<ApiCertificateDto> apiCertificateDtoList;
/**
* 吸烟情况(字典)
*/
@Schema(description = "吸烟情况(字典)")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment