MessageMonitorServiceImpl.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package jnpf.message.service.impl;
  2. import jnpf.base.service.SuperServiceImpl;
  3. import com.baomidou.dynamic.datasource.annotation.DSTransactional;
  4. import jnpf.message.entity.MessageMonitorEntity;
  5. import jnpf.message.mapper.MessageMonitorMapper;
  6. import jnpf.message.model.messagemonitor.*;
  7. import jnpf.message.service.MessageMonitorService;
  8. import jnpf.permission.entity.UserEntity;
  9. import jnpf.permission.service.UserService;
  10. import cn.hutool.core.util.ObjectUtil;
  11. import jnpf.permission.service.AuthorizeService;
  12. import java.lang.reflect.Field;
  13. import com.baomidou.mybatisplus.annotation.TableField;
  14. import jnpf.util.DateUtil;
  15. import jnpf.util.JsonUtil;
  16. import jnpf.util.StringUtil;
  17. import jnpf.util.UserProvider;
  18. import org.springframework.stereotype.Service;
  19. import com.baomidou.mybatisplus.core.metadata.IPage;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  22. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  23. import java.util.*;
  24. /**
  25. * 消息监控
  26. * 版本: V3.2.0
  27. * 版权: 引迈信息技术有限公司(https://www.jnpfsoft.com)
  28. * 作者: JNPF开发平台组
  29. * 日期: 2022-08-22
  30. */
  31. @Service
  32. public class MessageMonitorServiceImpl extends SuperServiceImpl<MessageMonitorMapper, MessageMonitorEntity> implements MessageMonitorService {
  33. @Autowired
  34. private UserService userService;
  35. @Override
  36. public List<MessageMonitorEntity> getList(MessageMonitorPagination messageMonitorPagination) {
  37. return getTypeList(messageMonitorPagination, messageMonitorPagination.getDataType());
  38. }
  39. @Override
  40. public List<MessageMonitorEntity> getTypeList(MessageMonitorPagination messageMonitorPagination, String dataType) {
  41. String userId = UserProvider.getUser().getUserId();
  42. int total = 0;
  43. int messageMonitorNum = 0;
  44. QueryWrapper<MessageMonitorEntity> messageMonitorQueryWrapper = new QueryWrapper<>();
  45. //关键字
  46. if (ObjectUtil.isNotEmpty(messageMonitorPagination.getKeyword())) {
  47. messageMonitorNum++;
  48. messageMonitorQueryWrapper.lambda().and(t -> t.like(MessageMonitorEntity::getTitle, messageMonitorPagination.getKeyword()));
  49. }
  50. //消息类型
  51. if (ObjectUtil.isNotEmpty(messageMonitorPagination.getMessageType())) {
  52. messageMonitorNum++;
  53. messageMonitorQueryWrapper.lambda().eq(MessageMonitorEntity::getMessageType, messageMonitorPagination.getMessageType());
  54. }
  55. //发送时间
  56. if (ObjectUtil.isNotEmpty(messageMonitorPagination.getStartTime()) && ObjectUtil.isNotEmpty(messageMonitorPagination.getEndTime())) {
  57. messageMonitorNum++;
  58. messageMonitorQueryWrapper.lambda().ge(MessageMonitorEntity::getSendTime, new Date(messageMonitorPagination.getStartTime()))
  59. .le(MessageMonitorEntity::getSendTime, new Date(messageMonitorPagination.getEndTime()));
  60. }
  61. //消息来源
  62. if (ObjectUtil.isNotEmpty(messageMonitorPagination.getMessageSource())) {
  63. messageMonitorNum++;
  64. messageMonitorQueryWrapper.lambda().eq(MessageMonitorEntity::getMessageSource, messageMonitorPagination.getMessageSource());
  65. }
  66. //排序
  67. if (StringUtil.isEmpty(messageMonitorPagination.getSidx())) {
  68. messageMonitorQueryWrapper.lambda().orderByDesc(MessageMonitorEntity::getSendTime);
  69. } else {
  70. try {
  71. String sidx = messageMonitorPagination.getSidx();
  72. MessageMonitorEntity messageMonitorEntity = new MessageMonitorEntity();
  73. Field declaredField = messageMonitorEntity.getClass().getDeclaredField(sidx);
  74. declaredField.setAccessible(true);
  75. String value = declaredField.getAnnotation(TableField.class).value();
  76. messageMonitorQueryWrapper = "asc".equals(messageMonitorPagination.getSort().toLowerCase()) ? messageMonitorQueryWrapper.orderByAsc(value) : messageMonitorQueryWrapper.orderByDesc(value);
  77. } catch (NoSuchFieldException e) {
  78. e.printStackTrace();
  79. }
  80. }
  81. if (!"1".equals(dataType)) {
  82. if (total > 0 || total == 0) {
  83. Page<MessageMonitorEntity> page = new Page<>(messageMonitorPagination.getCurrentPage(), messageMonitorPagination.getPageSize());
  84. IPage<MessageMonitorEntity> userIPage = this.page(page, messageMonitorQueryWrapper);
  85. return messageMonitorPagination.setData(userIPage.getRecords(), userIPage.getTotal());
  86. } else {
  87. List<MessageMonitorEntity> list = new ArrayList();
  88. return messageMonitorPagination.setData(list, list.size());
  89. }
  90. } else {
  91. return this.list(messageMonitorQueryWrapper);
  92. }
  93. }
  94. @Override
  95. public MessageMonitorEntity getInfo(String id) {
  96. QueryWrapper<MessageMonitorEntity> queryWrapper = new QueryWrapper<>();
  97. queryWrapper.lambda().eq(MessageMonitorEntity::getId, id);
  98. return this.getOne(queryWrapper);
  99. }
  100. @Override
  101. public void create(MessageMonitorEntity entity) {
  102. this.save(entity);
  103. }
  104. @Override
  105. public boolean update(String id, MessageMonitorEntity entity) {
  106. entity.setId(id);
  107. return this.updateById(entity);
  108. }
  109. @Override
  110. public void delete(MessageMonitorEntity entity) {
  111. if (entity != null) {
  112. this.removeById(entity.getId());
  113. }
  114. }
  115. //子表方法
  116. //列表子表数据方法
  117. //验证表单唯一字段
  118. @Override
  119. public boolean checkForm(MessageMonitorForm form, int i) {
  120. int total = 0;
  121. if (total > 0) {
  122. return true;
  123. }
  124. return false;
  125. }
  126. @Override
  127. public void emptyMonitor(){
  128. QueryWrapper<MessageMonitorEntity> queryWrapper = new QueryWrapper<>();
  129. this.remove(queryWrapper);
  130. }
  131. @Override
  132. @DSTransactional
  133. public boolean delete(String[] ids) {
  134. if (ids.length > 0) {
  135. QueryWrapper<MessageMonitorEntity> queryWrapper = new QueryWrapper<>();
  136. queryWrapper.lambda().in(MessageMonitorEntity::getId, ids);
  137. return this.removeByIds(list(queryWrapper));
  138. }
  139. return false;
  140. }
  141. /**
  142. * 用户id转名称(多选)
  143. *
  144. * @param ids
  145. * @return
  146. */
  147. @Override
  148. public String userSelectValues(String ids) {
  149. if (StringUtil.isEmpty(ids)) {
  150. return ids;
  151. }
  152. if (ids.contains("[")){
  153. List<String> nameList = new ArrayList<>();
  154. List<String> jsonToList = JsonUtil.getJsonToList(ids, String.class);
  155. for (String userId : jsonToList){
  156. UserEntity info = userService.getInfo(userId);
  157. nameList.add(Objects.nonNull(info) ? info.getRealName()+ "/" + info.getAccount() : userId);
  158. }
  159. return String.join(";", nameList);
  160. }else {
  161. List<String> userInfoList = new ArrayList<>();
  162. String[] idList = ids.split(",");
  163. if (idList.length > 0) {
  164. for (String id : idList) {
  165. UserEntity userEntity = userService.getInfo(id);
  166. if (ObjectUtil.isNotEmpty(userEntity)) {
  167. String info = userEntity.getRealName() + "/" + userEntity.getAccount();
  168. userInfoList.add(info);
  169. }
  170. }
  171. }
  172. return String.join("-", userInfoList);
  173. }
  174. }
  175. }