yycg 的用户删除和用户修改模块

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赋值给deleteiddeleteidsysuserdeleteform

         $("#delete_id").val(id);

         //使用ajaxfrom提交执行删除

         //sysuserdeleteformformiduserdel_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 -->

你可能感兴趣的:(yycg 的用户删除和用户修改模块)