exchange_tab = ['credit','invite','consume','goods']; $exchange_name = ['积分兑换','直推奖励','累计消费','购买商品']; $activityModel->exchange_rule = $activityModel->exchange_rule ? array_column(unserialize($activityModel->exchange_rule),null,'key') : []; $goods_list = []; foreach ($activityModel->exchange_tab as $k=>$v){ $this_rule = [ 'key'=>$v, 'name'=>$exchange_name[$k], 'is_open'=>$activityModel->exchange_rule[$v]['is_open'] ? : 0, 'exchange_num'=>$activityModel->exchange_rule[$v]['exchange_num'] ? : 0, 'reward_num'=>$activityModel->exchange_rule[$v]['reward_num'] ? : 1, ]; switch ($v){ case 'credit': $text = ['积分兑换次数','积分','兑换']; break; case 'invite': $text = ['直推','人','奖励']; break; case 'consume': $text = ['消费金额累计满','元','获得']; break; case 'goods': $text = ['购买指定商品之一奖励','次挑战次数']; if ($getGoods && $this_rule['is_open'] && !empty($this_rule['exchange_num'])){ $goods_list = Goods::select('thumb AS url','id AS data','title AS name')->whereNull('deleted_at') ->whereIn('id',explode(',',$this_rule['exchange_num']))->where('status',1)->get()->toArray(); } break; } $this_rule['text'] = $text ? : ['','','']; $exchange_rule[] = $this_rule; if ($this_rule['is_open']) $exchange_choose[] = $v; } $activityModel->exchange_choose = $exchange_choose; $activityModel->exchange_rule = $exchange_rule; if ($getGoods){ return ['model'=>$activityModel,'goods'=>$goods_list]; }else{ return $activityModel; } } //格式化后台页面传来的规则数据,兼容数据库保存 public function storeRule($form_data){ unset($form_data['exchange_tab']); unset($form_data['picArr']); $form_data['start_time'] = $form_data['countdown_time'][0]; $form_data['end_time'] = $form_data['countdown_time'][1]; if (!empty($form_data['exchange_rule'])){ foreach ($form_data['exchange_rule'] as $k=>&$v){ unset($form_data['exchange_rule'][$k]['text']); if (in_array($v['key'],$form_data['exchange_choose'])){ $v['is_open'] = 1; }else{ $v['is_open'] = 0; $v['exchange_num'] = 0; $v['reward_num'] = 0; } } unset($form_data['exchange_choose']); $form_data['exchange_rule'] = serialize($form_data['exchange_rule']); } return $form_data; } }