yycg 的用户删除和用户修改模块
2015-10-31 23:51
615 查看
1 用户删除
1.1 需求
用户出现变更、用户不存在了,将系统用户从系统中删除。前置条件(约束):
用户必须存在方可删除
后置条件(数据库操作)
从sysuser表删除用户信息
1.2 实现
1.2.1 dao使用自动生成的mapper从sysuser表删除一个用户
1.2.2 service
接口功能:将系统用户从系统中删除
接口参数:用户id
//
用户删除
@Override
public
void deleteSysuser(Stringid)
throwsException {
//
校验前置条件
//
先查找
Sysusersysuser =
sysuserMapper.selectByPrimaryKey(id);
if (sysuser ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 212,
null));
}
sysuserMapper.deleteByPrimaryKey(id);
}
1.2.3 action
实现用户删除方法(提交方法)。
//
用户删除
@RequestMapping("/deletesysuser")
public
@ResponseBody
SubmitResultInfodeletesysuser(String id)
throws Exception {
userService.deleteSysuser(id);
return ResultUtil.createSubmitResult(ResultUtil.createSuccess(
Config.MESSAGE, 906,
null));
}
1.2.4 页面
通常情况,针对单条记录操作,建议在记录上添加链接操作。
修改queryuser.jsp:
在datagrid 列表中添加删除按钮。
{
field : 'opt1',//对应json中的key
title : '删除',
width : 120,
formatter:function(value,row,index){
return
"<ahref=javascript:deleteuser('"+row.id+"')>删除</a>";
}
定义删除方法(javascript)
//删除用户方法
function
deleteuser(id){
//第一个参数是提示信息,第二个参数,取消执行的函数指针,第三个参是,确定执行的函数指针
_confirm('您确认删除吗?',null,function
(){
//将要删除的id赋值给deleteid,deleteid在sysuserdeleteform中
$("#delete_id").val(id);
//使用ajax的from提交执行删除
//sysuserdeleteform:form的id,userdel_callback:删除回调函数,
//第三个参数是url的参数
//第四个参数是datatype,表示服务器返回的类型
jquerySubByFId('sysuserdeleteform',userdel_callback,null,"json");
});
}//删除用户的回调
function
userdel_callback(data){
message_alert(data);
//刷新页面
//在提交成功后重新加载 datagrid
//取出提交结果
var
type=data.resultInfo.type;
if(type==1){
//成功结果
//重新加载 datagrid
queryuser();
}
}
删除操作使用ajax的form提交,需要在页面中定义单独删除form,form中有一个删除用户id。Sysuserdeleteform
对应jquerySubByFId 中的id
<form
id="sysuserdeleteform"
action="${baseurl}user/deletesysuser.action"method="post">
<input
type="hidden"
id="delete_id"name="id"/>
</form>
2 用户修改
2.1 需求 :
修改用户的信息,可以修改用户账号、用户的名称、用户密码、用户类型、用户所属单位、用户状态。前置条件(约束):
修改用户账号不允许暂用别人的账号
用户变更单位必须是存在的
后置条件(数据库操作)
从sysuser表修改用户信息
2.2 实现 :
2.2.1 dao使用自动生成的mapper从sysuser表修改一个用户
2.2.2 service
接口功能:修改用户信息
接口参数:修改用户的id、修改用户的信息
约束分析:修改用户账号不允许占用别人的账号
如果用户的账号不修改不用校验账号是否暂用别人的账号
如果用户修改账号了,才需要校验账号是否暂用别人的账号
通过修改的账号查询sysuser系统用户表,如果查询到说明暂用别人的账号
在修改之前需要先根据用户id获取用户信息:
实现类
//
更新用户
@Override
public
void updateSysuser(Stringid, SysuserCustom sysuserCustom)
throws Exception {
//
非空校验。。。
//
修改用户账号不允许暂用别人的账号
//
如果判断账号修改了
//
页面提交的账号可能是用户修改的账号
Stringpage_userid = sysuserCustom.getUserid();
Sysusersysuser =
sysuserMapper.selectByPrimaryKey(id);
if (sysuser ==
null) {
// 说明是藏数据
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 902,
null));
}
//
修改前的id
Stringuserid = sysuser.getUserid();
if(!page_userid.equals(userid)) {
Sysusersysuser_new =
this.findSysuserByuserid(page_userid);
if (sysuser_new !=
null) {
// 说明账号被占用
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
213,null));
}
}
//
验证单位id
是否存在
Stringgroupid = sysuserCustom.getGroupid();//
用户类型,是监督单位还是卫生室
Stringsysmc = sysuserCustom.getSysmc();//
单位名称
Stringsysid = null;
if (groupid.equals("1") ||groupid.equals("2")) {//
监督单位
Userjduserjd = this.findUserjdByMc(sysmc);
if (userjd ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
217,null));
}
sysid= userjd.getId();
}elseif(groupid.equals("3")) {//
医院
Useryyuseryy = this.findUseryyByMc(sysmc);
if (useryy ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
217,null));
}
sysid= useryy.getId();
}elseif(groupid.equals("4")) {//
供应商
Usergysusergys = this.findUsergysByMc(sysmc);
if (usergys ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
217,null));
}
sysid= usergys.getId();
}
//
验证密码
Stringpage_pwd = sysuserCustom.getPwd().trim();
Stringmd5_pwd = null;//
对密码加密
if (page_pwd !=
null &&!page_pwd.equals("")) {
md5_pwd= newMD5().getMD5ofStr(page_pwd);
}
//
设置更新信息
//
更新先要查询到用户
Sysusersysuser_update =
sysuserMapper.selectByPrimaryKey(id);
sysuser_update.setUserid(sysuserCustom.getUserid());
sysuser_update.setUsername(sysuserCustom.getUsername());
sysuser_update.setUserstate(sysuserCustom.getUserstate());
if (md5_pwd !=
null) {
sysuser_update.setPwd(md5_pwd);
}
sysuser_update.setGroupid(sysuserCustom.getGroupid());
sysuser_update.setSysid(sysid);//
单位id
sysuser_update.setAddr(sysuserCustom.getAddr());
sysuser_update.setPhone(sysuserCustom.getPhone());
//
更新所有列(空的也更新)
sysuserMapper.updateByPrimaryKey(sysuser_update);
}
//
通过id查询用户信息更新用户用到
@Override
public SysuserCustomfindSysuserById(String id)
throws Exception {
Sysusersysuser=sysuserMapper.selectByPrimaryKey(id);
Stringgroupid = sysuser.getGroupid();
Stringsysid = sysuser.getSysid();
Stringsysmc = null;
if (groupid.equals("1") ||groupid.equals("2")) {
Userjduserjd =userjdMapper.selectByPrimaryKey(sysid);
if (userjd ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
217,null));
}
sysmc= userjd.getMc();
}elseif(groupid.equals("3")) {
Useryyuseryy =
useryyMapper.selectByPrimaryKey(sysid);
if (useryy ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
217,null));
}
sysmc= useryy.getMc();
}elseif(groupid.equals("4")) {
Usergysusergys =
usergysMapper.selectByPrimaryKey(sysid);
if (usergys ==
null) {
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE,
217,null));
}
sysmc= usergys.getMc();
}
SysuserCustomsysuserCustom=newSysuserCustom();
//将sysuser中数据设置到sysuserCustom
BeanUtils.copyProperties(sysuser,sysuserCustom);
sysuserCustom.setSysmc(sysmc);
return sysuserCustom;
}
2.2.3 action
两个方法:返回页面 和提交两个方法
//
用户修改页面
@RequestMapping("/editsysuser")
public Stringeditsysuser(Model model, String id)
throws Exception {
SysuserCustomsysuserCustom =
userService.findSysuserById(id);
model.addAttribute("sysuserCustom",sysuserCustom);
return
"/base/user/editsysuser";
}
//
用户修改数据
@RequestMapping("/editsysusersubmit")
public
@ResponseBody
SubmitResultInfoeditsysusersubmit(String id, SysuserQueryVo sysuserQueryVo)
throws Exception {
userService.updateSysuser(id,sysuserQueryVo.getSysuserCustom());
return ResultUtil.createSubmitResult(ResultUtil.createSuccess(
Config.MESSAGE, 906,
null));
}
2.2.4 页面
在queryuser.jsp的datagrid 中添加修改链接。
{
field : 'opt2',//对应json中的key
title : '修改',
width : 120,
formatter:function(value,row,index){
return
"<ahref=javascript:edituser('"+row.id+"')>修改</a>";
}
定义edituser 的script方法
//修改用户
function
edituser(id){
//打开修改窗口
createmodalwindow("修改用户信息", 800, 300, '${baseurl}user/editsysuser.action?id='+id);
}
Editsysuser.Jsp 中的script方法
<script
type="text/javascript">
function
sysusersave(){
jquerySubByFId('userform',sysusersave_callback,null,"json");
}
//ajax调用的回调函数,ajax请求完成调用此函数,传入的参数是action返回的结果
function
sysusersave_callback(data){
message_alert(data);
var
type=data.resultInfo.type;
}
同样定义form
form
id="userform"action="${baseurl}user/editsysusersubmit.action"
method="post">
<!-- 更新用户的id -->
略
相关文章推荐
- fpga基础知识误点
- POJ3468(线段树区间增加,区间求和)
- cocos2d-x v3.0新特性及使用
- MyBatis入门(五)---延时加载、缓存
- 鸟哥的linux私房菜(RIDA摘录)
- [Django与表单]写一个简单的Django form表单处理
- html+div+css
- HDOJ5522Numbers
- CWnd::WindowProc
- 终端服务器超出了最大允许连接数
- Leap Motion C++环境的配置
- nexus repair或update index 没反应 手动配置nexus index
- 创建含ListView的Dialog遇到的问题
- 抓翻倍牛股的简易方法 缘分战法(牛股突破战法)
- 委托
- LightOJ - 1217 Neighbor House (II)(dp)
- BestCoder Round #61 HDOJ5522 5523 5524题解
- ubuntu vim
- mysql 从一个表中查数据,插入另一个表
- IntentService报Unable to instantiate service 错误的解决方法