|
@@ -0,0 +1,544 @@
|
|
|
|
+/**
|
|
|
|
+ * Copyright © 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
|
|
|
|
+ */
|
|
|
|
+package com.jeeplus.modules.iim.web;
|
|
|
|
+
|
|
|
|
+import java.io.File;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
|
+import java.util.concurrent.Executors;
|
|
|
|
+import java.util.concurrent.ThreadPoolExecutor;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
|
+import com.google.common.collect.Maps;
|
|
|
|
+import com.jeeplus.common.json.AjaxJson;
|
|
|
|
+import com.jeeplus.common.oss.OSSClientUtil;
|
|
|
|
+import com.jeeplus.common.utils.*;
|
|
|
|
+import com.jeeplus.modules.sysuseroffice.entity.Useroffice;
|
|
|
|
+import com.jeeplus.modules.sysuseroffice.service.UserofficeService;
|
|
|
|
+import org.codehaus.jackson.map.ObjectMapper;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
|
+import org.springframework.ui.Model;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
+import com.jeeplus.common.config.Global;
|
|
|
|
+import com.jeeplus.common.web.BaseController;
|
|
|
|
+import com.jeeplus.modules.iim.entity.Friend;
|
|
|
|
+import com.jeeplus.modules.iim.entity.FriendGroup;
|
|
|
|
+import com.jeeplus.modules.iim.entity.LayFileJsonData;
|
|
|
|
+import com.jeeplus.modules.iim.entity.LayGroup;
|
|
|
|
+import com.jeeplus.modules.iim.entity.LayGroupJsonData;
|
|
|
|
+import com.jeeplus.modules.iim.entity.LayGroupUser;
|
|
|
|
+import com.jeeplus.modules.iim.entity.LayJson;
|
|
|
|
+import com.jeeplus.modules.iim.entity.LayJsonData;
|
|
|
|
+import com.jeeplus.modules.iim.entity.Mine;
|
|
|
|
+import com.jeeplus.modules.iim.service.LayGroupService;
|
|
|
|
+import com.jeeplus.modules.sys.dao.UserDao;
|
|
|
|
+import com.jeeplus.modules.sys.entity.Office;
|
|
|
|
+import com.jeeplus.modules.sys.entity.User;
|
|
|
|
+import com.jeeplus.modules.sys.service.OfficeService;
|
|
|
|
+import com.jeeplus.modules.sys.service.SystemService;
|
|
|
|
+import com.jeeplus.modules.sys.utils.UserUtils;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 联系人Controller
|
|
|
|
+ *
|
|
|
|
+ * @author jeeplus(seven修改)
|
|
|
|
+ * @version 2016-6-23
|
|
|
|
+ */
|
|
|
|
+@Controller
|
|
|
|
+@RequestMapping(value = "${adminPath}/iim/contact")
|
|
|
|
+public class ContactController extends BaseController {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private SystemService systemService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private LayGroupService layGroupService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserofficeService userofficeService;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private UserDao userDao;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private OfficeService officeService;
|
|
|
|
+
|
|
|
|
+ private ExecutorService poolExecutor = Executors.newFixedThreadPool(10);
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打开通讯录
|
|
|
|
+ *
|
|
|
|
+ * @param user
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = { "index", "" })
|
|
|
|
+ public String index(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ List<User> list = systemService.findUser(user);
|
|
|
|
+ model.addAttribute("list", list);
|
|
|
|
+ return "modules/iim/contacts";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查找
|
|
|
|
+ *
|
|
|
|
+ * @param u
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "searchUsers")
|
|
|
|
+ public String searchUsers(User u, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ User user = UserUtils.getUser();
|
|
|
|
+ if(! user.isAdmin()) {
|
|
|
|
+ if (StringUtils.isNotBlank(u.getMobile()) || StringUtils.isNotBlank(u.getName())) {
|
|
|
|
+ List<User> users = userDao.findFriendByMobileOrName(u);
|
|
|
|
+ model.addAttribute("list", users);
|
|
|
|
+ }else if(StringUtils.isNotBlank(u.getComId()) && u.getComId().equals("comId")) {
|
|
|
|
+ Useroffice useroffice = new Useroffice();
|
|
|
|
+ List<Office> companyList = UserUtils.getAllCompany(user);
|
|
|
|
+ List companyIds = new ArrayList();
|
|
|
|
+ for (Office office : companyList) {
|
|
|
|
+ companyIds.add(office.getId());
|
|
|
|
+ }
|
|
|
|
+ useroffice.setCompanyIds(companyIds);
|
|
|
|
+ useroffice.setDelFlag("0");
|
|
|
|
+ List<Useroffice> list = new ArrayList<Useroffice>();
|
|
|
|
+ if(StringUtils.isEmpty(u.getName())&&StringUtils.isEmpty(u.getMobile())){
|
|
|
|
+ list = userofficeService.searchUsers(useroffice);
|
|
|
|
+ }
|
|
|
|
+ if(StringUtils.isNotEmpty(u.getName())&&StringUtils.isEmpty(u.getMobile())){
|
|
|
|
+ useroffice.setName(u.getName());
|
|
|
|
+ list = userofficeService.searchUsers(useroffice);
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isEmpty(u.getName())&&StringUtils.isNotEmpty(u.getMobile())) {
|
|
|
|
+ useroffice.setMobile(u.getMobile());
|
|
|
|
+ list = userofficeService.searchUsers(useroffice);
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotEmpty(u.getName())&&StringUtils.isNotEmpty(u.getMobile())) {
|
|
|
|
+ useroffice.setName(u.getName());
|
|
|
|
+ useroffice.setMobile(u.getMobile());
|
|
|
|
+ list = userofficeService.searchUsers(useroffice);
|
|
|
|
+ }
|
|
|
|
+ List<User> friends = new ArrayList<User>();
|
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
|
+ User u1 = UserUtils.get(list.get(i).getUserId());
|
|
|
|
+ if(u1!=null&&u1.getCompany().getName().equals(user.getCompany().getName())&&!u1.getLoginName().equals(user.getLoginName())){
|
|
|
|
+ friends.add(u1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 我的好友--->常用联系人
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ friends.addAll(userDao.findFriends(currentUser));
|
|
|
|
+ List<User> users = new ArrayList<>();
|
|
|
|
+ if (StringUtils.isNotBlank(u.getMobile())) {
|
|
|
|
+ if (StringUtils.isNotBlank(u.getName())){
|
|
|
|
+ for (User user1:friends){
|
|
|
|
+ if (user1.getMobile().equals(u.getMobile())){
|
|
|
|
+ if(user1.getName().contains(u.getName())) {
|
|
|
|
+ users.add(user1);
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ for (User user1:friends){
|
|
|
|
+ if (user1.getMobile().equals(u.getMobile())){
|
|
|
|
+ users.add(user1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ model.addAttribute("list", users);
|
|
|
|
+ }else if (StringUtils.isNotBlank(u.getName())){
|
|
|
|
+ for (User user1 : friends) {
|
|
|
|
+ if (user1.getName().contains(u.getName())) {
|
|
|
|
+ users.add(user1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ model.addAttribute("list", users);
|
|
|
|
+ }else {
|
|
|
|
+ users.addAll(friends);
|
|
|
|
+ model.addAttribute("list", users);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ model.addAttribute("list", null);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ List<User> friends = userDao.searchUsers(u);
|
|
|
|
+ model.addAttribute("list", friends);
|
|
|
|
+ }
|
|
|
|
+ /*
|
|
|
|
+ User u = UserUtils.getUser();
|
|
|
|
+ if(! u.isAdmin()){
|
|
|
|
+ user.setCompany(UserUtils.getSelectCompany());
|
|
|
|
+ }
|
|
|
|
+ List<User> friends = userDao.searchUsers(user);*/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return "modules/iim/search_user";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 添加好友--->常用联系人
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "addFriend")
|
|
|
|
+ public String addFriend(String ids, RedirectAttributes redirectAttributes) {
|
|
|
|
+ String idArray[] = ids.split(",");
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ for (String id : idArray) {
|
|
|
|
+ if (userDao.findFriend(currentUser.getId(), id) == null) {
|
|
|
|
+
|
|
|
|
+ userDao.insertFriend(IdGen.uuid(), currentUser.getId(), id,"0","0");// 添加对方为好友
|
|
|
|
+ userDao.insertFriend(IdGen.uuid(), id,
|
|
|
|
+ currentUser.getId(),"0","1");//同时把自己添加为对方的好友
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "添加好友成功");
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/iim/contact/myFriends/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 删除好友
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "delFriend")
|
|
|
|
+ public String delFriend(String id, RedirectAttributes redirectAttributes) {
|
|
|
|
+ User friend = UserUtils.get(id);
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ if (friend != null && userDao.findFriend(currentUser.getId(), friend.getId()) != null) {
|
|
|
|
+ userDao.deleteFriend(currentUser.getId(), friend.getId());// 删除好友
|
|
|
|
+ userDao.deleteFriend(friend.getId(),
|
|
|
|
+ currentUser.getId());//同时把自己从对方的好友列表删除
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/iim/contact/myFriends/?repage";
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 确认通过好友
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "friendAudit")
|
|
|
|
+ public String friendAudit(String id, RedirectAttributes redirectAttributes) {
|
|
|
|
+ User friend = UserUtils.get(id);
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ if (friend != null && userDao.findFriend(currentUser.getId(), friend.getId()) == null) {
|
|
|
|
+ userDao.friendAudit(currentUser.getId(), friend.getId());// 确认通过好友
|
|
|
|
+ userDao.friendAudit(friend.getId(),
|
|
|
|
+ currentUser.getId());//同时把自己从对方的好友列表确认通过好友
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/iim/contact/myFriends/?repage";
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 拒绝通过好友
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "friendAuditNo")
|
|
|
|
+ public String friendAuditNo(String id, RedirectAttributes redirectAttributes) {
|
|
|
|
+ User friend = UserUtils.get(id);
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ if (friend != null && userDao.findFriend(currentUser.getId(), friend.getId()) == null) {
|
|
|
|
+ userDao.friendAuditNo(currentUser.getId(), friend.getId());// 确认通过好友
|
|
|
|
+ userDao.friendAuditNo(friend.getId(),
|
|
|
|
+ currentUser.getId());//同时把自己从对方的好友列表确认通过好友
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/iim/contact/myFriends/?repage";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打开我的好友列表--->常用联系人列表
|
|
|
|
+ *
|
|
|
|
+ * @param user
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "myFriends")
|
|
|
|
+ public String myFriends(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ List<User> friends = userDao.findFriends(currentUser);
|
|
|
|
+ model.addAttribute("list", friends);
|
|
|
|
+ List<User> friendsAudit = userDao.findFriendsAudit(currentUser);
|
|
|
|
+ model.addAttribute("listAudit", friendsAudit);
|
|
|
|
+ return "modules/iim/myFriends";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打开我的好友列表--->常用联系人列表
|
|
|
|
+ *
|
|
|
|
+ * @param user
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "myFriendsAudit")
|
|
|
|
+ public String myFriendsAudit(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ List<User> friends = userDao.findFriendsAudit(currentUser);
|
|
|
|
+ model.addAttribute("list", friends);
|
|
|
|
+ return "modules/iim/myFriends";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 打开聊天窗口
|
|
|
|
+ *
|
|
|
|
+ * @param user
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "layerIM")
|
|
|
|
+ public String layerIM(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ List<User> list = systemService.findUser(user);
|
|
|
|
+ model.addAttribute("list", list);
|
|
|
|
+ return "modules/iim/layerIM";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * layim初始化信息
|
|
|
|
+ *
|
|
|
|
+ * @param user
|
|
|
|
+ * @param request
|
|
|
|
+ * @param response
|
|
|
|
+ * @param model
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "friend")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public LayJson getFriend(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ LayJsonData data = new LayJsonData();
|
|
|
|
+
|
|
|
|
+ data.getFriend().clear();
|
|
|
|
+ LayJson j = new LayJson();
|
|
|
|
+ j.setCode(0);
|
|
|
|
+ // 我的个人信息
|
|
|
|
+ Mine m = new Mine();
|
|
|
|
+ m.setId(UserUtils.getUser().getId());
|
|
|
|
+ m.setUsername(UserUtils.getUser().getName());
|
|
|
|
+ m.setStatus("online");
|
|
|
|
+ m.setRemark(UserUtils.getUser().getSign());
|
|
|
|
+ m.setAvatar(UserUtils.getUser().getPhoto());
|
|
|
|
+ data.setMine(m);
|
|
|
|
+
|
|
|
|
+ // 我的好友--->常用联系人
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ List<User> friends = userDao.findFriends(currentUser);
|
|
|
|
+ FriendGroup friendGroup = new FriendGroup();
|
|
|
|
+ friendGroup.setGroupname("我的好友");
|
|
|
|
+ friendGroup.setId(1);
|
|
|
|
+ friendGroup.setOnline(friends.size());
|
|
|
|
+ for (User u : friends) {
|
|
|
|
+ Friend friend = new Friend();
|
|
|
|
+ friend.setId(u.getId());
|
|
|
|
+ friend.setUsername(u.getName());
|
|
|
|
+ friend.setAvatar(u.getPhoto());
|
|
|
|
+ friend.setSign(u.getSign());
|
|
|
|
+ friendGroup.getList().add(friend);
|
|
|
|
+ }
|
|
|
|
+ data.getFriend().add(friendGroup);
|
|
|
|
+
|
|
|
|
+ // 按部门显示联系人
|
|
|
|
+ //List<Office> officeList = officeService.findList(false);
|
|
|
|
+ Office company = UserUtils.getSelectCompany();
|
|
|
|
+ if(!"1".equals(company.getId())){
|
|
|
|
+ List<Office> officeList = officeService.findByParentIdsCompany(UserUtils.getSelectCompany(), UserUtils.getSelectOffice());
|
|
|
|
+ int index = 1;
|
|
|
|
+ for (Office office : officeList) {
|
|
|
|
+ user.setOffice(office);
|
|
|
|
+ user.setCompany(UserUtils.getSelectCompany());
|
|
|
|
+ List<User> users = userDao.findListByOffice(user);
|
|
|
|
+ FriendGroup fgroup = new FriendGroup();
|
|
|
|
+ fgroup.setGroupname(office.getName());
|
|
|
|
+ fgroup.setOnline(users.size());
|
|
|
|
+ fgroup.setId(++index);
|
|
|
|
+ for (User u : users) {
|
|
|
|
+ if(currentUser.getId().equals(u.getId())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ Friend friend = new Friend();
|
|
|
|
+ friend.setId(u.getId());
|
|
|
|
+ friend.setAvatar(u.getPhoto());
|
|
|
|
+ friend.setUsername(u.getName());
|
|
|
|
+ friend.setSign(u.getSign());
|
|
|
|
+ fgroup.getList().add(friend);
|
|
|
|
+ }
|
|
|
|
+ data.getFriend().add(fgroup);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 不属于任何部门的联系人
|
|
|
|
+ /*user.setOffice(null);
|
|
|
|
+ List<User> users = userDao.findListByOffice(user);
|
|
|
|
+ FriendGroup group = new FriendGroup();
|
|
|
|
+ group.setGroupname("未分组");
|
|
|
|
+ group.setOnline(users.size());
|
|
|
|
+ group.setId(++index);
|
|
|
|
+ for (User u : users) {
|
|
|
|
+ Friend friend = new Friend();
|
|
|
|
+ friend.setId(u.getLoginName());
|
|
|
|
+ friend.setUsername(u.getName());
|
|
|
|
+ friend.setAvatar(u.getPhoto());
|
|
|
|
+ friend.setSign(u.getSign());
|
|
|
|
+ group.getList().add(friend);
|
|
|
|
+ }
|
|
|
|
+ data.getFriend().add(group);*/
|
|
|
|
+
|
|
|
|
+ // 用户自己创建的群组和属于的群组
|
|
|
|
+
|
|
|
|
+ // 查找我属于的群组
|
|
|
|
+ List<LayGroup> memberLayGroupList = layGroupService.findGroupList(UserUtils.getUser());
|
|
|
|
+
|
|
|
|
+ for (LayGroup g : memberLayGroupList) {
|
|
|
|
+ data.getGroup().add(g);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ j.setData(data);
|
|
|
|
+ return j;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 群组成员接口
|
|
|
|
+ *
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "getMembers")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public LayJson getMembers(LayGroup group) {
|
|
|
|
+ LayGroupJsonData data = new LayGroupJsonData();
|
|
|
|
+ group = layGroupService.get(group.getId());
|
|
|
|
+ // 设置群主
|
|
|
|
+ data.getOwner().put("username", group.getCreateBy().getName());
|
|
|
|
+ data.getOwner().put("id", group.getCreateBy().getId());
|
|
|
|
+ data.getOwner().put("avatar", group.getCreateBy().getPhoto());
|
|
|
|
+ data.getOwner().put("sign", group.getCreateBy().getSign());
|
|
|
|
+ // 将群主添加到群聊第一个
|
|
|
|
+
|
|
|
|
+ List<LayGroupUser> zlist = group.getLayGroupUserList();
|
|
|
|
+ for (LayGroupUser lgUser : zlist) {
|
|
|
|
+ Friend friend = new Friend();
|
|
|
|
+ friend.setUsername(lgUser.getUser().getName());
|
|
|
|
+ friend.setId(lgUser.getUser().getId());
|
|
|
|
+ friend.setAvatar(lgUser.getUser().getPhoto());
|
|
|
|
+ friend.setSign(lgUser.getUser().getSign());
|
|
|
|
+ data.getList().add(friend);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ LayJson j = new LayJson();
|
|
|
|
+ j.setData(data);
|
|
|
|
+ return j;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @RequestMapping(value = { "uploadImage", "uploadFile" })
|
|
|
|
+ public String uploadImage(HttpServletRequest request, HttpServletResponse response, MultipartFile file)
|
|
|
|
+ throws IllegalStateException, IOException {
|
|
|
|
+ String filepath = "";
|
|
|
|
+ String content = null;
|
|
|
|
+ LayFileJsonData data = new LayFileJsonData();
|
|
|
|
+ String contentType = "";
|
|
|
|
+ // 判断文件是否为空
|
|
|
|
+ if (!file.isEmpty()) {
|
|
|
|
+ contentType = file.getContentType();
|
|
|
|
+ // 文件保存路径
|
|
|
|
+ String realPath ="messages/"+DateUtils.formatDate(new Date())+"/"+ UserUtils.getPrincipal() + "/";
|
|
|
|
+ OSSClientUtil ossUtil = new OSSClientUtil();
|
|
|
|
+ String newName = System.currentTimeMillis()+"-"+file.getOriginalFilename();
|
|
|
|
+
|
|
|
|
+ ossUtil.uploadFile2OSS(file.getInputStream(),realPath,newName);
|
|
|
|
+ filepath = Global.getAliDownloadUrl() + "/" + realPath + newName;
|
|
|
|
+
|
|
|
|
+ data.setName(file.getOriginalFilename());
|
|
|
|
+ data.setSrc(filepath);
|
|
|
|
+ }
|
|
|
|
+ ObjectMapper mapper = new ObjectMapper();
|
|
|
|
+ HashMap<String, Object> map = new HashMap<String, Object>();
|
|
|
|
+ map.put("code", "0");
|
|
|
|
+ map.put("data", data);
|
|
|
|
+
|
|
|
|
+ content = mapper.writeValueAsString(map);
|
|
|
|
+ return content;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @RequestMapping(value = "friendStatus")
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public AjaxJson getFriendStatus(User user,boolean flag,String status, HttpServletRequest request, HttpServletResponse response, Model model) {
|
|
|
|
+ AjaxJson data = new AjaxJson();
|
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
+ // 我的好友--->常用联系人
|
|
|
|
+ User currentUser = UserUtils.getUser();
|
|
|
|
+ List<User> friends = userDao.findFriends(currentUser);
|
|
|
|
+ List<String> ids = null;
|
|
|
|
+ if(friends!=null&&friends.size()>0) {
|
|
|
|
+ ids = new ArrayList<>(friends.size());
|
|
|
|
+ for (User u : friends) {
|
|
|
|
+ if ("online".equals(SmackUtils.IsUserOnLine(u.getId()))) {
|
|
|
|
+ stringBuilder.append(u.getId()).append(",");
|
|
|
|
+ }
|
|
|
|
+ ids.add(u.getId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 按部门显示联系人
|
|
|
|
+ //List<Office> officeList = officeService.findList(false);
|
|
|
|
+ Office company = UserUtils.getSelectCompany();
|
|
|
|
+ if(!"1".equals(company.getId())){
|
|
|
|
+ List<Office> officeList = officeService.findByParentIdsCompany(UserUtils.getSelectCompany(), UserUtils.getSelectOffice());
|
|
|
|
+ for (Office office : officeList) {
|
|
|
|
+ user.setOffice(office);
|
|
|
|
+ user.setCompany(UserUtils.getSelectCompany());
|
|
|
|
+ List<User> users = userDao.findListByOffice(user);
|
|
|
|
+ for (User u : users) {
|
|
|
|
+ if((ids!=null&&ids.contains(u.getId()))||currentUser.getId().equals(u.getId())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+// if("online".equals(SmackUtils.IsUserOnLine(u.getId()))){
|
|
|
|
+// stringBuilder.append(u.getId()).append(",");
|
|
|
|
+// }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ final String users = stringBuilder.toString();
|
|
|
|
+ data.getBody().put("userStr", users);
|
|
|
|
+ if(flag){
|
|
|
|
+ if(StringUtils.isBlank(status)){
|
|
|
|
+ status = "online";
|
|
|
|
+ }
|
|
|
|
+ final JSONObject body = new JSONObject();
|
|
|
|
+ body.put("id",currentUser.getId());
|
|
|
|
+ body.put("status",status);
|
|
|
|
+ final String string = body.toJSONString();
|
|
|
|
+ if(StringUtils.isNotBlank(users)) {
|
|
|
|
+ poolExecutor.execute(new Runnable() {
|
|
|
|
+ @Override
|
|
|
|
+ public void run() {
|
|
|
|
+ String[] split = users.split(",");
|
|
|
|
+ Set<String> set = new HashSet<>(split.length * 2);
|
|
|
|
+ set.addAll(Arrays.asList(split));
|
|
|
|
+ for (String u : set) {
|
|
|
|
+ //SmackUtils.sendSmackMessage(u, string, "_online_all_status_");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return data;
|
|
|
|
+ }
|
|
|
|
+}
|