Commit 9d837d7f by Huang Linyu

球场订单对账查询优化

parent af0ad187
......@@ -1220,10 +1220,14 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
public PagedResponseBean<CourseOrderFinanceBean> queryCourseOrderForFinance(CourseOrderFinanceQuery courseOrderFinanceQuery) {
StringBuilder sb = new StringBuilder(300);
sb.append("SELECT SQL_CALC_FOUND_ROWS invo.invoiceId, od.orderType, od.confirmType, od.orderId, od.cashRebate , od.orderNO AS orderNo, od.payMode, od.processStatus, od.offlinePayType, od.uid , od.ContactName AS contactName, od.orderName, course.districtId, orderitem.Commission AS commission, od.actualAmount , od.orderDate, od.payDate, od.orderSource, od.orderStatus, od.notifyFlag , od.actualSettleAmout, od.settleObj, od.settleDate, od.finComment, od.prePayCardAmount , od.voucherAmount, od.refundAmount, od.outTradeId, od.onlineOrderFlag, od.userType , od.insuranceAmount, od.channel1, od.channel2, course.id AS courseId, course.name AS courseName , orderitem.SupplierID AS supplierId, orderitem.SupplierName AS supplierName, orderItem.playDate AS playDate, orderItem.resourceId AS resourceId, orderitem.realPayTime AS teeTime , orderitem.quantity AS playNums, orderItem.floorPrice AS costForPerson, orderItem.floorPrice * orderitem.quantity AS costForOrder, orderitem.Amount AS amount , orderitem.SalePrice AS salePrice, sup.SettlementType AS settlementType, orderitem.productManager");
sb.append("SELECT SQL_CALC_FOUND_ROWS invo.invoiceId, od.orderType, od.confirmType, od.orderId, od.cashRebate , od.orderNO AS orderNo, od.payMode, od.processStatus, od.offlinePayType, od.uid , od.ContactName AS contactName, od.orderName, course.districtId,distr.Name AS districtName, orderitem.Commission AS commission, od.actualAmount , od.orderDate, od.payDate, od.orderSource, od.orderStatus, od.notifyFlag , od.actualSettleAmout, od.settleObj, od.settleDate, od.finComment, od.prePayCardAmount , od.voucherAmount, od.refundAmount, od.outTradeId, od.onlineOrderFlag, od.userType , od.insuranceAmount, od.channel1, od.channel2, course.id AS courseId, course.name AS courseName , orderitem.SupplierID AS supplierId, orderitem.SupplierName AS supplierName, orderItem.playDate AS playDate, orderItem.resourceId AS resourceId, orderitem.realPayTime AS teeTime , orderitem.quantity AS playNums, orderItem.floorPrice AS costForPerson, orderItem.floorPrice * orderitem.quantity AS costForOrder, orderitem.Amount AS amount , orderitem.SalePrice AS salePrice, sup.SettlementType AS settlementType, orderitem.productManager");
sb.append(" from ord_order od "
+ "join ord_orderitem orderitem on (od.OrderID=orderitem.OrderID)"
+ "join prd_course course on (course.id=orderitem.courseId) left join ord_invoiceinfo invo on (od.OrderId=invo.OrderId) LEFT JOIN opr_supplier sup ON (orderitem.SupplierID = sup.ID) where od.OrderCategory = "
+ " join ord_orderitem orderitem on (od.OrderID=orderitem.OrderID)"
+ " join prd_course course on (course.id=orderitem.courseId) "
+ " left join ord_invoiceinfo invo on (od.OrderId=invo.OrderId) "
+ " LEFT JOIN opr_supplier sup ON (orderitem.SupplierID = sup.ID) "
+ " LEFT JOIN bsc_district distr ON course.districtId = distr.id"
+ " where od.OrderCategory = "
+ OrderCategoryEnum.COURSE.getKey());
Map<String, Object> parameters = new HashMap<String, Object>();
......
......@@ -6,6 +6,7 @@ package com.ctrip.fun.golf.service.finance;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -53,14 +54,14 @@ public class CourseFinanceService {
private OrderAssignmentDao orderAssignmentDao = null;
private Invoiceinfo findInvoiceinfo(Integer orderId, List<Invoiceinfo> invoiceinfos) {
/*private Invoiceinfo findInvoiceinfo(Integer orderId, List<Invoiceinfo> invoiceinfos) {
for (Invoiceinfo invoiceinfo : invoiceinfos) {
int val = invoiceinfo.getOrderId().compareTo(orderId);
if (val == 0)
return invoiceinfo;
}
return null;
}
}*/
private String listToString(List<String> names) {
String str = "";
......@@ -85,35 +86,17 @@ public class CourseFinanceService {
PagedResponseBean<CourseOrderFinanceBean> pagedResponseBean = this.orderDao.queryCourseOrderForFinance(courseOrderFinanceQuery);
Collection<CourseOrderFinanceBean> result = pagedResponseBean.getResult();
if (result != null) {
List<Integer> orderIdList = new ArrayList<Integer>();
for (CourseOrderFinanceBean courseOrderFinanceBean : result) {
orderIdList.add(courseOrderFinanceBean.getOrderId());
}
List<Invoiceinfo> invoiceinfos = new ArrayList<Invoiceinfo>();
Map<Integer, List<String>> customerInfoMap = new HashMap<Integer, List<String>>();
if (orderIdList.size() > 0) {
invoiceinfos = this.invoiceinfoDao.getInvoiceinfoByOrderIds(orderIdList);
if (courseOrderFinanceQuery.isExportExcel()) {
List<CustomerInfo> customerInfos = this.customerInfoDao.getCustomerInfoList(orderIdList);
// 获取打球用户信息
for (CustomerInfo cusInfo : customerInfos) {
List<String> orderCustInfos = null;
boolean infoExist = customerInfoMap.containsKey(cusInfo.getOrderID());
if (infoExist) {
orderCustInfos = customerInfoMap.get(cusInfo.getOrderID());
} else {
orderCustInfos = new ArrayList<String>();
}
orderCustInfos.add(cusInfo.getCname());
customerInfoMap.put(cusInfo.getOrderID(), orderCustInfos);
}
}
}
// int t=0;
for (CourseOrderFinanceBean courseOrderFinanceBean : result) {
Invoiceinfo invoiceinfo = this.findInvoiceinfo(courseOrderFinanceBean.getOrderId(), invoiceinfos);
/*if(t%100==0){
System.out.println(t+":"+new Date());
}
t++;*/
Invoiceinfo invoiceinfo = this.invoiceinfoDao .getInvoiceinfoByOrderId(courseOrderFinanceBean.getOrderId());
OrderStatusEnum orderStatusEnum = OrderStatusEnum.getOrderStatus(courseOrderFinanceBean.getOrderType(), courseOrderFinanceBean.getPayMode(),
courseOrderFinanceBean.getConfirmType(), courseOrderFinanceBean.getProcessStatus(), invoiceinfo == null ? false : true);
courseOrderFinanceBean.setOrderStatus(orderStatusEnum.getShowStatusName());
......@@ -130,16 +113,21 @@ public class CourseFinanceService {
ResourcePrice resourceCommission = resourcePriceDao.getResourcePrice(courseOrderFinanceBean.getPlayDate(), courseOrderFinanceBean.getResourceId());
courseOrderFinanceBean.setCommission(resourceCommission == null ? BigDecimal.ZERO : BigDecimal.valueOf(resourceCommission.getCommission()).multiply(
BigDecimal.valueOf(courseOrderFinanceBean.getPlayNums())));
List<CustomerInfo> customerInfos = this.customerInfoDao.getCustomerByOrderID(courseOrderFinanceBean.getOrderId());
if (courseOrderFinanceQuery.isExportExcel()) {
List<String> names = customerInfoMap.get(courseOrderFinanceBean.getOrderId());
if (names != null) {
courseOrderFinanceBean.setPlayNames(this.listToString(names));
String names = "";
if(customerInfos.size()>0){
for(CustomerInfo customerInfo: customerInfos){
names += customerInfo.getCname()+",";
}
names = names.substring(0, names.length()-1);
}
courseOrderFinanceBean.setPlayNames(names);
}
if (courseOrderFinanceBean.getOfflinePayType() != null && courseOrderFinanceBean.getOfflinePayType() != 0) {
courseOrderFinanceBean.setOfflinePayTypeMsg(OfflinePayTypeEnum.valueOf(courseOrderFinanceBean.getOfflinePayType()).getMsg());
}
List<CustomerInfo> customerInfos = this.customerInfoDao.getCustomerByOrderID(courseOrderFinanceBean.getOrderId());
if(customerInfos.size()>=4){
courseOrderFinanceBean.setPlayer4(customerInfos.get(3).getCname());
......@@ -154,21 +142,20 @@ public class CourseFinanceService {
courseOrderFinanceBean.setPlayer1(customerInfos.get(0).getCname());
}
// todo: restrictName
if(courseOrderFinanceBean.getDistrictId()!=null){
/*if(courseOrderFinanceBean.getDistrictId()!=null){
District distinct = districtDao.findById(courseOrderFinanceBean.getDistrictId());
courseOrderFinanceBean.setDistrictName(distinct.getName());
}
}*/
List<Integer> orderIds = new ArrayList<Integer>();
orderIds.add(courseOrderFinanceBean.getOrderId());
List<OrderPayinfoBean> orderPayInfoList = orderPayinfoDao.getOrderPayinfoBeanList(orderIds);
if(orderPayInfoList.size()>0){
courseOrderFinanceBean.setPayeeName(orderPayInfoList.get(0).getPayeeName());
}
List<OrderAssignment> orderAssignments = orderAssignmentDao.getOrderAssignmentByOrderIds(orderIds); // 接管人
List<OrderAssignment> orderAssignments = orderAssignmentDao.GetOrderAssignmentListByOrderID(courseOrderFinanceBean.getOrderId());
if(orderAssignments.size()>0){
courseOrderFinanceBean.setReceiver(orderAssignments.get(0).getEid());
}
}
}
return pagedResponseBean;
......
......@@ -950,6 +950,12 @@ public class EventCustomerInfoService extends
this.eventCustomerInfoOfflineLogDao = eventCustomerInfoOfflineLogDao;
}
/**
* 查询某资源的已用库存
* @param resourceId
* @param playDate
* @return
*/
public Integer getAllEventCustomerValidNum(Integer resourceId, Date playDate){
int allValidCustomer = eventCustomerInfoDao.queryAllValidCustomerNumInSameResAndDate(resourceId, playDate, "");
return allValidCustomer;
......
......@@ -446,6 +446,11 @@ public class OpEventActivityOrderService
}
}
/**
* 判断是否全部退款
* @param orderProcessBean
* @return
*/
private boolean isAllRefund(EventActivityOrderProcessBean orderProcessBean) {
Order order = getOrderDao().findById(orderProcessBean.getOrderId());
BigDecimal refundVoucher = new BigDecimal(0);
......
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 sign in to comment