1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-07-24 08:31:45 +08:00

Merge pull request #965 from lecjy/feature/964

fix #964 https://github.com/cskefu/cskefu/issues/964
This commit is contained in:
Hai Liang W 2023-11-14 08:59:38 +08:00 committed by GitHub
commit a76520c377
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,68 +12,67 @@
* Copyright (C) 2017 优客服-多渠道客服系统, Licensed under the Apache License, Version 2.0, * Copyright (C) 2017 优客服-多渠道客服系统, Licensed under the Apache License, Version 2.0,
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
*/ */
package com.cskefu.cc.controller.apps; package com.cskefu.cc.controller.apps;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cskefu.cc.acd.ACDAgentService; import com.cskefu.cc.acd.ACDAgentService;
import com.cskefu.cc.acd.ACDWorkMonitor; import com.cskefu.cc.acd.ACDWorkMonitor;
import com.cskefu.cc.activemq.BrokerPublisher; import com.cskefu.cc.activemq.BrokerPublisher;
import com.cskefu.cc.basic.Constants; import com.cskefu.cc.basic.Constants;
import com.cskefu.cc.basic.MainContext; import com.cskefu.cc.basic.MainContext;
import com.cskefu.cc.basic.MainUtils; import com.cskefu.cc.basic.MainUtils;
import com.cskefu.cc.cache.Cache; import com.cskefu.cc.cache.Cache;
import com.cskefu.cc.controller.Handler; import com.cskefu.cc.controller.Handler;
import com.cskefu.cc.util.restapi.RestUtils; import com.cskefu.cc.util.restapi.RestUtils;
import com.cskefu.cc.exception.CSKefuException; import com.cskefu.cc.exception.CSKefuException;
import com.cskefu.cc.model.*; import com.cskefu.cc.model.*;
import com.cskefu.cc.peer.PeerSyncIM; import com.cskefu.cc.peer.PeerSyncIM;
import com.cskefu.cc.persistence.blob.JpaBlobHelper; import com.cskefu.cc.persistence.blob.JpaBlobHelper;
import com.cskefu.cc.persistence.interfaces.DataExchangeInterface; import com.cskefu.cc.persistence.interfaces.DataExchangeInterface;
import com.cskefu.cc.persistence.repository.*; import com.cskefu.cc.persistence.repository.*;
import com.cskefu.cc.proxy.*; import com.cskefu.cc.proxy.*;
import com.cskefu.cc.socketio.message.ChatMessage; import com.cskefu.cc.socketio.message.ChatMessage;
import com.cskefu.cc.socketio.message.Message; import com.cskefu.cc.socketio.message.Message;
import com.cskefu.cc.util.Menu; import com.cskefu.cc.util.Menu;
import com.cskefu.cc.util.PinYinTools; import com.cskefu.cc.util.PinYinTools;
import com.cskefu.cc.util.PropertiesEventUtil; import com.cskefu.cc.util.PropertiesEventUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Direction;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.FileCopyUtils; import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.io.File;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.io.File; @Controller
import java.io.IOException; @RequestMapping("/agent")
import java.text.ParseException; public class AgentController extends Handler {
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/agent")
public class AgentController extends Handler {
static final Logger logger = LoggerFactory.getLogger(AgentController.class); static final Logger logger = LoggerFactory.getLogger(AgentController.class);
@ -246,10 +245,7 @@ public class AgentController extends Handler {
ModelMap map, ModelMap map,
HttpServletRequest request, HttpServletRequest request,
HttpServletResponse response, HttpServletResponse response,
@Valid String sort, @Valid String sort) throws IOException {
boolean licenseVerifiedPass,
String licenseBillingMsg) throws IOException {
logger.info("[index] licenseVerifiedPass {}, licenseBillingMsg {}", licenseVerifiedPass, licenseBillingMsg);
final User logined = super.getUser(request); final User logined = super.getUser(request);
ModelAndView view = request(super.createView("/apps/agent/index")); ModelAndView view = request(super.createView("/apps/agent/index"));
agentUserProxy.buildIndexViewWithModels(view, map, request, response, sort, logined, null); agentUserProxy.buildIndexViewWithModels(view, map, request, response, sort, logined, null);
@ -258,11 +254,7 @@ public class AgentController extends Handler {
@RequestMapping("/agentusers") @RequestMapping("/agentusers")
@Menu(type = "apps", subtype = "agent") @Menu(type = "apps", subtype = "agent")
public ModelAndView agentusers(HttpServletRequest request, public ModelAndView agentusers(HttpServletRequest request, String userid) {
String userid,
boolean licenseVerifiedPass,
String licenseBillingMsg) {
logger.info("[agentusers] userid {}, licenseVerifiedPass {}, licenseBillingMsg {}", userid, licenseVerifiedPass, licenseBillingMsg);
ModelAndView view = request(super.createView("/apps/agent/agentusers")); ModelAndView view = request(super.createView("/apps/agent/agentusers"));
User logined = super.getUser(request); User logined = super.getUser(request);
view.addObject( view.addObject(
@ -271,8 +263,7 @@ public class AgentController extends Handler {
List<AgentUser> agentUserList = agentUserRes.findByUserid(userid); List<AgentUser> agentUserList = agentUserRes.findByUserid(userid);
view.addObject( view.addObject(
"curagentuser", agentUserList != null && agentUserList.size() > 0 ? agentUserList.get(0) : null); "curagentuser", agentUserList != null && agentUserList.size() > 0 ? agentUserList.get(0) : null);
view.addObject("licenseVerifiedPass", licenseVerifiedPass);
view.addObject("licenseBillingMsg", licenseBillingMsg);
return view; return view;
} }
@ -698,9 +689,11 @@ public class AgentController extends Handler {
@Menu(type = "apps", subtype = "agent") @Menu(type = "apps", subtype = "agent")
public ModelAndView readmsg(HttpServletRequest request, @Valid String userid) { public ModelAndView readmsg(HttpServletRequest request, @Valid String userid) {
AgentUserTask agentUserTask = agentUserTaskRes.findById(userid).orElse(null); agentUserTaskRes.findById(userid).ifPresent(task -> {
agentUserTask.setTokenum(0); task.setTokenum(0);
agentUserTaskRes.save(agentUserTask); agentUserTaskRes.save(task);
});
return request(super.createView("/public/success")); return request(super.createView("/public/success"));
} }
@ -1029,14 +1022,12 @@ public class AgentController extends Handler {
map.addAttribute("summary", summaries.get(0)); map.addAttribute("summary", summaries.get(0));
} }
} }
Organ currentOrgan = super.getOrgan(request); AgentService service = agentServiceRes.findById(agentserviceid).orElse(null);
if (null != currentOrgan) { if (service != null) {
map.addAttribute( map.addAttribute(
"tags", tagRes.findByTagtypeAndSkill( "tags", tagRes.findByTagtypeAndSkill(
MainContext.ModelType.CCSUMMARY.toString(), currentOrgan.getParent())); MainContext.ModelType.SUMMARY.toString(), service.getSkill()));
} }
map.addAttribute("userid", userid); map.addAttribute("userid", userid);
map.addAttribute("agentserviceid", agentserviceid); map.addAttribute("agentserviceid", agentserviceid);
map.addAttribute("agentuserid", agentuserid); map.addAttribute("agentuserid", agentuserid);
@ -1261,4 +1252,4 @@ public class AgentController extends Handler {
return request(super.createView("redirect:/agent/index.html")); return request(super.createView("redirect:/agent/index.html"));
} }
} }