优惠券管理--优惠券类型

主要是优惠券的新增,展示,各种知识点的集合

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<jsp:include page="/jsp/common/header.jsp"></jsp:include>
<script src="${ctx }/js/promote/ec_coupon_type.js"></script>

<table class="queryTable" width="100%" >
    <tr>
        <td class="queryTitle" width="100">优惠券名称</td>
        <td class="queryContent" width="100">
            <input class="inputText" type="text" id="couponTypeName" />
        </td>
        <td class="queryTitle" width="100">优惠券面额</td>
        <td class="queryContent" width="100">
            <input class="inputText" type="text" id="couponFee" />
        </td>
        <td>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" class="easyui-linkbutton" onclick="doQuery()" iconCls="icon-search" >查询</a>
        </td>
    </tr>
</table>
<table id="skuCommentGrid" ></table>

<div id="querySkuCommentDld" class="easyui-window" title="" iconCls="icon-search" style="width:300px; height:300px;text-align:center; background: #fafafa;">
    <table id="addGoodsPromoteGrid" ></table>
</div>

<div id="editSkuCommentDlg" class="easyui-window" title="" iconCls="icon-search" style="width:300px; height:300px;text-align:center; background: #fafafa;">
    <div class="easyui-layout" fit="true">
            <div region="center" border="false" style="background:#fff;border:1px solid #ccc;">
                <form id="queryForm"  method="POST">
                    <table width="95%" class="queryTable" align="center" border="0" style="margin:10,0,0,0;">
                        <tr>
                            <td width="15%"  align="right" class="queryTitle">评价人</td>
                            <td align="left" width="35%" class="queryContent">
                                <label id="realNameLabel"></label>
                            </td>
                            <td width="15%"  align="right" class="queryTitle">评价时间</td>
                            <td align="left" width="35%" class="queryContent">
                                <label id="commentTimeLabel"></label>
                            </td>
                        </tr>
                        <tr>
                            <td  align="right" class="queryTitle">评价商品</td>
                            <td align="left" class="queryContent">
                                <label id="goodsNameLabel"></label>
                            </td>
                            <td  align="right" class="queryTitle">评价等级</td>
                            <td align="left" class="queryContent">
                                <label id="codeValueLLabel"></label>
                            </td>
                        </tr>
                        <tr>
                            <td align="right" class="queryTitle">有用数量</td>
                            <td align="left" class="queryContent" id="usefullAmountLabel">
                            </td>
                            <td  align="right" class="queryTitle">无用数量</td>
                            <td align="left" class="queryContent">
                                <label id="uselessAmountLabel"></label>
                            </td>
                        </tr>
                        <tr>
                            <td align="right" class="queryTitle">评价内容</td>
                            <td align="left" class="queryContent" style="height:80px;">
                                <label id="commentNotesLabel"></label>
                            </td>
                            <td  align="right" class="queryTitle">使用心得</td>
                            <td align="left" class="queryContent">
                                <label id="useExperienceLabel"></label>
                            </td>
                        </tr>
                        <tr>
                            <td align="right" class="queryTitle">优点</td>
                            <td align="left" class="queryContent" style="height:80px;">
                                <label id="advantageLabel"></label>
                            </td>
                            <td  align="right" class="queryTitle">不足</td>
                            <td align="left" class="queryContent">
                                <label id="IsDefaultLabel"></label>
                            </td>
                        </tr>
                        <tr>
                            <td align="right" class="queryTitle">审核人</td>
                            <td align="left" class="queryContent" id="userNameLabel">
                            </td>
                            <td  align="right" class="queryTitle">审核时间</td>
                            <td align="left" class="queryContent">
                                <label id="auditTimeLabel"></label>
                            </td>
                        </tr>
                    </table>
                </form>
            </div>
            <div region="south" border="false" style="text-align:center;height:30px;line-height:30px;">
                <a class="easyui-linkbutton" iconCls="icon-cancel" href="javascript:void(0)" onclick="doCancel()">关闭</a>
            </div>
        </div>
</div>

<!-- 优惠券预览 -->
<div id="。" class="easyui-window" title="" iconCls="icon-edit" style="width:600px; height:200px;text-align:center; background: #fafafa;">
    <div class="easyui-layout" fit="true">
        <div region="center" border="false" style="background:#fff;border:1px solid #ccc;">
            <div id="showCoupon"></div>
        </div>
    </div>
</div>
var appPath = getAppPath();    
$(function(){
    $('#querySkuCommentDld').window('close');
    $('#editSkuCommentDlg').window('close');
    $('#previewCouponsDlg').window('close');
    $("#sl").combobox({ 
        url:appPath+"/page/memberService/1/commentStateList",
        valueField:"id",  
        textField:"text",
        panelHeight:"auto",
        editable:false
    });
    $('#beginTime').datebox({  
        showSeconds:false,
        editable:false 
    }); 
    $('#endTime').datebox({  
        showSeconds:false,
        editable:false 
    });
    //定义隐藏域,作为容器,存放frame
    createParentHiddenDom("promoteRuleFrameName");
    promoteGrid();
});

function promoteGrid(){
    $('#skuCommentGrid').datagrid({
        url:appPath+'/page/couponType/list',
        method:'post',
//        queryParams:getQueryParam(),
        height:'full',
        width:'full',
        singleSelect:true,
        striped: true,
        remoteSort:false,
        checkbox:false,
        idField:'promoteRuleId',
        frozenColumns:[[
                      {field:'id',title:'操作',width:'80',align:'left',
                      formatter:function(value,rowData,rowIndex){
                              var dataStr = JSON.stringify(rowData);
                              if(rowData.isLimitGoods!="Y"){
                                  return "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/pencil.png' title='编辑' onClick='querySearch("+dataStr+")'/></a> &nbsp;" +
                                  "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/cancel.png' title='删除' onClick='del("+dataStr+")'/></a>";
                              }else{
                                  return "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/pencil.png' title='编辑' onClick='querySearch("+dataStr+")'/></a> &nbsp;" +
                                  "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/cancel.png' title='删除' onClick='del("+dataStr+")'/></a> &nbsp;"+
                                  "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/search.png' title='适用商品' onClick='queryGoods("+dataStr+")'/></a>&nbsp; ";
                              }
                              
                      }
                      }
                  ]],
        columns:[[
                  {field:'couponTypeName',title:'优惠券名称',width:150,align:'center',sortable:true},
                  {field:'couponTypeNotes',title:'优惠券描述',width:150,align:'center',sortable:true},
                  {field:'couponFee',title:'优惠券面额',width:80,align:'center',sortable:true},
                  {field:'discountFee',title:'优惠金额',width:60,align:'center',sortable:true},
                  {field:'convertPoints',title:'可兑换积分',width:90,align:'center',sortable:true},
                  {field:'useType',title:'类型',width:80,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.useType=='0'){
                                  return '优惠券';
                              }else if(rowData.useType=='1'){
                                  return '抵用券';
                              }else if(rowData.useType=='2'){
                                  return '折扣券';
                              }else if(rowData.useType=='3'){
                                  return '补偿券';
                              }
                      }
                  },
                  {field:'couponPicUrl',title:'优惠券图片',width:60,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                          var dataStr = JSON.stringify(rowData);
//                          return "<img width='20px' height='20px' style='border:0px;'  src='"+appPath+rowData.couponPicUrl+"'/>";
                          return "<img width='12px' height='12px' style='border:0px;cursor:pointer '  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/search.png' title='查看优惠券' onClick='preview("+dataStr+")'/>";
                          }
                  },
                  {field:'orderFeeLimit',title:'订单限额',width:120,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.orderFeeLimit=='0'){
                                  return '无';
                              }else{
                                  return rowData.orderFeeLimit;
                              }
                      }
                  },        
                  {field:'useAmountLimit',title:'限用张数',width:60,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.useAmountLimit=='0'){
                                  return '无';
                              }else{
                                  return rowData.useAmountLimit;
                              }
                      }
                  },
                  {field:'isLimitGoods',title:'适用商品',width:60,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.isLimitGoods=='N'){
                                  return '全部商品';
                              }else if(rowData.isLimitGoods=='H'){
                                  return '海外购商品';
                              }else{
                                  return '指定商品';
                              }
                      }
                  },{field:'standby1',title:'限制次数标志',width:80,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.standby1=='Y'){
                                  return '限制';
                              }else{
                                  return '不限制';
                              }
                      }
                      
                  },{field:'standby4',title:'限制次数',width:60,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.standby4==null){
                                  return 0;
                              }else{
                                  return rowData.standby4;
                              }
                      }
                  },{field:'standby2',title:'手机校验标志',width:80,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                              if(rowData.standby2=='Y'){
                                  return '限制';
                              }else{
                                  return '不限制';
                              }
                      }
                  },{field:'limitMemberRoleIds',title:'是否有会员限制',width:80,align:'center',sortable:true,
                      formatter:function(value,rowData,rowIndex){
                          if(rowData.limitMemberRoleIds!=null && rowData.limitMemberRoleIds.length>0){
                              return '有';
                          }else{
                              return '无';
                          }
                      }
                  }
                 ]],
         pagination:true,
         rownumbers:true,
         toolbar:[{
                 id:'btnadd',
                text:'新增优惠券',
                iconCls:'icon-add',
                handler:function(){
                        $(window.parent.document).find("#promoteRuleFrameName").val($(self).attr("name"));
                        parent.addTab("优惠券类型-新增",appPath+"/jsp/promote/ec_coupon_type_add.jsp","icon icon-add",true,"ruleFrame");    
                }
             }
         ]
    });
}

function toDate(str){
    var sd=str.split("-");
    return new Date(sd[0],sd[1],sd[2]);
}
function doQuery(){
    var param = $('#skuCommentGrid').datagrid('options').queryParams;
    param.couponTypeName = $.trim($('#couponTypeName').val());
    param.couponFee = $.trim($('#couponFee').val());
    $("#skuCommentGrid").datagrid('unselectAll');
    $("#skuCommentGrid").datagrid('load',param);
}

//删除数据
function del(rowData){
    $.messager.confirm('提示信息','您确定要删除这条记录?',function(r){
        if(r){
            doAjax({
                url:appPath+'/page/couponType/delEcCouponType',
                type:'post',
                data:{couponTypeId:rowData.couponTypeId,isDelete:'Y'},
                success:function(data){
                    if(data='ok'){
                        $.messager.alert('提示信息','删除成功!','info');
                    }
                    doReload();
                },
                error:function(XMLHttpRequest, textStatus, errorThrown){
                    $.messager.alert('提示信息','删除失败!','info');
                    doReload();
                }
            });    
        }
    });
    
}

function doReload(){
    $('#skuCommentGrid').datagrid('unselectAll');
    $('#skuCommentGrid').datagrid('reload');
}





function querySearch(rowData){
//    $('#realNameLabel').html(rowData.realName);
//    $('#commentTimeLabel').html(rowData.commentTime);
//    $('#goodsNameLabel').html(rowData.goodsName);
//    $('#codeValueLLabel').html(rowData.codeValueL);
//    $('#usefullAmountLabel').html(rowData.usefullAmount);
//    $('#uselessAmountLabel').html(rowData.uselessAmount);
//    $('#commentNotesLabel').html(rowData.commentNotes);
//    $('#useExperienceLabel').html(rowData.useExperience);
//    $('#advantageLabel').html(rowData.advantage);
//    $('#IsDefaultLabel').html(rowData.IsDefault);
//    $('#userNameLabel').html(rowData.userName);
//    $('#auditTimeLabel').html(rowData.auditTime);
//    $('#querySkuCommentDld').window({
//        title:'优惠券类型--编辑',
//        iconCls:'icon-search',
//        width:570,
//        height:360,
//        left:100,
//        modal: true,
//        shadow: true,
//        collapsible:false,
//        minimizable:false,
//        maximizable:false
//    });
//    $('#"editSkuCommentDlg"').window('move',{top:0});
//    $('#"editSkuCommentDlg"').window('open');
    
    var couponTypeId = rowData.couponTypeId;
    
    var url = appPath+"/page/couponType/toEditEcCouponType?couponTypeId="+couponTypeId;
    
    
    $(window.parent.document).find("#promoteRuleFrameName").val($(self).attr("name"));
    parent.addTab("优惠券类型-编辑",url,"icon icon-add",true,"ruleFrame");    

}

//查看适用商品
function queryGoods(rowData){
    $('#querySkuCommentDld').window({
        title:'适用商品',
        iconCls:'icon-search',
        width:570,
        height:360,
        left:100,
        modal: true,
        shadow: true,
        collapsible:false,
        minimizable:false,
        maximizable:false
    });
    $('#querySkuCommentDld').window('move',{top:0});
    $('#querySkuCommentDld').window('open');
    
    goodsGrid(rowData.couponTypeId);
}

function goodsGrid(id){
    $('#addGoodsPromoteGrid').datagrid({
        url:appPath+'/page/couponType/goodsListByCoupon',
        method:'post',
        queryParams:{couponTypeId:id},
        height:240,
        width:'auto',
        singleSelect:true,
        striped: true,
        remoteSort:false,
        checkbox:false,
        idField:'couponTypeGoodsTempId',
//        frozenColumns:[[
//                        {field:'id',title:'操作',width:60,align:'center',
//                          formatter:function(value,rowData,rowIndex){
//                              var dataStr = JSON.stringify(rowData);
//                              return "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/cancel.png' title='删除' onClick='delGoods("+dataStr+")'/></a>&nbsp;";
//                          }
//                      }
//                  ]],
        columns:[[   
                  {field:'goodsNo',title:'商品编码',width:80,align:'center',sortable:true},
                  {field:'goodsName',title:'商品名称',width:140,align:'left',sortable:true},
                  {field:'unitName',title:'商品单位',width:140,align:'left',sortable:true},
                  {field:'marketPrice',title:'市场价',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}},
                  {field:'ecPrice',title:'售价',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}},
                  {field:'availableStock',title:'库存',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}}
                 ]],     
         pagination:true,
         rownumbers:true
    });
}

function auditCommont(rowData){
    $('#addForm').form('clear');
    $('#addForm').form('load',rowData);
    $('#memberCommentId').val(rowData.memberCommentId);
    $('#realNameLabels').html(rowData.realName);
    $('#commentTimeLabels').html(rowData.commentTime);
    $('#goodsNameLabels').html(rowData.goodsName);
    $('#codeValueLLabels').html(rowData.codeValueL);
    $('#commentNotesLabels').html(rowData.commentNotes);
    $('#useExperienceLabels').html(rowData.useExperience);
    $('#advantageLabels').html(rowData.advantage);
    $('#IsDefaultLabels').html(rowData.IsDefault);
    $('#editSkuCommentDlg').window({
        title:'评价处理-审核',
        iconCls:'icon-reply',
        width:570,
        height:310,
        left:100,
        modal: true,
        shadow: true,
        collapsible:false,
        minimizable:false,
        maximizable:false
    });
    $('#editSkuCommentDlg').window('move',{top:0});
    $('#editSkuCommentDlg').window('open');
}

function doAddSkuComment(id){
    var memberCommentId = $('#memberCommentId').attr('value');
    
    if(id=='audit'){
        doAjax({
            url:appPath+'/page/memberService/saveCommont',
            type:'post',
            data:{memberCommentId:memberCommentId,type:id},
            success:function(data){
                if(data='ok'){
                    $.messager.alert('提示信息','审核成功!','info');
                    $('#editSkuCommentDlg').window('close');
                }
                doReload();
            },
            error:function(XMLHttpRequest, textStatus, errorThrown){
                $.messager.alert('提示信息','审核成功!','info');
                $('#editSkuCommentDlg').window('close');
                doReload();
            }
        });    
    }else{
        doAjax({
            url:appPath+'/page/memberService/saveCommont',
            type:'post',
            data:{memberCommentId:memberCommentId,type:id},
            success:function(data){
                if(data='ok'){
                    $.messager.alert('提示信息','删除成功!','info');
                    $('#editSkuCommentDlg').window('close');
                }
                doReload();
            },
            error:function(XMLHttpRequest, textStatus, errorThrown){
                $.messager.alert('提示信息','删除成功!','info');
                $('#editSkuCommentDlg').window('close');
                doReload();
            }
        });    
    }
        
}



function doCancel(){
    $('#sendSmsDld').window('close');
    $('#querySkuCommentDld').window('close');
    $('#editSkuCommentDlg').window('close');
}

function delData(rowData){
    doAjax({
        url:appPath+'/page/memberService/saveCommont',
        type:'post',
        data:{memberCommentId:rowData.memberCommentId,type:"del"},
        success:function(data){
            if(data='ok'){
                $.messager.alert('提示信息','删除成功!','info');
                $('#replayDlg').window('close');
            }
            doReload();
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            $.messager.alert('提示信息','删除成功!','info');
            $('#replayDlg').window('close');
            doReload();
        }
    });    
}

//优惠券预览
function preview(rowData){
    $('#previewCouponsDlg').window({
        title:'优惠券预览',
        iconCls:'icon-add',
        width:300,
        height:300,
        left:100,
        modal: true,
        shadow: true,
        collapsible:false,
        minimizable:false,
        maximizable:false
    });
    $('#previewCouponsDlg').window('move',{top:0});
    $('#previewCouponsDlg').window('open');
    var picUrl = "<img width='200px' height='200px' style='border:0px;'  src='"+appPath+rowData.couponPicUrl+"'/>";
    document.getElementById('showCoupon').innerHTML=picUrl;
}

 

=====================================知识点的分析======================================

 

查看图片:

document.getElementById('showCoupon').innerHTML=picUrl;
innerHTMLJS是双向功能:获取对象的内容  或  向对象插入内容;
如:<div id="aa">这是内容</div> ,我们可以通过 document.getElementById('aa').innerHTML 来获取id为aa的对象的内嵌内容;
也可以对某对象插入内容,如 document.getElementById('abc').innerHTML='这是被插入的内容'; 这样就能向id为abc的对象插入内容。
说的简单点就是向id为的showCoupon的div 插入图片的信息,将图片装在一个div中。

在新增优惠券的时候,会跳到一个新的页面,没有id等参数的传入
toolbar:[{
   id:'btnadd',
   text:'新增优惠券',
   iconCls:'icon-add',
   handler:function(){
         $(window.parent.document).find("#promoteRuleFrameName").val($(self).attr("name"));
         parent.addTab("优惠券类型-新增",appPath+"/jsp/promote/ec_coupon_type_add.jsp","icon icon-add",true,"ruleFrame");  
   }
   }
]
在编辑的时候,也是跳到一个新的页面,此时,是有id传入的
function querySearch(rowData){
//    $('#realNameLabel').html(rowData.realName);
//    $('#commentTimeLabel').html(rowData.commentTime);
//    $('#goodsNameLabel').html(rowData.goodsName);
//    $('#codeValueLLabel').html(rowData.codeValueL);
//    $('#usefullAmountLabel').html(rowData.usefullAmount);
//    $('#uselessAmountLabel').html(rowData.uselessAmount);
//    $('#commentNotesLabel').html(rowData.commentNotes);
//    $('#useExperienceLabel').html(rowData.useExperience);
//    $('#advantageLabel').html(rowData.advantage);
//    $('#IsDefaultLabel').html(rowData.IsDefault);
//    $('#userNameLabel').html(rowData.userName);
//    $('#auditTimeLabel').html(rowData.auditTime);
//    $('#querySkuCommentDld').window({
//        title:'优惠券类型--编辑',
//        iconCls:'icon-search',
//        width:570,
//        height:360,
//        left:100,
//        modal: true,
//        shadow: true,
//        collapsible:false,
//        minimizable:false,
//        maximizable:false
//    });
//    $('#"editSkuCommentDlg"').window('move',{top:0});
//    $('#"editSkuCommentDlg"').window('open');
    
    var couponTypeId = rowData.couponTypeId;
    
    var url = appPath+"/page/couponType/toEditEcCouponType?couponTypeId="+couponTypeId;
    
    
    $(window.parent.document).find("#promoteRuleFrameName").val($(self).attr("name"));
    parent.addTab("优惠券类型-编辑",url,"icon icon-add",true,"ruleFrame");    

}

进入编辑页面,是将数据放在request中,在

ec_coupon_type_add.jsp中,使用el表达式取出来,并展示
<td class="queryTitle" width="100">优惠券名称</td>
<td class="queryContent" >
   <input  id="couponTypeName" name="couponTypeName" style="width: 200px;"  class="inputText" value="${couponTypeName}"/>
   <label id="couponTypeNameNot" style="color: red;display: none;">* 优惠券名称不能为空</label>       
</td>
 
 
/**
     * 进入编辑页面
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/toEditEcCouponType")
    public String toEditEcCouponType(HttpServletRequest request,EcCouponType ecCouponType){
//从前台传递过来,并根据id进行查询,并进行封装 String couponTypeId
= request.getParameter("couponTypeId"); if(null!=couponTypeId && !"".equals(couponTypeId)){ // ecCouponType.setCouponTypeId(Integer.valueOf(couponTypeId)); //HashMap<String,Object> param = new HashMap<String, Object>(); ecCouponType = ecCouponTypeService.queryCouponTypeById(Integer.parseInt(couponTypeId)); if(ecCouponType!=null){ request.setAttribute("couponTypeId", ecCouponType.getCouponTypeId()); request.setAttribute("couponTypeNo", ecCouponType.getCouponTypeNo()); request.setAttribute("couponTypeName", ecCouponType.getCouponTypeName()); request.setAttribute("couponFee", ecCouponType.getCouponFee()); request.setAttribute("discountFee", ecCouponType.getDiscountFee()); request.setAttribute("convertPoints", ecCouponType.getConvertPoints()); request.setAttribute("couponTypeNotes", ecCouponType.getCouponTypeNotes()); request.setAttribute("isECuponHidd", ecCouponType.getIsECupon()); request.setAttribute("isReuseHidd", ecCouponType.getIsReuse()); request.setAttribute("isMultiUseHidd", ecCouponType.getIsMultiUse()); request.setAttribute("useTypeHidd", ecCouponType.getUseType()); request.setAttribute("picUrl", ecCouponType.getCouponPicUrl()); request.setAttribute("orderTypeLimitHidd", ecCouponType.getOrderTypeLimit()); int orderFeeLimit = ecCouponType.getOrderFeeLimit(); if(orderFeeLimit!=0){ request.setAttribute("orderFeeLimitHidd", "1"); request.setAttribute("orderFee", orderFeeLimit); }else{ request.setAttribute("orderFeeLimitHidd", orderFeeLimit); } int useAmountLimit = ecCouponType.getUseAmountLimit(); if(useAmountLimit!=0){ request.setAttribute("useAmountLimitHidd", "1"); request.setAttribute("useAmount", useAmountLimit); }else{ request.setAttribute("useAmountLimitHidd", useAmountLimit); } request.setAttribute("isLimitGoodsHidd", ecCouponType.getIsLimitGoods()); request.setAttribute("isLimitPay", ecCouponType.getIsLimitPay()); request.setAttribute("paymentTypeNos", ecCouponType.getPaymentTypeNos()); request.setAttribute("standby4", ecCouponType.getStandby4()); request.setAttribute("standby1", ecCouponType.getStandby1()); request.setAttribute("standby2", ecCouponType.getStandby2()); request.setAttribute("standby3", ecCouponType.getStandby3()); request.setAttribute("standby5", ecCouponType.getStandby5()); request.setAttribute("memberShip", ecCouponType.getMemberShip()); request.setAttribute("limitMemberRoleIds", ecCouponType.getLimitMemberRoleIds()); } } return "/jsp/promote/ec_coupon_type_add.jsp"; }
不同的useType,,展示的input标签不同,使用onchange时间
<td class="queryTitle" >类型</td>
                <td class="queryContent" colspan="3">
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="0" checked="checked"/>优惠券
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="1"/>抵用券
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="2"/>折扣劵
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="3"/>补偿劵
                    <input type="hidden" id="useTypeHidd" value="${useTypeHidd}">
                </td>

 

//修改类型
function changeUseType(){
    //类型
    var useType = $('input:radio[name="useType"]:checked').val();
    if(useType == 2){
            //展示 折扣  标签
        $('#discountFeeText').html("折扣");
           //展示 
        $('#zkText').css('display','');
    }else{
        $('#discountFeeText').html("优惠金额");
           //不展示
        $('#zkText').css('display','none');
    }
}





不同的useType,展示的内容不尽相同。
从上图看一看出,优惠券的添加,有基本信息,使用条件两个tab,这是如何实现的呢?



<div id="orderInfoDlg" >
    <div title="基本信息" id="tabSale" closable='false' style="background: #fafafa;">
        <table class="queryTable" width="99%">
            <tr>
                <td class="queryTitle" width="100">优惠券编码</td>
                <td class="queryContent" >
                    <input id="couponTypeNo" name="couponTypeNo" style="width:200px;height:20px" class="inputText" value="${couponTypeNo}">
                    <label id="couponTypeNot" style="color: red;display: none;">* 优惠券编码不能为空</label>
                </td>
                <td class="queryTitle" width="100">优惠券名称</td>
                <td class="queryContent" >
                    <input  id="couponTypeName" name="couponTypeName" style="width: 200px;"  class="inputText" value="${couponTypeName}"/>
                    <label id="couponTypeNameNot" style="color: red;display: none;">* 优惠券名称不能为空</label>        
                </td>
            </tr>
            <tr>
                <td class="queryTitle" width="100">优惠券面额</td>
                <td class="queryContent" >
                    <input id="couponFee" name="couponFee" style="width:200px;height:20px" class="inputText" value="${couponFee}">
                    <label id="couponFeeNot" style="color: red;display: none;">* 优惠券面额不能为空</label>
                </td>
                <td class="queryTitle" id="discountFeeText" = width="100">优惠金额</td>
                <td class="queryContent" >
                    <input  id="discountFee" name="discountFee" style="width: 200px;"  class="inputText" value="${discountFee}"/>
                    <label id="zkText" style="color:red;display: none;">(注:折扣率输入格式为0.0或0.00。例:5折输入0.5)</label>    
                    <label id="discountFeeNot" style="color: red;display: none;">* 优惠金额不能为空</label>        
                </td>
            </tr>
            <tr>
                <td class="queryTitle" >可兑换积分</td>
                <td class="queryContent" colspan="2">
                    <input  id="convertPoints" name="convertPoints" style="width: 200px;"  class="inputText" value="${convertPoints}"/>
                </td>
                <td class="queryContent">
                    <input type="checkbox" id="isECupon" name="isECupon" value="Y"/>
                    <input type="hidden" id="isECuponHidd" value="${isECuponHidd}">
                    电子优惠券
                </td>
            </tr>
            <tr>
                <td class="queryTitle" >是否可复用</td>
                <td class="queryContent">
                    <input type="checkbox" id="isReuse" name="isReuse" value="Y"/>
                    <input type="hidden" id="isReuseHidd" value="${isReuseHidd}">
                    可复用
                </td>
                <td class="queryTitle" >是否可叠加使用</td>
                <td class="queryContent">
                    <input type="checkbox" id="isMultiUse" name="isMultiUse" value="Y"/>
                    <input type="hidden" id="isMultiUseHidd" value="${isMultiUseHidd}">
                    可叠加使用
                </td>
            </tr>
            <tr>
                <td class="queryTitle" >类型</td>
                <td class="queryContent" colspan="3">
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="0" checked="checked"/>优惠券
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="1"/>抵用券
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="2"/>折扣劵
                    <input type="radio" id="useType" name="useType" onchange="changeUseType()" value="3"/>补偿劵
                    <input type="hidden" id="useTypeHidd" value="${useTypeHidd}">
                </td>
            </tr>
            <tr>
                <td class="queryTitle" >优惠券图片</td>
                <td class="queryContent" colspan="3">
                        <img id="uploadImg"  src="${ctx }/images/common/emptyImg.jpg"" style="border:solid 1px #ccc;padding:3px;width:50px;height:36px;cursor:hand"/><!-- <span style="color:red;font-size:10px">&nbsp;&nbsp;&nbsp;&nbsp;(图片尺寸必须为:118*81)</span> -->
                        <span id="spanButtonPlaceHolder"></span>
                        <div id="content">
                            <div id="divStatus" >0个文件已经上传</div>
                            <div  id="fsUploadProgress"></div>
                            <input id="btnCancel" type="button" value="Cancel All Uploads" onclick="swfu.cancelQueue();" disabled="disabled" style="margin-left: 2px; font-size: 8pt; height: 25px; display: none" />
                            <span id="batchNoUploadId" style="display: none;"></span>
                        </div>
                        <input type="hidden" id="picUrl" name="topicPic"  class="inputText"  value="${picUrl}" />
                </td>
            </tr>
            <tr>
                <td class="queryTitle" >优惠券描述</td>
                <td class="queryContent" colspan="3">
                    <textarea id="couponTypeNotes" name="couponTypeNotes" rows="5" cols="10" style="width: 680px;" class="inputText">${couponTypeNotes}</textarea>      
                </td>
            </tr>
        </table>
        <div>
            <table id="skuInfoForOrder" class="queryTable" style="margin-top: 0px;background: #fafafa;"></table>
        </div>
    </div>
    <div title="使用条件" id="tabOrderReceive" style="margin-bottom: 5px;" closable='false' style="background: #fafafa;">
        <table class="queryTable" width="100%">
             <tr>
                 <td class="queryContent">
                    订单类型条件<br/>
                    <input type="radio" id="orderTypeLimit" name="orderTypeLimit" value="0"  onclick="useOrderTypeLimit()"/>适用于海外购订单
                    <input type="radio" id="orderTypeLimit" name="orderTypeLimit" value="1" onclick="useOrderTypeLimit()" />适用于普通商品订单
                    <input type="radio" id="orderTypeLimit" name="orderTypeLimit" value="2" checked="checked" onclick="useOrderTypeLimit()"/>适用于所有订单
                    <input type="hidden" id="orderTypeLimitHidd" value="${orderTypeLimitHidd}">
                </td>
            </tr>
        </table>
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    订单额条件<br/>
                    <input type="radio" id="orderFeeLimit" name="orderFeeLimit" value="0" checked="checked" onclick="orderFeeRadio()"/>适用所有订单
                    <input type="radio" id="orderFeeLimit" name="orderFeeLimit" value="1" onclick="orderFeeRadio()"/>订单额满足
                    <input type="text" id="orderFee" name="orderFee" style="width: 100px;display: none" value="${orderFee}"/>
                    <input type="hidden" id="orderFeeLimitHidd" value="${orderFeeLimitHidd}">
                    <label id="orderFeeNot" style="color: red;display: none;">* 订单额不能为空</label>
                </td>
            </tr>
        </table>
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    使用限制<br/>
                    <input type="radio" id="useAmountLimit" name="useAmountLimit" value="0" checked="checked" onclick="useAmountRadio()"/>不限制
                    <input type="radio" id="useAmountLimit" name="useAmountLimit" value="1" onclick="useAmountRadio()"/>单笔订单限用张数
                    <input type="text" id="useAmount" name="useAmount" style="width: 100px;display: none" value="${useAmount}"/>
                    <input type="hidden" id="useAmountLimitHidd" value="${useAmountLimitHidd}">
                    <label id="useAmountNot" style="color: #ff0000;display: none;">* 限用张数不能为空</label>
                </td>
            </tr>
        </table>
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    适用商品范围<br/>
                    <input type="radio" id="isLimitGoods" name="isLimitGoods" value="N" checked="checked" onclick="goodsRadio()"/>适用全场商品
                    <input type="radio" id="isLimitGoods" name="isLimitGoods" value="H" onclick="goodsRadio()"/>适用海外购商品
                    <input type="radio" id="isLimitGoods" name="isLimitGoods" value="Y" onclick="goodsRadio()"/>适用如下指定商品
                    <input type="hidden" id="isLimitGoodsHidd" value="${isLimitGoodsHidd}">
                    <br>
                    <a class="easyui-linkbutton" iconCls="icon-add" href="javascript:void(0)" onclick="addGoodsDlg()">添加适用商品</a>
                    <a class="easyui-linkbutton" iconCls="icon-add" href="javascript:void(0)" onclick="addGoodsDlgCatalog()">添加适用类目商品</a>
                </td>
            </tr>
        </table>
        <label id="addGoodsGridShow" style="display: none;">
            <table id="addGoodsPromoteGrid" ></table>
        </label>

        <!--
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    使用渠道<br/>
                    <input type="checkbox" name="publishRangeC" id="appCheck" value="app"/>APP
                    <input type="checkbox" name="publishRangeC" id="wapCheck" value="wap"/>M站
                    <input type="checkbox" name="publishRangeC" id="webCheck" value="web"/>PC
                </td>
            </tr>
        </table>

            -->
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    适用会员范围<br/>
                    <input type="hidden" id="membershipvalue" value="${ memberShip}"/>
                    <span id='membershipcontent'></span>
                </td>
            </tr>
        </table>
        
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    适用支付范围<br/>
                    <input type="hidden" id="isLimitzfHidd" value="${isLimitPay}">
                    <input type="hidden" id="paymentTypeNosHidd" value="${paymentTypeNos}">
                    
                    <input type="radio" name="isLimitzf" value="N" checked="checked" onclick="limitZF()"/>适用全场支付方式
                    <input type="radio" name="isLimitzf" value="Y" onclick="limitZF()"/>如下指定支付方式不能使用
                    <div id="isLimitzfdiv" style="display:none;"></div>
                </td>
            </tr>
        </table>
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    <input type="hidden" id="standby1value" value="${standby1}"/>
                    <input type="hidden" id="standby2value" value="${standby2}"/>
                    <input type="hidden" id="standby4value" value="${standby4}"/>
                    <input type='checkbox' id="STANDBY1" onclick="showStandby4Win()"/>是否有限制次数
                    <input type="text" id="STANDBY4" name="STANDBY4" style="width: 50px;display: none" value="${standby4}" onkeyup="value=value.replace(/[^\d]/g,'')"/>
                    <input type="checkbox" id="STANDBY2" name="STANDBY2" />是否需要手机验证
                </td>
            </tr>
        </table>
        <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    不可以使用优惠券的特殊会员名单
                    <br/>
                    <a class="easyui-linkbutton" iconCls="icon-add" href="javascript:void(0)" onclick="showAddLimitSpecialMembers(null,<%=com.j1.member.type.MemberRankType.huiyuantejia.getType()%>)">添加特殊会员</a>
                    <input type="hidden" id="eccouponTypeId" value="">
                </td>
            </tr>
        </table>
        <label id="limitSpecialMembersShow" style="display: none;">
            <table id="showLimitSpecialMembersGrid"></table>
        </label>
    </div>
     
</div>

 在优惠券管理界面中,有个button 是“适用商品”,这个是如何实现的呢?

 

 
 
   <!--  用div进行封装  -->

<div id="querySkuCommentDld" class="easyui-window" title="" iconCls="icon-search" style="width:300px; height:300px;text-align:center; background: #fafafa;">
   <table id="addGoodsPromoteGrid" ></table>
</div>
//查看适用商品
function queryGoods(rowData){
    $('#querySkuCommentDld').window({
        title:'适用商品',
        iconCls:'icon-search',
        width:570,
        height:360,
        left:100,
        modal: true,
        shadow: true,
        collapsible:false,
        minimizable:false,
        maximizable:false
    });
    $('#querySkuCommentDld').window('move',{top:0});
    $('#querySkuCommentDld').window('open');
    
    goodsGrid(rowData.couponTypeId);
}




function goodsGrid(id){
    $('#addGoodsPromoteGrid').datagrid({
        url:appPath+'/page/couponType/goodsListByCoupon',
        method:'post',
        queryParams:{couponTypeId:id},
        height:240,
        width:'auto',
        singleSelect:true,
        striped: true,
        remoteSort:false,
        checkbox:false,
        idField:'couponTypeGoodsTempId',
//        frozenColumns:[[
//                        {field:'id',title:'操作',width:60,align:'center',
//                          formatter:function(value,rowData,rowIndex){
//                              var dataStr = JSON.stringify(rowData);
//                              return "<a href='javascript:void(0)'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/cancel.png' title='删除' onClick='delGoods("+dataStr+")'/></a>&nbsp;";
//                          }
//                      }
//                  ]],
        columns:[[   
                  {field:'goodsNo',title:'商品编码',width:80,align:'center',sortable:true},
                  {field:'goodsName',title:'商品名称',width:140,align:'left',sortable:true},
                  {field:'unitName',title:'商品单位',width:140,align:'left',sortable:true},
                  {field:'marketPrice',title:'市场价',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}},
                  {field:'ecPrice',title:'售价',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}},
                  {field:'availableStock',title:'库存',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}}
                 ]],     
         pagination:true,
         rownumbers:true
    });
}

 



    /**
     * 获取优惠券类型对应的商品
     * @param request
     * @param EcPromoteRule
     * @return
     */

       //Action 层
    @RequestMapping(value="/goodsListByCoupon")
    @ResponseBody
    public Map<String,Object> goodsListByCoupon(HttpServletRequest request,EcCouponTypeGoods ecCouponTypeGoods)
    {
        String pageNo = request.getParameter("page");
        String pageSize = request.getParameter("rows");
        return ecCouponTypeService.queryGoodsListByCoupon(ecCouponTypeGoods, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
    }
    //Service层
/**
     * 获取优惠券类型对应的商品
     * @param ecCouponTypeGoods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryGoodsListByCoupon(EcCouponTypeGoods ecCouponTypeGoods, int pageNo, int pageSize);





     //Service的实现层
/**
     * 获取优惠券类型对应的商品
     * @param ecCouponTypeGoods
     * @param pageNo
     * @param pageSize
     * @return
     */
    @Cached(name="ecCouponTypeGoods")
    public Map<String, Object> queryGoodsListByCoupon(EcCouponTypeGoods ecCouponTypeGoods, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("ecCouponTypeGoods.getGoodsByEcCouponTypeCount","ecCouponTypeGoods.getGoodsByEcCouponTypeList", ecCouponTypeGoods, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
<!--优惠券类型添加商品LIST-->
    <select id="getGoodsByEcCouponTypeList" resultMap="ecCouponTypeGoodsRes" parameterClass="EcCouponTypeGoods">
        select 
             pg.*,
             g.goods_no as goodsNo,
             g.goods_name as goodsName,
             pu.unit_name as unitName,
             g.good_stock as goodStock,
             g.available_stock as availableStock,
             g.market_price as marketPrice,
             g.ec_price as ecPrice 
        from 
             EC_COUPON_TYPE_GOODS pg 
             left join goods g on pg.goods_id=g.goods_id and g.is_delete='N'
             left join product p on g.product_id=p.product_id and p.is_delete='N'
             left join product_unit pu on p.unit_id=pu.unit_id
        where pg.is_delete='N'
        <isNotEmpty prepend="and" property="couponTypeId">
            pg.COUPON_TYPE_ID = #couponTypeId#
        </isNotEmpty>
    </select>
    
    <!--优惠券类型添加商品count-->
    <select id="getGoodsByEcCouponTypeCount" resultClass="Integer" parameterClass="EcCouponTypeGoods">
        select 
             count(1)
        from 
             EC_COUPON_TYPE_GOODS pg 
             left join goods g on pg.goods_id=g.goods_id and g.is_delete='N'
             left join product p on g.product_id=p.product_id and p.is_delete='N'
             left join product_unit pu on p.unit_id=pu.unit_id
        where pg.is_delete='N'
        <isNotEmpty prepend="and" property="couponTypeId">
            pg.COUPON_TYPE_ID = #couponTypeId#
        </isNotEmpty>
    </select>
    

下一步是删除,其实删除很简单,只要把is_delete  改为N 就可以了。

 

//删除数据
function del(rowData){
    $.messager.confirm('提示信息','您确定要删除这条记录?',function(r){
        if(r){
            doAjax({
                url:appPath+'/page/couponType/delEcCouponType',
                type:'post',
                data:{couponTypeId:rowData.couponTypeId,isDelete:'Y'},
                success:function(data){
                    if(data='ok'){
                        $.messager.alert('提示信息','删除成功!','info');
                    }
                    doReload();
                },
                error:function(XMLHttpRequest, textStatus, errorThrown){
                    $.messager.alert('提示信息','删除失败!','info');
                    doReload();
                }
            });    
        }
    });
    
}
/**
     * 更新优惠券类型列表
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/delEcCouponType")
    @ResponseBody
    public String delEcCouponType(HttpServletRequest request,EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods)
    {
        Integer userId = (Integer)request.getSession().getAttribute("userId");
        
        ecCouponType.setEditUserId(userId);
        ecCouponType.setEditTime(DateUtils.longToDateAll(System.currentTimeMillis()));
        
        ecCouponTypeGoods.setEditUserId(userId);
        ecCouponTypeGoods.setEditTime(DateUtils.longToDateAll(System.currentTimeMillis()));
        ecCouponTypeGoods.setCouponTypeId(Long.valueOf(ecCouponType.getCouponTypeId()));
        ecCouponTypeGoods.setIsDelete("Y");
        
        ecCouponTypeService.delEcCouponType(ecCouponType, ecCouponTypeGoods);
        
        return "ok";
    }
    /**
     * 删除优惠券类型
     * @param ecCouponType
     * @param ecCouponTypeGoods
     */
    @CacheRemove(name="ecCouponType-ecCouponTypeGoods")
    public void delEcCouponType(EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods){
        commonDao.update("EcCouponType.updateById",ecCouponType);
        commonDao.update("ecCouponTypeGoods.updateByCouponTypeId",ecCouponTypeGoods);
    }
<!-- 根据优惠券类型ID更新商品状态 -->
    <update id="updateByCouponTypeId" parameterClass="EcCouponTypeGoods">
        update EC_COUPON_TYPE_GOODS
        set IS_DELETE = #isDelete#
        where COUPON_TYPE_ID = #couponTypeId#
    </update>
至此,第一个简单的页面上所有的功能基本就结束了。
下面我们来看一下,在新增页面上的一些知识点。




可以看到在添加数据的时候,没有输入相应的数据,会出现红色的提示,这个是怎么实现的呢?

<td class="queryTitle" width="100">优惠券编码</td>
                <td class="queryContent" >
                    <input id="couponTypeNo" name="couponTypeNo" style="width:200px;height:20px" class="inputText" value="${couponTypeNo}">
                    <label id="couponTypeNot" style="color: red;display: none;">* 优惠券编码不能为空</label>
                </td>

 

//保存
function goToPromote(){
    //使用渠道
    var publishRange = "";
    if($("#appCheck").attr("checked")){
        publishRange += "app,";
    }
    if($("#wapCheck").attr("checked")){
        publishRange += "wap,";
    }
    if($("#webCheck").attr("checked")){
        publishRange += "web,";
    }
    publishRange = publishRange.substring(0,publishRange.length-1);

    //适用会员范围
    var memberShip = '';
    $("input[name='memberShip']").each(function(){ 
         if($(this).attr("checked"))
             memberShip += $(this).val()+",";
    });  
    
    //优惠券编码
    var couponTypeNo = $('#couponTypeNo').val();
    //优惠券名称
    var couponTypeName = $('#couponTypeName').val();
    //优惠券面额
    var couponFee = $('#couponFee').val();
    //优惠金额
    var discountFee = $('#discountFee').val();
    //可兑换积分
    var convertPoints = $('#convertPoints').val();
    //电子优惠券
    var isECupon  = $('input:checkbox[name="isECupon"]:checked').val();
    //是否可复用
    var isReuse = $('input:checkbox[name="isReuse"]:checked').val();
    //是否可叠加使用
    var isMultiUse = $('input:checkbox[name="isMultiUse"]:checked').val();
    //类型
    var useType = $('input:radio[name="useType"]:checked').val();
    //优惠券图片
    var picUrl = $('#picUrl').val();
    //优惠券描述
    var couponTypeNotes = $('#couponTypeNotes').val();
    //订单额条件
    var orderFeeLimit = $('input:radio[name="orderFeeLimit"]:checked').val();
    var orderFee = $('#orderFee').val();
    //订单类型条件
    var orderTypeLimit = $('input:radio[name="orderTypeLimit"]:checked').val();
    //使用限制
    var useAmountLimit = $('input:radio[name="useAmountLimit"]:checked').val();
    var useAmount = $('#useAmount').val();
    //适用商品范围
    var isLimitGoods = $('input:radio[name="isLimitGoods"]:checked').val();
    //
    //限制次数标志
    var standby1='N';
    if($("#STANDBY1").attr("checked")){
        standby1='Y';
    }
    //限制次数
    var standby4='0';
    if(standby1=='Y'){
        standby4 = $("#STANDBY4").val();
    }
    //手机校验标志
    var standby2 = 'N';
    if($("#STANDBY2").attr("checked")){
        standby2='Y';
    }
    //限制领取标志
    var standby3='N';
    if($("#STANDBY3").attr("checked")){
        standby3='Y';
    }
    //限制领取次数
    var standby5='0';
    if(standby3=='Y'){
        standby5 = $("#STANDBY5").val();
    }
    ////
    if(couponTypeNo==''){
        $('#couponTypeNot').css('display','');
        return;
    }else{
        $('#couponTypeNot').css('display','none');
    }
    if(couponTypeName==''){
        $('#couponTypeNameNot').css('display','');
        return;
    }else{
        $('#couponTypeNameNot').css('display','none');
    }
    if(couponFee==''){
        $('#couponFeeNot').css('display','');
        return;
    }else{
        $('#couponFeeNot').css('display','none');
    }
    if(isNaN(couponFee) || couponFee.indexOf(".")>0){
        $.messager.alert('提示信息','优惠券面额请输入数字!','info'); 
        return;
    }
    if(discountFee==''){
        $('#discountFeeNot').css('display','');
        return;
    }else{
        $('#discountFeeNot').css('display','none');
    }
    
    if(useType == 2){
        if(isNaN(discountFee)){
            $.messager.alert('提示信息','折扣请输入数字!','info'); 
            return;
        }
    }else if(isNaN(discountFee) || discountFee.indexOf(".")>0){
        $.messager.alert('提示信息','优惠金额请输入数字!','info'); 
        return;
    }
    if(isNaN(convertPoints) || convertPoints.indexOf(".")>0){
        $.messager.alert('提示信息','可兑换积分请输入数字!','info'); 
        return;
    }
    
    if(isECupon!='Y'){
        isECupon = 'N';
    }
    if(isReuse!='Y'){
        isReuse = 'N';
    }
    if(isMultiUse!='Y'){
        isMultiUse = 'N';
    }
    if(orderFeeLimit=='1'){
        orderFeeLimit = orderFee;
        if(isNaN(orderFee) || orderFee.indexOf(".")>0){
            $.messager.alert('提示信息','订单额满足条件请输入数字!','info'); 
            return;
        }
    }
    if(useAmountLimit=='1'){
        useAmountLimit = useAmount;
        if(isNaN(useAmount) || useAmount.indexOf(".")>0){
            $.messager.alert('提示信息','单笔订单限用张数请输入数字!','info'); 
            return;
        }
    }
    
    var type = "save";
    if($('#couponTypeId').val()!=''){
        type = "update";
    }
    
    
    //add by zp  支付方式使用范围  isLimitPay paymentTypeNos
    var isLimitPay = $("input:radio[name='isLimitzf']:checked").val();
    var paymentTypeNos ="";
    if(isLimitPay=='Y'){
        var paymentTypeNo = $("input:checkbox[name='paymentTypeNo']:checked");
        $.each(paymentTypeNo,function(i,no){
            paymentTypeNos +=$(no).val();
            if((i+1)!=paymentTypeNo.length){
                paymentTypeNos += ",";
            }
        });
        if(paymentTypeNos==''){
            $.messager.alert('提示信息','请选择支付范围!','info'); 
            return;
        }
    }
    
    //可领取的场合,领取张数必须入力
    if(standby3=='Y'){
        if(standby5<=0){
            $.messager.alert('提示信息','请输入可领取数量!','info'); 
            return;
        }
    }
    
    var limitMemberRoleIds = "";//限制会员角色id,多个以逗号隔开
    var myspans = $("a[class='myspan']");
    for (var i = 0; i < myspans.length; i++) {
            limitMemberRoleIds +=myspans[i].getAttribute("myData")+",";
    }
     
    var data={couponTypeId:$('#couponTypeId').val(),type:type,couponTypeNo:couponTypeNo,couponTypeName:couponTypeName,
             couponFee:couponFee,discountFee:discountFee,convertPoints:convertPoints,isECupon:isECupon,
             isReuse:isReuse,couponPicUrl:picUrl,couponTypeNotes:couponTypeNotes,orderFeeLimit:orderFeeLimit,orderTypeLimit:orderTypeLimit,
             useAmountLimit:useAmountLimit,isLimitGoods:isLimitGoods,isMultiUse:isMultiUse,useType:useType,isDelete:'N',memberShip:memberShip,
             isLimitPay:isLimitPay,paymentTypeNos:paymentTypeNos,standby1:standby1,standby2:standby2,standby4:standby4,standby3:standby3,standby5:standby5,limitMemberRoleIds:limitMemberRoleIds,ywCatalogIds:$("#ywCatalogIdsHid").val(),
             publishRange:publishRange
    };
    doAjax({
        url:appPath+'/page/couponType/update',
        type:'post',
        data:data,
        success:function(data){
            if(data=='ok'){
                $.messager.alert('提示信息','保存成功','info');
            }
            var frameName = $(window.parent.document).find("#promoteRuleFrameName").val();
            window.parent.window.document.getElementById(frameName).contentWindow.doReload();
            parentWindow.closeSubTab(parentWindow.tabObject["frame_ruleFrame"]);
            if(window.opener){
                window.close();
            }
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            $.messager.alert('提示信息','抱歉,保存失败,'+textStatus,'error');
        }
    });        
}

知识点在于这些:

<td class="queryTitle" width="100">优惠券编码</td>
<td class="queryContent" >
   <input id="couponTypeNo" name="couponTypeNo" style="width:200px;height:20px" class="inputText" value="${couponTypeNo}">
   <label id="couponTypeNot" style="color: red;display: none;">* 优惠券编码不能为空</label>
</td>
    
//在添加未输入数据的时候进行提示红色标记数据
if(couponTypeNo==''){
        $('#couponTypeNot').css('display','');
        return;
    }else{
        $('#couponTypeNot').css('display','none');
    }
//checkbox与radio的取值


//是否可叠加使用
    var isMultiUse = $('input:checkbox[name="isMultiUse"]:checked').val();
    //类型
    var useType = $('input:radio[name="useType"]:checked').val();




1、采用dom的方式可以如下
<body>
  <input type='checkbox' id='aaa'/>
</body>
<script>
  if(document.getElementById('aaa').checked){
  }else{
    alert('没有选中');
  }
</script>
2、采用jquery的方式如下
$('#aaa').attr('checked');

 

var appPath = getAppPath();    
var parentWindow;
var cnt = 0;
var loadCnt = 0;
$(function(){
    
         
        //获取适用会员范围
        doAjax({
            url:appPath+'/page/couponType/memberShiplist',
            type:'post',
            success:function(data){
                var content = '';
                $(data).each(function(i){
                        content += '<input type="checkbox"  name="memberShip" value="'+data[i].key;
                        //if(data[i].value=='全部') content += '" checked="checked';
                        content += '" />'+data[i].value;
                }) 
                $("#membershipcontent").html(content);
                if($('#couponTypeId').val()!=''&&$('#membershipvalue').val()!=''){
                     $($('#membershipvalue').val().split(",")).each(function(i){
                         $("input[name='memberShip']").each(function(){
                             if($(this).val()==$('#membershipvalue').val().split(",")[i])
                               $(this).attr("checked","true");
                                 
                        });  
                     })
                } 
            } 
        });
    initPublishRangeC($('#couponTypeId').val());
    $('#addLimitSpecialMembersDlg').window('close');
    $('#addGoodsDlg').window('close');
    $('#addLeiGoodsDlg').window('close');  
    $('#ljOrderDlg').window('close');
    $('#ljGoodsDlg').window('close');
    $('#myOrderDlg').window('close');
    $('#addDlg2').window('close');
    $('#hgOrderDlg').window('close');
    $('#customAreaTree').window('close');
    $('#addGiftDlg').window('close');
    $('#fqOrderDlg').window('close');
    $('#opreateHtmlCategory').window('close');
    $("a.deleteArea").live("click",function(){
        $(this).parent().parent().remove();
    });
    
    if(window.opener){
        parentWindow = window.opener;
    }else{
        parentWindow = window.parent;
    }
    $("#site").combobox({ 
        url:appPath+"/page/promoteRule/0/dataForSelect",
        valueField:"id",  
        textField:"text",
        panelHeight:"auto",
        editable:false
    });
    $('#beginTime').datebox({  
        showSeconds:false,
        editable:false 
    }); 
    $('#endTime').datebox({  
        showSeconds:false,
        editable:false 
    });
    $("input[name='memberShip']").live("change",function(){
        var o_value = $(this).val();
        var o_checked = $(this).attr("checked");
        if(o_checked == 'checked' && o_value!='all'){
            $("input[value='all']").removeAttr('checked');
        }else if(o_checked == 'checked' && o_value=='all'){
            var memberShips = $("input[name='memberShip']");
            for(var i=0;i<memberShips.length;i++){
                memberShips[i].checked = '';
            }
            $(this).attr('checked','checked');
        }
    });
    //初始化TAB内容
    //if($('#promoteRuleId').val() == ''){
        //得到促销ID
        getId();
    //}
        
        createTree("euTree",{onClick:function(node){currentNode = node;
        showInfo();},skipCheckDisplay:"T"});
    initTabs(); 
});

上面的代码是初始化页面的时候就去执行的

initTabs();是初始化tab,(基本信息,使用条件)
/**
 * 订单内容TAB页初始化(默认初始化第一页)
 */
function initTabs(){
    $('#effectivePeriodDate').datebox({  
        showSeconds:false  
    }); 
    $("#effectiveDateUnit").combobox({  
        editable:false
    });
    $("#orderInfoDlg").tabs({
        border:false,
        cache:false,
        onSelect:function(title){
            if(title == '基本信息'){
                titleSelected = title;
/*                if($('#orderType').val() == ''){
                    $.messager.alert('提示信息','规则编码不能为空','info'); 
                    return ;
                }else if($('#isMultiBatch').val() == ''){
                    $.messager.alert('提示信息','规则名称不能为空','info'); 
                    return ;
                }*/
                
            }else if(title == '会员条件'){
                titleSelected = title;
//                memberRadio();
//                memberGrid();
            }else if(title == '商品条件'){
                titleSelected = title;
//                goodsGrid();
//                goodsLeiGrid();
            }else if(title == '整单条件'){
                titleSelected = title;
                $("#payment").combobox({ 
                    url:appPath+"/page/promoteRule/1/dataForSelect",
                    valueField:"id",  
                    textField:"text",
                    panelHeight:"auto",
                    editable:false
                });
                $("#paymentNo").combobox({ 
                    url:appPath+"/page/promoteRule/1/dataForSelect",
                    valueField:"id",  
                    textField:"text",
                    panelHeight:"auto",
                    editable:false
                });
            }else if(title == '优惠方案'){
                if($('input:radio[name="promoteType"]:checked').val() == 'goods'){
                    $('#disabled').css('display','none');
                    $('#disabledNo').css('display','');
                }else{
                    $('#disabled').css('display','');
                    $('#disabledNo').css('display','none');
                }
                titleSelected = title;
            }
        }
    });
}
<td class="queryContent">
                    订单类型条件<br/>
                    <input type="radio" id="orderTypeLimit" name="orderTypeLimit" value="0"  onclick="useOrderTypeLimit()"/>适用于海外购订单
                    <input type="radio" id="orderTypeLimit" name="orderTypeLimit" value="1" onclick="useOrderTypeLimit()" />适用于普通商品订单
                    <input type="radio" id="orderTypeLimit" name="orderTypeLimit" value="2" checked="checked" onclick="useOrderTypeLimit()"/>适用于所有订单
                    <input type="hidden" id="orderTypeLimitHidd" value="${orderTypeLimitHidd}">
                </td>
//订单类型条件选择
function useOrderTypeLimit(){
    var val=$('input:radio[name="orderTypeLimit"]:checked').val();
    if(val == '0'){
        $("input[name='isLimitGoods'][value='H']").attr("checked",true);
    }else{
        $("input[name='isLimitGoods'][value='N']").attr("checked",true);
    }
    $('#addGoodsGridShow').css('display','none');
    $('#addGoodsLeiGridShow').css('display','none');
}

 

    <table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    订单额条件<br/>
                    <input type="radio" id="orderFeeLimit" name="orderFeeLimit" value="0" checked="checked" onclick="orderFeeRadio()"/>适用所有订单
                    <input type="radio" id="orderFeeLimit" name="orderFeeLimit" value="1" onclick="orderFeeRadio()"/>订单额满足
                    <input type="text" id="orderFee" name="orderFee" style="width: 100px;display: none" value="${orderFee}"/>
                    <input type="hidden" id="orderFeeLimitHidd" value="${orderFeeLimitHidd}">
                    <label id="orderFeeNot" style="color: red;display: none;">* 订单额不能为空</label>
                </td>
            </tr>
        </table>

 

 
 
 
//订单额条件选择
function orderFeeRadio(){
    var val=$('input:radio[name="orderFeeLimit"]:checked').val();
    if(val == '0'){
        $('#orderFee').css('display','none');
        $('#orderFee').val('');
    }else{
        $('#orderFee').css('display','');
    }
}





如何拿到这里面的值呢?
 
  
<td class="queryContent">
订单额条件<br/>
<input type="radio" id="orderFeeLimit" name="orderFeeLimit" value="0" checked="checked" οnclick="orderFeeRadio()"/>适用所有订单
<input type="radio" id="orderFeeLimit" name="orderFeeLimit" value="1" οnclick="orderFeeRadio()"/>订单额满足
<input type="text" id="orderFee" name="orderFee" style="width: 100px;display: none" value="${orderFee}"/>
<input type="hidden" id="orderFeeLimitHidd" value="${orderFeeLimitHidd}">
<label id="orderFeeNot" style="color: red;display: none;">* 订单额不能为空</label>
</td>



//
订单额条件 if(orderFeeLimit=='1'){ orderFeeLimit = orderFee; if(isNaN(orderFee) || orderFee.indexOf(".")>0){ $.messager.alert('提示信息','订单额满足条件请输入数字!','info'); return; } }

 

 
 

<table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    适用商品范围<br/>
                    <input type="radio" id="isLimitGoods" name="isLimitGoods" value="N" checked="checked" onclick="goodsRadio()"/>适用全场商品
                    <input type="radio" id="isLimitGoods" name="isLimitGoods" value="H" onclick="goodsRadio()"/>适用海外购商品
                    <input type="radio" id="isLimitGoods" name="isLimitGoods" value="Y" onclick="goodsRadio()"/>适用如下指定商品
                    <input type="hidden" id="isLimitGoodsHidd" value="${isLimitGoodsHidd}">
                    <br>
                    <a class="easyui-linkbutton" iconCls="icon-add" href="javascript:void(0)" onclick="addGoodsDlg()">添加适用商品</a>
                    <a class="easyui-linkbutton" iconCls="icon-add" href="javascript:void(0)" onclick="addGoodsDlgCatalog()">添加适用类目商品</a>
                </td>
            </tr>
        </table>
        <label id="addGoodsGridShow" style="display: none;">
            <table id="addGoodsPromoteGrid" ></table>
        </label>
//添加商品弹出框
function addGoodsDlg(){
    var val=$('input:radio[name="isLimitGoods"]:checked').val();
    if(val == 'Y'){
        $('#addGoodsDlg').window({
            title:'商品-添加',
            iconCls:'icon-add',
            width:993,
            height:500,
            left:50,
            modal: true,
            shadow: true,
            collapsible:false,
            minimizable:false,
            maximizable:false
        });
        $('#addGoodsDlg').window('move',{top:0});
        $('#addGoodsDlg').window('open');
        addGoodsGrid();
    }else{
        $.messager.alert('提示信息','请选择适用商品范围','info'); 
    }
}
function addGoodsGrid(){
    $('#goodsGrid').datagrid({
        url:appPath+'/page/couponType/goodsList',
        method:'post',
        height:350,
        width:'auto',
        striped: true,
        remoteSort:false,
        checkbox:false,
        idField:'goodsId',
        frozenColumns:[[
                        {field:'ck',checkbox:true}
                  ]],
        columns:[[   
                  {field:'goodsNo',title:'商品编码',width:80,align:'center',sortable:true},
                  {field:'goodsName',title:'商品名称',width:140,align:'left',sortable:true},
                  {field:'unitName',title:'商品单位',width:140,align:'left',sortable:true},
                  {field:'marketPrice',title:'市场价',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}},
                  {field:'ecPrice',title:'售价',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}},
                  {field:'availableStock',title:'库存',width:80,align:'right',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}}
                 ]],     
         pagination:true,
         rownumbers:true
    });
}

 

    
    
    /**
     * 商品列表
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/goodsList")
    @ResponseBody
    public Map<String,Object> goodsList(HttpServletRequest request,Goods goods)
    {
        String proCatalogId = request.getParameter("proCatalogId");
        String proYwCatalogId = request.getParameter("proYwCatalogId");
        if(null!=proCatalogId && !"".equals(proCatalogId)){
            String [] proCatalogIds = proCatalogId.split(",");
            goods.setProCatalogIds(proCatalogIds);
        }
        if(null!=proYwCatalogId && !"".equals(proYwCatalogId)){
            String [] proYwCatalogIds = proYwCatalogId.split(",");
            goods.setProYwCatalogIds1(proYwCatalogIds);
        }
        Integer catalogCount=ecCouponTypeService.CatalogCount(goods);
        String pageNo = request.getParameter("page");
        String pageSize = request.getParameter("rows");
        if(pageNo==null){
            pageNo="1";
            pageSize=catalogCount+"";
        }
        return ecCouponTypeService.queryGoodsList(goods, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
    }
    
    /**
     * 商品列表
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryGoodsList(Goods goods, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("Goods.getGoodsByPromoteCount","Goods.getGoodsByPromoteList", goods, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
<!--促销商品 -->
    <select id="getGoodsByPromoteList" resultMap="goodsPromoteResult" parameterType="Goods">
        select
        g.GOODS_ID,
        g.GOODS_NO,
        g.PRODUCT_ID,
        g.IS_DEFAULT,
        g.GOODS_NAME,
        g.GOODS_DESC,
        g.PROMOTE_PHRASE,
        g.BEGIN_TIME,
        g.END_TIME,
        g.DISCOUNT_PRICE,
        g.DISCOUNT_STOCK,
        g.MEMBER_BUY_LIMIT,
        g.GIFTS,
        g.GIFT_AMOUNT,
        g.RETURN_POINTS,
        g.RETURN_VOUCHERS,
        g.VOUCHERS_AMOUNT,
        g.IS_DELIVERY_FREE,
        g.MEMBER_RANKS,
        g.MEMBER_DISACOUNT,
        g.IS_GROUP,
        g.GOODS_LIMIT_DATE,
        g.TYING_GOODS_IDS,
        g.TYPING_GOODS_PRICE,
        g.DISCOUNT_STATE,
        g.MARKET_PRICE,
        g.EC_PRICE,
        g.available_stock,
        g.promote_rule_ids,
        pu.unit_name as unitName,
        p.is_onsale as isOnsale
        from
        goods g
        left join product p on g.product_id=p.product_id and p.is_delete='N'
        left join product_unit pu on p.unit_id=pu.unit_id
        left join product_yw_catalog_goods pyc on g.GOODS_NO = pyc.GOODS_NO
        where g.is_delete='N'
        <if test="skus != null">
            g.GOODS_NO in
            <foreach   item="sku"  collection="skus" open="(" close=")" separator=",">
                #{sku}
            </foreach>
        </if>
        <if test="goodsIds != null">
            g.GOODS_ID in
            <foreach  item="gid" collection="goodsIds" open="(" close=")" separator=",">
                #{gid}
            </foreach>
        </if>
        <if test="goodsNo != null">
            g.GOODS_NO = #{goodsNo}
        </if>
        <if test="goodsName != null">
            g.GOODS_NAME like '%${goodsName}%'
        </if>
        <if test="proCatalogIds != null">
            p.PRO_CATALOG_ID in
            <foreach  item="pid" collection="proCatalogIds" open="(" close=")" separator=",">
                to_number(#{pid})
            </foreach>
        </if>
        <if test="goodsId != null">
            g.GOODS_ID = #{goodsId}
        </if>
        <if test="discountState != null">
            g.DISCOUNT_STATE = #{discountState}
        </if>
        <if test="isOnsale != null">
            p.is_onsale = #{isOnsale}
        </if>
        <if test="proYwCatalogIds != null">
            pyc.WY_CATALOG_ID in
            <foreach  item="proid" collection="proYwCatalogIds" open="(" close=")" separator=",">
                to_number(#{proid})
            </foreach>
        </if>
    </select>
    <!--促销商品COUNT -->
    <select id="getGoodsByPromoteCount" resultType="Integer" parameterType="Goods">
        select
        count(*)
        from
        goods g
        left join product p on g.product_id=p.product_id and p.is_delete='N'
        left join product_unit pu on p.unit_id=pu.unit_id
        left join product_yw_catalog_goods pyc on g.GOODS_NO = pyc.GOODS_NO
        where g.is_delete='N'
        <if test="skus != null">
            g.GOODS_NO in
            <foreach  item="sku" collection="skus" open="(" close=")" separator=",">
                #{sku}
            </foreach>
        </if>
        <if test="goodsIds != null">
            g.GOODS_ID in
            <foreach  item="gid" collection="goodsIds" open="(" close=")" separator=",">
                #{gid}
            </foreach>
        </if>
        <if test="goodsName != null">
            g.GOODS_NAME like '%${goodsName}%'
        </if>
        <if test="proCatalogIds != null">
            p.PRO_CATALOG_ID in
            <foreach  item="proId" collection="proCatalogIds" open="(" close=")" separator=",">
                to_number(#{proId})
            </foreach>
        </if>
        <if test="goodsId != null">
            g.GOODS_ID = #{goodsId}
        </if>
        <if test="discountState != null">
            g.DISCOUNT_STATE = #{discountState}
        </if>
        <if test="isOnsale != null">
            p.is_onsale = #{isOnsale}
        </if>
        <if test="proYwCatalogIds != null">
            pyc.YW_GOODS_C_ID in
            <foreach  item="proId" collection="proYwCatalogIds" open="(" close=")" separator=",">
                to_number(#{proId})
            </foreach>
        </if>
    </select>

 

 

 

 

 

<table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    <input type="hidden" id="standby1value" value="${standby1}"/>
                    <input type="hidden" id="standby2value" value="${standby2}"/>
                    <input type="hidden" id="standby4value" value="${standby4}"/>
                    <input type='checkbox' id="STANDBY1" onclick="showStandby4Win()"/>是否有限制次数
                    <input type="text" id="STANDBY4" name="STANDBY4" style="width: 50px;display: none" value="${standby4}" onkeyup="value=value.replace(/[^\d]/g,'')"/>
                    <input type="checkbox" id="STANDBY2" name="STANDBY2" />是否需要手机验证
                </td>
            </tr>
        </table>

 

function showStandby4Win(){
    if($("#STANDBY1").attr("checked")){
        $('#STANDBY4').css('display','');
        $('#STANDBY4').attr('value','');
    }else{
        $('#STANDBY4').css('display','none');
        $('#STANDBY4').attr('value','');
    }
}


知识点的梳理:
使用table,
label标签
css的简单使用
//隐藏
 $('#STANDBY4').css('display','none');
//展示

$('#STANDBY4').css('display','');




<table class="queryTable" width="100%">
            <tr>
                <td class="queryContent">
                    不可以使用优惠券的特殊会员名单
                    <br/>
                    <a class="easyui-linkbutton" iconCls="icon-add" href="javascript:void(0)" onclick="
/**
 * 弹出添加限制特殊会员窗口
 * @param id
 * @param freedomType
 */
function showAddLimitSpecialMembers(id,freedomType){
    $("#freeDomTypeName").val("");
//    $("freeDomType").val("-1");
    
    var params = new Object();
    params.couponTypeId= id;
    params.freedomType= freedomType;
    
    loadLimitSpecialMembers(params,true);
}



/**
 * 添加特殊会员
 * @param id
 * @param freedomType
 */
function loadLimitSpecialMembers(params,isInitStatus){
    if(freedomType==null || freedomType.length==0){
        return ;
    }else{
        $('#addSpecialMemberGrid').datagrid({
            url:appPath+'/page/couponType/limitSpecialMemberList',
            method:'post',
            queryParams:params,
            height:240,
            width:'auto',
            striped: true,
            remoteSort:false,
            checkbox:true,
            idField:'id',
            frozenColumns:[[
                            {field : 'id',
                            checkbox : true}
                            ]],
            columns:[[   
                      {field:'freedomName',title:'特权名称',width:200,align:'center',sortable:true},
                      {field:'freedomTypeName',title:'特殊类型',width:100,align:'right',sortable:true},
                      {field:'value',title:'特权值',width:100,align:'left',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}}                 
                      ]],
            pagination:false,
            rownumbers:true
        });
        if(isInitStatus){
            $('#addSpecialMemberGrid').datagrid('clearSelections');//清空勾选状态
        }
            
        
        $('#addLimitSpecialMembersDlg').window({
            title:'不可以使用优惠券的特殊会员名单--选择添加',
            iconCls:'icon-add',
            width:650,
            height:300,
            left:1000,
            modal: true,
            shadow: true,
            collapsible:false,
            minimizable:false,
            maximizable:false
        });
        
        //窗体移动及代开状态
        $('#addLimitSpecialMembersDlg').window('move',{top:100,left:300});
        $('#addLimitSpecialMembersDlg').window('open');
        
    }
        
}





/**添加特殊会员*/
function addLimitSpecialMembers(){
    var selections = $("#addSpecialMemberGrid").datagrid('getSelections');
    if(selections == null || selections == ''){
        $.messager.alert('提示信息','请勾选信息','info');
        return;
    }else{
        var freedomIds = "";
        for (var i = 0; i < selections.length; i++) {
            freedomIds += selections[i].id+",";
        }

        $('#addLimitSpecialMembersDlg').window('close');
        _loadDataForLimitSpecialMembersGrid(freedomIds);
        $.messager.alert('提示信息','添加成功','info');
    }
}

/**
 * 删除限制的特殊会员
 * @param removeId
 */
function delLimitSpecialMemberRoles(removeId){
    var ids = "";
    
    var myspans = $("a[class='myspan']");
    for (var i = 0; i < myspans.length; i++) {
        if(myspans[i].getAttribute("myData")!=removeId)
            ids +=myspans[i].getAttribute("myData")+",";
    }
    
    if(ids.length==0){
        $('#showLimitSpecialMembersGrid').datagrid('loadData', { total: 0, rows: [] });
        $("#limitSpecialMembersShow").css("display","none");
    }else{
        _loadDataForLimitSpecialMembersGrid(ids);
    }
    
    $.messager.alert('提示信息','删除成功','info');
}
 
  

 

(null,<%=com.j1.member.type.MemberRankType.huiyuantejia.getType()%>)">添加特殊会员</a>
                    <input type="hidden" id="eccouponTypeId" value="">
                </td>
            </tr>
        </table>
        <label id="limitSpecialMembersShow" style="display: none;">
            <table id="showLimitSpecialMembersGrid"></table>
        </label>

 









<!-- 添加,不可以使用优惠券的特殊会员名单,弹出窗 -->
<div id="addLimitSpecialMembersDlg" class="easyui-window" title="" iconCls="icon-edit" style="width:600px; height:200px;text-align:center; background: #fafafa;">
    <div class="easyui-layout" fit="true">
        <div region="center" border="false" style="background:#fff;border:1px solid #ccc;">
            <table class="queryTable" width="100%" >
                <tr>
                    <td class="queryTitle" width="100">特权名称</td>
                    <td class="queryContent" width="100">
                        <input class="inputText" type="text" id="freeDomTypeName" />
                    </td>
                    <td class="queryTitle" width="100">特权类型</td>
                    <td class="queryContent" width="100">
                        <select id="freedomType" class="easyui-combobox" style="width: 100px" panelHeight="auto">
                            <!-- <option value="-1">请选择</option> -->
                            <%-- <option value="<%=com.j1.member.type.MemberRankType.yunfeiyouhui.getType()%>"><%=com.j1.member.type.MemberRankType.yunfeiyouhui.getTypeName()%></option>
                            <option value="<%=com.j1.member.type.MemberRankType.gouwujifen.getType()%>"><%=com.j1.member.type.MemberRankType.gouwujifen.getTypeName()%></option>
                            <option value="<%=com.j1.member.type.MemberRankType.pingjiajiangli.getType()%>"><%=com.j1.member.type.MemberRankType.pingjiajiangli.getTypeName()%></option>
                            <option value="<%=com.j1.member.type.MemberRankType.shaidan.getType()%>"><%=com.j1.member.type.MemberRankType.shaidan.getTypeName()%></option>
                            <option value="<%=com.j1.member.type.MemberRankType.chongzhijiangli.getType()%>"><%=com.j1.member.type.MemberRankType.chongzhijiangli.getTypeName()%></option> --%>
                            <option value="<%=com.j1.member.type.MemberRankType.huiyuantejia.getType()%>" selected="selected"><%=com.j1.member.type.MemberRankType.huiyuantejia.getTypeName()%></option>
                            <%-- <option value="<%=com.j1.member.type.MemberRankType.shengritehui.getType()%>"><%=com.j1.member.type.MemberRankType.shengritehui.getTypeName()%></option>
                            <option value="<%=com.j1.member.type.MemberRankType.guanhuai.getType()%>"><%=com.j1.member.type.MemberRankType.guanhuai.getTypeName()%></option> --%>
                        </select>
                    </td>
                    <td>
                        <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" onclick="queryLimitSpecialMembers(null,<%=com.j1.member.type.MemberRankType.huiyuantejia.getType()%>)" >查询</a>
                    </td>
                </tr>
            </table>
            <table id="addSpecialMemberGrid"></table>
        </div>
        <div region="south" border="false" style="text-align:center;height:30px;line-height:30px;">
            <a class="easyui-linkbutton" iconCls="icon-ok" href="javascript:void(0)" onclick="addLimitSpecialMembers()">确定</a>&nbsp;&nbsp;
            <a class="easyui-linkbutton" iconCls="icon-cancel" href="javascript:void(0)" onclick="javascript:$('#addLimitSpecialMembersDlg').window('close');">取消</a>
        </div>
    </div>
</div>

 

/**
 * 根据条件查询限制特殊会员
 * @param param
 */
function queryLimitSpecialMembers(id,freedomType){
    var params = new Object();
    params.couponTypeId= id;
    params.freedomType= freedomType;
    params.freedomTypeName = $("#freeDomTypeName").val();
    
    loadLimitSpecialMembers(params,false);
}

 

 

 

/**
 * 内部方法
 * @param freedomIds
 */
function _loadDataForLimitSpecialMembersGrid(freedomIds){
    if(freedomIds!=null && freedomIds.length>0){
        
        $("#limitSpecialMembersShow").css("display","block");
        $('#showLimitSpecialMembersGrid').datagrid({
            url:appPath+'/page/couponType/showLimitSpecialMembersByParams',
            method:'post',
            queryParams:{freedomIds:freedomIds},
            height:240,
            width:'auto',
            striped: true,
            remoteSort:false,
            checkbox:true,
            idField:'id',
            frozenColumns:[[
                            {field:'id',title:'操作',width:60,align:'center',
                                formatter:function(value,rowData,rowIndex){
                                    return "<a href='javascript:void(0)' class='myspan' myData='"+rowData.id+"'><img width='12px' height='12px' style='border:0px;'  src='"+appPath+"/js/lib/jquery-easyui/themes/icons/cancel.png' title='删除' onClick='delLimitSpecialMemberRoles("+rowData.id+")'/></a>&nbsp;";
                                }
                            }
                            ]],
                            columns:[[   
                                      {field:'freedomName',title:'特权名称',width:200,align:'center',sortable:true},
                                      {field:'freedomTypeName',title:'特殊类型',width:100,align:'right',sortable:true},
                                      {field:'value',title:'特权值',width:100,align:'left',sortable:true,formatter:function(value){if(!isNaN(Number(value))){return Number(value).toFixed(2)}}}                 
                                      ]],
                                      pagination:false,
                                      rownumbers:true
        });
    }
}

function delGoods(rowData){
    doAjax({
        url:appPath+'/page/couponType/delEcCouponTypeGoodsTemp',
        type:'post',
        data:{couponTypeGoodsTempId:rowData.couponTypeGoodsTempId},
        success:function(data){
            if(data='ok'){
                $.messager.alert('提示信息','删除成功!','info');
            }
            doGoodsReload();
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            $.messager.alert('提示信息','删除成功!','info');
            doGoodsReload();
        }
    });    
}
package com.founder.ec.promote.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.founder.ec.promote.model.EcCouponPublishExpand;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSONObject;
import com.founder.ec.base.action.BaseAction;
import com.founder.ec.common.utils.DateUtils;
import com.founder.ec.order.model.EcPaymentType;
import com.founder.ec.product.model.Goods;
import com.founder.ec.promote.enums.EnumMemberLevel;
import com.founder.ec.promote.model.EcCouponType;
import com.founder.ec.promote.model.EcCouponTypeGoods;
import com.founder.ec.promote.model.EcCouponTypeGoodsTemp;
import com.founder.ec.promote.service.EcCouponTypeService;
import com.j1.base.type.MsgStatus;
import com.j1.member.mysql.model.MemberFreedomRepModel;
import com.j1.member.type.MemberRankType;

@Controller
@RequestMapping(value = "/couponType")
public class EcCouponTypeAction extends BaseAction {
    
    @Autowired
    private EcCouponTypeService ecCouponTypeService;
    
    /**
     * 优惠券类型列表
     * @param request
     * @param ecCouponType
     * @return
     */
    @RequestMapping(value="/list")
    @ResponseBody
    public Map<String,Object> memberPointList(HttpServletRequest request,EcCouponType ecCouponType)
    {
        String pageNo = request.getParameter("page");
        String pageSize = request.getParameter("rows");
        return ecCouponTypeService.queryEcCouponTypePage(ecCouponType, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
    }
    
     
    /**
     * 会员类型列表
     * @param request
     * @param ecCouponType
     * @return
     */
    @RequestMapping(value="/memberShiplist")
    @ResponseBody
    public List<JSONObject> memberShipList(HttpServletRequest request){
        List<JSONObject> list = new ArrayList<JSONObject>();
         for (EnumMemberLevel s : EnumMemberLevel.values()) {
             JSONObject jsonObject = new JSONObject();
             jsonObject.put("key", s.getCode());
             jsonObject.put("value", s.getValue());
             list.add(jsonObject);
         }
        return list;
    }

    /**
     * 获取使用渠道
     */
    @RequestMapping(value="/getPublishRangeById")
    @ResponseBody
    public String getPublishRangeById(HttpServletRequest request,EcCouponType ecCouponType){
        String publishRange = ecCouponTypeService.getPublishRangeById(ecCouponType);
        return publishRange;
    }

    /**
     * 更新优惠券类型列表
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/update")
    @ResponseBody
    public String updateEcCouponType(HttpServletRequest request,EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods,EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp,EcCouponPublishExpand ecCouponPublishExpand)
    {
        Integer userId = (Integer)request.getSession().getAttribute("userId");
        if("save".equals(ecCouponType.getType())){
            ecCouponType.setAddUserId(userId);
            ecCouponType.setAddTime(DateUtils.longToDateAll(System.currentTimeMillis()));
            ecCouponPublishExpand.setAddUserId(userId);
            ecCouponPublishExpand.setAddTime(DateUtils.longToDateAll(System.currentTimeMillis()));
        }else{
            ecCouponType.setEditUserId(userId);
            ecCouponType.setEditTime(DateUtils.longToDateAll(System.currentTimeMillis()));
            ecCouponPublishExpand.setEditUserId(userId);
            ecCouponPublishExpand.setEditTime(DateUtils.longToDateAll(System.currentTimeMillis()));
        }
        HashMap<String,Object> param = new HashMap<String, Object>();
        ecCouponTypeService.updateEcCouponType(request, ecCouponType, ecCouponTypeGoods, ecCouponTypeGoodsTemp, ecCouponPublishExpand, param);
        
        return "ok";
    }

    /**
     * 更新优惠券类型列表
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/delEcCouponType")
    @ResponseBody
    public String delEcCouponType(HttpServletRequest request,EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods)
    {
        Integer userId = (Integer)request.getSession().getAttribute("userId");
        
        ecCouponType.setEditUserId(userId);
        ecCouponType.setEditTime(DateUtils.longToDateAll(System.currentTimeMillis()));
        
        ecCouponTypeGoods.setEditUserId(userId);
        ecCouponTypeGoods.setEditTime(DateUtils.longToDateAll(System.currentTimeMillis()));
        ecCouponTypeGoods.setCouponTypeId(Long.valueOf(ecCouponType.getCouponTypeId()));
        ecCouponTypeGoods.setIsDelete("Y");
        
        ecCouponTypeService.delEcCouponType(ecCouponType, ecCouponTypeGoods);
        
        return "ok";
    }
    
    
    /**
     * 商品列表
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/goodsList")
    @ResponseBody
    public Map<String,Object> goodsList(HttpServletRequest request,Goods goods)
    {
        String proCatalogId = request.getParameter("proCatalogId");
        String proYwCatalogId = request.getParameter("proYwCatalogId");
        if(null!=proCatalogId && !"".equals(proCatalogId)){
            String [] proCatalogIds = proCatalogId.split(",");
            goods.setProCatalogIds(proCatalogIds);
        }
        if(null!=proYwCatalogId && !"".equals(proYwCatalogId)){
            String [] proYwCatalogIds = proYwCatalogId.split(",");
            goods.setProYwCatalogIds1(proYwCatalogIds);
        }
        Integer catalogCount=ecCouponTypeService.CatalogCount(goods);
        String pageNo = request.getParameter("page");
        String pageSize = request.getParameter("rows");
        if(pageNo==null){
            pageNo="1";
            pageSize=catalogCount+"";
        }
        return ecCouponTypeService.queryGoodsList(goods, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
    }
    
    /**
     * 优惠券类型--添加商品GRID
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/addGoodsList")
    @ResponseBody
    public Map<String,Object> addGoodsList(HttpServletRequest request,EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp,EcCouponTypeGoods ecCouponTypeGoods)
    {
        String pageNo = request.getParameter("page");
        String pageSize = request.getParameter("rows");
        String couponTypeId = request.getParameter("couponTypeId");
//        if(null!=couponTypeId && !"".equals(couponTypeId)){
//            return ecCouponTypeService.queryEcCouponTypeGoodsPage(ecCouponTypeGoods, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
//        }else{
//        }
        if(null!=couponTypeId && !"".equals(couponTypeId)){
            ecCouponTypeGoodsTemp.setCouponTypeId(Long.valueOf(couponTypeId));
        }else{
            ecCouponTypeGoodsTemp.setIsUsed("N");
        }
        return ecCouponTypeService.queryEcCouponTypeGoodsTempPage(ecCouponTypeGoodsTemp, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
    }
    
    /**
     * 优惠券类型--加载特殊会员GRID
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/limitSpecialMemberList")
    @ResponseBody
    public Map<String,Object> limitSpecialMemberList(HttpServletRequest request)
    {
        Map<String,Object> map = new HashMap<String, Object>();
        
        String couponTypeId = request.getParameter("couponTypeId");//优惠劵Id
        String freedomType = request.getParameter("freedomType");  //特权类型
        String freedomTypeName = request.getParameter("freedomTypeName");//特权类型名称
        try {
            List<MemberFreedomRepModel> list = null;
            
            if(StringUtils.isNotBlank(couponTypeId)){
                list = ecCouponTypeService.queryLimitSpecialMemberFreedomsByParams(Integer.parseInt(couponTypeId), null);
            }else if(StringUtils.isNotBlank(freedomType)){
                list = ecCouponTypeService.queryLimitSpecialMemberFreedomsByParams(null, Long.parseLong(freedomType));
            }
            
            if(list!=null && list.size()>0){
                for (MemberFreedomRepModel memberFreedomRepModel : list) {
                    loadFreedomTypeName(memberFreedomRepModel);
                }
                
                if(StringUtils.isNotBlank(freedomTypeName)){
                    List<MemberFreedomRepModel> _list = new ArrayList<MemberFreedomRepModel>();
                    for (MemberFreedomRepModel memberFreedomRepModel : list) {
                        if(StringUtils.isNotBlank(memberFreedomRepModel.getFreedomName()) && memberFreedomRepModel.getFreedomName().contains(freedomTypeName)){
                            _list.add(memberFreedomRepModel);
                        }
                    }
                    
                    list = _list;
                }
                map.put("rows", list);
            }
        } catch (NumberFormatException e) {
            logger.error("EcCouponTypeAction->limitSpecialMemberList exception:"+e.getMessage());
        }
        
        return map;
    }
    
    /**
     * 根据参数查询特殊会员数据
     *
     * @author chengjiangbo@j1.com 2016年1月27日 上午11:27:15
     * 
     * @param request
     * @return
     */
    @RequestMapping(value="/showLimitSpecialMembersByParams")
    @ResponseBody
    public Map<String,Object> showLimitSpecialMembersByParams(HttpServletRequest request){
        List<MemberFreedomRepModel> list = new ArrayList<MemberFreedomRepModel>();
        Map<String,Object> map = new HashMap<String, Object>();
        String str_freedomId = request.getParameter("freedomIds");
        
        try {
            if(StringUtils.isNotBlank(str_freedomId)){
                if(str_freedomId.contains(",")){
                    String[] _array = str_freedomId.split(",");
                    for (int i = 0; i < _array.length; i++) {
                        MemberFreedomRepModel _freedomRepModel = ecCouponTypeService.selectMemberFreedomById(Long.valueOf(_array[i]));
                        if(_freedomRepModel!=null)
                            list.add(_freedomRepModel);
                    }
                }else{
                    MemberFreedomRepModel _freedomRepModel = ecCouponTypeService.selectMemberFreedomById(Long.valueOf(str_freedomId));
                    if(_freedomRepModel!=null)
                        list.add(_freedomRepModel);
                }
                
                if(list!=null && list.size()>0){
                    for (MemberFreedomRepModel memberFreedomRepModel : list) {
                        loadFreedomTypeName(memberFreedomRepModel);
                    }
                    map.put("rows", list);
                }
            }
        } catch (NumberFormatException e) {
            logger.error("EcCouponTypeAction->showLimitSpecialMembersByParams exception:"+e.getMessage());
        }
        
        return map;
    }
    
    /**
     * 添加限制特殊会员到优惠劵类型
     *
     * @author chengjiangbo@j1.com 2016年1月27日 上午11:43:37
     * 
     * @param request
     * @return
     */
    @RequestMapping(value="/addLimitSpecialMembersToEcCouponType")
    @ResponseBody
    public String addLimitSpecialMembersToEcCouponType(HttpServletRequest request){
        String str_freedomId = request.getParameter("freedomId");
        String ecCouponTypeId = request.getParameter("ecCouponTypeId");
        
        if(StringUtils.isNotBlank(ecCouponTypeId) && StringUtils.isNotBlank(str_freedomId)){
            EcCouponType couponType = new EcCouponType();
            if(ecCouponTypeService.queryCouponTypeById(Integer.valueOf(ecCouponTypeId))!=null){
                couponType.setCouponTypeId(Integer.valueOf(ecCouponTypeId));
                couponType.setLimitMemberRoleIds(str_freedomId);
                
                if(ecCouponTypeService.updateEcCouponType(couponType)>0)
                    return MsgStatus.NORMAL.getCode();
            }else{
                logger.error("EcCouponTypeAction->addLimitSpecialMembersToEcCouponType(...) EcCouponType:ecCouponTypeId="+ecCouponTypeId+" is not exists!");
            }
        }
        
        return MsgStatus.NO_RESULT.getCode();
    }
    
    /**
     * 获取优惠券类型对应的商品
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/goodsListByCoupon")
    @ResponseBody
    public Map<String,Object> goodsListByCoupon(HttpServletRequest request,EcCouponTypeGoods ecCouponTypeGoods)
    {
        String pageNo = request.getParameter("page");
        String pageSize = request.getParameter("rows");
        return ecCouponTypeService.queryGoodsListByCoupon(ecCouponTypeGoods, Integer.parseInt(pageNo),Integer.parseInt(pageSize));
    }
    
    
    /**
     * 优惠券类型--添加商品
     * @param request
     * @param promoteConditionGoods
     * @return
     */
    @RequestMapping(value="/saveEcCouponTypeGoodsTemp",method=RequestMethod.POST)
    @ResponseBody
    public String saveEcCouponTypeGoodsTemp(HttpServletRequest request,EcCouponTypeGoodsTemp ecCouponTypeGoods)
    {
        String couponTypeId = request.getParameter("couponTypeId");
        String[] ids=ecCouponTypeGoods.getGoodsIds().split(",");
        List<EcCouponTypeGoodsTemp> list=null;
        if(null!=couponTypeId && !"".equals(couponTypeId)){
            list=ecCouponTypeService.queryTempListByCouponIdTemp(ecCouponTypeGoods);
        }else{
            list=ecCouponTypeService.queryTempListTemp(ecCouponTypeGoods);
        }
        
        for(int i=0;i<ids.length;i++){
            Integer num=0;
            EcCouponTypeGoodsTemp couponTypeGoods=new EcCouponTypeGoodsTemp();
            couponTypeGoods.setGoodsId(Long.parseLong(ids[i]));
            couponTypeGoods.setIsUsed("N");
            couponTypeGoods.setIsDelete("N");
            //判断是否已经有这个商品
            //第一种就是存在优惠券类型ID,第二种就是不存在优惠券ID
            if(null!=couponTypeId && !"".equals(couponTypeId)){
                couponTypeGoods.setCouponTypeId(Long.valueOf(couponTypeId));
            }
            for (int j = 0; j < list.size(); j++) {
                if(couponTypeGoods.getGoodsId().equals(list.get(j).getGoodsId())){
                     num=1;
                     break;
                }
            }
            if(num==1){
                continue;
            }
            ecCouponTypeService.saveEcCouponTypeGoodsTemp(couponTypeGoods);
        }
        return "ok";
    }
    
    /**
     * 优惠券类型--更新商品数据
     * @param request
     * @param promoteConditionGoods
     * @return
     */
    @RequestMapping(value="/delEcCouponTypeGoodsTemp",method=RequestMethod.POST)
    @ResponseBody
    public String delEcCouponTypeGoodsTemp(HttpServletRequest request,EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp){
        ecCouponTypeGoodsTemp.setIsDelete("Y");
        String couponTypeIdNew = request.getParameter("couponTypeIdNew");
        String str = request.getParameter("str");
        if(!"".equals(str)&&null!=str){
            String[] ids=ecCouponTypeGoodsTemp.getGoodsIds().split(",");
            for(int i=0;i<ids.length;i++){
                EcCouponTypeGoodsTemp couponTypeGoods=new EcCouponTypeGoodsTemp();
                couponTypeGoods.setGoodsIdNew(Long.parseLong(ids[i]));
                if(!"".equals(couponTypeIdNew)){
                    couponTypeGoods.setCouponTypeIdNew(new Long(couponTypeIdNew));
                }else{
                    couponTypeGoods.setIsUsedNew("N");
                }
                couponTypeGoods.setIsDelete("Y");
                ecCouponTypeService.delEcCouponTypeGoodsTemp(couponTypeGoods);
            }
            return "ok";
        }
        ecCouponTypeService.delEcCouponTypeGoodsTemp(ecCouponTypeGoodsTemp);
        return "ok";
    }
    
    /**
     * 优惠券类型--更新商品数据
     * @param request
     * @param promoteConditionGoods
     * @return
     */
    @RequestMapping(value="/delAllTemp",method=RequestMethod.POST)
    @ResponseBody
    public String delAllTemp(HttpServletRequest request,EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp){
        ecCouponTypeService.delAllTemp(ecCouponTypeGoodsTemp);
        return "ok";
    }
    
    /**
     * 进入编辑页面
     * @param request
     * @param EcPromoteRule
     * @return
     */
    @RequestMapping(value="/toEditEcCouponType")
    public String toEditEcCouponType(HttpServletRequest request,EcCouponType ecCouponType){
        String couponTypeId = request.getParameter("couponTypeId");
        if(null!=couponTypeId && !"".equals(couponTypeId)){
//            ecCouponType.setCouponTypeId(Integer.valueOf(couponTypeId));
            //HashMap<String,Object> param = new HashMap<String, Object>();
            ecCouponType = ecCouponTypeService.queryCouponTypeById(Integer.parseInt(couponTypeId));
            if(ecCouponType!=null){
                request.setAttribute("couponTypeId", ecCouponType.getCouponTypeId());
                request.setAttribute("couponTypeNo", ecCouponType.getCouponTypeNo());
                request.setAttribute("couponTypeName", ecCouponType.getCouponTypeName());
                request.setAttribute("couponFee", ecCouponType.getCouponFee());
                request.setAttribute("discountFee", ecCouponType.getDiscountFee());
                request.setAttribute("convertPoints", ecCouponType.getConvertPoints());
                request.setAttribute("couponTypeNotes", ecCouponType.getCouponTypeNotes());
                request.setAttribute("isECuponHidd", ecCouponType.getIsECupon());
                request.setAttribute("isReuseHidd", ecCouponType.getIsReuse());
                request.setAttribute("isMultiUseHidd", ecCouponType.getIsMultiUse());
                request.setAttribute("useTypeHidd", ecCouponType.getUseType());
                request.setAttribute("picUrl", ecCouponType.getCouponPicUrl());
                request.setAttribute("orderTypeLimitHidd", ecCouponType.getOrderTypeLimit());
                
                int orderFeeLimit = ecCouponType.getOrderFeeLimit();
                if(orderFeeLimit!=0){
                    request.setAttribute("orderFeeLimitHidd", "1");
                    request.setAttribute("orderFee", orderFeeLimit);
                }else{
                    request.setAttribute("orderFeeLimitHidd", orderFeeLimit);
                }
                int useAmountLimit = ecCouponType.getUseAmountLimit();
                if(useAmountLimit!=0){
                    request.setAttribute("useAmountLimitHidd", "1");
                    request.setAttribute("useAmount", useAmountLimit);
                }else{
                    request.setAttribute("useAmountLimitHidd", useAmountLimit);
                }
                request.setAttribute("isLimitGoodsHidd", ecCouponType.getIsLimitGoods());
                
                request.setAttribute("isLimitPay", ecCouponType.getIsLimitPay());
                request.setAttribute("paymentTypeNos", ecCouponType.getPaymentTypeNos());
                request.setAttribute("standby4", ecCouponType.getStandby4());
                request.setAttribute("standby1", ecCouponType.getStandby1());
                request.setAttribute("standby2", ecCouponType.getStandby2());
                request.setAttribute("standby3", ecCouponType.getStandby3());
                request.setAttribute("standby5", ecCouponType.getStandby5());
                request.setAttribute("memberShip", ecCouponType.getMemberShip());
                request.setAttribute("limitMemberRoleIds", ecCouponType.getLimitMemberRoleIds());
            }
        }
        
        return "/jsp/promote/ec_coupon_type_add.jsp";
    }
    
    
    /**
     * 查询所有的支付方式
     * @param request
     * @param promoteConditionGoods
     * @return
     */
    @RequestMapping(value="/getAllZF",method=RequestMethod.POST)
    @ResponseBody
    public List<EcPaymentType> delAllTemp(HttpServletRequest request,EcPaymentType ecPaymentType){
        List<EcPaymentType> list = ecCouponTypeService.getSimpleType(ecPaymentType);
        return list;
    }
    
    /**
     * 加载特权类型名称
     *
     * @author chengjiangbo@j1.com 2016年1月27日 上午11:17:58
     * 
     * @param memberFreedomRepModel
     */
    private void loadFreedomTypeName(MemberFreedomRepModel memberFreedomRepModel){
        if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.yunfeiyouhui.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.yunfeiyouhui.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.gouwujifen.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.gouwujifen.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.pingjiajiangli.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.pingjiajiangli.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.shaidan.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.shaidan.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.chongzhijiangli.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.chongzhijiangli.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.huiyuantejia.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.huiyuantejia.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.shengritehui.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.shengritehui.getTypeName());
        }else if(memberFreedomRepModel.getFreedomType().longValue()==MemberRankType.guanhuai.getType().longValue()){
            memberFreedomRepModel.setFreedomTypeName(MemberRankType.guanhuai.getTypeName());
        }
    }
}
package com.founder.ec.promote.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.founder.ec.base.service.BaseService;
import com.founder.ec.order.model.EcPaymentType;
import com.founder.ec.product.model.Goods;
import com.founder.ec.promote.model.EcCouponPublishExpand;
import com.founder.ec.promote.model.EcCouponType;
import com.founder.ec.promote.model.EcCouponTypeGoods;
import com.founder.ec.promote.model.EcCouponTypeGoodsTemp;
import com.j1.member.mysql.model.MemberFreedomRepModel;

public interface EcCouponTypeService extends BaseService {
    
    /**
     * 优惠券类型列表
     * @param ecPromoteRule
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryEcCouponTypePage(EcCouponType ecCouponType, int pageNo, int pageSize);
    
    /**
     * 更新优惠券类型
     * @param ecCouponType
     */
    public void updateEcCouponType(HttpServletRequest request,EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods,EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp,EcCouponPublishExpand ecCouponPublishExpand,HashMap<String,Object> param);


    /**
     * 
     *
     * @author chengjiangbo@j1.com 2016年1月25日 下午8:02:41
     * 
     * @param ecCouponType
     * @return 影响数据库行数
     */
    public int updateEcCouponType(EcCouponType ecCouponType);

    
    /**
     * 删除优惠券类型
     * @param ecCouponType
     * @param ecCouponTypeGoods
     */
    public void delEcCouponType(EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods);
    
    /**
     * 商品列表
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryGoodsList(Goods goods, int pageNo, int pageSize);
    
    /**
     * 优惠券规则列表--添加商品
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryEcCouponTypeGoodsTempPage(EcCouponTypeGoodsTemp ecCouponTypeGoods, int pageNo, int pageSize);
    
    /**
     * 优惠券规则列表--添加商品
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryEcCouponTypeGoodsPage(EcCouponTypeGoods ecCouponTypeGoods, int pageNo, int pageSize);
    
    /**
     * 获取优惠券类型对应的商品
     * @param ecCouponTypeGoods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryGoodsListByCoupon(EcCouponTypeGoods ecCouponTypeGoods, int pageNo, int pageSize);
    
    /**
     * 判断商品是否已经存在
     * @param promoteConditionGoods
     * @return
     */
    public Integer queryGoodsIds(EcCouponTypeGoods EcCouponTypeGoods);
    
    /**
     * 添加商品
     * @param promoteConditionGoods
     */
    public void saveEcCouponTypeGoods(EcCouponTypeGoods ecCouponTypeGoods);
    
    /**
     * 添加商品零时表
     * @param promoteConditionGoods
     */
    public void saveEcCouponTypeGoodsTemp(EcCouponTypeGoodsTemp ecCouponTypeGoods);
    
    /**
     * 删除商品零时表
     * @param promoteConditionGoods
     */
    public void delEcCouponTypeGoodsTemp(EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp);
    
    /**
     * 删除所有商品临时数据
     * @param ecCouponTypeGoodsTemp
     */
    public void delAllTemp(EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp);
    
    /**
     * 根据Id获取优惠券类型信息
     * @param ecCouponType
     * @return
     */
    public EcCouponType queryCouponTypeById(Integer ecCouponTypeId);
    
    /**
     * 查询所有的支付方式
     * @param ecPaymentType
     * @return
     */
    public List<EcPaymentType> getSimpleType(EcPaymentType ecPaymentType);
    
    /**
     * 查询类目下的商品的条数
     * @param goods
     * @return
     */
    public Integer CatalogCount(Goods goods);
    /**
     * 查询无优惠券ID的时候,是否已经存在这个商品
     * @param param
     * @return
     */
    public List<EcCouponTypeGoodsTemp> queryTempListTemp(EcCouponTypeGoodsTemp param);
    /**
     * 查询有优惠券ID的时候,是否已经存在这个商品
     * @param param
     * @return
     */
    public List<EcCouponTypeGoodsTemp> queryTempListByCouponIdTemp(EcCouponTypeGoodsTemp param);

    /**
     * 根据可选的优惠劵类型ID和特权类型查询限制特殊会员角色对象集合
     *
     * @author chengjiangbo@j1.com 2016年1月18日 上午11:47:42
     * 
     * @param couponTypeId
     * @param freedomType
     * @return
     */
    public List<MemberFreedomRepModel> queryLimitSpecialMemberFreedomsByParams(Integer couponTypeId, Long freedomType);
    
    /**
     * 查询单个会员特权根据id
     *
     * @author chengjiangbo@j1.com 2016年1月27日 上午11:08:58
     * 
     * @param id
     * @return MemberFreedomRepModel
     */
    public MemberFreedomRepModel selectMemberFreedomById(Long id);

    /**
     * 获取使用渠道
     */
    public String getPublishRangeById(EcCouponType ecCouponType);

}
package com.founder.ec.promote.service.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.founder.ec.promote.model.EcCouponPublishExpand;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.founder.ec.base.service.impl.BaseServiceImpl;
import com.founder.ec.common.aop.CacheRemove;
import com.founder.ec.common.aop.Cached;
import com.founder.ec.common.dao.CommonDao;
import com.founder.ec.common.page.JspPage;
import com.founder.ec.common.utils.DateUtils;
import com.founder.ec.order.model.EcPaymentType;
import com.founder.ec.product.model.Goods;
import com.founder.ec.promote.model.EcCouponType;
import com.founder.ec.promote.model.EcCouponTypeGoods;
import com.founder.ec.promote.model.EcCouponTypeGoodsTemp;
import com.founder.ec.promote.service.EcCouponTypeService;
import com.j1.base.dto.ServiceMessage;
import com.j1.base.type.MsgStatus;
import com.j1.member.mysql.model.MemberFreedomRepModel;
import com.j1.soa.resource.member.mysql.api.MemberFreedomRepService;

@Service
public class EcCouponTypeServiceImpl extends BaseServiceImpl implements EcCouponTypeService {

    @Autowired
    private CommonDao commonDao;
    
    @Autowired
    private MemberFreedomRepService freedomRepService ;
    
    /**
     * 优惠券类型列表
     * @param ecCouponType
     * @param pageNo
     * @param pageSize
     * @return
     */
    //@Cached(name="ecCouponType")
    public Map<String, Object> queryEcCouponTypePage(EcCouponType ecCouponType, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("EcCouponType.getEcCouponTypeCount", "EcCouponType.getEcCouponTypeList", ecCouponType, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
    
    /**
     * 更新优惠券类型
     * @param ecCouponType
     */
    @CacheRemove(name="ecCouponTypeGoods-ecCouponType")
    public void updateEcCouponType(HttpServletRequest request,EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods,EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp,EcCouponPublishExpand ecCouponPublishExpand,HashMap<String,Object> param){
        Integer userId = (Integer)request.getSession().getAttribute("userId");
        if("save".equals(ecCouponType.getType())){
            Integer couponTypeId = (Integer) commonDao.queryForObject("EcCouponType.getCouponTypeId");
            ecCouponType.setCouponTypeId(couponTypeId);
            ecCouponPublishExpand.setCouponTypeId(couponTypeId);
            commonDao.save("EcCouponType.insertPublishExpand", ecCouponPublishExpand);
            commonDao.save("EcCouponType.insert",ecCouponType);
            List<EcCouponTypeGoodsTemp> tempList = (List<EcCouponTypeGoodsTemp>)commonDao.queryForList("ecCouponTypeGoodsTemp.queryTempList",param);
            for(EcCouponTypeGoodsTemp temp : tempList){
                ecCouponTypeGoods.setGoodsId(temp.getGoodsId());
                ecCouponTypeGoods.setCouponTypeId(Long.valueOf(ecCouponType.getCouponTypeId()));
                ecCouponTypeGoods.setIsDelete("N");
                ecCouponTypeGoods.setAddUserId(userId);
                ecCouponTypeGoods.setAddTime(DateUtils.longToDateAll(System.currentTimeMillis()));
                commonDao.save("ecCouponTypeGoods.insert", ecCouponTypeGoods);

                //更新临时数据
                temp.setCouponTypeId(Long.valueOf(ecCouponType.getCouponTypeId()));
                temp.setIsUsed("Y");
                commonDao.update("ecCouponTypeGoodsTemp.updateByTempId", temp);
            }
        }else{
            Integer publishId = (Integer) commonDao.queryForObject("EcCouponType.getPublishId",ecCouponType);
            Integer count = (Integer) commonDao.queryForObject("EcCouponType.getExpandCount",ecCouponType);
            if(publishId==null){
                if(count==0){
                    ecCouponPublishExpand.setCouponTypeId(ecCouponType.getCouponTypeId());
                    commonDao.save("EcCouponType.insertPublishExpand", ecCouponPublishExpand);
                }else {
                    commonDao.update("EcCouponType.updatePublishExpandById", ecCouponPublishExpand);
                }
            }else {
                ecCouponPublishExpand.setPublishId(publishId);
                commonDao.update("EcCouponType.updatePublishExpandById", ecCouponPublishExpand);
            }
            ecCouponPublishExpand.setCouponTypeId(ecCouponType.getCouponTypeId());
            commonDao.update("EcCouponType.updateById", ecCouponType);
            ecCouponTypeGoods.setCouponTypeId(Long.valueOf(ecCouponType.getCouponTypeId()));
            commonDao.update("ecCouponTypeGoods.updateStateByCouponTypeId", ecCouponTypeGoods);
            
            param.put("couponTypeId", ecCouponType.getCouponTypeId());
            List<EcCouponTypeGoodsTemp> tempList = (List<EcCouponTypeGoodsTemp>)commonDao.queryForList("ecCouponTypeGoodsTemp.queryTempListByCouponId",param);
            for(EcCouponTypeGoodsTemp temp : tempList){
                ecCouponTypeGoods.setGoodsId(temp.getGoodsId());
                ecCouponTypeGoods.setIsDelete("N");
                ecCouponTypeGoods.setAddUserId(userId);
                ecCouponTypeGoods.setAddTime(DateUtils.longToDateAll(System.currentTimeMillis()));
                commonDao.save("ecCouponTypeGoods.insert", ecCouponTypeGoods);
                
                //更新临时数据
                temp.setIsUsed("Y");
                commonDao.update("ecCouponTypeGoodsTemp.updateByTempId", temp);
            }
        }
    }
    
    @Override
    public int updateEcCouponType(EcCouponType ecCouponType) {
        int result = 0;
        
        try {
            if(ecCouponType!=null && ecCouponType.getCouponTypeId()!=null){
                EcCouponType _couponType = this.queryCouponTypeById(ecCouponType.getCouponTypeId()) ;
                if(_couponType!=null){
                    ecCouponType.setCouponTypeId(_couponType.getCouponTypeId());
                    result = commonDao.update("EcCouponType.updateById", ecCouponType);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
    
    /**
     * 删除优惠券类型
     * @param ecCouponType
     * @param ecCouponTypeGoods
     */
    @CacheRemove(name="ecCouponType-ecCouponTypeGoods")
    public void delEcCouponType(EcCouponType ecCouponType,EcCouponTypeGoods ecCouponTypeGoods){
        commonDao.update("EcCouponType.updateById",ecCouponType);
        commonDao.update("ecCouponTypeGoods.updateByCouponTypeId",ecCouponTypeGoods);
    }
    
    public List<EcCouponTypeGoodsTemp> queryTempListTemp(EcCouponTypeGoodsTemp param){
        return commonDao.queryForList("ecCouponTypeGoodsTemp.queryTempListNew",param);
    }
    public List<EcCouponTypeGoodsTemp> queryTempListByCouponIdTemp(EcCouponTypeGoodsTemp param){
        return commonDao.queryForList("ecCouponTypeGoodsTemp.queryTempListByCouponIdNew",param);
    }
    
    /**
     * 商品列表
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryGoodsList(Goods goods, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("Goods.getGoodsByPromoteCount","Goods.getGoodsByPromoteList", goods, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
    public Integer CatalogCount(Goods goods){
        return commonDao.queryForList("Goods.getGoodsByPromoteList", goods).size();
    }
    
    /**
     * 优惠券规则列表--添加商品
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    public Map<String, Object> queryEcCouponTypeGoodsTempPage(EcCouponTypeGoodsTemp ecCouponTypeGoods, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("ecCouponTypeGoodsTemp.getByEcCouponTypeGoodsTempCount","ecCouponTypeGoodsTemp.getByEcCouponTypeGoodsTempList", ecCouponTypeGoods, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
    
    /**
     * 优惠券规则列表--添加商品
     * @param goods
     * @param pageNo
     * @param pageSize
     * @return
     */
    @Cached(name="ecCouponTypeGoods")
    public Map<String, Object> queryEcCouponTypeGoodsPage(EcCouponTypeGoods ecCouponTypeGoods, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("ecCouponTypeGoods.getGoodsByEcCouponTypeCount","ecCouponTypeGoods.getGoodsByEcCouponTypeList", ecCouponTypeGoods, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
    
    /**
     * 获取优惠券类型对应的商品
     * @param ecCouponTypeGoods
     * @param pageNo
     * @param pageSize
     * @return
     */
    @Cached(name="ecCouponTypeGoods")
    public Map<String, Object> queryGoodsListByCoupon(EcCouponTypeGoods ecCouponTypeGoods, int pageNo, int pageSize){
        JspPage page = (JspPage)commonDao.pageQuery("ecCouponTypeGoods.getGoodsByEcCouponTypeCount","ecCouponTypeGoods.getGoodsByEcCouponTypeList", ecCouponTypeGoods, pageNo, pageSize);
        Map<String,Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }
    
    /**
     * 判断商品是否已经存在
     * @param promoteConditionGoods
     * @return
     */
    @Cached(name="ecCouponTypeGoods")
    public Integer queryGoodsIds(EcCouponTypeGoods EcCouponTypeGoods){
        return (Integer) commonDao.queryForObject("ecCouponTypeGoods.getEcCouponTypeGoodsCount", EcCouponTypeGoods);
    }
    
    /**
     * 添加商品
     * @param promoteConditionGoods
     */
    @CacheRemove(name="ecCouponTypeGoods")
    public void saveEcCouponTypeGoods(EcCouponTypeGoods ecCouponTypeGoods){
        commonDao.save("ecCouponTypeGoods.insert", ecCouponTypeGoods);
    }
    
    /**
     * 添加商品零时表
     * @param promoteConditionGoods
     */
    @Override
    public void saveEcCouponTypeGoodsTemp(EcCouponTypeGoodsTemp ecCouponTypeGoods){
        commonDao.save("ecCouponTypeGoodsTemp.insert", ecCouponTypeGoods);
    }
    
    /**
     * 删除商品零时表数据
     * @param promoteConditionGoods
     */
    public void delEcCouponTypeGoodsTemp(EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp){
//        commonDao.delete("ecCouponTypeGoodsTemp.deleteById", ecCouponTypeGoodsTemp);
        commonDao.update("ecCouponTypeGoodsTemp.updateByTempId",ecCouponTypeGoodsTemp);
    }
    
    /**
     * 删除所有商品临时数据
     * @param ecCouponTypeGoodsTemp
     */
    public void delAllTemp(EcCouponTypeGoodsTemp ecCouponTypeGoodsTemp){
        commonDao.update("ecCouponTypeGoodsTemp.updateAll", ecCouponTypeGoodsTemp);
    }
    
    /**
     * 根据Id获取优惠券类型信息
     * @param ecCouponType
     * @return
     */
    //@Cached(name="ecCouponType")
    @Override
    public EcCouponType queryCouponTypeById(Integer couponTypeId){
        Map<String,Object> map = new HashMap<String, Object>();
        map.put("couponTypeId", couponTypeId);
        List<EcCouponType> typeList = (List<EcCouponType>)commonDao.queryForList("EcCouponType.getCouponTypeById",map);
        if(null!=typeList && !typeList.isEmpty()){
            return typeList.get(0);
        }
        return null;
    }
    
    public List<EcPaymentType> getSimpleType(EcPaymentType ecPaymentType){
        return (List<EcPaymentType>)commonDao.queryForList("EcPaymentType.getSimpleType",ecPaymentType);
    }

    @Override
    public List<MemberFreedomRepModel> queryLimitSpecialMemberFreedomsByParams(Integer couponTypeId, Long freedomType) {
        List<MemberFreedomRepModel> freedomRepModels = new ArrayList<MemberFreedomRepModel>();
        
        try {
            if(couponTypeId!=null){
                EcCouponType couponType =  this.queryCouponTypeById(couponTypeId);
                
                if(StringUtils.isNoneBlank(couponType.getLimitMemberRoleIds())){
                    String _ids = couponType.getLimitMemberRoleIds(); 
                    String _arrayIds[] = _ids.split(",");
                    if(_arrayIds!=null && _arrayIds.length>0){
                        for (String _id : _arrayIds) {
                            MemberFreedomRepModel _freedomRepModel = selectMemberFreedomById(Long.valueOf(_id));
                            if(_freedomRepModel!=null)
                                freedomRepModels.add(_freedomRepModel);
                        }
                    }
                }
            }else if(freedomType!=null){
                MemberFreedomRepModel memberFreedomRepModel = new MemberFreedomRepModel();
                memberFreedomRepModel.setFreedomType(freedomType);
                ServiceMessage<List<MemberFreedomRepModel>> message = freedomRepService.queryByList(memberFreedomRepModel);
                if(message.getStatus()==MsgStatus.NORMAL && message.getResult()!=null){
                    freedomRepModels.addAll(message.getResult());
                }
            }else{
                logger.error("EcCouponTypeServiceImpl->queryLimitSpecialMembersById(Integer couponTypeId) exception: the parammers is error->null");
            }
        } catch (NumberFormatException e) {
            logger.error("EcCouponTypeServiceImpl->queryLimitSpecialMembersById(Integer couponTypeId) exception:"+e.getMessage());
        }
        return freedomRepModels;
    }

    @Override
    public MemberFreedomRepModel selectMemberFreedomById(Long id){
        try {
            ServiceMessage<MemberFreedomRepModel> message = freedomRepService.selectByPrimaryKey(id);
            if(message.getStatus()==MsgStatus.NORMAL && message.getResult()!=null){
                return message.getResult();
            }
        } catch (NumberFormatException e) {
            logger.error("EcCouponTypeServiceImpl->selectMemberFreedomById exception:"+e.getMessage());
        }
        return null;
    }

    @Override
    public String getPublishRangeById(EcCouponType ecCouponType) {
        Integer publishId = (Integer) commonDao.queryForObject("EcCouponType.getPublishId",ecCouponType);
        if(publishId!=null){
            EcCouponPublishExpand ecCouponPublishExpand = new EcCouponPublishExpand();
            ecCouponPublishExpand.setPublishId(publishId);
            Integer count = (Integer) commonDao.queryForObject("EcCouponType.getExpandCountByPublishId",ecCouponPublishExpand);
            if(count!=0){
                return (String) commonDao.queryForObject("EcCouponType.getPublishRangeByPId",ecCouponPublishExpand);
            }
        }
        return (String) commonDao.queryForObject("EcCouponType.getPublishRangeById",ecCouponType);
    }

}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="ecCouponTypeGoods">
    
    <typeAlias alias="EcCouponTypeGoods" type="com.founder.ec.promote.model.EcCouponTypeGoods"/>
    
    <resultMap id="ecCouponTypeGoodsResult" class="EcCouponTypeGoods">
        <result column="COUPON_TYPE_GOODS_ID" property="couponTypeGoodsId" />
        <result column="COUPON_TYPE_ID" property="couponTypeId" />
        <result column="GOODS_ID" property="goodsId" />
        <result column="IS_DELETE" property="isDelete" />
        <result column="ADD_USER_ID" property="addUserId" />
        <result column="ADD_TIME" property="addTime" />
        <result column="EDIT_USER_ID" property="editUserId" />
        <result column="EDIT_TIME" property="editTime" />
    </resultMap>
    
    <resultMap id="ecCouponTypeGoodsRes" class="EcCouponTypeGoods" extends="ecCouponTypeGoodsResult">
        <result column="goodsNo" property="goodsNo" />
        <result column="goodsName" property="goodsName" />
        <result column="unitName" property="unitName" />
        <result column="goodStock" property="goodStock" />
        <result column="availableStock" property="availableStock" />
        <result column="marketPrice" property="marketPrice" />
        <result column="ecPrice" property="ecPrice" />
    </resultMap>
    
    <insert id="insert" parameterClass="EcCouponTypeGoods">
        <selectKey resultClass="int" keyProperty="couponTypeGoodsId" >  
            SELECT COUPON_TYPE_GOODS_TEMP_SEQ.nextval AS couponTypeGoodsId  from dual
        </selectKey>
        insert into EC_COUPON_TYPE_GOODS (COUPON_TYPE_GOODS_ID, COUPON_TYPE_ID, GOODS_ID, IS_DELETE,
            ADD_USER_ID, ADD_TIME, EDIT_USER_ID, EDIT_TIME)
        values (#couponTypeGoodsId#, #couponTypeId#, #goodsId#, #isDelete#, #addUserId#, #addTime#,
            #editUserId#, #editTime#)
    </insert>
    <update id="updateByPrimaryKey" parameterClass="EcCouponTypeGoods">
        update EC_COUPON_TYPE_GOODS
        set COUPON_TYPE_ID = #couponTypeId#,
            GOODS_ID = #goodsId#,
            IS_DELETE = #isDelete#,
            ADD_USER_ID = #addUserId#,
            ADD_TIME = #addTime#,
            EDIT_USER_ID = #editUserId#,
            EDIT_TIME = #editTime#
        where COUPON_TYPE_GOODS_ID = #couponTypeGoodsId#
    </update>
    <update id="updateByPrimaryKeySelective" parameterClass="EcCouponTypeGoods">
        update EC_COUPON_TYPE_GOODS
        <dynamic prepend="set">
            <isNotNull prepend="," property="couponTypeId">
                COUPON_TYPE_ID = #couponTypeId#
            </isNotNull>
            <isNotNull prepend="," property="goodsId">
                GOODS_ID = #goodsId#
            </isNotNull>
            <isNotNull prepend="," property="isDelete">
                IS_DELETE = #isDelete#
            </isNotNull>
            <isNotNull prepend="," property="addUserId">
                ADD_USER_ID = #addUserId#
            </isNotNull>
            <isNotNull prepend="," property="addTime">
                ADD_TIME = #addTime#
            </isNotNull>
            <isNotNull prepend="," property="editUserId">
                EDIT_USER_ID = #editUserId#
            </isNotNull>
            <isNotNull prepend="," property="editTime">
                EDIT_TIME = #editTime#
            </isNotNull>
        </dynamic>
        where COUPON_TYPE_GOODS_ID = #couponTypeGoodsId#
    </update>
    <delete id="deleteByPrimaryKey" parameterClass="EcCouponTypeGoods">
        delete from EC_COUPON_TYPE_GOODS
        where COUPON_TYPE_GOODS_ID = #couponTypeGoodsId#
    </delete>
    <select id="getByPrimaryKey" resultMap="ecCouponTypeGoodsResult" parameterClass="EcCouponTypeGoods">
        select COUPON_TYPE_GOODS_ID, COUPON_TYPE_ID, GOODS_ID, IS_DELETE, ADD_USER_ID, ADD_TIME,
            EDIT_USER_ID, EDIT_TIME
        from EC_COUPON_TYPE_GOODS
        where COUPON_TYPE_GOODS_ID = #couponTypeGoodsId#
    </select>
    
    <!--LIST-->
    <select id="getEcCouponTypeGoodsList" resultMap="ecCouponTypeGoodsResult" parameterClass="EcCouponTypeGoods">
        select g.*
        from (
        select rownum as rn,gg.*
        from EC_COUPON_TYPE_GOODS gg
        where gg.is_delete='N'
        <isNotEmpty prepend="and" property="endRow">
             <![CDATA[
             rownum <= #endRow#
             ]]>
         </isNotEmpty>
         ) g
        where 1=1 
        <isNotEmpty prepend="and" property="startRow">
             <![CDATA[
                 g.rn >= #startRow#
             ]]>
         </isNotEmpty>
         order by g.COUPON_TYPE_GOODS_ID desc
    </select>
    <!--COUNT-->
    <select id="getEcCouponTypeGoodsCount" resultClass="Integer" parameterClass="EcCouponTypeGoods">
        select count(g.COUPON_TYPE_GOODS_ID)
        from EC_COUPON_TYPE_GOODS g
        where g.is_delete='N' 
        <isNotEmpty prepend="and" property="couponTypeId">
            g.COUPON_TYPE_ID = #couponTypeId#
        </isNotEmpty>
    </select>
    
    <!-- 根据优惠券类型ID更新商品状态 -->
    <update id="updateByCouponTypeId" parameterClass="EcCouponTypeGoods">
        update EC_COUPON_TYPE_GOODS
        set IS_DELETE = #isDelete#
        where COUPON_TYPE_ID = #couponTypeId#
    </update>
    
    <!--优惠券类型添加商品LIST-->
    <select id="getGoodsByEcCouponTypeList" resultMap="ecCouponTypeGoodsRes" parameterClass="EcCouponTypeGoods">
        select 
             pg.*,
             g.goods_no as goodsNo,
             g.goods_name as goodsName,
             pu.unit_name as unitName,
             g.good_stock as goodStock,
             g.available_stock as availableStock,
             g.market_price as marketPrice,
             g.ec_price as ecPrice 
        from 
             EC_COUPON_TYPE_GOODS pg 
             left join goods g on pg.goods_id=g.goods_id and g.is_delete='N'
             left join product p on g.product_id=p.product_id and p.is_delete='N'
             left join product_unit pu on p.unit_id=pu.unit_id
        where pg.is_delete='N'
        <isNotEmpty prepend="and" property="couponTypeId">
            pg.COUPON_TYPE_ID = #couponTypeId#
        </isNotEmpty>
    </select>
    
    <!--优惠券类型添加商品count-->
    <select id="getGoodsByEcCouponTypeCount" resultClass="Integer" parameterClass="EcCouponTypeGoods">
        select 
             count(1)
        from 
             EC_COUPON_TYPE_GOODS pg 
             left join goods g on pg.goods_id=g.goods_id and g.is_delete='N'
             left join product p on g.product_id=p.product_id and p.is_delete='N'
             left join product_unit pu on p.unit_id=pu.unit_id
        where pg.is_delete='N'
        <isNotEmpty prepend="and" property="couponTypeId">
            pg.COUPON_TYPE_ID = #couponTypeId#
        </isNotEmpty>
    </select>
    
    <!-- 根据couponTypeId删除 -->
    <update id="updateStateByCouponTypeId" parameterClass="EcCouponTypeGoods">
        update EC_COUPON_TYPE_GOODS
        Set IS_DELETE = 'Y'
        where COUPON_TYPE_ID = #couponTypeId#
    </update>
</sqlMap>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值