Commit d42b3c97 by jianan

Fna接口32

parent 94ed1f70
...@@ -7,6 +7,7 @@ import com.yd.common.utils.RandomStringGenerator; ...@@ -7,6 +7,7 @@ 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.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.FnaQueryRequest; import com.yd.csf.service.dto.FnaQueryRequest;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.yd.csf.service.model.CustomerExpand; import com.yd.csf.service.model.CustomerExpand;
...@@ -93,31 +94,18 @@ public class ApiCustomerController { ...@@ -93,31 +94,18 @@ public class ApiCustomerController {
// } // }
/** /**
* 更新fna(仅管理员可用) * 更新客户
* *
* @param fnaUpdateRequest * @param customerUpdateRequest
* @return * @return
*/ */
// @PostMapping("/update") @PostMapping("/update")
// @AuthCheck(mustRole = UserConstant.ADMIN_ROLE) public Result<Boolean> updateCustomer(@RequestBody CustomerUpdateRequest customerUpdateRequest) {
// public Result<Boolean> updateFna(@RequestBody FnaUpdateRequest fnaUpdateRequest) { if (customerUpdateRequest == null || customerUpdateRequest.getCustomerBizId() == null) {
// if (fnaUpdateRequest == null || fnaUpdateRequest.getId() <= 0) { throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), ErrorCode.PARAMS_ERROR.getMessage());
// throw new BusinessException(ErrorCode.PARAMS_ERROR); }
// } return Result.success(customerService.updateCustomer(customerUpdateRequest));
// // todo 在此处将实体类和 DTO 进行转换 }
// Customer customer = new Customer();
// BeanUtils.copyProperties(fnaUpdateRequest, customer);
// // 数据校验
// customerService.validFna(customer, false);
// // 判断是否存在
// long id = fnaUpdateRequest.getId();
// Customer oldFna = customerService.getById(id);
// ThrowUtils.throwIf(oldFna == null, ErrorCode.NOT_FOUND_ERROR);
// // 操作数据库
// boolean result = customerService.updateById(customer);
// ThrowUtils.throwIf(!result, ErrorCode.OPERATION_ERROR);
// return Result.success(true);
// }
/** /**
* 根据 customerBizId 获取客户(封装类) * 根据 customerBizId 获取客户(封装类)
......
package com.yd.csf.service.dto; package com.yd.csf.service.dto;
import com.yd.csf.service.vo.AddressVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -13,24 +17,254 @@ import java.util.List; ...@@ -13,24 +17,254 @@ import java.util.List;
public class CustomerUpdateRequest implements Serializable { public class CustomerUpdateRequest implements Serializable {
/** /**
* id * 客户主表业务唯一id
*/ */
private Long id; @Schema(description = "客户主表业务唯一id")
private String customerBizId;
/** /**
* 标题 * 姓氏
*/ */
@Schema(description = "姓氏")
private String lastName;
/**
* 名字
*/
@Schema(description = "名字")
private String firstName;
/**
* 姓名
*/
@Schema(description = "姓名")
private String name;
/**
* 姓氏拼音
*/
@Schema(description = "姓氏拼音")
private String lastNamePinyin;
/**
* 名字拼音
*/
@Schema(description = "名字-英文", requiredMode = Schema.RequiredMode.REQUIRED)
private String firstNamePinyin;
/**
* 拼音全称
*/
@Schema(description = "姓名拼音")
private String pinyin;
/**
* 称谓
*/
@Schema(description = "称谓 字典值: csf_customer_title", requiredMode = Schema.RequiredMode.REQUIRED)
private String title; private String title;
/** /**
* 内容 * 性别
*/
@Schema(description = "性别 字典值: sys_gender")
private Object gender;
/**
* 生日
*/
@Schema(description = "生日")
private Date birthday;
/**
* 出生日期
*/
@Schema(description = "客户出生日期")
private Date birthdate;
/**
* 异常信息
*/
@Schema(description = "客户异常信息")
private String abnormal;
/**
* 年龄
*/
@Schema(description = "年龄", requiredMode = Schema.RequiredMode.REQUIRED)
private String age;
/**
* 地区代码
*/
@Schema(description = "地区代码")
private String areaCode;
/**
* 电话号码
*/
@Schema(description = "电话号码", requiredMode = Schema.RequiredMode.REQUIRED)
private String phone;
/**
* 电子邮箱
*/
@Schema(description = "电子邮箱", requiredMode = Schema.RequiredMode.REQUIRED)
private String email;
/**
* 是否吸烟
*/
@Schema(description = "是否吸烟 字典值: sys_no_yes")
private String smoke;
/**
* 吸烟数量
*/
@Schema(description = "吸烟数量")
private String smokeQuantity;
/**
* 行业
*/
@Schema(description = "行业", requiredMode = Schema.RequiredMode.REQUIRED)
private String companyType;
/**
* 固定电话
*/
@Schema(description = "固定电话")
private String fixedPhone;
/**
* 来源
*/
@Schema(description = "客户来源")
private String source;
/**
* 证件类型
*/ */
private String content; @Schema(description = "证件类型 字典值: csf_id_type")
private String idType;
/** /**
* 标签列表 * 证件号码
*/ */
private List<String> tags; @Schema(description = "证件号码")
private String idCard;
/**
* 护照号
*/
@Schema(description = "护照号")
private String passport;
/**
* 往来港澳通行证号码
*/
@Schema(description = "往来港澳通行证号码")
private String eepCode;
/**
* 婚姻状况
*/
@Schema(description = "婚姻状况 字典值: csf_marriage", requiredMode = Schema.RequiredMode.REQUIRED)
private Object marriage;
/**
* 出生地
*/
@Schema(description = "出生地")
private String birthplace;
/**
* 教育程度
*/
@Schema(description = "教育程度 字典值: csf_education", requiredMode = Schema.RequiredMode.REQUIRED)
private Object education;
/**
* 国籍 (国家/地区)
*/
@Schema(description = "国籍 (国家/地区)", requiredMode = Schema.RequiredMode.REQUIRED)
private String country;
/**
* 国籍 (国家/地区) 名称
*/
@Schema(description = "国籍 (国家/地区) 名称")
private String countryName;
// region 客户扩展信息
/**
* 客户类型
*/
@Schema(description = "客户类型 字典值: csf_customer_type")
private String customerType;
/**
* 居住地区代码
*/
@Schema(description = "居住地区代码")
private String residenceAreaCode;
/**
* 住宅电话
*/
@Schema(description = "住宅电话")
private String residenceTelephone;
/**
* 是否长期出国
*/
@Schema(description = "是否长期出国 字典值: sys_no_yes")
private String longtimeAbroad;
/**
* 地址
*/
@Schema(description = "地址列表")
private List<AddressVO> addressList;
/**
* 公司名称
*/
@Schema(description = "公司名称")
private String companyName;
/**
* 公司地区代码
*/
@Schema(description = "公司地区代码")
private String companyAreaCode;
/**
* 公司电话
*/
@Schema(description = "公司电话")
private String companyTelephone;
/**
* 职位
*/
@Schema(description = "职位")
private String position;
/**
* 工作年限
*/
@Schema(description = "工作年限")
private String workYear;
/**
* 薪资
*/
@Schema(description = "薪资")
private BigDecimal salary;
// endregion
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.FnaQueryRequest; import com.yd.csf.service.dto.FnaQueryRequest;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -32,4 +33,8 @@ public interface CustomerService extends IService<Customer> { ...@@ -32,4 +33,8 @@ public interface CustomerService extends IService<Customer> {
Customer getByCustomerBizId(String customerBizId); Customer getByCustomerBizId(String customerBizId);
Map<String, Object> addCustomer(CustomerAddRequest customerAddRequest); Map<String, Object> addCustomer(CustomerAddRequest customerAddRequest);
void validCustomer(Customer customer);
Boolean updateCustomer(CustomerUpdateRequest customerUpdateRequest);
} }
...@@ -15,6 +15,7 @@ import com.yd.csf.service.common.ErrorCode; ...@@ -15,6 +15,7 @@ import com.yd.csf.service.common.ErrorCode;
import com.yd.csf.service.dao.CustomerMapper; import com.yd.csf.service.dao.CustomerMapper;
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.FnaQueryRequest; import com.yd.csf.service.dto.FnaQueryRequest;
import com.yd.csf.service.model.Customer; import com.yd.csf.service.model.Customer;
import com.yd.csf.service.model.CustomerExpand; import com.yd.csf.service.model.CustomerExpand;
...@@ -29,6 +30,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -29,6 +30,7 @@ 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 org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
...@@ -180,7 +182,8 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -180,7 +182,8 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
return map; return map;
} }
private void validCustomer(Customer customer) { @Override
public void validCustomer(Customer customer) {
String firstNamePinyin = customer.getFirstNamePinyin(); String firstNamePinyin = customer.getFirstNamePinyin();
if (StringUtils.isBlank(firstNamePinyin)) { if (StringUtils.isBlank(firstNamePinyin)) {
throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "名字-英文不能为空"); throw new BusinessException(ErrorCode.PARAMS_ERROR.getCode(), "名字-英文不能为空");
...@@ -215,6 +218,47 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> ...@@ -215,6 +218,47 @@ public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer>
} }
} }
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateCustomer(CustomerUpdateRequest customerUpdateRequest) {
// 判断是否存在
String customerBizId = customerUpdateRequest.getCustomerBizId();
Customer oldCustomer = customerService.getByCustomerBizId(customerBizId);
if (oldCustomer == null) {
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR.getCode(), ErrorCode.NOT_FOUND_ERROR.getMessage());
}
BeanUtils.copyProperties(customerUpdateRequest, oldCustomer, "customerBizId");
// 数据校验
customerService.validCustomer(oldCustomer);
// 更新主表
boolean result = customerService.updateById(oldCustomer);
// 获取扩展表信息
CustomerExpand customerExpand = customerExpandService.getByCustomerBizId(customerBizId);
String addressListJSON = null;
if (!CollectionUtils.isEmpty(customerUpdateRequest.getAddressList())) {
addressListJSON = GSON.toJson(customerUpdateRequest.getAddressList());
}
if (customerExpand != null) {
// 更新扩展表
BeanUtils.copyProperties(customerUpdateRequest, customerExpand, "customerBizId, customerExpandBizId");
customerExpand.setAddressList(addressListJSON);
customerExpandService.updateById(customerExpand);
} else {
// 扩展表不存在,创建扩展表
CustomerExpand newCustomerExpand = new CustomerExpand();
BeanUtils.copyProperties(customerUpdateRequest, newCustomerExpand, "customerBizId");
newCustomerExpand.setAddressList(addressListJSON);
newCustomerExpand.setCustomerExpandBizId(RandomStringGenerator.generateBizId16("customer_expand"));
newCustomerExpand.setCustomerBizId(customerBizId);
customerExpandService.save(newCustomerExpand);
}
return true;
}
} }
......
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