Commit 5c44f576 authored by 全洪江's avatar 全洪江

客户查询接口

Signed-off-by: 全洪江's avatarHongjiang <hongjiang.quan@topsunit.com>
parent fa643a23
package com.huigou.topsun.customer.application;
import com.huigou.topsun.customer.domain.CustomerContact;
import com.huigou.topsun.customer.domain.CustomerDebtContact;
import com.huigou.topsun.customer.domain.CustomerPayInfo;
import com.huigou.topsun.customer.domain.CustomerRelated;
import com.huigou.topsun.customer.domain.query.ContactQueryRequest;
import com.huigou.topsun.customer.domain.*;
import com.huigou.topsun.customer.domain.query.CustomerQueryRequest;
import com.huigou.topsun.customer.domain.vo.CustomerListVo;
import com.huigou.topsun.customer.domain.vo.CustomerVo;
import com.huigou.topsun.customer.domain.vo.ReturnCustomerListVo;
import java.util.List;
import java.util.Map;
......@@ -25,4 +23,9 @@ public interface CustomerApplication {
CustomerVo saveCustomer(CustomerVo customerVo, List<CustomerContact> customerContactList, List<CustomerDebtContact> baoshenEmailList, List<CustomerDebtContact> customerEmailList, List<CustomerRelated> customerRelatedList, List<CustomerPayInfo> customerPayInfoList);
void deleteCustomerAndAffiliatedInfoByCustomerId(List<String> customerIds);
List<CustomerListVo> getCustomerList();
List<ReturnCustomerListVo> getReturnCustomerListVoList(List<CustomerListVo> customerListVoList);
}
package com.huigou.topsun.customer.application;
import com.huigou.topsun.customer.domain.CustomerOrder;
public interface CustomerOrderApplication {
CustomerOrder getCustomerOrderByCustomerId(String customerId);
}
package com.huigou.topsun.customer.application.Impl;
import cn.hutool.core.bean.BeanUtil;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.customer.application.*;
import com.huigou.topsun.customer.domain.*;
import com.huigou.topsun.customer.domain.query.CustomerQueryRequest;
import com.huigou.topsun.customer.domain.vo.CustomerContactVo;
import com.huigou.topsun.customer.domain.vo.CustomerListVo;
import com.huigou.topsun.customer.domain.vo.CustomerVo;
import com.huigou.topsun.customer.domain.vo.ReturnCustomerListVo;
import com.huigou.topsun.customer.repository.*;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.springframework.beans.BeanUtils;
......@@ -16,8 +20,11 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
......@@ -129,12 +136,12 @@ public class CustomerApplicationImpl extends BaseApplication implements Customer
// customerDebtContact.setCustomerEmailType("1");
// CustomerDebtContactRepository.saveAndFlush(customerDebtContact);
// }
customerEmailList.forEach(customerDebtContact ->{
customerEmailList.forEach(customerDebtContact -> {
customerDebtContact.setCustomerId(customerId);
customerDebtContact.setCustomerEmailType("1");
CustomerDebtContactRepository.saveAndFlush(customerDebtContact);
});
baoshenEmailList.forEach(customerDebtContact ->{
baoshenEmailList.forEach(customerDebtContact -> {
customerDebtContact.setCustomerId(customerId);
customerDebtContact.setCustomerEmailType("0");
CustomerDebtContactRepository.saveAndFlush(customerDebtContact);
......@@ -169,6 +176,56 @@ public class CustomerApplicationImpl extends BaseApplication implements Customer
}
@Override
public List<CustomerListVo> getCustomerList() {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "getCustomerList");
List<CustomerListVo> customerListVoList = this.sqlExecutorDao.queryToList(queryDescriptor.getSql(), CustomerListVo.class);
return customerListVoList;
}
@Override
public List<ReturnCustomerListVo> getReturnCustomerListVoList(List<CustomerListVo> customerListVoList) {
List<ReturnCustomerListVo> returnCustomerListVoList = new ArrayList<>();
List<String> customerIdList = new ArrayList<>();
for (CustomerListVo customerListVo : customerListVoList) {
if (!BeanUtil.isEmpty(customerListVo)) {
String customerId = customerListVo.getCustomerId();
customerIdList.add(customerId);
}
}
List<String> idList = customerIdList.stream().distinct().collect(Collectors.toList());
for (String s : idList) {
ReturnCustomerListVo returnCustomerListVo = new ReturnCustomerListVo();
List<CustomerContactVo> customerContactVoList = new ArrayList<>();
for (CustomerListVo customerListVo : customerListVoList) {
if (!BeanUtil.isEmpty(customerListVo)) {
if (s.equals(customerListVo.getCustomerId())) {
CustomerContactVo customerContactVo = new CustomerContactVo();
BeanUtil.copyProperties(customerListVo, customerContactVo);
customerContactVoList.add(customerContactVo);
returnCustomerListVo.setCustomerContactVoList(customerContactVoList);
// BeanUtil.copyProperties(returnCustomerListVo,customerContactVo);
String provinceCode = customerListVo.getProvinceCode();
List<Province> provinceList = customerBaseInfoApplication.findByProvinceCode(provinceCode);
StringBuffer provinceInfoList = new StringBuffer();
for (Province province : provinceList) {
provinceInfoList.append(province.getProvinceName());
}
String provinceInfo = provinceInfoList.toString();
BeanUtils.copyProperties(customerListVo, returnCustomerListVo);
returnCustomerListVo.setBelongArea(provinceInfo);
}
}
}
returnCustomerListVoList.add(returnCustomerListVo);
}
return returnCustomerListVoList;
}
public Customer getCustomer(CustomerVo customerVo) {
Customer customer = new Customer();
BeanUtils.copyProperties(customerVo, customer);
......
......@@ -90,7 +90,7 @@ public class CustomerBaseInfoApplicationImpl extends BaseApplication implements
@Override
public CustomerOrder findCustomerOrderByCustomerId(String customerId) {
CustomerOrder customerOrder = customerOrderRepository.findCustomerBankByCustomerId(customerId);
CustomerOrder customerOrder = customerOrderRepository.findCustomerOrderByCustomerId(customerId);
return customerOrder;
}
......
package com.huigou.topsun.customer.application.Impl;
import com.huigou.topsun.customer.application.CustomerOrderApplication;
import com.huigou.topsun.customer.domain.CustomerOrder;
import com.huigou.topsun.customer.repository.CustomerOrderRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class CustomerOrderApplicationImpl extends BaseApplication implements CustomerOrderApplication {
@Autowired
private CustomerOrderRepository customerOrderRepository;
@Override
public CustomerOrder getCustomerOrderByCustomerId(String customerId) {
CustomerOrder customerOrder = customerOrderRepository.findCustomerOrderByCustomerId(customerId);
return customerOrder;
}
}
package com.huigou.topsun.customer.controller;
import cn.hutool.core.bean.BeanUtil;
import com.huigou.topsun.customer.application.CustomerBaseInfoApplication;
import com.huigou.topsun.customer.application.CustomerApplication;
import com.huigou.topsun.customer.application.CustomerOrderApplication;
import com.huigou.topsun.customer.domain.*;
import com.huigou.topsun.customer.domain.query.CustomerQueryRequest;
import com.huigou.topsun.customer.domain.vo.CustomerListVo;
import com.huigou.topsun.customer.domain.vo.CustomerVo;
import com.huigou.topsun.customer.domain.vo.ReturnCustomerListVo;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import org.apache.commons.lang.StringUtils;
......@@ -27,12 +32,31 @@ public class CustomerController extends CommonController {
private CustomerBaseInfoApplication customerBaseInfoApplication;
@Autowired
private CustomerApplication customerApplication;
@Autowired
private CustomerOrderApplication customerOrderApplication;
@Override
protected String getPagePath() {
return "/biz/topsun/customer/";
}
@SkipAuth
public String getCustomerList() {
List<CustomerListVo> customerListVoList = customerApplication.getCustomerList();
List<ReturnCustomerListVo> returnCustomerListVoList = customerApplication.getReturnCustomerListVoList(customerListVoList);
Map<String, Object> returnCustomerListVoMap = new HashMap<>();
returnCustomerListVoMap.put("customerList", returnCustomerListVoList);
return toResult(returnCustomerListVoMap);
}
/**
* 转跳到客户信息列表页面
*
......@@ -96,7 +120,6 @@ public class CustomerController extends CommonController {
}
/**
* 保存客户信息(多表保存,添加事务)
*
......@@ -162,6 +185,7 @@ public class CustomerController extends CommonController {
/**
* 加载订单信息
*
* @return
*/
public CustomerOrder loadCustomerOrder() {
......
package com.huigou.topsun.customer.domain.query;
import com.huigou.data.domain.query.QueryAbstractRequest;
public class CustomerOrderQueryRequest extends QueryAbstractRequest{
}
package com.huigou.topsun.customer.domain.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CustomerContactVo implements Serializable {
/**
* 联系人
*/
private String contactName;
/**
* 电话号码 contactPhone
*/
private String contactPhone;
/**
* 传真 contactFax
*/
private String contactFax;
/**
* email contactEmail
*/
private String contactEmail;
}
package com.huigou.topsun.customer.domain.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CustomerListVo implements Serializable {
/**
* 客户id
*/
private String customerId;
/**
* 客户全称
*/
private String customerName;
/**
* 地区编码
*/
private String provinceCode;
/**
* 报价币别 quotationCurrency
*/
private String quotationCurrency;
/**
* 结算方式 monthlySettlementMethod
*/
private String monthlySettlementMethod;
/**
* 订单性质 orderKind
*/
private String orderKind;
/**
* 联系人
*/
private String contactName;
/**
* 电话号码 contactPhone
*/
private String contactPhone;
/**
* 传真 contactFax
*/
private String contactFax;
/**
* email contactEmail
*/
private String contactEmail;
/**
* 备注 remark
*/
private String remark;
}
......@@ -281,11 +281,11 @@ public class CustomerVo implements Serializable {
return customerId;
}
public static CustomerVo getCustomerVo(CustomerVo customerVo){
return JSON.parseObject(JSON.toJSONString(customerVo), CustomerVo.class);
public static CustomerVo getCustomerVo(Customer customer){
return JSON.parseObject(JSON.toJSONString(customer), CustomerVo.class);
}
public static Customer getCustomer(Customer customer){
return JSON.parseObject(JSON.toJSONString(customer),Customer.class);
public static Customer getCustomer(CustomerVo customerVo){
return JSON.parseObject(JSON.toJSONString(customerVo),Customer.class);
}
}
package com.huigou.topsun.customer.domain.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ReturnCustomerListVo implements Serializable {
/**
* 客户全称
*/
private String customerName;
/**
* 所属地区 belongArea
*/
private String belongArea;
/**
* 报价币别 quotationCurrency
*/
private String quotationCurrency;
/**
* 结算方式 monthlySettlementMethod
*/
private String monthlySettlementMethod;
/**
* 订单性质 orderKind
*/
private String orderKind;
// /**
// * 联系人
// */
// private String contactName;
// /**
// * 电话号码 contactPhone
// */
// private String contactPhone;
//
// /**
// * 传真 contactFax
// */
// private String contactFax;
// /**
// * email contactEmail
// */
// private String contactEmail;
/**
* 联系人列表
*/
private List<CustomerContactVo> customerContactVoList;
/**
* 备注 remark
*/
private String remark;
}
......@@ -4,5 +4,7 @@ import com.huigou.topsun.customer.domain.CustomerOrder;
import org.springframework.data.jpa.repository.JpaRepository;
public interface CustomerOrderRepository extends JpaRepository<CustomerOrder, String> {
CustomerOrder findCustomerBankByCustomerId(String customerId);
CustomerOrder findCustomerOrderByCustomerId(String customerId);
}
......@@ -16,6 +16,17 @@
<condition column="customer_name" name="customerName" type="java.lang.String" symbol="like" alias="c"/>
</query>
<query name="getCustomerList" label="对外查询客户信息" table="customer">
<sql-query>
SELECT customer.customer_id,customer.customer_name,customer.province_code,co.quotation_currency,co.monthly_settlement_method,co.order_kind,ccc.contact_name,ccc.contact_phone,ccc.contact_fax,ccc.contact_mail,co.remark
FROM customer LEFT JOIN
(SELECT c.customer_id,cc.contact_name,cc.contact_phone,cc.contact_fax,cc.contact_mail FROM customer c LEFT JOIN customer_contact cc ON c.customer_id = cc.customer_id) AS ccc
ON customer.customer_id = ccc.customer_id LEFT JOIN customer_order co
ON customer.customer_id = co.customer_id
</sql-query>
</query>
<query name="customerDebtContact" label="催货款通知邮箱表" table="customer_debt_contact">
<sql-query>
select c.*
......
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