Kaynağa Gözat

feat:view status,file download

lihao16 7 ay önce
ebeveyn
işleme
ef9518fa50

+ 9 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/iit/IitPushUserRelController.java

@@ -70,6 +70,15 @@ public class IitPushUserRelController extends BaseController {
         return success(iitPushUserRelService.selectIitPushUserRelById(id));
     }
 
+    /**
+     * 获取消息管理详细信息,更新已读状态
+     */
+    @PreAuthorize("@ss.hasPermi('iit:message:query')")
+    @GetMapping(value = "/info/{id}")
+    public AjaxResult getMessageInfo(@PathVariable("id") Long id) {
+        return success(iitPushUserRelService.getMessageInfo(id));
+    }
+
     /**
      * 新增消息管理
      */

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/iit/mapper/IitPushUserRelMapper.java

@@ -1,6 +1,7 @@
 package com.ruoyi.iit.mapper;
 
 import com.ruoyi.iit.domain.IitPushUserRel;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -73,4 +74,11 @@ public interface IitPushUserRelMapper {
      * @return
      */
     public List<IitPushUserRel> selectMyselfMessage(IitPushUserRel iitPushUserRel);
+
+    /**
+     * 查询消息详情
+     * @param id
+     * @return
+     */
+    public IitPushUserRel getMessageInfo(@Param("id") Long id);
 }

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/iit/service/IIitPushUserRelService.java

@@ -65,4 +65,11 @@ public interface IIitPushUserRelService {
      * @return
      */
     public List<IitPushUserRel> selectIitPushUserRelListV2(IitPushUserRel iitPushUserRel);
+
+    /**
+     * 获取详情,更新已读状态
+     * @param id
+     * @return
+     */
+    public IitPushUserRel getMessageInfo(Long id);
 }

+ 19 - 0
ruoyi-system/src/main/java/com/ruoyi/iit/service/impl/IitPushUserRelServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.iit.service.impl;
 
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.iit.domain.IitPushUserRel;
 import com.ruoyi.iit.mapper.IitPushUserRelMapper;
@@ -31,6 +32,24 @@ public class IitPushUserRelServiceImpl implements IIitPushUserRelService {
         return iitPushUserRelMapper.selectIitPushUserRelById(id);
     }
 
+    /**
+     * 查询消息管理 更新已读状态
+     * @param id
+     * @return
+     */
+    @Override
+    public IitPushUserRel getMessageInfo(Long id) {
+        // 查询数据
+        IitPushUserRel result = iitPushUserRelMapper.getMessageInfo(id);
+        // 更新已读状态
+        if (result.getIsView() != 1) {
+            result.setIsView(1);
+            result.setViewTime(DateUtils.getNowDate());
+            iitPushUserRelMapper.updateIitPushUserRel(result);
+        }
+        return result;
+    }
+
     /**
      * 查询消息管理列表
      *

+ 5 - 0
ruoyi-system/src/main/resources/mapper/iit/IitPushUserRelMapper.xml

@@ -67,6 +67,11 @@
         order by u.push_time desc
     </select>
 
+    <select id="getMessageInfo" parameterType="Long" resultMap="IitPushUserRelResult">
+        <include refid="messageInfo" />
+        where u.id = #{id}
+    </select>
+
     <select id="selectIitPushUserRelById" parameterType="Long" resultMap="IitPushUserRelResult">
         <include refid="selectIitPushUserRelVo"/>
         where id = #{id}

+ 7 - 0
ruoyi-ui/src/api/iit/message.js

@@ -24,6 +24,13 @@ export function getMessage(id) {
   })
 }
 
+export function getMessageInfo(id) {
+  return request({
+    url: '/iit/message/info/' + id,
+    method: 'get'
+  })
+}
+
 // 新增消息管理
 export function addMessage(data) {
   return request({

+ 72 - 13
ruoyi-ui/src/views/iit/message/index.vue

@@ -53,13 +53,9 @@
       <el-table-column label="已读时间" align="left" prop="viewTime" width="160" :formatter="formatViewTime"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['iit:message:edit']"
-          >文件详情</el-button>
+          <el-button size="mini" type="text" icon="el-icon-view" @click="handleMessageInfo(scope.row)"
+                     v-hasPermi="['iit:message:edit']">消息详情
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -73,19 +69,70 @@
     />
 
     <!-- 添加或修改消息管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+    <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="70px">
+        <el-row>
+          <el-col :span="11">
+            <el-form-item label="文件名称" prop="fileName">
+              <el-input v-model="form.fileName" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="文件类型" prop="fileType">
+              <el-select v-model="form.fileType" :disabled="true">
+                <el-option
+                  v-for="dict in dict.type.iit_file_type"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="5">
+            <el-form-item label="已读状态" prop="viewStatus">
+              <el-input v-model="form.viewStatus" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="推送用户" prop="pushName">
+              <el-input v-model="form.pushName" style="width: 200px" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="推送时间" prop="pushTime">
+              <el-input v-model="form.pushTime" style="width: 200px" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="接收用户" prop="userName">
+              <el-input v-model="form.userName" style="width: 200px" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="接收时间" prop="viewTime">
+              <el-input v-model="form.viewTime" style="width: 200px" :disabled="true"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-form-item label="文件备注" prop="fileRemark">
+          <el-input type="textarea" :rows="4" v-model="form.fileRemark" :disabled="true"/>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
+        <el-button type="primary" @click="downloadFile">文件下载</el-button>
+        <el-button @click="cancel">关 闭</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { getMessage, delMessage, addMessage, updateMessage, listMessagePage} from "@/api/iit/message";
+import {addMessage, delMessage, getMessage, getMessageInfo, listMessagePage, updateMessage} from "@/api/iit/message";
 
 export default {
   name: "Message",
@@ -159,6 +206,7 @@ export default {
         userName: null,
         pushTime: null,
         isView: null,
+        viewStatus: null,
         viewTime: null
       };
       this.resetForm("form");
@@ -176,7 +224,7 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
     /** 新增按钮操作 */
@@ -185,6 +233,14 @@ export default {
       this.open = true;
       this.title = "添加消息管理";
     },
+    handleMessageInfo(row) {
+      getMessageInfo(row.id).then(response => {
+        this.form = response.data;
+        this.form.viewStatus = response.data.isView == 1 ? "已读" : "未读";
+        this.open = true;
+        this.title = "消息详情";
+      });
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
@@ -195,6 +251,9 @@ export default {
         this.title = "修改消息管理";
       });
     },
+    downloadFile() {
+      window.open( process.env.VUE_APP_BASE_API + this.form.fileUrl);
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {