Commit 1831d500 by Huang Linyu

社员权益订单查询

parent ce47e6dd
package com.ctrip.fun.admin.form.order;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
public class VoucherOrderQueryForm extends AbstractOrderQueryForm{
private String orderName; //订单名称
private String recommendUserName; //推荐人姓名
private String recommendPhone; //推荐人手机号码
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date orderStartDate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date orderEndDate;
public Date getOrderStartDate() {
return orderStartDate;
}
public void setOrderStartDate(Date orderStartDate) {
this.orderStartDate = orderStartDate;
}
public Date getOrderEndDate() {
return orderEndDate;
}
public void setOrderEndDate(Date orderEndDate) {
this.orderEndDate = orderEndDate;
}
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
public String getRecommendUserName() {
return recommendUserName;
}
public void setRecommendUserName(String recommendUserName) {
this.recommendUserName = recommendUserName;
}
public String getRecommendPhone() {
return recommendPhone;
}
public void setRecommendPhone(String recommendPhone) {
this.recommendPhone = recommendPhone;
}
}
package com.ctrip.fun.admin.service.order;
import java.util.ArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.Request;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.order.VoucherOrderListBean;
import com.ctrip.fun.common.vo.order.VoucherOrderListExcelBean;
import com.ctrip.fun.common.vo.order.VoucherOrderProcessBean;
import com.ctrip.fun.common.vo.order.OpVoucherOrderBean;
import com.ctrip.fun.common.vo.order.OpOrderQuery;
public class OpVoucherOrderService extends AbstractOpOrderService<VoucherOrderProcessBean, OpVoucherOrderBean, VoucherOrderListBean, VoucherOrderListExcelBean>{
private static Logger logger = LoggerFactory.getLogger(OpVoucherOrderService.class);
@Override
String getOrderType() {
return "voucherOrder";
}
@Override
public PagedResponseBean<VoucherOrderListBean> list(String userId,
OpOrderQuery query) {
String uri = super.getServiceUri("uri.order.list");
uri = uri.replace("{orderType}", this.getOrderType());
PagedResponseBean<VoucherOrderListBean> responseBean = new PagedResponseBean<VoucherOrderListBean>(0, new ArrayList<VoucherOrderListBean>());
Request<OpOrderQuery> request = new Request<OpOrderQuery>(userId, query);
HttpEntity<Request<OpOrderQuery>> entity = new HttpEntity<Request<OpOrderQuery>>(request);
Response<PagedResponseBean<VoucherOrderListBean>> response = super.exchange(uri, HttpMethod.POST, entity,
new ParameterizedTypeReference<Response<PagedResponseBean<VoucherOrderListBean>>>() {
}).getBody();
if (response.getStatus() == 0) {
responseBean = response.getBody();
} else {
logger.error(String.format("[获取订单列表] status: %d, msg: %s", response.getStatus(), response.getMessage()));
}
return responseBean;
}
@Override
public OpVoucherOrderBean getDetail(String userId, Integer orderId) {
// TODO Auto-generated method stub
return null;
}
@Override
public OpVoucherOrderBean getDetailByOrderNo(String userId, Long orderNo) {
// TODO Auto-generated method stub
return null;
}
}
......@@ -165,6 +165,9 @@
<bean name="opEventActivityOrderService"
class="com.ctrip.fun.admin.service.order.OpEventActivityOrderService"
parent="abstractOpOrderService" />
<bean name="opVoucherOrderService"
class="com.ctrip.fun.admin.service.order.OpVoucherOrderService"
parent="abstractOpOrderService" />
<bean name="abstractExcelExportService"
class="com.ctrip.fun.admin.service.order.AbstractExcelExportService"
......
......@@ -23,30 +23,12 @@ ${pageCss}
<li <#if current==orderMenu.menuName>class="active"</#if>><a href="${orderMenu.menuLink}">${orderMenu.showMenuName}</a></li>
</#list>
</ul>
<#elseif module == "memberShip">
<#elseif module == "voucherOrder">
<ul class="nav nav-list">
<li class="nav-header">会籍类型</li>
<li <#if current == "cardType_list">class="active"</#if>>
<a href="/cardType/cardTypeList/list">列表</a>
</li>
<li <#if current == "course_create">class="active"</#if>>
<a href="/cardType/create">新建</a>
</li>
<li class="nav-header">会籍交易</li>
<li <#if current=="list_all">class="active"</#if>><a href="/membership/queryOrders/list_all">全部</a></li>
<li <#if current=="list_noPay">class="active"</#if>><a href="/membership/queryOrders/list_noPay">未支付</a></li>
<li <#if current=="list_charging">class="active"</#if>><a href="/membership/queryOrders/list_charging">支付中</a></li>
<li <#if current=="list_chargingFailed">class="active"</#if>><a href="/membership/queryOrders/list_chargingFailed">支付失败</a></li>
<li <#if current=="list_pendingAudit">class="active"</#if>><a href="/membership/queryOrders/list_pendingAudit">待审核</a></li>
<li <#if current=="list_auditFailed">class="active"</#if>><a href="/membership/queryOrders/list_auditFailed">审核失败</a></li>
<li <#if current=="list_release">class="active"</#if>><a href="/membership/queryOrders/list_release">已发布</a></li>
<li <#if current=="list_cancle">class="active"</#if>><a href="/membership/queryOrders/list_cancle">已取消</a></li>
<li <#if current=="list_transaction">class="active"</#if>><a href="/membership/queryOrders/list_transaction">交易中</a></li>
<li <#if current=="list_refunding">class="active"</#if>><a href="/membership/queryOrders/list_refunding">退款中</a></li>
<li <#if current=="list_refundFailed">class="active"</#if>><a href="/membership/queryOrders/list_refundFailed">退款失败</a></li>
<li <#if current=="list_locked">class="active"</#if>><a href="/membership/queryOrders/list_locked">锁定</a></li>
<li <#if current=="list_finished">class="active"</#if>><a href="/membership/queryOrders/list_finished">交易完成</a></li>
<li class="nav-header">权益订单</li>
<#list enums["com.ctrip.fun.common.vo.order.VoucherOrderMenuEnum"]?values as voucherorderMenu>
<li <#if current==voucherorderMenu.menuName>class="active"</#if>><a href="${voucherorderMenu.menuLink}">${voucherorderMenu.showMenuName}</a></li>
</#list>
</ul>
<#elseif module == "product">
......
......@@ -14,7 +14,8 @@
<li <#if module?? && module == "communeOrder">class="active"</#if>><a href="/communeExt/queryList">公社</a></li>
<li <#if module?? && module == "vipmemberOrder">class="active"</#if>><a href="/vipmemberOrder/orderList/list_all">VIP</a></li>
<li <#if module?? && module == "eventActivityOrder">class="active"</#if>><a href="/eventActivityOrder/orderList/list_all">赛事活动</a></li>
<li <#if module?? && module == "memberShip">class="active"</#if>><a href="/cardType/cardTypeList/list">会籍交易</a></li>
<!-- <li <#if module?? && module == "memberShip">class="active"</#if>><a href="/cardType/cardTypeList/list">会籍交易</a></li> -->
<li <#if module?? && module == "voucherOrder">class="active"</#if>><a href="/voucherOrder/orderList/list_all">社员权益</a></li>
<li <#if module?? && module == "finance">class="active"</#if>><a href="/accounting/coursepayee/list">收款人/预存款管理</a></li>
<li <#if module?? && module == "marketing">class="active"</#if>><a href="/marketing/recommendcode/init">营销</a></li>
<li <#if module?? && module == "package">class="active"</#if>><a href="/tour/tourList">套餐</a></li>
......
<input name="operator" type="hidden" value="${Session['SPRING_SECURITY_CONTEXT'].authentication.name}"/>
<input name="orderId" type="hidden" value="${orderBean.orderId?c}"/>
<input name="orderStatus" type="hidden" value="${orderBean.orderStatus!}"/>
<div class="div-contact">
<table class="table-font table table-bordered table-striped">
<tr>
<th>备注</th>
</tr>
<tr>
<td>
<textarea id="GaneralLog" name="message" style="width: 350px; height: 120px; text-align: left;" rows="6"></textarea>
</td>
</tr>
<tr>
<td><button type="button" onclick="javascript:addLogIndividually();">提交备注</button></td>
</tr>
</table>
</div>
<div class = "div-orderDetail">
<table class="table-font table table-bordered table-striped">
<tr>
<th>订单号</th>
<th colspan=3>${orderBean.orderNo?c}</th>
</tr>
<tr>
<td>名称</td><td>${orderBean.orderName!}</td>
<td>用户UID</td><td><a href="javascript:;"onclick="javascript:window.open('/system/user/${orderBean.uid!}/detailByUid')">${orderBean.uid!}</a></td>
</tr>
<tr>
<td>订单金额</td><td>总价¥${orderBean.amount!}&nbsp;|&nbsp;余额-¥${orderBean.prePayCardAmount!0}</td>
<td>用户名</td><td>${orderBean.userName!}</td>
</tr>
<tr>
<td>实付金额</td><td>¥${orderBean.totalAmount!}</td>
<td>预定途径</td><td>${orderBean.orderSourceString!}</td>
</tr>
<tr>
<td>充值时间</td><td>${orderBean.orderDate?string("yyyy-MM-dd HH:mm:ss")}</td>
<td>推荐码</td><td>${orderBean.recommendCode!}</td>
</tr>
<tr>
<td>支付方式</td><td>${orderBean.payMode!}</td>
<td></td><td></td>
</tr>
<tr>
<td>订单状态</td><td>${orderBean.orderStatusString!}</td>
<td></td><td></td>
</tr>
<tr>
<td>携程订单状态&nbsp;&nbsp;<a id="J_getCtripOrderStatusBtn">获取</a></td><td><span id="orderStatusFromCtripResult"></span></td>
<td>余额使用情况</td><td><#if orderBean.prePayCardDeductFlag==1>已使用<#else>未使用</#if></td>
</tr>
</table>
</div>
<!-- 订单操作日志 -->
<div class = "div-process-log">
<table class="table-font table table-bordered table-striped">
<tr>
<th colspan=5>操作记录</th>
</tr>
<tr id="orderProcessLogTable">
<td>操作员</td><td>操作时间</td><td>操作类型</td><td>操作结果</td><td style="width:200px">处理描述</td>
</tr>
<#list orderBean.orderProcessBeans as bean>
<tr>
<td>${bean.operator!}</td><td>${bean.operateTime?string("yyyy-MM-dd HH:mm:ss")}</td><td>${bean.operation!}</td><td>${bean.successString!}</td><td>${bean.processDesc!}</td>
</tr>
</#list>
</table>
</div>
<!--
接管人模块
-->
<input id="key" type="hidden" value="${key}"/>
<#if !orderBean.receiver??>
<div class="row"><div class="span3">
<a href="/voucherOrder/receive?current=${current}&orderId=${orderBean.orderId}&eid=${Session['SPRING_SECURITY_CONTEXT'].authentication.name}"><span class="label label-info" style="font-size:17px">确认接管</span></a>
</div></div>
<#else>
<div class="row"><div class="span3">
<a href="/voucherOrder/receive?current=${current}&orderId=${orderBean.orderId}&eid=${Session['SPRING_SECURITY_CONTEXT'].authentication.name}"><span class="label label-info" style="font-size:17px">接管人:${orderBean.receiver!}</span></a>
</div></div>
</#if>
<script>
var key = document.getElementById("key");
var value = key.value;
if(value == "0"){
alert("此订单已被接管!");
}
</script>
<form class="form-inline search-box" action="" method="get">
<@com.textInput "form.orderNo" "style=\"margin-left: 5px;\"" "订单号" "text"/>
<@com.textInput "form.orderName" "style=\"margin-left: 5px;\"" "订单名称" "text"/>
<@com.textInput "form.userName" "style=\"margin-left: 5px;\"" "订单联系人" "text"/>
<@com.textInput "form.contactTel" "style=\"margin-left: 5px;\"" "联系人手机号" "text"/>
<@com.textInput "form.recommendUserName" "style=\"margin-left: 5px;\"" "推荐人" "text"/>
<@com.textInput "form.recommendPhone" "style=\"margin-left: 5px;\"" "推荐人手机号" "text"/>
<@com.textInputTwoDate "form.orderStartDate" "form.orderEndDate" "style=\"margin-left: 5px;\"" "下单时间"/>
<div>
<button id="J_submit" type="button" class="btn btn-primary" onclick="javascript:searchVoucherOrderList();">搜索</button>
</div>
</form>
\ No newline at end of file
<#assign pageJsContent>
<script>
$("#J_getCtripOrderStatusBtn").click(function () {
$.ajax({
url: "/j/getOrderStatusFromCtrip/${orderBean.orderId}",
type: "get",
data: {
},
success: function (obj) {
$("#orderStatusFromCtripResult").html(obj.body);
}
});
});
</script>
</#assign>
<@com.layout title="订单详情" module="voucherOrder" current="${current}" pageJs=pageJsContent>
<#include "../common/receiver.ftl">
<br/>
<#include "../common/orderDetail.ftl">
<br/>
<#include "../common/description.ftl">
<br/>
<#include "../common/orderProcessLog.ftl">
</@com.layout>
<#include "../common/pageJsContent.ftl"/>
<@com.layout title="全部订单" module="voucherOrder" current="list_all" pageJs=pageJsContent>
<#include "../common/voucherOrderSearchForm.ftl"/>
<table class="table table-bordered table-striped table-font">
<tr>
<th>订单号</th>
<th>订单名称</th>
<th>下单时间</th>
<th>订单金额</th>
<th>下单人</th>
<th>下单手机号</th>
<th>订单来源</th>
<th>推荐人</th>
<th>推荐人手机号</th>
</tr>
<#list list as item>
<tr>
<td>${item.orderNo!}</td>
<td>${item.orderName!}</td>
<td><#if item.orderDate??>${item.orderDate?string("yyyy-MM-dd HH:mm:ss")}<#else></#if></td>
<td>${item.actualAmount!}</td>
<td>${item.orderUserName!}</td>
<td>${item.orderPhone!}</td>
<td>${item.platform!}</td>
<td>${item.recommendUserName!}</td>
<td>${item.recommendPhone!}</td>
</tr>
</#list>
</table>
<div class="row-fluid">
<!-- <div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div> -->
<div class="pagination pagination-right">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</@com.layout>
<#include "../common/pageJsContent.ftl"/>
<@com.layout title="已取消订单" module="voucherOrder" current="list_canceled" pageJs=pageJsContent>
<#include "../common/voucherOrderSearchForm.ftl"/>
<table class="table table-bordered table-striped table-font">
<tr>
<th>订单号</th>
<th>用户ID</th>
<th>用户名</th>
<th>手机号</th>
<th>充值时间</th>
<th>实付金额</th>
<th>状态</th>
<th>推荐码</th>
<th>接管人</th>
</tr>
<#list list as item>
<tr>
<td><a href="/voucherOrder/detail?orderId=${item.orderId}&current=list_canceled">${item.orderNo?c}</a></td>
<td><a href="/system/user/${item.uid}/detailByUid" target="_blank">${item.uid}</a></td>
<td>${item.userName!}</td>
<td>${item.mobilePhone!}</td>
<td><#if item.orderDate??>${item.orderDate?string("yyyy-MM-dd HH:mm:ss")}<#else></#if></td>
<td>${item.totalAmount!}</td>
<td>${item.orderStatusString!}</td>
<td>${item.recommendCode!}</td>
<td>${item.receiver!}</td>
</tr>
</#list>
</table>
<div class="row-fluid">
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</@com.layout>
<#include "../common/pageJsContent.ftl"/>
<@com.layout title="未支付订单" module="voucherOrder" current="list_nopay" pageJs=pageJsContent>
<#include "../common/voucherOrderSearchForm.ftl"/>
<table class="table table-bordered table-striped table-font">
<tr>
<th>订单号</th>
<th>用户ID</th>
<th>用户名</th>
<th>手机号</th>
<th>充值时间</th>
<th>实付金额</th>
<th>状态</th>
<th>推荐码</th>
<th>接管人</th>
</tr>
<#list list as item>
<tr>
<td><a href="/voucherOrder/detail?orderId=${item.orderId}&current=list_nopay">${item.orderNo?c}</a></td>
<td><a href="/system/user/${item.uid}/detailByUid" target="_blank">${item.uid}</a></td>
<td>${item.userName!}</td>
<td>${item.mobilePhone!}</td>
<td><#if item.orderDate??>${item.orderDate?string("yyyy-MM-dd HH:mm:ss")}<#else></#if></td>
<td>${item.totalAmount!}</td>
<td>${item.orderStatusString!}</td>
<td>${item.recommendCode!}</td>
<td>${item.receiver!}</td>
</tr>
</#list>
</table>
<div class="row-fluid">
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</@com.layout>
<#include "../common/pageJsContent.ftl"/>
<@com.layout title="扣款失败订单" module="voucherOrder" current="list_payfail" pageJs=pageJsContent>
<#include "../common/voucherOrderSearchForm.ftl"/>
<table class="table table-bordered table-striped table-font">
<tr>
<th>订单号</th>
<th>用户ID</th>
<th>用户名</th>
<th>手机号</th>
<th>充值时间</th>
<th>实付金额</th>
<th>状态</th>
<th>推荐码</th>
<th>接管人</th>
</tr>
<#list list as item>
<tr>
<td><a href="/voucherOrder/detail?orderId=${item.orderId}&current=list_payfail">${item.orderNo?c}</a></td>
<td><a href="/system/user/${item.uid}/detailByUid" target="_blank">${item.uid}</a></td>
<td>${item.userName!}</td>
<td>${item.mobilePhone!}</td>
<td><#if item.orderDate??>${item.orderDate?string("yyyy-MM-dd HH:mm:ss")}<#else></#if></td>
<td>${item.totalAmount!}</td>
<td>${item.orderStatusString!}</td>
<td>${item.recommendCode!}</td>
<td>${item.receiver!}</td>
</tr>
</#list>
</table>
<div class="row-fluid">
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</@com.layout>
<#include "../common/pageJsContent.ftl"/>
<@com.layout title="支付中订单" module="voucherOrder" current="list_paying" pageJs=pageJsContent>
<#include "../common/voucherOrderSearchForm.ftl"/>
<table class="table table-bordered table-striped table-font">
<tr>
<th>订单号</th>
<th>用户ID</th>
<th>用户名</th>
<th>手机号</th>
<th>充值时间</th>
<th>实付金额</th>
<th>状态</th>
<th>推荐码</th>
<th>接管人</th>
</tr>
<#list list as item>
<tr>
<td><a href="/voucherOrder/detail?orderId=${item.orderId}&current=list_paying">${item.orderNo?c}</a></td>
<td><a href="/system/user/${item.uid}/detailByUid" target="_blank">${item.uid}</a></td>
<td>${item.userName!}</td>
<td>${item.mobilePhone!}</td>
<td><#if item.orderDate??>${item.orderDate?string("yyyy-MM-dd HH:mm:ss")}<#else></#if></td>
<td>${item.totalAmount!}</td>
<td>${item.orderStatusString!}</td>
<td>${item.recommendCode!}</td>
<td>${item.receiver!}</td>
</tr>
</#list>
</table>
<div class="row-fluid">
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</@com.layout>
<#include "../common/pageJsContent.ftl"/>
<@com.layout title="已成交订单" module="voucherOrder" current="list_paysuccess" pageJs=pageJsContent>
<#include "../common/voucherOrderSearchForm.ftl"/>
<table class="table table-bordered table-striped table-font">
<tr>
<th>订单号</th>
<th>用户ID</th>
<th>用户名</th>
<th>手机号</th>
<th>充值时间</th>
<th>实付金额</th>
<th>状态</th>
<th>推荐码</th>
<th>下单渠道</th>
<th>推荐人</th>
<th>推荐人UID</th>
<th>接管人</th>
</tr>
<#list list as item>
<tr>
<td><a href="/voucherOrder/detail?orderId=${item.orderId}&current=list_paysuccess">${item.orderNo?c}</a></td>
<td><a href="/system/user/${item.uid}/detailByUid" target="_blank">${item.uid}</a></td>
<td>${item.userName!}</td>
<td>${item.mobilePhone!}</td>
<td><#if item.orderDate??>${item.orderDate?string("yyyy-MM-dd HH:mm:ss")}<#else></#if></td>
<td>${item.totalAmount!}</td>
<td>${item.orderStatusString!}</td>
<td>${item.recommendCode!}</td>
<#if item.platform =='MP'>
<td>小程序</td>
<#else>
<td>${item.platform!}</td>
</#if>
<td>${item.recommendName!}</td>
<td>${item.recommendUid!}</td>
<td>${item.receiver!}</td>
</tr>
</#list>
</table>
<div class="row-fluid">
<div class="pagination pagination-left">
<a href="${excelpath}">excel导出</a>
</div>
<div class="pagination pagination-right">
<ul class="pagination pagination-right">
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</div>
</@com.layout>
......@@ -176,6 +176,18 @@
}
}
function searchVoucherOrderList(){
var orderNoVal=$("#orderNo").val().trim();
$("#orderNo").val(orderNoVal);
if(orderNoVal!="" && isNaN(orderNoVal)){
alert("订单号应该是数字格式!");
return;
}else{
$(".form-inline").submit();
}
}
function searchVipmemberOrderList(){
var orderNoVal=$("#orderNo").val().trim();
$("#orderNo").val(orderNoVal);
......
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