主要是优惠券的新增,展示,各种知识点的集合
<%@ 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> <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> " + "<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> " + "<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> "+ "<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> "; } } } ]], 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> "; // } // } // ]], 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;
innerHTML在JS是双向功能:获取对象的内容 或 向对象插入内容;
如:<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"> (图片尺寸必须为: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> "; // } // } // ]], 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> <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> "; } } ]], 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>