DeleteListController.class.php 4.95 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 18/6/1
 * Time: 16:18
 */
namespace Apicp\Controller\User;

use Com\PackageValidate;
use Common\Common\Constant;
use Common\Common\User;
use Common\Service\UserService;

class DeleteListController extends AbstractController
{
    /**
     * DeleteList
     * @author liyifei
     * @desc 被删除人员列表
     * @param Int page 当前页(默认为1)
     * @param Int limit 当前页条数(默认为10)
     * @param Int start_time 删除开始时间
     * @param Int end_time 删除结束时间
     * @param String username 姓名关键字
     * @param String mobile 手机号
     * @param String email 邮箱
     * @param Array dp_ids 部门ID
     * @param Array job_ids 岗位ID
     * @param Array role_ids 角色ID
     * @return Array
            array(
                'page' => 1, // 当前页
                'limit' => 20, // 当前页条数
                'total' => 100, // 总条数
                'list' => array(
                    'uid' => 'B4B3B9D17F00000173E870DA9A855AE7', // 人员UID
                    'username' => '张三', // 姓名
                    'dp_name' => array('技术部','后端'), // 所属部门
                    'job' => 'PHP', // 岗位
                    'role' => '梁山好汉', // 角色
                    'mobile' => '15821392414', // 手机号码
                    'email' => 'xxx@vchangyi.com', // 邮箱
                    'delete_time' => 15821392414000, // 删除时间
                )
            )
     */
    public function Index_post()
    {
        $role = $this->_login->role;

        // 验证规则
        $rules = [
            'page' => 'integer',
            'limit' => 'integer',
            'start_time' => 'integer',
            'end_time' => 'integer',
            'username' => 'max:64',
            'mobile' => 'max:64',
            'email' => 'max:64',
            'dp_ids' => 'array',
            'job_ids' => 'array',
            'role_ids' => 'array',
        ];

        // 验证数据
        $validate = new PackageValidate($rules, [], array_keys($rules));
        $postData = $validate->postData;

        // 分页默认值
        $postData['page'] = isset($postData['page']) ? $postData['page'] : Constant::PAGING_DEFAULT_PAGE;
        $postData['limit'] = isset($postData['limit']) ? $postData['limit'] : Constant::PAGING_DEFAULT_LIMIT;

        // UC查询条件
        $conds = [
            'eqMemStatus' => User::STATUS_DELETED,
            'departmentChildrenFlag' => UserService::DEPT_CHILDREN_FLAG,
        ];

        if (isset($postData['username']) && strlen($postData['username']) > 0) {
            $conds['memUsername'] = $postData['username'];
        }

        if (isset($postData['mobile']) && strlen($postData['mobile']) > 0) {
            $conds['memMobile'] = $postData['mobile'];
        }

        if (isset($postData['email']) && strlen($postData['email']) > 0) {
            $conds['memEmail'] = $postData['email'];
        }

        // 部门
        if (!empty($postData['dp_ids'])) {
            $conds['dpIdList'] = (array)$postData['dp_ids'];
        } elseif (!empty($role['readDpIdList'])) {
            $conds['dpIdList'] = $role['readDpIdList'];
        }

        if (!empty($postData['job_ids'])) {
            $conds['jobIdList'] = (array)$postData['job_ids'];
        }

        if (!empty($postData['role_ids'])) {
            $conds['roleIdList'] = (array)$postData['role_ids'];
        }

        if (!empty($postData['start_time'])) {
            $conds['memDeletedStart'] = $postData['start_time'];
        }

        if (!empty($postData['end_time'])) {
            $conds['memDeletedEnd'] = $postData['end_time'];
        }

        // UC排序规则(不传排序参数时,UC根据姓名全拼排序,如姓名是英文或中英文混合,则英文优先)
        $orderList = [
            'memDeleted' => 'DESC',
        ];

        $newUser = new User();
        $result = $newUser->listByConds($conds, $postData['page'], $postData['limit'], $orderList);

        $list = [];
        if (is_array($result['list']) && !empty($result['list'])) {
            foreach ($result['list'] as $user) {
                $list[] = [
                    'uid' => $user['memUid'],
                    'face' => $user['memFace'],
                    'username' => $user['memUsername'],
                    'sex' => $user['memGender'],
                    'mobile' => $user['memMobile'],
                    'email' => $user['memEmail'],
                    'job' => $user['memJob'],
                    'role' => $user['memRole'],
                    'dp_name' => isset($user['dpName']) ? $user['dpName'] : '',
                    'delete_time' => isset($user['memDeleted']) ? $user['memDeleted'] : 0,
                ];
            }
        }

        $this->_result = [
            'page' => $postData['page'],
            'limit' => $postData['limit'],
            'total' => $result['total'],
            'list' => $list,
        ];
    }
}