会员卡管理系统技术解析(十六)会员卡有效期更改
来源:互联网 发布:java之父宣布java 编辑:程序博客网 时间:2024/04/27 20:09
会员卡管理系统技术解析(十六)会员卡有效期更改
6.3会员卡有效期更改
添加会员卡有效期更改界面效果图如下:
6.3(图1)
本模块所用到的控件有:
文本框(easyui-textbox)
第一要设置每个控件的id;第二设置大小不设置也有默认;第三(data-options)是数据操作:可以设置控件的一些属性和事件
下拉框(easyui-combobox)
按钮(easyui-linkbutton)
表格(easyui-datagrid)
第一步:数据库
查询符合条件的卡,数据库表与表的关系如下:
6.3(图2)
表1:发放明细表(Pw_MembershipCardIssuedDetails)
主要包含如下字段信息:
列名
数据类型
主键/外键
说明
MembershipCardIssuedDetailsID
int
主键
发放明细ID
MembershipCardIssuedID
int
外键
发放记录ID
MembershipCardRecipientsDetailsID
int
外键
领卡明细ID
MemberProfileID
int
外键
会员档案ID
CardType
int
外键
会员卡类型ID
WindowStateID
int
外键
启动状态ID
StateOfTheMembershipCardID
int
外键
会员卡状态ID
ChangeTheMembershipCardID
int
外键
会员卡变更状态ID
FormerRecipientsDetailsID
int
外键
原领卡明细ID
Money
money
金额
Integral
nchar(20)
积分
SingleKakaFee
money
单卡卡费
ActualStartComputingTime
date
实际开始时间
ActualEndTime
date
实际结束时间
Summary
nchar(50)
摘要
Invalid
bit
作废否
AllowedToReportTheLossOf
bit
挂失否
InternalIssue
bit
内部发放否
表2:领卡明细表(Pw_MembershipCardRecipientsDetails)
主要包含如下字段信息:
列名
数据类型
主键/外键
说明
MembershipCardRecipientsDetailsID
int
主键
领卡明细ID
MembershipCardRecipientsID
int
外键
领卡记录ID
MembershipCardDetailsID
int
外键
建卡明细ID
ChangeTheMembershipCardID
int
外键
变更会员卡状态ID
RecipientsWhoID
int
外键
领用人ID
表3: 建卡明细表(Pw_MembershipCardDetails)
主要包含如下字段信息:
列名
数据类型
主键/外键
说明
MembershipCardDetailsID
int
主键
建卡明细ID
MembershipCardID
int
外键
建卡记录ID
MembershipCardTypeID
int
外键
会员卡种类ID
MembershipCardStorageLocationID
int
外键
保管地点ID
StateOfTheMembershipCardID
int
外键
会员卡状态ID
ChangeTheMembershipCardID
int
外键
变更会员卡状态ID
UpdateRankID
int
外键
会员卡级别ID
KeeperID
int
外键
保管人ID
Remarks
nchar(200)
备注
MembershipCardCardNumber
nchar(50)
会员卡卡号
SpecifyTheValidityTime
date
有效期指定时间
ValidityTime
date
有效期时间
WriteCardStatus
nchar(10)
写卡状态
WriteTime
date
写卡时间
NominalAmount
money
面值金额
表4:会员卡类型(Sys_ MembershipCardType)
主要包含如下字段信息:
列名
数据类型
主键/外键
说明
MembershipCardTypeID
int
主键
会员卡类型ID
MembersKakaKindID
int
外键
会员卡卡种ID
MembershipCardLevelID
int
外键
会员卡级别ID
MembershipCardIssuanceID
int
外键
会员卡发行方式ID
UseObjectID
int
外键
使用对象ID
DailyManagementFormID
int
外键
日常管理形式ID
TrackMediumID
int
外键
磁道介质ID
PreferentialWayID
int
外键
优惠方式ID
CardValidityPeriodSpecifiedID
int
外键
卡有效期指定方式ID
HairpinWithFaceValue
bit
发卡时有面值否
StoredValueCoupons
bit
储值优惠券标记否
ParticipateInTheScore
bit
参与消费积分否
leadCode
nchar(10)
前导码
PostpositionCode
nchar(10)
后置码
RequireTheSystemToMakeCard
bit
需要系统制卡否
NeedCompulsoryInspectionCard
bit
需要强制验卡否
LengthOfThePeriodOfValidity
nchar(10)
有效期长度
TrackContentEncryption
bit
磁道内容加密否
Invalid
bit
作废否
MembershipCardTypeCode
nchar(10)
会员卡类型代码
MembershipCardTypeName
nchar(30)
会员卡类型名称
KeepRecordsOfConsumption
bit
保存消费记录否
TotalLengthCardNumber
int
卡号总长度
OpenTheCouponAccount
bit
开通优惠券账户否
表5:会员卡卡种表(Sys_MembersKakaKind)
主要包含如下字段信息:
列名
数据类型
主键/外键
说明
MembersKakaKindID
int
主键
会员卡卡种ID
MembersKakaCode
nchar(10)
会员卡卡种代码
MembersKakaKindsOfNames
nchar(30)
会员卡卡种名称
Invalid
bit
作废否
控件的使用方法:
1、文本框(easyui-textbox)
作用:用于数据的存放
普通文本框截图:
6.3(图3)
普通文本框界面代码:
<td><input id="txtLingYongRen" style="color:Blue"/></td>
获取界面控件值的代码:
$('#txtLingYongRen').val();
2、下拉框(easyui-combobox)
作用:用于绑定数据,便于选择
下拉框截图:
6.3(图4)
下拉框界面代码:
<td><input class="easyui-combobox" id="cboHuiYuanKaZhongLei" name="cboHuiYuanKaZhongLei" data-options="valueField:'HuiYuanKaKaZhongID',textField:'HuiYuanKaKaZhongMC'" /> </td>
获取界面控件值的代码:
$('#cboHuiYuanKaZhongLei').combobox('getValue');
第二步:服务层接口(IService)
6.3(图5)
public ListQuerySelectKa(intmembershipCardTypeId);//查询符合条件的卡 publicList<PwMembershipCardIssuedDetails>QuerySelectFaFangMingXi(intFaFangMingXiId);//查询发放明细信息 public booleanQueryFaFangMingXiEdit(PwMembershipCardIssuedDetailsentity);//修改发放明细 publicList<PwMembershipCardDetails>QuerySelectJianKaMingXi(intJianKaMingXiId);//查询建卡明细 public booleanQueryJianKaMingXiEdit(PwMembershipCardDetailsentity);//修改建卡明细 publicList<PwMembershipCardRecipientsDetails>QuerySelectLingYongMingXi(intLingYongMingXiId);//查询领用明细public ListQueryMembershipCardDetailsChaXun(StringmembershipCardTypeId,String membershipCardCardNumberStar, StringmembershipCardCardNumberEnd);//模糊查询符合条件的卡
第三步:服务层(Service)
6.3(图6)
/*会员卡有效期变更时,查询需要变更的卡 * membershipCardTypeId 会员卡类型id * */ @Override public ListQuerySelectKa(intmembershipCardTypeId){ try {//尝试运行代码 StringBuffer queryString= new StringBuffer();/*实例化StringBuffer*/ queryString.append("SELECTFaFangMingXi.membershipCardIssuedDetailsId,HuiYuanXinXi.menberName,HuiYuanXinXi.idnumber," + "JianKaMingXi.membershipCardCardNumber,JianKaMingXi.validityTime");/*拼接需要查询的字段*/ queryString.append("FROMPwMembershipCardIssuedDetails AS FaFangMingXi,SysMemberProfile ASHuiYuanXinXi," + "PwMembershipCardRecipientsDetailsAS LingYongMingXi,PwMembershipCardDetails AS JianKaMingXi ");/*实例化表*/ queryString.append("WHEREFaFangMingXi.memberProfileId = HuiYuanXinXi.memberProfileId " + "ANDFaFangMingXi.membershipCardRecipientsDetailsId =LingYongMingXi.membershipCardRecipientsDetailsId " + "ANDLingYongMingXi.membershipCardDetailsId = JianKaMingXi.membershipCardDetailsId" + "AND(FaFangMingXi.changeTheMembershipCardId BETWEEN 18 AND 20 ORFaFangMingXi.changeTheMembershipCardId = 61) " + "ANDJianKaMingXi.membershipCardTypeId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{membershipCardTypeId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } /*根据一定条件查询符合条件的卡 * membershipCardTypeId 会员卡类型id * membershipCardCardNumberStar 开始卡号 * membershipCardCardNumberEnd 结束卡号 * */ @Override public ListQueryMembershipCardDetailsChaXun( StringmembershipCardTypeId, StringmembershipCardCardNumberStar, StringmembershipCardCardNumberEnd){ try{//尝试运行代码 StringBufferqueryString=new StringBuffer();/*实例化StringBuffer*/ queryString.append("SELECTFaFangMingXi.membershipCardIssuedDetailsId,HuiYuanXinXi.menberName,HuiYuanXinXi.idnumber," + "JianKaMingXi.membershipCardCardNumber,JianKaMingXi.validityTime");/*拼接需要查询的字段*/ queryString.append("FROMPwMembershipCardIssuedDetails AS FaFangMingXi,SysMemberProfile ASHuiYuanXinXi," + "PwMembershipCardRecipientsDetailsAS LingYongMingXi,PwMembershipCardDetails AS JianKaMingXi ");/*实例化表*/ queryString.append("WHEREFaFangMingXi.memberProfileId = HuiYuanXinXi.memberProfileId " + "ANDFaFangMingXi.membershipCardRecipientsDetailsId =LingYongMingXi.membershipCardRecipientsDetailsId " + "ANDLingYongMingXi.membershipCardDetailsId = JianKaMingXi.membershipCardDetailsId" + "AND(FaFangMingXi.changeTheMembershipCardId BETWEEN 18 AND 20 ORFaFangMingXi.changeTheMembershipCardId = 61) "); intparamcount=0; if(!membershipCardTypeId.equals("")){//判断会员卡类型是否为空 queryString.append("ANDJianKaMingXi.membershipCardTypeId = ? "); paramcount++; } queryString.append("ANDJianKaMingXi.membershipCardCardNumber BETWEEN ? AND ? "); Object[]obj=new Object[paramcount+2]; paramcount=0; if(!membershipCardTypeId.equals("")){obj[paramcount]=Integer.parseInt(membershipCardTypeId);paramcount++;} if(!membershipCardCardNumberStar.equals("")){ obj[paramcount]=membershipCardCardNumberStar; }else{ obj[paramcount]="0"; } if(!membershipCardCardNumberEnd.equals("")){ obj[paramcount+1]=membershipCardCardNumberEnd; }else{ obj[paramcount+1]="99999999999999999999"; }/*满足条件*/ return dao.findByHql(queryString.toString(),obj); }catch (Exception ex){/*尝试运行代码出现错误,执行异常处理*/ return null; } } /*会员卡有效期变更时,查询发放明细 * FaFangMingXiId 发放明细 * */ @Override publicList<PwMembershipCardIssuedDetails>QuerySelectFaFangMingXi(intFaFangMingXiId){ try {//尝试运行代码 StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("FROMPwMembershipCardIssuedDetails AS FaFangMingXi ");/*实例化表*/ queryString.append("WHEREFaFangMingXi.membershipCardIssuedDetailsId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{FaFangMingXiId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //会员卡有效期变更时,修改发放明细 @Override public booleanQueryFaFangMingXiEdit(PwMembershipCardIssuedDetails entity) { try {//尝试运行代码 return dao.edit(entity); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return false; } } //会员卡有效期变更时,查询领用明细 @Override publicList<PwMembershipCardRecipientsDetails>QuerySelectLingYongMingXi(intLingYongMingXiId){ try {//尝试运行代码 StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("FROMPwMembershipCardRecipientsDetails AS LingYongMingXi ");/*实例化表*/ queryString.append("WHERELingYongMingXi.membershipCardRecipientsDetailsId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{LingYongMingXiId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //会员卡有效期变更时,查询建卡明细 @Override publicList<PwMembershipCardDetails>QuerySelectJianKaMingXi(intJianKaMingXiId){ try {//尝试运行代码 StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("FROMPwMembershipCardDetails AS JianKaMingXi ");/*实例化表*/ queryString.append("WHEREJianKaMingXi.membershipCardDetailsId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{JianKaMingXiId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //会员卡有效期变更时,修改建卡明细 @Override public booleanQueryJianKaMingXiEdit(PwMembershipCardDetailsentity) { try {//尝试运行代码 return dao.edit(entity); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return false; } }
第四步:方法层(Action)
6.3(图7)
//会员卡有效期变更时,查询需要变更的卡 public StringgetYouXiaoQiBianGengSelectKa(){ JSONObjectjsObj = new JSONObject();/*实例化一个Object数组*/ JSONArrayjsArr = new JSONArray();/*实例化一个Array数组*/ intHuiYuanKaLeiXing = Integer.parseInt(this.getRequest().getParameter("HuiYuanKaLeiXing"));/*从视图层传来的参数*/ ListlsSelectKa = this.huiYuanXinXiGuanLiService.QuerySelectKa(HuiYuanKaLeiXing);/*调用服务层方法*/ for (int i =0; i < lsSelectKa.size(); i++) {/*循环遍历服务层返回的结果集*/ Object[]obj = (Object[])lsSelectKa.get(i); jsObj.clear();/*清空jsObj数组*/ jsObj.put("FaFangMingXiID",obj[0]); jsObj.put("XingMing",obj[1]); jsObj.put("ZhengJianHaoMa",obj[2]); jsObj.put("HuiYuanKaKaHao",obj[3]); jsObj.put("YuanYouXiaoQi",obj[4]); jsObj.put("DangQianYouXiaoQi", ""); jsArr.add(jsObj); } HashMap<String, Object>jsMap = new HashMap<String, Object>();/*实例化一个哈希表*/ jsMap.put("rows",jsArr);/*将jsArr数组写入到jsMap中*/ JSObj = JSONObject.fromObject(jsMap);/*转换数组类型,并返回数组*/ return SUCCESS; } //根据一定条件查询符合条件的卡 public StringgetYouXiaoQiBianGengMoHuChaXunKa() { JSONObjectjsObj = new JSONObject();/*实例化一个Object数组*/ JSONArrayjsArr = new JSONArray();/*实例化一个Array数组*/ Stringparam = encodingFunction.getMethodEncoding(this.getRequest().getParameter("param"));/*从视图层传来的参数*/ String[]params = param.split("<<");/*分解参数*/ ListlsMoHuChaXunKa = this.huiYuanXinXiGuanLiService.QueryMembershipCardDetailsChaXun(params[0].trim(), params[1].trim(),params[2].trim());/*调用服务层方法*/ for (int i =0; i < lsMoHuChaXunKa.size(); i++) {/*循环遍历服务层返回的结果集*/ Object[]obj = (Object[])lsMoHuChaXunKa.get(i); jsObj.clear();/*清空jsObj数组*/ jsObj.put("FaFangMingXiID",obj[0]); jsObj.put("XingMing",obj[1]); jsObj.put("ZhengJianHaoMa",obj[2]); jsObj.put("HuiYuanKaKaHao",obj[3]); jsObj.put("YuanYouXiaoQi",obj[4]); jsObj.put("DangQianYouXiaoQi", ""); jsArr.add(jsObj); } HashMap<String, Object>jsMap = new HashMap<String, Object>();/*实例化一个哈希表*/ jsMap.put("rows",jsArr);/*将jsArr数组写入到jsMap中*/ JSObj = JSONObject.fromObject(jsMap);/*转换数组类型,并返回数组*/ return SUCCESS; } //新增会员卡有效期变更 public StringgetYouXiaoQiBianGengInsert() { Stringparam = encodingFunction.getMethodEncoding(this.getRequest().getParameter("param"));/*从视图层传来的参数*/ String[]params = param.split("<>");/*分解参数*/ for (int i =0; i < params.length;i++) { String[]paramObj = params[i].split("<<");/*分解参数*/ List<PwMembershipCardIssuedDetails>lsFaFangMingXi = this.huiYuanXinXiGuanLiService.QuerySelectFaFangMingXi(Integer.parseInt(paramObj[0].trim()));/*调用服务层方法*/ PwMembershipCardIssuedDetails obj= lsFaFangMingXi.get(0); PwMembershipCardIssuedDetailsFaFangMingXi = new PwMembershipCardIssuedDetails();/*实例化发放明细表*/ FaFangMingXi.setActualEndTime(paramObj[1].trim()); FaFangMingXi.setActualStartComputingTime(obj.getActualStartComputingTime()); FaFangMingXi.setAllowedToReportTheLossOf(obj.getAllowedToReportTheLossOf()); FaFangMingXi.setCardType(obj.getCardType()); FaFangMingXi.setChangeTheMembershipCardId(obj.getChangeTheMembershipCardId()); FaFangMingXi.setFormerRecipientsDetailsId(obj.getFormerRecipientsDetailsId()); FaFangMingXi.setIntegral(obj.getIntegral()); FaFangMingXi.setInternalIssue(obj.getInternalIssue()); FaFangMingXi.setInvalid(obj.getInvalid()); FaFangMingXi.setMemberProfileId(obj.getCardType()); FaFangMingXi.setMembershipCardIssuedDetailsId(obj.getMembershipCardIssuedDetailsId()); FaFangMingXi.setMembershipCardIssuedId(obj.getMembershipCardIssuedId()); FaFangMingXi.setMembershipCardRecipientsDetailsId(obj.getMembershipCardRecipientsDetailsId()); FaFangMingXi.setMoney(obj.getMoney()); FaFangMingXi.setSingleKakaFee(obj.getSingleKakaFee()); FaFangMingXi.setStateOfTheMembershipCardId(obj.getStateOfTheMembershipCardId()); FaFangMingXi.setSummary(obj.getSummary()); FaFangMingXi.setWindowStateId(obj.getWindowStateId()); if(this.huiYuanXinXiGuanLiService.QueryFaFangMingXiEdit(FaFangMingXi)){/*调用服务层方法,并且判断是否修改发放明细成功*/ List<PwMembershipCardRecipientsDetails>lsLingYongMingXi = this.huiYuanXinXiGuanLiService.QuerySelectLingYongMingXi(obj.getMembershipCardRecipientsDetailsId());/*调用服务层方法*/ PwMembershipCardRecipientsDetails atr= lsLingYongMingXi.get(0); List<PwMembershipCardDetails>lsJianKaMingXi = this.huiYuanXinXiGuanLiService.QuerySelectJianKaMingXi(atr.getMembershipCardDetailsId());/*调用服务层方法*/ PwMembershipCardDetails str= lsJianKaMingXi.get(0); PwMembershipCardDetailsJianKaMingXi = new PwMembershipCardDetails();/*实例化建卡明细表*/ JianKaMingXi.setChangeTheMembershipCardId(str.getChangeTheMembershipCardId()); JianKaMingXi.setKeeperId(str.getKeeperId()); JianKaMingXi.setMembershipCardCardNumber(str.getMembershipCardCardNumber()); JianKaMingXi.setMembershipCardDetailsId(str.getMembershipCardDetailsId()); JianKaMingXi.setMembershipCardId(str.getMembershipCardId()); JianKaMingXi.setMembershipCardStorageLocationId(str.getMembershipCardStorageLocationId()); JianKaMingXi.setMembershipCardTypeId(str.getMembershipCardTypeId()); JianKaMingXi.setNominalAmount(str.getNominalAmount()); JianKaMingXi.setRemarks(str.getRemarks()); JianKaMingXi.setSpecifyTheValidityTime(str.getSpecifyTheValidityTime()); JianKaMingXi.setStateOfTheMembershipCardId(str.getStateOfTheMembershipCardId()); JianKaMingXi.setUpdateRankId(str.getUpdateRankId()); JianKaMingXi.setValidityTime(paramObj[1].trim()); JianKaMingXi.setWriteCardStatus(str.getWriteCardStatus()); JianKaMingXi.setWriteTime(str.getWriteTime()); this.huiYuanXinXiGuanLiService.QueryJianKaMingXiEdit(JianKaMingXi);/*调用服务层方法*/ } } MSG = "OK"; return SUCCESS; }
第五层:配置struts
6.3(图8)
<action name="getYouXiaoQiBianGengSelectKa" class="HuiYuanXinXiGuanLiAction" method="getYouXiaoQiBianGengSelectKa"> <result type="json"> <param name="root">JSObj</param> </result> </action> <action name="getYouXiaoQiBianGengMoHuChaXunKa" class="HuiYuanXinXiGuanLiAction" method="getYouXiaoQiBianGengMoHuChaXunKa"> <result type="json"> <param name="root">JSObj</param> </result> </action> <action name="getYouXiaoQiBianGengInsert" class="HuiYuanXinXiGuanLiAction" method="getYouXiaoQiBianGengInsert"> <result type="json"> <param name="root">MSG</param> </result> </action>
第六步:视图层JSP
6.3(图9)
Javascript代码:
//改造日期格式 function myformatter(date){ var y = date.getFullYear();//获取年份 var m = date.getMonth()+1;//获取月份 var d = date.getDate();//获取天 return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);//三目运算符 }
//根据类型和地点查询符合条件的卡 var HuiYuanKaLeiXing = 0; function ChaXunFuHeTiaoJianDeKa(){ HuiYuanKaLeiXing = $('#cboHuiYuanKaLeiXing').combobox('getValue');//获取数据 if(HuiYuanKaLeiXing != ""){//判断获取的值是否为空 $('#FromSelectKa').show();//弹窗 $.getJSON("getYouXiaoQiBianGengSelectKa?HuiYuanKaLeiXing="+HuiYuanKaLeiXing,function(data){ if(data){//判断返回值是否为空 $('#dgYouXiaoQiBianGengChaXun').datagrid('loadData',data);//绑定数据到datagrid中 $('#txtKuCunShuLiang').val($('#dgYouXiaoQiBianGengChaXun').datagrid('getRows').length); } }); } else { alert("请选择查询条件:会员卡类型查询"); } }
弹窗界面效果图如下:
6.3(图10)
HTML代码:
<div id="FromSelectKa" class="FromFuHeKaclass"> <div class="easyui-layout FromFuHeKalayout"> <div data-options="region:'west'" style="width:450px;"> <div class="erJiBiaoTi">***查询结果***</div> <hr style="border:solid 1px #CCCCCC;"/> <table id="dgYouXiaoQiBianGengChaXun" class="easyui-datagrid" style="height:472px" data-options="rownumbers:true,loadMsg:'加载中,请稍后...',idField:'FaFangMingXiID'"> <thead> <tr> <th data-options="field:'FaFangMingXiID',width:20,hidden:true,align:'center'">会员卡明细ID</th> <th data-options="field:'ckXuanZe',checkbox:true"></th> <th data-options="field:'HuiYuanKaKaHao',width:100,align:'center'">会员卡卡号</th> <th data-options="field:'XingMing',width:55,align:'center'">姓名</th> <th data-options="field:'ZhengJianHaoMa',width:123,align:'center'">证件号码</th> <th data-options="field:'YuanYouXiaoQi',width:65,align:'center'">原有效期</th> <th data-options="field:'DangQianYouXiaoQi',width:2,hidden:true">变更有效期</th> </tr> </thead> </table> </div> <div data-options="region:'center'"> <div class="erJiBiaoTi">***筛选设置***</div> <hr style="border:solid 1px #CCCCCC;"/> <center> <table class="FromFuHeKalayoutRight"> <tr> <td align="right">开始卡号:</td> <td><input id="txtKaiShiKaHao" /></td> </tr> <tr> <td align="right">卡数量:</td> <td><input id="txtKaShuLiang" onKeyUp="ChaXunKa()"/></td> </tr> <tr> <td align="right">结束卡号:</td> <td><input id="txtJieShuKaHao" readonly/></td> </tr> <tr> <td align="right">库存数量:</td> <td><input id="txtKuCunShuLiang" style="color:#FF0000" value="0" readonly/></td> <td>张</td> </tr> </table> <table> <tr class="xuanZeKuang"> <td> <a onClick="QieRen()" class="easyui-linkbutton"data-options="iconCls:'icon-ok'">确认</a> <a onClick="$('#FromSelectKa').hide()"class="easyui-linkbutton" data-options="iconCls:'icon-cancel'">取消</a> </td> </tr> </table> </center> </div> </div> </div>
Javascript代码:
//根据类型和地点查询符合条件的卡 var HuiYuanKaLeiXing = 0; function ChaXunFuHeTiaoJianDeKa(){ HuiYuanKaLeiXing = $('#cboHuiYuanKaLeiXing').combobox('getValue');//获取数据 if(HuiYuanKaLeiXing != ""){//判断获取的值是否为空 $('#FromSelectKa').show();//弹窗 $.getJSON("getYouXiaoQiBianGengSelectKa?HuiYuanKaLeiXing="+HuiYuanKaLeiXing,function(data){ if(data){//判断返回值是否为空 $('#dgYouXiaoQiBianGengChaXun').datagrid('loadData',data);//绑定数据到datagrid中 $('#txtKuCunShuLiang').val($('#dgYouXiaoQiBianGengChaXun').datagrid('getRows').length); } }); } else { alert("请选择查询条件:会员卡类型查询"); } } //条件查询符合条件的卡 function ChaXunKa(){ $.getJSON("JiaZaiKaHaoXiangGuanShuJu?HuiYuanKaLeiXingID="+HuiYuanKaLeiXing,function(data){ KaHaoZongChangDu =data[0].KaHaoZongChangDu;//查询出卡号总长度 QianDaoMa =data[0].QianDaoMa.toString().trim();//查询出前导码 HouZhiMa = data[0].HouZhiMa.toString().trim();//查询出后置码 var KaiShiKaHao= $('#txtKaiShiKaHao').val();//获取开始卡号 if(KaiShiKaHao.toString().trim().length!= KaHaoZongChangDu){//判断开始卡号的总长度与查询出卡号总长度是否相等 alert("对不起,您输入的开始卡号的有误,系统将自动校正为左边第一行的卡号"); var row = $('#dgYouXiaoQiBianGengChaXun').datagrid('getRows'); $('#txtKaiShiKaHao').val(row[0].HuiYuanKaKaHao); KaiShiKaHao = row[0].HuiYuanKaKaHao; } else { KaiShiKaHaoQianDaoMa = Number(KaiShiKaHao.substring(0,QianDaoMa.length));//截除前导码 KaiShiKaHaoHouZhiMa =Number(KaiShiKaHao.substring(KaHaoZongChangDu-HouZhiMa.length,KaHaoZongChangDu));//截除后置码 if(KaiShiKaHaoQianDaoMa!= QianDaoMa || KaiShiKaHaoHouZhiMa != HouZhiMa){ alert("对不起,您输入的开始卡号在该类型中不存在,系统将自动校正为左边第一行的卡号"); var row = $('#dgYouXiaoQiBianGengChaXun').datagrid('getRows'); $('#txtKaiShiKaHao').val(row[0].HuiYuanKaKaHao); KaiShiKaHao = row[0].HuiYuanKaKaHao; } } MinKaHao=Number(KaiShiKaHao.substring(QianDaoMa.length,KaHaoZongChangDu-HouZhiMa.length));//截除前导码和后置码 var KaShuLiang = $('#txtKaShuLiang').val(); if(KaShuLiang != "" && Number(KaShuLiang) >0){//判断输入的卡数量是否大于0 MaxKaHao = Number(MinKaHao) + Number(KaShuLiang) - 1; } else { alert("由于您输入的卡数量过小或为空,系统将自动校正卡数量为1"); KaShuLiang = 1; MaxKaHao = Number(MinKaHao); $('#txtKaShuLiang').val(KaShuLiang); } var count = ""; BuLingChangDu = KaHaoZongChangDu -HouZhiMa.length - QianDaoMa.length - MaxKaHao.toString().length; if(BuLingChangDu < 0){ alert("对不起,您输入的卡数量已超出范围,系统将自动校正卡数量为1"); KaShuLiang = 1; MaxKaHao = Number(MinKaHao); $('#txtKaShuLiang').val(KaShuLiang); BuLingChangDu = KaHaoZongChangDu - HouZhiMa.length - QianDaoMa.length -MaxKaHao.toString().length; } for(i=0;i<BuLingChangDu;i++){ count+="0"; } JieShuKaHao = QianDaoMa + count +MaxKaHao.toString() + HouZhiMa;//重新拼接卡号 $('#txtJieShuKaHao').val(JieShuKaHao); param = HuiYuanKaLeiXing+"<<"+KaiShiKaHao+"<<"+JieShuKaHao;//拼接字符串 $.getJSON("getYouXiaoQiBianGengMoHuChaXunKa?param="+param,function(data){ $('#dgYouXiaoQiBianGengChaXun').datagrid('loadData',data);//把数据绑定到datagrid中 $("#txtKuCunShuLiang").val($('#dgYouXiaoQiBianGengChaXun').datagrid('getRows').length); }); }); } //确认选择,将选择好的卡转移到dgv中 function QieRen(){ var row = $('#dgYouXiaoQiBianGengChaXun').datagrid('getChecked');//获取选中的数据 $('#dgYouXiaoQiBianGeng').datagrid('loadData',row);//把获取到的数据绑定到另一个datagrid中 $('#FromSelectKa').hide();//关闭窗体 } var editIndex = undefined; function getSelectMingXi(rowIndex,rowData){ $('#dgYouXiaoQiBianGeng').datagrid('endEdit', editIndex);//结束编辑 $('#dgYouXiaoQiBianGeng').datagrid('beginEdit', rowIndex);//开启编辑 editIndex = rowIndex; } //添加会员卡有效期变更 function TianJia(){ if ($('#dgYouXiaoQiBianGeng').datagrid('validateRow', editIndex)){ $('#dgYouXiaoQiBianGeng').datagrid('endEdit', editIndex);//结束编辑 var rowData=$('#dgYouXiaoQiBianGeng').datagrid('getRows'); var param=""; var ZhengChangHangShu = 0; for(var i=0; i < rowData.length; i++){ if(rowData[i].DangQianYouXiaoQi.trim()!= ""){//判断是否已经填写新有效期 param = param + rowData[i].FaFangMingXiID+"<<"+rowData[i].DangQianYouXiaoQi+"<>";//拼接字符串 ZhengChangHangShu += 1; }else{ var j = i + 1; alert("第"+j+"行,新有效期为空,请您输入后,再执行当前操作");//提示你第几行的数据尚未填写 $('#dgYouXiaoQiBianGeng').datagrid('beginEdit',i);//自动开始编辑 } } if(ZhengChangHangShu ==rowData.length){ $.getJSON("getYouXiaoQiBianGengInsert?param="+param,function(){ alert("新增成功"); location.href = "HuiYuanXinXiGuanLi/HuiYuanKaYouXiaoQiGengGai.jsp"; }); } else { alert("由于您操作的问题,不能添加有效期变更信息"); } } }
该资料仅供学习使用,禁止用于商业用途
- 会员卡管理系统技术解析(十六)会员卡有效期更改
- 会员卡管理系统技术解析(六) 会员卡退卡
- 会员卡管理系统技术解析(八)添加会员卡挂失
- 会员卡管理系统技术解析(十五)会员卡状态变动
- 会员卡管理系统技术解析(十七)库存年卡有效期变更
- 会员卡管理系统技术解析(十六)库存卡作废恢复记录添加
- 会员卡管理系统技术解析(二)会员卡调拨查询和修改
- 会员卡管理系统技术解析(三)添加会员卡调拨信息
- 会员卡管理系统技术解析(四)会员卡发放记录查询
- 会员卡管理系统技术解析(八)会员卡建卡记录添加
- 会员卡管理系统技术解析(九)会员卡领卡记录查询
- 会员卡管理系统技术解析(十) 会员卡领卡记录添加
- 会员卡管理系统技术解析(五)添加会员卡发放信息
- 会员卡管理系统技术解析(十一)会员卡退领记录查询
- 会员卡管理系统技术解析(十二)会员卡退领记录添加
- 会员卡管理系统技术解析(七)会员卡挂失记录查询
- 会员卡管理系统技术解析(九)会员卡挂失恢复查询
- 会员卡管理系统技术解析(十一)会员卡作废记录查询
- 【C语言】猜拳游戏,人与电脑对决
- execve源码分析
- 第十三周项目3——立体类族共有的抽象类
- 事件机制
- NSOperationQueue 方式开启线程
- 会员卡管理系统技术解析(十六)会员卡有效期更改
- TCP学习(一)版本
- 使用Pycluster包进行聚类分析实例
- is not in the sudoers file 解决
- WARNING: The host '$hostname' could not be looked up with resolveip.
- Sereja and Array
- Unity3d_用PlayerPrefs保存和读取数组
- XTU 1173 Five Tiger(简单模拟)
- 程序员的量化交易之路(17)--Cointrader之Temporal实体(5)