123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- <?php
- namespace app\admin\logic;
- use app\admin\server\Webuserserver;
- use app\common\model\VisitBusinessTypeModel;
- use app\common\model\VisitModel;
- use app\common\server\PhpExcel as PhpExcelServer;
- use app\common\server\Redis;
- class visitlogic
- {
- public function newinfo($arr)
- {
- $userinfo = checkToken();
- $m_v = new VisitModel();
- $vid = $m_v->insertData($arr);
- if (empty($vid)) {
- return backarr(0, '创建失败');
- }
- //保存日志
- $s_w = new Webuserserver();
- $logData = [
- 'node' => '到访记录',
- 'type' => 1,
- ];
- $s_w->savelog($userinfo['id'], $logData);
- return backarr(1, '创建成功', ['vid' => $vid]);
- }
- public function getlist($arr)
- {
- $userinfo = checkToken();
- $wherefield = ['name', 'telno', 'name_center'];
- $where = [];
- foreach ($wherefield as $key => $value) {
- if (isset($arr[$value]) && !empty($arr[$value])) {
- $where[$value] = $arr[$value];
- }
- }
- $wherefield2 = ['is_member', 'business_type'];
- foreach ($wherefield2 as $key => $value) {
- if (isset($arr[$value]) && is_numeric($arr[$value])) {
- $where[$value] = $arr[$value];
- }
- }
- if (isset($arr['createtime'])) {
- if (is_array($arr['createtime'])
- && !empty(array_filter($arr['createtime']))
- && $arr['createtime'] = array_filter($arr['createtime'])) {
- $where['createtime'] = $arr['createtime'];
- }
- }
- $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1;
- $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10;
- $m_v = new VisitModel();
- $count = $m_v->getListjoinmealcenter($where, 'count');
- if ($count <= 0) {
- return backarr(0, "无数据");
- }
- $totalpage = ceil($count / $size);
- $page > $totalpage && $page = $totalpage;
- $list = $m_v->getListjoinmealcenter($where, "*", $page, $size)->toArray();
- $m_vbt = new VisitBusinessTypeModel();
- $tylist = $m_vbt->getList([], "*", 1, 0, "id asc");
- if (!empty($tylist)) {
- $tylist = $tylist->toArray();
- $tylist = array_combine(array_column($tylist, "id"), array_column($tylist, "name"));
- } else {
- $tylist = [];
- }
- foreach ($list as $key => $value) {
- if (!empty($tylist) && isset($tylist[$value['business_type']])) {
- $business = $tylist[$value['business_type']];
- } else {
- $business = '';
- }
- $value['business'] = $business;
- $list[$key] = $value;
- }
- $data = [
- 'page' => $page,
- 'size' => $size,
- 'count' => $count,
- 'list' => $list,
- ];
- return backarr(1, "查询成功", $data);
- }
- /**
- * 获取业务类型
- *
- * @return void
- * @author wj
- * @date 2023-01-18
- */
- public function getbusinesstyoelist()
- {
- $m_vbt = new VisitBusinessTypeModel();
- $where = [];
- $list = $m_vbt->getList($where, "*", 1, 0, "id asc");
- return backarr(1, 'success', $list);
- }
- /**
- * 验证导出条件
- *
- * @return void
- * @author wj
- * @date 2023-01-29
- */
- public function checkexportlist($arr)
- {
- $userinfo = checkToken();
- $wherefield = ['name', 'telno'];
- $where = [];
- foreach ($wherefield as $key => $value) {
- if (isset($arr[$value]) && !empty($arr[$value])) {
- $where[] = [$value, 'like', '%' . $arr[$value] . '%'];
- }
- }
- $wherefield2 = ['is_member', 'business_type'];
- foreach ($wherefield2 as $key => $value) {
- if (isset($arr[$value]) && is_numeric($arr[$value])) {
- $where[] = [$value, '=', $arr[$value]];
- }
- }
- if (isset($arr['createtime'])) {
- if (is_array($arr['createtime'])
- && !empty(array_filter($arr['createtime']))
- && $arr['createtime'] = array_filter($arr['createtime'])) {
- $where[] = ['createtime', 'between', $arr['createtime']];
- }
- }
- //$page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1;
- //$size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10;
- $m_v = new VisitModel();
- $count = $m_v->getList($where, 'count');
- if ($count <= 0) {
- return backarr(0, "无数据");
- }
- /*if (session('?visitlistwhere', '', 'export')) {
- session('visitlistwhere', null, 'export');
- }
- session('visitlistwhere', $where, 'export');*/
- $redis = new Redis();
- $redis->delete('visitlistwhere');
- $wherejson = json_encode($where);
- $redis->set('visitlistwhere', $wherejson);
- return backarr(1, "查询成功");
- }
- /**
- * 执行导出
- *
- * @return void
- * @author wj
- * @date 2023-01-29
- */
- public function doexportlist()
- {
- $redis = new Redis();
- $wherejson = $redis->get('visitlistwhere');
- $where = json_decode($wherejson, true);
- $redis->delete('visitlistwhere');
- $m_v = new VisitModel();
- $count = $m_v->getList($where, 'count');
- $size = 100;
- $totalpage = ceil($count / $size);
- $exportdata = [];
- $exporttitle = [];
- $indexChar = 65;
- $indexNum = 2;
- $m_vbt = new VisitBusinessTypeModel();
- $tylist = $m_vbt->getList([], "*", 1, 0, "id asc");
- if (!empty($tylist)) {
- $tylist = $tylist->toArray();
- $tylist = array_combine(array_column($tylist, "id"), array_column($tylist, "name"));
- } else {
- $tylist = [];
- }
- for ($page = 1; $page <= $totalpage; $page++) {
- $list = $m_v->getList($where, "*", $page, $size)->toArray();
- foreach ($list as $key => $value) {
- if (!empty($tylist) && isset($tylist[$value['business_type']])) {
- $business = $tylist[$value['business_type']];
- } else {
- $business = '';
- }
- $value['business'] = $business;
- if (1 == $value['is_member']) {
- $value['is_member'] = '是';
- } else {
- $value['is_member'] = '否';
- }
- $item = [
- 'id' => $value['id'],
- 'name' => $value['name'],
- 'age' => $value['age'],
- 'gender' => $value['gender'],
- 'address' => $value['address'],
- 'telno' => $value['telno'] . " ",
- 'is_member' => $value['is_member'],
- 'business' => $value['business'],
- 'remark' => $value['remark'],
- 'createtime' => $value['createtime'],
- ];
- $itemuse = [];
- foreach ($item as $ikey => $ivalue) {
- $itemuse[] = [
- 'cell' => chr($indexChar) . $indexNum,
- 'value' => $ivalue,
- ];
- $indexChar++;
- }
- $indexChar = 65;
- $indexNum++;
- $exportdata[] = $itemuse;
- }
- }
- $exporttitle = [
- ['cell' => 'A1', 'value' => 'ID'],
- ['cell' => 'B1', 'value' => '姓名'],
- ['cell' => 'C1', 'value' => '年龄'],
- ['cell' => 'D1', 'value' => '性别'],
- ['cell' => 'E1', 'value' => '地址'],
- ['cell' => 'F1', 'value' => '手机号'],
- ['cell' => 'G1', 'value' => '是否会员'],
- ['cell' => 'H1', 'value' => '到访事由'],
- ['cell' => 'I1', 'value' => '备注'],
- ['cell' => 'J1', 'value' => '到访时间'],
- ];
- $style = [
- 'A' => ['width' => 5],
- 'B' => ['width' => 10],
- 'C' => ['width' => 5],
- 'D' => ['width' => 5],
- 'E' => ['width' => 20],
- 'F' => ['width' => 20],
- 'G' => ['width' => 10],
- 'H' => ['width' => 10],
- 'I' => ['width' => 30],
- 'J' => ['width' => 10],
- ];
- $s_pes = new PhpExcelServer();
- $s_pes->getsheetobj($exportdata, $exporttitle, $style);
- $filename = "visitlist_" . date('YmdHis') . '.xlsx';
- $s_pes->exportsheet($filename);
- return backarr(1, "操作成功");
- }
- }
|