zhangyuewww преди 2 години
родител
ревизия
9d4d67fe95

+ 4 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/IFoodInfoService.java

@@ -59,6 +59,10 @@ public interface IFoodInfoService{
 	@HttpMethod(description = "修改",  permissionName = "餐饮入驻信息管理")
 	public Boolean update(@NotNull @HttpParam(name = "foodInfo", type = HttpParamType.COMMON, description = "餐饮入驻信息") FoodInfo foodInfo)throws ServiceException;
 
+	@HttpMethod(description = "餐饮入驻审核",  permissionName = "餐饮入驻信息管理")
+	public Boolean handle(@NotNull @HttpParam(name = "foodInfo", type = HttpParamType.COMMON, description = "餐饮入驻信息") FoodInfo foodInfo)throws ServiceException;
+
+
 	@HttpMethod(description = "查询", permissionName = "餐饮入驻信息管理")
 	public FoodInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
 	

+ 63 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/INoticeMessageInfoService.java

@@ -0,0 +1,63 @@
+package com.iotechn.unimall.admin.api.tourism;
+
+
+import com.iotechn.unimall.data.domain.NoticeMessageInfo;
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 记录通知消息信息Service接口
+ * 
+ * @author jlb
+ * @date 2023-06-08
+ */
+@HttpOpenApi(group = "admin.tourism.noticeMessageInfo", description = "记录通知消息信息")
+public interface INoticeMessageInfoService{
+	@HttpMethod(description = "新增",   permissionName = "记录通知消息信息管理")
+	public Boolean add(@NotNull @HttpParam(name = "noticeMessageInfo", type = HttpParamType.COMMON, description = "记录通知消息信息") NoticeMessageInfo noticeMessageInfo)throws ServiceException;
+
+	@HttpMethod(description = "列表", permissionName = "记录通知消息信息管理")
+	public Page<NoticeMessageInfo> list(
+								@HttpParam(name = "sendId", type = HttpParamType.COMMON, description = "发送消息用户id") Long sendId,
+							@HttpParam(name = "receiveId", type = HttpParamType.COMMON, description = "接收消息用户id") Long receiveId,
+							@HttpParam(name = "newsTitle", type = HttpParamType.COMMON, description = "消息标题") String newsTitle,
+							@HttpParam(name = "newsContent", type = HttpParamType.COMMON, description = "消息内容") String newsContent,
+							@HttpParam(name = "newsType", type = HttpParamType.COMMON, description = "消息类型") String newsType,
+							@HttpParam(name = "newsFlag", type = HttpParamType.COMMON, description = "已读标识(1已读)") String newsFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除",permissionName = "记录通知消息信息管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改",  permissionName = "记录通知消息信息管理")
+	public Boolean update(@NotNull @HttpParam(name = "noticeMessageInfo", type = HttpParamType.COMMON, description = "记录通知消息信息") NoticeMessageInfo noticeMessageInfo)throws ServiceException;
+
+	@HttpMethod(description = "查询", permissionName = "记录通知消息信息管理")
+	public NoticeMessageInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表",  permissionName = "记录通知消息信息管理")
+	public String export(
+								@HttpParam(name = "sendId", type = HttpParamType.COMMON, description = "发送消息用户id") Long sendId,
+							@HttpParam(name = "receiveId", type = HttpParamType.COMMON, description = "接收消息用户id") Long receiveId,
+							@HttpParam(name = "newsTitle", type = HttpParamType.COMMON, description = "消息标题") String newsTitle,
+							@HttpParam(name = "newsContent", type = HttpParamType.COMMON, description = "消息内容") String newsContent,
+							@HttpParam(name = "newsType", type = HttpParamType.COMMON, description = "消息类型") String newsType,
+							@HttpParam(name = "newsFlag", type = HttpParamType.COMMON, description = "已读标识(1已读)") String newsFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 32 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/impl/FoodInfoServiceImpl.java

@@ -3,6 +3,8 @@ package com.iotechn.unimall.admin.api.tourism.impl;
 import java.util.List;
 
 import com.iotechn.unimall.app.api.user.UserService;
+import com.iotechn.unimall.data.domain.NoticeMessageInfo;
+import com.iotechn.unimall.data.mapper.NoticeMessageInfoMapper;
 import org.apache.ibatis.session.RowBounds;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,6 +32,8 @@ public class FoodInfoServiceImpl implements IFoodInfoService{
 	@Autowired
 	private FoodInfoMapper foodInfoMapper;
 	@Autowired
+	private NoticeMessageInfoMapper noticeMessageInfoMapper;
+	@Autowired
 	private UserService userService;
 	
 	@Override
@@ -38,6 +42,7 @@ public class FoodInfoServiceImpl implements IFoodInfoService{
 		Date now = new Date();
 		foodInfo.setGmtCreate(now);
 		foodInfo.setGmtUpdate(now);
+		foodInfo.setStatus("审核中");
 		return foodInfoMapper.insert(foodInfo)>0;
 	}
 
@@ -146,6 +151,33 @@ public class FoodInfoServiceImpl implements IFoodInfoService{
 		return foodInfoMapper.updateById(foodInfo)>0;
 	}
 
+	@Override
+	public Boolean handle(FoodInfo foodInfo) throws ServiceException {
+		FoodInfo foodInfo1=foodInfoMapper.selectById(foodInfo.getId());
+		Date now = new Date();
+		//驳回
+		if ("已驳回".equals(foodInfo.getStatus())){
+			NoticeMessageInfo noticeMessageInfo=new NoticeMessageInfo();
+			noticeMessageInfo.setNewsTitle("系统消息");
+			noticeMessageInfo.setNewsContent("您的入驻申请(餐饮),未通过审核。");
+			noticeMessageInfo.setReceiveId(foodInfo1.getCommonId());
+			noticeMessageInfo.setGmtCreate(now);
+			noticeMessageInfo.setGmtUpdate(now);
+			noticeMessageInfoMapper.insert(noticeMessageInfo);
+		}
+		//通过
+		else{
+			NoticeMessageInfo noticeMessageInfo=new NoticeMessageInfo();
+			noticeMessageInfo.setNewsTitle("系统消息");
+			noticeMessageInfo.setNewsContent("您的入驻申请(餐饮),已通过审核。");
+			noticeMessageInfo.setReceiveId(foodInfo1.getCommonId());
+			noticeMessageInfo.setGmtCreate(now);
+			noticeMessageInfo.setGmtUpdate(now);
+			noticeMessageInfoMapper.insert(noticeMessageInfo);
+		}
+		return foodInfoMapper.updateById(foodInfo) > 0;
+	}
+
 	@Override
 	public FoodInfo get(Long id) throws ServiceException {
 		return foodInfoMapper.selectById(id);

+ 136 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/impl/NoticeMessageInfoServiceImpl.java

@@ -0,0 +1,136 @@
+package com.iotechn.unimall.admin.api.tourism.impl;
+
+import java.util.List;
+
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.util.ExcelUtil;
+import com.iotechn.unimall.data.mapper.NoticeMessageInfoMapper;
+import com.iotechn.unimall.data.domain.NoticeMessageInfo;
+import com.iotechn.unimall.admin.api.tourism.INoticeMessageInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 记录通知消息信息Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-06-08
+ */
+@Service
+public class NoticeMessageInfoServiceImpl implements INoticeMessageInfoService{
+	@Autowired
+	private NoticeMessageInfoMapper noticeMessageInfoMapper;
+	
+	@Override
+	public Boolean add(NoticeMessageInfo noticeMessageInfo) throws ServiceException {
+		Date now = new Date();
+		noticeMessageInfo.setGmtCreate(now);
+		noticeMessageInfo.setGmtUpdate(now);
+		return noticeMessageInfoMapper.insert(noticeMessageInfo)>0;
+	}
+
+	@Override
+	public Page<NoticeMessageInfo> list(Long sendId,Long receiveId,String newsTitle,String newsContent,String newsType,String newsFlag,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<NoticeMessageInfo> wrapper = new EntityWrapper<NoticeMessageInfo>();
+														if (!StringUtils.isEmpty(sendId)) {
+					wrapper.eq("send_id", sendId);
+				}
+												if (!StringUtils.isEmpty(receiveId)) {
+					wrapper.eq("receive_id", receiveId);
+				}
+												if (!StringUtils.isEmpty(newsTitle)) {
+					wrapper.eq("news_title", newsTitle);
+				}
+												if (!StringUtils.isEmpty(newsContent)) {
+					wrapper.eq("news_content", newsContent);
+				}
+												if (!StringUtils.isEmpty(newsType)) {
+					wrapper.eq("news_type", newsType);
+				}
+												if (!StringUtils.isEmpty(newsFlag)) {
+					wrapper.eq("news_flag", newsFlag);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<NoticeMessageInfo> list = noticeMessageInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = noticeMessageInfoMapper.selectCount(wrapper);
+		return new Page<NoticeMessageInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			NoticeMessageInfo tmp =  noticeMessageInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				noticeMessageInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(NoticeMessageInfo noticeMessageInfo) throws ServiceException {
+		Date now = new Date();
+		noticeMessageInfo.setGmtUpdate(now);
+		return noticeMessageInfoMapper.updateById(noticeMessageInfo)>0;
+	}
+
+	@Override
+	public NoticeMessageInfo get(Long id) throws ServiceException {
+		return noticeMessageInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long sendId,Long receiveId,String newsTitle,String newsContent,String newsType,String newsFlag,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<NoticeMessageInfo> wrapper = new EntityWrapper<NoticeMessageInfo>();
+														if (!StringUtils.isEmpty(sendId)) {
+					wrapper.eq("send_id", sendId);
+				}
+												if (!StringUtils.isEmpty(receiveId)) {
+					wrapper.eq("receive_id", receiveId);
+				}
+												if (!StringUtils.isEmpty(newsTitle)) {
+					wrapper.eq("news_title", newsTitle);
+				}
+												if (!StringUtils.isEmpty(newsContent)) {
+					wrapper.eq("news_content", newsContent);
+				}
+												if (!StringUtils.isEmpty(newsType)) {
+					wrapper.eq("news_type", newsType);
+				}
+												if (!StringUtils.isEmpty(newsFlag)) {
+					wrapper.eq("news_flag", newsFlag);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<NoticeMessageInfo> list = noticeMessageInfoMapper.selectList(wrapper);
+		ExcelUtil<NoticeMessageInfo> util = new ExcelUtil<NoticeMessageInfo>(NoticeMessageInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 73 - 0
unimall-admin/src/api/tourism/noticeMessageInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询记录通知消息信息列表
+export function listNoticeMessageInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.tourism.noticeMessageInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询记录通知消息信息详细
+export function getNoticeMessageInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.tourism.noticeMessageInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增记录通知消息信息
+export function addNoticeMessageInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.tourism.noticeMessageInfo',
+      _mt: 'add',
+      noticeMessageInfo: data
+    }
+  })
+}
+
+// 修改记录通知消息信息
+export function updateNoticeMessageInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.tourism.noticeMessageInfo',
+      _mt: 'update',
+      noticeMessageInfo: data
+    }
+  })
+}
+
+// 删除记录通知消息信息
+export function delNoticeMessageInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.tourism.noticeMessageInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出记录通知消息信息
+export function exportNoticeMessageInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.tourism.noticeMessageInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 397 - 0
unimall-admin/src/views/noticeMessageInfo/index.vue

@@ -0,0 +1,397 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="发送消息用户id" prop="sendId">
+        <el-input
+          v-model="queryParams.sendId"
+          placeholder="请输入发送消息用户id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="接收消息用户id" prop="receiveId">
+        <el-input
+          v-model="queryParams.receiveId"
+          placeholder="请输入接收消息用户id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="消息标题" prop="newsTitle">
+        <el-input
+          v-model="queryParams.newsTitle"
+          placeholder="请输入消息标题"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="消息内容" prop="newsContent">
+        <el-input
+          v-model="queryParams.newsContent"
+          placeholder="请输入消息内容"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="消息类型" prop="newsType">
+        <el-select v-model="queryParams.newsType" placeholder="请选择消息类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="已读标识" prop="newsFlag">
+        <el-input
+          v-model="queryParams.newsFlag"
+          placeholder="请输入已读标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="gmtCreate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtCreate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="gmtUpdate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtUpdate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="删除标识" prop="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['tourism:noticeMessageInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['tourism:noticeMessageInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['tourism:noticeMessageInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['tourism:noticeMessageInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="noticeMessageInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="发送消息用户id" align="center" prop="sendId" />
+      <el-table-column label="接收消息用户id" align="center" prop="receiveId" />
+      <el-table-column label="消息标题" align="center" prop="newsTitle" />
+      <el-table-column label="消息内容" align="center" prop="newsContent" />
+      <el-table-column label="消息类型" align="center" prop="newsType" />
+      <el-table-column label="已读标识" align="center" prop="newsFlag" />
+      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtCreate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="删除标识" align="center" prop="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['tourism:noticeMessageInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['tourism:noticeMessageInfo:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改记录通知消息信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="发送消息用户id" prop="sendId">
+          <el-input v-model="form.sendId" placeholder="请输入发送消息用户id" />
+        </el-form-item>
+        <el-form-item label="接收消息用户id" prop="receiveId">
+          <el-input v-model="form.receiveId" placeholder="请输入接收消息用户id" />
+        </el-form-item>
+        <el-form-item label="消息标题" prop="newsTitle">
+          <el-input v-model="form.newsTitle" placeholder="请输入消息标题" />
+        </el-form-item>
+        <el-form-item label="消息内容" prop="newsContent">
+          <el-input v-model="form.newsContent" placeholder="请输入消息内容" />
+        </el-form-item>
+        <el-form-item label="消息类型">
+          <el-select v-model="form.newsType" placeholder="请选择消息类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="已读标识" prop="newsFlag">
+          <el-input v-model="form.newsFlag" placeholder="请输入已读标识" />
+        </el-form-item>
+        <el-form-item label="" prop="gmtCreate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtCreate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="gmtUpdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtUpdate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="删除标识" prop="deleteFlag">
+          <el-input v-model="form.deleteFlag" placeholder="请输入删除标识" />
+        </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>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listNoticeMessageInfo, getNoticeMessageInfo, delNoticeMessageInfo, addNoticeMessageInfo, updateNoticeMessageInfo, exportNoticeMessageInfo } from "@/api/tourism/noticeMessageInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 记录通知消息信息表格数据
+      noticeMessageInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        sendId: undefined,
+        receiveId: undefined,
+        newsTitle: undefined,
+        newsContent: undefined,
+        newsType: undefined,
+        newsFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询记录通知消息信息列表 */
+    getList() {
+      this.loading = true;
+      listNoticeMessageInfo(this.queryParams).then(response => {
+        this.noticeMessageInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        sendId: undefined,
+        receiveId: undefined,
+        newsTitle: undefined,
+        newsContent: undefined,
+        newsType: undefined,
+        newsFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加记录通知消息信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids.join(',')
+      getNoticeMessageInfo(id).then(response => {
+        this.form = response.data.data
+        this.open = true;
+        this.title = "修改记录通知消息信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updateNoticeMessageInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addNoticeMessageInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids.join(',')
+      this.$confirm('是否确认删除记录通知消息信息编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delNoticeMessageInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有记录通知消息信息数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportNoticeMessageInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 91 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/NoticeMessageInfo.java

@@ -0,0 +1,91 @@
+package com.iotechn.unimall.data.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel.ColumnType;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.enums.FieldFill;
+import com.iotechn.unimall.core.util.StringUtils;
+import java.util.Date;
+
+/**
+ * 记录通知消息信息对象 notice_message_info
+ * 
+ * @author jlb
+ * @date 2023-06-08
+ */
+@Data
+@TableName("notice_message_info")
+public class NoticeMessageInfo extends SuperDO{
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 发送消息用户id */
+    @Excel(name = "发送消息用户id")
+    @TableField("send_id")
+    private Long sendId;
+
+    /** 接收消息用户id */
+    @Excel(name = "接收消息用户id")
+    @TableField("receive_id")
+    private Long receiveId;
+
+    /** 消息标题 */
+    @Excel(name = "消息标题")
+    @TableField("news_title")
+    private String newsTitle;
+
+    /** 消息内容 */
+    @Excel(name = "消息内容")
+    @TableField("news_content")
+    private String newsContent;
+
+    /** 消息类型 */
+    @Excel(name = "消息类型")
+    @TableField("news_type")
+    private String newsType;
+
+    /** 已读标识(1已读) */
+    @Excel(name = "已读标识", readConverterExp = "1=已读")
+    @TableField("news_flag")
+    private String newsFlag;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_update")
+    private Date gmtUpdate;
+
+    /** 删除标识 */
+    @Excel(name = "删除标识")
+    @TableField("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("sendId", getSendId())
+            .append("receiveId", getReceiveId())
+            .append("newsTitle", getNewsTitle())
+            .append("newsContent", getNewsContent())
+            .append("newsType", getNewsType())
+            .append("newsFlag", getNewsFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 13 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/NoticeMessageInfoMapper.java

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper;
+
+import com.iotechn.unimall.data.domain.NoticeMessageInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 记录通知消息信息Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-06-08
+ */
+public interface NoticeMessageInfoMapper extends BaseMapper<NoticeMessageInfo>{
+
+}

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/NoticeMessageInfoMapper.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.iotechn.unimall.data.mapper.NoticeMessageInfoMapper">
+    
+
+
+</mapper>