diff --git a/smart-admin-api-java17-springboot3/pom.xml b/smart-admin-api-java17-springboot3/pom.xml
index 9f0e2636..ac76b6cd 100644
--- a/smart-admin-api-java17-springboot3/pom.xml
+++ b/smart-admin-api-java17-springboot3/pom.xml
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- net.1024lab
+ net.lab1024
sa-parent
3.0.0
pom
diff --git a/smart-admin-api-java17-springboot3/sa-admin/pom.xml b/smart-admin-api-java17-springboot3/sa-admin/pom.xml
index 463f9494..c5ac192f 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/pom.xml
+++ b/smart-admin-api-java17-springboot3/sa-admin/pom.xml
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- net.1024lab
+ net.lab1024
sa-parent
3.0.0
../pom.xml
@@ -18,7 +18,7 @@
- net.1024lab
+ net.lab1024
sa-base
3.0.0
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java
index c5319d63..fb7a630c 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java
@@ -51,6 +51,8 @@ public class AdminSwaggerTagConst extends SwaggerTagConst {
public static final String SYSTEM_POSITION = "系统-职务管理";
+ public static final String SYSTEM_MESSAGE = "系统-消息";
+
}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java
index f17cbd45..e165817e 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java
@@ -1,5 +1,6 @@
package net.lab1024.sa.admin.module.business.oa.bank;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
@@ -35,24 +36,28 @@ public class BankController {
@Operation(summary = "分页查询银行信息 @author 善逸")
@PostMapping("/oa/bank/page/query")
+ @SaCheckPermission("oa:bank:query")
public ResponseDTO> queryByPage(@RequestBody @Valid BankQueryForm queryForm) {
return bankService.queryByPage(queryForm);
}
@Operation(summary = "根据企业ID查询银行信息列表 @author 善逸")
@GetMapping("/oa/bank/query/list/{enterpriseId}")
+ @SaCheckPermission("oa:bank:query")
public ResponseDTO> queryList(@PathVariable Long enterpriseId) {
return bankService.queryList(enterpriseId);
}
@Operation(summary = "查询银行信息详情 @author 善逸")
@GetMapping("/oa/bank/get/{bankId}")
+ @SaCheckPermission("oa:bank:query")
public ResponseDTO getDetail(@PathVariable Long bankId) {
return bankService.getDetail(bankId);
}
@Operation(summary = "新建银行信息 @author 善逸")
@PostMapping("/oa/bank/create")
+ @SaCheckPermission("oa:bank:add")
public ResponseDTO createBank(@RequestBody @Valid BankCreateForm createVO) {
RequestUser requestUser = SmartRequestUtil.getRequestUser();
createVO.setCreateUserId(requestUser.getUserId());
@@ -62,12 +67,14 @@ public class BankController {
@Operation(summary = "编辑银行信息 @author 善逸")
@PostMapping("/oa/bank/update")
+ @SaCheckPermission("oa:bank:update")
public ResponseDTO updateBank(@RequestBody @Valid BankUpdateForm updateVO) {
return bankService.updateBank(updateVO);
}
@Operation(summary = "删除银行信息 @author 善逸")
@GetMapping("/oa/bank/delete/{bankId}")
+ @SaCheckPermission("oa:bank:delete")
public ResponseDTO deleteBank(@PathVariable Long bankId) {
return bankService.deleteBank(bankId);
}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java
index ad904791..d919537b 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java
@@ -100,6 +100,7 @@ public class EnterpriseController {
@Operation(summary = "按照类型查询企业 @author 开云")
@GetMapping("/oa/enterprise/query/list")
+ @SaCheckPermission("oa:enterprise:query")
public ResponseDTO> queryList(@RequestParam(value = "type", required = false) Integer type) {
return enterpriseService.queryList(type);
}
@@ -114,12 +115,14 @@ public class EnterpriseController {
@Operation(summary = "查询企业全部员工 @author 罗伊")
@PostMapping("/oa/enterprise/employee/list")
+ @SaCheckPermission("oa:enterprise:queryEmployee")
public ResponseDTO> employeeList(@RequestBody @Valid List enterpriseIdList) {
return ResponseDTO.ok(enterpriseService.employeeList(enterpriseIdList));
}
@Operation(summary = "分页查询企业员工 @author 卓大")
@PostMapping("/oa/enterprise/employee/queryPage")
+ @SaCheckPermission("oa:enterprise:queryEmployee")
public ResponseDTO> queryPageEmployeeList(@RequestBody @Valid EnterpriseEmployeeQueryForm queryForm) {
return ResponseDTO.ok(enterpriseService.queryPageEmployeeList(queryForm));
}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java
index 52b5ea50..13d3b98f 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java
@@ -1,5 +1,6 @@
package net.lab1024.sa.admin.module.business.oa.invoice;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
@@ -38,18 +39,21 @@ public class InvoiceController {
@Operation(summary = "分页查询发票信息 @author 善逸")
@PostMapping("/oa/invoice/page/query")
+ @SaCheckPermission("oa:invoice:query")
public ResponseDTO> queryByPage(@RequestBody @Valid InvoiceQueryForm queryForm) {
return invoiceService.queryByPage(queryForm);
}
@Operation(summary = "查询发票信息详情 @author 善逸")
@GetMapping("/oa/invoice/get/{invoiceId}")
+ @SaCheckPermission("oa:invoice:query")
public ResponseDTO getDetail(@PathVariable Long invoiceId) {
return invoiceService.getDetail(invoiceId);
}
@Operation(summary = "新建发票信息 @author 善逸")
@PostMapping("/oa/invoice/create")
+ @SaCheckPermission("oa:invoice:add")
public ResponseDTO createInvoice(@RequestBody @Valid InvoiceAddForm createVO) {
RequestUser requestUser = SmartRequestUtil.getRequestUser();
createVO.setCreateUserId(requestUser.getUserId());
@@ -57,21 +61,24 @@ public class InvoiceController {
return invoiceService.createInvoice(createVO);
}
+ @OperateLog
@Operation(summary = "编辑发票信息 @author 善逸")
@PostMapping("/oa/invoice/update")
- @OperateLog
+ @SaCheckPermission("oa:invoice:update")
public ResponseDTO updateInvoice(@RequestBody @Valid InvoiceUpdateForm updateVO) {
return invoiceService.updateInvoice(updateVO);
}
@Operation(summary = "删除发票信息 @author 善逸")
@GetMapping("/invoice/delete/{invoiceId}")
+ @SaCheckPermission("oa:invoice:delete")
public ResponseDTO deleteInvoice(@PathVariable Long invoiceId) {
return invoiceService.deleteInvoice(invoiceId);
}
@Operation(summary = "查询列表 @author lidoudou")
@GetMapping("/oa/invoice/query/list/{enterpriseId}")
+ @SaCheckPermission("oa:invoice:query")
public ResponseDTO> queryList(@PathVariable Long enterpriseId) {
return invoiceService.queryList(enterpriseId);
}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/message/AdminMessageController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/message/AdminMessageController.java
new file mode 100644
index 00000000..40922e2b
--- /dev/null
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/message/AdminMessageController.java
@@ -0,0 +1,54 @@
+package net.lab1024.sa.admin.module.system.message;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.Valid;
+import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
+import net.lab1024.sa.base.common.domain.PageResult;
+import net.lab1024.sa.base.common.domain.ResponseDTO;
+import net.lab1024.sa.base.common.domain.ValidateList;
+import net.lab1024.sa.base.module.support.message.domain.MessageQueryForm;
+import net.lab1024.sa.base.module.support.message.domain.MessageSendForm;
+import net.lab1024.sa.base.module.support.message.domain.MessageVO;
+import net.lab1024.sa.base.module.support.message.service.MessageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 后管 消息路由
+ *
+ * @author: 卓大
+ * @date: 2025/04/09 20:55
+ */
+@Tag(name = AdminSwaggerTagConst.System.SYSTEM_MESSAGE)
+@RestController
+public class AdminMessageController {
+
+ @Autowired
+ private MessageService messageService;
+
+ @Operation(summary = "通知消息-新建 @author 卓大")
+ @PostMapping("/message/sendMessages")
+ @SaCheckPermission("system:message:send")
+ public ResponseDTO sendMessages(@RequestBody @Valid ValidateList messageList) {
+ messageService.sendMessage(messageList);
+ return ResponseDTO.ok();
+ }
+
+ @Operation(summary = "通知消息-分页查询 @author 卓大")
+ @PostMapping("/message/query")
+ @SaCheckPermission("system:message:query")
+ public ResponseDTO> query(@RequestBody @Valid MessageQueryForm queryForm) {
+ return ResponseDTO.ok(messageService.query(queryForm));
+ }
+
+ @Operation(summary = "通知消息-删除 @author 卓大")
+ @GetMapping("/message/delete/{messageId}")
+ @SaCheckPermission("system:message:delete")
+ public ResponseDTO delete(@PathVariable Long messageId) {
+ return messageService.delete(messageId);
+ }
+
+}
diff --git a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java
index cb5f5f01..4c4fded8 100644
--- a/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java
+++ b/smart-admin-api-java17-springboot3/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java
@@ -52,43 +52,43 @@ public class AdminDictController extends SupportBaseController {
@Operation(summary = "分页查询 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/queryPage")
- @SaCheckPermission("dict:query")
+ @SaCheckPermission("support:dict:query")
public ResponseDTO> queryPage(@RequestBody @Valid DictQueryForm queryForm) {
return ResponseDTO.ok(dictService.queryPage(queryForm));
}
@Operation(summary = "添加 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/add")
- @SaCheckPermission("dict:add")
+ @SaCheckPermission("support:dict:add")
public ResponseDTO add(@RequestBody @Valid DictAddForm addForm) {
return dictService.add(addForm);
}
@Operation(summary = "更新 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/update")
- @SaCheckPermission("dict:update")
+ @SaCheckPermission("support:dict:update")
public ResponseDTO update(@RequestBody @Valid DictUpdateForm updateForm) {
return dictService.update(updateForm);
}
- @Operation(summary = "字典数据 启用/禁用 @author 1024创新实验室-主任-卓大")
+ @Operation(summary = "启用/禁用 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/updateDisabled/{dictId}")
- @SaCheckPermission("dictData:updateDisabled")
+ @SaCheckPermission("support:dict:updateDisabled")
public ResponseDTO updateDisabled(@PathVariable Long dictId) {
return dictService.updateDisabled(dictId);
}
@Operation(summary = "批量删除 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/batchDelete")
- @SaCheckPermission("dict:delete")
+ @SaCheckPermission("support:dict:delete")
public ResponseDTO batchDelete(@RequestBody ValidateList idList) {
return dictService.batchDelete(idList);
}
@Operation(summary = "单个删除 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/delete/{dictId}")
- @SaCheckPermission("dict:delete")
- public ResponseDTO batchDelete(@PathVariable Long dictId) {
+ @SaCheckPermission("support:dict:delete")
+ public ResponseDTO delete(@PathVariable Long dictId) {
return dictService.delete(dictId);
}
@@ -96,42 +96,42 @@ public class AdminDictController extends SupportBaseController {
@Operation(summary = "字典数据 分页查询 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/dictData/queryDictData/{dictId}")
- @SaCheckPermission("dictData:query")
+ @SaCheckPermission("support:dictData:query")
public ResponseDTO> queryDictData(@PathVariable Long dictId) {
return ResponseDTO.ok(dictService.queryDictData(dictId));
}
@Operation(summary = "字典数据 启用/禁用 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/dictData/updateDisabled/{dictDataId}")
- @SaCheckPermission("dictData:updateDisabled")
+ @SaCheckPermission("support:dictData:updateDisabled")
public ResponseDTO updateDictDataDisabled(@PathVariable Long dictDataId) {
return dictService.updateDictDataDisabled(dictDataId);
}
@Operation(summary = "字典数据 添加 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/dictData/add")
- @SaCheckPermission("dictData:add")
+ @SaCheckPermission("support:dictData:add")
public ResponseDTO addDictData(@RequestBody @Valid DictDataAddForm addForm) {
return dictService.addDictData(addForm);
}
@Operation(summary = "字典数据 更新 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/dictData/update")
- @SaCheckPermission("dictData:update")
+ @SaCheckPermission("support:dictData:update")
public ResponseDTO updateDictData(@RequestBody @Valid DictDataUpdateForm updateForm) {
return dictService.updateDictData(updateForm);
}
@Operation(summary = "字典数据 批量删除 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/dictData/batchDelete")
- @SaCheckPermission("dictData:delete")
+ @SaCheckPermission("support:dictData:delete")
public ResponseDTO batchDeleteDictData(@RequestBody ValidateList idList) {
return dictService.batchDeleteDictData(idList);
}
@Operation(summary = "字典数据 单个删除 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/dictData/delete/{dictDataId}")
- @SaCheckPermission("dictData:delete")
+ @SaCheckPermission("support:dictData:delete")
public ResponseDTO deleteDictData(@PathVariable Long dictDataId) {
return dictService.deleteDictData(dictDataId);
}
diff --git a/smart-admin-api-java17-springboot3/sa-base/pom.xml b/smart-admin-api-java17-springboot3/sa-base/pom.xml
index 45f99636..188cf2c8 100644
--- a/smart-admin-api-java17-springboot3/sa-base/pom.xml
+++ b/smart-admin-api-java17-springboot3/sa-base/pom.xml
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- net.1024lab
+ net.lab1024
sa-parent
3.0.0
../pom.xml
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java
index b8613a2a..fe80d705 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java
@@ -36,9 +36,9 @@ public class MessageQueryForm extends PageParam {
@Schema(description = "查询结束时间")
private LocalDate endDate;
- @Schema(hidden = true)
+ @Schema(description = "接收人")
private Long receiverUserId;
- @Schema(hidden = true)
+ @Schema(description = "接收人类型")
private Integer receiverUserType;
}
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java
index f21cc97a..d380c197 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import jakarta.annotation.Resource;
import net.lab1024.sa.base.common.domain.PageResult;
+import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.enumeration.UserTypeEnum;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.util.SmartPageUtil;
@@ -105,4 +106,13 @@ public class MessageService {
}).collect(Collectors.toList());
messageManager.saveBatch(messageEntityList);
}
+
+ // 删除消息
+ public ResponseDTO delete(Long messageId) {
+ if(messageId == null){
+ return ResponseDTO.userErrorParam();
+ }
+ messageDao.deleteById(messageId);
+ return ResponseDTO.ok();
+ }
}
\ No newline at end of file
diff --git a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml
index 9acd6717..85f54951 100644
--- a/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml
+++ b/smart-admin-api-java17-springboot3/sa-base/src/main/resources/prod/sa-base.yaml
@@ -39,7 +39,7 @@ spring:
host: smtp.163.com
port: 465
username: lab1024@163.com
- password: 1024lab
+ password: LAB1024LAB
properties:
mail:
smtp:
diff --git a/smart-admin-api-java8-springboot2/pom.xml b/smart-admin-api-java8-springboot2/pom.xml
index d5e0c569..210b044a 100644
--- a/smart-admin-api-java8-springboot2/pom.xml
+++ b/smart-admin-api-java8-springboot2/pom.xml
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- net.1024lab
+ net.lab1024
sa-parent
3.0.0
pom
diff --git a/smart-admin-api-java8-springboot2/sa-admin/pom.xml b/smart-admin-api-java8-springboot2/sa-admin/pom.xml
index 463f9494..c5ac192f 100644
--- a/smart-admin-api-java8-springboot2/sa-admin/pom.xml
+++ b/smart-admin-api-java8-springboot2/sa-admin/pom.xml
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- net.1024lab
+ net.lab1024
sa-parent
3.0.0
../pom.xml
@@ -18,7 +18,7 @@
- net.1024lab
+ net.lab1024
sa-base
3.0.0
diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java
index c5319d63..fb7a630c 100644
--- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java
+++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java
@@ -51,6 +51,8 @@ public class AdminSwaggerTagConst extends SwaggerTagConst {
public static final String SYSTEM_POSITION = "系统-职务管理";
+ public static final String SYSTEM_MESSAGE = "系统-消息";
+
}
diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java
index 6e1f8ed7..51a7c4c7 100644
--- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java
+++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java
@@ -1,5 +1,6 @@
package net.lab1024.sa.admin.module.business.oa.bank;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
@@ -35,24 +36,28 @@ public class BankController {
@Operation(summary = "分页查询银行信息 @author 善逸")
@PostMapping("/oa/bank/page/query")
+ @SaCheckPermission("oa:bank:query")
public ResponseDTO> queryByPage(@RequestBody @Valid BankQueryForm queryForm) {
return bankService.queryByPage(queryForm);
}
@Operation(summary = "根据企业ID查询银行信息列表 @author 善逸")
@GetMapping("/oa/bank/query/list/{enterpriseId}")
+ @SaCheckPermission("oa:bank:query")
public ResponseDTO> queryList(@PathVariable Long enterpriseId) {
return bankService.queryList(enterpriseId);
}
@Operation(summary = "查询银行信息详情 @author 善逸")
@GetMapping("/oa/bank/get/{bankId}")
+ @SaCheckPermission("oa:bank:query")
public ResponseDTO getDetail(@PathVariable Long bankId) {
return bankService.getDetail(bankId);
}
@Operation(summary = "新建银行信息 @author 善逸")
@PostMapping("/oa/bank/create")
+ @SaCheckPermission("oa:bank:add")
public ResponseDTO createBank(@RequestBody @Valid BankCreateForm createVO) {
RequestUser requestUser = SmartRequestUtil.getRequestUser();
createVO.setCreateUserId(requestUser.getUserId());
@@ -62,12 +67,14 @@ public class BankController {
@Operation(summary = "编辑银行信息 @author 善逸")
@PostMapping("/oa/bank/update")
+ @SaCheckPermission("oa:bank:update")
public ResponseDTO updateBank(@RequestBody @Valid BankUpdateForm updateVO) {
return bankService.updateBank(updateVO);
}
@Operation(summary = "删除银行信息 @author 善逸")
@GetMapping("/oa/bank/delete/{bankId}")
+ @SaCheckPermission("oa:bank:delete")
public ResponseDTO deleteBank(@PathVariable Long bankId) {
return bankService.deleteBank(bankId);
}
diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java
index 211a1140..8ef807fa 100644
--- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java
+++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java
@@ -100,6 +100,7 @@ public class EnterpriseController {
@Operation(summary = "按照类型查询企业 @author 开云")
@GetMapping("/oa/enterprise/query/list")
+ @SaCheckPermission("oa:enterprise:query")
public ResponseDTO> queryList(@RequestParam(value = "type", required = false) Integer type) {
return enterpriseService.queryList(type);
}
@@ -114,12 +115,14 @@ public class EnterpriseController {
@Operation(summary = "查询企业全部员工 @author 罗伊")
@PostMapping("/oa/enterprise/employee/list")
+ @SaCheckPermission("oa:enterprise:queryEmployee")
public ResponseDTO> employeeList(@RequestBody @Valid List enterpriseIdList) {
return ResponseDTO.ok(enterpriseService.employeeList(enterpriseIdList));
}
@Operation(summary = "分页查询企业员工 @author 卓大")
@PostMapping("/oa/enterprise/employee/queryPage")
+ @SaCheckPermission("oa:enterprise:queryEmployee")
public ResponseDTO> queryPageEmployeeList(@RequestBody @Valid EnterpriseEmployeeQueryForm queryForm) {
return ResponseDTO.ok(enterpriseService.queryPageEmployeeList(queryForm));
}
diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java
index 6b481897..fb3270ef 100644
--- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java
+++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java
@@ -1,5 +1,6 @@
package net.lab1024.sa.admin.module.business.oa.invoice;
+import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.slf4j.Slf4j;
@@ -38,18 +39,21 @@ public class InvoiceController {
@Operation(summary = "分页查询发票信息 @author 善逸")
@PostMapping("/oa/invoice/page/query")
+ @SaCheckPermission("oa:invoice:query")
public ResponseDTO> queryByPage(@RequestBody @Valid InvoiceQueryForm queryForm) {
return invoiceService.queryByPage(queryForm);
}
@Operation(summary = "查询发票信息详情 @author 善逸")
@GetMapping("/oa/invoice/get/{invoiceId}")
+ @SaCheckPermission("oa:invoice:query")
public ResponseDTO getDetail(@PathVariable Long invoiceId) {
return invoiceService.getDetail(invoiceId);
}
@Operation(summary = "新建发票信息 @author 善逸")
@PostMapping("/oa/invoice/create")
+ @SaCheckPermission("oa:invoice:add")
public ResponseDTO createInvoice(@RequestBody @Valid InvoiceAddForm createVO) {
RequestUser requestUser = SmartRequestUtil.getRequestUser();
createVO.setCreateUserId(requestUser.getUserId());
@@ -57,21 +61,24 @@ public class InvoiceController {
return invoiceService.createInvoice(createVO);
}
+ @OperateLog
@Operation(summary = "编辑发票信息 @author 善逸")
@PostMapping("/oa/invoice/update")
- @OperateLog
+ @SaCheckPermission("oa:invoice:update")
public ResponseDTO updateInvoice(@RequestBody @Valid InvoiceUpdateForm updateVO) {
return invoiceService.updateInvoice(updateVO);
}
@Operation(summary = "删除发票信息 @author 善逸")
@GetMapping("/invoice/delete/{invoiceId}")
+ @SaCheckPermission("oa:invoice:delete")
public ResponseDTO deleteInvoice(@PathVariable Long invoiceId) {
return invoiceService.deleteInvoice(invoiceId);
}
@Operation(summary = "查询列表 @author lidoudou")
@GetMapping("/oa/invoice/query/list/{enterpriseId}")
+ @SaCheckPermission("oa:invoice:query")
public ResponseDTO> queryList(@PathVariable Long enterpriseId) {
return invoiceService.queryList(enterpriseId);
}
diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/message/AdminMessageController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/message/AdminMessageController.java
new file mode 100644
index 00000000..09ea2e5b
--- /dev/null
+++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/message/AdminMessageController.java
@@ -0,0 +1,54 @@
+package net.lab1024.sa.admin.module.system.message;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import net.lab1024.sa.admin.constant.AdminSwaggerTagConst;
+import net.lab1024.sa.base.common.domain.PageResult;
+import net.lab1024.sa.base.common.domain.ResponseDTO;
+import net.lab1024.sa.base.common.domain.ValidateList;
+import net.lab1024.sa.base.module.support.message.domain.MessageQueryForm;
+import net.lab1024.sa.base.module.support.message.domain.MessageSendForm;
+import net.lab1024.sa.base.module.support.message.domain.MessageVO;
+import net.lab1024.sa.base.module.support.message.service.MessageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 后管 消息路由
+ *
+ * @author: 卓大
+ * @date: 2025/04/09 20:55
+ */
+@Tag(name = AdminSwaggerTagConst.System.SYSTEM_MESSAGE)
+@RestController
+public class AdminMessageController {
+
+ @Autowired
+ private MessageService messageService;
+
+ @Operation(summary = "通知消息-新建 @author 卓大")
+ @PostMapping("/message/sendMessages")
+ @SaCheckPermission("system:message:send")
+ public ResponseDTO sendMessages(@RequestBody @Valid ValidateList messageList) {
+ messageService.sendMessage(messageList);
+ return ResponseDTO.ok();
+ }
+
+ @Operation(summary = "通知消息-分页查询 @author 卓大")
+ @PostMapping("/message/query")
+ @SaCheckPermission("system:message:query")
+ public ResponseDTO> query(@RequestBody @Valid MessageQueryForm queryForm) {
+ return ResponseDTO.ok(messageService.query(queryForm));
+ }
+
+ @Operation(summary = "通知消息-删除 @author 卓大")
+ @GetMapping("/message/delete/{messageId}")
+ @SaCheckPermission("system:message:delete")
+ public ResponseDTO delete(@PathVariable Long messageId) {
+ return messageService.delete(messageId);
+ }
+
+}
diff --git a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java
index 17d6e8a5..3a7327b4 100644
--- a/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java
+++ b/smart-admin-api-java8-springboot2/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java
@@ -52,43 +52,43 @@ public class AdminDictController extends SupportBaseController {
@Operation(summary = "分页查询 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/queryPage")
- @SaCheckPermission("dict:query")
+ @SaCheckPermission("support:dict:query")
public ResponseDTO> queryPage(@RequestBody @Valid DictQueryForm queryForm) {
return ResponseDTO.ok(dictService.queryPage(queryForm));
}
@Operation(summary = "添加 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/add")
- @SaCheckPermission("dict:add")
+ @SaCheckPermission("support:dict:add")
public ResponseDTO add(@RequestBody @Valid DictAddForm addForm) {
return dictService.add(addForm);
}
@Operation(summary = "更新 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/update")
- @SaCheckPermission("dict:update")
+ @SaCheckPermission("support:dict:update")
public ResponseDTO update(@RequestBody @Valid DictUpdateForm updateForm) {
return dictService.update(updateForm);
}
- @Operation(summary = "字典数据 启用/禁用 @author 1024创新实验室-主任-卓大")
+ @Operation(summary = "启用/禁用 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/updateDisabled/{dictId}")
- @SaCheckPermission("dictData:updateDisabled")
+ @SaCheckPermission("support:dict:updateDisabled")
public ResponseDTO updateDisabled(@PathVariable Long dictId) {
return dictService.updateDisabled(dictId);
}
@Operation(summary = "批量删除 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/batchDelete")
- @SaCheckPermission("dict:delete")
+ @SaCheckPermission("support:dict:delete")
public ResponseDTO batchDelete(@RequestBody ValidateList idList) {
return dictService.batchDelete(idList);
}
@Operation(summary = "单个删除 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/delete/{dictId}")
- @SaCheckPermission("dict:delete")
- public ResponseDTO batchDelete(@PathVariable Long dictId) {
+ @SaCheckPermission("support:dict:delete")
+ public ResponseDTO delete(@PathVariable Long dictId) {
return dictService.delete(dictId);
}
@@ -96,42 +96,42 @@ public class AdminDictController extends SupportBaseController {
@Operation(summary = "字典数据 分页查询 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/dictData/queryDictData/{dictId}")
- @SaCheckPermission("dictData:query")
+ @SaCheckPermission("support:dictData:query")
public ResponseDTO> queryDictData(@PathVariable Long dictId) {
return ResponseDTO.ok(dictService.queryDictData(dictId));
}
@Operation(summary = "字典数据 启用/禁用 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/dictData/updateDisabled/{dictDataId}")
- @SaCheckPermission("dictData:updateDisabled")
+ @SaCheckPermission("support:dictData:updateDisabled")
public ResponseDTO updateDictDataDisabled(@PathVariable Long dictDataId) {
return dictService.updateDictDataDisabled(dictDataId);
}
@Operation(summary = "字典数据 添加 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/dictData/add")
- @SaCheckPermission("dictData:add")
+ @SaCheckPermission("support:dictData:add")
public ResponseDTO addDictData(@RequestBody @Valid DictDataAddForm addForm) {
return dictService.addDictData(addForm);
}
@Operation(summary = "字典数据 更新 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/dictData/update")
- @SaCheckPermission("dictData:update")
+ @SaCheckPermission("support:dictData:update")
public ResponseDTO updateDictData(@RequestBody @Valid DictDataUpdateForm updateForm) {
return dictService.updateDictData(updateForm);
}
@Operation(summary = "字典数据 批量删除 @author 1024创新实验室-主任-卓大")
@PostMapping("/dict/dictData/batchDelete")
- @SaCheckPermission("dictData:delete")
+ @SaCheckPermission("support:dictData:delete")
public ResponseDTO batchDeleteDictData(@RequestBody ValidateList idList) {
return dictService.batchDeleteDictData(idList);
}
@Operation(summary = "字典数据 单个删除 @author 1024创新实验室-主任-卓大")
@GetMapping("/dict/dictData/delete/{dictDataId}")
- @SaCheckPermission("dictData:delete")
+ @SaCheckPermission("support:dictData:delete")
public ResponseDTO deleteDictData(@PathVariable Long dictDataId) {
return dictService.deleteDictData(dictDataId);
}
diff --git a/smart-admin-api-java8-springboot2/sa-base/pom.xml b/smart-admin-api-java8-springboot2/sa-base/pom.xml
index d0864424..1cb1d280 100644
--- a/smart-admin-api-java8-springboot2/sa-base/pom.xml
+++ b/smart-admin-api-java8-springboot2/sa-base/pom.xml
@@ -2,7 +2,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- net.1024lab
+ net.lab1024
sa-parent
3.0.0
../pom.xml
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java
index b8613a2a..fe80d705 100644
--- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageQueryForm.java
@@ -36,9 +36,9 @@ public class MessageQueryForm extends PageParam {
@Schema(description = "查询结束时间")
private LocalDate endDate;
- @Schema(hidden = true)
+ @Schema(description = "接收人")
private Long receiverUserId;
- @Schema(hidden = true)
+ @Schema(description = "接收人类型")
private Integer receiverUserType;
}
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageTemplateSendForm.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageTemplateSendForm.java
index f6eb622b..2eb1b6a4 100644
--- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageTemplateSendForm.java
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/domain/MessageTemplateSendForm.java
@@ -1,10 +1,13 @@
package net.lab1024.sa.base.module.support.message.domain;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import net.lab1024.sa.base.common.enumeration.UserTypeEnum;
import net.lab1024.sa.base.module.support.message.constant.MessageTemplateEnum;
+import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
+import java.util.List;
import java.util.Map;
/**
@@ -25,6 +28,10 @@ public class MessageTemplateSendForm {
@NotNull(message = "接收者id不能为空")
private Long receiverUserId;
+ @Schema(description = "接收者id")
+ @NotEmpty(message = "接收者id不能为空")
+ private List receiverUserIdList;
+
/**
* 相关业务id | 可选
* 用于跳转具体业务
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java
index 0a9f5a84..1ea591d2 100644
--- a/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/java/net/lab1024/sa/base/module/support/message/service/MessageService.java
@@ -3,6 +3,7 @@ package net.lab1024.sa.base.module.support.message.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import net.lab1024.sa.base.common.domain.PageResult;
+import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.enumeration.UserTypeEnum;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.util.SmartPageUtil;
@@ -105,4 +106,13 @@ public class MessageService {
}).collect(Collectors.toList());
messageManager.saveBatch(messageEntityList);
}
+
+ // 删除消息
+ public ResponseDTO delete(Long messageId) {
+ if(messageId == null){
+ return ResponseDTO.userErrorParam();
+ }
+ messageDao.deleteById(messageId);
+ return ResponseDTO.ok();
+ }
}
\ No newline at end of file
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/resources/dev/sa-base.yaml b/smart-admin-api-java8-springboot2/sa-base/src/main/resources/dev/sa-base.yaml
index 1e1766c3..2486d0ba 100644
--- a/smart-admin-api-java8-springboot2/sa-base/src/main/resources/dev/sa-base.yaml
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/resources/dev/sa-base.yaml
@@ -87,8 +87,8 @@ file:
region: oss-cn-hangzhou
endpoint: oss-cn-hangzhou.aliyuncs.com
bucket-name: 1024lab-smart-admin
- access-key:
- secret-key:
+ access-key:
+ secret-key:
url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/
private-url-expire-seconds: 3600
diff --git a/smart-admin-api-java8-springboot2/sa-base/src/main/resources/prod/sa-base.yaml b/smart-admin-api-java8-springboot2/sa-base/src/main/resources/prod/sa-base.yaml
index 9840acbf..fafbe5e0 100644
--- a/smart-admin-api-java8-springboot2/sa-base/src/main/resources/prod/sa-base.yaml
+++ b/smart-admin-api-java8-springboot2/sa-base/src/main/resources/prod/sa-base.yaml
@@ -87,8 +87,8 @@ file:
region: oss-cn-hangzhou
endpoint: oss-cn-hangzhou.aliyuncs.com
bucket-name: 1024lab-smart-admin
- access-key:
- secret-key:
+ access-key:
+ secret-key:
url-prefix: https://${file.storage.cloud.bucket-name}.${file.storage.cloud.endpoint}/
private-url-expire-seconds: 3600
diff --git a/smart-admin-web-javascript/src/App.vue b/smart-admin-web-javascript/src/App.vue
index 1e087c28..cb5c9816 100644
--- a/smart-admin-web-javascript/src/App.vue
+++ b/smart-admin-web-javascript/src/App.vue
@@ -90,9 +90,7 @@
return text;
}
}
- window.addEventListener('resize',_.throttle(()=>{
- window.location.reload()
- },1000));
+
diff --git a/smart-admin-web-javascript/src/views/support/message/components/message-send-form.vue b/smart-admin-web-javascript/src/views/support/message/components/message-send-form.vue
new file mode 100644
index 00000000..bb0f1167
--- /dev/null
+++ b/smart-admin-web-javascript/src/views/support/message/components/message-send-form.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+ 选择接收人
+ {{ nameListString }}
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
+
+
+
diff --git a/smart-admin-web-javascript/src/views/support/message/message-list.vue b/smart-admin-web-javascript/src/views/support/message/message-list.vue
new file mode 100644
index 00000000..048a005e
--- /dev/null
+++ b/smart-admin-web-javascript/src/views/support/message/message-list.vue
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ text ? '已读' : '未读' }}
+
+
+ {{ $smartEnumPlugin.getDescByValue('MESSAGE_TYPE_ENUM', text) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smart-admin-web-javascript/src/views/system/menu/components/menu-operate-modal.vue b/smart-admin-web-javascript/src/views/system/menu/components/menu-operate-modal.vue
index 042d162d..d87d3383 100644
--- a/smart-admin-web-javascript/src/views/system/menu/components/menu-operate-modal.vue
+++ b/smart-admin-web-javascript/src/views/system/menu/components/menu-operate-modal.vue
@@ -15,8 +15,9 @@
:open="visible"
:width="600"
@close="onClose"
+ destroyOnClose
>
-
+
@@ -61,11 +62,17 @@
-
+
-
+
@@ -74,7 +81,13 @@
-
+
@@ -90,7 +103,7 @@
-
+
@@ -105,7 +118,7 @@
diff --git a/smart-admin-web-typescript/src/App.vue b/smart-admin-web-typescript/src/App.vue
index 8f690c8c..0da5d386 100644
--- a/smart-admin-web-typescript/src/App.vue
+++ b/smart-admin-web-typescript/src/App.vue
@@ -91,9 +91,6 @@
return text;
}
}
- window.addEventListener('resize',_.throttle(()=>{
- window.location.reload()
- },1000));
diff --git a/smart-admin-web-typescript/src/views/support/message/components/message-send-form.vue b/smart-admin-web-typescript/src/views/support/message/components/message-send-form.vue
new file mode 100644
index 00000000..bb0f1167
--- /dev/null
+++ b/smart-admin-web-typescript/src/views/support/message/components/message-send-form.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+ 选择接收人
+ {{ nameListString }}
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 保存
+
+
+
+
+
+
diff --git a/smart-admin-web-typescript/src/views/support/message/message-list.vue b/smart-admin-web-typescript/src/views/support/message/message-list.vue
new file mode 100644
index 00000000..048a005e
--- /dev/null
+++ b/smart-admin-web-typescript/src/views/support/message/message-list.vue
@@ -0,0 +1,236 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+
+
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ text ? '已读' : '未读' }}
+
+
+ {{ $smartEnumPlugin.getDescByValue('MESSAGE_TYPE_ENUM', text) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/smart-admin-web-typescript/src/views/system/menu/components/menu-operate-modal.vue b/smart-admin-web-typescript/src/views/system/menu/components/menu-operate-modal.vue
index d681f145..300bed69 100644
--- a/smart-admin-web-typescript/src/views/system/menu/components/menu-operate-modal.vue
+++ b/smart-admin-web-typescript/src/views/system/menu/components/menu-operate-modal.vue
@@ -15,6 +15,7 @@
:open="visible"
:width="600"
@close="onClose"
+ destroyOnClose
>
@@ -65,7 +66,7 @@
-
+
@@ -90,7 +91,7 @@
-
+
diff --git a/smart-admin-web-typescript/src/views/system/menu/menu-list-table-columns.ts b/smart-admin-web-typescript/src/views/system/menu/menu-list-table-columns.ts
index dabb6616..effc5ad0 100644
--- a/smart-admin-web-typescript/src/views/system/menu/menu-list-table-columns.ts
+++ b/smart-admin-web-typescript/src/views/system/menu/menu-list-table-columns.ts
@@ -13,12 +13,13 @@ export const columns = ref([
title: '名称',
dataIndex: 'menuName',
key: 'ID',
- width: 200,
+ width: 220,
},
{
title: '类型',
dataIndex: 'menuType',
- width: 80,
+ width: 100,
+ align: "center"
},
{
title: '图标',
@@ -53,6 +54,7 @@ export const columns = ref([
{
title: '操作',
dataIndex: 'operate',
- width: 100,
+ width: 170,
+ align: "center"
},
]);
diff --git a/smart-admin-web-typescript/src/views/system/menu/menu-list.vue b/smart-admin-web-typescript/src/views/system/menu/menu-list.vue
index bbbe14b3..dffb7888 100644
--- a/smart-admin-web-typescript/src/views/system/menu/menu-list.vue
+++ b/smart-admin-web-typescript/src/views/system/menu/menu-list.vue
@@ -88,7 +88,7 @@
@@ -157,6 +166,7 @@
import { smartSentry } from '/@/lib/smart-sentry';
import TableOperator from '/@/components/support/table-operator/index.vue';
import { TABLE_ID_CONST } from '/@/constants/support/table-id-const';
+ import { MENU_TYPE_ENUM } from '/@/constants/system/menu-const';
// ------------------------ 表格渲染 ------------------------
const menuTypeColorArray = ['red', 'blue', 'orange', 'green'];
@@ -256,4 +266,13 @@
function showDrawer(rowData) {
menuOperateModal.value.showDrawer(rowData);
}
+
+ function showAddSub(rowData) {
+ const subData = {
+ parentId: rowData.menuId,
+ menuType: rowData.menuType === MENU_TYPE_ENUM.CATALOG.value ? MENU_TYPE_ENUM.MENU.value : MENU_TYPE_ENUM.POINTS.value,
+ contextMenuId: rowData.menuType === MENU_TYPE_ENUM.MENU.value ? rowData.menuId : undefined,
+ };
+ menuOperateModal.value.showDrawer(subData);
+ }
diff --git a/smart-app/src/api/system/login-api.js b/smart-app/src/api/system/login-api.js
index 177190f3..98c540e7 100644
--- a/smart-app/src/api/system/login-api.js
+++ b/smart-app/src/api/system/login-api.js
@@ -37,4 +37,17 @@ export const loginApi = {
getLoginInfo: () => {
return getRequest('/login/getLoginInfo');
},
+ /**
+ * 获取双因子登录标识 @author 卓大
+ */
+ getTwoFactorLoginFlag: () => {
+ return getRequest('/login/getTwoFactorLoginFlag');
+ },
+ /**
+ * 获取邮箱登录验证码 @author 卓大
+ */
+ sendLoginEmailCode: (loginName) => {
+ return getRequest(`/login/sendEmailCode/${loginName}`);
+ },
+
};
diff --git a/smart-app/src/pages/login/login.vue b/smart-app/src/pages/login/login.vue
index 49d6810c..26b95141 100644
--- a/smart-app/src/pages/login/login.vue
+++ b/smart-app/src/pages/login/login.vue
@@ -19,6 +19,21 @@
/>
+
+
+
+
+
+
{
+ if (countDown > 1) {
+ countDown--;
+ emailCodeTips.value = `${countDown}秒后重新获取`;
+ } else {
+ clearInterval(countDownTimer);
+ emailCodeButtonDisabled.value = false;
+ emailCodeTips.value = '获取验证码';
+ }
+ }, 1000);
+ }
+
+ // 获取双因子登录标识
+ async function getTwoFactorLoginFlag() {
+ try {
+ let result = await loginApi.getTwoFactorLoginFlag();
+ emailCodeShowFlag.value = result.data;
+ } catch (e) {
+ smartSentry.captureError(e);
+ }
+ }
+ // 发送邮箱验证码
+ async function sendSmsCode() {
+ try {
+ uni.showLoading();
+ let result = await loginApi.sendLoginEmailCode(loginForm.loginName);
+ message.success('验证码发送成功!请登录邮箱查看验证码~');
+ runCountDown();
+ } catch (e) {
+ smartSentry.captureError(e);
+ } finally {
+ uni.hideLoading();
+ }
+ }
+ onShow(()=>{
+ getCaptcha()
+ getTwoFactorLoginFlag();
+ });
diff --git a/sql/smart_admin_v3.sql b/sql/smart_admin_v3.sql
index 085f7f8e..1bf3cc83 100644
--- a/sql/smart_admin_v3.sql
+++ b/sql/smart_admin_v3.sql
@@ -531,7 +531,7 @@ CREATE TABLE `t_menu` (
`update_user_id` bigint(0) NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
PRIMARY KEY (`menu_id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 252 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 268 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_menu
@@ -593,10 +593,10 @@ INSERT INTO `t_menu` VALUES (154, '获取缓存key', 3, 133, NULL, NULL, NULL, 1
INSERT INTO `t_menu` VALUES (156, '查看结果', 3, 117, NULL, NULL, NULL, 1, 'support:reload:result', 'support:reload:result', NULL, 117, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:17:23', 1, '2023-10-07 14:31:47');
INSERT INTO `t_menu` VALUES (157, '单号生成', 3, 130, NULL, NULL, NULL, 1, 'support:serialNumber:generate', 'support:serialNumber:generate', NULL, 130, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:21:06', 1, '2023-10-07 18:22:46');
INSERT INTO `t_menu` VALUES (158, '生成记录', 3, 130, NULL, NULL, NULL, 1, 'support:serialNumber:record', 'support:serialNumber:record', NULL, 130, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:21:34', 1, '2023-10-07 18:22:55');
-INSERT INTO `t_menu` VALUES (159, '新建', 3, 110, NULL, NULL, NULL, 1, 'support:dict:add', 'support:dict:add', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:23:51', 1, '2023-10-07 18:18:24');
-INSERT INTO `t_menu` VALUES (160, '编辑', 3, 110, NULL, NULL, NULL, 1, 'support:dict:edit', 'support:dict:edit', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:05', 1, '2023-10-07 18:19:17');
-INSERT INTO `t_menu` VALUES (161, '批量删除', 3, 110, NULL, NULL, NULL, 1, 'support:dict:delete', 'support:dict:delete', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:34', 1, '2023-10-07 18:19:39');
-INSERT INTO `t_menu` VALUES (162, '刷新缓存', 3, 110, NULL, NULL, NULL, 1, 'support:dict:refresh', 'support:dict:refresh', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:55', 1, '2023-10-07 18:18:37');
+INSERT INTO `t_menu` VALUES (159, '查询', 3, 110, NULL, NULL, NULL, 1, 'support:dict:query', 'support:dict:query', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:23:51', 1, '2025-04-08 19:42:25');
+INSERT INTO `t_menu` VALUES (160, '添加', 3, 110, NULL, NULL, NULL, 1, 'support:dict:add', 'support:dict:add', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:05', 1, '2025-04-08 19:43:02');
+INSERT INTO `t_menu` VALUES (161, '更新', 3, 110, NULL, NULL, NULL, 1, 'support:dict:update', 'support:dict:update', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:34', 1, '2025-04-08 19:43:34');
+INSERT INTO `t_menu` VALUES (162, '删除', 3, 110, NULL, NULL, NULL, 1, 'support:dict:delete', 'support:dict:delete', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:55', 1, '2025-04-08 19:43:52');
INSERT INTO `t_menu` VALUES (163, '新建', 3, 109, NULL, NULL, NULL, 1, 'support:config:add', 'support:config:add', NULL, 109, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:26:56', 1, '2023-10-07 18:16:17');
INSERT INTO `t_menu` VALUES (164, '编辑', 3, 109, NULL, NULL, NULL, 1, 'support:config:update', 'support:config:update', NULL, 109, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:27:07', 1, '2023-10-07 18:16:24');
INSERT INTO `t_menu` VALUES (165, '查询', 3, 47, NULL, NULL, NULL, 1, 'goods:query', 'goods:query', NULL, 47, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 19:55:39', 1, '2023-10-07 13:58:28');
@@ -657,6 +657,26 @@ INSERT INTO `t_menu` VALUES (233, 'knife4j文档', 2, 218, 4, '/knife4j', NULL,
INSERT INTO `t_menu` VALUES (234, 'swagger文档', 2, 218, 5, '/swagger', 'http://localhost:1024/swagger-ui/index.html', 1, NULL, NULL, 'ApiOutlined', NULL, 1, 'http://localhost:1024/swagger-ui/index.html', 1, 1, 0, 0, 1, '2024-07-02 20:35:43', 1, '2024-07-08 13:49:26');
INSERT INTO `t_menu` VALUES (250, '三级等保设置', 2, 213, 1, '/support/level3protect/level3-protect-config-index', '/support/level3protect/level3-protect-config-index.vue', 1, NULL, NULL, 'SafetyOutlined', NULL, 0, NULL, 1, 1, 0, 0, 44, '2024-08-13 11:41:02', 44, '2024-08-13 11:58:12');
INSERT INTO `t_menu` VALUES (251, '敏感数据脱敏', 2, 213, 3, '/support/level3protect/data-masking-list', '/support/level3protect/data-masking-list.vue', 1, NULL, NULL, 'FileProtectOutlined', NULL, 0, NULL, 1, 1, 0, 0, 44, '2024-08-13 11:58:00', 44, '2024-08-13 11:59:49');
+INSERT INTO `t_menu` VALUES (252, '启用/禁用', 3, 110, NULL, NULL, NULL, 1, 'support:dict:updateDisabled', 'support:dict:updateDisabled', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:44:12', 1, '2025-04-08 19:46:03');
+INSERT INTO `t_menu` VALUES (253, '查询字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:query', 'support:dictData:query', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:46:47', NULL, '2025-04-08 19:46:47');
+INSERT INTO `t_menu` VALUES (254, '添加字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:add', 'support:dictData:add', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:00', NULL, '2025-04-08 19:48:00');
+INSERT INTO `t_menu` VALUES (255, '更新字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:update', 'support:dictData:update', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:19', NULL, '2025-04-08 19:48:19');
+INSERT INTO `t_menu` VALUES (256, '删除字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:delete', 'support:dictData:delete', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:38', NULL, '2025-04-08 19:48:38');
+INSERT INTO `t_menu` VALUES (257, '启用/禁用字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:updateDisabled', 'support:dictData:updateDisabled', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:57', NULL, '2025-04-08 19:48:57');
+INSERT INTO `t_menu` VALUES (258, '查询企业员工', 3, 145, NULL, NULL, NULL, 1, 'oa:enterprise:queryEmployee', 'oa:enterprise:queryEmployee', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:11:46', 75, '2025-04-08 21:12:24');
+INSERT INTO `t_menu` VALUES (259, '查询银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:query', 'oa:bank:query', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:12:40', NULL, '2025-04-08 21:12:40');
+INSERT INTO `t_menu` VALUES (260, '查询发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:query', 'oa:invoice:query', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:12:56', NULL, '2025-04-08 21:12:56');
+INSERT INTO `t_menu` VALUES (261, '添加企业员工', 3, 145, NULL, NULL, NULL, 1, 'oa:enterprise:addEmployee', 'oa:enterprise:addEmployee', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:35:34', NULL, '2025-04-08 21:35:34');
+INSERT INTO `t_menu` VALUES (262, '删除企业员工', 3, 145, NULL, NULL, NULL, 1, 'oa:enterprise:deleteEmployee', 'oa:enterprise:deleteEmployee', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:40:17', NULL, '2025-04-08 21:40:17');
+INSERT INTO `t_menu` VALUES (263, '添加银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:add', 'oa:bank:add', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:45:44', NULL, '2025-04-08 21:45:44');
+INSERT INTO `t_menu` VALUES (264, '更新银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:update', 'oa:bank:update', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:02', NULL, '2025-04-08 21:46:02');
+INSERT INTO `t_menu` VALUES (265, '删除银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:delete', 'oa:bank:delete', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:12', NULL, '2025-04-08 21:46:12');
+INSERT INTO `t_menu` VALUES (266, '添加发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:add', 'oa:invoice:add', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:30', NULL, '2025-04-08 21:46:30');
+INSERT INTO `t_menu` VALUES (267, '更新发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:update', 'oa:invoice:update', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:47', NULL, '2025-04-08 21:46:47');
+INSERT INTO `t_menu` VALUES (268, '删除发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:delete', 'oa:invoice:delete', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:59', NULL, '2025-04-08 21:46:59');
+INSERT INTO `t_menu` VALUES (300, '消息管理', 2, 50, 30, '/message', '/support/message/message-list.vue', 1, NULL, NULL, 'MailOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2025-04-09 14:30:04', 1, '2025-04-10 20:19:36');
+
+
-- ----------------------------
-- Table structure for t_message
diff --git a/sql/sql-update-log/v3.18.0.sql b/sql/sql-update-log/v3.18.0.sql
new file mode 100644
index 00000000..6c3f1df0
--- /dev/null
+++ b/sql/sql-update-log/v3.18.0.sql
@@ -0,0 +1,21 @@
+INSERT INTO `t_menu` VALUES (252, '启用/禁用', 3, 110, NULL, NULL, NULL, 1, 'support:dict:updateDisabled', 'support:dict:updateDisabled', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:44:12', 1, '2025-04-08 19:46:03');
+INSERT INTO `t_menu` VALUES (253, '查询字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:query', 'support:dictData:query', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:46:47', NULL, '2025-04-08 19:46:47');
+INSERT INTO `t_menu` VALUES (254, '添加字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:add', 'support:dictData:add', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:00', NULL, '2025-04-08 19:48:00');
+INSERT INTO `t_menu` VALUES (255, '更新字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:update', 'support:dictData:update', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:19', NULL, '2025-04-08 19:48:19');
+INSERT INTO `t_menu` VALUES (256, '删除字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:delete', 'support:dictData:delete', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:38', NULL, '2025-04-08 19:48:38');
+INSERT INTO `t_menu` VALUES (257, '启用/禁用字典数据', 3, 110, NULL, NULL, NULL, 1, 'support:dictData:updateDisabled', 'support:dictData:updateDisabled', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2025-04-08 19:48:57', NULL, '2025-04-08 19:48:57');
+
+INSERT INTO `t_menu` VALUES (258, '查询企业员工', 3, 145, NULL, NULL, NULL, 1, 'oa:enterprise:queryEmployee', 'oa:enterprise:queryEmployee', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:11:46', 75, '2025-04-08 21:12:24');
+INSERT INTO `t_menu` VALUES (259, '查询银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:query', 'oa:bank:query', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:12:40', NULL, '2025-04-08 21:12:40');
+INSERT INTO `t_menu` VALUES (260, '查询发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:query', 'oa:invoice:query', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:12:56', NULL, '2025-04-08 21:12:56');
+INSERT INTO `t_menu` VALUES (261, '添加企业员工', 3, 145, NULL, NULL, NULL, 1, 'oa:enterprise:addEmployee', 'oa:enterprise:addEmployee', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:35:34', NULL, '2025-04-08 21:35:34');
+INSERT INTO `t_menu` VALUES (262, '删除企业员工', 3, 145, NULL, NULL, NULL, 1, 'oa:enterprise:deleteEmployee', 'oa:enterprise:deleteEmployee', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:40:17', NULL, '2025-04-08 21:40:17');
+INSERT INTO `t_menu` VALUES (263, '添加银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:add', 'oa:bank:add', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:45:44', NULL, '2025-04-08 21:45:44');
+INSERT INTO `t_menu` VALUES (264, '更新银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:update', 'oa:bank:update', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:02', NULL, '2025-04-08 21:46:02');
+INSERT INTO `t_menu` VALUES (265, '删除银行信息', 3, 145, NULL, NULL, NULL, 1, 'oa:bank:delete', 'oa:bank:delete', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:12', NULL, '2025-04-08 21:46:12');
+INSERT INTO `t_menu` VALUES (266, '添加发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:add', 'oa:invoice:add', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:30', NULL, '2025-04-08 21:46:30');
+INSERT INTO `t_menu` VALUES (267, '更新发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:update', 'oa:invoice:update', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:47', NULL, '2025-04-08 21:46:47');
+INSERT INTO `t_menu` VALUES (268, '删除发票信息', 3, 145, NULL, NULL, NULL, 1, 'oa:invoice:delete', 'oa:invoice:delete', NULL, 145, 0, NULL, 0, 1, 0, 0, 75, '2025-04-08 21:46:59', NULL, '2025-04-08 21:46:59');
+
+
+INSERT INTO `t_menu` VALUES (300, '消息管理', 2, 50, 30, '/message', '/support/message/message-list.vue', 1, NULL, NULL, 'MailOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2025-04-09 14:30:04', 1, '2025-04-10 20:19:36');