原生的多表查询返回并处理

来源:互联网 发布:淘宝购物优惠券公众号 编辑:程序博客网 时间:2024/05/21 18:30
public List<OrderExportVo> orderExportList(Orderitems items,QueryVariableVo qv, int starPos, int pageSize){
String sqlEnd="";
String sql = "select o.shop_name as shopName,o.shop_domain as shopDomain,o.order_id as orderId,o.pay_time as payTime," +
"os.ware_name as wareName,os.ware_stockprice as wareStockprice,os.ware_sellprice as wareSellprice," +
"os.orderitem_number as sellNumber,o.order_transportway as transportway,o.order_address as deliveryGoodInfo," +
"o.order_actual_totalmoney as payMoney,os.transport_number as transportNumber," +
"os.transport_company as transportCompany,os.transport_cost as transportCost,os.orderitem_state as orderState," +
"o.profit_prop as profitProp FROM orderitems AS os " +
"Left JOIN orders AS o ON os.order_id = o.order_id where 1=1";

if(items!=null){
if(!StringUtil.isNull(items.getOrders().getOrderId())){
sqlEnd=sqlEnd+" and o.order_id='"+items.getOrders().getOrderId()+"'";
}
if(!StringUtil.isNull(items.getOrders().getMemberUsername())){
sqlEnd=sqlEnd+" and o.member_username='"+items.getOrders().getMemberUsername().trim()+"'";
}
if(!StringUtil.isNull(items.getOrders().getShopName())){
sqlEnd=sqlEnd+" and o.shop_name='"+items.getOrders().getShopName().trim()+"'";
}
//开始、结束时间段来查询域名订单
if(!StringUtil.isNull(qv.getTimeQueryStart())&&!StringUtil.isNull(qv.getTimeQueryOver())){
System.out.println("time" + items.getOrders().getOrderBeizhu());
if(!StringUtil.isNull(items.getOrders().getOrderBeizhu()) && items.getOrders().getOrderBeizhu().equals("payTime")){
sqlEnd=sqlEnd+" and date(o.pay_time) between '"+qv.getTimeQueryStart()+"' and '"+qv.getTimeQueryOver()+"' ";
}
if(!StringUtil.isNull(items.getOrders().getOrderBeizhu()) && items.getOrders().getOrderBeizhu().equals("orderXiatime")){
sqlEnd=sqlEnd+" and date(o.order_xiatime) between '"+qv.getTimeQueryStart()+"' and '"+qv.getTimeQueryOver()+"' ";
}
if(!StringUtil.isNull(items.getOrders().getOrderBeizhu()) && items.getOrders().getOrderBeizhu().equals("orderSuccesstime")){
sqlEnd=sqlEnd+" and date(o.order_successtime) between '"+qv.getTimeQueryStart()+"' and '"+qv.getTimeQueryOver()+"' ";
}
}
//根据订单状态查询
if(!StringUtil.isNull(items.getOrders().getOrderState())){
sqlEnd=sqlEnd+" and o.order_state='"+items.getOrders().getOrderState()+"'";
}

//根据交易号来查询
if(!StringUtil.isNull(items.getOrders().getOrderTradeNo())){
sqlEnd=sqlEnd+" and o.order_trade_no='"+items.getOrders().getOrderTradeNo().trim()+"'";
}
//根据域名来查询
if(!StringUtil.isNull(items.getSendGoods())){
if(items.getSendGoods().equals("service")){
sqlEnd=sqlEnd+" and os.send_goods ='no'";
}else{
sqlEnd=sqlEnd+" and os.send_goods ='yes'";
}
}
if (null != items.getEnterpriseInfo()) {
sqlEnd=sqlEnd+" and os.enterprise_id =" + items.getEnterpriseInfo().getInterpriseId();
}

if (!StringUtil.isNull(qv.getSign())) {
String sortString="";
String orderTime = qv.getSign();//根据时间(下单,付款,成功交易时间)进行排序。
if(orderTime.contains(",asc")){
sortString="asc";
}else{
sortString="desc";
}
orderTime=orderTime.replace(",asc", "");
orderTime=orderTime.replace(",desc", "");

if(orderTime.equals("payTime")){
orderTime = "pay_time";
}
if(orderTime.equals("orderXiatime")){
orderTime = "order_xiatime";
}
if(orderTime.equals("orderSuccesstime")){
orderTime = "order_successtime";
}
sqlEnd =sqlEnd+ " order by o."+orderTime+" "+sortString;
}else {
sqlEnd =sqlEnd+ " order by o.orderXiatime desc";
}

}
if(!StringUtil.isNull(sqlEnd)){
sql="select * from ("+sql+sqlEnd+") as t";
}
System.out.println(sql);
SQLQuery sqlQuery=(SQLQuery) super.getSession().createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(OrderExportVo.class));
sqlQuery.setFirstResult(starPos);    
sqlQuery.setMaxResults(pageSize);
List list=sqlQuery.list();
return list;

}




/**
 * 文件名称:OrderExportVo.java
 * Package名称:org.zanwork.vo
 * 创建时间:Sep 11, 2013 [5:20:50 PM]
 * 
*/
package org.zanwork.vo;


import java.math.BigDecimal;
import java.util.Date;


/**
 * 创建日期:Sep 11, 2013 [5:20:50 PM]
 * @author 
 * 功能说明:vo结合两个对象里面的属性
 * 
 */
public class OrderExportVo {
private String shopName;//商城名称
private String shopDomain;//网店域名
private String orderId;//订单的id
private String dealResult;//处理结果
private Date payTime;//付款时间
private String wareName;//商品名称
private BigDecimal wareStockprice;//商品进价
private BigDecimal wareSellprice;//商品售价
private Integer sellNumber;//购买数量
private String transportway;//快递方式
private String businessPerson;//招商人
private String deliveryGoodInfo;//收货信息
private BigDecimal payMoney;//支付金额
private String transportNumber;//物流单号
private String transportCompany;//物流公司
private BigDecimal transportCost;//邮费
private String orderState;//订单详情状态
private BigDecimal profitProp;//利润比例


/** default constructor */
public OrderExportVo() {
}




public String getShopName() {
return shopName;
}




public void setShopName(String shopName) {
this.shopName = shopName;
}




public String getShopDomain() {
return shopDomain;
}




public void setShopDomain(String shopDomain) {
this.shopDomain = shopDomain;
}




public String getOrderId() {
return orderId;
}




public void setOrderId(String orderId) {
this.orderId = orderId;
}




public String getDealResult() {
return dealResult;
}




public void setDealResult(String dealResult) {
this.dealResult = dealResult;
}




public Date getPayTime() {
return payTime;
}




public void setPayTime(Date payTime) {
this.payTime = payTime;
}




public String getWareName() {
return wareName;
}




public void setWareName(String wareName) {
this.wareName = wareName;
}




public BigDecimal getWareStockprice() {
return wareStockprice;
}




public void setWareStockprice(BigDecimal wareStockprice) {
this.wareStockprice = wareStockprice;
}




public BigDecimal getWareSellprice() {
return wareSellprice;
}




public void setWareSellprice(BigDecimal wareSellprice) {
this.wareSellprice = wareSellprice;
}




public Integer getSellNumber() {
return sellNumber;
}




public void setSellNumber(Integer sellNumber) {
this.sellNumber = sellNumber;
}




public String getTransportway() {
return transportway;
}




public void setTransportway(String transportway) {
this.transportway = transportway;
}




public String getBusinessPerson() {
return businessPerson;
}




public void setBusinessPerson(String businessPerson) {
this.businessPerson = businessPerson;
}




public String getDeliveryGoodInfo() {
return deliveryGoodInfo;
}




public void setDeliveryGoodInfo(String deliveryGoodInfo) {
this.deliveryGoodInfo = deliveryGoodInfo;
}




public BigDecimal getPayMoney() {
return payMoney;
}




public void setPayMoney(BigDecimal payMoney) {
this.payMoney = payMoney;
}




public String getTransportNumber() {
return transportNumber;
}




public void setTransportNumber(String transportNumber) {
this.transportNumber = transportNumber;
}




public String getTransportCompany() {
return transportCompany;
}




public void setTransportCompany(String transportCompany) {
this.transportCompany = transportCompany;
}




public BigDecimal getTransportCost() {
return transportCost;
}




public void setTransportCost(BigDecimal transportCost) {
this.transportCost = transportCost;
}




public String getOrderState() {
return orderState;
}




public void setOrderState(String orderState) {
this.orderState = orderState;
}




public BigDecimal getProfitProp() {
return profitProp;
}




public void setProfitProp(BigDecimal profitProp) {
this.profitProp = profitProp;
}
}

注意的问题:

1.vo里面的属性名字一定要跟起的别名一样

2.


原创粉丝点击