diff --git a/market/controllers/api/institution/Organization.php b/market/controllers/api/institution/Organization.php new file mode 100644 index 00000000..fa2683c1 --- /dev/null +++ b/market/controllers/api/institution/Organization.php @@ -0,0 +1,230 @@ +load->model('market/Market_sylive_organization_model', 'mdSyliveOrganization'); + } + + /** + * Notes:获取机构 + * Created on: 2022/9/16 11:11 + * Created by: dengbw + */ + public function index_get() + { + $unOrganizationType = intval($this->input_param('unOrganizationType')); + $activityId = intval($this->input_param('activityId')); + $where['status>='] = 0; + $unOrganizationType && $where['organizationType<>'] = $unOrganizationType; + $sort_order = 'sortNumber asc,organizationId desc'; + if ($_SESSION['brandName'] || $activityId) {//只找该品牌机构 + if ($activityId) { + $this->load->model('market/Market_sylive_activity_model', 'mdSyliveActivity'); + $re_act = $this->mdSyliveActivity->get(['activityId' => $activityId]); + $re_org['organizationId'] = intval($re_act['organizationId']); + } else { + $re_org = $this->mdSyliveOrganization->get(['organizationName' => $_SESSION['brandName'], 'parentId' => 0, 'status' => 0]); + } + if ($re_org['organizationId']) { + $organizationIds[] = $re_org['organizationId']; + $res_all = $this->mdSyliveOrganization->select($where, 'organizationType asc,parentId asc', 0, 0, 'organizationId,parentId'); + foreach ($res_all as $k => $v) { + if (in_array($v['parentId'], $organizationIds)) { + $organizationIds[] = $v['organizationId']; + } + } + $str_organizationIds = implode(',', array_unique($organizationIds)); + $where["organizationId in({$str_organizationIds})"] = null; + } else { + $where['organizationId'] = -1; + } + } + $res = $this->mdSyliveOrganization->select($where, $sort_order); + foreach ($res as $k => $v) { + $res[$k]['organizationId'] = intval($v['organizationId']); + $res[$k]['parentId'] = intval($v['parentId']); + $res[$k]['sortNumber'] = intval($v['sortNumber']); + $city = $logo = []; + if ($v['countyId']) { + $city[] = $v['provinceId']; + $city[] = $v['cityId']; + $city[] = $v['countyId']; + } + $res[$k]['city'] = $city; + if ($v['logo']) { + $logo[] = ['uid' => 1, 'fileUrl' => $v['logo'], 'url' => build_qiniu_image_url($v['logo']), 'status' => 'done']; + } + $res[$k]['logo'] = $logo; + } + $this->return_response_list($res); + } + + /** + * Notes:查找上级机构 + * Created on: 2022/10/24 15:24 + * Created by: dengbw + */ + public function parent_get() + { + $list = []; + if ($_SESSION['brandName']) {//只找该品牌机构 + $re_org = $this->mdSyliveOrganization->get(['organizationName' => $_SESSION['brandName'], 'parentId' => 0, 'status>=' => 0]); + if ($re_org['organizationId']) { + $list[] = ['organizationId' => intval($re_org['organizationId']), 'organizationName' => $re_org['organizationName']]; + } + } else { + $parentId = intval($this->input_param('parentId')); + $sort_order = 'sortNumber asc,organizationId desc'; + $where['status>='] = 0; + $where['parentId'] = $parentId; + $res = $this->mdSyliveOrganization->select($where, $sort_order, 0, 0, 'organizationId,organizationName'); + foreach ($res as $k => $v) { + $list[] = ['organizationId' => intval($v['organizationId']), 'organizationName' => $v['organizationName']]; + } + } + $this->return_response_list($list); + } + + /** + * Notes:添加机构 + * Created on: 2022/9/19 16:43 + * Created by: dengbw + */ + public function index_post() + { + $parentId = intval($this->input_param('parentId')); + $organizationName = $this->input_param('organizationName'); + $organizationFullName = $this->input_param('organizationFullName'); + $organizationType = $this->input_param('organizationType'); + $sortNumber = intval($this->input_param('sortNumber')); + $comments = $this->input_param('comments'); + $city = $this->input_param('city'); + $logo = $this->input_param('logo'); + if ($_SESSION['brandName'] && !$parentId) {//品牌机构必顺选择上级机构 + $this->return_json('请选择上级机构'); + } + if (!$organizationName) { + $this->return_json('请输入机构名称'); + } + if (!$organizationType) { + $this->return_json('请选择机构类型'); + } + if ($parentId) {//判断上级机构是不是员工类型 + $re_org = $this->mdSyliveOrganization->get(['organizationId' => $parentId]); + if ($re_org['organizationType'] == 4) { + $this->return_json('选择的上级机构不能保存,请重新选择'); + } + } + !$comments && $comments = ''; + $logo = $logo[0]['fileUrl'] ? $logo[0]['fileUrl'] : ''; + $addDate = ['parentId' => $parentId, 'organizationName' => $organizationName, 'organizationFullName' => $organizationFullName + , 'organizationType' => $organizationType, 'sortNumber' => $sortNumber, 'comments' => $comments, 'logo' => $logo + , 'createTime' => date('Y-m-d H:i:s')]; + if ($city) { + $addDate['provinceId'] = intval($city[0]); + $addDate['cityId'] = intval($city[1]); + $addDate['countyId'] = intval($city[2]); + } + $id = $this->mdSyliveOrganization->add($addDate); + if (!$id) { + $this->return_json('添加机构失败'); + } + $this->return_response(); + } + + /** + * Notes:修改机构 + * Created on: 2022/9/19 17:29 + * Created by: dengbw + */ + public function index_put() + { + $organizationId = intval($this->input_param('organizationId')); + $parentId = intval($this->input_param('parentId')); + $organizationName = $this->input_param('organizationName'); + $organizationFullName = $this->input_param('organizationFullName'); + $organizationType = $this->input_param('organizationType'); + $sortNumber = intval($this->input_param('sortNumber')); + $comments = $this->input_param('comments'); + $city = $this->input_param('city'); + $logo = $this->input_param('logo'); + if ($_SESSION['brandName']) {//品牌机构 + $re_org = $this->mdSyliveOrganization->get(['organizationId' => $organizationId]); + if ($re_org && $re_org['parentId'] == 0) {//一级品牌不可修改字段 + $parentId = 0; + $organizationType = 1; + $organizationName = $re_org['organizationName']; + } + } + if (!$organizationId) { + $this->return_json('参数错误'); + } + if (!$organizationName) { + $this->return_json('请输入机构名称'); + } + if (!$organizationType) { + $this->return_json('请选择机构类型'); + } + if ($parentId) {//判断上级机构是不是员工类型 + $re_org = $this->mdSyliveOrganization->get(['organizationId' => $parentId]); + if ($re_org['organizationType'] == 4) { + $this->return_json('选择的上级机构不能保存,请重新选择'); + } + } + !$comments && $comments = ''; + $logo = $logo ? $logo[0]['fileUrl'] : ''; + $upDate = ['parentId' => $parentId, 'organizationName' => $organizationName, 'organizationFullName' => $organizationFullName + , 'organizationType' => $organizationType, 'sortNumber' => $sortNumber, 'comments' => $comments, 'logo' => $logo]; + if ($city) { + $upDate['provinceId'] = intval($city[0]); + $upDate['cityId'] = intval($city[1]); + $upDate['countyId'] = intval($city[2]); + } + $this->mdSyliveOrganization->update($upDate, ['organizationId' => $organizationId]); + $this->return_response(); + } + + /** + * Notes:删除机构 + * Created on: 2022/9/19 11:08 + * Created by: dengbw + * @param null $organizationId + */ + public function index_delete($organizationId = null) + { + $organizationId = intval($organizationId); + if (!$organizationId) { + $this->return_json('参数错误'); + } + $this->mdSyliveOrganization->update(['status' => -1], ['organizationId' => $organizationId]); + $this->return_response(); + } + + /** + * Notes:机构详情 + * Created on: 2022/12/09 10:37 + * Created by: dengbw + * @param null $organizationId + */ + public function info_get($organizationId = null) + { + $organizationId = intval($organizationId); + if (!$organizationId) { + $this->return_json('参数错误'); + } + $re = $this->mdSyliveOrganization->get(['organizationId' => $organizationId]); + $this->return_response($re); + } + +} \ No newline at end of file diff --git a/market/controllers/api/institution/OrganizationUser.php b/market/controllers/api/institution/OrganizationUser.php new file mode 100644 index 00000000..77e784d5 --- /dev/null +++ b/market/controllers/api/institution/OrganizationUser.php @@ -0,0 +1,307 @@ +load->model('market/Market_sylive_user_model', 'mdSyliveUser'); + $this->load->model('market/Market_sylive_organization_model', 'mdSyliveOrganization'); + } + + /** + * Notes:用户管理列表 + * Created on: 2022/9/20 14:48 + * Created by: dengbw + */ + public function page_get() + { + $page = $this->input_param('page'); + $limit = $this->input_param('limit'); + $uname = $this->input_param('uname'); + $nickname = $this->input_param('nickname'); + $sort = $this->input_param('sort'); + $order = $this->input_param('order'); + $organizationId = intval($this->input_param('organizationId')); + !$page && $page = 1; + !$limit && $limit = 10; + $sort_order = 'userId desc'; + if ($sort && $order) { + $sort_order = $sort . ' ' . $order; + } + $list = []; + $where['status>='] = 0; + $organizationId && $where['organizationId'] = $organizationId; + $uname && $where['uname'] = $uname; + $nickname && $where['nickname'] = $nickname; + $this->load->model('market/Market_sylive_organization_model', 'mdSyliveOrganization'); + $organizationType = 0; + $re_org = $this->mdSyliveOrganization->get(['organizationId' => $organizationId]); + $re_org && $organizationType = $re_org['organizationType']; + $roleName = $this->mdSyliveUser->roleAry($organizationType); + $count = $this->mdSyliveUser->count($where); + if ($count) { + $res = $this->mdSyliveUser->select($where, $sort_order, $page, $limit); + foreach ($res as $v) { + $status = intval($v['status']); + $createTime = $v['createTime'] != '0000-00-00 00:00:00' ? $v['createTime'] : ''; + $list[] = [ + 'userId' => $v['userId'], 'uname' => $v['uname'], 'nickname' => $v['nickname'], 'mobile' => $v['mobile'] + , 'roleName' => $roleName, 'organizationId' => $organizationId, 'status' => $status, 'createTime' => $createTime]; + } + } + $date = ['list' => $list, 'count' => $count]; + $this->return_response_list($date); + } + + /** + * Notes:获取机构用户 + * Created on: 2022/11/29 11:08 + * Created by: dengbw + */ + public function list_post() + { + $this->load->model('market/Market_sylive_groups_user_model', 'mdSyliveGroupsUser'); + $this->load->model('market/Market_sylive_groups_model', 'mdSyliveGroups'); + $activityId = intval($this->input_param('activityId')); + $organizationIds = $this->input_param('organizationIds'); + $keyword = trim($this->input_param('keyword')); + $where = ['status>=' => 0, 'organizationId>' => 0]; + if ($keyword) { + $this->load->model('market/Market_sylive_activity_model', 'mdSyliveActivity'); + $where["(uname LIKE '%{$keyword}%' OR mobile LIKE '%{$keyword}%')"] = null; + $re = $this->mdSyliveActivity->get(['activityId' => $activityId]); + if ($re['organizationId']) {//找当前顶级机构用户 + $where["topOrgId"] = $re['organizationId']; + } + } else if ($organizationIds) { + $organizationIds = implode(',', $organizationIds); + $where["organizationId in({$organizationIds}) or bizId in({$organizationIds})"] = null; + } + $res = $this->mdSyliveUser->select($where, 'userId desc', 0, 0, 'userId,uname,mobile,organizationId,bizId'); + if ($keyword && $res) { + $organizationIds = []; + foreach ($res as $v) { + $v['bizId'] && $organizationIds[] = $v['bizId']; + $v['organizationId'] && $organizationIds[] = $v['organizationId']; + } + $organizationIds && $organizationIds = implode(',', $organizationIds); + } + $map_organization = []; + if ($organizationIds) { + $map_organization = $this->mdSyliveOrganization->map('organizationId', 'organizationName,organizationType' + , ["organizationId in({$organizationIds})" => null]); + } + $list = []; + foreach ($res as $v) { + $uname = $v['uname'] ? $v['uname'] : '-'; + $organization = $map_organization[$v['bizId']]; + if (!$organization) { + $organization = $map_organization[$v['organizationId']]; + } + $organizationName = $organization['organizationName'] ? $organization['organizationName'] : '-'; + $type = 2; + if ($v['bizId']) { + $type = $v['bizId'] == $v['organizationId'] ? 1 : 0; + } + $groups = 0; + $re_gro_use = $this->mdSyliveGroupsUser->get(['activityId' => $activityId, 'userId' => $v['userId'] + , 'status>=' => 0], 'groupsId,bizId'); + if ($re_gro_use) { + $groups = 1; + $groupsId = $re_gro_use['bizId'] ? $re_gro_use['bizId'] : $re_gro_use['groupsId']; + $re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsId' => $groupsId + , 'status>=' => 0], 'groupsName'); + $re_gro['groupsName'] && $organizationName .= "(分组-{$re_gro['groupsName']})"; + } + $list[] = ['userId' => $v['userId'], 'uname' => $uname, 'mobile' => $v['mobile'], 'type' => $type + , 'groups' => $groups, 'organizationName' => $organizationName]; + } + $this->return_response_list($list); + } + + /** + * Notes:添加用户 + * Created on: 2022/9/21 16:46 + * Created by: dengbw + */ + public function index_post() + { + $mobile = $this->input_param('mobile'); + $organizationId = intval($this->input_param('organizationId')); + $uname = $this->input_param('uname'); + if (!$mobile) { + $this->return_json('请输入手机号'); + } + if (!$organizationId) { + $this->return_json('请选择所属机构'); + } + if (!$uname) { + $this->return_json('请输入姓名'); + } + $topOrgId = $this->getTopOrgId($organizationId); + $re = $this->mdSyliveUser->get(['mobile' => $mobile, 'topOrgId' => $topOrgId]); + if ($re && $re['status'] != -1) { + if ($re['teamId'] || $re['organizationId']) { + $this->return_json('手机号已存在当前机构'); + } + } + $bizId = 0; + $re_org = $this->mdSyliveOrganization->get(['organizationId' => $organizationId]); + if ($re_org) { + if ($re_org['organizationType'] == 4 && $re_org['parentId']) { + $bizId = $re_org['parentId']; + } else if ($re_org['organizationType'] == 3) { + $bizId = $re_org['organizationId']; + } + } + $addDate = ['topOrgId' => $topOrgId, 'organizationId' => $organizationId, 'uname' => $uname, + 'bizId' => $bizId, 'status' => 0, 'teamId' => 0]; + if ($re['userId']) { + $this->mdSyliveUser->update($addDate, ['userId' => $re['userId']]); + $this->return_response([], '绑定用户成功'); + } else { + $addDate['mobile'] = $mobile; + $addDate['createTime'] = date('Y-m-d H:i:s'); + $id = $this->mdSyliveUser->add($addDate); + if (!$id) { + $this->return_json('添加用户失败'); + } + $this->return_response(); + } + } + + /** + * Notes:修改用户 + * Created on: 2022/9/21 14:48 + * Created by: dengbw + */ + public function index_put() + { + $userId = intval($this->input_param('userId')); + $organizationId = intval($this->input_param('organizationId')); + $uname = $this->input_param('uname'); + if (!$userId) { + $this->return_json('参数错误'); + } + if (!$organizationId) { + $this->return_json('请选择所属机构'); + } + if (!$uname) { + $this->return_json('请输入姓名'); + } + $re = $this->mdSyliveUser->get(['userId' => $userId]); + if (!$re) { + $this->return_json('无此用户'); + } + $topOrgId = $re['topOrgId']; + if ($re['organizationId'] != $organizationId) { + $topOrgId = $this->getTopOrgId($organizationId); + if ($re['topOrgId'] && $re['topOrgId'] != $topOrgId) { + $this->return_json('不可修改顶级机构'); + } + } + $bizId = 0; + $re_org = $this->mdSyliveOrganization->get(['organizationId' => $organizationId]); + if ($re_org) { + if ($re_org['organizationType'] == 4 && $re_org['parentId']) { + $bizId = $re_org['parentId']; + } else if ($re_org['organizationType'] == 3) { + $bizId = $re_org['organizationId']; + } + } + $upDate = ['topOrgId' => $topOrgId, 'organizationId' => $organizationId, 'bizId' => $bizId, 'teamId' => 0, 'uname' => $uname]; + $this->mdSyliveUser->update($upDate, ['userId' => $userId]); + $this->return_response(); + } + + /** + * Notes:修改状态 + * Created on: 2022/9/21 16:10 + * Created by: dengbw + */ + public function status_put() + { + $userId = $this->input_param('userId'); + $status = $this->input_param('status'); + if (!$userId) { + $this->return_json('参数错误'); + } + $this->mdSyliveUser->update(['status' => $status], ['userId' => $userId]); + $this->return_response(); + } + + /** + * Notes:删除用户 + * Created on: 2022/9/21 16:10 + * Created by: dengbw + * @param null $userId + */ + public function index_delete($userId = null) + { + if (!$userId) { + $this->return_json('参数错误'); + } + $this->mdSyliveUser->update(['status' => -1], ['userId' => $userId]); + $this->return_response(); + } + + /** + * Notes:栓验字段 + * Created on: 2022/9/21 15:52 + * Created by: dengbw + */ + public function existence_get() + { + $field = $this->input_param('field'); + $value = $this->input_param('value'); + $organizationId = intval($this->input_param('organizationId')); + if ($organizationId) { + $topOrgId = $this->getTopOrgId($organizationId); + $where = [$field => $value, 'topOrgId' => $topOrgId, 'status>=' => 0]; + $re = $this->mdSyliveUser->get($where); + if ($re) { + if ($field == 'mobile') { + if ($re['teamId'] || $re['organizationId']) { + $this->return_json('已存在', 0); + } + } else { + $this->return_json('已存在', 0); + } + } + } + $this->return_json('不存在', 1); + } + + /** + * Notes:获取顶级机构id + * Created on: 2022/12/8 14:39 + * Created by: dengbw + * @param $organizationId + * @param $topOrgId + * @return mixed + */ + private function getTopOrgId($organizationId, $topOrgId = 0) + { + $re = $this->mdSyliveOrganization->get(['organizationId' => $organizationId], 'organizationId,parentId'); + if (!$re) { + return $topOrgId; + } else { + $topOrgId = $re['organizationId']; + if ($re['parentId']) { + return $this->getTopOrgId($re['parentId'], $topOrgId); + } else { + return $topOrgId; + } + } + } + +} \ No newline at end of file diff --git a/market/controllers/api/institution/Team.php b/market/controllers/api/institution/Team.php new file mode 100644 index 00000000..d365bceb --- /dev/null +++ b/market/controllers/api/institution/Team.php @@ -0,0 +1,164 @@ +load->model('market/Market_sylive_team_model', 'mdSyliveTeam'); + } + + /** + * Notes:获取团队 + * Created on: 2022/9/16 11:11 + * Created by: dengbw + */ + public function index_get() + { + $unTeamType = $this->input_param('unTeamType'); + $where['status>='] = 0; + $unTeamType && $where['teamType<>'] = $unTeamType; + $sort_order = 'sortNumber asc,teamId desc'; + if ($_SESSION['brandName']) {//只找该品牌机构 + $this->load->model('market/Market_sylive_organization_model', 'mdSyliveOrganization'); + $re_org = $this->mdSyliveOrganization->get(['organizationName' => $_SESSION['brandName'], 'parentId' => 0, 'status' => 0]); + if ($re_org['organizationId']) { + $res_team = $this->mdSyliveTeam->select(['status>=' => 0, 'organizationId' => $re_org['organizationId']], 'parentId asc,sortNumber asc', 0, 0, 'teamId'); + if ($res_team) { + $teamIds = []; + foreach ($res_team as $k => $v) { + $teamIds[] = $v['teamId']; + } + $res_all = $this->mdSyliveTeam->select($where, 'parentId asc,sortNumber asc', 0, 0, 'teamId,parentId'); + foreach ($res_all as $k => $v) { + if (in_array($v['parentId'], $teamIds)) { + $teamIds[] = $v['teamId']; + } + } + $str_teamIds = implode(',', array_unique($teamIds)); + $where["teamId in({$str_teamIds})"] = null; + } else { + $where['teamId'] = -1; + } + } else { + $where['teamId'] = -1; + } + } + $res = $this->mdSyliveTeam->select($where, $sort_order); + foreach ($res as $k => $v) { + $res[$k]['teamId'] = intval($v['teamId']); + $res[$k]['parentId'] = intval($v['parentId']); + $res[$k]['sortNumber'] = intval($v['sortNumber']); + $res[$k]['organizationId'] = $v['organizationId'] ? intval($v['organizationId']) : ''; + $city = $logo = []; + if ($v['cityId']) { + $city[] = $v['provinceId']; + $city[] = $v['cityId']; + } + $res[$k]['city'] = $city; + if ($v['logo']) { + $logo[] = ['uid' => 1, 'fileUrl' => $v['logo'], 'url' => build_qiniu_image_url($v['logo']), 'status' => 'done']; + } + $res[$k]['logo'] = $logo; + } + $this->return_response_list($res); + } + + /** + * Notes:添加团队 + * Created on: 2022/9/19 16:43 + * Created by: dengbw + */ + public function index_post() + { + $parentId = intval($this->input_param('parentId')); + $teamName = $this->input_param('teamName'); + $sortNumber = intval($this->input_param('sortNumber')); + $comments = $this->input_param('comments'); + $city = $this->input_param('city'); + $teamType = $this->input_param('teamType'); + $organizationId = intval($this->input_param('organizationId')); + $logo = $this->input_param('logo'); + if (!$teamName) { + $this->return_json('请输入团队名称'); + } + if (!$parentId && !$organizationId) { + $this->return_json('请选择所属团队'); + } + !$comments && $comments = ''; + $logo = $logo ? $logo[0]['fileUrl'] : ''; + $addDate = ['parentId' => $parentId, 'teamName' => $teamName, 'sortNumber' => $sortNumber, 'comments' => $comments + , 'teamType' => $teamType, 'organizationId' => $organizationId, 'logo' => $logo, 'createTime' => date('Y-m-d H:i:s')]; + if ($city) { + $addDate['provinceId'] = intval($city[0]); + $addDate['cityId'] = intval($city[1]); + } + $id = $this->mdSyliveTeam->add($addDate); + if (!$id) { + $this->return_json('添加团队失败'); + } + $this->return_response(); + } + + /** + * Notes:修改团队 + * Created on: 2022/9/19 17:29 + * Created by: dengbw + */ + public function index_put() + { + $teamId = intval($this->input_param('teamId')); + $parentId = intval($this->input_param('parentId')); + $teamName = $this->input_param('teamName'); + $sortNumber = intval($this->input_param('sortNumber')); + $comments = $this->input_param('comments'); + $city = $this->input_param('city'); + $teamType = $this->input_param('teamType'); + $organizationId = intval($this->input_param('organizationId')); + $logo = $this->input_param('logo'); + if (!$teamId) { + $this->return_json('参数错误'); + } + if (!$teamName) { + $this->return_json('请输入团队名称'); + } + if (!$parentId && !$organizationId) { + $this->return_json('请选择所属团队'); + } + !$comments && $comments = ''; + $logo = $logo ? $logo[0]['fileUrl'] : ''; + $upDate = ['parentId' => $parentId, 'teamName' => $teamName, 'sortNumber' => $sortNumber, 'comments' => $comments + , 'teamType' => $teamType, 'organizationId' => $organizationId, 'logo' => $logo]; + if ($city) { + $upDate['provinceId'] = intval($city[0]); + $upDate['cityId'] = intval($city[1]); + } + $this->mdSyliveTeam->update($upDate, ['teamId' => $teamId]); + $this->return_response(); + } + + /** + * Notes:删除团队 + * Created on: 2022/9/19 11:08 + * Created by: dengbw + * @param null $teamId + */ + public function index_delete($teamId = null) + { + $teamId = intval($teamId); + if (!$teamId) { + $this->return_json('参数错误'); + } + $this->mdSyliveTeam->update(['status' => -1], ['teamId' => $teamId]); + $this->return_response(); + } + +} \ No newline at end of file diff --git a/market/controllers/api/institution/TeamUser.php b/market/controllers/api/institution/TeamUser.php new file mode 100644 index 00000000..0b35bf50 --- /dev/null +++ b/market/controllers/api/institution/TeamUser.php @@ -0,0 +1,244 @@ +load->model('market/Market_sylive_user_model', 'mdSyliveUser'); + $this->load->model('market/Market_sylive_team_model', 'mdSyliveTeam'); + } + + /** + * Notes:用户管理列表 + * Created on: 2022/9/20 14:48 + * Created by: dengbw + */ + public function page_get() + { + $page = $this->input_param('page'); + $limit = $this->input_param('limit'); + $uname = $this->input_param('uname'); + $nickname = $this->input_param('nickname'); + $sort = $this->input_param('sort'); + $order = $this->input_param('order'); + $teamId = intval($this->input_param('teamId')); + !$page && $page = 1; + !$limit && $limit = 10; + $sort_order = 'userId desc'; + if ($sort && $order) { + $sort_order = $sort . ' ' . $order; + } + $list = []; + $where['status>='] = 0; + $teamId && $where['teamId'] = $teamId; + $uname && $where['uname'] = $uname; + $nickname && $where['nickname'] = $nickname; + $count = $this->mdSyliveUser->count($where); + if ($count) { + $res = $this->mdSyliveUser->select($where, $sort_order, $page, $limit); + foreach ($res as $v) { + $status = intval($v['status']); + $createTime = $v['createTime'] != '0000-00-00 00:00:00' ? $v['createTime'] : ''; + $list[] = [ + 'userId' => $v['userId'], 'uname' => $v['uname'], 'nickname' => $v['nickname'], 'mobile' => $v['mobile'] + , 'teamId' => $teamId, 'status' => $status, 'createTime' => $createTime]; + } + } + $date = ['list' => $list, 'count' => $count]; + $this->return_response_list($date); + } + + /** + * Notes:获取团队用户 + * Created on: 2022/11/30 15:37 + * Created by: dengbw + */ + public function list_post() + { + $this->load->model('market/Market_sylive_groups_user_model', 'mdSyliveGroupsUser'); + $this->load->model('market/Market_sylive_groups_model', 'mdSyliveGroups'); + $activityId = intval($this->input_param('activityId')); + $teamIds = $this->input_param('teamIds'); + $keyword = trim($this->input_param('keyword')); + $where = ['status>=' => 0, 'teamId>' => 0]; + if ($keyword) { + $where["(uname LIKE '%{$keyword}%' OR mobile LIKE '%{$keyword}%')"] = null; + } else if ($teamIds) { + $teamIds_str = implode(',', $teamIds); + $res_tea = $this->mdSyliveTeam->select(["parentId in({$teamIds_str})" => null], 'teamId desc', 0, 0, 'teamId'); + foreach ($res_tea as $v) { + $teamIds[] = $v['teamId']; + } + $teamIds = implode(',', $teamIds); + $where["teamId in({$teamIds})"] = null; + } + $res = $this->mdSyliveUser->select($where, 'userId desc', 0, 0, 'userId,uname,mobile,teamId'); + if ($keyword && $res) { + $teamIds = []; + foreach ($res as $v) { + $v['teamId'] && $teamIds[] = $v['teamId']; + } + $teamIds && $teamIds = implode(',', $teamIds); + } + $map_team = $map_team2 = []; + if ($teamIds) { + $map_team = $this->mdSyliveTeam->map('teamId', 'teamName,teamType', ["teamId in({$teamIds})" => null]); + } + $list = []; + foreach ($res as $v) { + $uname = $v['uname'] ? $v['uname'] : '-'; + $team = $map_team[$v['teamId']]; + $teamName = $team['teamName'] ? $team['teamName'] : '-'; + $type = 2; + if ($team['teamType'] == 2) { + $type = 1; + } else if ($team['teamType'] == 3) { + $type = 0; + } + $groups = 0; + $re_gro_use = $this->mdSyliveGroupsUser->get(['activityId' => $activityId, 'userId' => $v['userId'] + , 'status>=' => 0], 'groupsId,bizId'); + if ($re_gro_use) { + $groups = 1; + $groupsId = $re_gro_use['bizId'] ? $re_gro_use['bizId'] : $re_gro_use['groupsId']; + $re_gro = $this->mdSyliveGroups->get(['activityId' => $activityId, 'groupsId' => $groupsId + , 'status>=' => 0], 'groupsName'); + $re_gro['groupsName'] && $teamName .= "(分组-{$re_gro['groupsName']})"; + } + $list[] = ['userId' => $v['userId'], 'uname' => $uname, 'mobile' => $v['mobile'], 'type' => $type + , 'groups' => $groups, 'teamName' => $teamName]; + } + $this->return_response_list($list); + } + + /** + * Notes:添加用户 + * Created on: 2022/9/21 16:46 + * Created by: dengbw + */ + public function index_post() + { + $mobile = $this->input_param('mobile'); + $teamId = intval($this->input_param('teamId')); + $uname = $this->input_param('uname'); + if (!$mobile) { + $this->return_json('请输入手机号'); + } + if (!$teamId) { + $this->return_json('请选择所属团队'); + } + if (!$uname) { + $this->return_json('请输入姓名'); + } + $re = $this->mdSyliveUser->get(['mobile' => $mobile]); + if ($re && $re['status'] != -1) { + if ($re['teamId'] || $re['organizationId']) { + $this->return_json('手机号已存在'); + } + } + $addDate = ['teamId' => $teamId, 'uname' => $uname, 'status' => 0, 'organizationId' => 0]; + if ($re['userId']) { + $this->mdSyliveUser->update($addDate, ['userId' => $re['userId']]); + $this->return_response([], '绑定用户成功'); + } else { + $addDate['mobile'] = $mobile; + $addDate['createTime'] = date('Y-m-d H:i:s'); + $id = $this->mdSyliveUser->add($addDate); + if (!$id) { + $this->return_json('添加用户失败'); + } + $this->return_response(); + } + } + + /** + * Notes:修改用户 + * Created on: 2022/9/21 14:48 + * Created by: dengbw + */ + public function index_put() + { + $userId = intval($this->input_param('userId')); + $teamId = intval($this->input_param('teamId')); + $uname = $this->input_param('uname'); + if (!$userId) { + $this->return_json('参数错误'); + } + if (!$teamId) { + $this->return_json('请选择所属团队'); + } + if (!$uname) { + $this->return_json('请输入姓名'); + } + $upDate = ['teamId' => $teamId, 'uname' => $uname]; + $this->mdSyliveUser->update($upDate, ['userId' => $userId]); + $this->return_response(); + } + + /** + * Notes:修改状态 + * Created on: 2022/9/21 16:10 + * Created by: dengbw + */ + public function status_put() + { + $userId = $this->input_param('userId'); + $status = $this->input_param('status'); + if (!$userId) { + $this->return_json('参数错误'); + } + $this->mdSyliveUser->update(['status' => $status], ['userId' => $userId]); + $this->return_response(); + } + + /** + * Notes:删除用户 + * Created on: 2022/9/21 16:10 + * Created by: dengbw + * @param null $userId + */ + public function index_delete($userId = null) + { + if (!$userId) { + $this->return_json('参数错误'); + } + $this->mdSyliveUser->update(['status' => -1], ['userId' => $userId]); + $this->return_response(); + } + + /** + * Notes:栓验字段 + * Created on: 2022/9/21 15:52 + * Created by: dengbw + */ + public function existence_get() + { + $field = $this->input_param('field'); + $value = $this->input_param('value'); + $id = $this->input_param('id'); + if (!$id) { + $where = [$field => $value, 'status<>' => -1]; + $re = $this->mdSyliveUser->get($where); + if ($re) { + if ($field == 'mobile') { + if ($re['teamId'] || $re['organizationId']) { + $this->return_json('已存在', 0); + } + } else { + $this->return_json('已存在', 0); + } + } + } + $this->return_json('不存在', 1); + } + +} \ No newline at end of file diff --git a/market/controllers/api/sylive/GroupsStatistics.php b/market/controllers/api/sylive/GroupsStatistics.php index 8be56096..e74c5344 100644 --- a/market/controllers/api/sylive/GroupsStatistics.php +++ b/market/controllers/api/sylive/GroupsStatistics.php @@ -849,6 +849,8 @@ class GroupsStatistics extends BaseController $sort = $params['sort']; $order = $params['order']; $itemId = intval($params['itemId']);//商品 + $insiders = intval($params['insiders']);//内部人员 + $groupsId = intval($params['groupsId']);//分组id !$page && $page = 1; !$limit && $limit = 10; $list = []; @@ -859,15 +861,37 @@ class GroupsStatistics extends BaseController !$sort && $sort = 'browse'; !$order && $order = 'desc'; $where = ['activityId' => $activityId, 'userId>' => 0]; + if ($insiders == 1) { + $where["userId in(select userId from lc_market_sylive_user where organizationId>0)"] = null; + } else if ($insiders == 2) { + $where["userId not in(select userId from lc_market_sylive_user where organizationId>0)"] = null; + } + if ($groupsId) { + $re_gro = $this->mdSyliveGroups->get(['groupsId' => $groupsId], 'groupsId,groupsLevel,parentId'); + if ($re_gro && $re_gro['parentId']) { + if ($re_gro['groupsLevel']) { + $where['levelId' . $re_gro['groupsLevel']] = $re_gro['groupsId']; + } else { + $where['bizId'] = $re_gro['groupsId']; + } + } + } if ($itemId) { $where['itemId'] = $itemId; + $count = $this->mdSyliveOrder->count($where, 'userId'); } else { $where['kpi'] = $sort; + $count = $this->mdSyliveActivityKpidata->count($where, 'userId'); } - $count = $this->mdSyliveActivityKpidata->count($where, 'userId'); if ($count) { - $res = $this->mdSyliveActivityKpidata->select_groupby('userId', $where, "createTime {$order},id desc" - , $page, $limit, "userId,cfUserId,levelId1,levelId2,levelId3,bizId"); + $fields = 'userId,cfUserId,levelId1,levelId2,levelId3,bizId'; + if ($itemId) { + $res = $this->mdSyliveOrder->select_groupby('userId', $where, "createTime {$order},id desc" + , $page, $limit, $fields); + } else { + $res = $this->mdSyliveActivityKpidata->select_groupby('userId', $where, "createTime {$order},id desc" + , $page, $limit, $fields); + } $groups_ids = $userIds = []; foreach ($res as $v) { if ($v['levelId1'] && !in_array($v['levelId1'], $groups_ids)) { @@ -893,7 +917,7 @@ class GroupsStatistics extends BaseController $map_groups = $this->mdSyliveGroups->map('groupsId', 'groupsName', ["groupsId in({$str_groups})" => null, 'activityId' => $activityId, 'status>=' => 0]); $str_user = $userIds ? implode(',', $userIds) : -1; - $map_user = $this->mdSyliveUser->map('userId', 'createTime,uname,nickname,organizationId,teamId', ["userId in({$str_user})" => null]); + $map_user = $this->mdSyliveUser->map('userId', 'createTime,uname,nickname,organizationId', ["userId in({$str_user})" => null]); foreach ($res as $v) { $userId = intval($v['userId']); $cfUserId = intval($v['cfUserId']); @@ -910,7 +934,7 @@ class GroupsStatistics extends BaseController $nickname = $user['nickname']; $createTime = strtotime($user['createTime']); $createTime = date('Y-m-d H:i', $createTime); - if ($user['organizationId'] || $user['teamId']) { + if ($user['organizationId']) { $insiders = '是'; } }