123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php namespace Puser\Manage\Lib;
- use Dever;
- class Excel
- {
- # 导出
- public function out($data)
- {
- $head = ['UID', '用户名', '手机号', '销售渠道', '推荐人UID', '推荐人用户名', '推荐人手机号', '团队人数'];
- list($role, $score, $result) = $this->getTemplate($head);
- foreach ($data['body'] as $k => $v) {
- $parent_uid = $parent_name = $parent_mobile = '';
- if ($v['parent_uid']) {
- $parent_uid = Dever::load(\Manage\Lib\Util::class)->getTip($v['parent_uid'], 0);
- $parent_name = Dever::load(\Manage\Lib\Util::class)->getTip($v['parent_uid'], 1);
- $parent_mobile = Dever::load(\Manage\Lib\Util::class)->getTip($v['parent_uid'], 2);
- }
-
- $result['body'][$k] = [$v['id'], $v['name'], $v['mobile'], $v['sales'], $parent_uid, $parent_name, $parent_mobile, $v['group']];
- if ($role) {
- foreach ($role as $v1) {
- $result['body'][$k][] = $parent_uid = Dever::load(\Manage\Lib\Util::class)->getTip($v['role'], $v1['id']);
- }
- }
- if ($score) {
- foreach ($score as $v1) {
- $result['body'][$k][] = $parent_uid = Dever::load(\Manage\Lib\Util::class)->getTip($v['score'], $v1['id']);
- }
- }
- $result['body'][$k][] = $v['cdate'];
- }
- return $result;
- }
- # 导出一个模板出来
- public function getTemplate($head, $out = false, $import = false)
- {
- $role = Dever::db('prole/info')->select(['status' => 1]);
- $score = Dever::db('pscore/info')->select(['status' => 1]);
- $result = [];
- if ($head) {
- $result['head'][0] = $head;
- } elseif ($import) {
- # 导入时的字段,一定要和下面的else里的对应
- $result['head'][0] = ['username', 'mobile', 'sales_type', 'sales_name', 'parent_mobile'];
- } else {
- # 这是导入时的模板
- $result['head'][0] = ['用户名', '手机号', '销售渠道类型', '销售渠道名称', '推荐人手机号'];
- }
- if ($role) {
- foreach ($role as $v) {
- $result['head'][0][] = $import ? ['role', $v['id']] : $v['name'];
- }
- }
- if ($score) {
- foreach ($score as $v) {
- $result['head'][0][] = $import ? ['score', $v['id']] : $v['name'];
- }
- }
- $result['head'][0][] = $import ? 'cdate' : '注册时间';
- $result['body'] = [];
- if ($out) {
- $k = 0;
- $result['body'][$k] = ['用户123', '13800138000', '实体店(注:平台用户不用填)', '店铺名称(注:平台用户不用填)', '13800138001'];
- if ($role) {
- foreach ($role as $v) {
- $result['body'][$k][] = '填写' . $v['name'] . '名称';
- }
- }
- if ($score) {
- foreach ($score as $v) {
- $result['body'][$k][] = '填写' . $v['name'] . '数量';
- }
- }
- $result['body'][$k][] = Date('Y-m-d H:i:s');
- return Dever::load(\Excel\Lib\Export::class)->act($result['body'], $result['head'], '用户导入模板');
- }
- return [$role, $score, $result];
- }
- # 导入
- public function import_commit(){}
- public function import($file)
- {
- # 当前登录的管理员id
- $muid = Dever::getData('muser')['id'];
- $mname = Dever::getData('muser')['name'];
- $mdesc = $mname . '在' . date('Y-m-d H:i:s') . '导入';
- $sales = Dever::load(\Psales\Lib\Info::class)->getType();
- foreach ($sales as $k => $v) {
- $temp[$v['name']] = [$v['id'], $v['table']];
- }
- $sales = $temp;
- list($role, $score, $result) = $this->getTemplate([], false, true);
- $file = Dever::load(\Upload\Lib\View::class)->local($file);
- $import = Dever::load(\Excel\Lib\Import::class);
- foreach ($import->act($file, 0, 1, $result['head'][0]) as $row) {
- if ($row['mobile'] != 13800138000) {
- $user = Dever::db('puser/info')->find(['mobile' => $row['mobile']]);
- if ($user) {
- continue;
- }
- # 销售渠道
- $sales_type = $sales_id = 0;
- if ($row['sales_type'] && $row['sales_name']) {
- if ($row['sales_type'] = Dever::issets($sales, $row['sales_type'])) {
- $sales_type = $row['sales_type'][0] ?? 0;
- if ($sales_type) {
- $sales_id = Dever::db('psales/'. $row['sales_type'][1])->column(['name' => $row['sales_name']], 'id');
- }
- }
- }
- # 推荐人
- $parent_uid = 0;
- if ($row['parent_mobile'] && $row['parent_mobile'] != $row['mobile']) {
- $parent = Dever::db('puser/info')->find(['mobile' => $row['parent_mobile']]);
- if ($parent) {
- $parent_uid = $parent['id'];
- }
- }
- $uid = Dever::load(\Puser\Lib\Info::class)->createUser($row['mobile'], $sales_type, $sales_id, $parent_uid, $row['username'], 1, $row['cdate']);
- if ($uid) {
- # 角色
- if (isset($row['role']) && $row['role']) {
- foreach ($row['role'] as $k => $v) {
- $level = Dever::db('prole/level')->find(['info_id' => $k, 'name' => $v]);
- if ($level) {
- Dever::load(\Prole\Lib\User::class)->up($uid, $k, $level, $sales_type, $sales_id, 4, $muid, $mdesc);
- }
- }
- }
- # 积分
- if (isset($row['score']) && $row['score']) {
- foreach ($row['score'] as $k => $v) {
- Dever::load(\Pscore\Lib\Log::class)->action('导入', $k)->add($uid, $mdesc, $v);
- }
- }
- }
- }
- }
- }
- }
|