1.添加同步:
if($import_shop_activity [‘base_info‘] [‘status‘] == 1 ){ foreach ( $r as $v ) { if ($v [‘code‘] == 0) { // 批量插入信息之后,获取到每个的id,再写入详情 foreach ( $import_shop_activity [‘detail‘] as $vt ) { //以前只有reduce_price 现在添加 free_delivery(包快递) 、free_logistics (包物流) 、free_service (免服务费 ) 、discount_server (服务费打折) /* * 1.插入满减 * 2.插入满包邮 * 3.插入免服务和折服务 201510211113 梁大光 */ //满减- if(!empty($vt[‘input_arrive‘]) && ($vt[‘input_arrive‘] > 0)) { switch($vt[‘type‘]) { case ‘add_discount‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $v [‘generateKey‘], ‘item_type‘ => ‘reduce_price‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘ => (float)$vt [‘item_action‘] <= 0 ? 0 : $vt [‘item_action‘] ); break; case ‘logistics‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $v [‘generateKey‘], ‘item_type‘ => ‘free_logistics‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘ => 1 ); break; case ‘express‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $v [‘generateKey‘], ‘item_type‘ => ‘free_delivery‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘ => 1 ); break; case ‘service_free‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $v [‘generateKey‘], ‘item_type‘ => ‘free_server‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘ =>(float) $vt [‘item_action‘] ); break; case ‘service_discount‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $v [‘generateKey‘], ‘item_type‘ => ‘discount_server‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘ => (float)$vt [‘item_action‘] <= 0 ? 100 : $vt [‘item_action‘] ); break; default: break; } } } } } $log_pid = array(); foreach($all_insert_item as $key => $value) { $log_pid[] = $value[‘item_parent_id‘]; } //去掉log_pid 中重复部分 $log_pid = array_unique($log_pid); $item_status = write_autoExecute ( "XXX", $all_insert_item, ‘batch_insert‘ ); if(!empty($item_status)) { //只有真正的有满减活动规则存在的候时我才写日志 $insert_data_array = array(); $note = ‘系统,新建:‘.$import_shop_activity [‘base_info‘] [‘subject‘]; foreach($log_pid as $key => $val) { $insert_data_array[] = array ( ‘user_id‘ => ‘0‘, ‘note‘ => $note, ‘pid‘ => $val, ‘type‘ => ‘reduce_price_log‘, ‘add_time‘ => time (), ‘platform‘ => $platform ); }
2.编辑同步:
$activity_log = ‘‘; foreach($old_activity as $key => $val) { switch ($key) { case ‘subject‘: if(!empty($val) && ($val != $import_shop_activity [‘base_info‘] [‘subject‘])) $activity_log .= ‘编辑[活动名称]:‘.$val.‘-->‘.$import_shop_activity [‘base_info‘] [‘subject‘].‘; ‘; if(empty($val) && ($val != $import_shop_activity [‘base_info‘] [‘subject‘])) $activity_log .= ‘新增[活动名称]:‘.$import_shop_activity [‘base_info‘] [‘subject‘].‘; ‘; break; case ‘link_url‘: if(!empty($val) && ($val!= $import_shop_activity [‘base_info‘] [‘link_url‘])) $activity_log .= ‘编辑[活动链接]:‘.$val.‘-->‘.$import_shop_activity [‘base_info‘] [‘link_url‘].‘; ‘; if(empty($val) && ($val != $import_shop_activity [‘base_info‘] [‘link_url‘])) $activity_log .= ‘新增[活动链接]:‘.$import_shop_activity [‘base_info‘] [‘link_url‘].‘; ‘; break; case ‘starttime‘: if(!empty($val) && ($val != $import_shop_activity [‘base_info‘] [‘starttime‘])) $activity_log .= ‘编辑[开始时间]:‘.date(‘Y-m-d H:i:s‘,$val).‘-->‘.date(‘Y-m-d H:i:s‘,$import_shop_activity [‘base_info‘] [‘starttime‘]).‘; ‘; break; case ‘endtime‘: if(!empty($val) && ($val != $import_shop_activity [‘base_info‘] [‘endtime‘])) $activity_log .= ‘编辑[结束时间]:‘.date(‘Y-m-d H:i:s‘,$val).‘-->‘.date(‘Y-m-d H:i:s‘,$import_shop_activity [‘base_info‘] [‘endtime‘]).‘; ‘; break; default : break; } if($key == ‘status‘ && ($val != $import_shop_activity [‘base_info‘] [‘status‘])) { $status_log_old = $val == 1 ? ‘开启‘ : ‘关闭‘; $status_log_now = $val == 1 ? ‘关闭‘ : ‘开启‘; $sts = $val == 0 ? 1 : ‘‘; ($val == 0 && empty($result_item)) ? $activity_log .= ‘复制:‘.$import_shop_activity [‘base_info‘] [‘subject‘].‘; ‘ : $activity_log .= ‘编辑[活动状态]:‘.$status_log_old.‘-->‘.$status_log_now.‘; ‘; } } // 第三方没关闭的活动,要同步状态 目的是关闭活动 20151026 梁大光if ($import_shop_activity [‘base_info‘] [‘status‘] == 0){ //如果是从复制到复制 那么就直接结束 if(!empty($result_item)) { $where = array (array (‘key‘ => ‘from_mll_act_id‘, ‘op‘ => ‘=‘,‘value‘ => $import_shop_activity [‘base_info‘] [‘id‘]) , array (‘key‘ => ‘pro_status‘,‘op‘ => ‘=‘,‘value‘ => 1 )); //只关闭没有没停用的用户 $status = write_autoExecute ( "XXX", array (‘pro_status‘ => 0), ‘update‘ ,$where ); } else { header("Location: /admin/new_promotion_activity.php?act=list"); exit; } }elseif($import_shop_activity [‘base_info‘] [‘status‘] == 1 ){ //现在就用2种情况了 1.原来的status = 有 0 系统自己停用的 :禁用 1 开启 状态 2 用户停用的 :停用 $where = array (array (‘key‘ => ‘from_mll_act_id‘,‘op‘ => ‘=‘, ‘value‘ => $import_shop_activity [‘base_info‘] [‘id‘]),array (‘key‘ => ‘pro_status‘,‘op‘=> ‘=‘,‘value‘ => 0)); //1.原来的status = 0 $status_new = write_autoExecute ( "XXX", array (‘pro_status‘ => 1), ‘update‘,$where);}else{}$result = mainUniRE ( ‘Third_BUV1_Shoppromotion‘, array ( ‘from_mll_act_id‘ => $import_shop_activity [‘base_info‘] [‘id‘]) );if ($result [‘error‘] != 0) { sys_msg ( "同步活动到第三方失败,规则别名:Third_BUV1_Shoppromotion 返回失败" );}$old_item = array();foreach($old_activity_item as $key => $val){ if($val[‘is_valid‘] == 1) { $old_item[$val[‘type‘]] = array( ‘input_arrive‘ => $val[‘input_arrive‘], ‘item_action‘ => $val[‘item_action‘], ); } $old_item_arr[] = $old_item;} $all_insert_data = array ();$all_shop_ids = array ();$result = shop_unique($result);$pro_id_log = array();foreach ( $result [‘msg‘] as $v ) { $pro_id = $v [‘pro_id‘]; $pro_id_log []= $v [‘pro_id‘]; $all_shop_ids [] = $v [‘pro_shop‘]; //取出status == 2 的活动id 然后再重新插入一条相同的活动 if($v[‘pro_status‘] == 2 && ($old_activity[‘status‘] ==0) ) { $all_update_new []= array ( ‘pro_name‘ => $import_shop_activity [‘base_info‘] [‘subject‘], ‘pro_time_start‘ => $import_shop_activity [‘base_info‘] [‘starttime‘], ‘pro_time_end‘ => $import_shop_activity [‘base_info‘] [‘endtime‘], ‘pro_desc‘ => $import_shop_activity [‘base_info‘] [‘subject‘], ‘pro_link‘ => $import_shop_activity [‘base_info‘] [‘link_url‘], ‘pro_type‘ => ‘reduce_price‘, ‘pro_is_all‘ =>1, ‘pro_genre‘ =>1, ‘pro_save_time‘ =>time(), ‘pro_shop‘ =>$v[‘pro_shop‘], ‘pro_status‘ =>1, ‘pro_is_delete‘ =>0, ‘pro_shop‘ =>$v[‘pro_shop‘], ‘from_mll_act_id‘ =>$import_shop_activity [‘base_info‘] [‘id‘] ); } // 删除之前的满减活动 write_autoExecute ( "XXX", $all_update_data, ‘delete‘, array ( array ( ‘key‘ => ‘item_parent_id‘, ‘op‘ => ‘=‘, ‘value‘ => $pro_id ) ) ); $new_pro_item = array(); /*var_dump($old_item);exit;*/ $pro_type_arr = array(); foreach ( $import_shop_activity [‘detail‘] as $k => $vt ) { //以前只有reduce_price 现在添加 free_delivery(包快递) 、free_logistics (包物流) 、free_service (免服务费 ) 、discount_server (服务费打折) 20151027 梁大光 //满减 $pro_type_arr[$k] = $vt[‘type‘]; if(!empty($vt[‘input_arrive‘]) && ($vt[‘input_arrive‘] > 0)) { switch($vt[‘type‘]) { case ‘add_discount‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $pro_id, ‘item_type‘ => ‘reduce_price‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘] , ‘item_value_2‘ => (float)$vt [‘item_action‘] <= 0 ? 0 :$vt [‘item_action‘] ); $new_pro_item[] = array( ‘item_type‘ => ‘reduce_price‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘=> (float)$vt [‘item_action‘] ); break; case ‘logistics‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $pro_id, ‘item_type‘ => ‘free_logistics‘, ‘item_value_1‘ => $vt [‘input_arrive‘] , ‘item_value_2‘ => ‘1‘ ); $new_pro_item[] = array( ‘item_type‘ => ‘free_logistics‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘=> (float)$vt [‘item_action‘] ); break; case ‘express‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $pro_id, ‘item_type‘ => ‘free_delivery‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘] , ‘item_value_2‘ => ‘1‘ ); $new_pro_item[] = array( ‘item_type‘ => ‘free_delivery‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘=> ‘1‘ ); break; case ‘service_free‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $pro_id, ‘item_type‘ => ‘free_server‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘] , ‘item_value_2‘ => (float)$vt [‘item_action‘], ); $new_pro_item[] = array( ‘item_type‘ => ‘free_server‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘=> (float)$vt [‘item_action‘] ); break; case ‘service_discount‘: $all_insert_item [] = array ( ‘item_parent_id‘ => $pro_id, ‘item_type‘ => ‘discount_server‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘] , ‘item_value_2‘ => (float)$vt [‘item_action‘] <= 0 ? 100 : $vt [‘item_action‘] ); $new_pro_item[] = array( ‘item_type‘ => ‘discount_server‘, ‘item_value_1‘ => (float)$vt [‘input_arrive‘], ‘item_value_2‘=> (float)$vt [‘item_action‘] ); break; default: break; } } }}// $now_item , $old_activity_itemif(!empty($old_activity_item) && !empty($now_item)){ $note_3 = $note_4 = $note_5 = ‘‘; $pro_now_id = $pro_old_id =$pro_now_arr = array(); foreach($now_item as $key => $val) { if(empty($val[‘rec_id‘])) { switch ($val[‘type‘]) { case ‘add_discount‘: $note_3 .= ‘新增[满减活动]满‘.$val[‘input_arrive‘].‘元-->‘.$val[‘item_action‘].‘元;‘ ; break; case ‘logistics‘: $note_3 .= ‘新增[包物流活动]满‘.$val[‘input_arrive‘].‘元-->包物流‘ ; break; case ‘express‘: $note_3 .= ‘新增[包快递活动]满‘.$val[‘input_arrive‘].‘元-->包快递;‘; break; case ‘service_free‘: $within = ((float)$val[‘item_action‘]) ? ‘订单金额‘.((float) $val[‘item_action‘]).‘%以内;‘ : ‘;‘; $note_3 .=‘ 新增[免服务费活动]满‘.$val[‘input_arrive‘].‘元-->免服务费,‘.$within; break; case ‘service_discount‘: $discount = ((float)$val[‘item_action‘]) ? ‘服务费打‘.((float) $val[‘item_action‘]).‘折;‘ : ‘服务费打折;‘; $note_3 .= ‘新增[服务费打折活动]满‘.$val[‘input_arrive‘].‘-->‘.$discount; break; default: break; } } else { $pro_now_id[]=intval($val[‘rec_id‘]); $id=intval($val[‘rec_id‘]); $pro_now_arr[$id]=$val; } } //删除和编辑活动项目 foreach($old_activity_item as $key => $val) { if(!empty($val[‘is_valid‘])) { if(!in_array($val[‘rec_id‘],$pro_now_id)) { $input = (float)$val[‘input_arrive‘]; $item_action = (float)$val[‘item_action‘]; switch ($val[‘type‘]) { case ‘add_discount‘: $note_4 .= ‘编辑[满减活动]取消满‘.$input.‘-->减‘.$item_action.‘元活动;‘ ; break; case ‘logistics‘: $note_4 .= ‘编辑[包物流活动]取消满‘.$input.‘包物流活动;‘ ; break; case ‘express‘: $note_4 .= ‘编辑[包快递活动]取消满‘.$input.‘包快递活动;‘; break; case ‘service_free‘: $note_4 .=‘编辑[免服务费活动]取消满‘.$input.‘勉服务费活动;‘; break; case ‘service_discount‘: $note_4 .= ‘编辑[服务费打折活动]取消满‘.$input.‘服务费打折活动;‘; break; default: break; } } elseif(in_array($val[‘rec_id‘],$pro_now_id)) { if(((float)$val[‘input_arrive‘]) != ((float)$pro_now_arr[$val[‘rec_id‘]][‘input_arrive‘]) || (((float)$val[‘item_action‘]) != ((float)$pro_now_arr[$val[‘rec_id‘]][‘item_action‘]))) { switch ($val[‘type‘]) { case ‘add_discount‘: $note_5 .= ‘编辑[满减活动]满‘. ((float)$val[‘input_arrive‘]).‘元减‘.((float)$val[‘item_action‘]).‘元-->满‘.((float)$pro_now_arr[$val[‘rec_id‘]][‘input_arrive‘]).‘元减‘. ((float)$pro_now_arr[$val[‘rec_id‘]][‘item_action‘]).‘元; ‘; break; case ‘logistics‘: $note_5 .= ‘编辑[包物流活动]满‘.((float)$val[‘input_arrive‘]).‘包物流-->满‘.(float)$pro_now_arr[$val[‘rec_id‘]][‘input_arrive‘].‘包物流; ‘; break; case ‘express‘: $note_5 .= ‘编辑[包快递活动]满‘.((float)$val[‘input_arrive‘]).‘包快递-->满‘.(float)$pro_now_arr[$val[‘rec_id‘]][‘input_arrive‘].‘包快递; ‘; break; case ‘service_free‘: $service_free_old = (float)$val[‘item_action‘] !=0 ? ‘订单金额‘.((float)$val[‘item_action‘]).‘%以内‘ : ‘免服务费‘; $service_free_new = (float)$pro_now_arr[$val[‘rec_id‘]][‘item_action‘] !=0 ? ‘订单金额‘.(float)$pro_now_arr[$val[‘rec_id‘]][‘item_action‘].‘%以内‘ : ‘免服务费‘; $note_5 .=‘编辑[免服务费活动]满‘.((float)$val[‘input_arrive‘]).$service_free_old.‘-->满‘.(float)$pro_now_arr[$val[‘rec_id‘]][‘input_arrive‘].$service_free_new.‘; ‘; break; case ‘service_discount‘: $service_discount_old = (float)$val[‘item_action‘] != 0 ? ‘服务费打‘.((float)$val[‘item_action‘]).‘折‘ : ‘服务费打折‘; $service_discount_new = (float)$pro_now_arr[$val[‘rec_id‘]][‘item_action‘] !=0 ? ‘服务费打‘.(float)$pro_now_arr[$val[‘rec_id‘]][‘item_action‘].‘折‘ : ‘服务费打折‘; $note_5 .= ‘编辑[服务费打折活动]满‘.((float)$val[‘input_arrive‘]).$service_discount_old.‘-->满‘.(float)$pro_now_arr[$val[‘rec_id‘]][‘input_arrive‘].$service_discount_new.‘; ‘; break; default: break; } } }else{} } }} 3.在一个多维数组中去掉底层数组中某一个重复的值
function shop_unique ($a){ $b=array(); $result=array(); foreach($a as $e){ if(!empty($e) && is_array($e)) { foreach($e as $v) { $id=intval($v[‘pro_shop‘]); $b[$id]=isset($b[$id]) ? $v[‘pro_save_time‘]> $b[$id][‘pro_save_time‘] ? $v:$b[$id] : $v; $result = array( ‘error‘ =>0, ‘msg‘ => array_values($b) ); } } } return $result;}
时间: 2024-08-07 19:30:53