//添加关联赠品(确定)
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. Mysql 分组查询出现'this is incompatible with sql_mode=only_full_group_by'的解决办法

    由于Mysql自动开启了 only_full_group_by,所以若查询的字段不在group by里面,则分组报错. 解决办法其一:mysql配置,关闭only_full_group_by,这种办法 ...

  2. selenium webdriver 相关网站

    ITeye:http://shijincheng0223.iteye.com/blog/1481446 http://ztreeapi.iteye.com/blog/1750554 http://sm ...

  3. [转]利用 Commons-Fileupload 实现文件上传

    转载 Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的Java Web开发人员来说,只需要了解和使用其中 ...

  4. 4 CSS导航栏&下拉菜单&属性选择器&属性和值选择器

    CSS导航栏 熟练使用导航栏,对于任何网站都非常重要 使用CSS你可以转换成好看的导航栏而不是枯燥的HTML菜单 垂直导航栏: <!DOCTYPE html> <html> & ...

  5. 2019年5月17日A股暴跌行情思考

    2019年5月17日A股暴跌行情思考 原因:特朗普针对华为的禁商令,人民币对美元汇率大跌 盘面:平开,单边下跌,收盘80多股跌停 操作:下午2点加仓,满仓 总结: 本次操作太过激进. 局势不明朗时抄底 ...

  6. Python实现简单中文词频统计示例

    简单统计一个小说中哪些个汉字出现的频率最高: import codecs import matplotlib.pyplot as plt from pylab import mpl mpl.rcPar ...

  7. Android之Builder对话框的一些常用方式

    原文: http://blog.csdn.net/kkfdsa132/article/details/6322835 Android为我们提供几种对话框,主要有:AlertDialog.Progres ...

  8. 解题报告:luogu P5745 【深基附B例】数列求和

    题目链接:P5745 [深基附B例]数列求和 现在想说:\(O(N)\)的题要不怎么也想不出来,要不灵光乍现,就像这道题. 我们维护一个类似单调队列的加法单调队列: 若相加大于此数,就将队尾元素弹出, ...

  9. Python 基础之面向对象初识与类的封装

    一.面向对象类的初识 1.类的定义 #三种方式:#1.class MyClass:    pass #2.推荐class MyClass():    pass #3.class MyClass(obj ...

  10. crontab Yii commands 使用方法

    基本知识介绍 #crontab -u <-l, -r, -e> -u指定一个用户-l列出某个用户的任务计划-r删除某个用户的任务-e编辑某个用户的任务 cron文件语法与写法 Minute ...