| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- namespace app\api\model\plus\chat;
- use app\common\model\plus\chat\Chat as ChatModel;
- use app\api\model\supplier\Supplier as SupplierModel;
- use app\api\model\user\User as UserModel;
- use app\api\model\settings\Setting as SettingModel;
- /**
- * 客服消息模型类
- */
- class Chat extends ChatModel
- {
- /**
- * 隐藏字段
- */
- protected $hidden = [
- 'app_id',
- 'identify',
- 'status',
- 'update_time'
- ];
- //消息列表
- public function myList($user)
- {
- $ChatRelation = new ChatRelation();
- $list = $ChatRelation->with(['user', 'supplier.logo'])
- ->where(['user_id' => $user['user_id']])
- ->order('update_time desc')
- ->select();
- foreach ($list as $key => &$value) {
- $where['supplier_user_id'] = $value['supplier_user_id'];
- $where['user_id'] = $user['user_id'];
- $where['status'] = 0;
- $value['num'] = $this->where($where)->count();
- unset($where['status']);
- $value['newMessage'] = $this->where($where)->order('chat_id desc')->field('content,create_time,type')->find();
- }
- return $list;
- }
- //消息列表
- public function mySupplierList($supplier_user_id)
- {
- $ChatRelation = new ChatRelation();
- $list = $ChatRelation->with(['user', 'supplier.logo'])
- ->where(['supplier_user_id' => $supplier_user_id])
- ->order('update_time desc')
- ->select();
- foreach ($list as $key => &$value) {
- $where['supplier_user_id'] = $supplier_user_id;
- $where['user_id'] = $value['user_id'];
- $where['status'] = 0;
- $value['num'] = $this->where($where)->count();
- unset($where['status']);
- $value['newMessage'] = $this->where($where)->order('chat_id desc')->field('content,create_time,type')->find();
- }
- return $list;
- }
- //获取聊天信息
- public function getMessage($data, $user)
- {
- $where['supplier_user_id'] = $data['supplier_user_id'];
- $where['user_id'] = $user['user_id'];
- $list = $this->where($where)
- ->with(['user', 'supplier.logo'])
- ->order('chat_id desc')
- ->paginate($data);
- $this->where($where)->update(['status' => 1]);
- return $list;
- }
- //获取消息条数
- public function mCount($user)
- {
- $num = 0;
- if ($user) {
- $where[] = ['user_id', '=', $user['user_id']];
- $where[] = ['status', '=', 0];
- $where[] = ['msg_type', '=', 1];
- $num = $this->where($where)->count();
- }
- return $num;
- }
- //获取用户信息
- public function getInfo($data)
- {
- $userInfo = UserModel::detail($data['user_id']);
- $supplierInfo = SupplierModel::detail($data['shop_supplier_id'], ['logo']);
- $data['avatarUrl'] = $userInfo['avatarUrl'];
- $data['logo'] = $supplierInfo['logo']['file_path'];
- $data['url'] = SettingModel::getSysConfig()['url'];
- return $data;
- }
- public static function getNoReadCount($supplier_user_id){
- return self::where('supplier_user_id', '=', $supplier_user_id)
- ->where('status', '=', 0)
- ->where('msg_type', '=', 2)
- ->count();
- }
- }
|