diff --git a/README.md b/README.md
index c4572a4c28e5cab97b60eff37556531dc13134c1..99cd082a88973af3ee40df03063673011636b387 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
- 演示地址:http://demo.open.renren.io/renren-security (账号密码:admin/admin)
-
+### 登录功能开发中
### 微信交流群
我们提供了微信交流群,扫码下面的二维码,关注【人人开源】公众号,回复【加群】,即可根据提示加入微信群!
diff --git a/renren-admin/db/xin.sql b/renren-admin/db/xin.sql
new file mode 100644
index 0000000000000000000000000000000000000000..c78cab2d495dc8d917f45808ef1f0f9a38087135
--- /dev/null
+++ b/renren-admin/db/xin.sql
@@ -0,0 +1,31 @@
+-- 资质审核表
+CREATE TABLE sys_audit (
+ id bigint NOT NULL COMMENT 'id',
+ type tinyint unsigned NOT NULL COMMENT '审核类型 0:发货方 1:物流公司',
+ name varchar(100) NOT NULL COMMENT '名称',
+ contact varchar(100) COMMENT '联系人',
+ mobile varchar(20) COMMENT '手机号',
+ status tinyint unsigned NOT NULL COMMENT '审核状态 0:待审核 1:审核通过 2:审核拒绝',
+ reject_reason varchar(500) COMMENT '拒绝原因',
+ creator bigint COMMENT '创建者',
+ create_date datetime COMMENT '创建时间',
+ updater bigint COMMENT '更新者',
+ update_date datetime COMMENT '更新时间',
+ PRIMARY KEY (id),
+ key idx_type (type),
+ key idx_status (status),
+ key idx_create_date (create_date)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资质审核表';
+
+-- 资质文件表
+CREATE TABLE sys_audit_file (
+ id bigint NOT NULL COMMENT 'id',
+ audit_id bigint NOT NULL COMMENT '审核ID',
+ file_name varchar(200) NOT NULL COMMENT '文件名',
+ file_url varchar(500) NOT NULL COMMENT '文件路径',
+ file_type varchar(50) COMMENT '文件类型',
+ creator bigint COMMENT '创建者',
+ create_date datetime COMMENT '创建时间',
+ PRIMARY KEY (id),
+ key idx_audit_id (audit_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资质文件表';
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/common/utils/Result.java b/renren-admin/src/main/java/io/renren/common/utils/Result.java
new file mode 100644
index 0000000000000000000000000000000000000000..cb014f3442d50803f5f3bcc98760a0f431598921
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/common/utils/Result.java
@@ -0,0 +1,75 @@
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 新增调用接口
+ * Date 2026/3/27 19:31
+ **/
+package io.renren.common.utils;
+
+
+import java.util.HashMap;
+
+// ========== 添加泛型参数 ==========
+public class Result extends HashMap {
+
+ public static Result ok() {
+ Result r = new Result<>();
+ r.put("code", 0);
+ r.put("msg", "success");
+ return r;
+ }
+
+ // ========== 添加泛型参数的方法 ==========
+ public static Result ok(T data) {
+ Result r = new Result<>();
+ r.put("code", 0);
+ r.put("msg", "success");
+ r.put("data", data);
+ return r;
+ }
+
+ // ========== 修改和新增 error 方法 ==========
+
+ /**
+ * 无参错误(默认错误)
+ */
+ public Result error() {
+ this.put("code", 500);
+ this.put("msg", "未知异常,请联系管理员");
+ return this;
+ }
+
+ /**
+ * 只有错误码(需要配合获取错误信息)
+ */
+ public Result error(int code) {
+ this.put("code", code);
+ this.put("msg", "error");
+ return this;
+ }
+
+ /**
+ * 错误码 + 错误信息(实例方法,供链式调用)
+ */
+ public Result error(int code, String msg) {
+ this.put("code", code);
+ this.put("msg", msg);
+ return this;
+ }
+
+ /**
+ * 静态方法:只有错误信息
+ */
+ public static Result error(String msg) {
+ Result r = new Result<>();
+ r.put("code", 500);
+ r.put("msg", msg);
+ return r;
+ }
+
+ public Result put(String key, Object value) {
+ super.put(key, value);
+ return this;
+ }
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/controller/SysAuditController.java b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysAuditController.java
new file mode 100644
index 0000000000000000000000000000000000000000..8b3724a5d09d29aa7e7a025b9373ed4676b9a2c3
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/controller/SysAuditController.java
@@ -0,0 +1,67 @@
+package io.renren.modules.sys.controller;
+
+import io.renren.common.utils.Result;
+import io.renren.modules.sys.dto.SysAuditDTO;
+import io.renren.modules.sys.service.SysAuditService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 后端资质审核Controller
+ * Date 2026/3/27 19:08
+ **/
+
+/**
+ * 资质审核控制器
+ */
+@RestController
+@RequestMapping("sys/audit")
+@AllArgsConstructor
+public class SysAuditController {
+
+ private final SysAuditService sysAuditService;
+
+ /**
+ * 分页查询
+ */
+ @GetMapping("/page")
+ public Result page(@RequestParam Map params) {
+ // 修复后:确保Result.ok()是静态方法,支持链式调用
+ return Result.ok().put("data", sysAuditService.page(params));
+ }
+
+ /**
+ * 获取详情
+ */
+ @GetMapping("/info/{id}")
+ public Result info(@PathVariable("id") Long id) {
+ return Result.ok().put("data", sysAuditService.getById(id));
+ }
+
+ /**
+ * 保存审核信息
+ */
+ @PostMapping("/save")
+ public Result save(@RequestBody SysAuditDTO dto) {
+ sysAuditService.save(dto);
+ return Result.ok();
+ }
+
+ /**
+ * 更新审核状态
+ */
+ @PostMapping("/updateStatus")
+ public Result updateStatus(
+ @RequestParam Long id,
+ @RequestParam Integer status,
+ @RequestParam(required = false) String rejectReason) {
+ sysAuditService.updateStatus(id, status, rejectReason);
+ return Result.ok();
+ }
+
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dao/SysAuditDao.java b/renren-admin/src/main/java/io/renren/modules/sys/dao/SysAuditDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..567d9ef8149f2d075b1c8cb9efcea16b13d87690
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/dao/SysAuditDao.java
@@ -0,0 +1,21 @@
+package io.renren.modules.sys.dao;
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 后端资质文件审核DAO接口
+ * Date 2026/3/27 19:04
+ **/
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import io.renren.modules.sys.entity.SysAuditEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 资质审核DAO
+ */
+@Mapper
+public interface SysAuditDao extends BaseMapper {
+
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dao/SysAuditFileDao.java b/renren-admin/src/main/java/io/renren/modules/sys/dao/SysAuditFileDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd37a72fd7eb4b1ff85e4f3c65aab161c7fec2ea
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/dao/SysAuditFileDao.java
@@ -0,0 +1,24 @@
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 资质文件Dao
+ * Date 2026/3/27 19:19
+ **/
+package io.renren.modules.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import io.renren.modules.sys.entity.SysAuditFileEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 资质文件DAO
+ */
+@Mapper
+public interface SysAuditFileDao extends BaseMapper {
+
+ void insertBatch(List fileEntities);
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysAuditDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysAuditDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..abd48b3efe3effa2fe491344a420b0a5f979bc73
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysAuditDTO.java
@@ -0,0 +1,73 @@
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 后端资质审核传输对象
+ * Date 2026/3/27 19:01
+ **/
+package io.renren.modules.sys.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 资质审核DTO
+ */
+@Data
+public class SysAuditDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 审核类型 0:发货方 1:物流公司
+ */
+ private Integer type;
+ /**
+ * 名称
+ */
+ private String name;
+ /**
+ * 联系人
+ */
+ private String contact;
+ /**
+ * 手机号
+ */
+ private String mobile;
+ /**
+ * 审核状态 0:待审核 1:审核通过 2:审核拒绝
+ */
+ private Integer status;
+ /**
+ * 拒绝原因
+ */
+ private String rejectReason;
+ /**
+ * 文件列表
+ */
+ private List files;
+ /**
+ * 创建者
+ */
+ private Long creator;
+ /**
+ * 创建时间
+ */
+ private Date createDate;
+ /**
+ * 更新者
+ */
+ private Long updater;
+ /**
+ * 更新时间
+ */
+ private Date updateDate;
+
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/dto/SysAuditFileDTO.java b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysAuditFileDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..a14a7f39ac03fa55b9ef2be9f33aae0f9ac34822
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/dto/SysAuditFileDTO.java
@@ -0,0 +1,52 @@
+package io.renren.modules.sys.dto;
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 后端资质文件DTO
+ * Date 2026/3/27 19:03
+ **/
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 资质文件DTO
+ */
+@Data
+public class SysAuditFileDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 审核ID
+ */
+ private Long auditId;
+ /**
+ * 文件名
+ */
+ private String fileName;
+ /**
+ * 文件路径
+ */
+ private String fileUrl;
+ /**
+ * 文件类型
+ */
+ private String fileType;
+ /**
+ * 创建者
+ */
+ private Long creator;
+ /**
+ * 创建时间
+ */
+ private Date createDate;
+
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/entity/SysAuditEntity.java b/renren-admin/src/main/java/io/renren/modules/sys/entity/SysAuditEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6ad1f4de59379763e4df28ce6732d28b014891f
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/entity/SysAuditEntity.java
@@ -0,0 +1,76 @@
+package io.renren.modules.sys.entity;
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 资质审核后端API
+ * Date 2026/3/27 18:58
+ **/
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 资质审核表
+ *
+ * @author renren
+ * @email xxx@qq.com
+ * @date 2026-03-27 15:00:00
+ */
+@Data
+@TableName("sys_audit")
+public class SysAuditEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId
+ private Long id;
+ /**
+ * 审核类型 0:发货方 1:物流公司
+ */
+ private Integer type;
+ /**
+ * 名称
+ */
+ private String name;
+ /**
+ * 联系人
+ */
+ private String contact;
+ /**
+ * 手机号
+ */
+ private String mobile;
+ /**
+ * 审核状态 0:待审核 1:审核通过 2:审核拒绝
+ */
+ private Integer status;
+ /**
+ * 拒绝原因
+ */
+ private String rejectReason;
+ /**
+ * 创建者
+ */
+ private Long creator;
+ /**
+ * 创建时间
+ */
+ private Date createDate;
+ /**
+ * 更新者
+ */
+ private Long updater;
+ /**
+ * 更新时间
+ */
+ private Date updateDate;
+
+}
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/entity/SysAuditFileEntity.java b/renren-admin/src/main/java/io/renren/modules/sys/entity/SysAuditFileEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..5aa60175e72e4532c9b58fdc6da756d0aacbb7bf
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/entity/SysAuditFileEntity.java
@@ -0,0 +1,60 @@
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 资质文件后端
+ * Date 2026/3/27 18:59
+ **/
+package io.renren.modules.sys.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 资质文件表
+ *
+ * @author renren
+ * @email xxx@qq.com
+ * @date 2026-03-27 15:00:00
+ */
+@Data
+@TableName("sys_audit_file")
+public class SysAuditFileEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId
+ private Long id;
+ /**
+ * 审核ID
+ */
+ private Long auditId;
+ /**
+ * 文件名
+ */
+ private String fileName;
+ /**
+ * 文件路径
+ */
+ private String fileUrl;
+ /**
+ * 文件类型
+ */
+ private String fileType;
+ /**
+ * 创建者
+ */
+ private Long creator;
+ /**
+ * 创建时间
+ */
+ private Date createDate;
+
+}
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/service/SysAuditService.java b/renren-admin/src/main/java/io/renren/modules/sys/service/SysAuditService.java
new file mode 100644
index 0000000000000000000000000000000000000000..7882695661a6e9b75b294d4ae0cb46dc9435b97a
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/service/SysAuditService.java
@@ -0,0 +1,43 @@
+package io.renren.modules.sys.service;
+
+/**
+ * @author zhangjinlai
+ * @version 1.0
+ * Project renren-security
+ * Description 后端资质审核服务
+ * Date 2026/3/27 19:05
+ **/
+
+import io.renren.common.page.PageData;
+import io.renren.common.service.BaseService;
+import io.renren.modules.sys.dto.SysAuditDTO;
+import io.renren.modules.sys.entity.SysAuditEntity;
+
+import java.util.Map;
+
+/**
+ * 资质审核服务
+ */
+public interface SysAuditService extends BaseService {
+
+ /**
+ * 保存审核信息
+ */
+ void save(SysAuditDTO dto);
+
+ /**
+ * 更新审核状态
+ */
+ void updateStatus(Long id, Integer status, String rejectReason);
+
+ /**
+ * 获取审核详情
+ */
+ SysAuditDTO getById(Long id);
+
+ /**
+ * 分页查询
+ */
+ PageData page(Map params);
+
+}
diff --git a/renren-admin/src/main/java/io/renren/modules/sys/service/impl/SysAuditServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/sys/service/impl/SysAuditServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..e505b0918c4d3ec9ff12bd962cda68d51a2a7dc1
--- /dev/null
+++ b/renren-admin/src/main/java/io/renren/modules/sys/service/impl/SysAuditServiceImpl.java
@@ -0,0 +1,106 @@
+package io.renren.modules.sys.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.renren.common.constant.Constant;
+import io.renren.common.page.PageData;
+import io.renren.common.service.impl.BaseServiceImpl;
+import io.renren.common.utils.ConvertUtils;
+import io.renren.modules.sys.dao.SysAuditDao;
+import io.renren.modules.sys.dao.SysAuditFileDao;
+import io.renren.modules.sys.dto.SysAuditDTO;
+import io.renren.modules.sys.dto.SysAuditFileDTO;
+import io.renren.modules.sys.entity.SysAuditEntity;
+import io.renren.modules.sys.entity.SysAuditFileEntity;
+import io.renren.modules.sys.service.SysAuditService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 资质审核服务实现
+ */
+@Service
+@AllArgsConstructor
+public class SysAuditServiceImpl extends BaseServiceImpl implements SysAuditService {
+
+ private final SysAuditFileDao sysAuditFileDao;
+
+ @Override
+ @Transactional
+ public void save(SysAuditDTO dto) {
+ // 保存审核信息
+ SysAuditEntity entity = ConvertUtils.sourceToTarget(dto, SysAuditEntity.class);
+ entity.setStatus(0); // 初始状态为待审核
+ entity.setCreateDate(new Date());
+ entity.setUpdateDate(new Date());
+ insert(entity);
+
+ // 保存文件信息
+ if (dto.getFiles() != null && !dto.getFiles().isEmpty()) {
+ List fileEntities = new ArrayList<>();
+ for (SysAuditFileDTO fileDto : dto.getFiles()) {
+ SysAuditFileEntity fileEntity = ConvertUtils.sourceToTarget(fileDto, SysAuditFileEntity.class);
+ fileEntity.setAuditId(entity.getId());
+ fileEntity.setCreateDate(new Date());
+ fileEntities.add(fileEntity);
+ }
+ // 循环插入文件
+ for (SysAuditFileEntity fileEntity : fileEntities) {
+ sysAuditFileDao.insert(fileEntity);
+ }
+ }
+ }
+
+ @Override
+ @Transactional
+ public void updateStatus(Long id, Integer status, String rejectReason) {
+ // 修正:使用 baseDao.selectById 替代 super.getById
+ SysAuditEntity entity = baseDao.selectById(id);
+ if (entity != null) {
+ entity.setStatus(status);
+ entity.setRejectReason(rejectReason);
+ entity.setUpdateDate(new Date());
+ baseDao.updateById(entity);
+ }
+ }
+
+ @Override
+ public SysAuditDTO getById(Long id) {
+ // 修正:使用 baseDao.selectById 替代 super.getById
+ SysAuditEntity entity = baseDao.selectById(id);
+ if (entity == null) {
+ return null;
+ }
+
+ SysAuditDTO dto = ConvertUtils.sourceToTarget(entity, SysAuditDTO.class);
+
+ // 查询文件列表
+ List fileEntities = sysAuditFileDao.selectList(
+ new QueryWrapper().eq("audit_id", id)
+ );
+
+ List fileDtos = ConvertUtils.sourceToTarget(fileEntities, SysAuditFileDTO.class);
+ dto.setFiles(fileDtos);
+
+ return dto;
+ }
+
+ @Override
+ public PageData page(Map params) {
+ // 分页
+ IPage page = getPage(params, Constant.CREATE_DATE, false);
+
+ // 查询
+ List list = baseDao.selectList(
+ new QueryWrapper()
+ );
+
+ return getPageData(list, page.getTotal(), SysAuditDTO.class);
+ }
+}
\ No newline at end of file
diff --git a/renren-admin/src/main/resources/application-dev.yml b/renren-admin/src/main/resources/application-dev.yml
index af80fc7904c44aebdfa1a4b52ac77d9113848771..431fa42907f845dc48a5417e88a354af0790de88 100644
--- a/renren-admin/src/main/resources/application-dev.yml
+++ b/renren-admin/src/main/resources/application-dev.yml
@@ -4,8 +4,8 @@ spring:
#MySQL
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
- username: renren
- password: 123456
+ username: root
+ password: root
#达梦8
# driver-class-name: dm.jdbc.driver.DmDriver
# url: jdbc:dm://192.168.10.10:5236/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
diff --git a/renren-admin/src/main/resources/application-prod.yml b/renren-admin/src/main/resources/application-prod.yml
index 80d85af6e6dc05a3080ee301fdd05697b4c7f926..367d6bbbe07ed0ac8ffe939633ce159eca14fd5f 100644
--- a/renren-admin/src/main/resources/application-prod.yml
+++ b/renren-admin/src/main/resources/application-prod.yml
@@ -4,8 +4,8 @@ spring:
#MySQL
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
- username: renren
- password: 123456
+ username: root
+ password: root
initial-size: 10
max-active: 100
min-idle: 10
diff --git a/renren-admin/src/main/resources/application-test.yml b/renren-admin/src/main/resources/application-test.yml
index 80d85af6e6dc05a3080ee301fdd05697b4c7f926..367d6bbbe07ed0ac8ffe939633ce159eca14fd5f 100644
--- a/renren-admin/src/main/resources/application-test.yml
+++ b/renren-admin/src/main/resources/application-test.yml
@@ -4,8 +4,8 @@ spring:
#MySQL
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
- username: renren
- password: 123456
+ username: root
+ password: root
initial-size: 10
max-active: 100
min-idle: 10
diff --git a/renren-api/src/main/resources/application-dev.yml b/renren-api/src/main/resources/application-dev.yml
index fa43e6c82f23167c4d596bf2025b4dab47019fd3..c4c364d359e31025b280213a314f6e56edd3478f 100644
--- a/renren-api/src/main/resources/application-dev.yml
+++ b/renren-api/src/main/resources/application-dev.yml
@@ -3,8 +3,8 @@ spring:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
- username: renren
- password: 123456
+ username: root
+ password: root
initial-size: 10
max-active: 100
min-idle: 10
diff --git a/renren-api/src/main/resources/application-prod.yml b/renren-api/src/main/resources/application-prod.yml
index fa43e6c82f23167c4d596bf2025b4dab47019fd3..c4c364d359e31025b280213a314f6e56edd3478f 100644
--- a/renren-api/src/main/resources/application-prod.yml
+++ b/renren-api/src/main/resources/application-prod.yml
@@ -3,8 +3,8 @@ spring:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
- username: renren
- password: 123456
+ username: root
+ password: root
initial-size: 10
max-active: 100
min-idle: 10
diff --git a/renren-api/src/main/resources/application-test.yml b/renren-api/src/main/resources/application-test.yml
index fa43e6c82f23167c4d596bf2025b4dab47019fd3..c4c364d359e31025b280213a314f6e56edd3478f 100644
--- a/renren-api/src/main/resources/application-test.yml
+++ b/renren-api/src/main/resources/application-test.yml
@@ -3,8 +3,8 @@ spring:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren_security?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
- username: renren
- password: 123456
+ username: root
+ password: root
initial-size: 10
max-active: 100
min-idle: 10
diff --git a/renren-ui/src/service/api/sys/audit.ts b/renren-ui/src/service/api/sys/audit.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c4de8cffc739fabb00b583925bc25f2b8f14723f
--- /dev/null
+++ b/renren-ui/src/service/api/sys/audit.ts
@@ -0,0 +1,49 @@
+import request from '@/utils/http'
+
+// 定义参数类型
+interface PageParams {
+ [key: string]: any
+}
+
+interface AuditData {
+ [key: string]: any
+}
+
+// 分页查询
+export function list(params: PageParams) {
+ return request({
+ url: '/sys/audit/page',
+ method: 'get',
+ params
+ })
+}
+
+// 获取详情
+export function getById(id: number | string) {
+ return request({
+ url: `/sys/audit/info/${id}`,
+ method: 'get'
+ })
+}
+
+// 保存审核信息
+export function save(data: AuditData) {
+ return request({
+ url: '/sys/audit/save',
+ method: 'post',
+ data
+ })
+}
+
+// 更新审核状态
+export function updateStatus(id: number | string, status: number, rejectReason?: string) {
+ return request({
+ url: '/sys/audit/updateStatus',
+ method: 'post',
+ params: {
+ id,
+ status,
+ rejectReason
+ }
+ })
+}
diff --git a/renren-ui/src/views/sys/audit.vue b/renren-ui/src/views/sys/audit.vue
new file mode 100644
index 0000000000000000000000000000000000000000..b89083a62ebd866c7342a0361491eb3657c3ab70
--- /dev/null
+++ b/renren-ui/src/views/sys/audit.vue
@@ -0,0 +1,423 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+ 新增审核
+
+
+
+
+
+
+
+
+
+ 发货方
+ 物流公司
+
+
+
+
+
+
+
+ 待审核
+ 审核通过
+ 审核拒绝
+
+
+
+
+
+ 查看
+ 通过
+ 拒绝
+
+
+
+
+
+
+
+
+
+
+
+ 发货方
+ 物流公司
+
+
+ {{ form.name }}
+
+
+ {{ form.contact }}
+
+
+ {{ form.mobile }}
+
+
+ 待审核
+ 审核通过
+ 审核拒绝
+
+
+ {{ form.rejectReason }}
+
+
+
+
+ 暂无文件
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 发货方
+ 物流公司
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传文件
+
+
+ 请上传资质文件,支持图片格式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/renren-ui/\346\265\213\350\257\225" "b/renren-ui/\346\265\213\350\257\225"
new file mode 100644
index 0000000000000000000000000000000000000000..6b8aa8df8a2a6f2c647510c5bd8131c5f63134e7
--- /dev/null
+++ "b/renren-ui/\346\265\213\350\257\225"
@@ -0,0 +1,6 @@
+111212121212
+zwd
+1212
+1233221
+1234
+12
diff --git a/renren_security.sql b/renren_security.sql
new file mode 100644
index 0000000000000000000000000000000000000000..073e658d0cbcd7b7c2217040674aaa76daa35832
--- /dev/null
+++ b/renren_security.sql
@@ -0,0 +1,832 @@
+/*
+Navicat MySQL Data Transfer
+
+Source Server : localhost_3306
+Source Server Version : 50726
+Source Host : localhost:3306
+Source Database : renren_security
+
+Target Server Type : MYSQL
+Target Server Version : 50726
+File Encoding : 65001
+
+Date: 2026-04-01 18:11:59
+*/
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for `qrtz_blob_triggers`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_blob_triggers`;
+CREATE TABLE `qrtz_blob_triggers` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `TRIGGER_NAME` varchar(200) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ `BLOB_DATA` blob,
+ PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_blob_triggers
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_calendars`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_calendars`;
+CREATE TABLE `qrtz_calendars` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `CALENDAR_NAME` varchar(200) NOT NULL,
+ `CALENDAR` blob NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_calendars
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_cron_triggers`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_cron_triggers`;
+CREATE TABLE `qrtz_cron_triggers` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `TRIGGER_NAME` varchar(200) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ `CRON_EXPRESSION` varchar(120) NOT NULL,
+ `TIME_ZONE_ID` varchar(80) DEFAULT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_cron_triggers
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_fired_triggers`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_fired_triggers`;
+CREATE TABLE `qrtz_fired_triggers` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `ENTRY_ID` varchar(95) NOT NULL,
+ `TRIGGER_NAME` varchar(200) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ `INSTANCE_NAME` varchar(200) NOT NULL,
+ `FIRED_TIME` bigint(13) NOT NULL,
+ `SCHED_TIME` bigint(13) NOT NULL,
+ `PRIORITY` int(11) NOT NULL,
+ `STATE` varchar(16) NOT NULL,
+ `JOB_NAME` varchar(200) DEFAULT NULL,
+ `JOB_GROUP` varchar(200) DEFAULT NULL,
+ `IS_NONCONCURRENT` varchar(1) DEFAULT NULL,
+ `REQUESTS_RECOVERY` varchar(1) DEFAULT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`),
+ KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`),
+ KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`),
+ KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
+ KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`),
+ KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_fired_triggers
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_job_details`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_job_details`;
+CREATE TABLE `qrtz_job_details` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `JOB_NAME` varchar(200) NOT NULL,
+ `JOB_GROUP` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(250) DEFAULT NULL,
+ `JOB_CLASS_NAME` varchar(250) NOT NULL,
+ `IS_DURABLE` varchar(1) NOT NULL,
+ `IS_NONCONCURRENT` varchar(1) NOT NULL,
+ `IS_UPDATE_DATA` varchar(1) NOT NULL,
+ `REQUESTS_RECOVERY` varchar(1) NOT NULL,
+ `JOB_DATA` blob,
+ PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
+ KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`),
+ KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_job_details
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_locks`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_locks`;
+CREATE TABLE `qrtz_locks` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `LOCK_NAME` varchar(40) NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_locks
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_paused_trigger_grps`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
+CREATE TABLE `qrtz_paused_trigger_grps` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_paused_trigger_grps
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_scheduler_state`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_scheduler_state`;
+CREATE TABLE `qrtz_scheduler_state` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `INSTANCE_NAME` varchar(200) NOT NULL,
+ `LAST_CHECKIN_TIME` bigint(13) NOT NULL,
+ `CHECKIN_INTERVAL` bigint(13) NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_scheduler_state
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_simple_triggers`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_simple_triggers`;
+CREATE TABLE `qrtz_simple_triggers` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `TRIGGER_NAME` varchar(200) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ `REPEAT_COUNT` bigint(7) NOT NULL,
+ `REPEAT_INTERVAL` bigint(12) NOT NULL,
+ `TIMES_TRIGGERED` bigint(10) NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_simple_triggers
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_simprop_triggers`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
+CREATE TABLE `qrtz_simprop_triggers` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `TRIGGER_NAME` varchar(200) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ `STR_PROP_1` varchar(512) DEFAULT NULL,
+ `STR_PROP_2` varchar(512) DEFAULT NULL,
+ `STR_PROP_3` varchar(512) DEFAULT NULL,
+ `INT_PROP_1` int(11) DEFAULT NULL,
+ `INT_PROP_2` int(11) DEFAULT NULL,
+ `LONG_PROP_1` bigint(20) DEFAULT NULL,
+ `LONG_PROP_2` bigint(20) DEFAULT NULL,
+ `DEC_PROP_1` decimal(13,4) DEFAULT NULL,
+ `DEC_PROP_2` decimal(13,4) DEFAULT NULL,
+ `BOOL_PROP_1` varchar(1) DEFAULT NULL,
+ `BOOL_PROP_2` varchar(1) DEFAULT NULL,
+ PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_simprop_triggers
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `qrtz_triggers`
+-- ----------------------------
+DROP TABLE IF EXISTS `qrtz_triggers`;
+CREATE TABLE `qrtz_triggers` (
+ `SCHED_NAME` varchar(120) NOT NULL,
+ `TRIGGER_NAME` varchar(200) NOT NULL,
+ `TRIGGER_GROUP` varchar(200) NOT NULL,
+ `JOB_NAME` varchar(200) NOT NULL,
+ `JOB_GROUP` varchar(200) NOT NULL,
+ `DESCRIPTION` varchar(250) DEFAULT NULL,
+ `NEXT_FIRE_TIME` bigint(13) DEFAULT NULL,
+ `PREV_FIRE_TIME` bigint(13) DEFAULT NULL,
+ `PRIORITY` int(11) DEFAULT NULL,
+ `TRIGGER_STATE` varchar(16) NOT NULL,
+ `TRIGGER_TYPE` varchar(8) NOT NULL,
+ `START_TIME` bigint(13) NOT NULL,
+ `END_TIME` bigint(13) DEFAULT NULL,
+ `CALENDAR_NAME` varchar(200) DEFAULT NULL,
+ `MISFIRE_INSTR` smallint(2) DEFAULT NULL,
+ `JOB_DATA` blob,
+ PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
+ KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
+ KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`),
+ KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`),
+ KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`),
+ KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`),
+ KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
+ KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
+ KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`),
+ KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`),
+ KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`),
+ KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`),
+ KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
+ CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of qrtz_triggers
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `schedule_job`
+-- ----------------------------
+DROP TABLE IF EXISTS `schedule_job`;
+CREATE TABLE `schedule_job` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称',
+ `params` varchar(2000) DEFAULT NULL COMMENT '参数',
+ `cron_expression` varchar(100) DEFAULT NULL COMMENT 'cron表达式',
+ `status` tinyint(3) unsigned DEFAULT NULL COMMENT '任务状态 0:暂停 1:正常',
+ `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务';
+
+-- ----------------------------
+-- Records of schedule_job
+-- ----------------------------
+INSERT INTO `schedule_job` VALUES ('1067246875800000076', 'testTask', 'renren', '0 0/30 * * * ?', '0', '有参测试,多个参数使用json', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+
+-- ----------------------------
+-- Table structure for `schedule_job_log`
+-- ----------------------------
+DROP TABLE IF EXISTS `schedule_job_log`;
+CREATE TABLE `schedule_job_log` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `job_id` bigint(20) NOT NULL COMMENT '任务id',
+ `bean_name` varchar(200) DEFAULT NULL COMMENT 'spring bean名称',
+ `params` varchar(2000) DEFAULT NULL COMMENT '参数',
+ `status` tinyint(3) unsigned NOT NULL COMMENT '任务状态 0:失败 1:成功',
+ `error` varchar(2000) DEFAULT NULL COMMENT '失败信息',
+ `times` int(11) NOT NULL COMMENT '耗时(单位:毫秒)',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_job_id` (`job_id`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='定时任务日志';
+
+-- ----------------------------
+-- Records of schedule_job_log
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `sys_audit`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_audit`;
+CREATE TABLE `sys_audit` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `type` tinyint(3) unsigned NOT NULL COMMENT '审核类型 0:发货方 1:物流公司',
+ `name` varchar(100) NOT NULL COMMENT '名称',
+ `contact` varchar(100) DEFAULT NULL COMMENT '联系人',
+ `mobile` varchar(20) DEFAULT NULL COMMENT '手机号',
+ `status` tinyint(3) unsigned NOT NULL COMMENT '审核状态 0:待审核 1:审核通过 2:审核拒绝',
+ `reject_reason` varchar(500) DEFAULT NULL COMMENT '拒绝原因',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_type` (`type`),
+ KEY `idx_status` (`status`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资质审核表';
+
+-- ----------------------------
+-- Records of sys_audit
+-- ----------------------------
+INSERT INTO `sys_audit` VALUES ('2039282525045673986', '0', '张公司', '张', '15546406029', '1', '', null, '2026-04-01 18:03:37', null, '2026-04-01 18:03:45');
+
+-- ----------------------------
+-- Table structure for `sys_audit_file`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_audit_file`;
+CREATE TABLE `sys_audit_file` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `audit_id` bigint(20) NOT NULL COMMENT '审核ID',
+ `file_name` varchar(200) NOT NULL COMMENT '文件名',
+ `file_url` varchar(500) NOT NULL COMMENT '文件路径',
+ `file_type` varchar(50) DEFAULT NULL COMMENT '文件类型',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_audit_id` (`audit_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资质文件表';
+
+-- ----------------------------
+-- Records of sys_audit_file
+-- ----------------------------
+INSERT INTO `sys_audit_file` VALUES ('2039282525062451202', '2039282525045673986', 'preview.jpg', 'blob:http://172.16.61.193:8001/7e240c37-3086-40c4-b158-0416c30a72ab', null, null, '2026-04-01 18:03:37');
+
+-- ----------------------------
+-- Table structure for `sys_dept`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dept`;
+CREATE TABLE `sys_dept` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `pid` bigint(20) DEFAULT NULL COMMENT '上级ID',
+ `pids` varchar(500) DEFAULT NULL COMMENT '所有上级ID,用逗号分开',
+ `name` varchar(50) DEFAULT NULL COMMENT '部门名称',
+ `sort` int(10) unsigned DEFAULT NULL COMMENT '排序',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_pid` (`pid`),
+ KEY `idx_sort` (`sort`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门管理';
+
+-- ----------------------------
+-- Records of sys_dept
+-- ----------------------------
+INSERT INTO `sys_dept` VALUES ('1067246875800000062', '1067246875800000063', '1067246875800000066,1067246875800000063', '技术部', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dept` VALUES ('1067246875800000063', '1067246875800000066', '1067246875800000066', '长沙分公司', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dept` VALUES ('1067246875800000064', '1067246875800000066', '1067246875800000066', '上海分公司', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dept` VALUES ('1067246875800000065', '1067246875800000064', '1067246875800000066,1067246875800000064', '市场部', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dept` VALUES ('1067246875800000066', '0', '0', '人人开源集团', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dept` VALUES ('1067246875800000067', '1067246875800000064', '1067246875800000066,1067246875800000064', '销售部', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dept` VALUES ('1067246875800000068', '1067246875800000063', '1067246875800000066,1067246875800000063', '产品部', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+
+-- ----------------------------
+-- Table structure for `sys_dict_data`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict_data`;
+CREATE TABLE `sys_dict_data` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `dict_type_id` bigint(20) NOT NULL COMMENT '字典类型ID',
+ `dict_label` varchar(255) NOT NULL COMMENT '字典标签',
+ `dict_value` varchar(255) DEFAULT NULL COMMENT '字典值',
+ `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+ `sort` int(10) unsigned DEFAULT NULL COMMENT '排序',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_dict_type_value` (`dict_type_id`,`dict_value`),
+ KEY `idx_sort` (`sort`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典数据';
+
+-- ----------------------------
+-- Records of sys_dict_data
+-- ----------------------------
+INSERT INTO `sys_dict_data` VALUES ('1160061112075464705', '1160061077912858625', '男', '0', '', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dict_data` VALUES ('1160061146967879681', '1160061077912858625', '女', '1', '', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dict_data` VALUES ('1160061190127267841', '1160061077912858625', '保密', '2', '', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dict_data` VALUES ('1225814069634195457', '1225813644059140097', '公告', '0', '', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dict_data` VALUES ('1225814107559092225', '1225813644059140097', '会议', '1', '', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dict_data` VALUES ('1225814271879340034', '1225813644059140097', '其他', '2', '', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+
+-- ----------------------------
+-- Table structure for `sys_dict_type`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict_type`;
+CREATE TABLE `sys_dict_type` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `dict_type` varchar(100) NOT NULL COMMENT '字典类型',
+ `dict_name` varchar(255) NOT NULL COMMENT '字典名称',
+ `remark` varchar(255) DEFAULT NULL COMMENT '备注',
+ `sort` int(10) unsigned DEFAULT NULL COMMENT '排序',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `dict_type` (`dict_type`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典类型';
+
+-- ----------------------------
+-- Records of sys_dict_type
+-- ----------------------------
+INSERT INTO `sys_dict_type` VALUES ('1160061077912858625', 'gender', '性别', '', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_dict_type` VALUES ('1225813644059140097', 'notice_type', '站内通知-类型', '', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+
+-- ----------------------------
+-- Table structure for `sys_log_error`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_log_error`;
+CREATE TABLE `sys_log_error` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `request_uri` varchar(200) DEFAULT NULL COMMENT '请求URI',
+ `request_method` varchar(20) DEFAULT NULL COMMENT '请求方式',
+ `request_params` text COMMENT '请求参数',
+ `user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
+ `ip` varchar(32) DEFAULT NULL COMMENT '操作IP',
+ `error_info` text COMMENT '异常信息',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='异常日志';
+
+-- ----------------------------
+-- Records of sys_log_error
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `sys_log_login`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_log_login`;
+CREATE TABLE `sys_log_login` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `operation` tinyint(3) unsigned DEFAULT NULL COMMENT '用户操作 0:用户登录 1:用户退出',
+ `status` tinyint(3) unsigned NOT NULL COMMENT '状态 0:失败 1:成功 2:账号已锁定',
+ `user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
+ `ip` varchar(32) DEFAULT NULL COMMENT '操作IP',
+ `creator_name` varchar(50) DEFAULT NULL COMMENT '用户名',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_status` (`status`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='登录日志';
+
+-- ----------------------------
+-- Records of sys_log_login
+-- ----------------------------
+INSERT INTO `sys_log_login` VALUES ('2034221625490165762', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-18 18:53:24');
+INSERT INTO `sys_log_login` VALUES ('2034221946635440130', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-18 18:54:41');
+INSERT INTO `sys_log_login` VALUES ('2036742810228748289', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-25 17:51:41');
+INSERT INTO `sys_log_login` VALUES ('2036744515309793281', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-25 17:58:28');
+INSERT INTO `sys_log_login` VALUES ('2036754938197176322', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-25 18:39:53');
+INSERT INTO `sys_log_login` VALUES ('2036991762387636226', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-26 10:20:56');
+INSERT INTO `sys_log_login` VALUES ('2037003646960652289', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-26 11:08:10');
+INSERT INTO `sys_log_login` VALUES ('2037004026197037058', '0', '0', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '15546406029', null, '2026-03-26 11:09:40');
+INSERT INTO `sys_log_login` VALUES ('2037008348708216834', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-26 11:26:51');
+INSERT INTO `sys_log_login` VALUES ('2037463405903998978', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-27 17:35:05');
+INSERT INTO `sys_log_login` VALUES ('2037481512928276482', '1', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-27 18:47:02');
+INSERT INTO `sys_log_login` VALUES ('2037481566778945538', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin1', '2037481475397644289', '2026-03-27 18:47:15');
+INSERT INTO `sys_log_login` VALUES ('2037482102337040386', '1', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin1', '2037481475397644289', '2026-03-27 18:49:22');
+INSERT INTO `sys_log_login` VALUES ('2037482156984627202', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-27 18:49:35');
+INSERT INTO `sys_log_login` VALUES ('2037506320852246530', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-03-27 20:25:37');
+INSERT INTO `sys_log_login` VALUES ('2039278334495576066', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-04-01 17:46:57');
+INSERT INTO `sys_log_login` VALUES ('2039280138419589122', '0', '1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', 'admin', '1067246875800000001', '2026-04-01 17:54:08');
+
+-- ----------------------------
+-- Table structure for `sys_log_operation`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_log_operation`;
+CREATE TABLE `sys_log_operation` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `operation` varchar(50) DEFAULT NULL COMMENT '用户操作',
+ `request_uri` varchar(200) DEFAULT NULL COMMENT '请求URI',
+ `request_method` varchar(20) DEFAULT NULL COMMENT '请求方式',
+ `request_params` text COMMENT '请求参数',
+ `request_time` int(10) unsigned NOT NULL COMMENT '请求时长(毫秒)',
+ `user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
+ `ip` varchar(32) DEFAULT NULL COMMENT '操作IP',
+ `status` tinyint(3) unsigned NOT NULL COMMENT '状态 0:失败 1:成功',
+ `creator_name` varchar(50) DEFAULT NULL COMMENT '用户名',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志';
+
+-- ----------------------------
+-- Records of sys_log_operation
+-- ----------------------------
+INSERT INTO `sys_log_operation` VALUES ('2034221827441709058', '保存', '/renren-admin/sys/role', 'POST', '{\"id\":null,\"name\":\"张张张\",\"remark\":\"\",\"createDate\":null,\"menuIdList\":[1067246875800000002,1067246875800000055,1067246875800000056,1067246875800000003,1067246875800000004,1067246875800000005,1067246875800000006,1067246875800000012,1067246875800000014,1067246875800000015,1067246875800000016,1067246875800000017,1067246875800000007,1067246875800000008,1067246875800000009,1067246875800000010,1067246875800000011],\"deptIdList\":[]}', '48', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '1', 'admin', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_log_operation` VALUES ('2037481475494113282', '保存', '/renren-admin/sys/user', 'POST', '{\"id\":null,\"username\":\"admin1\",\"realName\":\"admin+\",\"headUrl\":null,\"gender\":0,\"email\":\"\",\"mobile\":\"\",\"deptId\":1067246875800000066,\"status\":1,\"createDate\":null,\"superAdmin\":null,\"roleIdList\":[],\"deptName\":\"人人开源集团\"}', '105', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '1', 'admin', '1067246875800000001', '2026-03-27 18:46:53');
+INSERT INTO `sys_log_operation` VALUES ('2037481477138280450', '保存', '/renren-admin/sys/user', 'POST', '{\"id\":null,\"username\":\"admin1\",\"realName\":\"admin+\",\"headUrl\":null,\"gender\":0,\"email\":\"\",\"mobile\":\"\",\"deptId\":1067246875800000066,\"status\":1,\"createDate\":null,\"superAdmin\":null,\"roleIdList\":[],\"deptName\":\"人人开源集团\"}', '459', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '0', 'admin', '1067246875800000001', '2026-03-27 18:46:53');
+INSERT INTO `sys_log_operation` VALUES ('2037481477138280451', '保存', '/renren-admin/sys/user', 'POST', '{\"id\":null,\"username\":\"admin1\",\"realName\":\"admin+\",\"headUrl\":null,\"gender\":0,\"email\":\"\",\"mobile\":\"\",\"deptId\":1067246875800000066,\"status\":1,\"createDate\":null,\"superAdmin\":null,\"roleIdList\":[],\"deptName\":\"人人开源集团\"}', '377', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '0', 'admin', '1067246875800000001', '2026-03-27 18:46:53');
+INSERT INTO `sys_log_operation` VALUES ('2037481477138280452', '保存', '/renren-admin/sys/user', 'POST', '{\"id\":null,\"username\":\"admin1\",\"realName\":\"admin+\",\"headUrl\":null,\"gender\":0,\"email\":\"\",\"mobile\":\"\",\"deptId\":1067246875800000066,\"status\":1,\"createDate\":null,\"superAdmin\":null,\"roleIdList\":[],\"deptName\":\"人人开源集团\"}', '243', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '0', 'admin', '1067246875800000001', '2026-03-27 18:46:53');
+INSERT INTO `sys_log_operation` VALUES ('2037481478459486210', '保存', '/renren-admin/sys/user', 'POST', '{\"id\":null,\"username\":\"admin1\",\"realName\":\"admin+\",\"headUrl\":null,\"gender\":0,\"email\":\"\",\"mobile\":\"\",\"deptId\":1067246875800000066,\"status\":1,\"createDate\":null,\"superAdmin\":null,\"roleIdList\":[],\"deptName\":\"人人开源集团\"}', '78', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0', '0:0:0:0:0:0:0:1', '0', 'admin', '1067246875800000001', '2026-03-27 18:46:54');
+
+-- ----------------------------
+-- Table structure for `sys_menu`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `pid` bigint(20) DEFAULT NULL COMMENT '上级ID,一级菜单为0',
+ `name` varchar(200) DEFAULT NULL COMMENT '名称',
+ `url` varchar(200) DEFAULT NULL COMMENT '菜单URL',
+ `permissions` varchar(500) DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:sys:user:list,sys:user:save)',
+ `menu_type` tinyint(3) unsigned DEFAULT NULL COMMENT '类型 0:菜单 1:按钮',
+ `icon` varchar(50) DEFAULT NULL COMMENT '菜单图标',
+ `sort` int(11) DEFAULT NULL COMMENT '排序',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_pid` (`pid`),
+ KEY `idx_sort` (`sort`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单管理';
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES ('100000', '1067246875800000035', '资质审核', 'sys/audit', null, '0', 'icon-desktop', '0', '1067246875800000001', '2026-04-01 17:49:25', '1067246875800000001', '2026-04-01 17:49:25');
+INSERT INTO `sys_menu` VALUES ('100001', '100000', '查看', null, 'sys:audit:page,sys:audit:info', '1', null, '0', '1067246875800000001', '2026-04-01 17:49:37', '1067246875800000001', '2026-04-01 17:49:37');
+INSERT INTO `sys_menu` VALUES ('100002', '100000', '鏂板', null, 'sys:audit:save', '1', null, '1', '1067246875800000001', '2026-04-01 17:49:37', '1067246875800000001', '2026-04-01 17:49:37');
+INSERT INTO `sys_menu` VALUES ('100003', '100000', '瀹℃牳閫氳繃', null, 'sys:audit:updateStatus', '1', null, '2', '1067246875800000001', '2026-04-01 17:49:37', '1067246875800000001', '2026-04-01 17:49:37');
+INSERT INTO `sys_menu` VALUES ('100004', '100000', '瀹℃牳鎷掔粷', null, 'sys:audit:updateStatus', '1', null, '3', '1067246875800000001', '2026-04-01 17:49:37', '1067246875800000001', '2026-04-01 17:49:37');
+INSERT INTO `sys_menu` VALUES ('1067246875800000002', '0', '权限管理', null, null, '0', 'icon-safetycertificate', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000003', '1067246875800000055', '新增', null, 'sys:user:save,sys:dept:list,sys:role:list', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000004', '1067246875800000055', '修改', null, 'sys:user:update,sys:dept:list,sys:role:list', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000005', '1067246875800000055', '删除', null, 'sys:user:delete', '1', null, '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000006', '1067246875800000055', '导出', null, 'sys:user:export', '1', null, '4', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000007', '1067246875800000002', '角色管理', 'sys/role', null, '0', 'icon-team', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000008', '1067246875800000007', '查看', null, 'sys:role:page,sys:role:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000009', '1067246875800000007', '新增', null, 'sys:role:save,sys:menu:select,sys:dept:list', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000010', '1067246875800000007', '修改', null, 'sys:role:update,sys:menu:select,sys:dept:list', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000011', '1067246875800000007', '删除', null, 'sys:role:delete', '1', null, '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000012', '1067246875800000002', '部门管理', 'sys/dept', null, '0', 'icon-apartment', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000014', '1067246875800000012', '查看', null, 'sys:dept:list,sys:dept:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000015', '1067246875800000012', '新增', null, 'sys:dept:save', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000016', '1067246875800000012', '修改', null, 'sys:dept:update', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000017', '1067246875800000012', '删除', null, 'sys:dept:delete', '1', null, '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000025', '1067246875800000035', '菜单管理', 'sys/menu', null, '0', 'icon-unorderedlist', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000026', '1067246875800000025', '查看', null, 'sys:menu:list,sys:menu:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000027', '1067246875800000025', '新增', null, 'sys:menu:save', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000028', '1067246875800000025', '修改', null, 'sys:menu:update', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000029', '1067246875800000025', '删除', null, 'sys:menu:delete', '1', null, '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000030', '1067246875800000035', '定时任务', 'job/schedule', null, '0', 'icon-dashboard', '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000031', '1067246875800000030', '查看', null, 'sys:schedule:page,sys:schedule:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000032', '1067246875800000030', '新增', null, 'sys:schedule:save', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000033', '1067246875800000030', '修改', null, 'sys:schedule:update', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000034', '1067246875800000030', '删除', null, 'sys:schedule:delete', '1', null, '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000035', '0', '系统设置', null, null, '0', 'icon-setting', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000036', '1067246875800000030', '暂停', null, 'sys:schedule:pause', '1', null, '4', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000037', '1067246875800000030', '恢复', null, 'sys:schedule:resume', '1', null, '5', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000038', '1067246875800000030', '立即执行', null, 'sys:schedule:run', '1', null, '6', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000039', '1067246875800000030', '日志列表', null, 'sys:schedule:log', '1', null, '7', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000040', '1067246875800000035', '参数管理', 'sys/params', '', '0', 'icon-fileprotect', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000041', '1067246875800000035', '字典管理', 'sys/dict-type', null, '0', 'icon-golden-fill', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000042', '1067246875800000041', '查看', null, 'sys:dict:page,sys:dict:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000043', '1067246875800000041', '新增', null, 'sys:dict:save', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000044', '1067246875800000041', '修改', null, 'sys:dict:update', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000045', '1067246875800000041', '删除', null, 'sys:dict:delete', '1', null, '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000046', '0', '日志管理', null, null, '0', 'icon-container', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000047', '1067246875800000035', '文件上传', 'oss/oss', 'sys:oss:all', '0', 'icon-upload', '4', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000048', '1067246875800000046', '登录日志', 'sys/log-login', 'sys:log:login', '0', 'icon-filedone', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000049', '1067246875800000046', '操作日志', 'sys/log-operation', 'sys:log:operation', '0', 'icon-solution', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000050', '1067246875800000046', '异常日志', 'sys/log-error', 'sys:log:error', '0', 'icon-file-exception', '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000051', '1067246875800000053', 'SQL监控', '{{ApiUrl}}/druid/sql.html', null, '0', 'icon-database', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000053', '0', '系统监控', null, null, '0', 'icon-desktop', '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000055', '1067246875800000002', '用户管理', 'sys/user', null, '0', 'icon-user', '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000056', '1067246875800000055', '查看', null, 'sys:user:page,sys:user:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000057', '1067246875800000040', '新增', null, 'sys:params:save', '1', null, '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000058', '1067246875800000040', '导出', null, 'sys:params:export', '1', null, '4', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000059', '1067246875800000040', '查看', '', 'sys:params:page,sys:params:info', '1', null, '0', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000060', '1067246875800000040', '修改', null, 'sys:params:update', '1', null, '2', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1067246875800000061', '1067246875800000040', '删除', '', 'sys:params:delete', '1', '', '3', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_menu` VALUES ('1156748733921165314', '1067246875800000053', '接口文档', '{{ApiUrl}}/doc.html', '', '0', 'icon-file-word', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+
+-- ----------------------------
+-- Table structure for `sys_oss`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_oss`;
+CREATE TABLE `sys_oss` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `url` varchar(200) DEFAULT NULL COMMENT 'URL地址',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件上传';
+
+-- ----------------------------
+-- Records of sys_oss
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `sys_params`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_params`;
+CREATE TABLE `sys_params` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `param_code` varchar(32) DEFAULT NULL COMMENT '参数编码',
+ `param_value` varchar(2000) DEFAULT NULL COMMENT '参数值',
+ `param_type` tinyint(3) unsigned DEFAULT '1' COMMENT '类型 0:系统参数 1:非系统参数',
+ `remark` varchar(200) DEFAULT NULL COMMENT '备注',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_param_code` (`param_code`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数管理';
+
+-- ----------------------------
+-- Records of sys_params
+-- ----------------------------
+INSERT INTO `sys_params` VALUES ('1067246875800000073', 'CLOUD_STORAGE_CONFIG_KEY', '{\"type\":1,\"qiniuDomain\":\"http://test.oss.renren.io\",\"qiniuPrefix\":\"upload\",\"qiniuAccessKey\":\"NrgMfABZxWLo5B-YYSjoE8-AZ1EISdi1Z3ubLOeZ\",\"qiniuSecretKey\":\"uIwJHevMRWU0VLxFvgy0tAcOdGqasdtVlJkdy6vV\",\"qiniuBucketName\":\"renren-oss\",\"aliyunDomain\":\"\",\"aliyunPrefix\":\"\",\"aliyunEndPoint\":\"\",\"aliyunAccessKeyId\":\"\",\"aliyunAccessKeySecret\":\"\",\"aliyunBucketName\":\"\",\"qcloudDomain\":\"\",\"qcloudPrefix\":\"\",\"qcloudSecretId\":\"\",\"qcloudSecretKey\":\"\",\"qcloudBucketName\":\"\"}', '0', '云存储配置信息', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+
+-- ----------------------------
+-- Table structure for `sys_role`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `name` varchar(50) DEFAULT NULL COMMENT '角色名称',
+ `remark` varchar(100) DEFAULT NULL COMMENT '备注',
+ `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_dept_id` (`dept_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色管理';
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES ('2034221827240382465', '张张张', '', null, '1067246875800000001', '2026-03-18 18:54:12', '1067246875800000001', '2026-03-18 18:54:12');
+
+-- ----------------------------
+-- Table structure for `sys_role_data_scope`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_data_scope`;
+CREATE TABLE `sys_role_data_scope` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
+ `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_role_id` (`role_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色数据权限';
+
+-- ----------------------------
+-- Records of sys_role_data_scope
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `sys_role_menu`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
+ `menu_id` bigint(20) DEFAULT NULL COMMENT '菜单ID',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_role_id` (`role_id`),
+ KEY `idx_menu_id` (`menu_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关系';
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+INSERT INTO `sys_role_menu` VALUES ('2034221827315879938', '2034221827240382465', '1067246875800000002', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827324268545', '2034221827240382465', '1067246875800000055', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827328462849', '2034221827240382465', '1067246875800000056', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827328462850', '2034221827240382465', '1067246875800000003', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827341045762', '2034221827240382465', '1067246875800000004', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827341045763', '2034221827240382465', '1067246875800000005', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827349434369', '2034221827240382465', '1067246875800000006', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827349434370', '2034221827240382465', '1067246875800000012', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827357822977', '2034221827240382465', '1067246875800000014', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827362017282', '2034221827240382465', '1067246875800000015', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827366211585', '2034221827240382465', '1067246875800000016', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827366211586', '2034221827240382465', '1067246875800000017', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827366211587', '2034221827240382465', '1067246875800000007', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827374600193', '2034221827240382465', '1067246875800000008', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827374600194', '2034221827240382465', '1067246875800000009', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827387183106', '2034221827240382465', '1067246875800000010', '1067246875800000001', '2026-03-18 18:54:12');
+INSERT INTO `sys_role_menu` VALUES ('2034221827387183107', '2034221827240382465', '1067246875800000011', '1067246875800000001', '2026-03-18 18:54:12');
+
+-- ----------------------------
+-- Table structure for `sys_role_user`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_user`;
+CREATE TABLE `sys_role_user` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `role_id` bigint(20) DEFAULT NULL COMMENT '角色ID',
+ `user_id` bigint(20) DEFAULT NULL COMMENT '用户ID',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ KEY `idx_role_id` (`role_id`),
+ KEY `idx_user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色用户关系';
+
+-- ----------------------------
+-- Records of sys_role_user
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `sys_user`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `username` varchar(50) NOT NULL COMMENT '用户名',
+ `password` varchar(100) DEFAULT NULL COMMENT '密码',
+ `real_name` varchar(50) DEFAULT NULL COMMENT '姓名',
+ `head_url` varchar(200) DEFAULT NULL COMMENT '头像',
+ `gender` tinyint(3) unsigned DEFAULT NULL COMMENT '性别 0:男 1:女 2:保密',
+ `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
+ `mobile` varchar(100) DEFAULT NULL COMMENT '手机号',
+ `dept_id` bigint(20) DEFAULT NULL COMMENT '部门ID',
+ `super_admin` tinyint(3) unsigned DEFAULT NULL COMMENT '超级管理员 0:否 1:是',
+ `status` tinyint(4) DEFAULT NULL COMMENT '状态 0:停用 1:正常',
+ `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ `updater` bigint(20) DEFAULT NULL COMMENT '更新者',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_username` (`username`),
+ KEY `idx_create_date` (`create_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户';
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+INSERT INTO `sys_user` VALUES ('1067246875800000001', 'admin', '$2a$10$012Kx2ba5jzqr9gLlG4MX.bnQJTD9UWqF57XDo2N3.fPtLne02u/m', '管理员', null, '0', 'root@renren.io', '13612345678', null, '1', '1', '1067246875800000001', '2026-03-18 18:22:12', '1067246875800000001', '2026-03-18 18:22:12');
+INSERT INTO `sys_user` VALUES ('2037481475397644289', 'admin1', '$2a$10$BLVlgZ9X7HDeH0keVg6ulu/BZrgvH0TRotLZzTP1pB0d2M5Shg4UG', 'admin+', null, '0', '', '', '1067246875800000066', '0', '1', '1067246875800000001', '2026-03-27 18:46:53', '1067246875800000001', '2026-03-27 18:46:53');
+
+-- ----------------------------
+-- Table structure for `sys_user_token`
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_token`;
+CREATE TABLE `sys_user_token` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `user_id` bigint(20) NOT NULL COMMENT '用户id',
+ `token` varchar(100) NOT NULL COMMENT '用户token',
+ `expire_date` datetime DEFAULT NULL COMMENT '过期时间',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `user_id` (`user_id`),
+ UNIQUE KEY `token` (`token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户Token';
+
+-- ----------------------------
+-- Records of sys_user_token
+-- ----------------------------
+INSERT INTO `sys_user_token` VALUES ('2034221625586634754', '1067246875800000001', '5acbe065898786b69bc4d87bd633cc91', '2026-04-02 05:54:08', '2026-04-01 17:54:08', '2026-03-18 18:53:24');
+INSERT INTO `sys_user_token` VALUES ('2037481566804111361', '2037481475397644289', '2481069d43be99b2aa3cdb4968957008', '2026-03-28 06:47:15', '2026-03-27 18:47:15', '2026-03-27 18:47:15');
+
+-- ----------------------------
+-- Table structure for `tb_token`
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_token`;
+CREATE TABLE `tb_token` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `user_id` bigint(20) NOT NULL COMMENT '用户ID',
+ `token` varchar(100) NOT NULL COMMENT 'token',
+ `expire_date` datetime DEFAULT NULL COMMENT '过期时间',
+ `update_date` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `user_id` (`user_id`),
+ UNIQUE KEY `token` (`token`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户Token';
+
+-- ----------------------------
+-- Records of tb_token
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `tb_user`
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_user`;
+CREATE TABLE `tb_user` (
+ `id` bigint(20) NOT NULL COMMENT 'id',
+ `username` varchar(50) NOT NULL COMMENT '用户名',
+ `mobile` varchar(20) NOT NULL COMMENT '手机号',
+ `password` varchar(64) DEFAULT NULL COMMENT '密码',
+ `create_date` datetime DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `username` (`username`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户';
+
+-- ----------------------------
+-- Records of tb_user
+-- ----------------------------
+INSERT INTO `tb_user` VALUES ('1067246875900000001', 'mark', '13612345678', '8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918', '2026-03-18 18:23:07');