mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-01 16:38:02 +08:00
Closed https://github.com/chatopera/cosin/issues/340 fix agent not show up in skill group
This commit is contained in:
parent
0b9dbec7fd
commit
25d67d6ff5
@ -281,7 +281,7 @@ public class IMController extends Handler {
|
|||||||
/**
|
/**
|
||||||
* 查询坐席 , 缓存?
|
* 查询坐席 , 缓存?
|
||||||
*/
|
*/
|
||||||
view.addObject("agentList", OnlineUserProxy.agents(MainContext.SYSTEM_ORGI, true));
|
view.addObject("agentList", OnlineUserProxy.agents(MainContext.SYSTEM_ORGI));
|
||||||
}
|
}
|
||||||
|
|
||||||
view.addObject("traceid", userHistory.getId());
|
view.addObject("traceid", userHistory.getId());
|
||||||
|
@ -100,7 +100,7 @@ public class StatsController extends Handler {
|
|||||||
/**
|
/**
|
||||||
* 查询坐席 , 缓存?
|
* 查询坐席 , 缓存?
|
||||||
*/
|
*/
|
||||||
map.addAttribute("agentList", OnlineUserProxy.agents(super.getOrgi(request), true));
|
map.addAttribute("agentList", OnlineUserProxy.agents(super.getOrgi(request)));
|
||||||
|
|
||||||
return request(super.createAppsTempletResponse("/apps/service/stats/coment"));
|
return request(super.createAppsTempletResponse("/apps/service/stats/coment"));
|
||||||
}
|
}
|
||||||
@ -154,7 +154,7 @@ public class StatsController extends Handler {
|
|||||||
/**
|
/**
|
||||||
* 查询坐席 , 缓存?
|
* 查询坐席 , 缓存?
|
||||||
*/
|
*/
|
||||||
map.addAttribute("agentList", OnlineUserProxy.agents(super.getOrgi(request), true));
|
map.addAttribute("agentList", OnlineUserProxy.agents(super.getOrgi(request)));
|
||||||
|
|
||||||
return request(super.createAppsTempletResponse("/apps/service/stats/consult"));
|
return request(super.createAppsTempletResponse("/apps/service/stats/consult"));
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ public class OnlineUserProxy {
|
|||||||
private static AgentUserContactsRepository agentUserContactsRes;
|
private static AgentUserContactsRepository agentUserContactsRes;
|
||||||
private static ContactsRepository contactsRes;
|
private static ContactsRepository contactsRes;
|
||||||
private static UserProxy userProxy;
|
private static UserProxy userProxy;
|
||||||
|
private static OrganRepository organRes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param id
|
* @param id
|
||||||
@ -325,47 +326,36 @@ public class OnlineUserProxy {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param orgi
|
* @param orgi 一个坐席可以添加到多个组织,原租户共享功能废弃
|
||||||
* @param isJudgeShare
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static List<User> agents(String orgi, boolean isJudgeShare) {
|
public static List<User> agents(String orgi) {
|
||||||
String origOrig = orgi;
|
String origOrig = orgi;
|
||||||
boolean isShare = false;
|
|
||||||
if (isJudgeShare) {
|
List<User> agentList = getUserRes().findByOrgiAndAgentAndDatastatus(orgi, true, false);
|
||||||
SystemConfig systemConfig = MainUtils.getSystemConfig();
|
List<User> agentTempList = new ArrayList<User>();
|
||||||
if (systemConfig != null && systemConfig.isEnabletneant() && systemConfig.isTenantshare()) {
|
List<Organ> skillOrgansByOrgi = getOrganRes().findByOrgiAndSkill(origOrig, true);
|
||||||
orgi = MainContext.SYSTEM_ORGI;
|
|
||||||
isShare = true;
|
if (!skillOrgansByOrgi.isEmpty()) {
|
||||||
}
|
for (User user : agentList) {
|
||||||
}
|
// 跳过管理员角色用户,不显示在技能组列表
|
||||||
List<User> agentList = getCache().findOneSystemByIdAndOrgi(Constants.CACHE_AGENT + origOrig, origOrig);
|
if (user.isAdmin() || user.isSuperadmin()) continue;
|
||||||
List<User> agentTempList = null;
|
|
||||||
if (agentList == null) {
|
// 只显示在线的客服,跳过离线的客服
|
||||||
agentList = getUserRes().findByOrgiAndAgentAndDatastatus(orgi, true, false);
|
if (getCache().findOneAgentStatusByAgentnoAndOrig(user.getId(), origOrig) == null) continue;
|
||||||
agentTempList = new ArrayList<User>();
|
|
||||||
// 共享的话 查出绑定的组织
|
// 一个用户可隶属于多个组织
|
||||||
if (isShare) {
|
getUserProxy().attachOrgansPropertiesForUser(user);
|
||||||
List<OrgiSkillRel> orgiSkillRelList = getOrgiSkillRelRes().findByOrgi(origOrig);
|
for (Organ organ : skillOrgansByOrgi) {
|
||||||
if (!orgiSkillRelList.isEmpty()) {
|
if (user.getOrgans().size() > 0 && user.inAffiliates(organ.getId())) {
|
||||||
for (User user : agentList) {
|
agentTempList.add(user);
|
||||||
// TODO 此处的查询处理比较多,应使用缓存
|
|
||||||
// 一个用户可隶属于多个组织
|
|
||||||
getUserProxy().attachOrgansPropertiesForUser(user);
|
|
||||||
for (OrgiSkillRel rel : orgiSkillRelList) {
|
|
||||||
if (user.getOrgans().size() > 0 && user.inAffiliates(rel.getSkillid())) {
|
|
||||||
agentTempList.add(user);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
agentList = agentTempList;
|
|
||||||
}
|
|
||||||
if (agentList.size() > 0) {
|
|
||||||
getCache().putSystemListByIdAndOrgi(Constants.CACHE_AGENT + origOrig, origOrig, agentList);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
agentList = agentTempList;
|
||||||
|
|
||||||
return agentList;
|
return agentList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -508,7 +498,7 @@ public class OnlineUserProxy {
|
|||||||
onlineUser.setOlduser("1");
|
onlineUser.setOlduser("1");
|
||||||
}
|
}
|
||||||
onlineUser.setMobile(MobileDevice.isMobile(request
|
onlineUser.setMobile(MobileDevice.isMobile(request
|
||||||
.getHeader("User-Agent")) ? "1" : "0");
|
.getHeader("User-Agent")) ? "1" : "0");
|
||||||
|
|
||||||
// onlineUser.setSource(user.getId());
|
// onlineUser.setSource(user.getId());
|
||||||
|
|
||||||
@ -546,10 +536,10 @@ public class OnlineUserProxy {
|
|||||||
onlineUser.setCity(ipdata.getCity());
|
onlineUser.setCity(ipdata.getCity());
|
||||||
onlineUser.setIsp(ipdata.getIsp());
|
onlineUser.setIsp(ipdata.getIsp());
|
||||||
onlineUser.setRegion(ipdata.toString() + "("
|
onlineUser.setRegion(ipdata.toString() + "("
|
||||||
+ ip + ")");
|
+ ip + ")");
|
||||||
|
|
||||||
onlineUser.setDatestr(new SimpleDateFormat("yyyMMdd")
|
onlineUser.setDatestr(new SimpleDateFormat("yyyMMdd")
|
||||||
.format(now));
|
.format(now));
|
||||||
|
|
||||||
onlineUser.setHostname(ip);
|
onlineUser.setHostname(ip);
|
||||||
onlineUser.setSessionid(sessionid);
|
onlineUser.setSessionid(sessionid);
|
||||||
@ -1030,6 +1020,13 @@ public class OnlineUserProxy {
|
|||||||
return userRes;
|
return userRes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static OrganRepository getOrganRes() {
|
||||||
|
if (organRes == null) {
|
||||||
|
organRes = MainContext.getContext().getBean(OrganRepository.class);
|
||||||
|
}
|
||||||
|
return organRes;
|
||||||
|
}
|
||||||
|
|
||||||
private static OrgiSkillRelRepository getOrgiSkillRelRes() {
|
private static OrgiSkillRelRepository getOrgiSkillRelRes() {
|
||||||
if (orgiSkillRelRes == null) {
|
if (orgiSkillRelRes == null) {
|
||||||
orgiSkillRelRes = MainContext.getContext().getBean(OrgiSkillRelRepository.class);
|
orgiSkillRelRes = MainContext.getContext().getBean(OrgiSkillRelRepository.class);
|
||||||
|
@ -268,7 +268,7 @@ var cskefu = {
|
|||||||
<#if inviteData.consult_skill_numbers == 0 || skill_index lt inviteData.consult_skill_numbers >
|
<#if inviteData.consult_skill_numbers == 0 || skill_index lt inviteData.consult_skill_numbers >
|
||||||
<#assign skillNum = 0 >
|
<#assign skillNum = 0 >
|
||||||
<#list agentList as agent>
|
<#list agentList as agent>
|
||||||
<#if agent.organ?? && agent.organ == skill.id>
|
<#if agent.skills?? && agent.skills[skill.id]??>
|
||||||
<#assign skillNum = skillNum+1 >
|
<#assign skillNum = skillNum+1 >
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user