Commit 5e39e2ba by jianan

客户信息-证件列表

parent af728e2d
package com.yd.csf.api.controller; package com.yd.csf.api.controller;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; 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.common.ErrorCode;
import com.yd.csf.service.dto.CustomerAddRequest; import com.yd.csf.service.dto.CustomerAddRequest;
import com.yd.csf.service.dto.CustomerQueryRequest; import com.yd.csf.service.dto.CustomerQueryRequest;
import com.yd.csf.service.dto.CustomerUpdateRequest; 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.Customer;
import com.yd.csf.service.model.Taxation;
import com.yd.csf.service.service.CustomerService; import com.yd.csf.service.service.CustomerService;
import com.yd.csf.service.vo.CustomerVO; import com.yd.csf.service.vo.CustomerVO;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* customer接口 * customer接口
...@@ -34,6 +46,10 @@ public class ApiCustomerController { ...@@ -34,6 +46,10 @@ public class ApiCustomerController {
@Resource @Resource
private CustomerService customerService; private CustomerService customerService;
@Resource
private ApiTaxationService apiTaxationService;
@Resource
private ApiRelObjectCertificateFeignClient apiRelObjectCertificateFeignClient;
/** /**
* 创建客户 * 创建客户
...@@ -49,7 +65,27 @@ public class ApiCustomerController { ...@@ -49,7 +65,27 @@ public class ApiCustomerController {
if (customerAddRequest == null) { if (customerAddRequest == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage()); 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 { ...@@ -87,11 +123,33 @@ public class ApiCustomerController {
*/ */
@PostMapping("/update") @PostMapping("/update")
@Operation(summary = "更新客户信息") @Operation(summary = "更新客户信息")
@Transactional(rollbackFor = Exception.class)
public Result<Boolean> updateCustomer(@RequestBody CustomerUpdateRequest customerUpdateRequest) { 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()); 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 { ...@@ -115,7 +173,32 @@ public class ApiCustomerController {
customerService.queryDependentsNum(customer); 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; package com.yd.csf.service.dto;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.service.vo.AddressVO; import com.yd.csf.service.vo.AddressVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
...@@ -141,6 +142,12 @@ public class CustomerAddRequest implements Serializable { ...@@ -141,6 +142,12 @@ public class CustomerAddRequest implements Serializable {
private List<TaxCountry> apiTaxationDtoList; private List<TaxCountry> apiTaxationDtoList;
/** /**
* 证件信息列表
*/
@Schema(description = "证件信息列表")
private List<ApiCertificateDto> apiCertificateDtoList;
/**
* 移动电话区号 * 移动电话区号
*/ */
@Schema(description = "移动电话区号") @Schema(description = "移动电话区号")
......
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.service.vo.AddressVO; import com.yd.csf.service.vo.AddressVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
...@@ -87,6 +88,12 @@ public class CustomerUpdateRequest implements Serializable { ...@@ -87,6 +88,12 @@ public class CustomerUpdateRequest implements Serializable {
private List<TaxCountry> apiTaxationDtoList; private List<TaxCountry> apiTaxationDtoList;
/** /**
* 证件信息列表
*/
@Schema(description = "证件信息列表")
private List<ApiCertificateDto> apiCertificateDtoList;
/**
* 吸烟情况(字典) * 吸烟情况(字典)
*/ */
@Schema(description = "吸烟情况(字典)") @Schema(description = "吸烟情况(字典)")
......
...@@ -8,8 +8,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -8,8 +8,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; 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.enums.CommonEnum;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator; import com.yd.common.utils.RandomStringGenerator;
import com.yd.csf.service.common.ErrorCode; import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dao.CustomerMapper; import com.yd.csf.service.dao.CustomerMapper;
...@@ -25,11 +31,9 @@ import com.yd.csf.service.utils.ValidateUtil; ...@@ -25,11 +31,9 @@ import com.yd.csf.service.utils.ValidateUtil;
import com.yd.csf.service.vo.AddressVO; import com.yd.csf.service.vo.AddressVO;
import com.yd.csf.service.vo.CustomerVO; import com.yd.csf.service.vo.CustomerVO;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
...@@ -55,10 +59,36 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -55,10 +59,36 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
@Resource @Resource
private FnaFormService fnaFormService; private FnaFormService fnaFormService;
@Resource
private ApiRelObjectCertificateFeignClient apiRelObjectCertificateFeignClient;
@Override @Override
public CustomerVO getCustomerVO(Customer customer) { 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 @Override
...@@ -109,7 +139,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -109,7 +139,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Map<String, Object> addCustomer(CustomerAddRequest customerAddRequest) { public Map<String, Object> addCustomer(CustomerAddRequest customerAddRequest) {
// 校验 请求 对象中,参数是否全部为空 // 校验 请求 对象中,参数是否全部为空
if (ValidateUtil.isAllFieldsNull(customerAddRequest)) { if (ValidateUtil.isAllFieldsNull(customerAddRequest)) {
...@@ -122,10 +151,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -122,10 +151,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
if (CollUtil.isNotEmpty(customerAddRequest.getAddressList())) { if (CollUtil.isNotEmpty(customerAddRequest.getAddressList())) {
customer.setAddressList(GSON.toJson(customerAddRequest.getAddressList())); customer.setAddressList(GSON.toJson(customerAddRequest.getAddressList()));
} }
// 税务国家列表
if (CollUtil.isNotEmpty(customerAddRequest.getApiTaxationDtoList())) {
customer.setTaxList(GSON.toJson(customerAddRequest.getApiTaxationDtoList()));
}
// 校验客户主表信息 // 校验客户主表信息
validCustomer(customer); validCustomer(customer);
...@@ -136,6 +161,17 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -136,6 +161,17 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
throw new BusinessException(ErrorCode.OPERATION_ERROR.getCode(), ErrorCode.OPERATION_ERROR.getMessage()); 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<String, Object> map = new HashMap<>();
map.put("customerBizId", customer.getCustomerBizId()); map.put("customerBizId", customer.getCustomerBizId());
return map; return map;
...@@ -158,7 +194,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -158,7 +194,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateCustomer(CustomerUpdateRequest customerUpdateRequest) { public Boolean updateCustomer(CustomerUpdateRequest customerUpdateRequest) {
// 判断是否存在 // 判断是否存在
String customerBizId = customerUpdateRequest.getCustomerBizId(); String customerBizId = customerUpdateRequest.getCustomerBizId();
...@@ -168,10 +203,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -168,10 +203,6 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
} }
BeanUtils.copyProperties(customerUpdateRequest, oldCustomer, "customerBizId"); BeanUtils.copyProperties(customerUpdateRequest, oldCustomer, "customerBizId");
// 税务国家列表
if (CollUtil.isNotEmpty(customerUpdateRequest.getApiTaxationDtoList())) {
oldCustomer.setTaxList(GSON.toJson(customerUpdateRequest.getApiTaxationDtoList()));
}
// 地址列表 // 地址列表
if (CollUtil.isNotEmpty(customerUpdateRequest.getAddressList())) { if (CollUtil.isNotEmpty(customerUpdateRequest.getAddressList())) {
oldCustomer.setAddressList(GSON.toJson(customerUpdateRequest.getAddressList())); oldCustomer.setAddressList(GSON.toJson(customerUpdateRequest.getAddressList()));
...@@ -183,6 +214,18 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -183,6 +214,18 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
if (StringUtils.isNotBlank(customerUpdateRequest.getNamePyEn())) { if (StringUtils.isNotBlank(customerUpdateRequest.getNamePyEn())) {
fnaService.updateCustomerNameByCustomerBizId(customerUpdateRequest.getNamePyEn(), customerBizId); 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; return true;
} }
......
package com.yd.csf.service.vo; package com.yd.csf.service.vo;
import com.google.gson.reflect.TypeToken; 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.dto.TaxCountry;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.yd.csf.service.utils.GSONUtil; import com.yd.csf.service.utils.GSONUtil;
...@@ -99,6 +100,12 @@ public class CustomerVO implements Serializable { ...@@ -99,6 +100,12 @@ public class CustomerVO implements Serializable {
private List<TaxCountry> apiTaxationDtoList; private List<TaxCountry> apiTaxationDtoList;
/** /**
* 证件信息列表
*/
@Schema(description = "证件信息列表")
private List<ApiCertificateDto> apiCertificateDtoList;
/**
* 吸烟情况(字典) * 吸烟情况(字典)
*/ */
@Schema(description = "吸烟情况(字典)") @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