diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..81cc587
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,35 @@
+{
+ // 使用 IntelliSense 了解相关属性。
+ // 悬停以查看现有属性的描述。
+ // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "java",
+ "name": "Current File",
+ "request": "launch",
+ "mainClass": "${file}"
+ },
+ {
+ "type": "java",
+ "name": "DromaraApplication",
+ "request": "launch",
+ "mainClass": "org.dromara.DromaraApplication",
+ "projectName": "ruoyi-admin"
+ },
+ {
+ "type": "java",
+ "name": "MonitorAdminApplication",
+ "request": "launch",
+ "mainClass": "org.dromara.monitor.admin.MonitorAdminApplication",
+ "projectName": "ruoyi-monitor-admin"
+ },
+ {
+ "type": "java",
+ "name": "SnailJobServerApplication",
+ "request": "launch",
+ "mainClass": "org.dromara.snailjob.SnailJobServerApplication",
+ "projectName": "ruoyi-snailjob-server"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..7b016a8
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "java.compile.nullAnalysis.mode": "automatic"
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d649201..1e978b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -344,15 +344,16 @@
${revision}
+
org.dromara
- ruoyi-demo
+ ruoyi-client
${revision}
org.dromara
- ruoyi-art
+ ruoyi-demo
${revision}
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index bd6388c..627f41c 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -93,10 +93,10 @@
ruoyi-demo
-
+
org.dromara
- ruoyi-art
+ ruoyi-client
diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml
index df26f24..44142fa 100644
--- a/ruoyi-admin/src/main/resources/application-dev.yml
+++ b/ruoyi-admin/src/main/resources/application-dev.yml
@@ -65,9 +65,9 @@ spring:
postgres:
type: ${spring.datasource.type}
driverClassName: org.postgresql.Driver
- url: jdbc:postgresql://10.13.13.1:5432/art_sports_volunteer?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
- username: art_sports_volunteer
- password: t56kX86WMQ8eNjRz
+ url: jdbc:postgresql://10.13.13.1:5432/wz-db?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
+ username: wz-db
+ password: sYpphaZWYpEEtrS7
# sqlserver:
# type: ${spring.datasource.type}
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index efdef5a..896cc54 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -208,8 +208,8 @@ springdoc:
packages-to-scan: org.dromara.generator
- group: 5.工作流模块
packages-to-scan: org.dromara.workflow
- - group: 6.艺术数据模块
- packages-to-scan: org.dromara.art
+ - group: 6.客户模块
+ packages-to-scan: org.dromara.client
# 防止XSS攻击
xss:
diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml
index 746df0b..7ecab23 100644
--- a/ruoyi-modules/pom.xml
+++ b/ruoyi-modules/pom.xml
@@ -10,12 +10,12 @@
4.0.0
- ruoyi-art
ruoyi-demo
ruoyi-generator
ruoyi-job
ruoyi-system
ruoyi-workflow
+ ruoyi-client
ruoyi-modules
diff --git a/ruoyi-modules/ruoyi-client/pom.xml b/ruoyi-modules/ruoyi-client/pom.xml
new file mode 100644
index 0000000..5df6f54
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/pom.xml
@@ -0,0 +1,113 @@
+
+
+
+ org.dromara
+ ruoyi-modules
+ ${revision}
+
+ 4.0.0
+
+ ruoyi-client
+
+
+ 客户模块
+
+
+
+
+
+
+ org.dromara
+ ruoyi-common-core
+
+
+
+ org.dromara
+ ruoyi-common-doc
+
+
+
+ org.dromara
+ ruoyi-common-sms
+
+
+
+ org.dromara
+ ruoyi-common-mail
+
+
+
+ org.dromara
+ ruoyi-common-redis
+
+
+
+ org.dromara
+ ruoyi-common-idempotent
+
+
+
+ org.dromara
+ ruoyi-common-mybatis
+
+
+
+ org.dromara
+ ruoyi-common-log
+
+
+
+ org.dromara
+ ruoyi-common-excel
+
+
+
+ org.dromara
+ ruoyi-common-security
+
+
+
+ org.dromara
+ ruoyi-common-web
+
+
+
+ org.dromara
+ ruoyi-common-ratelimiter
+
+
+
+ org.dromara
+ ruoyi-common-translation
+
+
+
+ org.dromara
+ ruoyi-common-sensitive
+
+
+
+ org.dromara
+ ruoyi-common-encrypt
+
+
+
+ org.dromara
+ ruoyi-common-tenant
+
+
+
+ org.dromara
+ ruoyi-common-websocket
+
+
+
+ org.postgresql
+ postgresql
+
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/controller/TPlatformUserController.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/controller/TPlatformUserController.java
new file mode 100644
index 0000000..ee97426
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/controller/TPlatformUserController.java
@@ -0,0 +1,105 @@
+package org.dromara.client.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.client.domain.vo.TPlatformUserVo;
+import org.dromara.client.domain.bo.TPlatformUserBo;
+import org.dromara.client.service.ITPlatformUserService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/client/platformUser")
+public class TPlatformUserController extends BaseController {
+
+ private final ITPlatformUserService tPlatformUserService;
+
+ /**
+ * 查询平台用户关联(微信/抖音小程序用户信息)列表
+ */
+ @SaCheckPermission("client:platformUser:list")
+ @GetMapping("/list")
+ public TableDataInfo list(TPlatformUserBo bo, PageQuery pageQuery) {
+ return tPlatformUserService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出平台用户关联(微信/抖音小程序用户信息)列表
+ */
+ @SaCheckPermission("client:platformUser:export")
+ @Log(title = "平台用户关联(微信/抖音小程序用户信息)", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(TPlatformUserBo bo, HttpServletResponse response) {
+ List list = tPlatformUserService.queryList(bo);
+ ExcelUtil.exportExcel(list, "平台用户关联(微信/抖音小程序用户信息)", TPlatformUserVo.class, response);
+ }
+
+ /**
+ * 获取平台用户关联(微信/抖音小程序用户信息)详细信息
+ *
+ * @param id 主键
+ */
+ @SaCheckPermission("client:platformUser:query")
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(tPlatformUserService.queryById(id));
+ }
+
+ /**
+ * 新增平台用户关联(微信/抖音小程序用户信息)
+ */
+ @SaCheckPermission("client:platformUser:add")
+ @Log(title = "平台用户关联(微信/抖音小程序用户信息)", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody TPlatformUserBo bo) {
+ return toAjax(tPlatformUserService.insertByBo(bo));
+ }
+
+ /**
+ * 修改平台用户关联(微信/抖音小程序用户信息)
+ */
+ @SaCheckPermission("client:platformUser:edit")
+ @Log(title = "平台用户关联(微信/抖音小程序用户信息)", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody TPlatformUserBo bo) {
+ return toAjax(tPlatformUserService.updateByBo(bo));
+ }
+
+ /**
+ * 删除平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param ids 主键串
+ */
+ @SaCheckPermission("client:platformUser:remove")
+ @Log(title = "平台用户关联(微信/抖音小程序用户信息)", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(tPlatformUserService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/controller/TUserController.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/controller/TUserController.java
new file mode 100644
index 0000000..4215dd2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/controller/TUserController.java
@@ -0,0 +1,105 @@
+package org.dromara.client.controller;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+import org.dromara.client.domain.vo.TUserVo;
+import org.dromara.client.domain.bo.TUserBo;
+import org.dromara.client.service.ITUserService;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+
+/**
+ * 客户用户基础信息
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/client/user")
+public class TUserController extends BaseController {
+
+ private final ITUserService tUserService;
+
+ /**
+ * 查询客户用户基础信息列表
+ */
+ @SaCheckPermission("client:user:list")
+ @GetMapping("/list")
+ public TableDataInfo list(TUserBo bo, PageQuery pageQuery) {
+ return tUserService.queryPageList(bo, pageQuery);
+ }
+
+ /**
+ * 导出客户用户基础信息列表
+ */
+ @SaCheckPermission("client:user:export")
+ @Log(title = "客户用户基础信息", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(TUserBo bo, HttpServletResponse response) {
+ List list = tUserService.queryList(bo);
+ ExcelUtil.exportExcel(list, "客户用户基础信息", TUserVo.class, response);
+ }
+
+ /**
+ * 获取客户用户基础信息详细信息
+ *
+ * @param id 主键
+ */
+ @SaCheckPermission("client:user:query")
+ @GetMapping("/{id}")
+ public R getInfo(@NotNull(message = "主键不能为空")
+ @PathVariable Long id) {
+ return R.ok(tUserService.queryById(id));
+ }
+
+ /**
+ * 新增客户用户基础信息
+ */
+ @SaCheckPermission("client:user:add")
+ @Log(title = "客户用户基础信息", businessType = BusinessType.INSERT)
+ @RepeatSubmit()
+ @PostMapping()
+ public R add(@Validated(AddGroup.class) @RequestBody TUserBo bo) {
+ return toAjax(tUserService.insertByBo(bo));
+ }
+
+ /**
+ * 修改客户用户基础信息
+ */
+ @SaCheckPermission("client:user:edit")
+ @Log(title = "客户用户基础信息", businessType = BusinessType.UPDATE)
+ @RepeatSubmit()
+ @PutMapping()
+ public R edit(@Validated(EditGroup.class) @RequestBody TUserBo bo) {
+ return toAjax(tUserService.updateByBo(bo));
+ }
+
+ /**
+ * 删除客户用户基础信息
+ *
+ * @param ids 主键串
+ */
+ @SaCheckPermission("client:user:remove")
+ @Log(title = "客户用户基础信息", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public R remove(@NotEmpty(message = "主键不能为空")
+ @PathVariable Long[] ids) {
+ return toAjax(tUserService.deleteWithValidByIds(List.of(ids), true));
+ }
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/TPlatformUser.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/TPlatformUser.java
new file mode 100644
index 0000000..e3f01b0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/TPlatformUser.java
@@ -0,0 +1,74 @@
+package org.dromara.client.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serial;
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)对象 t_platform_user
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_platform_user")
+public class TPlatformUser extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 平台用户ID(自增)
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 关联t_user.id
+ */
+ private Long userId;
+
+ /**
+ * 平台类型:1-微信小程序,2-抖音小程序,3-支付宝小程序
+ */
+ private Long platformType;
+
+ /**
+ * 平台唯一标识(微信openid/抖音open_id)
+ */
+ private String platformOpenid;
+
+ /**
+ * 平台统一标识(微信unionid,多小程序互通用)
+ */
+ private String platformUnionid;
+
+ /**
+ * 平台会话密钥(微信session_key,加密存储)
+ */
+ private String platformSessionKey;
+
+ /**
+ * 平台扩展字段(如抖音的user_name、微信的city等)
+ */
+ private String platformExtra;
+
+ /**
+ * 最后登录时间
+ */
+ private Date lastLoginTime;
+
+ /**
+ * 软删除:0-未删,1-已删
+ */
+ @TableLogic
+ private Long delFlag;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/TUser.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/TUser.java
new file mode 100644
index 0000000..89f72fa
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/TUser.java
@@ -0,0 +1,77 @@
+package org.dromara.client.domain;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 客户用户基础信息对象 t_user
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("t_user")
+public class TUser extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 全局唯一用户ID(自增)
+ */
+ @TableId(value = "id")
+ private Long id;
+
+ /**
+ * 用户名(可选,后台管理用)
+ */
+ private String username;
+
+ /**
+ * 用户昵称(各平台统一)
+ */
+ private String nickname;
+
+ /**
+ * 用户头像URL
+ */
+ private String avatarUrl;
+
+ /**
+ * 手机号(脱敏存储,如138****1234)
+ */
+ private String phone;
+
+ /**
+ * 性别:0-未知,1-男,2-女
+ */
+ private Long gender;
+
+ /**
+ * 状态:0-禁用,1-正常
+ */
+ private Long status;
+
+ /**
+ * 软删除:0-未删,1-已删
+ */
+ @TableLogic
+ private Long delFlag;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * $column.columnComment
+ */
+ private String salt;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/bo/TPlatformUserBo.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/bo/TPlatformUserBo.java
new file mode 100644
index 0000000..14b34d9
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/bo/TPlatformUserBo.java
@@ -0,0 +1,70 @@
+package org.dromara.client.domain.bo;
+
+import org.dromara.client.domain.TPlatformUser;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)业务对象 t_platform_user
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = TPlatformUser.class, reverseConvertGenerate = false)
+public class TPlatformUserBo extends BaseEntity {
+
+ /**
+ * 平台用户ID(自增)
+ */
+ @NotNull(message = "平台用户ID(自增)不能为空", groups = { EditGroup.class })
+ private Long id;
+
+ /**
+ * 关联t_user.id
+ */
+ @NotNull(message = "关联t_user.id不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long userId;
+
+ /**
+ * 平台类型:1-微信小程序,2-抖音小程序,3-支付宝小程序
+ */
+ @NotNull(message = "平台类型:1-微信小程序,2-抖音小程序,3-支付宝小程序不能为空", groups = { AddGroup.class, EditGroup.class })
+ private Long platformType;
+
+ /**
+ * 平台唯一标识(微信openid/抖音open_id)
+ */
+ @NotBlank(message = "平台唯一标识(微信openid/抖音open_id)不能为空", groups = { AddGroup.class, EditGroup.class })
+ private String platformOpenid;
+
+ /**
+ * 平台统一标识(微信unionid,多小程序互通用)
+ */
+ private String platformUnionid;
+
+ /**
+ * 平台会话密钥(微信session_key,加密存储)
+ */
+ private String platformSessionKey;
+
+ /**
+ * 平台扩展字段(如抖音的user_name、微信的city等)
+ */
+ private String platformExtra;
+
+ /**
+ * 最后登录时间
+ */
+ private Date lastLoginTime;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/bo/TUserBo.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/bo/TUserBo.java
new file mode 100644
index 0000000..73c4444
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/bo/TUserBo.java
@@ -0,0 +1,70 @@
+package org.dromara.client.domain.bo;
+
+import org.dromara.client.domain.TUser;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 客户用户基础信息业务对象 t_user
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = TUser.class, reverseConvertGenerate = false)
+public class TUserBo extends BaseEntity {
+
+ /**
+ * 全局唯一用户ID(自增)
+ */
+ @NotNull(message = "全局唯一用户ID(自增)不能为空", groups = { EditGroup.class })
+ private Long id;
+
+ /**
+ * 用户名(可选,后台管理用)
+ */
+ private String username;
+
+ /**
+ * 用户昵称(各平台统一)
+ */
+ private String nickname;
+
+ /**
+ * 用户头像URL
+ */
+ private String avatarUrl;
+
+ /**
+ * 手机号(脱敏存储,如138****1234)
+ */
+ private String phone;
+
+ /**
+ * 性别:0-未知,1-男,2-女
+ */
+ private Long gender;
+
+ /**
+ * 状态:0-禁用,1-正常
+ */
+ private Long status;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * $column.columnComment
+ */
+ private String salt;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/vo/TPlatformUserVo.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/vo/TPlatformUserVo.java
new file mode 100644
index 0000000..2d3ad33
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/vo/TPlatformUserVo.java
@@ -0,0 +1,87 @@
+package org.dromara.client.domain.vo;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.client.domain.TPlatformUser;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)视图对象 t_platform_user
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = TPlatformUser.class)
+public class TPlatformUserVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 平台用户ID(自增)
+ */
+ @ExcelProperty(value = "平台用户ID", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "自=增")
+ private Long id;
+
+ /**
+ * 关联t_user.id
+ */
+ @ExcelProperty(value = "关联t_user.id")
+ private Long userId;
+
+ /**
+ * 平台类型:1-微信小程序,2-抖音小程序,3-支付宝小程序
+ */
+ @ExcelProperty(value = "平台类型:1-微信小程序,2-抖音小程序,3-支付宝小程序")
+ private Long platformType;
+
+ /**
+ * 平台唯一标识(微信openid/抖音open_id)
+ */
+ @ExcelProperty(value = "平台唯一标识", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "微=信openid/抖音open_id")
+ private String platformOpenid;
+
+ /**
+ * 平台统一标识(微信unionid,多小程序互通用)
+ */
+ @ExcelProperty(value = "平台统一标识", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "微=信unionid,多小程序互通用")
+ private String platformUnionid;
+
+ /**
+ * 平台会话密钥(微信session_key,加密存储)
+ */
+ @ExcelProperty(value = "平台会话密钥", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "微=信session_key,加密存储")
+ private String platformSessionKey;
+
+ /**
+ * 平台扩展字段(如抖音的user_name、微信的city等)
+ */
+ @ExcelProperty(value = "平台扩展字段", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "如=抖音的user_name、微信的city等")
+ private String platformExtra;
+
+ /**
+ * 最后登录时间
+ */
+ @ExcelProperty(value = "最后登录时间")
+ private Date lastLoginTime;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/vo/TUserVo.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/vo/TUserVo.java
new file mode 100644
index 0000000..461c384
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/domain/vo/TUserVo.java
@@ -0,0 +1,91 @@
+package org.dromara.client.domain.vo;
+
+import org.dromara.client.domain.TUser;
+import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
+import cn.idev.excel.annotation.ExcelProperty;
+import org.dromara.common.excel.annotation.ExcelDictFormat;
+import org.dromara.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+ * 客户用户基础信息视图对象 t_user
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = TUser.class)
+public class TUserVo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 全局唯一用户ID(自增)
+ */
+ @ExcelProperty(value = "全局唯一用户ID", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "自=增")
+ private Long id;
+
+ /**
+ * 用户名(可选,后台管理用)
+ */
+ @ExcelProperty(value = "用户名", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "可=选,后台管理用")
+ private String username;
+
+ /**
+ * 用户昵称(各平台统一)
+ */
+ @ExcelProperty(value = "用户昵称", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "各=平台统一")
+ private String nickname;
+
+ /**
+ * 用户头像URL
+ */
+ @ExcelProperty(value = "用户头像URL")
+ private String avatarUrl;
+
+ /**
+ * 手机号(脱敏存储,如138****1234)
+ */
+ @ExcelProperty(value = "手机号", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "脱=敏存储,如138****1234")
+ private String phone;
+
+ /**
+ * 性别:0-未知,1-男,2-女
+ */
+ @ExcelProperty(value = "性别:0-未知,1-男,2-女")
+ private Long gender;
+
+ /**
+ * 状态:0-禁用,1-正常
+ */
+ @ExcelProperty(value = "状态:0-禁用,1-正常")
+ private Long status;
+
+ /**
+ * 密码
+ */
+ @ExcelProperty(value = "密码")
+ private String password;
+
+ /**
+ * $column.columnComment
+ */
+ @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
+ @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
+ private String salt;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/mapper/TPlatformUserMapper.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/mapper/TPlatformUserMapper.java
new file mode 100644
index 0000000..1e13688
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/mapper/TPlatformUserMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.client.mapper;
+
+import org.dromara.client.domain.TPlatformUser;
+import org.dromara.client.domain.vo.TPlatformUserVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)Mapper接口
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+public interface TPlatformUserMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/mapper/TUserMapper.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/mapper/TUserMapper.java
new file mode 100644
index 0000000..de4dda4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/mapper/TUserMapper.java
@@ -0,0 +1,15 @@
+package org.dromara.client.mapper;
+
+import org.dromara.client.domain.TUser;
+import org.dromara.client.domain.vo.TUserVo;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+
+/**
+ * 客户用户基础信息Mapper接口
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+public interface TUserMapper extends BaseMapperPlus {
+
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/ITPlatformUserService.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/ITPlatformUserService.java
new file mode 100644
index 0000000..27c4b27
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/ITPlatformUserService.java
@@ -0,0 +1,68 @@
+package org.dromara.client.service;
+
+import org.dromara.client.domain.vo.TPlatformUserVo;
+import org.dromara.client.domain.bo.TPlatformUserBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)Service接口
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+public interface ITPlatformUserService {
+
+ /**
+ * 查询平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param id 主键
+ * @return 平台用户关联(微信/抖音小程序用户信息)
+ */
+ TPlatformUserVo queryById(Long id);
+
+ /**
+ * 分页查询平台用户关联(微信/抖音小程序用户信息)列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 平台用户关联(微信/抖音小程序用户信息)分页列表
+ */
+ TableDataInfo queryPageList(TPlatformUserBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的平台用户关联(微信/抖音小程序用户信息)列表
+ *
+ * @param bo 查询条件
+ * @return 平台用户关联(微信/抖音小程序用户信息)列表
+ */
+ List queryList(TPlatformUserBo bo);
+
+ /**
+ * 新增平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param bo 平台用户关联(微信/抖音小程序用户信息)
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(TPlatformUserBo bo);
+
+ /**
+ * 修改平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param bo 平台用户关联(微信/抖音小程序用户信息)
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(TPlatformUserBo bo);
+
+ /**
+ * 校验并批量删除平台用户关联(微信/抖音小程序用户信息)信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/ITUserService.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/ITUserService.java
new file mode 100644
index 0000000..e74e93d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/ITUserService.java
@@ -0,0 +1,68 @@
+package org.dromara.client.service;
+
+import org.dromara.client.domain.vo.TUserVo;
+import org.dromara.client.domain.bo.TUserBo;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 客户用户基础信息Service接口
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+public interface ITUserService {
+
+ /**
+ * 查询客户用户基础信息
+ *
+ * @param id 主键
+ * @return 客户用户基础信息
+ */
+ TUserVo queryById(Long id);
+
+ /**
+ * 分页查询客户用户基础信息列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 客户用户基础信息分页列表
+ */
+ TableDataInfo queryPageList(TUserBo bo, PageQuery pageQuery);
+
+ /**
+ * 查询符合条件的客户用户基础信息列表
+ *
+ * @param bo 查询条件
+ * @return 客户用户基础信息列表
+ */
+ List queryList(TUserBo bo);
+
+ /**
+ * 新增客户用户基础信息
+ *
+ * @param bo 客户用户基础信息
+ * @return 是否新增成功
+ */
+ Boolean insertByBo(TUserBo bo);
+
+ /**
+ * 修改客户用户基础信息
+ *
+ * @param bo 客户用户基础信息
+ * @return 是否修改成功
+ */
+ Boolean updateByBo(TUserBo bo);
+
+ /**
+ * 校验并批量删除客户用户基础信息信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/impl/TPlatformUserServiceImpl.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/impl/TPlatformUserServiceImpl.java
new file mode 100644
index 0000000..626658a
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/impl/TPlatformUserServiceImpl.java
@@ -0,0 +1,138 @@
+package org.dromara.client.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.dromara.client.domain.bo.TPlatformUserBo;
+import org.dromara.client.domain.vo.TPlatformUserVo;
+import org.dromara.client.domain.TPlatformUser;
+import org.dromara.client.mapper.TPlatformUserMapper;
+import org.dromara.client.service.ITPlatformUserService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 平台用户关联(微信/抖音小程序用户信息)Service业务层处理
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class TPlatformUserServiceImpl implements ITPlatformUserService {
+
+ private final TPlatformUserMapper baseMapper;
+
+ /**
+ * 查询平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param id 主键
+ * @return 平台用户关联(微信/抖音小程序用户信息)
+ */
+ @Override
+ public TPlatformUserVo queryById(Long id){
+ return baseMapper.selectVoById(id);
+ }
+
+ /**
+ * 分页查询平台用户关联(微信/抖音小程序用户信息)列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 平台用户关联(微信/抖音小程序用户信息)分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(TPlatformUserBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的平台用户关联(微信/抖音小程序用户信息)列表
+ *
+ * @param bo 查询条件
+ * @return 平台用户关联(微信/抖音小程序用户信息)列表
+ */
+ @Override
+ public List queryList(TPlatformUserBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(TPlatformUserBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.orderByAsc(TPlatformUser::getId);
+ lqw.eq(bo.getUserId() != null, TPlatformUser::getUserId, bo.getUserId());
+ lqw.eq(bo.getPlatformType() != null, TPlatformUser::getPlatformType, bo.getPlatformType());
+ lqw.eq(StringUtils.isNotBlank(bo.getPlatformOpenid()), TPlatformUser::getPlatformOpenid, bo.getPlatformOpenid());
+ lqw.eq(StringUtils.isNotBlank(bo.getPlatformUnionid()), TPlatformUser::getPlatformUnionid, bo.getPlatformUnionid());
+ lqw.eq(StringUtils.isNotBlank(bo.getPlatformSessionKey()), TPlatformUser::getPlatformSessionKey, bo.getPlatformSessionKey());
+ lqw.eq(StringUtils.isNotBlank(bo.getPlatformExtra()), TPlatformUser::getPlatformExtra, bo.getPlatformExtra());
+ lqw.eq(bo.getLastLoginTime() != null, TPlatformUser::getLastLoginTime, bo.getLastLoginTime());
+ return lqw;
+ }
+
+ /**
+ * 新增平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param bo 平台用户关联(微信/抖音小程序用户信息)
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(TPlatformUserBo bo) {
+ TPlatformUser add = MapstructUtils.convert(bo, TPlatformUser.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改平台用户关联(微信/抖音小程序用户信息)
+ *
+ * @param bo 平台用户关联(微信/抖音小程序用户信息)
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(TPlatformUserBo bo) {
+ TPlatformUser update = MapstructUtils.convert(bo, TPlatformUser.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(TPlatformUser entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除平台用户关联(微信/抖音小程序用户信息)信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/impl/TUserServiceImpl.java b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/impl/TUserServiceImpl.java
new file mode 100644
index 0000000..fff368c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/java/org/dromara/client/service/impl/TUserServiceImpl.java
@@ -0,0 +1,139 @@
+package org.dromara.client.service.impl;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.dromara.client.domain.bo.TUserBo;
+import org.dromara.client.domain.vo.TUserVo;
+import org.dromara.client.domain.TUser;
+import org.dromara.client.mapper.TUserMapper;
+import org.dromara.client.service.ITUserService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 客户用户基础信息Service业务层处理
+ *
+ * @author ZhouWenTao
+ * @date 2026-03-22
+ */
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class TUserServiceImpl implements ITUserService {
+
+ private final TUserMapper baseMapper;
+
+ /**
+ * 查询客户用户基础信息
+ *
+ * @param id 主键
+ * @return 客户用户基础信息
+ */
+ @Override
+ public TUserVo queryById(Long id){
+ return baseMapper.selectVoById(id);
+ }
+
+ /**
+ * 分页查询客户用户基础信息列表
+ *
+ * @param bo 查询条件
+ * @param pageQuery 分页参数
+ * @return 客户用户基础信息分页列表
+ */
+ @Override
+ public TableDataInfo queryPageList(TUserBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+ return TableDataInfo.build(result);
+ }
+
+ /**
+ * 查询符合条件的客户用户基础信息列表
+ *
+ * @param bo 查询条件
+ * @return 客户用户基础信息列表
+ */
+ @Override
+ public List queryList(TUserBo bo) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ return baseMapper.selectVoList(lqw);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(TUserBo bo) {
+ Map params = bo.getParams();
+ LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
+ lqw.orderByAsc(TUser::getId);
+ lqw.like(StringUtils.isNotBlank(bo.getUsername()), TUser::getUsername, bo.getUsername());
+ lqw.like(StringUtils.isNotBlank(bo.getNickname()), TUser::getNickname, bo.getNickname());
+ lqw.eq(StringUtils.isNotBlank(bo.getAvatarUrl()), TUser::getAvatarUrl, bo.getAvatarUrl());
+ lqw.eq(StringUtils.isNotBlank(bo.getPhone()), TUser::getPhone, bo.getPhone());
+ lqw.eq(bo.getGender() != null, TUser::getGender, bo.getGender());
+ lqw.eq(bo.getStatus() != null, TUser::getStatus, bo.getStatus());
+ lqw.eq(StringUtils.isNotBlank(bo.getPassword()), TUser::getPassword, bo.getPassword());
+ lqw.eq(StringUtils.isNotBlank(bo.getSalt()), TUser::getSalt, bo.getSalt());
+ return lqw;
+ }
+
+ /**
+ * 新增客户用户基础信息
+ *
+ * @param bo 客户用户基础信息
+ * @return 是否新增成功
+ */
+ @Override
+ public Boolean insertByBo(TUserBo bo) {
+ TUser add = MapstructUtils.convert(bo, TUser.class);
+ validEntityBeforeSave(add);
+ boolean flag = baseMapper.insert(add) > 0;
+ if (flag) {
+ bo.setId(add.getId());
+ }
+ return flag;
+ }
+
+ /**
+ * 修改客户用户基础信息
+ *
+ * @param bo 客户用户基础信息
+ * @return 是否修改成功
+ */
+ @Override
+ public Boolean updateByBo(TUserBo bo) {
+ TUser update = MapstructUtils.convert(bo, TUser.class);
+ validEntityBeforeSave(update);
+ return baseMapper.updateById(update) > 0;
+ }
+
+ /**
+ * 保存前的数据校验
+ */
+ private void validEntityBeforeSave(TUser entity){
+ //TODO 做一些数据校验,如唯一约束
+ }
+
+ /**
+ * 校验并批量删除客户用户基础信息信息
+ *
+ * @param ids 待删除的主键集合
+ * @param isValid 是否进行有效性校验
+ * @return 是否删除成功
+ */
+ @Override
+ public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
+ if(isValid){
+ //TODO 做一些业务上的校验,判断是否需要校验
+ }
+ return baseMapper.deleteByIds(ids) > 0;
+ }
+}
diff --git a/ruoyi-modules/ruoyi-client/src/main/resources/mapper/client/TPlatformUserMapper.xml b/ruoyi-modules/ruoyi-client/src/main/resources/mapper/client/TPlatformUserMapper.xml
new file mode 100644
index 0000000..7e50a35
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/resources/mapper/client/TPlatformUserMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-client/src/main/resources/mapper/client/TUserMapper.xml b/ruoyi-modules/ruoyi-client/src/main/resources/mapper/client/TUserMapper.xml
new file mode 100644
index 0000000..293df96
--- /dev/null
+++ b/ruoyi-modules/ruoyi-client/src/main/resources/mapper/client/TUserMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml b/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml
index d779d97..0a69e1c 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/generator.yml
@@ -1,7 +1,7 @@
# 代码生成
gen:
# 作者
- author: Lion Li
+ author: ZhouWenTao
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
packageName: org.dromara.system
# 自动去除表前缀,默认是false