zoukankan      html  css  js  c++  java
  • SpringSide删除操作

    方式一:

    Jsp中:

    case "delete":

                       $.ligerDialog.confirm[d1] ('确定删除?', function (y)

                        {

                            if (!y) return;

                            f_handle[d2] [d3] ("this.customid","cusinformation!delete.action");

                        });

                        break;

    //获得选中的行

    function getSelectIds(){

            var rowsdata = gridManager.getCheckedRows();

                if (!rowsdata.length)

                {

                    $.ligerDialog.alert('请先选择行!');

                    return;

                }

                var idStr = "";

                $(rowsdata).each(function (i, item)

                {

                    idStr += this.customid;

                    if (i < rowsdata.length - 1) idStr += ",";

                });

    [d4]             return idStr;

            }

    Action

    private String ids;

    @Override

       @SysLogAnnotation(moduleId = 1001)

       public String delete() throws Exception {

          JSONObject result = new JSONObject();

          try {

            if (ids != null) {

               String[] idArray = ids.split(",");[d5] 

               for (String tmp : idArray[d6] ) {

                  cusInfoManager.logicDelete(StringValueUtils.getLong(tmp));

               }

               result.put("flag", true);

            } else {

               result.put("flag", false);

               result.put("errormsg", "没有选择客户记录");

            }

          } catch (Exception e) {

            result.put("flag", false);

            logger.error("删除客户出错", e);

            throw e;

          }

          Struts2Utils.renderText(result.toString());

          return NONE;

       }

     

    Service

    /**

        * 逻辑删除客户

        * @param id

        */

       public void logicDelete(Long id){

          CusInformation entity=cusInfoDao.get(id);

          entity.setStatus(2);[d7] 

          cusInfoDao.save(entity);

       }

    Dao

    方式二:不允许删除初始化数据

    Jsp:

    case "delete":

                       //暂时这样控制初始化数据不允许删除

                     var rowsdata = gridManager.getCheckedRows();

                       var flag=false;

                       $(rowsdata).each(function(){

                         if(f_initdata(this.tagid)){

                            flag=true;

                            return;

                         }

                       });

                       if(flag){

                           $.ligerDialog.warn("初始化数据不允许删除");

                           return;

                       }

                       $.ligerDialog.confirm('确定删除?', function (y)

                       {

                            if (!y) return;

                                f_handle("this.tagid","custag!delete.action");

                       });

                       break;

    /**

             * 暂时这样控制初始化数据不允许删除

             * @param {Object} id

             * @return {TypeName}

             */

            function f_initdata(id){

            if(parseInt(id)<100){

                return true;

            }else{

                return false;

            }

            }

    Action:

    @Override

       @SysLogAnnotation(moduleId=1003)

       public String delete() throws Exception {

          // TODO Auto-generated method stub

          JSONObject result = new JSONObject();

          int retFlag=0;

          try{

            if(ids!=null){

               String[] idArray=ids.split(",");

               List<Long> idList=new ArrayList<Long>();

               for(String tmp:idArray){

                  //cusTagManager.delete(StringValueUtils.getLong(tmp));

                  idList.add(StringValueUtils.getLong(tmp));

               }

               retFlag=cusTagManager.delete(idList);

               if(retFlag==0){

                   result.put("flag", true);

               }else{

                  result.put("flag", false);

                  result.put("errormsg", "标签有关联的客户,不允许删除");

               }

            }else{

               result.put("flag", false);

               result.put("errormsg", "id为空");

            }

            Struts2Utils.renderText(result.toString());

          }catch(Exception e){

            result.put("flag", false);

            result.put("errormsg", "操作异常");

            Struts2Utils.renderText(result.toString());

            logger.error("删除客户标签出错", e);

            throw e;

          }

          return NONE;

       }

    Service:

    /**

        * 判断标签是否关联了客户,如果关联了客户则不允许删除

        * @param ids

        * @return 0:成功删除,1:有关联的客户

        */

       public int delete(Collection<Long> ids){

          CusTag entity=null;

          for(Long id:ids){

            entity=cusTagDao.get(id[d8] );

            if(entity.getCustomListR3[d9] ().size()>0){

               return 1;

            }

          }

          for(Long id:ids){

              cusTagDao.delete(id);

          }

          return 0;

       }

    Dao:

    方式三:有关联不能删

    分析逻辑:

    1,        要分两次进入action,当点击删除的时候在jsp页面利用ajax请求进action得到一个list集合返回jsp页面

    2,        在jsp页面需要对返回函数进行处理,如果list不为0,则说明根据分类classid查到了下面的实体类,这说明关联了,所以这个classid是不可以删除的。

    3,        这时就return“”;,否则进else。把删除方法放在else里面。

    Jsp:

    { text: '删除', click:f_delete, id:"delete", img: ""+ctx+"/js/images/page_delete.png" }

    function f_delete(){

             $.ligerDialog.confirm('确定删除?', function (y)

                        {

                            if (!y) return;

                            var rowsdata = gridManager.getCheckedRows();

                         if (!rowsdata.length)

                        {

                            $.ligerDialog.alert('请先选择行!');

                            return;

                        }

                        var idStr = "";

                        $(rowsdata).each(function (i, item)

                        {

                            idStr += eval(this.newsclassid);

                            if (i < rowsdata.length - 1) idStr += ",";

                        });

                     if (idStr == "")

                        {

                            $.ligerDialog.alert('没有可以操作的数据!');

                            return;

                        }

                       while (idStr.indexOf(",,") > -1) idStr = idStr.replace(",,", ",");

                        if (idStr.lastIndexOf(",") == idStr.length - 1) idStr = idStr.substring(0, idStr.length - 1);

                        var paramUrl="ids="+idStr;

                           

                            $.post("newsissueclassify!checkNewsclassidIsUse.action",paramUrl,function(data[d10] ){

                                if(data != ""){

                                  $.ligerDialog.alert(data+'分类下还存在新闻线索,不可删除');

                                }else{

                               f_handle("this.newsclassid","newsissueclassify!delete.action");

                                }

                             });

             });

           }

    Action:

    /**

        * 删除时检查分类ID是否被使用

        *

        * @return

        */

       public String checkNewsclassidIsUse[d11] () {

          List<Long> unDelList = new ArrayList<Long>();

          if (ids != null) {

            String[] idArray = ids.split(",");

            List<Long> idList = new ArrayList<Long>();

            for (String tmp : idArray) {

               idList.add(StringValueUtils.getLong(tmp));

            }

            unDelList = manager.checkNewsclassidIsUse(idList);

          }

          if (unDelList.size() != 0) {

            String result = "";

            for (Long unDelId : unDelList) {

               result += unDelId + ",";

            }

            if (result.lastIndexOf(",") == result.length() - 1) {

               result = result.substring(0, result.length() - 1);

            }

             Struts2Utils.renderText(result);

          }

          return NONE;

       }

       @Override

       @SysLogAnnotation(moduleId = 7002, entityId = "newsclassid", paramId = "newsclassid")

       public String delete() throws Exception {

          JSONObject result = new JSONObject();

          try {

            if (ids != null) {

               String[] idArray = ids.split(",");

               List<Long> idList = new ArrayList<Long>();

               for (String tmp : idArray) {

                  idList.add(StringValueUtils.getLong(tmp));

               }

               int flag = manager.deleteMultiNewsIssueClassify[d12] (idList);

               if (flag == 0) {

                  result.put("flag", true);

               } else if (flag == 1) {

                  result.put("flag", false);

                  result.put("errormsg", "删除失败");

               }

            }

            IOUtils.pageWriter(Struts2Utils.getResponse(), result.toString());

          } catch (ServiceException e) {

            logger.error(e.getMessage(), e);

            result.put("flag", false);

            result.put("errormsg", "删除失败");

            IOUtils.pageWriter(Struts2Utils.getResponse(), result.toString());

          }

          return NONE;

       }

    Service:

    public List<Long> checkNewsclassidIsUse(List<Long> ids) {

          List<Long> unDelIdList=new ArrayList<Long>();

          for(Long id:ids){

            if(   newstipsdao.findBy("classid", id)[d13] .size()!=0){

               unDelIdList.add(id);

            }

           }   

          return unDelIdList;

       }

    public int deleteMultiNewsIssueClassify(List<Long> ids) {

          int flag=1;

          for(Long id:ids){

            //初始化固定id不可删除

            if(id>6){

              dao.delete(id);

            flag=0;

            }

    [d14]        }

          return flag;

       }

    Dao:


     [d1]Confirm框,是有确定和删除按钮的对话框

     [d2]为什么要用f_handle?

    还有this.customid如何获得的?

     [d3]url请求

     [d4]拼一个字符串

    Eg:1,2,3,

     [d5]把传过来的ids一逗号分隔

     [d6]逐个遍历删除

     [d7]业务逻辑,没真正从数据库删,只是改变了他的状态。并且save一哈。

     [d8]继承的curd里面就有get()方法,表示根据id获得对应的实体类

     [d9]private List<CusInformation> customListR3=Lists.newArrayL

    ist();

    是客户标签实体类里面的一个集合,关联的客户实体类。

     [d10]如果返回的data不为空,即根据ids返回

     [d11]

    先调用该方法,检查分类id是否被占用。

     [d12]没有关联则可以删除

     [d13]逻辑:

    根据classid来查新闻表,

    添加到list结合。如果list集合不为0,说明这下面有数据,不能删

     [d14]只能删除大于6的。

    因为在表的设计中,0——6是固定初始化数据。

  • 相关阅读:
    数字重排
    环游世界
    Hibernate笔记(一)增删改查CRUD
    Sliding Window Algorithm 滑动窗口算法
    纯HTML/CSS/JS实现淘宝、京东两种轮播图
    COA计算机组织与结构笔记
    数据结构与算法笔记:最小生成树Kruskal、Prim算法与JAVA实现
    数据结构与算法笔记:图的基础与JAVA实现
    数据结构与算法:并查集
    JDBC学习笔记
  • 原文地址:https://www.cnblogs.com/pujiajia/p/3287204.html
Copyright © 2011-2022 走看看