123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- <?php
- /*
- * @Author: wang jun
- * @Date: 2021-09-27 08:46:31
- * @Last Modified by: wang jun
- * @Last Modified time: 2021-12-30 13:41:17
- */
- namespace app\index\model;
- use think\Model;
- class inventmodel extends Model
- {
- protected $table = 't_invent';
- public function insertData($data)
- {
- $id = $this->insertGetId($data);
- return empty($id) ? false : $id;
- }
- public function getInfo($where, $field = "*", $row = true)
- {
- $info = $this->field($field)->where($where);
- if ($row) {
- $info = $info->find();
- } else {
- $info = $info->select();
- }
- return empty($info) ? false : $info;
- }
- public function getList($where = [], $field = "*", $page = 1, $size = 10, $order = "id desc", $group = "", $row = false)
- {
- $sqlObj = $this->where($where);
- if ("count" != $field) {
- $sqlObj = $sqlObj->field($field)->order($order)->group($group)->page($page, $size);
- if ($row) {
- $data = $sqlObj->find();
- } else {
- $data = $sqlObj->select();
- }
- } else {
- $data = $sqlObj = $sqlObj->count();
- }
- return $data;
- }
- public function updateinfo($where, $updateData)
- {
- $row = $this->where($where)->update($updateData);
- return empty($row) ? false : $row;
- }
- public function deleteinfo($where)
- {
- $row = $this->where($where)->delete();
- return empty($row) ? false : $row;
- }
- public function incField($where, $field, $step = 1)
- {
- $row = $this->where($where)->setInc($field, $step);
- return empty($row) ? false : $row;
- }
- /*
- * 20211002
- * 根据发布者ID获取清单
- * 应用于发布者查看本人发布的消息
- */
- public function sellistbyuid($uid)
- {
- $where_arr['createuid'] = $uid;
- $rlist = $this->where($where_arr)->order('id', 'desc')->select();
- $rlist = collection($rlist)->toArray();
- return $rlist;
- }
- /**
- * 根据条件查询
- */
- public function getlistjoinuser($where, $field = "*", $page = 1, $size = 10, $order = "id desc", $group = "", $row = false)
- {
- $sql = $this->alias('i')->join('t_userinfo u', 'i.createuid=u.id')->join('t_webuser w', 'i.releaseid=w.id', 'LEFT');
- $whereUse = [];
- if (isset($where['telno']) && !empty($where['telno'])) {
- $whereUse['u.telno'] = ['like', '%' . $where['telno'] . '%'];
- }
- if (isset($where['wname']) && !empty($where['wname'])) {
- $whereUse['u.wname'] = ['like', '%' . $where['wname'] . '%'];
- }
- if (isset($where['isactive']) && is_numeric($where['isactive'])) {
- $whereUse['i.isactive'] = $where['isactive'];
- }
- if (isset($where['ispass']) && is_numeric($where['ispass'])) {
- $whereUse['i.ispass'] = $where['ispass'];
- }
- if (isset($where['code']) && !empty($where['code'])) {
- $whereUse['i.code'] = ['like', '%' . $where['code'] . '%'];
- }
- if (isset($where['worktype']) && !empty($where['worktype'])) {
- $whereUse['i.worktype'] = $where['worktype'];
- }
- if (isset($where['release_user']) && !empty($where['release_user'])) {
- if ('null' == $where['release_user']) {
- $sql->whereNull('i.releaseid');
- } else {
- $whereUse['w.user_name'] = ['like', '%' . $where['release_user'] . '%'];
- }
- }
- if (isset($where['createdate']) && is_array($where['createdate'])) {
- $whereUse['createdate'] = ['between', $where['createdate']];
- }
- if ($field == 'count') {
- $data = $sql->where($whereUse)->count();
- } else {
- $field = ['u.wname', 'u.telno', 'u.isactive', 'w.user_name release_user', 'i.*'];
- if ($row) {
- $data = $sql->where($whereUse)->field($field)->page($page, $size)->order($order)->find();
- } else {
- $data = $sql->where($whereUse)->field($field)->page($page, $size)->order($order)->group($group)->select();
- }
- }
- return empty($data) ? false : $data;
- }
- /**
- * 获取总数
- * 20211117
- * wj
- */
- public function getcount()
- {
- $count = $this->where([])->count();
- return $count;
- }
- /**
- * 获取分析数据
- * 20211117
- * wj
- */
- public function statistics()
- {
- $sql = "select isactive,ispass,count(*) as count from " . $this->table . " group by isactive,ispass";
- $list = $this->query("select * from (" . $sql . ") as t");
- return $list;
- }
- /*
- * 20211130
- * steelxu5
- * 根据ID获取信息
- */
- public function selinfobyid($id)
- {
- $where_arr['id'] = $id;
- $rec = $this->where($where_arr)->find();
- return $rec;
- }
- /***
- * 移动端根据多个条件获取列表
- * 20211215
- * wj
- */
- public function getlistbymultiplecondition($where = [], $page = 1, $size = 10, $order = "id desc")
- {
- $whereUse = ['isactive=1', 'ispass=1'];
- if (!empty($where)) {
- foreach ($where as $key => $value) {
- if ('city' == $key) {
- $whereUse[] = "city like '%" . $value . "%'";
- }
- if ('disc' == $key) {
- $whereUse[] = "disc like '%" . $value . "%'";
- }
- if ('town' == $key) {
- $whereUse[] = "town like '%" . $value . "%'";
- }
- if ('address' == $key) {
- $whereUse[] = "address like '%" . $value . "%'";
- }
- if ('worktype' == $key) {
- $whereUse[] = "worktype like '%" . $value . "%'";
- }
- if ('lng' == $key) {
- $value = (double) $value;
- $radii = (double) $where['radii'];
- $whereUse[] = "ABS(gps_lng-" . $value . ")<=" . $radii;
- }
- if ('lat' == $key) {
- $value = (double) $value;
- $radii = (double) $where['radii'];
- $whereUse[] = "ABS(gps_lat-" . $value . ")<=" . $radii;
- }
- }
- }
- $whereStr = implode(' and ', $whereUse);
- $index = ($page - 1) * $size;
- $sql = "select * from t_invent where " . $whereStr . " order by " . $order . " limit " . $index . ',' . $size;
- $list = $this->query("select * from (" . $sql . ") as t");
- return $list;
- }
- /**
- * 获取一定时间内无联系数量
- * 20211222
- * wj
- */
- public function getnocalldata($min = 5, $where = [], $count = false, $page = 1, $size = 10)
- {
- if (empty($min) || !is_numeric($min)) {
- $min = 5;
- }
- $sql = "select u.wname,u.telno,i.*,ROUND((UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(i.passtime))/60,0) time
- from t_invent as i join t_userinfo as u on i.createuid=u.id
- where
- i.concount<=0 and i.ispass=1 and i.isactive=1";
- /*$sql = "select u.wname,u.telno,i.*
- from t_invent as i join t_userinfo as u on i.createuid=u.id
- where i.passtime>= now()-interval " . $min . " minute and i.concount<=0 and i.ispass=1 and i.isactive=1";*/
- $whereUse = [];
- if (!empty($where)) {
- foreach ($where as $key => $value) {
- if ('wname' == $key) {
- $whereUse[] = "u.wname like '%" . $value . "%'";
- }
- if ('telno' == $key) {
- $whereUse[] = "u.telno like '%" . $value . "%'";
- }
- }
- }
- if (!empty($whereUse)) {
- $whereStr = implode(' and ', $whereUse);
- $sql .= " and " . $whereStr;
- }
- $sql .= ' ORDER BY i.id desc';
- if ($count) {
- $list = $this->query("select count(*) count from (" . $sql . ") as t");
- $count = $list[0]['count'];
- return $count;
- }
- $index = ($page - 1) * $size;
- $list = $this->query("select * from (" . $sql . ") as t limit " . $index . "," . $size);
- return $list;
- }
- }
|