Procházet zdrojové kódy

系统通知(群发模式,选择模式)

wangzhe před 4 roky
rodič
revize
63a99abc09

+ 9 - 0
leiSP-system/src/main/java/com/sooka/system/mapper/SysNoticeToMapper.java

@@ -3,6 +3,7 @@ package com.sooka.system.mapper;
 import com.sooka.system.domain.SysNoticeTo;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * 【请填写功能名称】Mapper接口
@@ -59,4 +60,12 @@ public interface SysNoticeToMapper
      * @return 结果
      */
     public int deleteSysNoticeToByIds(String[] ids);
+
+    /**
+     * 根据部门查询用户id集合【请填写功能名称】
+     *
+     * @param deptIds 部门ID
+     * @return 用户ID集合
+     */
+    public Long[] selectUserIdsByDeptIds(String[] deptIds);
 }

+ 24 - 3
leiSP-system/src/main/java/com/sooka/system/service/impl/SysNoticeServiceImpl.java

@@ -1,7 +1,6 @@
 package com.sooka.system.service.impl;
 
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 import com.sooka.system.domain.SysNotice;
 import com.sooka.system.domain.SysNoticeTo;
@@ -73,12 +72,34 @@ public class SysNoticeServiceImpl implements ISysNoticeService
             System.out.println("群发模式 不插入扩展表");
             return lines;
         }
+
+        Long[] userIdArray = sysNoticeToMapper.selectUserIdsByDeptIds(notice.getGlobalDeptIds().split(","));//根据部门选择的用户ID
+        Set userIdSet = new HashSet();
+        for (Object obj:userIdArray) {
+            userIdSet.add(obj);
+        }
+        System.out.println(userIdSet.size()+"=userIdSet.size()");
         for (int i = 0; i < userIds.length; i++) {
+            if("".equals(userIds[i])){
+                System.out.println(userIds[i]+"=userIds[i] 为空");
+                continue;
+            }
+            userIdSet.add(Long.valueOf(userIds[i]));//
+        }
+
+        Iterator<Long> iterator = userIdSet.iterator();
+        while (iterator.hasNext()){
+            sysNoticeTo.setId(UUID.randomUUID().toString().replace("-",""));
+            sysNoticeTo.setUserId(iterator.next());
+            sysNoticeToMapper.insertSysNoticeTo(sysNoticeTo);
+        }
+
+        /*for (int i = 0; i < userIds.length; i++) {
             sysNoticeTo.setId(UUID.randomUUID().toString().replace("-",""));
             System.out.println(userIds[i]+"=userIds[i]");
             sysNoticeTo.setUserId(Long.valueOf(userIds[i]));
             sysNoticeToMapper.insertSysNoticeTo(sysNoticeTo);
-        }
+        }*/
         //System.out.println(notice.getNoticeId()+"=noticeget.NoticeId");
         return lines;
     }

+ 7 - 0
mybusiness/src/main/resources/mapper/grid/manager/SysNoticeToMapper.xml

@@ -100,4 +100,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
 
+    <select id="selectUserIdsByDeptIds" parameterType="String" resultType="Long">
+        select user_id from sys_user where dept_id in
+        <foreach item="deptId" collection="array" open="(" separator="," close=")">
+            #{deptId}
+        </foreach>
+    </select>
+
 </mapper>