/** * @title 装修店铺 * @param plate_id 是 int 店铺装修样式ID * @param type 是 int 模板样式子板块类型(4-海景、6-二宫格、8-三宫格、9-四宫格) * @param sort 是 int 模块排序位置 * @param sku_id 是 string 商品sku_id * @param index 是 int 商品sku排序位置 * @param operate_type 是 int 1-替换商品、2-删除商品 * @param type_id 否 int 装修商品的类型(1-平台商品、2-特色商品) * @example FlagShipShopDecorate.decorateShop? 调试参数:{"operate_type":"1","username":"17721355485","check_code":"123456","method":"FlagShipShopDecorate.decorateShop","plate_id":1,"type":8,"sort":"3","sku_id": "8032717999","index":"1","type_id":"1"} * @return {"status":"0","errorCode":"0","msg":"成功","result":true} * @method POST * @author 邹柯 */ public function decorateShop($res){ $user_id=session("user.user_id"); $plate_id=$res['plate_id']; if(empty($plate_id)){ E('700401'); } $type=$res['type']; if($type !=4 && $type !=6 && $type !=8 && $type !=9){ E('700405'); } $type_id=$res['type_id']; if($type_id !=1 && $type_id !=2){ E('700416'); } $sort=$res['sort']; if(!is_numeric($sort) || $sort <= 0){ E('700406'); } $sku_id=$res['sku_id']; if(empty($sku_id)){ E('700402'); } $index=$res['index']; if(!is_numeric($index) || $index <= 0){ E('700407'); } $operate_type=$res['operate_type']; if($operate_type !=1 && $operate_type !=2){ E('700414'); } $user_shop_decorate=M('user_shop_decorate'); $where['flagship_shop']=1; $where['create_id']=$user_id; $usd_info=$user_shop_decorate->field('id,plate_id,plate_content_draft,plate_content_draft_features,select_status')->where($where)->order('create_time desc')->find(); if($type_id==1){ if(empty($usd_info['plate_content_draft'])){ $plate_content_draft=$this->getDefaultStyleByPlateId($plate_id,$type_id); }else{ $plate_content_draft=json_decode($usd_info['plate_content_draft'],true); } }else{ if(empty($usd_info['plate_content_draft_features'])){ $plate_content_draft=$this->getDefaultStyleByPlateId($plate_id,$type_id); }else{ $plate_content_draft=json_decode($usd_info['plate_content_draft_features'],true); } } foreach($plate_content_draft as $k=>$v){ if($v['type']==$type && $v['sort']==$sort){ foreach($v['goods'] as $k2=>$v2){ if($v2['index']==$index){ $plate_content_draft[$k]['goods'][$k2]['sku_id']=$sku_id; $plate_content_draft[$k]['goods'][$k2]['operate_type']=$operate_type; } } } } $plate_content_draft_arr=json_encode($plate_content_draft); $time=date("Y-m-d H:i:s",time()); if(!empty($usd_info)){ //修改 $u_where['id']=$usd_info['id']; if($type_id==1){ $data=array( 'plate_id' => $plate_id, 'plate_content_draft'=>$plate_content_draft_arr, 'status'=>1, 'update_time'=>$time, 'update_id'=>$user_id, 'select_status'=>2, ); }else{ $data=array( 'plate_id_features' => $plate_id, 'plate_content_draft_features'=>$plate_content_draft_arr, 'status'=>1, 'update_time'=>$time, 'update_id'=>$user_id, 'select_status'=>2, ); } $res=$user_shop_decorate->data($data)->where($u_where)->save(); if(!$res && $res !=0){ E('700403'); } }else{ //添加 if($type_id==1) { $data = array( 'plate_id' => $plate_id, 'plate_content_draft' => $plate_content_draft_arr, 'status' => 1, 'create_time' => $time, 'create_id' => $user_id, 'update_time' => $time, 'update_id' => $user_id, 'use_status' => 1, 'select_status' => 2 ); }else{ $data = array( 'plate_id_features' => $plate_id, 'plate_content_draft_features' => $plate_content_draft_arr, 'status' => 1, 'create_time' => $time, 'create_id' => $user_id, 'update_time' => $time, 'update_id' => $user_id, 'use_status' => 1, 'select_status' => 2 ); } $res=$user_shop_decorate->data($data)->add(); if(!$res){ E('700404'); } } $usd_where['plate_id']=array("neq",$plate_id); $usd_where['create_id']=$user_id; $res_info=$user_shop_decorate->data(['select_status'=>1])->where($usd_where)->save(); if(!$res_info && $res_info !=0){ E('700404'); } return true; }
//根据指定样式id获取样式下的默认商品信息 public function getDefaultStyleByPlateId($plate_id,$type_id){ $shop_decorate_template=M('shop_decorate_template'); $sd_where['id']=$plate_id; $sd_where['is_deleted']=0; $sdt_info=$shop_decorate_template->field('id,plate_content,goods_nums')->where($sd_where)->find(); $plate_content=json_decode($sdt_info['plate_content'],true); if($type_id==1){ $goods_info=$this->getDefaultGoodsInfo($sdt_info['goods_nums'],"sell_nums desc",null,null,null,null,null,null,null,true,$plate_id); foreach($goods_info as $k=>$v){ unset($goods_info[$k]['activity_info']); unset($goods_info[$k]['store_id']); unset($goods_info[$k]['sell_nums']); unset($goods_info[$k]['sell_price']); unset($goods_info[$k]['img']); unset($goods_info[$k]['title']); unset($goods_info[$k]['sku_no']); unset($goods_info[$k]['short_name']); unset($goods_info[$k]['search_name']); unset($goods_info[$k]['product_id']); unset($goods_info[$k]['imgs']); unset($goods_info[$k]['seascapes']); $goods_info[$k]['index']=$k+1; } $total_nums=0; foreach($plate_content as $k=>$v){ $at=array_slice($goods_info,$total_nums,$v['goods_nums']); $plate_content[$k]['goods']=$at; $total_nums +=$v['goods_nums']; unset($plate_content[$k]['goods_nums']); } }else{ $goods_info=$this->getDefaultGoodsNull($sdt_info['goods_nums'],$type_id); $total_nums=0; foreach($plate_content as $k=>$v){ $at=array_slice($goods_info,$total_nums,$v['goods_nums']); $plate_content[$k]['goods']=$at; $total_nums +=$v['goods_nums']; } } return $plate_content; } //获取默认空商品 public function getDefaultGoodsNull($goods_nums,$type_id){ $user_id=session("user.user_id"); $store=M('store'); $s_where['user_id']=$user_id; $store_id=$store->where($s_where)->getField('id'); $store_goods=M('store_goods'); $gs_where['is_deleted']=1; $gs_where['is_open']=1; if($type_id==1){ $gs_where['pt_cats']="0/1"; }else{ $gs_where['store_id']=$store_id; } $gs_info=$store_goods->where($gs_where)->field('sku_id')->find(); for($i=0;$i<$goods_nums;$i++){ $goods[]=[ 'sku_id'=>$gs_info['sku_id'], 'operate_type'=>2, 'index'=>$i+1 ]; } return $goods; }