public function doedit_set(){
     $info=$this->_post("info");
     $id=$this->_post("id");//dump($info);exit();
     $user=DD("Order.OrderPackage")->deal_account($info['accounts']);
     try{
         $result=DD('Set.UserSet')->doedit_setinfo($id,$info,$user);
         if($result){
            $this->success("编辑成功",U("Userset/index"));
         }
         $this->error("编辑失败");
     }catch(Exception $e){
        $this->error($e->getMessage());
     }
 }

 public function doedit_setinfo($id,$edit_info,$user_id)
 {
    if($id && $edit_info)
    {
         $res=M('user_set')->where(array('op_name'=>$edit_info['op_name'],'id'=>$id))->find();

         if(!$res)
         {
             E("非法数据");
         }

         $md=new Model();
         $md->startTrans();
         $user_info=DD("User.AdminUser")->get_info();
         $edit_info['start_time']=strtotime($edit_info['time1']);
         $edit_info['end_time']=strtotime($edit_info['time2']);
         foreach ($user_id as $key => $value) {

             $op=M('user_set')->where(array('op_name'=>$edit_info['op_name'],'uid'=>$value))->find();
             if($op['id']!=$id && $op )
             {
                E("此用户配置已存在");
             }

             if(M('user_set')->where('uid=%d',$value)->find())
             {
                 $edit_info['uid']=$value;
                 $result=M('user_set')->where("id=%d",$id)->save($edit_info);
                 $content="id:".$id."修改前的|op_name:".$res['op_name']."|op_value:".$res['op_value']."|op_des:".$res['op_des']."|start_time:".$res['start_time']."|end_time:".$res['end_time']."|is_del:".$res['is_del']."|uid:".$res['uid']."|修改后:op_name".$edit_info['op_name']."|op_value".$edit_info['op_value']."|op_des:".$edit_info['op_des']."|start_time:".$edit_info['start_time']."|end_time:".$edit_info['end_time']."|uid:".$value;
                 $type="修改";
                 $obj="用户配置";
                 $log_result=DD("Logs.UserOp")->handle_logs($user_info['userId'],$user_info['account'] ,$content,$type,$obj);
             }
             else
             {
                $edit_info['uid']=$value;
                $result=M('user_set')->add($edit_info);
                $content="新增用户配置|id:".$result."|op_name:".$edit_info['op_name']."|op_value:".$edit_info['op_value']."|op_des:".$edit_info['op_des']."|start_time:".$edit_info['start_time']."|end_time:".$edit_info['end_time']."|uid:".$edit_info['uid']."|is_del:".$edit_info['is_del'];
                $type="新增";
                $obj="用户配置";
                $log_result=DD("Logs.UserOp")->handle_logs($user_info['userId'],$user_info['account'] ,$content,$type,$obj);
             }
         }

         if($result!==false && $log_result )
         {
             $md->commit();
             return true;
         }
         else
         {
             $md->rollback();
             return false;
         }
    }
    else
    {
        E("参数错误");
    }
 }

thinkphp中try catch的运用的更多相关文章

  1. ThinkPHP中RBAC权限带菜单栏显示和详细权限操作

    RBAC是什么,能解决什么难题? RBAC是Role-Based Access Control的首字母,译成中文即基于角色的权限访问控制,说白了也就是用户通过角色与权限进行关联[其架构灵感来源于操作系 ...

  2. thinkphp中导入和使用阿里云OSSsdk

    照做绝对行,在ThinkPHP中,第三方库都放在ThinkPHP/Library/Vendor/路径下. 1.下载OSS PHP SDK:https://help.aliyun.com/documen ...

  3. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  4. 【转】Java中try catch finally语句中含有return语句的执行情况(总结版)

    Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有r ...

  5. ThinkPHP中疑难笔记

    不但要记住核心的东西, 还要记住 相关的 东西: 如php cli的版本是 5.6.14 bulit: sep 30, 2015 tp中, 通常说的系统就是框架; 项目就是 "应用程序&qu ...

  6. thinkphp中的setInc、setDec方法

    thinkphp中setInc.setDec方法 可用于统计字段(通常是数字类型的字段)的更新,例如积分,等级,登陆次数等 必须配合连贯操作where一起使用 $User = M("User ...

  7. ThinkPHP中关于JS文件如何添加类似__PUBLIC__图片路径

    在对html样式进行优化的时候,经常会用到Js/jquery进行一些跳转切换的样式,而我们常做的就是在Js/jquery代码中嵌url图片链接代码,以实现动态交互的页面效果. 如下图所示:

  8. ThinkPHP中initialize和construct的不同

    ThinkPHP中initialize()和construct()这两个函数都可以理解为构造函数,前面一个是tp框架独有的,后面的是php构造函数,那么这两个有什么不同呢? 在网上搜索,很多答案是两者 ...

  9. c++中try catch的用法

    c++中try catch的用法 标签: c++exception数据库sqlc 2011-10-24 21:49 45622人阅读 评论(3) 收藏 举报  分类: 一点小结(267)  版权声明: ...

随机推荐

  1. __builtin_popcount(n)

    Gcc提供的内建函数__builtin_popcount(n),可以精确计算n表示成二进制时有多少个1.借助这个函数可以快速判断一个数是否是2的幂. bool isPowerOfTwo(int n) ...

  2. 关于TOE(TCP/IP Offload Engine)

    前言 昨天在电脑上抓取的报文,想进行回话,但是发现全部被设备丢弃了,没有debug信息,查看了抓包文件,原来是IP头和TCP.UDP头的检验和全部为0,也就是TOE(TCP/IP Offload En ...

  3. XML编辑工具

    [标题]XML编辑工具 [开发环境]Qt 5.2.0 [概要设计]使用QT的视图/模型结构.treeview控件以树形结构显示所要操作的XML文件,并实现xml的相关操作 [详细设计] 主要包含 no ...

  4. java虚拟机学习-JVM调优总结-调优方法(12)

    JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用.对垃圾回收算法有很详细的跟踪.详细说明参考这里 ...

  5. sar使用

    http://88fly.blog.163.com/blog/static/1226803902012514710581/

  6. mysql5.6创建新用户并给授权指定的数据库权限

    一.环境: CentOS 6.8 mysql 5.6 二.背景 给外包的工作人员提供我司某台服务器的 mysql 中某个数据库的访问权限. 之所以要做限制,是防止他们对我司其他的数据库非法进行操作. ...

  7. VMware Workstation 11安装

    VMware Workstation 11序列号:1F04Z-6D111-7Z029-AV0Q4-3AEH8

  8. OC对象之旅 weak弱引用实现分析

    Runtime学习 -- weak应用源码学习   Runtime源码分析,带你了解OC实现过程.其中参考了大量的大神的代码以及文献,里面也有个人的见解,欢迎拍砖,欢迎交流. 两种常见使用场景 /// ...

  9. C++ #if #endif #define #ifdef #ifndef #if defined #if !defined详解 (转)

    (源)http://blog.csdn.net/sky1203850702/article/details/42024673 首先,让我们先从头文件开始,在很多头文件里,我们会看到这样的语句 #ifn ...

  10. 华为A199:近期不会再买华为的手机了

    为了支持国货,也省点钱,买了个华为A199: 缺点: 没有google play market很复杂的刷机后才能装Gmail   不过也有亮点: 自带录音功能,老htc通过软件也只能录单方向的哦关机闹 ...