db = Dever::db('agent/test:old'); } # 获取已审核的条件 private function get_yes_where() { //issuingstate=1 已发放权益 return 'restatus = 0 and status = 1 and prestatus = 1 and isagent = 1'; } # 获取审核失败的条件 private function get_no_where() { //issuingstate=1 已发放权益 return 'restatus = 1 and isagent = 1'; } # 获取待审核的条件 private function get_where() { //issuingstate=1 已发放权益 return 'restatus = 0 and status = 0 and isagent = 1 and contractstatus = 1'; } # 获取sql public function get_sql_api() { $table['已审核'] = 'select count(*) as num,mobile from ims_ewei_shop_member where '.$this->get_yes_where().' group by mobile order by num desc'; $table['审核失败'] = 'select count(*) as num,mobile from ims_ewei_shop_member where '.$this->get_no_where().' group by mobile order by num desc'; $table['待审核'] = 'select count(*) as num,mobile from ims_ewei_shop_member where '.$this->get_where().' group by mobile order by num desc'; echo Dever::table($table);die; } public function get_api() { Dever::config('base')->hook = true; $host = 'https://cryl.yijiuguanfang.com/attachment/'; $state = 1; while($state) { $state = $this->get_data($host, $state); } # 导入关联表 //$this->getRelation(); # 导入地区价格 //$this->getAreaPrice(); # 导入余额 不导入了 //$this->getYue(); return 'ok'; } public function get_data($host, $index = 0) { # 获取已审核通过、权益已发放的用户 $index = $index - 1; $limit = 1000; $data = $this->db->fetchAll('select * from ims_ewei_shop_member where status = 1 and prestatus = 1 and isagent = 1 order by id asc limit ' . $index . ', ' . $limit); if (!$data) { return false; } foreach ($data as $k => $v) { # 创建订单 $order = Dever::db('agent/order')->find(array('id' => $v['id'], 'clear' => true)); if (!$order) { $data = array(); $data['id'] = $v['id']; $data['mobile'] = $v['mobile']; $data['name'] = $v['realname']; $data['avatar'] = $v['avatar']; $data['username'] = $v['nickname']; $data['mid'] = $v['id']; $data['parent_mid'] = $v['agentid']; $data['admin_desc'] = $v['content']; $data['parent_code'] = Dever::load("invite/api.code", $data['parent_mid']); $data['address'] = $v['province'] . $v['city'] . $v['area'] . $v['street']; $data['role'] = $this->getRole($v['agentlevel']); $data['area'] = ''; if ($v['datavalue']) { $v['datavalue'] = trim(str_replace(" ", ',', $v['datavalue'])); list($data['area'], $new) = Dever::load('area/api')->up($v['province'], $v['city'], $v['area'], $v['street'], $v['datavalue'], $v['streetvalue']); # 记录日志 if ($new) { $this->log($v['id'], 4, $data['address'], $new); } } else { if ($v['province'] && $v['city'] && $v['area'] && $v['street']) { list($data['area'], $new) = Dever::load('area/api')->upByName($v['province'], $v['city'], $v['area'], $v['street'], $v['streetvalue']); # 记录日志 if (!$data['area']) { $this->log($v['id'], 5, $data['address'], $new); } } } if ($v['entertype'] == 1) { $data['type'] = 1; } else { $data['type'] = 2; } $data['price'] = $v['paymoney']; $data['f_price'] = $data['price']; $role = Dever::db('setting/role')->find($data['role']); if ($role['type'] == 1) { //$data['f_price'] = $role['price']; } elseif ($role['type'] == 2) { /* $data['f_price'] = Dever::load('area/api')->getPrice($role['area'], $data['area']); if ($data['f_price'] <= 0) { $data['f_price'] = $data['price']; } */ # 区域要进行占用 if ($data['area']) { Dever::load('area/api')->upStatus($data['area'], 2); $area_data = array('mid' => $v['id'], 'order_id' => $v['id'], 'role' => $data['role'], 'area' => $data['area']); $area_data['type'] = 4; $area_data['price'] = $data['f_price']; $area_data['cdate'] = $v['agentapplytime']; Dever::db('agent/member_area')->insert($area_data); } } $data['agent_cash'] = $data['f_price']; $data['sign'] = $v['contractsign'] ? $host . $v['contractsign'] : ''; $data['idcard'] = $v['idnumber']; $data['idcard_front'] = $data['idcard_back'] = ''; if ($v['identity']) { $identity = Dever::json_decode($v['identity']); if (isset($identity[0])) { $data['idcard_front'] = $host . $identity[0]; } if (isset($identity[1])) { $data['idcard_back'] = $host . $identity[1]; } } $data['company_name'] = $v['company']; $data['pay_type'] = 2; if ($v['receipt']) { $receipt = Dever::json_decode($v['receipt']); $data['pay_pic'] = array(); foreach ($receipt as $v1) { $data['pay_pic'][] = $host . $v1; } $data['pay_pic'] = implode(',', $data['pay_pic']); } $data['status'] = $this->getStatus($v); $data['audit_desc'] = $v['refuse']; if ($v['issuingstate'] == 1) { $data['goods_status'] = 3; } else { $data['goods_status'] = 1; } $data['pay_status'] = 2; $data['import'] = $v['olduid'] > 0 ? 3 : 2; $data['order_num'] = Dever::load('agent/lib/order')->getOrderId(); $data['cdate'] = $v['agentapplytime']; if ($data['status'] == 4) { $data['fdate'] = $v['agenttime']; } $data['order_type'] = 1; $data['company_pic'] = ''; $order_id = Dever::db('agent/order')->insert($data); /* $order = Dever::db('agent/order')->find(array('id' => $v['id'], 'clear' => true)); if (!$order) { $order_id = Dever::db('agent/order')->insert($data); } else { $order_id = $order['id']; }*/ if ($order_id) { if (!$v['preagenttime']) { $v['preagenttime'] = $v['agenttime']; } if ($data['status'] == 2) { $this->addProcess($order_id, 1, $v['preagenttime'], $data); } elseif ($data['status'] == 3) { $this->addProcess($order_id, 1, $v['preagenttime'], $data); $this->addProcess($order_id, 2, $v['agenttime'], $data); } elseif ($data['status'] == 4) { $this->addProcess($order_id, 1, $v['preagenttime'], $data); $this->addProcess($order_id, 2, $v['agenttime'], $data); $this->addProcess($order_id, 3, $v['agenttime'], $data); } if ($data['status'] == 4) { # 生成合同 if ($data['sign']) { $this->addAgreement($data); } $member = Dever::db('agent/member')->find($v['id']); if ($data['status'] == 4) { $data['status'] = 2; } elseif ($data['status'] == 5) { $data['status'] = 1; $data['state'] = 2; } else { $data['status'] = 1; } $mc_member = $this->db->fetch('select * from ims_mc_members where uid = ' . $v['uid']); $data['rdate'] = $v['agenttime']; $data['cash'] = ($mc_member && $mc_member['credit2']) ? $mc_member['credit2'] : $v['credit2']; //$data['group_sell'] = $v['allcommission']; $data['old_agentdownnum'] = $v['agentdownnum']; $data['old_group_sell'] = $v['allcommission']; if (!$member) { Dever::db('agent/member')->insert($data); } else { $data['where_id'] = $member['id']; Dever::db('agent/member')->update($data); } if ($data['parent_mid']) { # 添加直推关系 Dever::load('invite/lib/relation')->add($data['parent_mid'], $data['mid'], 1); # 为上级增加增加业绩 Dever::load('bill/lib/sell')->up($data['parent_mid'], 1, $data['f_price'], $data['role'], $order_id, '邀请' . $data['name'] . '['.$data['mobile'].']新增直推业绩', 3, $data['cdate']); Dever::load('bill/lib/sell')->up($data['parent_mid'], 2, $data['f_price'], $data['role'], $order_id, '邀请' . $data['name'] . '['.$data['mobile'].']新增团队业绩', 3, $data['cdate']); } } echo $v['id']; echo "\r\n"; } } } $index = $index + 1; return $index + $limit; } # 设置邀请关系 要跑完所有数据才能设置 public function relation_api() { Dever::config('base')->hook = true; $state = 1; while($state) { $state = $this->setRelation($state); } return 'ok'; } private function setRelation($index) { # 获取已审核通过、权益已发放的用户 $index = $index - 1; $limit = 1000; $data = Dever::db('invite/relation')->fetchAll('select * from {table} where level = 1 order by id desc limit ' . $index . ', ' . $limit); if (!$data) { return false; } //$data = Dever::db('invite/relation')->all(array('level' => 1)); foreach ($data as $k => $v) { $check = Dever::db('invite/relation')->one(array('to_uid' => $v['to_uid'], 'level' => 2, 'clear' => true)); if (!$check) { $order = Dever::db('agent/order')->find(array('id' => $v['to_uid'], 'status' => 4)); if ($order) { $this->addRelation($v['to_uid'], $v['uid'], 2, $order); } } echo $v['id']; echo "\r\n"; } $index = $index + 1; return $index + $limit; } private function addRelation($cur, $parent, $level, $order) { $info = Dever::db('invite/relation')->one(array('to_uid' => $parent)); if ($info) { $state = Dever::load('invite/lib/relation')->add($info['uid'], $cur, $level, $order); if ($state) { # 新增团队业绩 Dever::load('bill/lib/sell')->up($info['uid'], 2, $order['f_price'], $order['role'], $order['id'], '邀请' . $order['name'] . '['.$order['mobile'].']新增团队业绩', 3, $order['cdate']); } else { return $this->addRelation($cur, $parent, $level, $order); } $level = $level + 1; return $this->addRelation($cur, $info['uid'], $level, $order); } } # 对业绩进行整理 public function sell_api() { # 获取所有用户 $data = Dever::db('agent/member')->select(); if ($data) { foreach ($data as $k => $v) { $update = array(); # 获取直推代理人数 $num = Dever::load('invite/api')->getChildNum($v['id'], 1); if ($num != $v['old_agentdownnum']) { # 记录日志 $this->log($v['id'], 2, $v['old_agentdownnum'], $num); } # 获取直推业绩 $sell = Dever::db('bill/sell')->getNumByTimeOne(array('mid' => $v['id'], 'type' => 1, 'stype' => 3)); if ($sell && $sell['num']) { $update['sell'] = $sell['num']; } # 获取团队业绩 $sell = Dever::db('bill/sell')->getNumByTimeOne(array('mid' => $v['id'], 'type' => 2, 'stype' => 3)); if ($sell && $sell['num']) { $update['group_sell'] = $sell['num']; if ($update['group_sell'] != $v['old_group_sell']) { # 记录日志 $this->log($v['id'], 3, $v['old_group_sell'], $update['group_sell']); } if ($v['level_id'] > 0) { $cur_level = Dever::db('setting/level')->find($v['level_id']); } else { $cur_level = array('id' => -1, 'name' => '普通', 'level' => 0, 'num' => 1, 'value' => '0'); } $level = Dever::db('setting/level')->getOne(array('target' => ($update['group_sell']/10000))); if ($level && $level['level'] > $cur_level['level']) { $update['level_id'] = $level['id']; Dever::load('agent/lib/level_log')->up($v['id'], -1, $cur_level['id'], $level['id'], $update['group_sell'], $update['group_sell'], $num); } } if ($update) { $update['where_id'] = $v['id']; Dever::db('agent/member')->update($update); } echo $v['id']; echo "\r\n"; } } } # 导入日志记录 public function log($mid, $type, $before, $after) { # 地区、直推代理人数、团队业绩 $data['mid'] = $mid; $data['type'] = $type; $data['before'] = $before; $data['after'] = $after; if ($type == 5) { $data['status'] = 2; } Dever::db('agent/import_log')->insert($data); } # 验证直推代理人数是否正确 agentdownnum # 导入区域价格 private function getAreaPrice() { $data = $this->db->fetchAll('select * from ims_ewei_shop_wang_city_other where deleted=0 and hide=0'); if ($data) { foreach ($data as $k => $v) { $province = Dever::db('area/province')->one(array('name' => $v['province'])); if ($province && $v['city']) { $city = Dever::db('area/city')->one(array('name' => $v['city'], 'province_id' => $province['id'])); if ($city && $v['district']) { $county = Dever::db('area/county')->one(array('name' => $v['district'], 'city_id' => $city['id'])); if ($county && $v['identity'] == 3) { # 区县 Dever::db('area/county')->update(array('where_id' => $county['id'], 'price' => $v['money'])); } elseif ($county && $v['street'] && $v['identity'] == 4) { # 街道 if (strstr($v['street'], '燕郊')) { Dever::db('area/town')->update(array('where_id' => 131082450, 'price' => $v['money'])); Dever::db('area/town')->update(array('where_id' => 131082109, 'price' => $v['money'])); } else { $town = Dever::db('area/town')->one(array('name' => $v['street'], 'county_id' => $county['id'])); if ($town) { Dever::db('area/town')->update(array('where_id' => $town['id'], 'price' => $v['money'])); } } } } } } } } # 导入余额日志[不包括提现] private function getYue() { $data = $this->db->fetchAll('select * from mc_credits_record where credittype = "credit2" order by id asc'); if ($data) { foreach ($data as $k => $v) { if ($v['credittype'] == 'credit2') { # 直推佣金 $type = 1; } elseif ($v['credittype'] == 'credit3') { # 市场培训费 $type = 2; } else { continue; } $remark = $v['remark']; if (strstr($remark, '提现')) { continue; } $info = Dever::db('bill/cash')->one(array('id' => $v['id'], 'clear' => true)); if (!$info) { $update['id'] = $v['id']; $update['type'] = $type; if ($v['uid'] > 0) { $member = $this->db->fetch('select * from ims_ewei_shop_member where uid = ' . $v['uid'] . ' and isagent = 1 and status = 1 and prestatus = 1'); if ($member) { $update['mid'] = $member['id']; } } elseif ($remark) { $temp = explode('OPENID: ', $remark); $temp = explode(' 剩余', $temp[1]); if (isset($temp[0]) && $temp[0]) { $member = $this->db->fetch('select * from ims_ewei_shop_member where openid = "' . $temp[0] . '" and isagent = 1 and status = 1 and prestatus = 1'); if ($member) { $update['mid'] = $member['id']; } } } if (isset($update['mid']) && $update['mid'] > 0) { if (strstr($remark, '消费')) { $type = 12; } $update['cash'] = $v['num']; $update['yue'] = $v['presentcredit']; $update['status'] = 2; $update['audit'] = 2; $update['cdate'] = $update['operdate'] = $v['createtime']; $update['order_num'] = Dever::load('bill/lib/cash')->getOrderId(); Dever::db('bill/cash')->insert($update); } } } } } # 获取提现 private function getTixian() { $data = $this->db->fetchAll('select * from ims_ewei_shop_member_log where type > 0'); if ($data) { foreach ($data as $k => $v) { $v['id'] = 50000 + $v['id']; $info = Dever::db('bill/cash')->one(array('id' => $v['id'], 'clear' => true)); if (!$info) { $update['id'] = $v['id']; $update['type'] = 11; if ($v['uid'] > 0) { $member = $this->db->fetch('select * from ims_ewei_shop_member where uid = ' . $v['uid'] . ' and isagent = 1 and status = 1 and prestatus = 1'); if ($member) { $update['mid'] = $member['id']; } } elseif ($remark) { $member = $this->db->fetch('select * from ims_ewei_shop_member where openid = "' . $v['openid'] . '" and isagent = 1 and status = 1 and prestatus = 1'); if ($member) { $update['mid'] = $member['id']; } } if (isset($update['mid']) && $update['mid'] > 0) { $update['cash'] = $v['num']; $update['yue'] = $v['presentcredit']; $status = 1; $fstatus = -1; if ($v['status'] == 0 && $v['check'] == 0) { # 待审核 $status = 1; } elseif ($v['status'] != -1 && $v['check'] == 1) { # 已审核 $status = 2; } elseif ($v['status'] == 0 && $v['check'] == 1) { # 待发放 $status = 2; $fstatus = 1; } elseif ($v['status'] == 1 && $v['check'] == 1) { # 已发放 $status = 2; $fstatus = 2; } elseif ($v['check'] == -1) { # 已拒绝 $status = 3; } $update['status'] = $status; $update['audit'] = $status; $update['cdate'] = $v['createtime']; $update['operdate'] = $v['checktime']; $update['order_num'] = Dever::load('bill/lib/cash')->getOrderId(); $id = Dever::db('bill/cash')->insert($update); if ($id) { $tixian['order_num'] = Dever::load('bill/lib/tixian')->getOrderId(); $tixian['id'] = $v['id']; $tixian['cash_id'] = $v['id']; $tixian['mid'] = $update['mid']; $tixian['ycash'] = $v['money']; $tixian['cash'] = $v['realmoney']; $tixian['yue'] = $v['deductionmoney']; $tixian['name'] = $v['realname']; $tixian['bank'] = $this->upBank($v['bankname']); $tixian['bankname'] = $v['bankopen']; $tixian['card'] = $v['bankcard']; $tixian['status'] = $fstatus; Dever::db('bill/tixian')->insert($tixian); } } } } } } # 导入关联表 private function getRelation() { $data = $this->db->fetchAll('select * from ims_ewei_shop_commission_relation'); if ($data) { foreach ($data as $k => $v) { $where['uid'] = $v['pid']; $where['to_uid'] = $v['id']; $where['level'] = $v['level']; $info = Dever::db('invite/relation')->one($where); if (!$info) { Dever::db('invite/relation')->insert($where); } } } } # 生成合同 private function addAgreement($data) { Dever::load('agent/lib/agreement')->up($data); } # 更新进度 private function addProcess($order_id, $status, $time, $data) { $where['order_id'] = $order_id; $where['status'] = $status; $info = Dever::db('agent/order_process')->find($where); if (!$info) { if ($status == 3) { $where['type'] = '1,2,3,5'; } $where['cdate'] = $time; Dever::db('agent/order_process')->insert($where); } } # 状态对应 private function getStatus($data) { # 完成权益发放issuingstate、财务审核status、初审prestatus的认为订单有效 if ($data['issuingstate'] == 1 && $data['status'] == 1 && $data['prestatus'] == 1) { return 4; } elseif ($data['status'] == 1 && $data['prestatus'] == 1) { return 4; } elseif ($data['prestatus'] == 1) { return 2; } elseif ($data['restatus'] == 1) { # 审核失败 return 5; } elseif ($data['trainersign'] && $data['contractsign']) { return 1; } else { return -2; } } # 代理商角色对应 private function getRole($role) { # key是历史数据 value是最新数据 $config = array ( # 创服 5 => 5, # 创客 4 => 6, # 逍客 8 => 7, # 城市 1 => 2, # 区县 2 => 3, # 街道 3 => 4, # 炒菜机分享会员 6 => 8, # 热敏炉分享会员 7 => 9, ); if (isset($config[$role]) && $config[$role]) { return $config[$role]; } return 1; } }