<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    guanxf

    我的博客:http://blog.sina.com.cn/17learning

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      71 隨筆 :: 1 文章 :: 41 評論 :: 0 Trackbacks
    1、客服登錄:客服有客服ID,單位ID:
       WorkerVO workerVO = (WorkerVO) req.getSession().getAttribute("workerVO");
    if(workerVO==null){
    workerVO = new WorkerVO();
    String workerid = req.getParameter("workerid"); //單位ID
    String userid = req.getParameter("userid"); //用戶ID
    if(!StringUtil.isBlank(workerid)){
    boolean b = WorkerLogService.getWorker(workerid, workerVO); //獲取單位信息
    if(b){ //登陸成功
    workerVO.setStartDate((new Date()).getTime());
    if(!StringUtil.isBlank(userid)){
    DeptService deptService = new DeptService();
    OrgUserVO userVO = deptService.getOrgUser(userid); //獲取用戶信息
    workerVO.setUserId(userid);
    if(userVO!=null){
    workerVO.setUserName(userVO.getUserName());
    }
    }
    //1. get map
    // key-userkey  value-workersMap   workersMap<String,Map> ------String 為單位id,
    //--- Map為客服人員集合,Map<String,Object> ,key為客服Id, value為客服人員對象
    //(客服人員ID,客服人員姓名,單位id ,單位名稱 ,狀態(tài)(1在線、2忙碌、3離線),在線——1在咨詢中,2空閑,如果狀態(tài)是不在線:值為0)。
    super.init(config);  
    ServletContext application=this.getServletContext();  //得到Application對象
    Map<String,Map> workersMap = (Map)application.getAttribute("workersKey");
    if(workersMap == null){ //判斷Map是否為空
    //初始化
    Map<String,Map> workerMap = new Hashtable<String,Map>();
    Map<String,Object> childWorkerMap = new Hashtable<String, Object>();
    WorkerOnlineVO onlineWorker=new WorkerOnlineVO();
    onlineWorker.setDeptId(workerVO.getDeptNo().toString());//單位Id
    onlineWorker.setDeptName(workerVO.getDeptName());
    onlineWorker.setWorkerUserId(workerVO.getUserId());
    onlineWorker.setWorkerUserName(workerVO.getUserName());
    onlineWorker.setState("1");
    onlineWorker.setConsultate("2");
    childWorkerMap.put(workerVO.getUserId(), onlineWorker);
    workerMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
    application.setAttribute("workersKey", workerMap);
    }else{
    Map<String,Object> childWorkerMap=workersMap.get(workerVO.getDeptNo());
    WorkerOnlineVO workerOnline=(WorkerOnlineVO) childWorkerMap.get(workerVO.getUserId());
    if(workerOnline==null){
    WorkerOnlineVO onlineWorker=new WorkerOnlineVO();
    onlineWorker.setDeptId(workerVO.getDeptNo().toString());
    onlineWorker.setDeptName(workerVO.getDeptName());
    onlineWorker.setWorkerUserId(workerVO.getUserId());
    onlineWorker.setWorkerUserName(workerVO.getUserName());
    onlineWorker.setState("1");
    onlineWorker.setConsultate("2");
    childWorkerMap.put(workerVO.getUserId(), onlineWorker);
    workersMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
    //application.setAttribute("workersKey", workersMap);
    }else{
    workerOnline.setState("1");
    workerOnline.setConsultate("2");
    childWorkerMap.put(workerVO.getUserId(), workerOnline);
    workersMap.put(workerVO.getDeptNo().toString(), childWorkerMap);
    // application.setAttribute("workersKey", workersMap);
    }
    }
    req.getSession().setAttribute("workerVO", workerVO);
    OnlineStatusVO.WORKER_QUESTER_MAP.put(workerid, new ArrayList<QuesterVO>());
    OnlineStatusVO.WORKER_VO_MAP.put(workerid, workerVO);
    req.getRequestDispatcher("../worker.jsp").forward(req, res);
    }else{
    res.sendRedirect("../worker_index.jsp?flag=1");
    }
    }else if(!StringUtil.isBlank(userid)){
    if("1".equals(userid)){
    workerVO.setId("0");
    workerVO.setDeptName("技術(shù)支持");
    workerVO.setDeptNo("0");
    workerVO.setState("1");
    workerVO.setUserId(userid);
    req.getSession().setAttribute("workerVO", workerVO);
    OnlineStatusVO.WORKER_QUESTER_MAP.put("0", new ArrayList<QuesterVO>());
    OnlineStatusVO.WORKER_VO_MAP.put("0", workerVO);
    req.getRequestDispatcher("../worker.jsp").forward(req, res);
    }
    }else{
    res.sendRedirect("../worker_index.jsp?flag=1");
    }
    }else{ //workerVO != null
    if(StringUtil.isBlank(OnlineStatusVO.WORKER_QUESTER_MAP.get(workerVO.getId()))){
    OnlineStatusVO.WORKER_QUESTER_MAP.put(workerVO.getId(), new ArrayList<QuesterVO>());
    }
    if(StringUtil.isBlank(OnlineStatusVO.WORKER_VO_MAP.get(workerVO.getId()))){
    System.out.println("===OnlineStatusVO.WORKER_VO_MAP.get======");
    OnlineStatusVO.WORKER_VO_MAP.put(workerVO.getId(), workerVO);
    }
    req.getRequestDispatcher("../worker.jsp").forward(req, res);
    }

    1、咨詢者咨詢:單位ID:
    String workerId = req.getParameter("workerId"); //單位ID
    String outmsg = "";
    if(StringUtil.isBlank(workerId)){
    Log.error("---單位Id為空------");
    }else{
    super.init(config);  
    ServletContext application=this.getServletContext();  
    Map<String,Map> workersMap = (Map)application.getAttribute("workersKey");
    if(workersMap==null){ //如果workersMap為空
    outmsg="請電話咨詢,電話號碼為:XXXXX";
    }else{
    Map<String,WorkerOnlineVO> childWorkerMap =workersMap.get(workerId);
    if(childWorkerMap==null){
    outmsg="請電話咨詢,電話號碼為:XXXXX";
    }else{
    //boolean flagTel=false; //無客服人員在線
     String  workerUserIdTemp="";
      Set<String> key = childWorkerMap.keySet();
      for (Iterator it = key.iterator(); it.hasNext();) {
    WorkerOnlineVO workerOnlineVo =childWorkerMap.get((String)it.next()); 
    //狀態(tài)(1在線、2忙碌、3離線),在線——1在咨詢中,2空閑,如果狀態(tài)是不在線:值為0
    //安排人員的優(yōu)先級:在線 --空閑  》在線--咨詢中 ,其他條件不符合。
    if(workerOnlineVo.getState().equals("1")&& workerOnlineVo.getConsultate().equals("2")){
    //在線 --空閑  ------------優(yōu)先級最高
    workerUserIdTemp=workerOnlineVo.getWorkerUserId();
    break;
    else if(workerOnlineVo.getState().equals("1")&& workerOnlineVo.getConsultate().equals("1")){
    //在線--咨詢中
    if(workerUserIdTemp.equals("")){
    workerUserIdTemp=workerOnlineVo.getWorkerUserId();
    }
    }
           }
    if(workerUserIdTemp.equals("")){
    outmsg="請電話咨詢,電話號碼為:XXXXX";
    }else{
    WorkerOnlineVO workerOnlineVo = childWorkerMap.get(workerUserIdTemp);
    workerOnlineVo.setState("1");
    workerOnlineVo.setConsultate("1");
    childWorkerMap.put(workerOnlineVo.getWorkerUserId(), workerOnlineVo);
    workersMap.put(workerId, childWorkerMap); //和原來的Map一樣
    //application.setAttribute("workersKey", workersMap);
    outmsg = "您好,請問有什么可以幫助您的嗎?";
    QuesterVO questerVO = (QuesterVO) req.getSession().getAttribute("questerVO");
    if(questerVO==null || !workerId.equals(questerVO.getWorkerId())){
    OnlineStatusVO.WORKER_USER.put("workerUser", workerOnlineVo);
    questerVO = QuesterLogService.getQuester(workerId); //必須使用人id
    questerVO.setWorkerUserId(workerOnlineVo.getWorkerUserId());
    req.getSession().setAttribute("questerVO", questerVO);
    OnlineStatusVO.WORKER_QUESTER_MAP.get(workerId).add(questerVO);
    OnlineStatusVO.QUESTER_VO_MAP.put(questerVO.getId(), questerVO);
    req.setAttribute("workerOnlineVo", workerOnlineVo);
    }
    }
    req.setAttribute("outmsg", outmsg);
    req.getRequestDispatcher("/quester.jsp").forward(req, res);
    }
    }
    }

    3、中間類:
    public class OnlineStatusVO {
    public static Map<String,WorkerVO> WORKER_VO_MAP = new HashMap<String,WorkerVO>();
    public static Map<String,QuesterVO> QUESTER_VO_MAP = new HashMap<String,QuesterVO>();
    public static Map<String, List<QuesterVO>> WORKER_QUESTER_MAP = new HashMap<String, List<QuesterVO>>();
    public static Map<String, WorkerOnlineVO> WORKER_USER = new HashMap<String, WorkerOnlineVO>();
    }
    posted on 2012-11-25 16:00 管先飛 閱讀(2363) 評論(11)  編輯  收藏 所屬分類: Java技術(shù)

    評論

    # re: Java在線咨詢,多人咨詢。 2013-01-19 21:38 那天
    嗨,你好,我最近也在做這個功能,請問下可以發(fā)一份完整的源代碼給我學(xué)習(xí)下嗎,在此先謝過了!
    郵箱:1262176582@qq.com  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。 2013-04-12 05:06 羅黎明
    你好,guanxf:
    最近在學(xué)習(xí)做在線客服,在網(wǎng)上狂搜一通,覺得你的不錯,能幫我發(fā)一份完整的源代碼供學(xué)習(xí)使用嗎? 不甚感謝!

    我的郵箱:
    lichunming3793789@126.com  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。 2013-07-16 22:36 彬彬
    您好 能否給我發(fā)一分源碼 最近在學(xué)習(xí)這個 謝了 313710351@qq.com  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。 2013-09-22 15:55 小孟
    嗨,你好,我最近也在做這個功能,請問下可以發(fā)一份完整的源代碼給我學(xué)習(xí)下嗎,在此先謝過了!
    郵箱:1135509405@qq.com   回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。[未登錄] 2013-12-02 13:58 小光
    你好,我最近也在做這個功能,請問下可以發(fā)一份完整的源代碼給我學(xué)習(xí)下嗎,在此先謝過了!
    郵箱:66550907@qq.com  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。[未登錄] 2013-12-15 23:00 wj
    你好,我最近也在學(xué)著做這個功能,在網(wǎng)上搜了好多,覺得你的不錯,請問下可以發(fā)一份完整的源代碼給我學(xué)習(xí)下嗎,在此先謝過了!
    郵箱:934051639@qq.com  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。 2013-12-15 23:10 管先飛
    @wj
    其實這個沒啥難的就是2步:
    1、將客服的信息放入到一個Map中。
    2、咨詢者咨詢的時候?qū)⒖蛻舻膇d給咨詢者,這樣就成功建立了一個回話。
      回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。 2014-02-26 21:38 馬媛
    您好,網(wǎng)上找了一圈,還是沒整出來,可以發(fā)一份給我嗎?非常謝謝!273694566@qq.com  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。 2014-05-07 16:16 東東在線
    正在學(xué)習(xí)這方面的東西,能給我發(fā)一份源碼么?時分感謝  回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。[未登錄] 2014-07-16 15:26
    5、編程實現(xiàn):
    要求:從輸入端輸入各學(xué)生{學(xué)號、姓名、性別、年齡、成績}的信息輸入到對應(yīng)的對象數(shù)組中,首先,按照學(xué)生的性別(先女后男)進(jìn)行分類,分別存儲到兩個對應(yīng)的對象數(shù)組中。
    對兩個對象數(shù)組先按照學(xué)號進(jìn)行排序由低到高,輸出學(xué)“學(xué)號”->“姓名”->“性別”;
    對兩個對象數(shù)組先按照年齡進(jìn)行排序由小到大,輸出學(xué)“姓名”->“年齡”->“性別”;
    輸出兩組對應(yīng)的平均成績:成績1、成績2.
      回復(fù)  更多評論
      

    # re: Java在線咨詢,多人咨詢。[未登錄] 2014-09-10 15:48 石頭
    我最近在學(xué)習(xí)這一方面的內(nèi)容,網(wǎng)上搜了好多,覺得你的不錯,請問下可以發(fā)一份完整的源代碼給我學(xué)習(xí)下嗎,在此先謝過了! 郵箱:511271991@qq.com  回復(fù)  更多評論
      

    主站蜘蛛池模板: 日韩精品无码永久免费网站| 亚洲一卡2卡三卡4卡无卡下载| 牛牛在线精品免费视频观看| 四色在线精品免费观看| 亚洲永久在线观看| 国产成人午夜精品免费视频| 久久精品国产99国产精品亚洲 | 国产成人亚洲精品蜜芽影院| 午夜电影免费观看| 亚洲AV一区二区三区四区| 免费无码又爽又刺激毛片| 色偷偷亚洲男人天堂| 亚洲成a人片在线观看老师| 四虎影视久久久免费| 亚洲一区二区女搞男| 中文在线免费不卡视频| 久久久久亚洲av无码尤物| 日本免费一区二区三区| 亚洲一区二区影视| 日韩a级毛片免费观看| 无码免费又爽又高潮喷水的视频| 中文字幕精品亚洲无线码二区 | 亚洲综合色在线观看亚洲| 中文字幕不卡免费视频| 久久精品国产亚洲av麻豆| 精品女同一区二区三区免费站| 中文字幕乱码亚洲无线三区| 国产99视频免费精品是看6| 久久免费国产精品| 91在线亚洲精品专区| 91嫩草国产在线观看免费| 国产亚洲视频在线| 亚洲动漫精品无码av天堂| 歪歪漫画在线观看官网免费阅读 | 人成免费在线视频| 亚洲VA中文字幕无码一二三区| 黄页网站在线看免费| 污网站在线免费观看| 亚洲一级二级三级不卡| 国产成人高清精品免费软件| 欧洲人免费视频网站在线|