mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-01 16:38:02 +08:00
#122 支持更多自定义logo
This commit is contained in:
parent
a2ef70e7cb
commit
41763967a9
@ -21,9 +21,12 @@ import com.chatopera.cc.app.basic.MainUtils;
|
||||
import com.chatopera.cc.app.basic.Viewport;
|
||||
import com.chatopera.cc.app.cache.CacheHelper;
|
||||
import com.chatopera.cc.app.handler.api.rest.QueryParams;
|
||||
import com.chatopera.cc.app.model.StreamingFile;
|
||||
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.blob.JpaBlobHelper;
|
||||
import com.chatopera.cc.app.persistence.repository.StreamingFileRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.TenantRepository;
|
||||
import com.chatopera.cc.exception.CSKefuException;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
@ -38,10 +41,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.SessionAttributes;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
import java.text.ParseException;
|
||||
|
||||
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||
@ -56,6 +61,12 @@ public class Handler {
|
||||
@Autowired
|
||||
private TenantRepository tenantRes;
|
||||
|
||||
@Autowired
|
||||
private JpaBlobHelper jpaBlobHelper;
|
||||
|
||||
@Autowired
|
||||
private StreamingFileRepository streamingFileRes;
|
||||
|
||||
public final static int PAGE_SIZE_BG = 1;
|
||||
public final static int PAGE_SIZE_TW = 20;
|
||||
public final static int PAGE_SIZE_FV = 50;
|
||||
@ -461,4 +472,17 @@ public class Handler {
|
||||
public void setStarttime(long starttime) {
|
||||
this.starttime = starttime;
|
||||
}
|
||||
|
||||
public String saveImageFileWithMultipart(MultipartFile multipart) throws IOException {
|
||||
StreamingFile sf = new StreamingFile();
|
||||
final String fileid = MainUtils.getUUID();
|
||||
sf.setId(fileid);
|
||||
sf.setMime(multipart.getContentType());
|
||||
sf.setData(jpaBlobHelper.createBlob(multipart.getInputStream(), multipart.getSize()));
|
||||
sf.setName(multipart.getOriginalFilename());
|
||||
streamingFileRes.save(sf);
|
||||
return fileid;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -69,24 +69,6 @@ public class WebIMController extends Handler {
|
||||
@Autowired
|
||||
private SNSAccountRepository snsAccountRes;
|
||||
|
||||
@Autowired
|
||||
private JpaBlobHelper jpaBlobHelper;
|
||||
|
||||
@Autowired
|
||||
private StreamingFileRepository streamingFileRes;
|
||||
|
||||
|
||||
private String saveImageFile(MultipartFile multipart) throws IOException {
|
||||
StreamingFile sf = new StreamingFile();
|
||||
final String fileid = MainUtils.getUUID();
|
||||
sf.setId(fileid);
|
||||
sf.setMime(multipart.getContentType());
|
||||
sf.setData(jpaBlobHelper.createBlob(multipart.getInputStream(), multipart.getSize()));
|
||||
sf.setName(multipart.getOriginalFilename());
|
||||
streamingFileRes.save(sf);
|
||||
return fileid;
|
||||
}
|
||||
|
||||
@RequestMapping("/index")
|
||||
@Menu(type = "app", subtype = "app", admin = true)
|
||||
public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String snsid) {
|
||||
@ -125,12 +107,12 @@ public class WebIMController extends Handler {
|
||||
inviteData.setOrgi(super.getOrgi(request));
|
||||
// 网页品牌标识
|
||||
if (webimlogo != null && webimlogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
inviteData.setConsult_dialog_logo(saveImageFile(webimlogo));
|
||||
inviteData.setConsult_dialog_logo(super.saveImageFileWithMultipart(webimlogo));
|
||||
}
|
||||
|
||||
// 网页坐席头像
|
||||
if (agentheadimg != null && agentheadimg.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
inviteData.setConsult_dialog_headimg(saveImageFile(agentheadimg));
|
||||
inviteData.setConsult_dialog_headimg(super.saveImageFileWithMultipart(agentheadimg));
|
||||
}
|
||||
invite.save(inviteData);
|
||||
CacheHelper.getSystemCacheBean().put(inviteData.getSnsaccountid(), inviteData, inviteData.getOrgi());
|
||||
@ -208,7 +190,7 @@ public class WebIMController extends Handler {
|
||||
tempInviteData.setCtrlenter(inviteData.isCtrlenter());
|
||||
|
||||
if (dialogad != null && !StringUtils.isBlank(dialogad.getName()) && dialogad.getBytes() != null && dialogad.getBytes().length > 0) {
|
||||
tempInviteData.setDialog_ad(saveImageFile(dialogad));
|
||||
tempInviteData.setDialog_ad(super.saveImageFileWithMultipart(dialogad));
|
||||
}
|
||||
invite.save(tempInviteData);
|
||||
inviteData = tempInviteData;
|
||||
@ -248,7 +230,7 @@ public class WebIMController extends Handler {
|
||||
tempInviteData.setConsult_invite_color(inviteData.getConsult_invite_color());
|
||||
|
||||
if (invotebg != null && !StringUtils.isBlank(invotebg.getName()) && invotebg.getBytes() != null && invotebg.getBytes().length > 0) {
|
||||
tempInviteData.setConsult_invite_bg(saveImageFile(invotebg));
|
||||
tempInviteData.setConsult_invite_bg(super.saveImageFileWithMultipart(invotebg));
|
||||
}
|
||||
invite.save(tempInviteData);
|
||||
inviteData = tempInviteData;
|
||||
|
@ -16,28 +16,20 @@
|
||||
*/
|
||||
package com.chatopera.cc.app.handler.admin.config;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
|
||||
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.cache.CacheHelper;
|
||||
import com.chatopera.cc.app.handler.Handler;
|
||||
import com.chatopera.cc.app.model.Secret;
|
||||
import com.chatopera.cc.app.model.SysDic;
|
||||
import com.chatopera.cc.app.model.SystemConfig;
|
||||
import com.chatopera.cc.app.model.UKeFuDic;
|
||||
import com.chatopera.cc.app.persistence.repository.SecretRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.SystemConfigRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.SystemMessageRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.TemplateRepository;
|
||||
import com.chatopera.cc.app.model.Secret;
|
||||
import com.chatopera.cc.app.model.SysDic;
|
||||
import com.chatopera.cc.util.Menu;
|
||||
import com.corundumstudio.socketio.SocketIOServer;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -50,10 +42,16 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.corundumstudio.socketio.SocketIOServer;
|
||||
import com.chatopera.cc.app.handler.Handler;
|
||||
import com.chatopera.cc.app.model.SystemConfig;
|
||||
import com.chatopera.cc.app.model.UKeFuDic;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/admin/config")
|
||||
@ -122,10 +120,10 @@ public class SystemConfigController extends Handler{
|
||||
|
||||
map.addAttribute("sysMessageList", systemMessageRes.findByMsgtypeAndOrgi(MainContext.SystemMessageType.EMAIL.toString(), super.getOrgi(request)));
|
||||
|
||||
if(!StringUtils.isBlank(execute) && execute.equals("false")){
|
||||
if (StringUtils.isNotBlank(execute) && execute.equals("false")) {
|
||||
map.addAttribute("execute", execute);
|
||||
}
|
||||
if(!StringUtils.isBlank(request.getParameter("msg"))){
|
||||
if (StringUtils.isNotBlank(request.getParameter("msg"))) {
|
||||
map.addAttribute("msg", request.getParameter("msg"));
|
||||
}
|
||||
return request(super.createAdminTempletResponse("/admin/config/index"));
|
||||
@ -158,6 +156,7 @@ public class SystemConfigController extends Handler{
|
||||
|
||||
/**
|
||||
* 危险操作,请谨慎调用 , WebLogic/WebSphere/Oracle等中间件服务器禁止调用
|
||||
*
|
||||
* @param map
|
||||
* @param request
|
||||
* @return
|
||||
@ -216,30 +215,24 @@ public class SystemConfigController extends Handler{
|
||||
}
|
||||
}
|
||||
|
||||
if(loginlogo!=null && !StringUtils.isBlank(loginlogo.getOriginalFilename()) && loginlogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
String logoFileName = "logo/"+ MainUtils.md5(loginlogo.getOriginalFilename())+loginlogo.getOriginalFilename().substring(loginlogo.getOriginalFilename().lastIndexOf(".")) ;
|
||||
FileUtils.writeByteArrayToFile(new File(path ,logoFileName), loginlogo.getBytes());
|
||||
systemConfig.setLoginlogo(logoFileName);
|
||||
if (loginlogo != null && StringUtils.isNotBlank(loginlogo.getOriginalFilename()) && loginlogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
systemConfig.setLoginlogo(super.saveImageFileWithMultipart(loginlogo));
|
||||
}
|
||||
if(consolelogo!=null && !StringUtils.isBlank(consolelogo.getOriginalFilename()) && consolelogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
String consoleLogoFileName = "logo/"+ MainUtils.md5(consolelogo.getOriginalFilename())+consolelogo.getOriginalFilename().substring(consolelogo.getOriginalFilename().lastIndexOf(".")) ;
|
||||
FileUtils.writeByteArrayToFile(new File(path ,consoleLogoFileName), consolelogo.getBytes());
|
||||
systemConfig.setConsolelogo(consoleLogoFileName);
|
||||
if (consolelogo != null && StringUtils.isNotBlank(consolelogo.getOriginalFilename()) && consolelogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
systemConfig.setConsolelogo(super.saveImageFileWithMultipart(consolelogo));
|
||||
}
|
||||
if(favlogo!=null && !StringUtils.isBlank(favlogo.getOriginalFilename()) && consolelogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
String favLogoFileName = "logo/"+ MainUtils.md5(favlogo.getOriginalFilename())+favlogo.getOriginalFilename().substring(favlogo.getOriginalFilename().lastIndexOf(".")) ;
|
||||
FileUtils.writeByteArrayToFile(new File(path ,favLogoFileName), favlogo.getBytes());
|
||||
systemConfig.setFavlogo(favLogoFileName);
|
||||
if (favlogo != null && StringUtils.isNotBlank(favlogo.getOriginalFilename()) && consolelogo.getOriginalFilename().lastIndexOf(".") > 0) {
|
||||
systemConfig.setFavlogo(super.saveImageFileWithMultipart(favlogo));
|
||||
}
|
||||
|
||||
if(secret!=null && !StringUtils.isBlank(secret.getPassword())){
|
||||
if (secret != null && StringUtils.isNotBlank(secret.getPassword())) {
|
||||
List<Secret> secretConfig = secRes.findByOrgi(super.getOrgi(request));
|
||||
String repassword = request.getParameter("repassword");
|
||||
if(!StringUtils.isBlank(repassword) && repassword.equals(secret.getPassword())){
|
||||
if (StringUtils.isNotBlank(repassword) && repassword.equals(secret.getPassword())) {
|
||||
if (secretConfig != null && secretConfig.size() > 0) {
|
||||
Secret tempSecret = secretConfig.get(0);
|
||||
String oldpass = request.getParameter("oldpass");
|
||||
if(!StringUtils.isBlank(oldpass) && MainUtils.md5(oldpass).equals(tempSecret.getPassword())){
|
||||
if (StringUtils.isNotBlank(oldpass) && MainUtils.md5(oldpass).equals(tempSecret.getPassword())) {
|
||||
tempSecret.setPassword(MainUtils.md5(secret.getPassword()));
|
||||
msg = "1";
|
||||
tempSecret.setEnable(true);
|
||||
|
@ -16,26 +16,15 @@
|
||||
*/
|
||||
package com.chatopera.cc.app.handler.apps.setting;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import com.chatopera.cc.app.algorithm.AutomaticServiceDist;
|
||||
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.algorithm.AutomaticServiceDist;
|
||||
import com.chatopera.cc.app.cache.CacheHelper;
|
||||
import com.chatopera.cc.app.persistence.repository.AdTypeRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.SessionConfigRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.TagRepository;
|
||||
import com.chatopera.cc.app.persistence.repository.TemplateRepository;
|
||||
import com.chatopera.cc.app.model.AdType;
|
||||
import com.chatopera.cc.app.model.SysDic;
|
||||
import com.chatopera.cc.app.model.Tag;
|
||||
import com.chatopera.cc.app.handler.Handler;
|
||||
import com.chatopera.cc.app.model.*;
|
||||
import com.chatopera.cc.app.persistence.blob.JpaBlobHelper;
|
||||
import com.chatopera.cc.app.persistence.repository.*;
|
||||
import com.chatopera.cc.util.Menu;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -43,17 +32,16 @@ import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.chatopera.cc.app.persistence.repository.BlackListRepository;
|
||||
import com.chatopera.cc.app.handler.Handler;
|
||||
import com.chatopera.cc.app.model.BlackEntity;
|
||||
import com.chatopera.cc.app.model.SessionConfig;
|
||||
import com.chatopera.cc.app.model.UKeFuDic;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.validation.Valid;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/setting")
|
||||
@ -74,6 +62,13 @@ public class IMAgentController extends Handler{
|
||||
@Autowired
|
||||
private TemplateRepository templateRes;
|
||||
|
||||
|
||||
@Autowired
|
||||
private StreamingFileRepository streamingFileRes;
|
||||
|
||||
@Autowired
|
||||
private JpaBlobHelper jpaBlobHelper;
|
||||
|
||||
@Value("${web.upload-path}")
|
||||
private String path;
|
||||
|
||||
@ -128,7 +123,6 @@ public class IMAgentController extends Handler{
|
||||
map.put("sessionConfig", tempSessionConfig);
|
||||
|
||||
|
||||
|
||||
return request(super.createRequestPageTempletResponse("redirect:/setting/agent/index.html"));
|
||||
}
|
||||
|
||||
@ -224,7 +218,6 @@ public class IMAgentController extends Handler{
|
||||
}
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/acd")
|
||||
@Menu(type = "setting", subtype = "acd", admin = false)
|
||||
public ModelAndView acd(ModelMap map, HttpServletRequest request) {
|
||||
@ -273,18 +266,12 @@ public class IMAgentController extends Handler{
|
||||
public ModelAndView advsave(ModelMap map, HttpServletRequest request, @Valid AdType adv, @Valid String advtype, @RequestParam(value = "imgfile", required = false) MultipartFile imgfile) throws IOException {
|
||||
adv.setOrgi(super.getOrgi(request));
|
||||
adv.setCreater(super.getUser(request).getId());
|
||||
if(!StringUtils.isBlank(adv.getContent())){
|
||||
if (StringUtils.isNotBlank(adv.getContent())) {
|
||||
adv.setContent(adv.getContent().replaceAll("\"", "'"));
|
||||
}
|
||||
adv.setCreatetime(new Date());
|
||||
if (imgfile != null && imgfile.getSize() > 0) {
|
||||
File adDir = new File(path , "adv");
|
||||
if(!adDir.exists()){
|
||||
adDir.mkdirs() ;
|
||||
}
|
||||
String fileName = "adv/"+ MainUtils.getUUID()+imgfile.getOriginalFilename().substring(imgfile.getOriginalFilename().lastIndexOf(".")) ;
|
||||
FileCopyUtils.copy(imgfile.getBytes(), new File(path , fileName));
|
||||
adv.setImgurl("/res/image.html?id="+java.net.URLEncoder.encode(fileName , "UTF-8"));
|
||||
adv.setImgurl("/res/image.html?id=" + super.saveImageFileWithMultipart(imgfile));
|
||||
}
|
||||
adTypeRes.save(adv);
|
||||
|
||||
@ -309,17 +296,11 @@ public class IMAgentController extends Handler{
|
||||
ad.setOrgi(super.getOrgi(request));
|
||||
ad.setCreater(tempad.getCreater());
|
||||
ad.setCreatetime(tempad.getCreatetime());
|
||||
if(!StringUtils.isBlank(ad.getContent())){
|
||||
if (StringUtils.isNotBlank(ad.getContent())) {
|
||||
ad.setContent(ad.getContent().replaceAll("\"", "'"));
|
||||
}
|
||||
if (imgfile != null && imgfile.getSize() > 0) {
|
||||
File adDir = new File(path , "adv");
|
||||
if(!adDir.exists()){
|
||||
adDir.mkdirs() ;
|
||||
}
|
||||
String fileName = "adv/"+ MainUtils.getUUID()+imgfile.getOriginalFilename().substring(imgfile.getOriginalFilename().lastIndexOf(".")) ;
|
||||
FileCopyUtils.copy(imgfile.getBytes(), new File(path , fileName));
|
||||
ad.setImgurl("/res/image.html?id="+java.net.URLEncoder.encode(fileName , "UTF-8"));
|
||||
ad.setImgurl("/res/image.html?id=" + super.saveImageFileWithMultipart(imgfile));
|
||||
} else {
|
||||
ad.setImgurl(tempad.getImgurl());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user