//添加关联赠品(确定)
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. linux 从一台机器复制文件到另一台linux机器上去

    1.功能说明scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下.scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:scp 远程用户 ...

  2. 了解 C++

    C++的历史 C++由C语言发展演变而来,最初被称为"带类的C" 1983年正式取名为C++ 1998年11月被国籍标准化组织(ISO)批准为国际标准 2003年10月15日发布了 ...

  3. nginx的addition模块在响应的前后报文添加内容与变量的运行原理

    nginx默认未编译此模块:让nginx编译启用此模块 ./configure --prefix=/data/web --sbin-path=/usr/bin --user=nginx --group ...

  4. 牛顿迭代法--求任意数的开n次方

    牛顿迭代法是求开n次方近似解的一种方法,本文参考. 引言 假如\(x^n = m\),我们需要求x的近似值. 我们设\(f(x) = x^n - m\), 那么也就是求该函数f(x)=0时与x轴的交点 ...

  5. requests库 代理

    import requests proxy = { 'http': '125.123.137.2208:9999' } res = requests.get('http://httpbin.org/i ...

  6. Nodejs 开发 随手记

    console.log(Object.prototype.toString.call(Now.toString())); //类型判断

  7. SD-WAN基本介绍

    SD-WAN是什么? SD-WAN,即软件定义广域网络,是将SDN技术应用到广域网场景中所形成的一种服务.这种服务用于连接广阔地理范围的企业网络.数据中心.互联网应用及云服务,旨在帮助用户降低广域网的 ...

  8. redhat 7.6 网络配置

    网卡配置目录 /etc/sysconfig/network-scripts/ 关闭网卡 $$ 打开网卡 ifdown ensp8 && ifup ensp8 重启网卡服务 servic ...

  9. PL-USB2-BLASTER 使用说明

    PL-USB2-BLASTER 使用说明 PL-USB2-BLASTER就是USB BLATER II烧录器.官方文档在https://www.intel.com/content/dam/www/pr ...

  10. 4 ehcache 配置

    拷贝ehcache.xml文件到工程的resources目录下面 <?xml version="1.0" encoding="UTF-8"?> &l ...