重构代码

function sync_dept_delete($dept_info, $sir_domain, $dept_id = 0){
    // 查出域名对应的id
    if($dept_id == 0 || $dept_id == ""){
        $dept_id = Check_Address_Sort_Menu_Import($sir_domain);
    }
    echo "dept_id is $dept_id\n";

    // 删除员工
    $member_arr = $dept_info["members"];
    if(count($member_arr) > 0){
        for($i = 0; $i < count($member_arr); $i++){
            $loginname = $member_arr[$i];//用户名
            $email = strtolower(trim($loginname . "@" . $sir_domain));
            remove_employee($email, $dept_id, $sir_domain);
        }
        return true;
    }

    // 删除子部门
    $sub_dept_infos = $dept_info["subdepts"];
    if(count($sub_dept_infos) > 0){
        $sub_dept_name = $sub_dept_infos[0]["name"];
        $sub_dept_id = Get_Address_Sort_Menu_Import_Dept($sub_dept_name, $dept_id);

        if(sync_dept_delete( $sub_dept_infos[0], $sir_domain, $sub_dept_id)){
            return true;
        }
    }

    // 不能删除名为全体人员的部门,它是特殊部门
    $dept_name = $dept_info["name"];
    if($dept_name != "全体人员"){
        remove_dept($dept_id, $dept_name, $sir_domain);
        return true;
    }

    echo "the directory $dept_name can not remove \n";
    return false;
}

function remove_employee($email, $dept_id, $sir_domain){
    global $obj_db;
    echo "remove employee $email\n";

    $query = "select id from user where uid=‘$email‘";
    $rs = $obj_db->simplequery($query);
    $num = $obj_db->numrows($rs);

    if($num > 0){
        $row = $obj_db->fetchrow($rs, $fetchmode = DB_FETCHMODE_ASSOC);
        $id = $row["id"];
        Operate_Manage_User("delete", $id);
    }

    Operate_Address_Tree( $dept_id,  "", $email,  "", "", $sir_domain, "delete");
    // Operate_Address_Tree($it_id,$name,$email,$tel,$dept,$User_Domain,$operate_type)
    // "delete from address_tree where it_id=‘$it_id‘ and email=‘$email‘;"
}

function remove_dept($dept_id, $dept_name, $sir_domain){
    echo "remove dept $dept_id\n";
    Operate_Address_Item_Tree($dept_id, $dept_name, $sir_domain, "delete");
}
时间: 2024-08-24 10:04:12

重构代码的相关文章

重构代码的7个阶段

你曾去想重构一个很老的模块,但是你只看了一眼你就恶心极了.文档,奇怪的函数和类的命名,等等,整个模块就像一个带着脚镣的衣衫褴褛的人,虽然能走,但是其已经让人感到很不舒服.面对这种情况,真正的程序员会是不会认输的,他们会接受挑战认真分析,那怕重写也在所不惜.最终那个模块会被他们重构,就像以前和大家介绍过的那些令人销魂的编程方式中的屠宰式编程一样.下面是重构代码的几个阶段, 第一阶段 – 绝望 在你开始去查看你想要重构的模块的,你会觉得好像很简单,这里需要改一个类,那里需要改两到三个函数,重写几个函

eclipse 重构代码自动抽取函数

1.选择重构代码段 2.重构 – 抽取方法 3.命名重构代码段抽取的方法 4.使用抽取的方法

第四章:重构代码[学习Android Studio汉化教程]

第四章 Refactoring Code The solutions you develop in Android Studio will not always follow a straight path from design to finish. To be an effective Android programmer, you need to be flexible and refactor your code as you develop, debug, and test. In t

什么时机重构代码?

什么时机重构代码?有两种情况第一种:先开发,不要过度设计,等积攒到编码困难时,或者代码不好看时,进行重构,这个时候要考虑未来业务的方向以及代码架构的可能性,进行预想和扩展性设计,保证下次需求开发能更快:第二种:就是先借鉴行业经验,进行对比自己的业务,通过一定程度的借鉴,重构当下自己的代码的架构和模式:这种要你对行业业务进行理解和从行业经验中进行选择折中,然后形成自己的架构和模式: 原文地址:https://www.cnblogs.com/big1987/p/9778903.html

编程思想:巧用位运算重构代码

开篇 在一门编程语言中,往往会提供大量的运算符.按功能来分的话,有算术运算符.赋值运算符.关系运算符.逻辑运算符.位运算符等.这些对于大家来说都不陌生.但是,本期的主角『位运算』符相对而言是比较少去使用的.因为位运算符主要针对两个二进制数进行位运算. 巧用位运算能极大的精简代码和提高程序效率.所以,在一些优秀的开源代码中,经常能出现位运算.所以,把位运算这种思想迁移到业务代码里,有时候往往能起到柳暗花明般的重构. 位运算 在 JAVA 语言中,定义了诸多的位运算符,如下所示: 运算符 描述 &

phpstorm重构代码形式让阅读更简单

重构涵盖了一系列不同的技术,包括移动,提取,复制,删除和重命名. 这些功能涵盖了你对代码持续进行地更改.重构是对现有代码的优化和提炼,提高了代码的可读性.可维护性,甚至是提升了代码的执行效率.phpstorm提供了重构的所有功能,可以方便的使用快捷键或菜单对代码进行重构操作.下面是phpstorm代码重构功能介绍: 在文件或选中的代码上点击鼠标右键,弹出框里就包含了重构(Refactor)选项,包含了文件移动,文件复制,引入变量,引入常量,引入属性,引入参数,提取方法,提取接口,成员移动等功能.

从案例深入了解如何重构代码-重构计划

项目名称A,某公司重点项目,已经正式上线运行几年了,公司业务遍布全球,很多国家都有办事处或研发部门,也就需要使用该系统.并且随着公司的不断发展,业务流程也在不断地完善和变化. 技术上,项目是CS架构的,支持在线和离线两种操作方式,对于在线方式,数据访问是直连服务器上的Oracle数据库,离线的数据访问是连接本地的Access数据库;对于本地数据库,系统提供WebService来实现本地数据的同步. 目前项目代码的规模已经达到100多万行,负责项目开发和维护是由同一个团对来承担,其中的开发和设计人

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

五子棋AI算法-重构代码

为什么需要重构 之前的代码有很多松散的模块组合在一起.在把 Zobrist 集成进去时,会发现全部需要走棋的操作其实都需要进行一次 Zobrist 异或操作.另外在逻辑上,其实很多模块都是可以合并到同一个类的,所以这次把代码进行了一次大的重构.所以如果发现博客说的一些模块找不到了也是很正常的,因为大部分模块都被移到了 Board 类中. 这次重构主要的工作就是 把AI相关的代码分成了四个模块: Board ,所有和棋子相关的操作都在这里,包括打分,判断胜负,zobrist缓存,启发函数等. ne

个人在重构代码中的心得体会

最近在维护客户的电子商务系统过程中对该系统的代码进行了一些简单的重构.我本来不是一个爱重构的人习惯于随意的书写代码心底里认为没有必要搞那么多花哨的东西毕竟现在的开发模式大多数是MVC已经提供了固定的代码分层和代码层级,但这次简直是忍不了了代码太庞大(1000行代码在一个方法体里面,还只是其中的一个方法),因此动手收拾一下代码.我具体做法如下: 1 对代码进行分组,分组原则是每一个小处理,每个分支代码块为单位,把相近的的代码移动到最近的位置.这样做的好处在于能够提供流畅的阅读,不用去满篇的去找某个