最近了解了通信资费系统项目,在这个平台记录一下这个通信资费系统项目,方便以后再次使用或学习的时候能够及时的翻阅。在完成这个项目的时候,考虑了很多框架。最终决定选用SSM(MYECLIPSE),该框架具有极强的移植性,多平台性,便于操作性等优点。此框架能在MYECLIPSE开发工具中完美的编写和运行,通信资费系统为一个 后台项目。这个项目的描述是这样的:电话交换机计费系统是一种接收交换机/集团电话发送的SMDR数据,并处理输出的一种计费系统,该系统可运行于/ME/Windows2000/XP/Vista/Win7 操作系统,系统支持简体中文,繁体中文,英文,越南语,阿拉伯等多种语言的操作系统。软件依据电信收费标准设有最新国内,国际资费及各种资费的优惠方案、服务费设置等;用户可随时调整系统的资费参数。本软件适用于各种类型的集团电话/程控交换机,能为您提供出色的电话系统监控与话费管理。软件已被大量装机在政府机构、银行、酒店、企业及部队。产品已出口港澳台、马来西亚、葡萄牙、印尼、乌克兰、俄罗斯、蒙古、叙利亚、沙特等20多个国家及区域。
在对通信资费系统项目进行需求分析的时候,得出系统的登录角色包括了管理员、用户。对应用户可以通过登录自己的账号,进行入系统。系统对不同角色拥有不同权限。
总结得出该系统所有数据为:管理员(admin)、用户(yonghu)、收费标准(shoufeibiaozhun)、话费管理id(huafeiguanli)
管理员表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 管理员id username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
用户表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 用户id xingming | VARCHAR(255) | | 姓名 xingbie | VARCHAR(255) | | 性别 nianling | VARCHAR(255) | | 年龄 quanxian | VARCHAR(255) | | 权限 username | VARCHAR(255) | | 账号 password | VARCHAR(255) | | 密码
收费标准表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 收费标准id guoneishoufei | VARCHAR(255) | | 国内收费 guojishoufei | VARCHAR(255) | | 国际收费 youhuifagnan | VARCHAR(255) | | 优惠方案 fuwufei | VARCHAR(255) | | 服务费 mingcheng | VARCHAR(255) | | 名称
话费管理id表
字段名 | 类型 | 属性 | 描述 id | INT(11) | PRIMARY KEY | 话费管理id guojichangtu | VARCHAR(255) | | 国际长途 guoneichangtu | VARCHAR(255) | | 国内长途 shengneitonghua | VARCHAR(255) | | 省内通话 jisuandanjia | VARCHAR(255) | | 计算单价
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ---------------------------- -- Table structure for ggtongxinzifeixingtong -- ---------------------------- DROP TABLE IF EXISTS `t_admin`; CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT \'管理员id\',`username` VARCHAR(255) DEFAULT NULL COMMENT \'账号\',`password` VARCHAR(255) DEFAULT NULL COMMENT \'密码\',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=\'管理员\'; -- ---------------------------- DROP TABLE IF EXISTS `t_yonghu`; CREATE TABLE `t_yonghu` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT \'用户id\',`xingming` VARCHAR(255) DEFAULT NULL COMMENT \'姓名\',`xingbie` VARCHAR(255) DEFAULT NULL COMMENT \'性别\',`nianling` VARCHAR(255) DEFAULT NULL COMMENT \'年龄\',`quanxian` VARCHAR(255) DEFAULT NULL COMMENT \'权限\',`username` VARCHAR(255) DEFAULT NULL COMMENT \'账号\',`password` VARCHAR(255) DEFAULT NULL COMMENT \'密码\',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=\'用户\'; -- ---------------------------- DROP TABLE IF EXISTS `t_shoufeibiaozhun`; CREATE TABLE `t_shoufeibiaozhun` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT \'收费标准id\',`guoneishoufei` VARCHAR(255) DEFAULT NULL COMMENT \'国内收费\',`guojishoufei` VARCHAR(255) DEFAULT NULL COMMENT \'国际收费\',`youhuifagnan` VARCHAR(255) DEFAULT NULL COMMENT \'优惠方案\',`fuwufei` VARCHAR(255) DEFAULT NULL COMMENT \'服务费\',`mingcheng` VARCHAR(255) DEFAULT NULL COMMENT \'名称\',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=\'收费标准\'; -- ---------------------------- DROP TABLE IF EXISTS `t_huafeiguanli`; CREATE TABLE `t_huafeiguanli` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT \'话费管理id\',`guojichangtu` VARCHAR(255) DEFAULT NULL COMMENT \'国际长途\',`guoneichangtu` VARCHAR(255) DEFAULT NULL COMMENT \'国内长途\',`shengneitonghua` VARCHAR(255) DEFAULT NULL COMMENT \'省内通话\',`jisuandanjia` VARCHAR(255) DEFAULT NULL COMMENT \'计算单价\',PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=\'话费管理id\';
添加收费标准模块:
从页面中通过post方法,将收费标准信息传入到后台服务器中,在tianjiashoufeibiaozhunact
中接收,字段包括国内收费,国际收费,优惠方案,服务费,名称使用insert方法添加数据,将数据同步到
数据库中,完成添加操作。定义添加成功提示信息,添加收费标准成功,并保存到request中具体代码如下:
通过shoufeibiaozhundao的insert方法将页面传输的收费标准添加到数据库中 shoufeibiaozhundao.insert(shoufeibiaozhun);
将添加收费标准成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加收费标准成功");
返回收费标准管理界面
return "forward:/tianjiashoufeibiaozhun.action";
查询收费标准模块:
在后台中定义收费标准查询模块,在侧边栏中点击收费标准管理,可以跳转到收费标准管理界面。在该页面中通过shoufeibiaozhunController中定义shoufeibiaozhunguanli响应收费标准查询模块。在shoufeibiaozhunguanli中查询出所有信息,返回页面进行循环展示。查询方法为shoufeibiaozhundao中的selectByexample方法。该部分核心代码如下:
生成收费标准样例类,通过example定义查询条件 ShoufeibiaozhunExample example = new ShoufeibiaozhunExample();
通过shoufeibiaozhundao的selectByExample方法查询出所有的收费标准信息 List shoufeibiaozhunall = shoufeibiaozhundao.selectByExample(example);
将收费标准信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("shoufeibiaozhunall", shoufeibiaozhunall);
返回收费标准管理界面
return "forward:/shoufeibiaozhunguanli.action";
修改收费标准模块:
点击修改按钮,可以跳转到收费标准修改页面。在收费标准修改页面中,将初始化该收费标准的所有信息,并将信息一一对应填充到对应编辑栏中。编辑完收费标准信息后,页面通过post方法将数据封装为一个收费标准实体,传入到shoufeibiaozhunController中。在xiugaishoufeibiaozhun中进行接收,接收完毕后,调用shoufeibiaozhunMapper中的updateByPrimaryKeySelective方法进行修改。该部分代码如下:
通过shoufeibiaozhundao的修改方法根据id修改对应的收费标准 shoufeibiaozhundao.updateByPrimaryKeySelective(shoufeibiaozhun);
将修改收费标准成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改收费标准信息成功");
返回收费标准管理界面
return "forward:/shoufeibiaozhunguanli.action";
删除收费标准模块:
在页面中通过a标签,shanchushoufeibiaozhun?id=将id传入到后台中,通过shanchushoufeibiaozhun接收收费标准id。使用deleteByid的方法
删除该收费标准,完成删除操作。定义删除成功提示信息,删除收费标准成功,并保存到request中,该部分代码如下:
通过shoufeibiaozhundao的删除方法根据id删除对应的收费标准 shoufeibiaozhundao.deleteByPrimaryKey(id);
将删除收费标准成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除收费标准成功");
返回收费标准管理界面
return "forward:/shoufeibiaozhunguanli.action";