/**
* Copyright © 2015-2020 JeePlus All rights reserved.
*/
package com.jeeplus.modules.iim.web;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.servlet.mvc.support.RedirectAttributes;
import com.jeeplus.common.config.Global;
import com.jeeplus.common.utils.IdGen;
import com.jeeplus.common.web.BaseController;
import com.jeeplus.modules.iim.entity.Friend;
import com.jeeplus.modules.iim.entity.Group;
import com.jeeplus.modules.iim.entity.LayJson;
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
* @version 2015-11-09
*/
@Controller
@RequestMapping(value = "${adminPath}/iim/contact")
public class ContactController extends BaseController {
@Autowired
private SystemService systemService;
@Autowired
private UserDao userDao;
@Autowired
private OfficeService officeService;
/**
* 打开通讯录
* @param user
* @param request
* @param response
* @param model
* @return
*/
@RequestMapping(value = {"index", ""})
public String index(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
List list = systemService.findUser(user);
model.addAttribute("list", list);
return "modules/iim/contacts";
}
/**
* 查找
* @param user
* @param request
* @param response
* @param model
* @return
*/
@RequestMapping(value = "searchUsers")
public String searchUsers(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
List friends = userDao.searchUsers(user);
model.addAttribute("list", friends);
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);//添加对方为好友
// userDao.insertFriend(IdGen.uuid(), id, currentUser.getId());//同时把自己添加为对方的好友
}
}
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";
}
/**
* 打开我的好友列表--->常用联系人列表
* @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 friends = userDao.findFriends(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 list = systemService.findUser(user);
model.addAttribute("list", list);
return "modules/iim/layerIM";
}
@RequestMapping(value="friend")
@ResponseBody
public LayJson getFriend(User user, HttpServletRequest request, HttpServletResponse response, Model model){
LayJson j = new LayJson();
j.setStatus(1);
//我的好友--->常用联系人
User currentUser = UserUtils.getUser();
List friends = userDao.findFriends(currentUser);
Group friendGroup = new Group();
friendGroup.setName("我的好友");
friendGroup.setId(1);
friendGroup.setNums(friends.size());
for(User u : friends){
Friend friend = new Friend();
friend.setId(u.getLoginName());
friend.setName(u.getName());
friend.setFace(u.getPhoto());
friendGroup.getItem().add(friend);
}
j.getData().add(friendGroup);
List officeList = officeService.findList(true);
int index=1;
for(Office office : officeList){
user.setOffice(office);
List users = userDao.findListByOffice(user);
Group group = new Group();
group.setName(office.getName());
group.setNums(users.size());
group.setId(++index);
for(User u : users){
Friend friend = new Friend();
friend.setId(u.getLoginName());
friend.setName(u.getName());
friend.setFace(u.getPhoto());
group.getItem().add(friend);
}
j.getData().add(group);
}
user.setOffice(null);
List users = userDao.findListByOffice(user);
Group group = new Group();
group.setName("未分组");
group.setNums(users.size());
group.setId(++index);
for(User u : users){
Friend friend = new Friend();
friend.setId(u.getLoginName());
friend.setName(u.getName());
friend.setFace(u.getPhoto());
group.getItem().add(friend);
}
j.getData().add(group);
return j;
}
/**
* 群组列表接口 预留待开发
* @return
*/
@RequestMapping(value="group")
@ResponseBody
public LayJson getGroup(){
LayJson j = new LayJson();
j.setStatus(1);
return j;
}
/**
* 最近联系人接口 预留
* @return
*/
@RequestMapping(value="chatLog")
@ResponseBody
public LayJson getChatLog(){
LayJson j = new LayJson();
j.setStatus(1);
return j;
}
/**
* 群组成员接口 预留
* @return
*/
@RequestMapping(value="groups")
@ResponseBody
public LayJson getGroups(){
LayJson j = new LayJson();
j.setStatus(1);
return j;
}
}