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

客户查询接口

Signed-off-by: 全洪江's avatarHongjiang <hongjiang.quan@topsunit.com>
parent fa643a23
package com.huigou.topsun.customer.application; package com.huigou.topsun.customer.application;
import com.huigou.topsun.customer.domain.CustomerContact; import com.huigou.topsun.customer.domain.*;
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.query.CustomerQueryRequest; 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.CustomerVo;
import com.huigou.topsun.customer.domain.vo.ReturnCustomerListVo;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -25,4 +23,9 @@ public interface CustomerApplication { ...@@ -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); CustomerVo saveCustomer(CustomerVo customerVo, List<CustomerContact> customerContactList, List<CustomerDebtContact> baoshenEmailList, List<CustomerDebtContact> customerEmailList, List<CustomerRelated> customerRelatedList, List<CustomerPayInfo> customerPayInfoList);
void deleteCustomerAndAffiliatedInfoByCustomerId(List<String> customerIds); 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; 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.QueryDescriptor;
import com.huigou.data.query.model.QueryModel; import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.customer.application.*; import com.huigou.topsun.customer.application.*;
import com.huigou.topsun.customer.domain.*; import com.huigou.topsun.customer.domain.*;
import com.huigou.topsun.customer.domain.query.CustomerQueryRequest; 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.CustomerVo;
import com.huigou.topsun.customer.domain.vo.ReturnCustomerListVo;
import com.huigou.topsun.customer.repository.*; import com.huigou.topsun.customer.repository.*;
import com.huigou.uasp.bmp.common.application.BaseApplication; import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -16,8 +20,11 @@ import org.springframework.transaction.annotation.Propagation; ...@@ -16,8 +20,11 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service @Service
...@@ -129,12 +136,12 @@ public class CustomerApplicationImpl extends BaseApplication implements Customer ...@@ -129,12 +136,12 @@ public class CustomerApplicationImpl extends BaseApplication implements Customer
// customerDebtContact.setCustomerEmailType("1"); // customerDebtContact.setCustomerEmailType("1");
// CustomerDebtContactRepository.saveAndFlush(customerDebtContact); // CustomerDebtContactRepository.saveAndFlush(customerDebtContact);
// } // }
customerEmailList.forEach(customerDebtContact ->{ customerEmailList.forEach(customerDebtContact -> {
customerDebtContact.setCustomerId(customerId); customerDebtContact.setCustomerId(customerId);
customerDebtContact.setCustomerEmailType("1"); customerDebtContact.setCustomerEmailType("1");
CustomerDebtContactRepository.saveAndFlush(customerDebtContact); CustomerDebtContactRepository.saveAndFlush(customerDebtContact);
}); });
baoshenEmailList.forEach(customerDebtContact ->{ baoshenEmailList.forEach(customerDebtContact -> {
customerDebtContact.setCustomerId(customerId); customerDebtContact.setCustomerId(customerId);
customerDebtContact.setCustomerEmailType("0"); customerDebtContact.setCustomerEmailType("0");
CustomerDebtContactRepository.saveAndFlush(customerDebtContact); CustomerDebtContactRepository.saveAndFlush(customerDebtContact);
...@@ -169,6 +176,56 @@ public class CustomerApplicationImpl extends BaseApplication implements Customer ...@@ -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) { public Customer getCustomer(CustomerVo customerVo) {
Customer customer = new Customer(); Customer customer = new Customer();
BeanUtils.copyProperties(customerVo, customer); BeanUtils.copyProperties(customerVo, customer);
......
...@@ -90,7 +90,7 @@ public class CustomerBaseInfoApplicationImpl extends BaseApplication implements ...@@ -90,7 +90,7 @@ public class CustomerBaseInfoApplicationImpl extends BaseApplication implements
@Override @Override
public CustomerOrder findCustomerOrderByCustomerId(String customerId) { public CustomerOrder findCustomerOrderByCustomerId(String customerId) {
CustomerOrder customerOrder = customerOrderRepository.findCustomerBankByCustomerId(customerId); CustomerOrder customerOrder = customerOrderRepository.findCustomerOrderByCustomerId(customerId);
return customerOrder; 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; 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.CustomerBaseInfoApplication;
import com.huigou.topsun.customer.application.CustomerApplication; 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.*;
import com.huigou.topsun.customer.domain.query.CustomerQueryRequest; 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.CustomerVo;
import com.huigou.topsun.customer.domain.vo.ReturnCustomerListVo;
import com.huigou.uasp.annotation.ControllerMapping; import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.client.CommonController; import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO; import com.huigou.util.SDO;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -27,12 +32,31 @@ public class CustomerController extends CommonController { ...@@ -27,12 +32,31 @@ public class CustomerController extends CommonController {
private CustomerBaseInfoApplication customerBaseInfoApplication; private CustomerBaseInfoApplication customerBaseInfoApplication;
@Autowired @Autowired
private CustomerApplication customerApplication; private CustomerApplication customerApplication;
@Autowired
private CustomerOrderApplication customerOrderApplication;
@Override @Override
protected String getPagePath() { protected String getPagePath() {
return "/biz/topsun/customer/"; 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 { ...@@ -96,7 +120,6 @@ public class CustomerController extends CommonController {
} }
/** /**
* 保存客户信息(多表保存,添加事务) * 保存客户信息(多表保存,添加事务)
* *
...@@ -162,6 +185,7 @@ public class CustomerController extends CommonController { ...@@ -162,6 +185,7 @@ public class CustomerController extends CommonController {
/** /**
* 加载订单信息 * 加载订单信息
*
* @return * @return
*/ */
public CustomerOrder loadCustomerOrder() { 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 { ...@@ -281,11 +281,11 @@ public class CustomerVo implements Serializable {
return customerId; return customerId;
} }
public static CustomerVo getCustomerVo(CustomerVo customerVo){ public static CustomerVo getCustomerVo(Customer customer){
return JSON.parseObject(JSON.toJSONString(customerVo), CustomerVo.class); return JSON.parseObject(JSON.toJSONString(customer), CustomerVo.class);
} }
public static Customer getCustomer(Customer customer){ public static Customer getCustomer(CustomerVo customerVo){
return JSON.parseObject(JSON.toJSONString(customer),Customer.class); 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; ...@@ -4,5 +4,7 @@ import com.huigou.topsun.customer.domain.CustomerOrder;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
public interface CustomerOrderRepository extends JpaRepository<CustomerOrder, String> { public interface CustomerOrderRepository extends JpaRepository<CustomerOrder, String> {
CustomerOrder findCustomerBankByCustomerId(String customerId);
CustomerOrder findCustomerOrderByCustomerId(String customerId);
} }
...@@ -16,6 +16,17 @@ ...@@ -16,6 +16,17 @@
<condition column="customer_name" name="customerName" type="java.lang.String" symbol="like" alias="c"/> <condition column="customer_name" name="customerName" type="java.lang.String" symbol="like" alias="c"/>
</query> </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"> <query name="customerDebtContact" label="催货款通知邮箱表" table="customer_debt_contact">
<sql-query> <sql-query>
select c.* 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