会员卡管理系统技术解析(六) 会员卡退卡

来源:互联网 发布:信宣美工组是干什么的 编辑:程序博客网 时间: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)


3.6(图4)

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)


3.6(图5)

//会员卡退卡查询符合条件的卡    @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";//跳转界面           });        }     }

该资料仅供学习,禁止用于商业用途


0 0
原创粉丝点击