//添加关联赠品(确定)
public function addGiveGoods($ids,$child,$parent_sku_no){
$license=new LicenseModel();
$personnel_code=$_SESSION['user']['personnel_code'];
$time=date("Y-m-d H:i:s",time());
$sku_gift=M('sku_gift');
$sku_gift_stock=M('sku_gift_stock');
$sku_nos=array_column($child,'sku_no');
$sgg_where['sku_no']=array('in',$sku_nos);
$sku_gift_stock_info=$sku_gift_stock->field('sku_no,is_online')->where($sgg_where)->select();
foreach($sku_gift_stock_info as $k=>$v){
$sgg[$v['sku_no']]=$v['is_online'];
}
$s_where['parent_sku_no']=$parent_sku_no;
$s_where['is_deleted']=;
$s_where['sku_no']=array('in',$sku_nos);
$s_info=$sku_gift->field('id,num,create_time,is_deleted,is_online,create_user')->where($s_where)->select();
foreach($s_info as $k=>$v){
$ss[$v['id']]=$v;
}
$pars2=array();
$pars3=array();
$sku_nos_info=array();
foreach($child as $k=>$v){
if(!empty($v['id'])){
$data[]=array(
'id'=>$v['id'],
'parent_sku_no'=>$parent_sku_no,
'sku_no'=>$v['sku_no'],
'create_time'=>$ss[$v['id']]['create_time'],
'modified'=>$time,
'num'=>$v['num'],
'is_deleted'=>$ss[$v['id']]['is_deleted'],
'is_online'=>$ss[$v['id']]['is_online'],
'update_user'=>$personnel_code,
'create_user'=>$ss[$v['id']]['create_user'],
);
}else{
$data[]=array(
'id'=>$v['id'],
'parent_sku_no'=>$parent_sku_no,
'sku_no'=>$v['sku_no'],
'create_time'=>$time,
'modified'=>$time,
'num'=>$v['num'],
'is_deleted'=>,
'is_online'=>empty($sgg[$v['sku_no']])?:,
'update_user'=>$personnel_code,
'create_user'=>$personnel_code,
);
$sku_nos_info[]=$v['sku_no'];
}
if(empty($v['id'])){
$pars2[]=array(
'message'=>$_SESSION['user']['true_name'].":赠品".$v['sku_no']."被商品".$parent_sku_no."关联了",
'create_time'=>$time,
'create_id'=>$personnel_code,
'type'=>,
'sku_no'=>$v['sku_no']
);
}else{
if($ss[$v['id']]['num'] !=$v['num']){
$pars3[]=array(
'message'=>$_SESSION['user']['true_name'].":修改了商品".$parent_sku_no."所关联的赠品".$v['sku_no']."的数量,修改前[".$ss[$v['id']]['num']."],修改后[".$v['num']."]",
'create_time'=>$time,
'create_id'=>$personnel_code,
'type'=>,
'sku_no'=>$parent_sku_no
);
}
}
}
foreach($data as $k=>$v){
if(empty($v['id'])){
$update[]="('','".$v['parent_sku_no']."','".$v['sku_no']."','".$v['create_time']."','".$v['modified']."','".$v['num']."','".$v['is_deleted']."','".$v['is_online']."','".$v['update_user']."','".$v['create_user']."')";
}else{
$update[]="('".$v['id']."','".$v['parent_sku_no']."','".$v['sku_no']."','".$v['create_time']."','".$v['modified']."','".$v['num']."','".$v['is_deleted']."','".$v['is_online']."','".$v['update_user']."','".$v['create_user']."')";
}
}

if(!empty($update)){
$value=implode(',',$update);
}
if(!empty($data)){
$Model = new \Think\Model();
$res=$Model->execute("insert into ".C('DB_PREFIX')."sku_gift(`id`,`parent_sku_no`,`sku_no`,`create_time`,`modified`,`num`,`is_deleted`,`is_online`,`update_user`,`create_user`) VALUES $value ON DUPLICATE KEY UPDATE `id`=VALUES(id),`parent_sku_no`=VALUES(parent_sku_no),`sku_no`=VALUES(sku_no),`create_time`=VALUES(create_time),`modified`=VALUES(modified),`num`=VALUES(num),`is_deleted`=VALUES(is_deleted),`is_online`=VALUES(is_online),`update_user`=VALUES(update_user),`create_user`=VALUES(create_user)");
if(!$res){
return ;
}
}
if(!empty($ids)){
$ids=explode(",",$ids);
$sg_where['id']=array('in',$ids);
$res_in=$sku_gift->field('parent_sku_no,sku_no')->where($sg_where)->select();
$ar=array(
'is_deleted'=>,
'modified'=>$time,
'update_user'=>$personnel_code,
);
$res=$sku_gift->data($ar)->where($sg_where)->save();
if(!$res){
return ;
}
$skus=implode(",",array_column($res_in,'sku_no'));
if(!empty($res_in)){
$pars=array(
'message'=>$_SESSION['user']['true_name'].":商品".$parent_sku_no."的关联赠品".$skus."被删除了",
'create_time'=>date('Y-m-d H:i:s',time()),
'create_id'=>$_SESSION['user']['personnel_code'],
'type'=>,
'sku_no'=>$parent_sku_no
);
$license->writeLog('sku_gift_log',$pars);
}
}
if(!empty($pars2)){
$license->writeAllLog('sku_gift_log',$pars2);
}
if(!empty($sku_nos_info)){
$sku_noss=implode(",",$sku_nos_info);
$params=array(
'message'=>$_SESSION['user']['true_name'].":商品".$parent_sku_no."添加了关联赠品".$sku_noss,
'create_time'=>date('Y-m-d H:i:s',time()),
'create_id'=>$_SESSION['user']['personnel_code'],
'type'=>,
'sku_no'=>$parent_sku_no
);
$license->writeLog('sku_gift_log',$params);
}
if(!empty($pars3)){
$license->writeAllLog('sku_gift_log',$pars3);
}
return true;
}

mysql批量插入更新操作的更多相关文章

  1. Java批量插入更新操作

    以前总是说批量插入和更新的效率比非批量的要高,但是一直没有使用过批量处理数据的功能,现在由于项目中需要处理的数据量比较大,所以使用了批量处理的功能,java代码如下: 1.java实现批量插入数据: ...

  2. mybatis + mysql 批量插入、删除、更新

    mybatis + mysql 批量插入.删除.更新 Student 表结构 批量插入 public int insertBatchStudent(List<Student> studen ...

  3. mybatis+mysql批量插入和批量更新、存在及更新

    mybatis+mysql批量插入和批量更新 一.批量插入 批量插入数据使用的sql语句是: insert into table (字段一,字段二,字段三) values(xx,xx,xx),(oo, ...

  4. day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作

    在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...

  5. MySQL 批量插入值

    MySQL 批量插入值 今天遇到个问题,需要从类似以下语句中的各个小括号[其实也有中括号等]抽取相关字段进行组合[相关规则,此处略去不提],并保存到数据库中,此时如果每次插入一条,会连续进行多次插入, ...

  6. Oracle/Mysql批量插入的sql,效率比较高

    1.oracle 批量插入: insert into tableName(col1,col2,col3...)    select 1,'第一行第一列值','第二列值' from dual union ...

  7. mysql批量插入简单测试数据

    mysql批量插入简单测试数据 # 参考网址: https://www.2cto.com/database/201703/618280.html 1.mysql创建测试表 CREATE TABLE ` ...

  8. mybatis oracle mysql 批量插入时的坑爹问题--需谨记

    mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...

  9. mysql批量update更新,mybatis中批量更新操作

    在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

随机推荐

  1. 一堂优秀学员吕智钊分享----HHR计划----直播课第二课

    备注:本周四:创业者分享,下周四:投资人分享. 08年开始创业. 最重要的两条复盘思考: 大纲: ---坚持最低成本试错,最快速度学习---- 1,复盘1:创业早期如何快速学习 a,从竞争对手身上学习 ...

  2. Servlet 学习(九)

    Listener 1.功能 Servlet 2.3 中新增加的另一个功能 作用是监听Java Web 程序中的事件 对应设计模式中的Listener 模式,当事件发生的时候会自动触发该事件对应的Lis ...

  3. IELTS Writing Task 1: two-chart answer

    Thursday, January 09, 2020 The chart below shows the value of one country's exports in various categ ...

  4. Linux centos7 VMware MariaDB安装、Apache安装

    一.MariaDB安装 cd /usr/local/src 进入包放置目录 官网下载 wget http://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb ...

  5. linux#自启动脚本

    编写脚本: /etc/init.d/myscriptname # chkconfig: # description: 描述信息,描述信息,上面的90表示在众多开机启动脚本的优先级,10表示在众多关机启 ...

  6. 靠谱的Pycharm安装详细教程

    如何在本机上下载和安装Pycharm,具体的教程如下: 1.首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#secti ...

  7. SRS命令

    下载源码: git clone https://github.com/ossrs/srs.git 编译: cd srs/trunk ./configure && make 开启服务: ...

  8. ubunut18.04 下安装 gitlab ce版,使用清华源

    gitlab官方的ubuntu安装说明 https://about.gitlab.com/install/#ubuntu 该安装说明介绍的是gitlab-ee版本 按照该说明也能安装gitlab-ce ...

  9. 使用Thymeleaf时,ajax的url如何设置?

    使用Thymeleaf时,ajax的url如何设置? 最近在做一个论坛项目使用到了Thymeleaf,在使用ajax请求的时候发现无法获取BasePath.在经过一番查阅资料后终于得知如下俩种方法,在 ...

  10. redis队列与RabbitMQ队列区别

    消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递.消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消 ...