Selaa lähdekoodia

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

wangzhe 4 vuotta sitten
vanhempi
commit
4763314ee9

+ 27 - 8
leiSP-admin/src/main/resources/templates/system/notice/add.html

@@ -40,15 +40,24 @@
                 </div>
             </div>
         </div>
+        <div class="form-group">
+            <label class="label_wid control-label">是否群发:</label>
+            <div class="col-sm-5">
+                <select name="isGroupNotice" class="form-control m-b" onchange="changeGroupNotice(this)">
+                    <option value="1">是</option>
+                    <option value="0">否</option>
+                </select>
+            </div>
+        </div>
         <input name="deptId" type="hidden" id="treeId"/>
-        <button onclick="selectDeptTree()">接收部门</button>
-        <ul id="deptUL">
+        <button onclick="selectDeptTree()" class="hidden-group" hidden>接收部门</button>
+        <ul id="deptUL" class="hidden-group" >
 
         </ul>
 
 
-        <button onclick="confirmReport()">接收人员</button>
-        <ul id="userUL">
+        <button onclick="confirmReport()" class="hidden-group" hidden>接收人员</button>
+        <ul id="userUL" class="hidden-group" >
 
         </ul>
     </form>
@@ -56,6 +65,17 @@
 <th:block th:include="include :: footer"/>
 <th:block th:include="include :: summernote-js"/>
 <script type="text/javascript">
+    //是否群发
+    function changeGroupNotice(that) {
+        var isGroupNotice = $(that).val();
+        //alert(isGroupNotice)
+        if(isGroupNotice == 1){//群发模式 关闭人员选择器
+            $(".hidden-group").hide();
+
+        }else {//选择模式 打开人员选择器
+            $(".hidden-group").show();
+        }
+    }
     var prefix = ctx + "system/notice";
 
     $('.summernote').summernote({
@@ -140,8 +160,8 @@
             var globalDeptIds = '';
             var deptIdArray = document.getElementsByClassName("dept-li-data");
             for (var i = 0; i < deptIdArray.length; i++) {
-                alert(deptIdArray[i].value)
-                globalDeptIds += elements[i].value + ",";
+                //alert(deptIdArray[i].value)
+                globalDeptIds += deptIdArray[i].value + ",";
             }
             if(globalDeptIds.startsWith(",") != -1){
                 globalDeptIds = globalDeptIds.substr(0,globalDeptIds.length-1);
@@ -182,8 +202,7 @@
                 $("#userUL").append(li);
             })
             //globalUserIds = userIds;
-            $("#globalDeptIds").val(userIds)
-            //alert(globalUserIds)
+            $("#globalUserIds").val(userIds)
             layer.close(index);
         }
 

+ 4 - 0
leiSP-system/src/main/java/com/sooka/system/domain/SysNotice.java

@@ -21,6 +21,10 @@ public class SysNotice extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
+    private String isGroupNotice;//是否群发 1是 0否 数据库新增字段
+    private String globalUserIds;//非数据库新增字段 通知用户集合
+    private String globalDeptIds;//非数据库新增字段 通知部门集合
+
     private List depts;
     /**
      * 所属林场部门id

+ 0 - 3
leiSP-system/src/main/java/com/sooka/system/domain/SysNoticeTo.java

@@ -21,9 +21,6 @@ public class SysNoticeTo extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 
-    private String globalUserIds;
-    private String globalDeptIds;
-
     /** $column.columnComment */
     private String id;
 

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

@@ -1,15 +1,19 @@
 package com.sooka.system.service.impl;
 
 import java.util.List;
+import java.util.UUID;
 
 import com.sooka.system.domain.SysNotice;
 import com.sooka.system.domain.SysNoticeTo;
+import com.sooka.system.mapper.SysNoticeToMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.sooka.common.core.text.Convert;
 import com.sooka.system.mapper.SysNoticeMapper;
 import com.sooka.system.service.ISysNoticeService;
 
+import javax.annotation.Resource;
+
 /**
  * 公告 服务层实现
  *
@@ -19,8 +23,10 @@ import com.sooka.system.service.ISysNoticeService;
 @Service
 public class SysNoticeServiceImpl implements ISysNoticeService
 {
-    @Autowired
+    @Resource
     private SysNoticeMapper noticeMapper;
+    @Resource
+    private SysNoticeToMapper sysNoticeToMapper;
 
     /**
      * 查询公告信息
@@ -55,9 +61,26 @@ public class SysNoticeServiceImpl implements ISysNoticeService
     @Override
     public int insertNotice(SysNotice notice)
     {
+        int lines = noticeMapper.insertNotice(notice);
         SysNoticeTo sysNoticeTo = new SysNoticeTo();
-        sysNoticeTo.getNoticeId();
-        return noticeMapper.insertNotice(notice);
+        sysNoticeTo.setNoticeId(notice.getNoticeId());
+        String[] userIds = notice.getGlobalUserIds().split(",");
+        System.out.println(notice.getGlobalUserIds()+"=notice.getGlobalUserIds");
+        System.out.println(notice.getGlobalDeptIds()+"=notice.getGlobalDeptIds");
+        System.out.println(userIds.length+"=userIds.length");
+        System.out.println(notice.getIsGroupNotice()+"=notice.getIsGroupNotice()");
+        if(notice.getIsGroupNotice().equals("1")){//群发模式 不插入扩展表
+            System.out.println("群发模式 不插入扩展表");
+            return lines;
+        }
+        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;
     }
 
     /**

+ 9 - 2
leiSP-system/src/main/resources/mapper/system/SysNoticeMapper.xml

@@ -17,10 +17,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="remark"         column="remark"          />
         <result property="eventId" column="event_id"/>
         <result property="reserveplanType" column="reserveplan_type"/>
+        <result property="isGroupNotice" column="is_group_notice"/>
     </resultMap>
 
     <sql id="selectNoticeVo">
-        select t.dept_id,event_id,reserveplan_type,
+        select t.dept_id,event_id,reserveplan_type,t.is_group_notice,
         (select dept_name from sys_dept where dept_id=t.dept_id) dept_name,
         t.create_user_id, t.notice_id, ifnull(t.notice_title,"") notice_title, ifnull(t.notice_type,"") notice_type,
         ifnull(t.notice_content,"") notice_content, t.status, t.create_by, t.create_time, t.update_by, t.update_time, t.remark
@@ -42,6 +43,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="noticeType != null and noticeType != ''">
 				AND notice_type = #{noticeType}
 			</if>
+            <if test="isGroupNotice != null and isGroupNotice != ''">
+				AND is_group_notice = #{isGroupNotice}
+			</if>
 			<if test="createBy != null and createBy != ''">
 				AND create_by like concat('%', #{createBy}, '%')
 			</if>
@@ -49,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by create_time desc
     </select>
 
-    <insert id="insertNotice" parameterType="SysNotice">
+    <insert id="insertNotice" parameterType="SysNotice" useGeneratedKeys="true" keyProperty="noticeId">
         insert into sys_notice (
 			<if test="noticeTitle != null and noticeTitle != '' ">notice_title, </if>
 			<if test="noticeType != null and noticeType != '' ">notice_type, </if>
@@ -59,6 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="createBy != null and createBy != ''">create_by,</if>
         <if test="eventId != null and eventId != ''">event_id,</if>
         <if test="reserveplanType != null and reserveplanType != ''">reserveplan_type,</if>
+        <if test="isGroupNotice != null and isGroupNotice != ''">is_group_notice,</if>
 
  			create_time
  		)values(
@@ -70,6 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
         <if test="eventId != null and eventId != ''">#{eventId},</if>
         <if test="reserveplanType != null and reserveplanType != ''">#{reserveplanType},</if>
+        <if test="isGroupNotice != null and isGroupNotice != ''">#{isGroupNotice},</if>
  			sysdate()
 		)
     </insert>
@@ -82,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="noticeContent != null">notice_content = #{noticeContent}, </if>
             <if test="status != null and status != ''">status = #{status}, </if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+            <if test="isGroupNotice != null and isGroupNotice != ''">is_group_notice = #{isGroupNotice},</if>
  			update_time = sysdate()
         </set>
         where notice_id = #{noticeId}