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. SpringMVC构建Restful。

    因为spring是依赖jackson来生成json,需要添加jar包. pom.xml文件添加依赖. <dependency> <groupId>org.codehaus.ja ...

  2. 技术福利:mysql数据库的基本命令汇总整理

    一.创建数据库: create database database_name: php中创建数据库的两种方法:(mysql_create_db(),mysql_query()) $conn = mys ...

  3. wdc网站部署问题

    最近公司新买了一个服务器,将项目迁移到新服务器上,按照wdcp安装方法,部署了lnamp环境,具体方法如下: 安装方法1 只安装wdcp面板看看wget http://down.wdlinux.cn/ ...

  4. 【设计模式】单一职责原则(SRP)

    单一职责原则是面向对象原则五大原则中最简单,也是最重要的一个原则, 他的字面定义如下: 单一职责原则(Single Responsibility Principle, SRP): 一个类只负责一个功能 ...

  5. Java基础知识二次学习--第六章 常用类

    第六章 常用类   时间:2017年4月26日16:14:49~2017年4月26日16:56:02 章节:06章_01节~06章_06节 视频长度:20:57+1:15+8:44+1:26+11:2 ...

  6. cf255C Almost Arithmetical Progression

    C. Almost Arithmetical Progression time limit per test 1 second memory limit per test 256 megabytes ...

  7. CoreCLR源码探索(六) NullReferenceException是如何发生的

    NullReferenceException可能是.Net程序员遇到最多的例外了, 这个例外发生的如此频繁, 以至于人们付出了巨大的努力来使用各种特性和约束试图防止它发生, 但时至今日它仍然让很多程序 ...

  8. Ubuntu上配置SQL Server Always On Availability Group(Configure Always On Availability Group for SQL Server on Ubuntu)

    下面简单介绍一下如何在Ubuntu上一步一步创建一个SQL Server AG(Always On Availability Group),以及配置过程中遇到的坑的填充方法. 目前在Linux上可以搭 ...

  9. kafka 0.8.2 消息生产者 KafkaProducer

    package com.hashleaf.kafka; import java.util.Properties; import java.util.concurrent.ExecutorService ...

  10. node使用消息队列RabbitMQ一

    基础发布和订阅 消息队列RabbitMQ使用 1 安装RabbitMQ服务器 安装erlang服务 下载地址 http://www.erlang.org/downloads 安装RabbitMQ 下载 ...