初始化代码

This commit is contained in:
2025-12-22 14:32:54 +08:00
parent e27ab90d9f
commit d02b31a8b9
1459 changed files with 240973 additions and 0 deletions

59
app/im/model/ImChart.php Normal file
View File

@@ -0,0 +1,59 @@
<?php
namespace app\im\model;
use app\BaseModel;
use think\facade\Db;
class ImChart extends BaseModel
{
protected $name = 'longbing_card_chart';
//创建
public function createChart($data)
{
$data['create_time'] = time();
return $this->createRow($data);
}
//更新
public function updateChart($filter ,$data)
{
$filter['deleted'] = 0;
return $this->updateRow($filter ,$data);
}
//获取列表
public function listChart($filter)
{
$filter['deleted'] = 0;
$result = $this->where($filter)->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//获取总数
public function listChartCount($filter)
{
$filter['deleted'] = 0;
return $this->where($filter)->count();
}
//获取详情
public function getChart($filter)
{
$filter['deleted'] = 0;
return $this->getRow($filter);
}
//删除
public function delChart($filter)
{
$filter['deleted'] = 0;
return $this->delRow($filter);
}
//真删除
public function destoryChart($filter)
{
return $this->destoryRow($filter);
}
}

122
app/im/model/ImChat.php Normal file
View File

@@ -0,0 +1,122 @@
<?php
namespace app\im\model;
use app\BaseModel;
use think\facade\Db;
class ImChat extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_chat';
//获取用户信息
// public function customer()
// {
// return $this->hasOne('ImCustomer' ,)
// }
//创建
public function createChat($data)
{
$data['create_time'] = time();
$result = $this->save($data);
if(!empty($result)) $result = $this->id;
return $result;
}
//更新
public function updateChat($filter ,$data)
{
$filter['deleted'] = 0;
return $this->updateRow($filter ,$data);
}
//获取列表
public function listChat($user_id , $uniacid,$page_config)
{
$start_row = 0;
$page_count = 10;
if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count'];
if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count;
$result = $this->where(function ($query) use ($user_id) {
$query->whereOr(['target_id' => $user_id , 'user_id' => $user_id]) ;
})
->where(['deleted' => 0 ,'uniacid' => $uniacid])
->order('update_time', 'desc')
->limit($start_row,$page_count)
->select();
// $result = $this->where(['deleted' => 0])
// ->where(function($query) use($user_id) {
// $query->
// })
// ->limit($start_row,$page_count)
// ->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//获取总数
public function listChatCount($user_id , $uniacid)
{
return $this->where(function ($query) use ($user_id) {
$query->whereOr(['target_id' => $user_id , 'user_id' => $user_id]) ;
})
->where(['deleted' => 0 ,'uniacid' => $uniacid])
->count();
}
//获取所有
public function listChatAll($user_id ,$uniacid)
{
$result = $this->where(function ($query) use ($user_id) {
$query->whereOr(['target_id' => $user_id] , ['user_id' => $user_id]) ;
})
->where(['deleted' => 0 ,'uniacid' => $uniacid])
->field('id as chat_id,user_id,target_id')
->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//获取单个Chat
public function getChat($user_id ,$target_id ,$uniacid)
{
//查询条件1
$where = [
['user_id' , '=' ,$user_id],
['target_id' ,'=' , $target_id],
];
$whereOr = [
['user_id' , '=' ,$target_id],
['target_id' ,'=' , $user_id],
];
$result = $this->where(function ($query) use($where, $whereOr){
$query->whereOr([$where,$whereOr]);
})
->where(['uniacid' => $uniacid ,'deleted' => 0])
->field('id as chat_id,user_id,target_id')
->find();
return $result;
}
//通过id获取chat
public function getChatById($chat_id)
{
$result = $this->where(['id' => $chat_id])->find();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//删除
public function delChat($filter)
{
$filter['deleted'] = 0;
return $this->updateChat($filter ,['deleted' => 0]);
}
//真删除
public function destroyChat($filter)
{
return $this->destroyRow($filter);
}
}

24
app/im/model/ImClient.php Normal file
View File

@@ -0,0 +1,24 @@
<?php
namespace app\im\model;
use app\BaseModel;
class ImClient extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_collection';
//是否是客户
public function isCustomer($user_id ,$customer_id ,$uniacid)
{
$filter = array(
'uid' => $customer_id,
'to_uid' => $user_id,
'uniacid' => $uniacid,
'intention' => 1
);
$result = $this->where($filter)->count();
return !empty($result);
}
}

124
app/im/model/ImMessage.php Normal file
View File

@@ -0,0 +1,124 @@
<?php
namespace app\im\model;
use app\BaseModel;
use think\facade\Db;
class ImMessage extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_message';
//创建聊天消息
public function createMessage($data)
{
$data['create_time'] = time();
return $this->createRow($data);
}
//修改聊天消息
public function updateMessage($filter ,$data)
{
$filter['deleted'] = 0;
return $this->updateRow($filter ,$data);
}
//标记已读消息
public function readMessage($filter)
{
$filter['status'] = 1;
return $this->updateMessage($filter ,['status' => 2]);
}
//撤销消息
public function recallMessage($filter)
{
$filter['deleted'] = 0;
return $this->updateMessage($filter, ['status' => 3]);
}
//查询聊天消息列表
public function listMessage($filter ,$page_config)
{
$start_row = 0;
$page_count = 10;
if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count'];
if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count;
// $filter['deleted'] = 0;
$result = $this->where($filter)
->where(['deleted'=>0])
->order('id desc')
->limit($start_row ,$page_count)
->select();
if(!empty($result))
{
$result = $result->toArray();
$result = array_reverse($result);
}
return $result;
}
//查询聊天消息列表
public function listMessageV2($filter ,$page_config,$dis)
{
$start_row = 0;
$page_count = 10;
if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count'];
if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count;
// $filter['deleted'] = 0;
$result = $this->where($filter)
->whereOr(function ($query) use ($dis){
$query->where($dis);
})
->order('id desc')
->limit($start_row ,$page_count)
->select();
if(!empty($result))
{
$result = $result->toArray();
$result = array_reverse($result);
}
return $result;
}
//获取聊天消息总量
public function listMessageCount($filter)
{
$filter['deleted'] = 0;
$count = $this->where($filter)->count();
return $count;
}
//删除聊天消息
public function delMessage($filter)
{
$filter['deleted'] = 0;
return $this->deleteRow($filter);
}
//查询最后一条消息
public function lastMessage($filter)
{
$filter['deleted'] = 0;
$result = $this->where($filter)->order('create_time', 'desc')->field(['create_time' ,'content' ,'message_type'])->find();
return $result;
}
//获取未读消息列表
public function listNotReadMessage($filter)
{
$filter['deleted'] = 0;
$filter['status'] = 1;
$result = $this->where($filter)
->order('create_time' ,'asc')
->select();
if(!empty($result)) $result = $result->toArray();
$this->updateMessage($filter, ['status' =>2]);
return $result;
}
//真删除
public function destroyMessage($filter)
{
return $this->destoryRow($filter);
}
}

View File

@@ -0,0 +1,11 @@
<?php
namespace app\im\model;
use app\BaseModel;
class ImMessageFriend extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_message_friend';
}

View File

@@ -0,0 +1,82 @@
<?php
namespace app\im\model;
use app\BaseModel;
class ImMyReply extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_quick_reply';
public function searchContentAttr($query, $value, $data)
{
$query->where('content','like', '%' . $value . '%');
}
public function searchUserIdAttr($query, $value, $data)
{
$query->where('user_id','=', $value);
}
public function searchUniacidAttr($query, $value, $data)
{
$query->where('uniacid','=', $value);
}
public function type()
{
return $this->hasOne('ImReplyType' ,'id' ,'type');
}
//创建话术
public function createReply($data)
{
$data['create_time'] = time();
$result = $this->save($data);
return !empty($result);
}
//更新话术
public function updateReply($filter ,$data)
{
$data['update_time'] = time();
$result = $this->where($filter)->update($data);
return !empty($result);
}
//获取话术列表
public function listReply($filter)
{
$result = $this->where($filter)
->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//获取话术列表(分页)
public function listReplys($filter ,$page_config)
{
$result = $this->with(['type'])
->withSearch(['content' ,'user_id' ,'uniacid'] ,$filter)
->order('top' ,'desc')
->page($page_config['page'] ,$page_config['page_count'])
->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//获取话术总数
public function getReplyCount($filter)
{
$result = $this->withSearch(['content' ,'user_id' ,'uniacid'] ,$filter)->count();
if(empty($result)) $result = 0;
return $result;
}
//删除话术
public function deleteReply($filter)
{
return $this->destoryReply($filter);
}
//删除(真删除)
public function destoryReply($filter)
{
$result = $this->where($filter)->delete();
return !empty($result);
}
}

View File

@@ -0,0 +1,74 @@
<?php
namespace app\im\model;
use app\BaseModel;
class ImReplyType extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_reply_type';
public function searchTitleAttr($query, $value, $data)
{
$query->where('title','like', '%' . $value . '%');
}
public function searchUniacidAttr($query, $value, $data)
{
$query->where('uniacid','=', $value );
}
public function reply()
{
return $this->belongsTo('ImMyReply' ,'id' ,'type');
}
//创建话术
public function createType($data)
{
$data['create_time'] = time();
return $this->save($data);
}
//更新话术
public function updateType($filter ,$data)
{
$data['update_time'] = time();
$result = $this->where($filter)->update($data);
return !empty($result);
}
//获取话术列表
public function listType($filter ,$page_config = ['page' => 1 ,'page_count' => 20])
{
$result = $this->withSearch(['title' ,'uniacid'] ,$filter)
->page($page_config['page'] ,$page_config['page_count'])
->order('top desc, id desc')
->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//获取话术列表
public function getTypeCount($filter)
{
$result = $this->withSearch(['title' ,'uniacid'] ,$filter)
->count();
if(empty($result)) $result = 0;
return $result;
}
//删除话术
public function delType($filter)
{
$result = $this->where($filter)->delete();
return !empty($result);
}
public function listAllType($filter)
{
$result = $this->where($filter)
->order('top' ,'desc')
->select();
if(empty($result)) $result = $result->toArray();
return $result;
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace app\im\model;
use app\BaseModel;
class ImReplyType extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_reply_type';
//创建话术
public function createReply($data)
{
return $this->createRow($data);
}
//更新话术
public function updateReply($filter ,$data)
{
return $this->updateRow($filter ,$data);
}
//获取话术列表
public function listReply($filter)
{
$filter['deleted'] = 0;
$result = $this->where($filter)
->select();
if(!empty($result)) $result = $result->toArray();
return $result;
}
//删除话术
public function delReply($filter)
{
return $this->deleteRow($filter);
}
}

19
app/im/model/ImUser.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
namespace app\im\model;
use app\BaseModel;
class ImUser extends BaseModel
{
//定义表名称
protected $name = 'longbing_card_user';
//获取用户信息
public function getUser($filter)
{
$filter['deleted'] = 0;
$result = $this->where($filter)->find();
if(!empty($result)) $result = $result->toArray();
return $result;
}
}