1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

Closed #123 检测组织列表

This commit is contained in:
Hai Liang Wang 2018-10-25 15:21:40 +08:00
parent 77643c7ef8
commit a2ef70e7cb
4 changed files with 405 additions and 384 deletions

View File

@ -39,7 +39,7 @@ public class ApplicationController extends Handler{
view.addObject("istenantshare",super.isEnabletneant());
if(super.isEnabletneant()) {
//多租户启用 非超级管理员 一定要选择租户才能进入界面
if(!user.isSuperuser() && !StringUtils.isBlank(user.getOrgid()) && super.isTenantconsole() && MainContext.SYSTEM_ORGI.equals(user.getOrgi())) {
if(!user.isSuperuser() && StringUtils.isNotBlank(user.getOrgid()) && super.isTenantconsole() && MainContext.SYSTEM_ORGI.equals(user.getOrgi())) {
view = request(super.createRequestPageTempletResponse("redirect:/apps/tenant/index"));
}
if(StringUtils.isBlank(user.getOrgid())) {

View File

@ -16,23 +16,16 @@
*/
package com.chatopera.cc.app.handler;
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
import static org.elasticsearch.index.query.QueryBuilders.termsQuery;
import java.text.ParseException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import com.chatopera.cc.app.basic.MainContext;
import com.chatopera.cc.app.basic.MainUtils;
import com.chatopera.cc.app.basic.Viewport;
import com.chatopera.cc.exception.CSKefuException;
import com.chatopera.cc.app.cache.CacheHelper;
import com.chatopera.cc.app.persistence.repository.TenantRepository;
import com.chatopera.cc.app.handler.api.rest.QueryParams;
import com.chatopera.cc.app.model.SystemConfig;
import com.chatopera.cc.app.model.Tenant;
import com.chatopera.cc.app.model.User;
import com.chatopera.cc.app.persistence.repository.TenantRepository;
import com.chatopera.cc.exception.CSKefuException;
import org.apache.commons.lang.StringUtils;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
@ -47,7 +40,12 @@ import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;
import com.chatopera.cc.app.model.SystemConfig;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
import static org.elasticsearch.index.query.QueryBuilders.termsQuery;
@Controller
@ -55,59 +53,61 @@ import com.chatopera.cc.app.model.SystemConfig;
public class Handler {
private static final Logger logger = LoggerFactory.getLogger(Handler.class);
@Autowired
private TenantRepository tenantRes;
public final static int PAGE_SIZE_BG = 1 ;
public final static int PAGE_SIZE_TW = 20 ;
public final static int PAGE_SIZE_FV = 50 ;
public final static int PAGE_SIZE_HA = 100 ;
private long starttime = System.currentTimeMillis();
public User getUser(HttpServletRequest request){
User user = (User) request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME) ;
if(user==null){
String authorization = request.getHeader("authorization") ;
if(StringUtils.isBlank(authorization) && request.getCookies()!=null){
for(Cookie cookie : request.getCookies()){
if(cookie.getName().equals("authorization")){
authorization = cookie.getValue() ; break ;
}
}
}
if(!StringUtils.isBlank(authorization)){
user = (User) CacheHelper.getApiUserCacheBean().getCacheObject(authorization, MainContext.SYSTEM_ORGI) ;
}
if(user==null){
user = new User();
user.setId(MainUtils.getContextID(request.getSession().getId())) ;
user.setUsername(MainContext.GUEST_USER+"_"+ MainUtils.genIDByKey(user.getId())) ;
user.setOrgi(MainContext.SYSTEM_ORGI);
user.setSessionid(user.getId()) ;
}
}else{
user.setSessionid(user.getId()) ;
}
return user ;
}
@Autowired
private TenantRepository tenantRes;
public final static int PAGE_SIZE_BG = 1;
public final static int PAGE_SIZE_TW = 20;
public final static int PAGE_SIZE_FV = 50;
public final static int PAGE_SIZE_HA = 100;
private long starttime = System.currentTimeMillis();
public User getUser(HttpServletRequest request) {
User user = (User) request.getSession(true).getAttribute(MainContext.USER_SESSION_NAME);
if (user == null) {
String authorization = request.getHeader("authorization");
if (StringUtils.isBlank(authorization) && request.getCookies() != null) {
for (Cookie cookie : request.getCookies()) {
if (cookie.getName().equals("authorization")) {
authorization = cookie.getValue();
break;
}
}
}
if (StringUtils.isNotBlank(authorization)) {
user = (User) CacheHelper.getApiUserCacheBean().getCacheObject(authorization, MainContext.SYSTEM_ORGI);
}
if (user == null) {
user = new User();
user.setId(MainUtils.getContextID(request.getSession().getId()));
user.setUsername(MainContext.GUEST_USER + "_" + MainUtils.genIDByKey(user.getId()));
user.setOrgi(MainContext.SYSTEM_ORGI);
user.setSessionid(user.getId());
}
} else {
user.setSessionid(user.getId());
}
return user;
}
/**
* 构建ElasticSearch基于部门查询的Filter
*
* @param request
* @param boolQueryBuilder
* @return
* @throws CSKefuException
*/
public boolean esOrganFilter(final HttpServletRequest request, final BoolQueryBuilder boolQueryBuilder) throws CSKefuException {
public boolean esOrganFilter(final HttpServletRequest request, final BoolQueryBuilder boolQueryBuilder) throws CSKefuException {
// 组合部门条件
User u = getUser(request);
if( u == null){
if (u == null) {
throw new CSKefuException("[esOrganFilter] 未能获取到登录用户。");
} else if(u.isSuperuser()){
} else if (u.isSuperuser()) {
// 超级管理员, 查看任何数据
return true;
} else if(u.getMyorgans().size() == 0){
} else if (u.getMyorgans().size() == 0) {
// 用户没有被分配到部门返回空数据
return false;
} else {
@ -117,339 +117,348 @@ public class Handler {
return true;
}
}
/**
*
* @param queryBuilder
* @param request
*/
public BoolQueryBuilder search(BoolQueryBuilder queryBuilder , ModelMap map, HttpServletRequest request){
queryBuilder.must(termQuery("orgi", this.getOrgi(request))) ;
//搜索框
if(!StringUtils.isBlank(request.getParameter("q"))) {
String q = request.getParameter("q") ;
q = q.replaceAll("(OR|AND|NOT|:|\\(|\\))", "") ;
if(!StringUtils.isBlank(q)){
queryBuilder.must(QueryBuilders.boolQuery().must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND))) ;
map.put("q", q) ;
}
}
//筛选表单
if(!StringUtils.isBlank(request.getParameter("filterid"))) {
queryBuilder.must(termQuery("filterid", request.getParameter("filterid"))) ;
map.put("filterid", request.getParameter("filterid")) ;
}
//批次
if(!StringUtils.isBlank(request.getParameter("batid"))) {
queryBuilder.must(termQuery("batid", request.getParameter("batid"))) ;
map.put("batid", request.getParameter("batid")) ;
}
//活动
if(!StringUtils.isBlank(request.getParameter("actid"))) {
queryBuilder.must(termQuery("actid", request.getParameter("actid"))) ;
map.put("actid", request.getParameter("actid")) ;
}
//业务状态
if(!StringUtils.isBlank(request.getParameter("workstatus"))) {
queryBuilder.must(termQuery("workstatus", request.getParameter("workstatus"))) ;
map.put("workstatus", request.getParameter("workstatus")) ;
}
//拨打状态
if(!StringUtils.isBlank(request.getParameter("callstatus"))) {
queryBuilder.must(termQuery("callstatus", request.getParameter("callstatus"))) ;
map.put("callstatus", request.getParameter("callstatus")) ;
}
//预约状态
if(!StringUtils.isBlank(request.getParameter("apstatus"))) {
queryBuilder.must(termQuery("apstatus", request.getParameter("apstatus"))) ;
map.put("apstatus", request.getParameter("apstatus")) ;
}
RangeQueryBuilder rangeQuery = null ;
//拨打时间区间查询
if(!StringUtils.isBlank(request.getParameter("callbegin")) || !StringUtils.isBlank(request.getParameter("callend"))){
if(!StringUtils.isBlank(request.getParameter("callbegin"))) {
try {
rangeQuery = QueryBuilders.rangeQuery("calltime").from(MainUtils.dateFormate.parse(request.getParameter("callbegin")).getTime()) ;
} catch (ParseException e) {
e.printStackTrace();
}
}
if(!StringUtils.isBlank(request.getParameter("callend")) ) {
try {
if(rangeQuery == null) {
rangeQuery = QueryBuilders.rangeQuery("calltime").to(MainUtils.dateFormate.parse(request.getParameter("callend")).getTime()) ;
}else {
rangeQuery.to(MainUtils.dateFormate.parse(request.getParameter("callend")).getTime()) ;
}
} catch (ParseException e) {
e.printStackTrace();
}
}
map.put("callbegin", request.getParameter("callbegin")) ;
map.put("callend", request.getParameter("callend")) ;
}
//预约时间区间查询
if(!StringUtils.isBlank(request.getParameter("apbegin")) || !StringUtils.isBlank(request.getParameter("apend"))){
if(!StringUtils.isBlank(request.getParameter("apbegin"))) {
try {
rangeQuery = QueryBuilders.rangeQuery("aptime").from(MainUtils.dateFormate.parse(request.getParameter("apbegin")).getTime()) ;
} catch (ParseException e) {
e.printStackTrace();
}
}
if(!StringUtils.isBlank(request.getParameter("apend")) ) {
try {
if(rangeQuery == null) {
rangeQuery = QueryBuilders.rangeQuery("aptime").to(MainUtils.dateFormate.parse(request.getParameter("apend")).getTime()) ;
}else {
rangeQuery.to(MainUtils.dateFormate.parse(request.getParameter("apend")).getTime()) ;
}
} catch (ParseException e) {
e.printStackTrace();
}
}
map.put("apbegin", request.getParameter("apbegin")) ;
map.put("apend", request.getParameter("apend")) ;
}
if(rangeQuery!=null) {
queryBuilder.must(rangeQuery) ;
}
//外呼任务id
if(!StringUtils.isBlank(request.getParameter("taskid"))) {
queryBuilder.must(termQuery("taskid", request.getParameter("taskid"))) ;
map.put("taskid", request.getParameter("taskid")) ;
}
//坐席
if(!StringUtils.isBlank(request.getParameter("owneruser"))) {
queryBuilder.must(termQuery("owneruser", request.getParameter("owneruser"))) ;
map.put("owneruser", request.getParameter("owneruser")) ;
}
//部门
if(!StringUtils.isBlank(request.getParameter("ownerdept"))) {
queryBuilder.must(termQuery("ownerdept", request.getParameter("ownerdept"))) ;
map.put("ownerdept", request.getParameter("ownerdept")) ;
}
//分配状态
if(!StringUtils.isBlank(request.getParameter("status"))) {
queryBuilder.must(termQuery("status", request.getParameter("status"))) ;
map.put("status", request.getParameter("status")) ;
}
return queryBuilder ;
}
public User getIMUser(HttpServletRequest request , String userid , String nickname){
User user = (User) request.getSession(true).getAttribute(MainContext.IM_USER_SESSION_NAME) ;
if(user==null){
user = new User();
if(!StringUtils.isBlank(userid)){
user.setId(userid) ;
}else{
user.setId(MainUtils.getContextID(request.getSession().getId())) ;
}
if(!StringUtils.isBlank(nickname)){
user.setUsername(nickname);
}else{
user.setUsername(MainContext.GUEST_USER+"_"+ MainUtils.genIDByKey(user.getId())) ;
}
user.setSessionid(user.getId()) ;
}else{
user.setSessionid(MainUtils.getContextID(request.getSession().getId())) ;
}
return user ;
}
public void setUser(HttpServletRequest request , User user){
request.getSession(true).removeAttribute(MainContext.USER_SESSION_NAME) ;
request.getSession(true).setAttribute(MainContext.USER_SESSION_NAME , user) ;
}
/**
* @param queryBuilder
* @param request
*/
public BoolQueryBuilder search(BoolQueryBuilder queryBuilder, ModelMap map, HttpServletRequest request) {
queryBuilder.must(termQuery("orgi", this.getOrgi(request)));
/**
* 创建系统监控的 模板页面
* @param page
* @return
*/
public Viewport createAdminTempletResponse(String page) {
return new Viewport("/admin/include/tpl" , page);
}
/**
* 创建系统监控的 模板页面
* @param page
* @return
*/
public Viewport createAppsTempletResponse(String page) {
return new Viewport("/apps/include/tpl" , page);
}
/**
* 创建系统监控的 模板页面
* @param page
* @return
*/
public Viewport createEntIMTempletResponse(String page) {
return new Viewport("/apps/entim/include/tpl" , page);
}
public Viewport createRequestPageTempletResponse(String page) {
return new Viewport(page);
}
/**
*
* @param data
* @return
*/
public ModelAndView request(Viewport data) {
return new ModelAndView(data.getTemplet()!=null ? data.getTemplet(): data.getPage() , "data", data) ;
//搜索框
if (StringUtils.isNotBlank(request.getParameter("q"))) {
String q = request.getParameter("q");
q = q.replaceAll("(OR|AND|NOT|:|\\(|\\))", "");
if (StringUtils.isNotBlank(q)) {
queryBuilder.must(QueryBuilders.boolQuery().must(new QueryStringQueryBuilder(q).defaultOperator(Operator.AND)));
map.put("q", q);
}
}
//筛选表单
if (StringUtils.isNotBlank(request.getParameter("filterid"))) {
queryBuilder.must(termQuery("filterid", request.getParameter("filterid")));
map.put("filterid", request.getParameter("filterid"));
}
//批次
if (StringUtils.isNotBlank(request.getParameter("batid"))) {
queryBuilder.must(termQuery("batid", request.getParameter("batid")));
map.put("batid", request.getParameter("batid"));
}
//活动
if (StringUtils.isNotBlank(request.getParameter("actid"))) {
queryBuilder.must(termQuery("actid", request.getParameter("actid")));
map.put("actid", request.getParameter("actid"));
}
//业务状态
if (StringUtils.isNotBlank(request.getParameter("workstatus"))) {
queryBuilder.must(termQuery("workstatus", request.getParameter("workstatus")));
map.put("workstatus", request.getParameter("workstatus"));
}
//拨打状态
if (StringUtils.isNotBlank(request.getParameter("callstatus"))) {
queryBuilder.must(termQuery("callstatus", request.getParameter("callstatus")));
map.put("callstatus", request.getParameter("callstatus"));
}
//预约状态
if (StringUtils.isNotBlank(request.getParameter("apstatus"))) {
queryBuilder.must(termQuery("apstatus", request.getParameter("apstatus")));
map.put("apstatus", request.getParameter("apstatus"));
}
RangeQueryBuilder rangeQuery = null;
//拨打时间区间查询
if (StringUtils.isNotBlank(request.getParameter("callbegin")) || StringUtils.isNotBlank(request.getParameter("callend"))) {
if (StringUtils.isNotBlank(request.getParameter("callbegin"))) {
try {
rangeQuery = QueryBuilders.rangeQuery("calltime").from(MainUtils.dateFormate.parse(request.getParameter("callbegin")).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
if (StringUtils.isNotBlank(request.getParameter("callend"))) {
try {
if (rangeQuery == null) {
rangeQuery = QueryBuilders.rangeQuery("calltime").to(MainUtils.dateFormate.parse(request.getParameter("callend")).getTime());
} else {
rangeQuery.to(MainUtils.dateFormate.parse(request.getParameter("callend")).getTime());
}
} catch (ParseException e) {
e.printStackTrace();
}
}
map.put("callbegin", request.getParameter("callbegin"));
map.put("callend", request.getParameter("callend"));
}
//预约时间区间查询
if (StringUtils.isNotBlank(request.getParameter("apbegin")) || StringUtils.isNotBlank(request.getParameter("apend"))) {
if (StringUtils.isNotBlank(request.getParameter("apbegin"))) {
try {
rangeQuery = QueryBuilders.rangeQuery("aptime").from(MainUtils.dateFormate.parse(request.getParameter("apbegin")).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
if (StringUtils.isNotBlank(request.getParameter("apend"))) {
try {
if (rangeQuery == null) {
rangeQuery = QueryBuilders.rangeQuery("aptime").to(MainUtils.dateFormate.parse(request.getParameter("apend")).getTime());
} else {
rangeQuery.to(MainUtils.dateFormate.parse(request.getParameter("apend")).getTime());
}
} catch (ParseException e) {
e.printStackTrace();
}
}
map.put("apbegin", request.getParameter("apbegin"));
map.put("apend", request.getParameter("apend"));
}
if (rangeQuery != null) {
queryBuilder.must(rangeQuery);
}
//外呼任务id
if (StringUtils.isNotBlank(request.getParameter("taskid"))) {
queryBuilder.must(termQuery("taskid", request.getParameter("taskid")));
map.put("taskid", request.getParameter("taskid"));
}
//坐席
if (StringUtils.isNotBlank(request.getParameter("owneruser"))) {
queryBuilder.must(termQuery("owneruser", request.getParameter("owneruser")));
map.put("owneruser", request.getParameter("owneruser"));
}
//部门
if (StringUtils.isNotBlank(request.getParameter("ownerdept"))) {
queryBuilder.must(termQuery("ownerdept", request.getParameter("ownerdept")));
map.put("ownerdept", request.getParameter("ownerdept"));
}
//分配状态
if (StringUtils.isNotBlank(request.getParameter("status"))) {
queryBuilder.must(termQuery("status", request.getParameter("status")));
map.put("status", request.getParameter("status"));
}
return queryBuilder;
}
public int getP(HttpServletRequest request) {
int page = 0;
String p = request.getParameter("p") ;
if(!StringUtils.isBlank(p) && p.matches("[\\d]*")){
page = Integer.parseInt(p) ;
if(page > 0){
page = page - 1 ;
}
}
return page;
}
public int getPs(HttpServletRequest request) {
int pagesize = PAGE_SIZE_TW;
String ps = request.getParameter("ps") ;
if(!StringUtils.isBlank(ps) && ps.matches("[\\d]*")){
pagesize = Integer.parseInt(ps) ;
}
return pagesize;
}
public int getP(QueryParams params) {
int page = 0;
if(params!=null && !StringUtils.isBlank(params.getP()) && params.getP().matches("[\\d]*")){
page = Integer.parseInt(params.getP()) ;
if(page > 0){
page = page - 1 ;
}
}
return page;
}
public int getPs(QueryParams params) {
int pagesize = PAGE_SIZE_TW;
if(params != null && !StringUtils.isBlank(params.getPs()) && params.getPs().matches("[\\d]*")){
pagesize = Integer.parseInt(params.getPs()) ;
}
return pagesize;
}
public int get50Ps(HttpServletRequest request) {
int pagesize = PAGE_SIZE_FV;
String ps = request.getParameter("ps") ;
if(!StringUtils.isBlank(ps) && ps.matches("[\\d]*")){
pagesize = Integer.parseInt(ps) ;
}
return pagesize;
}
public String getOrgi(HttpServletRequest request){
return getUser(request).getOrgi();
}
/**
* 机构id
* @param request
* @return
*/
public String getOrgid(HttpServletRequest request){
User u = getUser(request);
return u.getOrgid();
}
public Tenant getTenant(HttpServletRequest request){
return tenantRes.findById(getOrgi(request));
}
/**
* 根据是否租户共享获取orgi
* @param request
* @return
*/
public String getOrgiByTenantshare(HttpServletRequest request){
SystemConfig systemConfig = MainUtils.getSystemConfig();
if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantshare()) {
User user = this.getUser(request) ;
return user.getOrgid();
}
return getOrgi(request);
}
/**
* 判断是否租户共享
* @return
*/
public boolean isTenantshare(){
SystemConfig systemConfig = MainUtils.getSystemConfig();
if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantshare()) {
return true;
}
return false;
}
/**
* 判断是否多租户
* @return
*/
public boolean isEnabletneant(){
SystemConfig systemConfig = MainUtils.getSystemConfig();
if(systemConfig!=null&&systemConfig.isEnabletneant()) {
return true;
}
return false;
}
/**
* 判断是否多租户
* @return
*/
public boolean isTenantconsole(){
SystemConfig systemConfig = MainUtils.getSystemConfig();
if(systemConfig!=null&&systemConfig.isEnabletneant()&&systemConfig.isTenantconsole()) {
return true;
}
return false;
}
public User getIMUser(HttpServletRequest request, String userid, String nickname) {
User user = (User) request.getSession(true).getAttribute(MainContext.IM_USER_SESSION_NAME);
if (user == null) {
user = new User();
if (StringUtils.isNotBlank(userid)) {
user.setId(userid);
} else {
user.setId(MainUtils.getContextID(request.getSession().getId()));
}
if (StringUtils.isNotBlank(nickname)) {
user.setUsername(nickname);
} else {
user.setUsername(MainContext.GUEST_USER + "_" + MainUtils.genIDByKey(user.getId()));
}
user.setSessionid(user.getId());
} else {
user.setSessionid(MainUtils.getContextID(request.getSession().getId()));
}
return user;
}
public long getStarttime() {
return starttime;
}
public void setUser(HttpServletRequest request, User user) {
request.getSession(true).removeAttribute(MainContext.USER_SESSION_NAME);
request.getSession(true).setAttribute(MainContext.USER_SESSION_NAME, user);
}
public void setStarttime(long starttime) {
this.starttime = starttime;
}
/**
* 创建系统监控的 模板页面
*
* @param page
* @return
*/
public Viewport createAdminTempletResponse(String page) {
return new Viewport("/admin/include/tpl", page);
}
/**
* 创建系统监控的 模板页面
*
* @param page
* @return
*/
public Viewport createAppsTempletResponse(String page) {
return new Viewport("/apps/include/tpl", page);
}
/**
* 创建系统监控的 模板页面
*
* @param page
* @return
*/
public Viewport createEntIMTempletResponse(String page) {
return new Viewport("/apps/entim/include/tpl", page);
}
public Viewport createRequestPageTempletResponse(String page) {
return new Viewport(page);
}
/**
* @param data
* @return
*/
public ModelAndView request(Viewport data) {
return new ModelAndView(data.getTemplet() != null ? data.getTemplet() : data.getPage(), "data", data);
}
public int getP(HttpServletRequest request) {
int page = 0;
String p = request.getParameter("p");
if (StringUtils.isNotBlank(p) && p.matches("[\\d]*")) {
page = Integer.parseInt(p);
if (page > 0) {
page = page - 1;
}
}
return page;
}
public int getPs(HttpServletRequest request) {
int pagesize = PAGE_SIZE_TW;
String ps = request.getParameter("ps");
if (StringUtils.isNotBlank(ps) && ps.matches("[\\d]*")) {
pagesize = Integer.parseInt(ps);
}
return pagesize;
}
public int getP(QueryParams params) {
int page = 0;
if (params != null && StringUtils.isNotBlank(params.getP()) && params.getP().matches("[\\d]*")) {
page = Integer.parseInt(params.getP());
if (page > 0) {
page = page - 1;
}
}
return page;
}
public int getPs(QueryParams params) {
int pagesize = PAGE_SIZE_TW;
if (params != null && StringUtils.isNotBlank(params.getPs()) && params.getPs().matches("[\\d]*")) {
pagesize = Integer.parseInt(params.getPs());
}
return pagesize;
}
public int get50Ps(HttpServletRequest request) {
int pagesize = PAGE_SIZE_FV;
String ps = request.getParameter("ps");
if (StringUtils.isNotBlank(ps) && ps.matches("[\\d]*")) {
pagesize = Integer.parseInt(ps);
}
return pagesize;
}
public String getOrgi(HttpServletRequest request) {
return getUser(request).getOrgi();
}
/**
* 机构id
*
* @param request
* @return
*/
public String getOrgid(HttpServletRequest request) {
User u = getUser(request);
return u.getOrgid();
}
public Tenant getTenant(HttpServletRequest request) {
return tenantRes.findById(getOrgi(request));
}
/**
* 根据是否租户共享获取orgi
*
* @param request
* @return
*/
public String getOrgiByTenantshare(HttpServletRequest request) {
SystemConfig systemConfig = MainUtils.getSystemConfig();
if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) {
User user = this.getUser(request);
return user.getOrgid();
}
return getOrgi(request);
}
/**
* 判断是否租户共享
*
* @return
*/
public boolean isTenantshare() {
SystemConfig systemConfig = MainUtils.getSystemConfig();
if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) {
return true;
}
return false;
}
/**
* 判断是否多租户
*
* @return
*/
public boolean isEnabletneant() {
SystemConfig systemConfig = MainUtils.getSystemConfig();
if (systemConfig != null && systemConfig.isEnabletneant()) {
return true;
}
return false;
}
/**
* 判断是否多租户
*
* @return
*/
public boolean isTenantconsole() {
SystemConfig systemConfig = MainUtils.getSystemConfig();
if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantconsole()) {
return true;
}
return false;
}
public long getStarttime() {
return starttime;
}
public void setStarttime(long starttime) {
this.starttime = starttime;
}
}

View File

@ -18,13 +18,13 @@ package com.chatopera.cc.app.handler;
import com.chatopera.cc.app.basic.MainContext;
import com.chatopera.cc.app.basic.MainUtils;
import com.chatopera.cc.util.Menu;
import com.chatopera.cc.app.model.*;
import com.chatopera.cc.app.cache.CacheHelper;
import com.chatopera.cc.app.model.*;
import com.chatopera.cc.app.persistence.repository.OrganRepository;
import com.chatopera.cc.app.persistence.repository.RoleAuthRepository;
import com.chatopera.cc.app.persistence.repository.UserRepository;
import com.chatopera.cc.app.persistence.repository.UserRoleRepository;
import com.chatopera.cc.util.Menu;
import com.chatopera.cc.util.OnlineUserUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
@ -78,10 +78,18 @@ public class LoginController extends Handler {
private void organs(final User user, final String organ) {
if (organ == null)
return;
if (user.inMyorgans(organ))
return;
user.getMyorgans().add(organ);
List<Organ> y = organRepository.findByOrgiAndParent(user.getOrgi(), organ);
for (Organ x : y) {
organs(user, x.getId());
try {
organs(user, x.getId());
} catch (Exception e) {
logger.error("organs", e);
}
}
}

View File

@ -515,6 +515,10 @@ public class User implements java.io.Serializable{
this.ordertype = ordertype;
}
public boolean inMyorgans(final String organ){
return myorgans.contains(organ);
}
@Transient
public HashSet<String> getMyorgans() {
return myorgans;