| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- <?php
- // +----------------------------------------------------------------------
- // | Description: 通讯录
- // +----------------------------------------------------------------------
- // | Author: yyk
- // +----------------------------------------------------------------------
-
- namespace app\oa\controller;
-
- use app\admin\controller\ApiCommon;
- use think\Hook;
- use think\Request;
- use think\Db;
- use app\crm\traits\StarTrait;
-
- use app\oa\logic\UserLogic;
- class Addresslist extends ApiCommon
- {
- use StarTrait;
- /**
- * 用于判断权限
- * @permission 无限制
- * @allow 登录用户可访问
- * @other 其他根据系统设置
- **/
- public function _initialize()
- {
- $action = [
- 'permission'=>[''],
- 'allow'=>[
- 'userstar',
- 'querylist',
- 'starlist'
- ]
- ];
- Hook::listen('check_auth',$action);
- $request = Request::instance();
- $a = strtolower($request->action());
- if (!in_array($a, $action['permission'])) {
- parent::_initialize();
- }
- }
-
-
- /**
- * 通讯录列表
- * @return mixed
- */
- public function queryList(){
- $param = $this->param;
- $userInfo = $this->userInfo;
- $param['user_id']=$userInfo['id'];
- $userLogic=new UserLogic();
- $data=$userLogic->getDataList($param);
- return resultArray(['data' => $data]);
-
- }
-
- /**
- * 关注的通讯录列表
- * @return mixed
- */
- public function starList(){
- $param = $this->param;
- $userInfo = $this->userInfo;
- $param['user_id']=$userInfo['id'];
- $userLogic=new UserLogic();
- $data=$userLogic->queryList($param);
- return resultArray(['data' => $data]);
- }
- /**
- * 设置关注
- *
- * @return \think\response\Json
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- public function userStar()
- {
- $userInfo = $this->userInfo;
- $userId = $userInfo['id'];
- $targetId = $this->param['target_id'];
- $type = $this->param['type'];
-
- if (empty($userId) || empty($targetId) || empty($type)) return resultArray(['error' => '缺少必要参数!']);
-
- if (!$this->setStar($type, $userId, $targetId)) {
- return resultArray(['error' => '设置关注失败!']);
- }
-
- return resultArray(['data' => '设置关注成功!']);
- }
-
-
- //通讯录列表
- // public function index()
- // {
- // $param = $this->param;
- // $where = array();
- // $where['user.status'] = 1;
- // if ($param['search']) {
- // $where['user.realname'] = array('like', '%'.$param['search'].'%');
- // }
- // if ($param['type'] == 1) {
- // $datalist = Db::name('AdminUser')
- // ->where($where)
- // ->alias('user')
- // ->join('AdminStructure structure', 'structure.id = user.structure_id', 'LEFT')
- // ->field('user.id,user.realname,user.thumb_img,user.post,user.structure_id,structure.name as structure_name,user.username,user.mobile,user.sex,user.email,user.status')
- // ->select();
- // foreach( $datalist as $k=>$v){
- // $datalist[$k]['thumb_img'] = $v['thumb_img'] ? getFullPath( $v['thumb_img'] ) : '';
- // }
- // $newarray = $this->groupByInitials($datalist,'realname');
- // return resultArray(['data' => $newarray]);
- // } else {
- // $structureList = Db::name('AdminStructure')->select();
- // foreach($structureList as $key=>$value){
- // $where['user.structure_id'] = $value['id'];
- // $userList = Db::name('AdminUser')
- // ->where($where)
- // ->alias('user')
- // ->field('user.id,user.realname,user.username,user.thumb_img,user.post,user.structure_id,user.mobile,user.sex,user.email')
- // ->order('realname asc')
- // ->select();
- // foreach ($userList as $k=>$v){
- // $userList[$k]['thumb_img'] = $v['thumb_img'] ? getFullPath( $v['thumb_img'] ) : '';
- // }
- // $structureList[$key]['userList'] = $userList;
- // $structureList[$key]['structure_name'] = $value['name'];
- // }
- // return resultArray(['data' => $structureList]);
- // }
- // }
- //
- // /**
- // * 二维数组根据首字母分组排序
- // * @param array $data 二维数组
- // * @param string $targetKey 首字母的键名
- // * @return array 根据首字母关联的二维数组
- // */
- // public function groupByInitials(array $data, $targetKey = 'name')
- // {
- // $data = array_map(function ($item) use ($targetKey) {
- // return array_merge($item, [
- // 'initials' => $this->getInitials($item[$targetKey]),
- // ]);
- // }, $data);
- // $data = $this->sortInitials($data);
- // return $data;
- // }
- //
- // /**
- // * 按字母排序
- // * @param array $data
- // * @return array
- // */
- // public function sortInitials(array $data)
- // {
- // $sortData = [];
- // foreach ($data as $key => $value) {
- // $sortData[$value['initials']][] = $value;
- // }
- // ksort($sortData);
- // return $sortData;
- // }
- //
- // /**
- // * 获取首字母
- // * @param string $str 汉字字符串
- // * @return string 首字母
- // */
- // public function getInitials($str)
- // {
- // if (empty($str)) {return '';}
- // $fchar = ord($str{0});
- // if ($fchar >= ord('A') && $fchar <= ord('z')) {
- // return strtoupper($str{0});
- // }
- //
- // $s1 = iconv('UTF-8', 'gb2312', $str);
- // $s2 = iconv('gb2312', 'UTF-8', $s1);
- // $s = $s2 == $str ? $s1 : $str;
- // $asc = ord($s{0}) * 256 + ord($s{1}) - 65536;
- // if($asc == -9300){
- // return 'G';
- // }
- // if ($asc >= -20319 && $asc <= -20284) {
- // return 'A';
- // }
- //
- // if ($asc >= -20283 && $asc <= -19776) {
- // return 'B';
- // }
- //
- // if ($asc >= -19775 && $asc <= -19219) {
- // return 'C';
- // }
- //
- // if ($asc >= -19218 && $asc <= -18711) {
- // return 'D';
- // }
- //
- // if ($asc >= -18710 && $asc <= -18527) {
- // return 'E';
- // }
- //
- // if ($asc >= -18526 && $asc <= -18240) {
- // return 'F';
- // }
- //
- // if ($asc >= -18239 && $asc <= -17923) {
- // return 'G';
- // }
- //
- // if ($asc >= -17922 && $asc <= -17418) {
- // return 'H';
- // }
- //
- // if ($asc >= -17417 && $asc <= -16475) {
- // return 'J';
- // }
- //
- // if ($asc >= -16474 && $asc <= -16213) {
- // return 'K';
- // }
- //
- // if ($asc >= -16212 && $asc <= -15641) {
- // return 'L';
- // }
- //
- // if ($asc >= -15640 && $asc <= -15166) {
- // return 'M';
- // }
- //
- // if ($asc >= -15165 && $asc <= -14923) {
- // return 'N';
- // }
- //
- // if ($asc >= -14922 && $asc <= -14915) {
- // return 'O';
- // }
- //
- // if ($asc >= -14914 && $asc <= -14631) {
- // return 'P';
- // }
- //
- // if ($asc >= -14630 && $asc <= -14150) {
- // return 'Q';
- // }
- //
- // if ($asc >= -14149 && $asc <= -14091) {
- // return 'R';
- // }
- //
- // if ($asc >= -14090 && $asc <= -13319) {
- // return 'S';
- // }
- //
- // if ($asc >= -13318 && $asc <= -12839) {
- // return 'T';
- // }
- //
- // if ($asc >= -12838 && $asc <= -12557) {
- // return 'W';
- // }
- //
- // if ($asc >= -12556 && $asc <= -11848) {
- // return 'X';
- // }
- //
- // if ($asc >= -11847 && $asc <= -11056) {
- // return 'Y';
- // }
- //
- // if ($asc >= -11055 && $asc <= -10247) {
- // return 'Z';
- // }
- // return '#';
- // }
- }
|