ChatInfoServiceImpl.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.uas.demo.service.impl;
  2. import com.uas.demo.dao.ChatInfoDao;
  3. import com.uas.demo.dao.UserDao;
  4. import com.uas.demo.model.ChatInfo;
  5. import com.uas.demo.model.Enterprise;
  6. import com.uas.demo.model.UserInfo;
  7. import com.uas.demo.service.ChatInfoService;
  8. import com.uas.demo.service.EnterpriseService;
  9. import com.uas.demo.service.UserInfoService;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.util.StringUtils;
  13. import java.util.Date;
  14. @Service
  15. public class ChatInfoServiceImpl implements ChatInfoService {
  16. private final UserDao userDao;
  17. private final UserInfoService userInfoService;
  18. private final EnterpriseService enterpriseService;
  19. private final ChatInfoDao chatInfoDao;
  20. @Autowired
  21. public ChatInfoServiceImpl(UserDao userDao, UserInfoService userInfoService, EnterpriseService enterpriseService
  22. , ChatInfoDao chatInfoDao) {
  23. this.userDao = userDao;
  24. this.userInfoService = userInfoService;
  25. this.enterpriseService = enterpriseService;
  26. this.chatInfoDao = chatInfoDao;
  27. }
  28. @Override
  29. public ChatInfo generateChatInfoWhenUserVisitListOrChat(String userPhone, Enterprise enterprise) {
  30. // 验证参数信息
  31. if (StringUtils.isEmpty(userPhone) || enterprise == null || enterprise.getEnUU() == null) {
  32. return null;
  33. }
  34. // 获取用户缓存信息
  35. UserInfo userInfo = userInfoService.cacheUserInfoWhenUserVisitSystem(userPhone);
  36. assert userInfo != null;
  37. ChatInfo chatInfo = chatInfoDao.findByUserIdAndEnUU(userInfo.getUserId(), enterprise.getEnUU());
  38. if (chatInfo == null) {
  39. chatInfo = new ChatInfo();
  40. chatInfo.setUserInfo(userInfo);
  41. chatInfo.setUserId(userInfo.getUserId());
  42. chatInfo.setPhone(userInfo.getPhone());
  43. // 获取用户缓存企业信息
  44. enterprise = enterpriseService.cacheEnterpriseInfoWhenUserVisitSystem(enterprise);
  45. assert enterprise != null;
  46. chatInfo.setEnterprise(enterprise);
  47. chatInfo.setEnUU(enterprise.getEnUU());
  48. }
  49. // 更新聊天信息版本信息,并持久化
  50. chatInfo.setVersion(new Date().getTime());
  51. chatInfo = chatInfoDao.save(chatInfo);
  52. return chatInfo;
  53. }
  54. @Override
  55. public ChatInfo queryChatInfoWhenUserVisitWebSite(String id) {
  56. if (StringUtils.isEmpty(id)) {
  57. return null;
  58. }
  59. return chatInfoDao.findOne(id);
  60. }
  61. }