array( '_table' => 'ls_retail_vip', 'id', 'name', 'nickname', 'mobile_phone', 'plus_type', 'card_key', 'balance', 'integral', 'grade_integral', 'addtime' => 'add_time', 'merchantid', 'storeid' => 'store_id', 'status', 'plus_id', 'guideid', '_type' => 'LEFT' ), 'RetailPlusVip' => array( '_table' => 'ls_retail_plus_vip', 'vip_id', 'xcx_vip_id', 'start_time', 'end_time', 'storeid', 'state', 'addtime', '_on' => 'RetailPlusVip.id = RetailVip.plus_id', ), ); /** * 多条排序查询(select)ram $map * @param $map * @param string $field * @param string $order * @param string $page * @param string $limit * @return bool|mixed */ public function getOrderSelect($map, $field = '*', $order = 'id desc', $page = '', $limit = '') { if (!$map) { return false; } if (!$page || !$limit) { $select = $this->field($field)->where($map)->order($order)->select(); } else { $select = $this->field($field)->where($map)->order($order)->page($page, $limit)->select(); } return $select; } /** * 处理多条数据 * @param array $vip_data 原始数据 * @return array $vip_data 原始数据 */ public function handleData($vip_data) { if (!$vip_data) { return $vip_data; } // 实例化模型 $Store = new Store(); $store_name = []; $RetailVipLabelModel = new RetailVipLabelModel(); $VipInfo = new VipInfo(); // 处理数据 foreach ($vip_data as $key => &$val) { $val['index'] = $key + 1; // 会员名称 $val['name'] = $val['name'] ? $val['name'] : ''; // 会员昵称 $val['nickname'] = $val['nickname'] ? $val['nickname'] : ''; $val['name'] = $val['name'] ? $val['name'] : $val['nickname']; // 会员手机号 $val['mobile_phone'] = $val['mobile_phone'] ? $val['mobile_phone'] : ''; // 会员实体卡 $val['card_key'] = $val['card_key'] ? $val['card_key'] : ''; // 门店名称(普通会员) $val['store_name'] = $Store->getStoreName($val['store_id'], $store_name); $val['plus_store_name'] = $val['store_name']; // 等级名称 if ($val['plus_type'] == 3) { $grade_info = $VipInfo->singleVipGrade([ 'merchant_id' => $val['merchantid'], 'grade_integral' => $val['grade_integral'], 'get_default' => true, ]); $val['grade'] = $grade_info['grade_name']; $val['grade_id'] = $grade_info['id']; } else { $val['grade'] = "Plus会员"; $val['grade_id'] = 0; } // 余额 $val['balance'] = $val['balance'] ? floatval($val['balance']) : 0; // 积分 $val['integral'] = $val['integral'] ? floatval($val['integral']) : 0; // 时间 $val['add_time'] = date('Y-m-d', $val['plus_type'] == 2 ? $val['addtime'] : $val['add_time']); unset($val['addtime']); // 状态 switch ($val['status']) { case 1: $val['status_name'] = '正常'; break; case 2: $val['status_name'] = '已删除'; break; case 3: $val['status_name'] = '冻结'; break; case 4: $val['status_name'] = '挂失'; break; default: $val['status_name'] = '未知'; } if ($val['end_time']) { $val['end_time'] = date('Y-m-d H:i:s', $val['end_time']); } else { $val['end_time'] = ''; } //会员标签 $label_map = [ 'rvwl.is_del' => 1, 'rvl.is_del' => 1, 'vid' => $val['id'], ]; $label_field = [ 'rvl.name', ]; $val['label_list'] = $RetailVipLabelModel->getUserLabelList($label_map, $label_field); } return $vip_data; } }