Commit d89920c9 by caosy

会员专享抵扣劵

parent 3ec0d3af
......@@ -2,13 +2,16 @@ package com.ctrip.fun.admin.controller.basic;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
......@@ -16,17 +19,25 @@ import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ctrip.fun.admin.form.PaginationForm;
import com.ctrip.fun.admin.form.golf.CourseProductQueryForm;
import com.ctrip.fun.admin.service.basic.BuyVoucherActivityService;
import com.ctrip.fun.admin.service.basic.BuyVoucherCommExcelService;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.core.util.DateUtil;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.SortDirectionEnum;
import com.ctrip.fun.common.vo.basic.ActivityTypeCodeEnum;
import com.ctrip.fun.common.vo.basic.BuyVoucherActivityBean;
import com.ctrip.fun.common.vo.basic.BuyVoucherActivityQuery;
import com.ctrip.fun.common.vo.basic.BuyVoucherActivityStatisticsBean;
import com.ctrip.fun.common.vo.basic.VoucherItemDTO;
import com.ctrip.fun.common.vo.basic.VoucherQueryFormDTO;
import com.ctrip.fun.common.vo.basic.VoucherTypeEnum;
import com.ctrip.fun.common.vo.product.CourseProductBean;
import com.ctrip.fun.common.vo.product.CourseProductQuery;
import com.ctrip.fun.common.vo.user.CommuneExtBean;
......@@ -162,4 +173,57 @@ public class BuyVoucherActivityController {
}
@ResponseBody
@RequestMapping(value = "/listToJson", method = RequestMethod.GET)
public Object listToJson(HttpServletRequest request, @ModelAttribute("form") BuyVoucherActivityQuery form) {
BuyVoucherActivityQuery query = new BuyVoucherActivityQuery();
int currentPage = 0;
int pageSize;
int total;
int pageCount;
if (null != request.getParameter("page")) {
currentPage = Integer.parseInt(request.getParameter("page"));
}
if (!StringUtils.isBlank(form.getActivityName())) {
form.setActivityName(form.getActivityName().trim());
}
BeanConverter.copyProperties(query, form);
if(form.getVoucherType()!= null && form.getVoucherType().equals(VoucherTypeEnum.PHYSICAL_VOUCHER.getValue()) ){
// 实物
query.setActivityType(Integer.valueOf(ActivityTypeCodeEnum.PHYSICAL.getValue()));
}else if(form.getVoucherType()!= null &&form.getVoucherType().equals(VoucherTypeEnum.VIP_VOUCHER.getValue()) ){
// 会员
query.setActivityType(Integer.valueOf(ActivityTypeCodeEnum.SVIP.getValue()));
}else if(form.getVoucherType()!= null &&form.getVoucherType().equals(VoucherTypeEnum.TICKET_VOUCHER.getValue()) ){
// 套票
query.setActivityType(Integer.valueOf(ActivityTypeCodeEnum.PACKAGE.getValue()) );
}else if(form.getVoucherType()!= null &&form.getVoucherType().equals(VoucherTypeEnum.TRAIN_VOUCHER.getValue()) ){
// 培训
query.setActivityType(Integer.valueOf(ActivityTypeCodeEnum.TRAIN.getValue()) );
}
query.setVoucherType(null);
query.setSortField("id");
query.setSortDirection(SortDirectionEnum.DESC);
query.setPagerOffset(currentPage * query.getPagerPerPage());
PagedResponseBean<BuyVoucherActivityBean> response = buyVoucherActivityService.queryList( query);
pageSize = query.getPagerPerPage();
total = response.getCount();
pageCount = (0 == total % pageSize) ? (total / pageSize) : (total / pageSize + 1);
Map<String, Object> map = new HashMap<String, Object>();
List<BuyVoucherActivityBean> activitys = (List<BuyVoucherActivityBean>)response.getResult();
for(BuyVoucherActivityBean activity : activitys){
if (activity.getActivityType() != 0 && activity.getActivityType() != null) {
activity.setActivityTypeMsg(ActivityTypeCodeEnum.valueOf(activity.getActivityType()).getMsg());
}
}
map.put("list", response.getResult());
map.put("paginationData", new PaginationForm(currentPage, pageSize, pageCount, total));
return map;
}
}
......@@ -161,7 +161,7 @@ public class UserService extends BaseService {
//是系统管理用户详情中的抵用券列表
if(3 == used){
vourcherQueryRequestDTO.setPagerPerPage(1000);
vourcherQueryRequestDTO.setPagerPerPage(3000);
}
request.setBody(vourcherQueryRequestDTO);
......
......@@ -12,8 +12,14 @@ import org.springframework.format.annotation.DateTimeFormat;
import com.ctrip.fun.common.vo.basic.CourseRuleConditionBean;
import com.ctrip.fun.common.vo.basic.EventActivityRuleConditionBean;
import com.ctrip.fun.common.vo.basic.GeneralVoucherRuleConditionBean;
import com.ctrip.fun.common.vo.basic.MallProductRuleConditionBean;
import com.ctrip.fun.common.vo.basic.MultipleCourseConditionBean;
import com.ctrip.fun.common.vo.basic.PhysicalVoucherRuleConditionBean;
import com.ctrip.fun.common.vo.basic.TicketVoucherRuleConditionBean;
import com.ctrip.fun.common.vo.basic.TrainVoucherRuleConditionBean;
import com.ctrip.fun.common.vo.basic.VipVoucherRuleConditionBean;
/**
* @author zgsong
......@@ -137,13 +143,26 @@ public class VoucherRuleDto {
private MallProductRuleConditionBean mallProductRuleConditionBean = new MallProductRuleConditionBean();
private MultipleCourseConditionBean multipleCourseConditionBean = new MultipleCourseConditionBean();
private PhysicalVoucherRuleConditionBean physicalVoucherRuleConditionBean = new PhysicalVoucherRuleConditionBean();
private VipVoucherRuleConditionBean vipVoucherRuleConditionBean = new VipVoucherRuleConditionBean();
private TicketVoucherRuleConditionBean ticketVoucherRuleConditionBean = new TicketVoucherRuleConditionBean();
private TrainVoucherRuleConditionBean trainVoucherRuleConditionBean = new TrainVoucherRuleConditionBean();
private GeneralVoucherRuleConditionBean generalVoucherRuleConditionBean = new GeneralVoucherRuleConditionBean();
/**
* 操作人
*/
private String operater;
/**
/**
* 创建时间
*/
private Date createdTime;
......@@ -550,4 +569,52 @@ public class VoucherRuleDto {
this.fullCutAmount = fullCutAmount;
}
public PhysicalVoucherRuleConditionBean getPhysicalVoucherRuleConditionBean() {
return physicalVoucherRuleConditionBean;
}
public void setPhysicalVoucherRuleConditionBean(
PhysicalVoucherRuleConditionBean physicalVoucherRuleConditionBean) {
this.physicalVoucherRuleConditionBean = physicalVoucherRuleConditionBean;
}
public VipVoucherRuleConditionBean getVipVoucherRuleConditionBean() {
return vipVoucherRuleConditionBean;
}
public void setVipVoucherRuleConditionBean(
VipVoucherRuleConditionBean vipVoucherRuleConditionBean) {
this.vipVoucherRuleConditionBean = vipVoucherRuleConditionBean;
}
public TicketVoucherRuleConditionBean getTicketVoucherRuleConditionBean() {
return ticketVoucherRuleConditionBean;
}
public void setTicketVoucherRuleConditionBean(
TicketVoucherRuleConditionBean ticketVoucherRuleConditionBean) {
this.ticketVoucherRuleConditionBean = ticketVoucherRuleConditionBean;
}
public TrainVoucherRuleConditionBean getTrainVoucherRuleConditionBean() {
return trainVoucherRuleConditionBean;
}
public void setTrainVoucherRuleConditionBean(
TrainVoucherRuleConditionBean trainVoucherRuleConditionBean) {
this.trainVoucherRuleConditionBean = trainVoucherRuleConditionBean;
}
public GeneralVoucherRuleConditionBean getGeneralVoucherRuleConditionBean() {
return generalVoucherRuleConditionBean;
}
public void setGeneralVoucherRuleConditionBean(
GeneralVoucherRuleConditionBean generalVoucherRuleConditionBean) {
this.generalVoucherRuleConditionBean = generalVoucherRuleConditionBean;
}
}
......@@ -293,18 +293,22 @@
<div class="controls">
<#if dto.activityType??>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="1" <#if dto.activityType == 1>checked</#if>>
<span style="padding-right: 20px;">套票</span>
<span style="padding-right: 20px;">套票产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="2" <#if dto.activityType == 2>checked</#if>>
<span style="padding-right: 20px;">培训产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="3" <#if dto.activityType == 3>checked</#if>>
<span style="padding-right: 20px;">超级会员</span>
<span style="padding-right: 20px;">会员产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="4" <#if dto.activityType == 4>checked</#if>>
<span style="padding-right: 20px;">实物产品</span>
<#else>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="1" checked>
<span style="padding-right: 20px;">套票</span>
<span style="padding-right: 20px;">套票产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="2" >
<span style="padding-right: 20px;">培训产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="3" >
<span style="padding-right: 20px;">超级会员</span>
<span style="padding-right: 20px;">会员产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="4" >
<span style="padding-right: 20px;">实物产品</span>
</#if>
</div>
</div>
......
......@@ -118,14 +118,17 @@
</#switch>
<#switch item.activityType>
<#case 1>
<td>套票</td>
<td>套票产品</td>
<#break>
<#case 2>
<td>培训产品</td>
<#break>
<#case 3>
<td>超级会员</td>
<td>会员产品</td>
<#break>
<#case 4>
<td>实物产品</td>
<#break>
<#default>
未知
</#switch>
......
......@@ -228,11 +228,13 @@
<label class="control-label" for="type">买劵活动类型</label>
<div class="controls">
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="1" checked>
<span style="padding-right: 20px;">套票</span>
<span style="padding-right: 20px;">套票产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="2">
<span style="padding-right: 20px;">培训产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="3" >
<span style="padding-right: 20px;">超级会员</span>
<span style="padding-right: 20px;">会员产品</span>
<input style="margin-bottom: 5px;" type="radio" name="activityType" value="4" >
<span style="padding-right: 20px;">实物产品</span>
</div>
</div>
......
......@@ -42,6 +42,26 @@
{{/each}}
</script>
</#if>
<#if dto.voucherType == 5 ||dto.voucherType == 6 ||dto.voucherType == 7 || dto.voucherType == 8 || dto.voucherType == 9>
<script id="table_template_activityList" type="text/x-handlebars-template">
{{#each list}}
<tr>
<td style="text-align: center;"><input type="checkbox" name="checked" value="{{id}}"/></td>
<td>{{id}}</td>
<td>{{activityName}}</td>
<td>{{activityStart}}</td>
<td>{{activityEnd}}</td>
<td>{{activityTypeMsg}}</td>
</tr>
{{/each}}
</script>
</#if>
<script src="${staticServer}/js/app/paginationForJson.js"></script>
<script src="https://cdn.bootcss.com/jquery.serializeJSON/2.8.1/jquery.serializejson.js"></script>
<script>
......@@ -95,8 +115,33 @@ function getResourceList(page){
});
}
</#if>
<#if dto.voucherType == 5 ||dto.voucherType == 6 ||dto.voucherType == 7 || dto.voucherType == 8 || dto.voucherType == 9>
//获取专享产品数据 page为第几页
function getActivityList(page){
$('#activityList').html("");
$.ajax({
url: "/buyVoucherActivity/listToJson",
type: "get",
data: {
id: $("#activityIds").val(),
activityName:$("#activityName").val(),
voucherType:$("#voucherType").val(),
showPaths:3,
valid:1,
page: page
},
success: function (obj) {
var templateActivityList = Handlebars.compile($("#table_template_activityList").html());
$('#activityList').html(templateActivityList(obj));
//获取分页组件
getPagination(obj.paginationData,$('#activityListPage'),"getActivityList");
}
});
}
</#if>
......@@ -211,7 +256,80 @@ $(function(){
sendToUserTypeJQ.trigger("click");
}
</#if>
<#if dto.voucherType == 5 ||dto.voucherType == 6 ||dto.voucherType == 7 || dto.voucherType == 8 || dto.voucherType == 9 >
//产品类型选择
$("input[type=radio][name='vipVoucherRuleConditionBean.type']").click(function(){
if($(this).val()==1){
$("#vipVoucherRuleConditionType2value").hide();
$("#vipVoucherRuleCondition_value").val("");
}else{
$("#vipVoucherRuleConditionType2value").show();
}
});
var vipVoucherRuleConditionBean_typeJQ=$("input[type=radio][name='vipVoucherRuleConditionBean.type']:checked");
if(vipVoucherRuleConditionBean_typeJQ && vipVoucherRuleConditionBean_typeJQ.length>0){
if(vipVoucherRuleConditionBean_typeJQ.val()==1){
vipVoucherRuleConditionBean_typeJQ.trigger("click");
}
}
$("#vipVoucherRuleCondition_value").next().click(function (e) {
$(e.currentTarget).prev().addClass("activeProduct");
$('#activityListModal').modal('show');
getActivityList(0);
});
$("#activityButton").click(function(){
getActivityList(0);
})
$("#selectActivity").click(function(){
var selectActivityId = getselectActivityId();
if(!selectActivityId){
return false;
}
var selectedIds = selectActivityId.join(',');
console.log(selectActivityId)
//var oldValue = $("#vipVoucherRuleCondition_value").val();
var oldValue = $(".activeProduct").val();
console.log(oldValue)
if(oldValue.length>0){
//$("#courseRuleCondition_value").val(oldValue+","+selectedIds);
$(".activeProduct").val(oldValue+","+selectedIds);
}else{
//$("#courseRuleCondition_value").val(selectedIds);
$(".activeProduct").val(selectedIds);
}
$('#activityListModal').modal('hide');
});
//获取选择的活动 activityId
function getselectActivityId(){
var selectedIds = new Array();
var i = 0;
$("#activityList input[type=checkbox][name='checked']").each(function(){
if(this.checked){
selectedIds[i] = this.value;
i++;
}
});
if(i==0){
alert("您未选择任何活动产品!");
return false;
}else{
return selectedIds;
}
}
$("#activity_checkedAll").click(function(){
if(this.checked){
$("#activityList input[type=checkbox][name='checked']").attr("checked",true);
}else{
$("#activityList input[type=checkbox][name='checked']").removeAttr("checked");
}
});
</#if>
<#if dto.voucherType == 1 || dto.voucherType == 4 || dto.voucherType == 2>
//=============================球场预定/赛事=================================START
......@@ -342,6 +460,7 @@ $(function(){
$(".activeProduct").removeClass("activeProduct");
});
//===============================球场预定/赛事=====================================END
</#if>
......@@ -389,11 +508,11 @@ $(function(){
<div class="feature_content">
<@form.singleSelect path="dto.voucherRuleType" options=enums["com.ctrip.fun.common.vo.basic.VoucherRuleTypeEnum"] attributes="required" label="发放类型" required=true/>
<@form.singleSelect path="dto.voucherType" options=VoucherTypeList attributes="required" label="现金券类型" required=true/>
<@form.singleSelect path="dto.multiple" options=enums["com.ctrip.fun.common.vo.basic.VoucherRuleMultiEnum"] attributes="required" label="多球场现金券" required=true/>
<#if dto.voucherType == 1 || dto.voucherType == 4 || dto.voucherType==2>
<@form.singleSelect path="dto.multiple" options=enums["com.ctrip.fun.common.vo.basic.VoucherRuleMultiEnum"] attributes="required" label="多球场现金券" required=true/>
<div id="courseRuleConditionBeanId">
<div class="long_content_div control-group">
<label class="control-label" for="type"></label>
......@@ -469,7 +588,33 @@ $(function(){
</div>
</#if>
<#if dto.voucherType == 5 || dto.voucherType == 6 ||dto.voucherType == 7 || dto.voucherType == 8 || dto.voucherType == 9 >
<div id="vipVoucherRuleConditionBeanId">
<div class="long_content_div control-group">
<label class="control-label" for="type">产品类型使用</label>
<div class="controls">
<#if !dto.vipVoucherRuleConditionBean.type?? || dto.vipVoucherRuleConditionBean.type==6>
<input style="margin-bottom: 5px;" type="radio" id="vipVoucherRuleConditionBean1" name="vipVoucherRuleConditionBean.type" value="1" checked="">
<#else>
<input style="margin-bottom: 5px;" type="radio" id="vipVoucherRuleConditionBean1" name="vipVoucherRuleConditionBean.type" value="1">
</#if>
<span style="padding-right: 20px;">全部适用</span>
<#if dto.vipVoucherRuleConditionBean.type?? && dto.vipVoucherRuleConditionBean.type==2>
<input style="margin-bottom: 5px;" type="radio" id="vipVoucherRuleConditionBean2" name="vipVoucherRuleConditionBean.type" value="2" checked="">
<#else>
<input style="margin-bottom: 5px;" type="radio" id="vipVoucherRuleConditionBean2" name="vipVoucherRuleConditionBean.type" value="2">
</#if>
<span style="padding-right: 20px;">限定产品使用</span>
</div>
</div>
<div id="vipVoucherRuleConditionType2value">
<@form.addonTextInput2 path="dto.vipVoucherRuleConditionBean.value" attributes="class=\"input-medium\"" label="排除产品ID" addon="选择" addonType="button" type="text" required = false id="vipVoucherRuleCondition_value"/>
</div>
</div>
</#if>
<@form.textArea path="dto.description" attributes="class=\"input-medium\" rows=\"3\" required" label="描述" required = true />
<@form.textArea path="dto.remark" attributes="class=\"input-medium\" required rows=\"3\"" label="使用规则" required = false />
......@@ -696,4 +841,57 @@ $(function(){
</div>
</div>
</#if>
<#if dto.voucherType == 5 ||dto.voucherType == 6 ||dto.voucherType == 7 || dto.voucherType == 8 || dto.voucherType == 9 >
<div class="modal hide fade" id="activityListModal">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>查询会员专享产品</h3>
</div>
<div class="modal-body">
<div class="input-append">
<div class="form-inline">
<div class="short_content_div">
<label class="control-label" for="activityIds">活动ID</label>
<input type="text" id="activityIds" name="activityIds" value="" placeholder="活动ID" class="input-medium">
</div>
<div class="short_content_div">
<label class="control-label" for="activityName">活动产品名称</label>
<input type="text" id="activityName" name="activityName" value="" placeholder="活动产品名称" class="input-medium">
</div>
<button id="activityButton" type="button" class="btn btn-primary">查询</button>
</div>
</div>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align: center;"><input type="checkbox" id="activity_checkedAll" /></th>
<th>会员活动产品ID</th>
<th>会员活动产品名称</th>
<th>动产品开始时间</th>
<th>会员活结束时间</th>
<th>买劵活动类型</th>
</tr>
</thead>
<tbody id="activityList"></tbody>
</table>
<div class="paginationJson paginationJson-right">
<ul id="activityListPage">
</ul>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" id="selectActivity">选择</button>
<button class="btn" data-dismiss="modal" aria-hidden="true">关闭</button>
</div>
</div>
</#if>
</@com.layout>
......@@ -82,7 +82,8 @@ function updateMobilePhone(){
<th>订单号</th>
<th>订单名称</th>
<th>下单时间</th>
<th>订单金额</th>
<th>订单总金额</th>
<th>劵金额</th>
<th>下单人</th>
<th>下单手机号</th>
<th>订单来源</th>
......@@ -97,6 +98,7 @@ function updateMobilePhone(){
<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.voucherAmount!}</td>
<td>${item.orderUserName!}</td>
<td>${item.orderPhone!}</td>
<td>${item.platform!}</td>
......
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