会员卡管理系统技术解析(六) 会员卡退卡
来源:互联网 发布:信宣美工组是干什么的 编辑:程序博客网 时间:2024/06/09 18:09
会员卡管理系统技术解析(六) 会员卡退卡
3.6会员卡退卡
会员卡退卡这个功能模块可以对已发放的会员卡进行退卡的操作,退卡后禁止对卡的一切操作,退回发售部门的卡可以再次出售。
会员卡退卡的界面效果图如下:
3.6(图1)
从界面所看到的控件有:
文本框(easyui-textbox)
第一要设置每个控件的id;第二(data-options)是数据操作:可以设置控件的一些属性和事件
按钮(easyui-linkbutton)
第一步:数据库
输入卡号/刷卡后,查询相关信息涉及的表与表的关系图如下:
3.6(图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_BasicAttributeCollectionDetails)
主要包含如下字段信息:
列名
数据类型
主键/外键
说明
BasicAttributeCollectionDetailsID
int
主键
基础属性集合明细ID
BasicAttributeSetID
int
外键
基础属性集合ID
BasicAttributeCollectionSubsidiaryName
nchar(50)
基础属性集合明细名称
控件的使用方法:
文本框(easyui-textbox)
作用:用于数据的存放
普通文本框截图:
3.6(图3)
普通文本框界面代码:
<td><input id="txtLingYongRen" style="color:Blue"/></td>
获取界面控件值的代码:
$('#txtLingYongRen').val();
第二步:服务层接口(IService)
public List QueryHuiYuanKaTuiKa(String HuiYuanKaHao);//退卡时,查询符合条件的卡publicList<PwMembershipCardRecipientsDetails>QueryLingYongMingXiChaXun(intmembershipCardRecipientsDetailsId);//退卡时,查询领卡明细 publicList<PwMembershipCardIssuedDetails>QueryFaFangMingXiChaXun(intmembershipCardIssuedDetailsId);//退卡时,查询发放明细 public booleanQueryMembershipCardIssuedDetailsEdit(PwMembershipCardIssuedDetailsentity);//退卡时,修改发放明细publicbooleanEditLingKaMingXi(PwMembershipCardRecipientsDetails entity);//修改领卡明细public List<PwMembershipCardDetails> QueryJianKaMingXiChaXun(intmembershipCardDetailsId);//退卡时,查询建卡明细publicbooleanQueryjianKaMingXiUpdate(PwMembershipCardDetails entity);//修改建卡明细
第三步:服务层(Service)
//会员卡退卡查询符合条件的卡 @Override public ListQueryHuiYuanKaTuiKa(StringHuiYuanKaHao) { try {/*尝试运行代码*/ StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("SELECTFaFangMingXi.membershipCardIssuedDetailsId,HuiYuanKaZhuangTai.basicAttributeCollectionSubsidiaryName," + "FaFangMingXi.money,LeiXing.membershipCardTypeName");//拼接需要查询的字段 queryString.append("FROMPwMembershipCardDetails AS JianKaMingXi,PwMembershipCardRecipientsDetails ASLingYongMingXi," + "PwMembershipCardIssuedDetailsAS FaFangMingXi,SysBasicAttributeCollectionDetails AS HuiYuanKaZhuangTai," + "SysMembershipCardTypeAS LeiXing,SysDailyManagementForm AS RiChang,PwMembershipCardIssued AS FaFang");/*实例化表*/ queryString.append("WHEREJianKaMingXi.membershipCardDetailsId = LingYongMingXi.membershipCardDetailsId" + "ANDLingYongMingXi.membershipCardRecipientsDetailsId =FaFangMingXi.membershipCardRecipientsDetailsId " + "ANDJianKaMingXi.membershipCardTypeId = LeiXing.membershipCardTypeId " + "ANDLeiXing.dailyManagementFormId = RiChang.dailyManagementFormId " + "ANDFaFangMingXi.membershipCardIssuedId = FaFang.membershipCardIssuedId " + "ANDFaFangMingXi.changeTheMembershipCardId =HuiYuanKaZhuangTai.basicAttributeCollectionDetailsId " + "ANDFaFang.isVerify = true " + "ANDRiChang.permitCard = true " + "ANDJianKaMingXi.membershipCardCardNumber = ? " + "AND(FaFangMingXi.changeTheMembershipCardId BETWEEN 18 AND 20 ORFaFangMingXi.changeTheMembershipCardId = 61)");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{HuiYuanKaHao}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //查询发放明细 @Override publicList<PwMembershipCardIssuedDetails>QueryFaFangMingXiChaXun(intmembershipCardIssuedDetailsId) { try {/*尝试运行代码*/ StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("FROMPwMembershipCardIssuedDetails AS FaFangMingXi ");/*实例化表*/ queryString.append("WHEREFaFangMingXi.membershipCardIssuedDetailsId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{membershipCardIssuedDetailsId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //查询领用明细 @Override publicList<PwMembershipCardRecipientsDetails>QueryLingYongMingXiChaXun(intmembershipCardRecipientsDetailsId) { try {/*尝试运行代码*/ StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("FROMPwMembershipCardRecipientsDetails AS LingYongMingXi ");/*实例化表*/ queryString.append("WHERELingYongMingXi.membershipCardRecipientsDetailsId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{membershipCardRecipientsDetailsId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //查询建卡明细 @Override publicList<PwMembershipCardDetails>QueryJianKaMingXiChaXun(intmembershipCardDetailsId) { try {/*尝试运行代码*/ StringBufferqueryString = new StringBuffer();/*实例化StringBuffer*/ queryString.append("FROMPwMembershipCardDetails AS JianKaMingXi ");/*实例化表*/ queryString.append("WHEREJianKaMingXi.membershipCardDetailsId = ?");/*满足条件*/ return dao.findByHql(queryString.toString(),new Object[]{membershipCardDetailsId}); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return null; } } //修改发放明细信息 @Override public boolean QueryMembershipCardIssuedDetailsEdit(PwMembershipCardIssuedDetailsentity){ try {/*尝试运行代码*/ return dao.edit(entity); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return false; } } //修改领卡明细 @Override public boolean EditLingKaMingXi(PwMembershipCardRecipientsDetailsentity){ try {/*尝试运行代码*/ return dao.edit(entity); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return false; } } //添加调拨明细时,修改会员卡建卡明细 @Override public boolean QueryjianKaMingXiUpdate(PwMembershipCardDetailsentity){ try {/*尝试运行代码*/ return dao.edit(entity); }catch (Exception e) {/*尝试运行代码出现错误,执行异常处理*/ return false; } }
第四步:方法层(Action)
3.6(图6)
//会员卡退卡查询符合条件的卡 public StringgetHuiYuanKaTuiKa(){ JSONObjectjsObj = new JSONObject();/*实例化一个Object数组*/ JSONArrayjsArr = new JSONArray();/*实例化一个Array数组*/ StringHuiYuanKaHao = this.getRequest().getParameter("HuiYuanKaHao").trim();/*视图层传来的参数*/ ListlsTuiKa = this.jianKaYuFaFangService.QueryHuiYuanKaTuiKa(HuiYuanKaHao);/*调用服务层方法*/ if(lsTuiKa.size()>0){ Object[]obj = (Object[])lsTuiKa.get(0); jsObj.clear();/*清空jsObj数组*/ jsObj.put("HuiYuanKaFaFangMingXiID",obj[0]); jsObj.put("ZhuangTai",obj[1]); jsObj.put("JinE",obj[2]); jsObj.put("HuiYuanKaKaZhong",obj[3]); jsArr.add(jsObj); JSArr =jsArr; }else { JSArr = null; } return SUCCESS;//返回 } //会员卡退卡 public StringgetTuiKa() { intFaFangMingXiId = Integer.parseInt(this.getRequest().getParameter("FaFangMingXiId"));/*视图层传来的参数*/ List<PwMembershipCardIssuedDetails>lsFaFangMingXi = this.jianKaYuFaFangService.QueryFaFangMingXiChaXun(FaFangMingXiId);/*调用服务层方法*/ PwMembershipCardIssuedDetails obj= lsFaFangMingXi.get(0); PwMembershipCardIssuedDetailsFaFangMingXi = new PwMembershipCardIssuedDetails();//实例化发放明细表 FaFangMingXi.setActualEndTime(obj.getActualEndTime()); FaFangMingXi.setActualStartComputingTime(obj.getActualStartComputingTime()); FaFangMingXi.setAllowedToReportTheLossOf(obj.getAllowedToReportTheLossOf()); FaFangMingXi.setCardType(obj.getCardType()); FaFangMingXi.setChangeTheMembershipCardId(66); FaFangMingXi.setInternalIssue(obj.getInternalIssue()); FaFangMingXi.setInvalid(obj.getInvalid()); FaFangMingXi.setMemberProfileId(obj.getMemberProfileId()); FaFangMingXi.setMembershipCardIssuedDetailsId(obj.getMembershipCardIssuedDetailsId()); FaFangMingXi.setMembershipCardIssuedId(obj.getMembershipCardIssuedId()); FaFangMingXi.setMembershipCardRecipientsDetailsId(obj.getMembershipCardRecipientsDetailsId()); FaFangMingXi.setSingleKakaFee(obj.getSingleKakaFee()); FaFangMingXi.setStateOfTheMembershipCardId(obj.getStateOfTheMembershipCardId()); FaFangMingXi.setSummary(obj.getSummary()); FaFangMingXi.setWindowStateId(obj.getWindowStateId()); FaFangMingXi.setMoney(obj.getMoney()); FaFangMingXi.setFormerRecipientsDetailsId(obj.getFormerRecipientsDetailsId()); FaFangMingXi.setIntegral(obj.getIntegral()); if(this.jianKaYuFaFangService.QueryMembershipCardIssuedDetailsEdit(FaFangMingXi)){/*调用服务层方法,,并且判断会员卡发放明细是否修改成功*/ List<PwMembershipCardRecipientsDetails>lsLingYongMingXi = this.jianKaYuFaFangService.QueryLingYongMingXiChaXun(obj.getMembershipCardRecipientsDetailsId());/*调用服务层方法*/ PwMembershipCardRecipientsDetails str= lsLingYongMingXi.get(0); PwMembershipCardRecipientsDetailsLingYongMingXi = new PwMembershipCardRecipientsDetails();//实例化领用明细表 LingYongMingXi.setChangeTheMembershipCardId(13); LingYongMingXi.setMembershipCardDetailsId(str.getMembershipCardDetailsId()); LingYongMingXi.setMembershipCardRecipientsDetailsId(str.getMembershipCardRecipientsDetailsId()); LingYongMingXi.setMembershipCardRecipientsId(str.getMembershipCardRecipientsId()); LingYongMingXi.setRecipientsWhoId(str.getRecipientsWhoId()); if(this.jianKaYuFaFangService.EditLingKaMingXi(LingYongMingXi)){/*调用服务层方法,并且判断领卡明细是否修改成功*/ List<PwMembershipCardDetails>lsJianKaMingXi = this.jianKaYuFaFangService.QueryJianKaMingXiChaXun(str.getMembershipCardDetailsId());/*调用服务层方法*/ PwMembershipCardDetails arr= lsJianKaMingXi.get(0); PwMembershipCardDetailsJianKaMingXi = new PwMembershipCardDetails();//实例化建卡明细 JianKaMingXi.setKeeperId(arr.getKeeperId()); JianKaMingXi.setMembershipCardCardNumber(arr.getMembershipCardCardNumber()); JianKaMingXi.setMembershipCardDetailsId(arr.getMembershipCardDetailsId()); JianKaMingXi.setMembershipCardId(arr.getMembershipCardId()); JianKaMingXi.setMembershipCardStorageLocationId(arr.getMembershipCardStorageLocationId()); JianKaMingXi.setMembershipCardTypeId(arr.getMembershipCardTypeId()); JianKaMingXi.setNominalAmount(arr.getNominalAmount()); JianKaMingXi.setRemarks(arr.getRemarks()); JianKaMingXi.setSpecifyTheValidityTime(arr.getSpecifyTheValidityTime()); JianKaMingXi.setStateOfTheMembershipCardId(arr.getStateOfTheMembershipCardId()); JianKaMingXi.setUpdateRankId(arr.getUpdateRankId()); JianKaMingXi.setValidityTime(arr.getValidityTime()); JianKaMingXi.setWriteCardStatus(arr.getWriteCardStatus()); JianKaMingXi.setWriteTime(arr.getWriteTime()); JianKaMingXi.setChangeTheMembershipCardId(13); this.jianKaYuFaFangService.QueryjianKaMingXiUpdate(JianKaMingXi);/*调用服务层方法*/ } } MSG = "OK"; return SUCCESS;//返回 }}
第五步:配置struts
3.6(图7)
<action name="getHuiYuanKaTuiKa" class="JianKaYuFaFangAction" method="getHuiYuanKaTuiKa"> <result type="json"> <param name="root">JSArr</param>//返回的数据类型 </result> </action> <action name="getTuiKa" class="JianKaYuFaFangAction"method="getTuiKa"> <result type="json"> <param name="root">MSG</param>//返回的数据类型 </result> </action>
第六步:视图层JSP
3.6(图8)
Javascript代码:
var HuiYuanKaFaFangMingXiID=0;//定义全局变量 function getTuiKaHuoQu(){ var HuiYuanKaHao = $('#txtHuiYuanKaHao').val().trim();//获取会员卡号 $.getJSON("getHuiYuanKaTuiKa?HuiYuanKaHao="+HuiYuanKaHao,function(data){//发送请求,并返回data if(data!=null){//判断返回值是否为空 //绑定数据 $('#txtHuiYuanKaKaZhong').val(data[0].HuiYuanKaKaZhong); $('#txtZhuangTai').val(data[0].ZhuangTai); $('#txtJinE').val(data[0].JinE); HuiYuanKaFaFangMingXiID = data[0].HuiYuanKaFaFangMingXiID; }else{ $('#txtHuiYuanKaKaZhong').val(""); $('#txtZhuangTai').val(""); $('#txtJinE').val("0"); HuiYuanKaFaFangMingXiID = 0; } }); } //会员卡退卡 function getTuiKa(){ if(HuiYuanKaFaFangMingXiID>0){//判断会员卡发放明细ID是否大于0 $.getJSON("getTuiKa?FaFangMingXiId="+HuiYuanKaFaFangMingXiID,function(data){//发送请求,并返回data alert("会员卡退卡成功"); window.location.href = "JianKaYuFaFang/HuiYuanKaTuiKa.jsp";//跳转界面 }); } }
该资料仅供学习,禁止用于商业用途
- 会员卡管理系统技术解析(六) 会员卡退卡
- 会员卡管理系统技术解析(十一)会员卡退领记录查询
- 会员卡管理系统技术解析(十二)会员卡退领记录添加
- 会员卡管理系统技术解析(八)添加会员卡挂失
- 会员卡管理系统技术解析(十五)会员卡状态变动
- 会员卡管理系统技术解析(十六)会员卡有效期更改
- 会员卡管理系统技术解析(八)会员卡建卡记录添加
- 会员卡管理系统技术解析(九)会员卡领卡记录查询
- 会员卡管理系统技术解析(十) 会员卡领卡记录添加
- 会员卡管理系统技术解析(十三)会员卡换卡记录查询
- 会员卡管理系统技术解析(十四)添加会员卡换卡记录
- 会员卡管理系统技术解析(七) 会员卡建卡记录查询
- 会员卡管理系统技术解析(二)会员卡调拨查询和修改
- 会员卡管理系统技术解析(三)添加会员卡调拨信息
- 会员卡管理系统技术解析(四)会员卡发放记录查询
- 会员卡管理系统技术解析(五)添加会员卡发放信息
- 会员卡管理系统技术解析(七)会员卡挂失记录查询
- 会员卡管理系统技术解析(九)会员卡挂失恢复查询
- ANSIC和Unicode之间的转换
- iOS7/8 UIButton高亮状态延迟有关问题全解
- 人人都是架构师: 约束和原则
- 6 设计模式之适配器模式(六)
- 网络新闻评论观点挖掘系统实现
- 会员卡管理系统技术解析(六) 会员卡退卡
- Structs学习笔记(一):Structs中标签的前缀
- Socket概要
- DB2常用命令总结
- Spring学习笔记_装配bean_01
- WCF
- JAVA基础笔记——集合框架
- 4. 自定义错误页面
- recursion problem(IsMeasurable)(Is this correct?)