diff --git a/mms-docs/mms-doc-admin/.gitignore b/mms-docs/mms-doc-admin/.gitignore
new file mode 100644
index 0000000..a030e74
--- /dev/null
+++ b/mms-docs/mms-doc-admin/.gitignore
@@ -0,0 +1,103 @@
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# Eclipse & IntelliJ IDEA
+.classpath
+.settings/
+.idea
+.idea/
+*.iws
+*.iml
+*.ipr
+.settings
+.project
+.flattened-pom.xml
+
+# Maven
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+
+# Gradle
+.gradle
+.gradle/
+build/
+**/build/
+bin/
+!src/**/build/
+gradle-app.setting
+!gradle-wrapper.jar
+.gradletasknamecache
+gradle/wrapper/gradle-wrapper.properties
+
+# VS Code
+.vscode/
+
+# STS
+.apt_generated
+.factorypath
+.springBeans
+.sts4-cache
+
+# NetBeans
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+# DB
+/script/db/.back_sxpcwlkj/
+/script/db/.version_sxpcwlkj/
+!/script/db/.back_sxpcwlkj/
+
+.DS_Store
+node_modules
+/dist
+package-lock.json
+yarn.lock
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/mms-docs/mms-doc-admin/pom.xml b/mms-docs/mms-doc-admin/pom.xml
new file mode 100644
index 0000000..2a95de1
--- /dev/null
+++ b/mms-docs/mms-doc-admin/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.sxpcwlkj
+ mms-docs
+ ${revision}
+
+
+ mms-doc-admin
+ 文档Admin系统模块
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.sxpcwlkj
+ mms-framework
+
+
+
+
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocAuthorizeUserController.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocAuthorizeUserController.java
new file mode 100644
index 0000000..e705214
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocAuthorizeUserController.java
@@ -0,0 +1,145 @@
+package com.sxpcwlkj.docAdmin.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.sxpcwlkj.common.annotation.MssSafety;
+import com.sxpcwlkj.common.code.controller.BaseController;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.R;
+import com.sxpcwlkj.common.code.entity.PrintObject;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import com.sxpcwlkj.framework.utils.ExcelUtil;
+import com.sxpcwlkj.common.code.entity.ThreeQueryBo;
+import com.sxpcwlkj.docAdmin.entity.bo.DocAuthorizeUserBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocAuthorizeUserVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocAuthorizeUserExport;
+import com.sxpcwlkj.docAdmin.service.DocAuthorizeUserService;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档授权用户
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("docAdmin/docAuthorizeUser")
+public class DocAuthorizeUserController extends BaseController{
+ private final DocAuthorizeUserService baseService;
+
+ /**
+ * 分页列表-文档授权用户
+ * @param bo 查询条件
+ * @return 分页对象
+ */
+ @SaCheckPermission("docAdmin:docAuthorizeUser:list")
+ @PostMapping("/list")
+ public TableDataInfo listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocAuthorizeUserBo bo){
+ return baseService.selectListVoPage(bo, bo.getPageQuery());
+ }
+
+ /**
+ * 根据id查询-文档授权用户
+ * @param id ID
+ * @return 对象
+ */
+ @SaCheckPermission("docAdmin:docAuthorizeUser:query")
+ @GetMapping("/{id}")
+ public R queryById(@PathVariable String id) {
+ return success(baseService.selectVoById(id));
+ }
+
+ /**
+ * 修改-文档授权用户
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docAuthorizeUser:edit")
+ @PutMapping
+ public R edit(@RequestBody @Validated(ValidatedGroupConfig.update.class) DocAuthorizeUserBo bo) {
+ return success(baseService.updateById(bo));
+ }
+
+ /**
+ * 新增-文档授权用户
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docAuthorizeUser:insert")
+ @PostMapping
+ public R insert(@RequestBody @Validated(ValidatedGroupConfig.insert.class) DocAuthorizeUserBo bo) {
+ return success(baseService.insert(bo));
+ }
+
+ /**
+ * 删除-文档授权用户
+ * @param ids ID
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docAuthorizeUser:delete")
+ @DeleteMapping("/{ids}")
+ public R delete(@PathVariable String ids) {
+ return success(baseService.deleteById(ids));
+ }
+
+ /**
+ * 模版下载-文档授权用户
+ */
+ @SaCheckPermission("docAdmin:docAuthorizeUser:import")
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ ExcelUtil.download(response, DocAuthorizeUserExport.class, "文档授权用户");
+ }
+
+ /**
+ * 导入-文档授权用户
+ * @param file 模版文件
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docAuthorizeUser:import")
+ @PostMapping("/import")
+ public R imports(@RequestParam("file") MultipartFile file) throws Exception {
+ Set list= ExcelUtil.imports(file, DocAuthorizeUserExport.class);
+ Boolean state= baseService.imports(list);
+ return R.ok(state,state?"数据导入成功!":"数据导入失败!");
+ }
+
+ /**
+ * 导出-文档授权用户
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docAuthorizeUser:export")
+ @PostMapping("/export")
+ public void export(@Validated(ValidatedGroupConfig.query.class) DocAuthorizeUserBo bo,HttpServletResponse response) throws IOException {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocAuthorizeUserExport.class);
+ ExcelUtil.export(response, DocAuthorizeUserExport.class, "文档授权用户",data);
+ }
+
+ /**
+ * 打印-文档授权用户
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docAuthorizeUser:print")
+ @PostMapping("/print")
+ public R> print(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocAuthorizeUserBo bo) throws Exception {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocAuthorizeUserExport.class);
+ PrintObject printObject= new PrintObject()
+ .setTitle("文档授权用户")
+ .setData(data);
+ return R.response(Boolean.TRUE,printObject);
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocConfigController.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocConfigController.java
new file mode 100644
index 0000000..d4c846b
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocConfigController.java
@@ -0,0 +1,145 @@
+package com.sxpcwlkj.docAdmin.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.sxpcwlkj.common.annotation.MssSafety;
+import com.sxpcwlkj.common.code.controller.BaseController;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.R;
+import com.sxpcwlkj.common.code.entity.PrintObject;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import com.sxpcwlkj.framework.utils.ExcelUtil;
+import com.sxpcwlkj.common.code.entity.ThreeQueryBo;
+import com.sxpcwlkj.docAdmin.entity.bo.DocConfigBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocConfigVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocConfigExport;
+import com.sxpcwlkj.docAdmin.service.DocConfigService;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档配置
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("docAdmin/docConfig")
+public class DocConfigController extends BaseController{
+ private final DocConfigService baseService;
+
+ /**
+ * 分页列表-文档配置
+ * @param bo 查询条件
+ * @return 分页对象
+ */
+ @SaCheckPermission("docAdmin:docConfig:list")
+ @PostMapping("/list")
+ public TableDataInfo listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocConfigBo bo){
+ return baseService.selectListVoPage(bo, bo.getPageQuery());
+ }
+
+ /**
+ * 根据id查询-文档配置
+ * @param id ID
+ * @return 对象
+ */
+ @SaCheckPermission("docAdmin:docConfig:query")
+ @GetMapping("/{id}")
+ public R queryById(@PathVariable String id) {
+ return success(baseService.selectVoById(id));
+ }
+
+ /**
+ * 修改-文档配置
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docConfig:edit")
+ @PutMapping
+ public R edit(@RequestBody @Validated(ValidatedGroupConfig.update.class) DocConfigBo bo) {
+ return success(baseService.updateById(bo));
+ }
+
+ /**
+ * 新增-文档配置
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docConfig:insert")
+ @PostMapping
+ public R insert(@RequestBody @Validated(ValidatedGroupConfig.insert.class) DocConfigBo bo) {
+ return success(baseService.insert(bo));
+ }
+
+ /**
+ * 删除-文档配置
+ * @param ids ID
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docConfig:delete")
+ @DeleteMapping("/{ids}")
+ public R delete(@PathVariable String ids) {
+ return success(baseService.deleteById(ids));
+ }
+
+ /**
+ * 模版下载-文档配置
+ */
+ @SaCheckPermission("docAdmin:docConfig:import")
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ ExcelUtil.download(response, DocConfigExport.class, "文档配置");
+ }
+
+ /**
+ * 导入-文档配置
+ * @param file 模版文件
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docConfig:import")
+ @PostMapping("/import")
+ public R imports(@RequestParam("file") MultipartFile file) throws Exception {
+ Set list= ExcelUtil.imports(file, DocConfigExport.class);
+ Boolean state= baseService.imports(list);
+ return R.ok(state,state?"数据导入成功!":"数据导入失败!");
+ }
+
+ /**
+ * 导出-文档配置
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docConfig:export")
+ @PostMapping("/export")
+ public void export(@Validated(ValidatedGroupConfig.query.class) DocConfigBo bo,HttpServletResponse response) throws IOException {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocConfigExport.class);
+ ExcelUtil.export(response, DocConfigExport.class, "文档配置",data);
+ }
+
+ /**
+ * 打印-文档配置
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docConfig:print")
+ @PostMapping("/print")
+ public R> print(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocConfigBo bo) throws Exception {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocConfigExport.class);
+ PrintObject printObject= new PrintObject()
+ .setTitle("文档配置")
+ .setData(data);
+ return R.response(Boolean.TRUE,printObject);
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocOrderController.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocOrderController.java
new file mode 100644
index 0000000..195618b
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocOrderController.java
@@ -0,0 +1,145 @@
+package com.sxpcwlkj.docAdmin.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.sxpcwlkj.common.annotation.MssSafety;
+import com.sxpcwlkj.common.code.controller.BaseController;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.R;
+import com.sxpcwlkj.common.code.entity.PrintObject;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import com.sxpcwlkj.framework.utils.ExcelUtil;
+import com.sxpcwlkj.common.code.entity.ThreeQueryBo;
+import com.sxpcwlkj.docAdmin.entity.bo.DocOrderBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocOrderVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocOrderExport;
+import com.sxpcwlkj.docAdmin.service.DocOrderService;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档订单
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("docAdmin/docOrder")
+public class DocOrderController extends BaseController{
+ private final DocOrderService baseService;
+
+ /**
+ * 分页列表-文档订单
+ * @param bo 查询条件
+ * @return 分页对象
+ */
+ @SaCheckPermission("docAdmin:docOrder:list")
+ @PostMapping("/list")
+ public TableDataInfo listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocOrderBo bo){
+ return baseService.selectListVoPage(bo, bo.getPageQuery());
+ }
+
+ /**
+ * 根据id查询-文档订单
+ * @param id ID
+ * @return 对象
+ */
+ @SaCheckPermission("docAdmin:docOrder:query")
+ @GetMapping("/{id}")
+ public R queryById(@PathVariable String id) {
+ return success(baseService.selectVoById(id));
+ }
+
+ /**
+ * 修改-文档订单
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docOrder:edit")
+ @PutMapping
+ public R edit(@RequestBody @Validated(ValidatedGroupConfig.update.class) DocOrderBo bo) {
+ return success(baseService.updateById(bo));
+ }
+
+ /**
+ * 新增-文档订单
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docOrder:insert")
+ @PostMapping
+ public R insert(@RequestBody @Validated(ValidatedGroupConfig.insert.class) DocOrderBo bo) {
+ return success(baseService.insert(bo));
+ }
+
+ /**
+ * 删除-文档订单
+ * @param ids ID
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docOrder:delete")
+ @DeleteMapping("/{ids}")
+ public R delete(@PathVariable String ids) {
+ return success(baseService.deleteById(ids));
+ }
+
+ /**
+ * 模版下载-文档订单
+ */
+ @SaCheckPermission("docAdmin:docOrder:import")
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ ExcelUtil.download(response, DocOrderExport.class, "文档订单");
+ }
+
+ /**
+ * 导入-文档订单
+ * @param file 模版文件
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docOrder:import")
+ @PostMapping("/import")
+ public R imports(@RequestParam("file") MultipartFile file) throws Exception {
+ Set list= ExcelUtil.imports(file, DocOrderExport.class);
+ Boolean state= baseService.imports(list);
+ return R.ok(state,state?"数据导入成功!":"数据导入失败!");
+ }
+
+ /**
+ * 导出-文档订单
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docOrder:export")
+ @PostMapping("/export")
+ public void export(@Validated(ValidatedGroupConfig.query.class) DocOrderBo bo,HttpServletResponse response) throws IOException {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocOrderExport.class);
+ ExcelUtil.export(response, DocOrderExport.class, "文档订单",data);
+ }
+
+ /**
+ * 打印-文档订单
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docOrder:print")
+ @PostMapping("/print")
+ public R> print(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocOrderBo bo) throws Exception {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocOrderExport.class);
+ PrintObject printObject= new PrintObject()
+ .setTitle("文档订单")
+ .setData(data);
+ return R.response(Boolean.TRUE,printObject);
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocProductController.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocProductController.java
new file mode 100644
index 0000000..84d1af8
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocProductController.java
@@ -0,0 +1,145 @@
+package com.sxpcwlkj.docAdmin.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.sxpcwlkj.common.annotation.MssSafety;
+import com.sxpcwlkj.common.code.controller.BaseController;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.R;
+import com.sxpcwlkj.common.code.entity.PrintObject;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import com.sxpcwlkj.framework.utils.ExcelUtil;
+import com.sxpcwlkj.common.code.entity.ThreeQueryBo;
+import com.sxpcwlkj.docAdmin.entity.bo.DocProductBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocProductVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocProductExport;
+import com.sxpcwlkj.docAdmin.service.DocProductService;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档商品
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("docAdmin/docProduct")
+public class DocProductController extends BaseController{
+ private final DocProductService baseService;
+
+ /**
+ * 分页列表-文档商品
+ * @param bo 查询条件
+ * @return 分页对象
+ */
+ @SaCheckPermission("docAdmin:docProduct:list")
+ @PostMapping("/list")
+ public TableDataInfo listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocProductBo bo){
+ return baseService.selectListVoPage(bo, bo.getPageQuery());
+ }
+
+ /**
+ * 根据id查询-文档商品
+ * @param id ID
+ * @return 对象
+ */
+ @SaCheckPermission("docAdmin:docProduct:query")
+ @GetMapping("/{id}")
+ public R queryById(@PathVariable String id) {
+ return success(baseService.selectVoById(id));
+ }
+
+ /**
+ * 修改-文档商品
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docProduct:edit")
+ @PutMapping
+ public R edit(@RequestBody @Validated(ValidatedGroupConfig.update.class) DocProductBo bo) {
+ return success(baseService.updateById(bo));
+ }
+
+ /**
+ * 新增-文档商品
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docProduct:insert")
+ @PostMapping
+ public R insert(@RequestBody @Validated(ValidatedGroupConfig.insert.class) DocProductBo bo) {
+ return success(baseService.insert(bo));
+ }
+
+ /**
+ * 删除-文档商品
+ * @param ids ID
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docProduct:delete")
+ @DeleteMapping("/{ids}")
+ public R delete(@PathVariable String ids) {
+ return success(baseService.deleteById(ids));
+ }
+
+ /**
+ * 模版下载-文档商品
+ */
+ @SaCheckPermission("docAdmin:docProduct:import")
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ ExcelUtil.download(response, DocProductExport.class, "文档商品");
+ }
+
+ /**
+ * 导入-文档商品
+ * @param file 模版文件
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docProduct:import")
+ @PostMapping("/import")
+ public R imports(@RequestParam("file") MultipartFile file) throws Exception {
+ Set list= ExcelUtil.imports(file, DocProductExport.class);
+ Boolean state= baseService.imports(list);
+ return R.ok(state,state?"数据导入成功!":"数据导入失败!");
+ }
+
+ /**
+ * 导出-文档商品
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docProduct:export")
+ @PostMapping("/export")
+ public void export(@Validated(ValidatedGroupConfig.query.class) DocProductBo bo,HttpServletResponse response) throws IOException {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocProductExport.class);
+ ExcelUtil.export(response, DocProductExport.class, "文档商品",data);
+ }
+
+ /**
+ * 打印-文档商品
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docProduct:print")
+ @PostMapping("/print")
+ public R> print(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocProductBo bo) throws Exception {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocProductExport.class);
+ PrintObject printObject= new PrintObject()
+ .setTitle("文档商品")
+ .setData(data);
+ return R.response(Boolean.TRUE,printObject);
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocUserController.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocUserController.java
new file mode 100644
index 0000000..a94e02f
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/controller/DocUserController.java
@@ -0,0 +1,145 @@
+package com.sxpcwlkj.docAdmin.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.sxpcwlkj.common.annotation.MssSafety;
+import com.sxpcwlkj.common.code.controller.BaseController;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.R;
+import com.sxpcwlkj.common.code.entity.PrintObject;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import com.sxpcwlkj.framework.utils.ExcelUtil;
+import com.sxpcwlkj.common.code.entity.ThreeQueryBo;
+import com.sxpcwlkj.docAdmin.entity.bo.DocUserBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocUserVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocUserExport;
+import com.sxpcwlkj.docAdmin.service.DocUserService;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档用户
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("docAdmin/docUser")
+public class DocUserController extends BaseController{
+ private final DocUserService baseService;
+
+ /**
+ * 分页列表-文档用户
+ * @param bo 查询条件
+ * @return 分页对象
+ */
+ @SaCheckPermission("docAdmin:docUser:list")
+ @PostMapping("/list")
+ public TableDataInfo listPage(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocUserBo bo){
+ return baseService.selectListVoPage(bo, bo.getPageQuery());
+ }
+
+ /**
+ * 根据id查询-文档用户
+ * @param id ID
+ * @return 对象
+ */
+ @SaCheckPermission("docAdmin:docUser:query")
+ @GetMapping("/{id}")
+ public R queryById(@PathVariable String id) {
+ return success(baseService.selectVoById(id));
+ }
+
+ /**
+ * 修改-文档用户
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docUser:edit")
+ @PutMapping
+ public R edit(@RequestBody @Validated(ValidatedGroupConfig.update.class) DocUserBo bo) {
+ return success(baseService.updateById(bo));
+ }
+
+ /**
+ * 新增-文档用户
+ * @param bo 对象
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docUser:insert")
+ @PostMapping
+ public R insert(@RequestBody @Validated(ValidatedGroupConfig.insert.class) DocUserBo bo) {
+ return success(baseService.insert(bo));
+ }
+
+ /**
+ * 删除-文档用户
+ * @param ids ID
+ * @return true:成功 false:失败
+ */
+ @SaCheckPermission("docAdmin:docUser:delete")
+ @DeleteMapping("/{ids}")
+ public R delete(@PathVariable String ids) {
+ return success(baseService.deleteById(ids));
+ }
+
+ /**
+ * 模版下载-文档用户
+ */
+ @SaCheckPermission("docAdmin:docUser:import")
+ @PostMapping("/importTemplate")
+ public void importTemplate(HttpServletResponse response) throws IOException {
+ ExcelUtil.download(response, DocUserExport.class, "文档用户");
+ }
+
+ /**
+ * 导入-文档用户
+ * @param file 模版文件
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docUser:import")
+ @PostMapping("/import")
+ public R imports(@RequestParam("file") MultipartFile file) throws Exception {
+ Set list= ExcelUtil.imports(file, DocUserExport.class);
+ Boolean state= baseService.imports(list);
+ return R.ok(state,state?"数据导入成功!":"数据导入失败!");
+ }
+
+ /**
+ * 导出-文档用户
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docUser:export")
+ @PostMapping("/export")
+ public void export(@Validated(ValidatedGroupConfig.query.class) DocUserBo bo,HttpServletResponse response) throws IOException {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocUserExport.class);
+ ExcelUtil.export(response, DocUserExport.class, "文档用户",data);
+ }
+
+ /**
+ * 打印-文档用户
+ */
+ @MssSafety
+ @SaCheckPermission("docAdmin:docUser:print")
+ @PostMapping("/print")
+ public R> print(@RequestBody @Validated(ValidatedGroupConfig.query.class) DocUserBo bo) throws Exception {
+ List list= baseService.selectListVoPage(bo, bo.getPageQuery()).getRows();
+ List data= MapstructUtil.convert(list,DocUserExport.class);
+ PrintObject printObject= new PrintObject()
+ .setTitle("文档用户")
+ .setData(data);
+ return R.response(Boolean.TRUE,printObject);
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocAuthorizeUser.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocAuthorizeUser.java
new file mode 100644
index 0000000..e8cca68
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocAuthorizeUser.java
@@ -0,0 +1,48 @@
+package com.sxpcwlkj.docAdmin.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+import java.util.Date;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 文档授权用户
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Data
+@TableName("doc_authorize_user")
+@EqualsAndHashCode(callSuper = true)
+public class DocAuthorizeUser extends BaseEntity {
+ /**
+ * ID
+ */
+ @TableId
+ private String id;
+ /**
+ * 用户编号
+ */
+ private String uid;
+ /**
+ * 授权平台
+ */
+ private String chan;
+ /**
+ * 授权平台标识
+ */
+ private String appid;
+ /**
+ * 授权平台用户ID
+ */
+ private String openid;
+ /**
+ * 创建时间
+ */
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocConfig.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocConfig.java
new file mode 100644
index 0000000..11bceb3
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocConfig.java
@@ -0,0 +1,40 @@
+package com.sxpcwlkj.docAdmin.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+import java.util.Date;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 文档配置
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Data
+@TableName("doc_config")
+@EqualsAndHashCode(callSuper = true)
+public class DocConfig extends BaseEntity {
+ /**
+ * ID
+ */
+ @TableId
+ private String id;
+ /**
+ * KEY
+ */
+ private String key;
+ /**
+ * 值
+ */
+ private String value;
+ /**
+ * 创建时间
+ */
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocOrder.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocOrder.java
new file mode 100644
index 0000000..6efac02
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocOrder.java
@@ -0,0 +1,69 @@
+package com.sxpcwlkj.docAdmin.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 文档订单
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Data
+@TableName("doc_order")
+@EqualsAndHashCode(callSuper = true)
+public class DocOrder extends BaseEntity {
+ /**
+ * 订单编号
+ */
+ @TableId
+ private String orderId;
+ /**
+ * 用户编号
+ */
+ private String uid;
+ /**
+ * 订单金额
+ */
+ private BigDecimal txnAmt;
+ /**
+ * 支付商户号
+ */
+ private String payMchid;
+ /**
+ * 支付平台流水号
+ */
+ private String payNo;
+ /**
+ * 支付超时时间
+ */
+ private String payTimeout;
+ /**
+ * 产品编号
+ */
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ private String prodName;
+ /**
+ * 产品价格
+ */
+ private BigDecimal prodPrice;
+ /**
+ * 产品类型
+ */
+ private String prodType;
+ /**
+ * 创建时间
+ */
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ private String mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocProduct.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocProduct.java
new file mode 100644
index 0000000..3f26a68
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocProduct.java
@@ -0,0 +1,48 @@
+package com.sxpcwlkj.docAdmin.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+import java.util.Date;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 文档商品
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Data
+@TableName("doc_product")
+@EqualsAndHashCode(callSuper = true)
+public class DocProduct extends BaseEntity {
+ /**
+ * 产品编号
+ */
+ @TableId
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ private String prodName;
+ /**
+ * 销售单价
+ */
+ private String unitPrice;
+ /**
+ * 市场价格
+ */
+ private String markPrice;
+ /**
+ * 产品类型
+ */
+ private String type;
+ /**
+ * 创建时间
+ */
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ private String mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocUser.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocUser.java
new file mode 100644
index 0000000..050e072
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/DocUser.java
@@ -0,0 +1,44 @@
+package com.sxpcwlkj.docAdmin.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+import java.util.Date;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 文档用户
+ *
+ * @author 西决
+ * @Doc MMS文档
+ */
+@Data
+@TableName("doc_user")
+@EqualsAndHashCode(callSuper = true)
+public class DocUser extends BaseEntity {
+ /**
+ * 用户编号
+ */
+ @TableId
+ private String uid;
+ /**
+ * 昵称
+ */
+ private String nickname;
+ /**
+ * 头像
+ */
+ private String avatar;
+ /**
+ * 用户类型
+ */
+ private String type;
+ /**
+ * 创建时间
+ */
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocAuthorizeUserBo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocAuthorizeUserBo.java
new file mode 100644
index 0000000..823a2a5
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocAuthorizeUserBo.java
@@ -0,0 +1,63 @@
+package com.sxpcwlkj.docAdmin.entity.bo;
+
+import com.sxpcwlkj.common.utils.DateUtil;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import io.github.linpeilie.annotations.AutoMapper;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.sxpcwlkj.docAdmin.entity.DocAuthorizeUser;
+import java.util.Date;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+
+/**
+* 文档授权用户Bo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocAuthorizeUser.class, reverseConvertGenerate = false)
+@EqualsAndHashCode(callSuper=false)
+public class DocAuthorizeUserBo extends BaseEntity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @NotBlank(message = "ID不能为空" ,groups = {ValidatedGroupConfig.update.class})
+ private String id;
+ /**
+ * 用户编号
+ */
+ @NotBlank(message = "用户编号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String uid;
+ /**
+ * 授权平台
+ */
+ @NotBlank(message = "授权平台不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String chan;
+ /**
+ * 授权平台标识
+ */
+ @NotBlank(message = "授权平台标识不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String appid;
+ /**
+ * 授权平台用户ID
+ */
+ @NotBlank(message = "授权平台用户ID不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String openid;
+ /**
+ * 创建时间
+ */
+ @NotNull(message = "创建时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @NotNull(message = "更新时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocConfigBo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocConfigBo.java
new file mode 100644
index 0000000..a230695
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocConfigBo.java
@@ -0,0 +1,53 @@
+package com.sxpcwlkj.docAdmin.entity.bo;
+
+import com.sxpcwlkj.common.utils.DateUtil;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import io.github.linpeilie.annotations.AutoMapper;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.sxpcwlkj.docAdmin.entity.DocConfig;
+import java.util.Date;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+
+/**
+* 文档配置Bo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocConfig.class, reverseConvertGenerate = false)
+@EqualsAndHashCode(callSuper=false)
+public class DocConfigBo extends BaseEntity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @NotBlank(message = "ID不能为空" ,groups = {ValidatedGroupConfig.update.class})
+ private String id;
+ /**
+ * KEY
+ */
+ @NotBlank(message = "KEY不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String key;
+ /**
+ * 值
+ */
+ @NotBlank(message = "值不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String value;
+ /**
+ * 创建时间
+ */
+ @NotNull(message = "创建时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @NotNull(message = "更新时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocOrderBo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocOrderBo.java
new file mode 100644
index 0000000..21b0720
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocOrderBo.java
@@ -0,0 +1,89 @@
+package com.sxpcwlkj.docAdmin.entity.bo;
+
+import com.sxpcwlkj.common.utils.DateUtil;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import io.github.linpeilie.annotations.AutoMapper;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.sxpcwlkj.docAdmin.entity.DocOrder;
+import java.math.BigDecimal;
+import java.util.Date;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+
+/**
+* 文档订单Bo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocOrder.class, reverseConvertGenerate = false)
+@EqualsAndHashCode(callSuper=false)
+public class DocOrderBo extends BaseEntity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 订单编号
+ */
+ @NotBlank(message = "订单编号不能为空" ,groups = {ValidatedGroupConfig.update.class})
+ private String orderId;
+ /**
+ * 用户编号
+ */
+ @NotBlank(message = "用户编号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String uid;
+ /**
+ * 订单金额
+ */
+ @NotNull(message = "订单金额不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private BigDecimal txnAmt;
+ /**
+ * 支付商户号
+ */
+ @NotBlank(message = "支付商户号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String payMchid;
+ /**
+ * 支付平台流水号
+ */
+ @NotBlank(message = "支付平台流水号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String payNo;
+ /**
+ * 支付超时时间
+ */
+ @NotBlank(message = "支付超时时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String payTimeout;
+ /**
+ * 产品编号
+ */
+ @NotBlank(message = "产品编号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ @NotBlank(message = "产品名称不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String prodName;
+ /**
+ * 产品价格
+ */
+ @NotNull(message = "产品价格不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private BigDecimal prodPrice;
+ /**
+ * 产品类型
+ */
+ @NotBlank(message = "产品类型不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String prodType;
+ /**
+ * 创建时间
+ */
+ @NotBlank(message = "创建时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ @NotBlank(message = "更新时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocProductBo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocProductBo.java
new file mode 100644
index 0000000..d4d09b3
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocProductBo.java
@@ -0,0 +1,63 @@
+package com.sxpcwlkj.docAdmin.entity.bo;
+
+import com.sxpcwlkj.common.utils.DateUtil;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import io.github.linpeilie.annotations.AutoMapper;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.sxpcwlkj.docAdmin.entity.DocProduct;
+import java.util.Date;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+
+/**
+* 文档商品Bo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocProduct.class, reverseConvertGenerate = false)
+@EqualsAndHashCode(callSuper=false)
+public class DocProductBo extends BaseEntity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 产品编号
+ */
+ @NotBlank(message = "产品编号不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ @NotBlank(message = "产品名称不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String prodName;
+ /**
+ * 销售单价
+ */
+ @NotBlank(message = "销售单价不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String unitPrice;
+ /**
+ * 市场价格
+ */
+ @NotBlank(message = "市场价格不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String markPrice;
+ /**
+ * 产品类型
+ */
+ @NotBlank(message = "产品类型不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String type;
+ /**
+ * 创建时间
+ */
+ @NotBlank(message = "创建时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ @NotBlank(message = "更新时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocUserBo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocUserBo.java
new file mode 100644
index 0000000..baa1819
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/bo/DocUserBo.java
@@ -0,0 +1,58 @@
+package com.sxpcwlkj.docAdmin.entity.bo;
+
+import com.sxpcwlkj.common.utils.DateUtil;
+import com.sxpcwlkj.framework.config.ValidatedGroupConfig;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+import io.github.linpeilie.annotations.AutoMapper;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.sxpcwlkj.docAdmin.entity.DocUser;
+import java.util.Date;
+import com.sxpcwlkj.datasource.entity.BaseEntity;
+
+/**
+* 文档用户Bo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocUser.class, reverseConvertGenerate = false)
+@EqualsAndHashCode(callSuper=false)
+public class DocUserBo extends BaseEntity {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户编号
+ */
+ @NotBlank(message = "用户编号不能为空" ,groups = {ValidatedGroupConfig.update.class})
+ private String uid;
+ /**
+ * 昵称
+ */
+ @NotBlank(message = "昵称不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String nickname;
+ /**
+ * 头像
+ */
+ @NotBlank(message = "头像不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String avatar;
+ /**
+ * 用户类型
+ */
+ @NotBlank(message = "用户类型不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private String type;
+ /**
+ * 创建时间
+ */
+ @NotNull(message = "创建时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @NotNull(message = "更新时间不能为空" ,groups = {ValidatedGroupConfig.insert.class,ValidatedGroupConfig.update.class})
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocAuthorizeUserExport.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocAuthorizeUserExport.java
new file mode 100644
index 0000000..cd07b4f
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocAuthorizeUserExport.java
@@ -0,0 +1,73 @@
+package com.sxpcwlkj.docAdmin.entity.export;
+
+import com.sxpcwlkj.common.annotation.Dict;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.sxpcwlkj.common.annotation.PrintColumn;
+import com.sxpcwlkj.common.enums.PrintTypeEnum;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.vo.DocAuthorizeUserVo;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.sxpcwlkj.framework.interceptor.DictExcelConverter;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.Date;
+
+/**
+* 文档授权用户Export
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocAuthorizeUserVo.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocAuthorizeUserExport extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ExcelIgnore
+ @ExcelProperty("ID")
+ @PrintColumn(title = "ID", type = PrintTypeEnum.TEXT)
+ private String id;
+ /**
+ * 用户编号
+ */
+ @ExcelProperty("用户编号")
+ @PrintColumn(title = "用户编号", type = PrintTypeEnum.TEXT)
+ private String uid;
+ /**
+ * 授权平台
+ */
+ @ExcelProperty("授权平台")
+ @PrintColumn(title = "授权平台", type = PrintTypeEnum.TEXT)
+ private String chan;
+ /**
+ * 授权平台标识
+ */
+ @ExcelProperty("授权平台标识")
+ @PrintColumn(title = "授权平台标识", type = PrintTypeEnum.TEXT)
+ private String appid;
+ /**
+ * 授权平台用户ID
+ */
+ @ExcelProperty("授权平台用户ID")
+ @PrintColumn(title = "授权平台用户ID", type = PrintTypeEnum.TEXT)
+ private String openid;
+ /**
+ * 创建时间
+ */
+ @ExcelProperty("创建时间")
+ @PrintColumn(title = "创建时间", type = PrintTypeEnum.TEXT)
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @ExcelProperty("更新时间")
+ @PrintColumn(title = "更新时间", type = PrintTypeEnum.TEXT)
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocConfigExport.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocConfigExport.java
new file mode 100644
index 0000000..9aee477
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocConfigExport.java
@@ -0,0 +1,61 @@
+package com.sxpcwlkj.docAdmin.entity.export;
+
+import com.sxpcwlkj.common.annotation.Dict;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.sxpcwlkj.common.annotation.PrintColumn;
+import com.sxpcwlkj.common.enums.PrintTypeEnum;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.vo.DocConfigVo;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.sxpcwlkj.framework.interceptor.DictExcelConverter;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.Date;
+
+/**
+* 文档配置Export
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocConfigVo.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocConfigExport extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ExcelIgnore
+ @ExcelProperty("ID")
+ @PrintColumn(title = "ID", type = PrintTypeEnum.TEXT)
+ private String id;
+ /**
+ * KEY
+ */
+ @ExcelProperty("KEY")
+ @PrintColumn(title = "KEY", type = PrintTypeEnum.TEXT)
+ private String key;
+ /**
+ * 值
+ */
+ @ExcelProperty("值")
+ @PrintColumn(title = "值", type = PrintTypeEnum.TEXT)
+ private String value;
+ /**
+ * 创建时间
+ */
+ @ExcelProperty("创建时间")
+ @PrintColumn(title = "创建时间", type = PrintTypeEnum.TEXT)
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @ExcelProperty("更新时间")
+ @PrintColumn(title = "更新时间", type = PrintTypeEnum.TEXT)
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocOrderExport.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocOrderExport.java
new file mode 100644
index 0000000..a4141b3
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocOrderExport.java
@@ -0,0 +1,104 @@
+package com.sxpcwlkj.docAdmin.entity.export;
+
+import com.sxpcwlkj.common.annotation.Dict;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.sxpcwlkj.common.annotation.PrintColumn;
+import com.sxpcwlkj.common.enums.PrintTypeEnum;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.vo.DocOrderVo;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.sxpcwlkj.framework.interceptor.DictExcelConverter;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* 文档订单Export
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocOrderVo.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocOrderExport extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 订单编号
+ */
+ @ExcelIgnore
+ @ExcelProperty("订单编号")
+ @PrintColumn(title = "订单编号", type = PrintTypeEnum.TEXT)
+ private String orderId;
+ /**
+ * 用户编号
+ */
+ @ExcelProperty("用户编号")
+ @PrintColumn(title = "用户编号", type = PrintTypeEnum.TEXT)
+ private String uid;
+ /**
+ * 订单金额
+ */
+ @ExcelProperty("订单金额")
+ @PrintColumn(title = "订单金额", type = PrintTypeEnum.TEXT)
+ private BigDecimal txnAmt;
+ /**
+ * 支付商户号
+ */
+ @ExcelProperty("支付商户号")
+ @PrintColumn(title = "支付商户号", type = PrintTypeEnum.TEXT)
+ private String payMchid;
+ /**
+ * 支付平台流水号
+ */
+ @ExcelProperty("支付平台流水号")
+ @PrintColumn(title = "支付平台流水号", type = PrintTypeEnum.TEXT)
+ private String payNo;
+ /**
+ * 支付超时时间
+ */
+ @ExcelProperty("支付超时时间")
+ @PrintColumn(title = "支付超时时间", type = PrintTypeEnum.TEXT)
+ private String payTimeout;
+ /**
+ * 产品编号
+ */
+ @ExcelProperty("产品编号")
+ @PrintColumn(title = "产品编号", type = PrintTypeEnum.TEXT)
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ @ExcelProperty("产品名称")
+ @PrintColumn(title = "产品名称", type = PrintTypeEnum.TEXT)
+ private String prodName;
+ /**
+ * 产品价格
+ */
+ @ExcelProperty("产品价格")
+ @PrintColumn(title = "产品价格", type = PrintTypeEnum.TEXT)
+ private BigDecimal prodPrice;
+ /**
+ * 产品类型
+ */
+ @ExcelProperty("产品类型")
+ @PrintColumn(title = "产品类型", type = PrintTypeEnum.TEXT)
+ private String prodType;
+ /**
+ * 创建时间
+ */
+ @ExcelProperty("创建时间")
+ @PrintColumn(title = "创建时间", type = PrintTypeEnum.TEXT)
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ @ExcelProperty("更新时间")
+ @PrintColumn(title = "更新时间", type = PrintTypeEnum.TEXT)
+ private String mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocProductExport.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocProductExport.java
new file mode 100644
index 0000000..ed40bdb
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocProductExport.java
@@ -0,0 +1,72 @@
+package com.sxpcwlkj.docAdmin.entity.export;
+
+import com.sxpcwlkj.common.annotation.Dict;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.sxpcwlkj.common.annotation.PrintColumn;
+import com.sxpcwlkj.common.enums.PrintTypeEnum;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.vo.DocProductVo;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.sxpcwlkj.framework.interceptor.DictExcelConverter;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.Date;
+
+/**
+* 文档商品Export
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocProductVo.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocProductExport extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 产品编号
+ */
+ @ExcelProperty("产品编号")
+ @PrintColumn(title = "产品编号", type = PrintTypeEnum.TEXT)
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ @ExcelProperty("产品名称")
+ @PrintColumn(title = "产品名称", type = PrintTypeEnum.TEXT)
+ private String prodName;
+ /**
+ * 销售单价
+ */
+ @ExcelProperty("销售单价")
+ @PrintColumn(title = "销售单价", type = PrintTypeEnum.TEXT)
+ private String unitPrice;
+ /**
+ * 市场价格
+ */
+ @ExcelProperty("市场价格")
+ @PrintColumn(title = "市场价格", type = PrintTypeEnum.TEXT)
+ private String markPrice;
+ /**
+ * 产品类型
+ */
+ @ExcelProperty("产品类型")
+ @PrintColumn(title = "产品类型", type = PrintTypeEnum.TEXT)
+ private String type;
+ /**
+ * 创建时间
+ */
+ @ExcelProperty("创建时间")
+ @PrintColumn(title = "创建时间", type = PrintTypeEnum.TEXT)
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ @ExcelProperty("更新时间")
+ @PrintColumn(title = "更新时间", type = PrintTypeEnum.TEXT)
+ private String mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocUserExport.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocUserExport.java
new file mode 100644
index 0000000..e5073ab
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/export/DocUserExport.java
@@ -0,0 +1,67 @@
+package com.sxpcwlkj.docAdmin.entity.export;
+
+import com.sxpcwlkj.common.annotation.Dict;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.sxpcwlkj.common.annotation.PrintColumn;
+import com.sxpcwlkj.common.enums.PrintTypeEnum;
+import java.io.Serial;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.vo.DocUserVo;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.sxpcwlkj.framework.interceptor.DictExcelConverter;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.Date;
+
+/**
+* 文档用户Export
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Data
+@AutoMapper(target = DocUserVo.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocUserExport extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户编号
+ */
+ @ExcelIgnore
+ @ExcelProperty("用户编号")
+ @PrintColumn(title = "用户编号", type = PrintTypeEnum.TEXT)
+ private String uid;
+ /**
+ * 昵称
+ */
+ @ExcelProperty("昵称")
+ @PrintColumn(title = "昵称", type = PrintTypeEnum.TEXT)
+ private String nickname;
+ /**
+ * 头像
+ */
+ @ExcelProperty("头像")
+ @PrintColumn(title = "头像", type = PrintTypeEnum.TEXT)
+ private String avatar;
+ /**
+ * 用户类型
+ */
+ @ExcelProperty("用户类型")
+ @PrintColumn(title = "用户类型", type = PrintTypeEnum.TEXT)
+ private String type;
+ /**
+ * 创建时间
+ */
+ @ExcelProperty("创建时间")
+ @PrintColumn(title = "创建时间", type = PrintTypeEnum.TEXT)
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @ExcelProperty("更新时间")
+ @PrintColumn(title = "更新时间", type = PrintTypeEnum.TEXT)
+ private Date mtime;
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocAuthorizeUserVo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocAuthorizeUserVo.java
new file mode 100644
index 0000000..bd84bf5
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocAuthorizeUserVo.java
@@ -0,0 +1,61 @@
+package com.sxpcwlkj.docAdmin.entity.vo;
+
+
+import java.io.Serial;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sxpcwlkj.common.utils.DateUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.DocAuthorizeUser;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.List;
+import java.util.Date;
+
+/**
+* 文档授权用户Vo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+
+@Data
+@AutoMapper(target = DocAuthorizeUser.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocAuthorizeUserVo extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+ /**
+ * 用户编号
+ */
+ private String uid;
+ /**
+ * 授权平台
+ */
+ private String chan;
+ /**
+ * 授权平台标识
+ */
+ private String appid;
+ /**
+ * 授权平台用户ID
+ */
+ private String openid;
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = DateUtil.DATE_TIME_PATTERN)
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = DateUtil.DATE_TIME_PATTERN)
+ private Date mtime;
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocConfigVo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocConfigVo.java
new file mode 100644
index 0000000..8248b7f
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocConfigVo.java
@@ -0,0 +1,53 @@
+package com.sxpcwlkj.docAdmin.entity.vo;
+
+
+import java.io.Serial;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sxpcwlkj.common.utils.DateUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.DocConfig;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.List;
+import java.util.Date;
+
+/**
+* 文档配置Vo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+
+@Data
+@AutoMapper(target = DocConfig.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocConfigVo extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+ /**
+ * KEY
+ */
+ private String key;
+ /**
+ * 值
+ */
+ private String value;
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = DateUtil.DATE_TIME_PATTERN)
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = DateUtil.DATE_TIME_PATTERN)
+ private Date mtime;
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocOrderVo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocOrderVo.java
new file mode 100644
index 0000000..0c5f2a0
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocOrderVo.java
@@ -0,0 +1,80 @@
+package com.sxpcwlkj.docAdmin.entity.vo;
+
+
+import java.io.Serial;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sxpcwlkj.common.utils.DateUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.DocOrder;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.List;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+* 文档订单Vo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+
+@Data
+@AutoMapper(target = DocOrder.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocOrderVo extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 订单编号
+ */
+ private String orderId;
+ /**
+ * 用户编号
+ */
+ private String uid;
+ /**
+ * 订单金额
+ */
+ private BigDecimal txnAmt;
+ /**
+ * 支付商户号
+ */
+ private String payMchid;
+ /**
+ * 支付平台流水号
+ */
+ private String payNo;
+ /**
+ * 支付超时时间
+ */
+ private String payTimeout;
+ /**
+ * 产品编号
+ */
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ private String prodName;
+ /**
+ * 产品价格
+ */
+ private BigDecimal prodPrice;
+ /**
+ * 产品类型
+ */
+ private String prodType;
+ /**
+ * 创建时间
+ */
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ private String mtime;
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocProductVo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocProductVo.java
new file mode 100644
index 0000000..d1ea595
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocProductVo.java
@@ -0,0 +1,59 @@
+package com.sxpcwlkj.docAdmin.entity.vo;
+
+
+import java.io.Serial;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sxpcwlkj.common.utils.DateUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.DocProduct;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.List;
+import java.util.Date;
+
+/**
+* 文档商品Vo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+
+@Data
+@AutoMapper(target = DocProduct.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocProductVo extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 产品编号
+ */
+ private String prodId;
+ /**
+ * 产品名称
+ */
+ private String prodName;
+ /**
+ * 销售单价
+ */
+ private String unitPrice;
+ /**
+ * 市场价格
+ */
+ private String markPrice;
+ /**
+ * 产品类型
+ */
+ private String type;
+ /**
+ * 创建时间
+ */
+ private String ctime;
+ /**
+ * 更新时间
+ */
+ private String mtime;
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocUserVo.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocUserVo.java
new file mode 100644
index 0000000..a77eb2f
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/entity/vo/DocUserVo.java
@@ -0,0 +1,57 @@
+package com.sxpcwlkj.docAdmin.entity.vo;
+
+
+import java.io.Serial;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sxpcwlkj.common.utils.DateUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.github.linpeilie.annotations.AutoMapper;
+import com.sxpcwlkj.docAdmin.entity.DocUser;
+import com.sxpcwlkj.framework.entity.BaseEntityVo;
+import com.alibaba.excel.annotation.ExcelProperty;
+import java.util.List;
+import java.util.Date;
+
+/**
+* 文档用户Vo
+*
+* @author 西决
+* @Doc MMS文档
+*/
+
+@Data
+@AutoMapper(target = DocUser.class)
+@EqualsAndHashCode(callSuper=false)
+public class DocUserVo extends BaseEntityVo{
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 用户编号
+ */
+ private String uid;
+ /**
+ * 昵称
+ */
+ private String nickname;
+ /**
+ * 头像
+ */
+ private String avatar;
+ /**
+ * 用户类型
+ */
+ private String type;
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = DateUtil.DATE_TIME_PATTERN)
+ private Date ctime;
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = DateUtil.DATE_TIME_PATTERN)
+ private Date mtime;
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocAuthorizeUserMapper.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocAuthorizeUserMapper.java
new file mode 100644
index 0000000..dec5c53
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocAuthorizeUserMapper.java
@@ -0,0 +1,19 @@
+package com.sxpcwlkj.docAdmin.mapper;
+
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.docAdmin.entity.DocAuthorizeUser;
+import com.sxpcwlkj.docAdmin.entity.vo.DocAuthorizeUserVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* 文档授权用户-Mapper
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Mapper
+@Repository
+public interface DocAuthorizeUserMapper extends BaseMapperPlus {
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocConfigMapper.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocConfigMapper.java
new file mode 100644
index 0000000..17d0fb2
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocConfigMapper.java
@@ -0,0 +1,19 @@
+package com.sxpcwlkj.docAdmin.mapper;
+
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.docAdmin.entity.DocConfig;
+import com.sxpcwlkj.docAdmin.entity.vo.DocConfigVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* 文档配置-Mapper
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Mapper
+@Repository
+public interface DocConfigMapper extends BaseMapperPlus {
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocOrderMapper.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocOrderMapper.java
new file mode 100644
index 0000000..809a9e1
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocOrderMapper.java
@@ -0,0 +1,19 @@
+package com.sxpcwlkj.docAdmin.mapper;
+
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.docAdmin.entity.DocOrder;
+import com.sxpcwlkj.docAdmin.entity.vo.DocOrderVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* 文档订单-Mapper
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Mapper
+@Repository
+public interface DocOrderMapper extends BaseMapperPlus {
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocProductMapper.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocProductMapper.java
new file mode 100644
index 0000000..667f157
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocProductMapper.java
@@ -0,0 +1,19 @@
+package com.sxpcwlkj.docAdmin.mapper;
+
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.docAdmin.entity.DocProduct;
+import com.sxpcwlkj.docAdmin.entity.vo.DocProductVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* 文档商品-Mapper
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Mapper
+@Repository
+public interface DocProductMapper extends BaseMapperPlus {
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocUserMapper.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocUserMapper.java
new file mode 100644
index 0000000..7f2a871
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/mapper/DocUserMapper.java
@@ -0,0 +1,19 @@
+package com.sxpcwlkj.docAdmin.mapper;
+
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.docAdmin.entity.DocUser;
+import com.sxpcwlkj.docAdmin.entity.vo.DocUserVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+* 文档用户-Mapper
+*
+* @author 西决
+* @Doc MMS文档
+*/
+@Mapper
+@Repository
+public interface DocUserMapper extends BaseMapperPlus {
+
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocAuthorizeUserService.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocAuthorizeUserService.java
new file mode 100644
index 0000000..b7205ae
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocAuthorizeUserService.java
@@ -0,0 +1,25 @@
+package com.sxpcwlkj.docAdmin.service;
+
+import com.sxpcwlkj.framework.sercice.BaseService;
+import com.sxpcwlkj.docAdmin.entity.DocAuthorizeUser;
+import com.sxpcwlkj.docAdmin.entity.bo.DocAuthorizeUserBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocAuthorizeUserVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocAuthorizeUserExport;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档授权用户-接口
+ *
+ * @author 西决
+ * @Doc MMS文档
+ * @describe 支持自定义扩展,已继承接口:{insert、deleteById、updateById、selectById、getByEntityListPage}(更多查看BaseService接口)
+ */
+public interface DocAuthorizeUserService extends BaseService {
+ /**
+ * 导出文档授权用户
+ * @param list 文档授权用户列表
+ * @return true:成功 false :失败
+ */
+ Boolean imports(Set list);
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocConfigService.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocConfigService.java
new file mode 100644
index 0000000..e5a781a
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocConfigService.java
@@ -0,0 +1,25 @@
+package com.sxpcwlkj.docAdmin.service;
+
+import com.sxpcwlkj.framework.sercice.BaseService;
+import com.sxpcwlkj.docAdmin.entity.DocConfig;
+import com.sxpcwlkj.docAdmin.entity.bo.DocConfigBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocConfigVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocConfigExport;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档配置-接口
+ *
+ * @author 西决
+ * @Doc MMS文档
+ * @describe 支持自定义扩展,已继承接口:{insert、deleteById、updateById、selectById、getByEntityListPage}(更多查看BaseService接口)
+ */
+public interface DocConfigService extends BaseService {
+ /**
+ * 导出文档配置
+ * @param list 文档配置列表
+ * @return true:成功 false :失败
+ */
+ Boolean imports(Set list);
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocOrderService.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocOrderService.java
new file mode 100644
index 0000000..fd5d1e3
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocOrderService.java
@@ -0,0 +1,25 @@
+package com.sxpcwlkj.docAdmin.service;
+
+import com.sxpcwlkj.framework.sercice.BaseService;
+import com.sxpcwlkj.docAdmin.entity.DocOrder;
+import com.sxpcwlkj.docAdmin.entity.bo.DocOrderBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocOrderVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocOrderExport;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档订单-接口
+ *
+ * @author 西决
+ * @Doc MMS文档
+ * @describe 支持自定义扩展,已继承接口:{insert、deleteById、updateById、selectById、getByEntityListPage}(更多查看BaseService接口)
+ */
+public interface DocOrderService extends BaseService {
+ /**
+ * 导出文档订单
+ * @param list 文档订单列表
+ * @return true:成功 false :失败
+ */
+ Boolean imports(Set list);
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocProductService.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocProductService.java
new file mode 100644
index 0000000..7d287d6
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocProductService.java
@@ -0,0 +1,25 @@
+package com.sxpcwlkj.docAdmin.service;
+
+import com.sxpcwlkj.framework.sercice.BaseService;
+import com.sxpcwlkj.docAdmin.entity.DocProduct;
+import com.sxpcwlkj.docAdmin.entity.bo.DocProductBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocProductVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocProductExport;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档商品-接口
+ *
+ * @author 西决
+ * @Doc MMS文档
+ * @describe 支持自定义扩展,已继承接口:{insert、deleteById、updateById、selectById、getByEntityListPage}(更多查看BaseService接口)
+ */
+public interface DocProductService extends BaseService {
+ /**
+ * 导出文档商品
+ * @param list 文档商品列表
+ * @return true:成功 false :失败
+ */
+ Boolean imports(Set list);
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocUserService.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocUserService.java
new file mode 100644
index 0000000..a495f6e
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/DocUserService.java
@@ -0,0 +1,25 @@
+package com.sxpcwlkj.docAdmin.service;
+
+import com.sxpcwlkj.framework.sercice.BaseService;
+import com.sxpcwlkj.docAdmin.entity.DocUser;
+import com.sxpcwlkj.docAdmin.entity.bo.DocUserBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocUserVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocUserExport;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 文档用户-接口
+ *
+ * @author 西决
+ * @Doc MMS文档
+ * @describe 支持自定义扩展,已继承接口:{insert、deleteById、updateById、selectById、getByEntityListPage}(更多查看BaseService接口)
+ */
+public interface DocUserService extends BaseService {
+ /**
+ * 导出文档用户
+ * @param list 文档用户列表
+ * @return true:成功 false :失败
+ */
+ Boolean imports(Set list);
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocAuthorizeUserServiceImpl.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocAuthorizeUserServiceImpl.java
new file mode 100644
index 0000000..2b4de0b
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocAuthorizeUserServiceImpl.java
@@ -0,0 +1,116 @@
+package com.sxpcwlkj.docAdmin.service.impl;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sxpcwlkj.common.enums.SystemCommonEnum;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.DataUtil;
+import com.sxpcwlkj.common.utils.StringUtil;
+import com.sxpcwlkj.datasource.entity.page.PageQuery;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.framework.sercice.impl.BaseServiceImpl;
+import com.sxpcwlkj.docAdmin.entity.DocAuthorizeUser;
+import com.sxpcwlkj.docAdmin.entity.bo.DocAuthorizeUserBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocAuthorizeUserVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocAuthorizeUserExport;
+import com.sxpcwlkj.docAdmin.mapper.DocAuthorizeUserMapper;
+import com.sxpcwlkj.docAdmin.service.DocAuthorizeUserService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+/**
+ * 文档授权用户-接口实现
+ *
+* @author 西决
+* @Doc MMS文档
+ */
+@Slf4j
+@Transactional
+@Service("doc_authorize_user")
+@RequiredArgsConstructor
+public class DocAuthorizeUserServiceImpl extends BaseServiceImpl implements DocAuthorizeUserService {
+
+ private final DocAuthorizeUserMapper baseMapper;
+
+ @Override
+ public BaseMapperPlus getBaseMapper() {
+ return baseMapper;
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insert(DocAuthorizeUserBo bo) {
+ try {
+ int row;
+ bo.setId(null);
+ DocAuthorizeUser obj = MapstructUtil.convert(bo, DocAuthorizeUser.class);
+ assert obj != null;
+ row = this.getBaseMapper().insert(obj);
+ bo.setId(obj.getId());
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档授权用户,insert 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteById(Serializable ids) {
+ try {
+ String[] array = DataUtil.getCatStr(ids.toString(), ",");
+ return this.getBaseMapper().deleteByIds(new ArrayList<>(List.of(array)))>0;
+ } catch (Exception e) {
+ log.error("文档授权用户,deleteById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public Boolean updateById(DocAuthorizeUserBo bo) {
+ try {
+ int row;
+ DocAuthorizeUser obj = MapstructUtil.convert(bo, DocAuthorizeUser.class);
+ row = this.getBaseMapper().updateById(obj);
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档授权用户,updateById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public DocAuthorizeUserVo selectVoById(Serializable id) {
+ return this.getBaseMapper().selectVoById(id);
+
+ }
+ @Override
+ public TableDataInfo selectListVoPage(DocAuthorizeUserBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page page = baseMapper.selectVoPage(pageQuery.build(),lqw);
+ return TableDataInfo.build(page);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(DocAuthorizeUserBo query){
+ if(query==null){
+ query=new DocAuthorizeUserBo();
+ }
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ return wrapper;
+ }
+
+ @Override
+ public Boolean imports(Set list) {
+ return true;
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocConfigServiceImpl.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocConfigServiceImpl.java
new file mode 100644
index 0000000..f4f5abb
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocConfigServiceImpl.java
@@ -0,0 +1,116 @@
+package com.sxpcwlkj.docAdmin.service.impl;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sxpcwlkj.common.enums.SystemCommonEnum;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.DataUtil;
+import com.sxpcwlkj.common.utils.StringUtil;
+import com.sxpcwlkj.datasource.entity.page.PageQuery;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.framework.sercice.impl.BaseServiceImpl;
+import com.sxpcwlkj.docAdmin.entity.DocConfig;
+import com.sxpcwlkj.docAdmin.entity.bo.DocConfigBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocConfigVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocConfigExport;
+import com.sxpcwlkj.docAdmin.mapper.DocConfigMapper;
+import com.sxpcwlkj.docAdmin.service.DocConfigService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+/**
+ * 文档配置-接口实现
+ *
+* @author 西决
+* @Doc MMS文档
+ */
+@Slf4j
+@Transactional
+@Service("doc_config")
+@RequiredArgsConstructor
+public class DocConfigServiceImpl extends BaseServiceImpl implements DocConfigService {
+
+ private final DocConfigMapper baseMapper;
+
+ @Override
+ public BaseMapperPlus getBaseMapper() {
+ return baseMapper;
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insert(DocConfigBo bo) {
+ try {
+ int row;
+ bo.setId(null);
+ DocConfig obj = MapstructUtil.convert(bo, DocConfig.class);
+ assert obj != null;
+ row = this.getBaseMapper().insert(obj);
+ bo.setId(obj.getId());
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档配置,insert 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteById(Serializable ids) {
+ try {
+ String[] array = DataUtil.getCatStr(ids.toString(), ",");
+ return this.getBaseMapper().deleteByIds(new ArrayList<>(List.of(array)))>0;
+ } catch (Exception e) {
+ log.error("文档配置,deleteById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public Boolean updateById(DocConfigBo bo) {
+ try {
+ int row;
+ DocConfig obj = MapstructUtil.convert(bo, DocConfig.class);
+ row = this.getBaseMapper().updateById(obj);
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档配置,updateById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public DocConfigVo selectVoById(Serializable id) {
+ return this.getBaseMapper().selectVoById(id);
+
+ }
+ @Override
+ public TableDataInfo selectListVoPage(DocConfigBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page page = baseMapper.selectVoPage(pageQuery.build(),lqw);
+ return TableDataInfo.build(page);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(DocConfigBo query){
+ if(query==null){
+ query=new DocConfigBo();
+ }
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ return wrapper;
+ }
+
+ @Override
+ public Boolean imports(Set list) {
+ return true;
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocOrderServiceImpl.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocOrderServiceImpl.java
new file mode 100644
index 0000000..e32b6f1
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocOrderServiceImpl.java
@@ -0,0 +1,116 @@
+package com.sxpcwlkj.docAdmin.service.impl;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sxpcwlkj.common.enums.SystemCommonEnum;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.DataUtil;
+import com.sxpcwlkj.common.utils.StringUtil;
+import com.sxpcwlkj.datasource.entity.page.PageQuery;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.framework.sercice.impl.BaseServiceImpl;
+import com.sxpcwlkj.docAdmin.entity.DocOrder;
+import com.sxpcwlkj.docAdmin.entity.bo.DocOrderBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocOrderVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocOrderExport;
+import com.sxpcwlkj.docAdmin.mapper.DocOrderMapper;
+import com.sxpcwlkj.docAdmin.service.DocOrderService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+/**
+ * 文档订单-接口实现
+ *
+* @author 西决
+* @Doc MMS文档
+ */
+@Slf4j
+@Transactional
+@Service("doc_order")
+@RequiredArgsConstructor
+public class DocOrderServiceImpl extends BaseServiceImpl implements DocOrderService {
+
+ private final DocOrderMapper baseMapper;
+
+ @Override
+ public BaseMapperPlus getBaseMapper() {
+ return baseMapper;
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insert(DocOrderBo bo) {
+ try {
+ int row;
+ bo.setOrderId(null);
+ DocOrder obj = MapstructUtil.convert(bo, DocOrder.class);
+ assert obj != null;
+ row = this.getBaseMapper().insert(obj);
+ bo.setOrderId(obj.getOrderId());
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档订单,insert 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteById(Serializable ids) {
+ try {
+ String[] array = DataUtil.getCatStr(ids.toString(), ",");
+ return this.getBaseMapper().deleteByIds(new ArrayList<>(List.of(array)))>0;
+ } catch (Exception e) {
+ log.error("文档订单,deleteById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public Boolean updateById(DocOrderBo bo) {
+ try {
+ int row;
+ DocOrder obj = MapstructUtil.convert(bo, DocOrder.class);
+ row = this.getBaseMapper().updateById(obj);
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档订单,updateById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public DocOrderVo selectVoById(Serializable id) {
+ return this.getBaseMapper().selectVoById(id);
+
+ }
+ @Override
+ public TableDataInfo selectListVoPage(DocOrderBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page page = baseMapper.selectVoPage(pageQuery.build(),lqw);
+ return TableDataInfo.build(page);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(DocOrderBo query){
+ if(query==null){
+ query=new DocOrderBo();
+ }
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ return wrapper;
+ }
+
+ @Override
+ public Boolean imports(Set list) {
+ return true;
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocProductServiceImpl.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocProductServiceImpl.java
new file mode 100644
index 0000000..f947d1f
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocProductServiceImpl.java
@@ -0,0 +1,116 @@
+package com.sxpcwlkj.docAdmin.service.impl;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sxpcwlkj.common.enums.SystemCommonEnum;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.DataUtil;
+import com.sxpcwlkj.common.utils.StringUtil;
+import com.sxpcwlkj.datasource.entity.page.PageQuery;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.framework.sercice.impl.BaseServiceImpl;
+import com.sxpcwlkj.docAdmin.entity.DocProduct;
+import com.sxpcwlkj.docAdmin.entity.bo.DocProductBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocProductVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocProductExport;
+import com.sxpcwlkj.docAdmin.mapper.DocProductMapper;
+import com.sxpcwlkj.docAdmin.service.DocProductService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+/**
+ * 文档商品-接口实现
+ *
+* @author 西决
+* @Doc MMS文档
+ */
+@Slf4j
+@Transactional
+@Service("doc_product")
+@RequiredArgsConstructor
+public class DocProductServiceImpl extends BaseServiceImpl implements DocProductService {
+
+ private final DocProductMapper baseMapper;
+
+ @Override
+ public BaseMapperPlus getBaseMapper() {
+ return baseMapper;
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insert(DocProductBo bo) {
+ try {
+ int row;
+ bo.setProdId(null);
+ DocProduct obj = MapstructUtil.convert(bo, DocProduct.class);
+ assert obj != null;
+ row = this.getBaseMapper().insert(obj);
+ bo.setProdId(obj.getProdId());
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档商品,insert 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteById(Serializable ids) {
+ try {
+ String[] array = DataUtil.getCatStr(ids.toString(), ",");
+ return this.getBaseMapper().deleteByIds(new ArrayList<>(List.of(array)))>0;
+ } catch (Exception e) {
+ log.error("文档商品,deleteById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public Boolean updateById(DocProductBo bo) {
+ try {
+ int row;
+ DocProduct obj = MapstructUtil.convert(bo, DocProduct.class);
+ row = this.getBaseMapper().updateById(obj);
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档商品,updateById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public DocProductVo selectVoById(Serializable id) {
+ return this.getBaseMapper().selectVoById(id);
+
+ }
+ @Override
+ public TableDataInfo selectListVoPage(DocProductBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page page = baseMapper.selectVoPage(pageQuery.build(),lqw);
+ return TableDataInfo.build(page);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(DocProductBo query){
+ if(query==null){
+ query=new DocProductBo();
+ }
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ return wrapper;
+ }
+
+ @Override
+ public Boolean imports(Set list) {
+ return true;
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocUserServiceImpl.java b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocUserServiceImpl.java
new file mode 100644
index 0000000..c2f241d
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/java/com/sxpcwlkj/docAdmin/service/impl/DocUserServiceImpl.java
@@ -0,0 +1,116 @@
+package com.sxpcwlkj.docAdmin.service.impl;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sxpcwlkj.common.enums.SystemCommonEnum;
+import com.sxpcwlkj.common.utils.MapstructUtil;
+import com.sxpcwlkj.common.utils.DataUtil;
+import com.sxpcwlkj.common.utils.StringUtil;
+import com.sxpcwlkj.datasource.entity.page.PageQuery;
+import com.sxpcwlkj.datasource.entity.page.TableDataInfo;
+import com.sxpcwlkj.datasource.mapper.BaseMapperPlus;
+import com.sxpcwlkj.framework.sercice.impl.BaseServiceImpl;
+import com.sxpcwlkj.docAdmin.entity.DocUser;
+import com.sxpcwlkj.docAdmin.entity.bo.DocUserBo;
+import com.sxpcwlkj.docAdmin.entity.vo.DocUserVo;
+import com.sxpcwlkj.docAdmin.entity.export.DocUserExport;
+import com.sxpcwlkj.docAdmin.mapper.DocUserMapper;
+import com.sxpcwlkj.docAdmin.service.DocUserService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.io.Serializable;
+import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Collections;
+/**
+ * 文档用户-接口实现
+ *
+* @author 西决
+* @Doc MMS文档
+ */
+@Slf4j
+@Transactional
+@Service("doc_user")
+@RequiredArgsConstructor
+public class DocUserServiceImpl extends BaseServiceImpl implements DocUserService {
+
+ private final DocUserMapper baseMapper;
+
+ @Override
+ public BaseMapperPlus getBaseMapper() {
+ return baseMapper;
+ }
+
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean insert(DocUserBo bo) {
+ try {
+ int row;
+ bo.setUid(null);
+ DocUser obj = MapstructUtil.convert(bo, DocUser.class);
+ assert obj != null;
+ row = this.getBaseMapper().insert(obj);
+ bo.setUid(obj.getUid());
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档用户,insert 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteById(Serializable ids) {
+ try {
+ String[] array = DataUtil.getCatStr(ids.toString(), ",");
+ return this.getBaseMapper().deleteByIds(new ArrayList<>(List.of(array)))>0;
+ } catch (Exception e) {
+ log.error("文档用户,deleteById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public Boolean updateById(DocUserBo bo) {
+ try {
+ int row;
+ DocUser obj = MapstructUtil.convert(bo, DocUser.class);
+ row = this.getBaseMapper().updateById(obj);
+ return row > 0;
+ } catch (Exception e) {
+ log.error("文档用户,updateById 操作失败", e);
+ throw e;
+ }
+ }
+
+ @Override
+ public DocUserVo selectVoById(Serializable id) {
+ return this.getBaseMapper().selectVoById(id);
+
+ }
+ @Override
+ public TableDataInfo selectListVoPage(DocUserBo bo, PageQuery pageQuery) {
+ LambdaQueryWrapper lqw = buildQueryWrapper(bo);
+ Page page = baseMapper.selectVoPage(pageQuery.build(),lqw);
+ return TableDataInfo.build(page);
+ }
+
+ private LambdaQueryWrapper buildQueryWrapper(DocUserBo query){
+ if(query==null){
+ query=new DocUserBo();
+ }
+ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery();
+ return wrapper;
+ }
+
+ @Override
+ public Boolean imports(Set list) {
+ return true;
+ }
+}
diff --git a/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocAuthorizeUserMapper.xml b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocAuthorizeUserMapper.xml
new file mode 100644
index 0000000..1c49fda
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocAuthorizeUserMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocConfigMapper.xml b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocConfigMapper.xml
new file mode 100644
index 0000000..b8cd0d4
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocConfigMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocOrderMapper.xml b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocOrderMapper.xml
new file mode 100644
index 0000000..9013646
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocOrderMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocProductMapper.xml b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocProductMapper.xml
new file mode 100644
index 0000000..399c828
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocProductMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocUserMapper.xml b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocUserMapper.xml
new file mode 100644
index 0000000..d29ebb7
--- /dev/null
+++ b/mms-docs/mms-doc-admin/src/main/resources/mapper/docAdmin/DocUserMapper.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mms-docs/mms-doc-api/.gitignore b/mms-docs/mms-doc-api/.gitignore
new file mode 100644
index 0000000..a030e74
--- /dev/null
+++ b/mms-docs/mms-doc-api/.gitignore
@@ -0,0 +1,103 @@
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# Eclipse & IntelliJ IDEA
+.classpath
+.settings/
+.idea
+.idea/
+*.iws
+*.iml
+*.ipr
+.settings
+.project
+.flattened-pom.xml
+
+# Maven
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+
+# Gradle
+.gradle
+.gradle/
+build/
+**/build/
+bin/
+!src/**/build/
+gradle-app.setting
+!gradle-wrapper.jar
+.gradletasknamecache
+gradle/wrapper/gradle-wrapper.properties
+
+# VS Code
+.vscode/
+
+# STS
+.apt_generated
+.factorypath
+.springBeans
+.sts4-cache
+
+# NetBeans
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+# DB
+/script/db/.back_sxpcwlkj/
+/script/db/.version_sxpcwlkj/
+!/script/db/.back_sxpcwlkj/
+
+.DS_Store
+node_modules
+/dist
+package-lock.json
+yarn.lock
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/mms-docs/mms-doc-api/Dockerfile b/mms-docs/mms-doc-api/Dockerfile
new file mode 100644
index 0000000..c5e7285
--- /dev/null
+++ b/mms-docs/mms-doc-api/Dockerfile
@@ -0,0 +1,25 @@
+#FROM findepi/graalvm:java17-native
+FROM openjdk:17.0.2-oraclelinux8
+
+MAINTAINER SXPCWLKJ
+
+RUN mkdir -p /sxpcwlkj \
+ /sxpcwlkj/mms-doc \
+ /sxpcwlkj/mms-doc/logs \
+ /sxpcwlkj/mms-doc/files
+
+WORKDIR /sxpcwlkj/mms-doc
+
+ENV SERVER_PORT=8070 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
+
+EXPOSE ${SERVER_PORT}
+
+ADD ./target/mms-doc-api.jar ./app.jar
+
+ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
+ # 应用名称 如果想区分集群节点监控 改成不同的名称即可
+ #-Dskywalking.agent.service_name=sxpcwlkj-mms \
+ #-javaagent:/sxpcwlkj/mms/skywalking/agent/skywalking-agent.jar \
+ -jar app.jar \
+ -XX:+HeapDumpOnOutOfMemoryError -Xlog:gc*,:time,tags,level -XX:+UseZGC ${JAVA_OPTS}
+
diff --git a/mms-docs/mms-doc-api/README.md b/mms-docs/mms-doc-api/README.md
new file mode 100644
index 0000000..8e9f1c4
--- /dev/null
+++ b/mms-docs/mms-doc-api/README.md
@@ -0,0 +1,284 @@
+ # 声明
+
+本项目是用于 [[VitePress 会员主题]](https://vitepress.mosong.cc/) 的用户注册/登录,支付等接口服务。
+
+> 详细文档大家请访问: 官方 [[VitePress 会员主题]](https://vitepress.mosong.cc/) 官方是Go语言服务接口工程 。
+
+> 以下是用Java扩展 ‘会员主题’ 服务接口,具体看下面的接口列表:
+
+
+# 接口列表
+
+## 一、用户信息
+
+POST /vpapi/meb/userinfo
+
+### 请求参数
+
+|名称|位置|类型|必选| 值 |
+|---|---|---|---|------------|
+|cookie|header|string| 否 | mss= |
+
+> 返回示例
+
+未登录
+
+```json
+{
+ "body":{},
+ "errmsg":"会话过期",
+ "errno":"99910",
+ "host_time":"20250528093635"
+}
+```
+已登录
+
+```json
+{
+ "body": {
+ "uid": "674fe3bb2c8b61045f6eaff6",
+ "nickname": "单先生-软件开发",
+ "avatar": "https://thirdwx.qlogo.cn/mmopen/vi_32/gWYQezqOl40WauDqyA7c5HGPQQgUQmXg0aLJVhMwdAIxD2DHs19urHkzB5CJm12vraHGT9a1lQIBNyGYBzCJ4yJuib8bctnE9rS5CH9GY3NY/132",
+ "ctime": "20241204130811",
+ "type": "vip",
+ "vip_date": "2025-05-28"
+ },
+ "errmsg": "ok",
+ "errno": "00000",
+ "host_time": "20250528095709"
+}
+```
+
+
+## 二、获取登录二维码
+
+POST /vpapi/meb/oauth-authorize
+
+### 请求参数
+
+|名称|位置|类型|必选| 值 |
+|---|---|---|---|---|
+|cookie|header|string| 否 | mss= |
+
+> 返回示例
+
+```json
+{
+ "body": {
+ "state": "68366991f2d7af56647fb645",
+ "url": "https://vpapi.mosong.cc/vpapi/meb/weixin-authorize?scope=snsapi_userinfo&state=68366991f2d7af56647fb645"
+ },
+ "errmsg": "ok",
+ "errno": "00000",
+ "host_time": "20250528094033"
+}
+```
+
+## 三、微信授权跳转
+
+GET /vpapi/meb/weixin-authorize?state=x&scope=x
+
+### 请求参数
+
+|名称|位置|类型|必选| 值 |
+|---|---|---|---|---|
+|cookie|header|string| 否 | mss= |
+|state| param |string| 是 | 68366991f2d7af56647fb645 |
+|scope| param |string| 是 | snsapi_userinfo |
+
+> 返回示例
+> '状态 1=正常 0=重试'
+
+```json
+{
+ "body": {
+ "status":1
+ },
+ "errmsg": "ok",
+ "errno": "00000",
+ "host_time": "20250528094033"
+}
+```
+
+## 四、查询扫码状态
+
+POST /vpapi/meb/oauth-polling
+
+### 请求参数
+
+|名称| 位置 |类型| 必选 | 值 |
+|---|--------|---|----|---|
+|cookie| header |string| 否 | mss= |
+|state| param |string| 是 | 68366991f2d7af56647fb645 |
+
+
+> 返回示例
+
+未扫码
+
+```json
+{
+ "body": {
+ "status": "0",
+ "token": ""
+ },
+ "errmsg": "ok",
+ "errno": "00000",
+ "host_time": "20250528094039"
+}
+```
+扫码成功
+```json
+{
+ "body": {
+ "status": "1",
+ "token": "3092447f3f26snCUIBpCShl3_kRxkaJsephz_DfFtPWtrFNCz6IiMAjYYlU1bN1YbQ9Vs_3HFCUGYzRlSoE-eKGpPmFsTBlxIjGueCALtm3wkn9grjM6UPFC_C8W5sgCAZLIdOLvLYwu"
+ },
+ "errmsg": "ok",
+ "errno": "00000",
+ "host_time": "20250528095709"
+}
+```
+
+## 五、开通会员
+
+POST /vpapi/meb/product-list
+
+### 请求参数
+
+|名称| 位置 |类型| 必选 | 值 |
+|---|--------|---|----|---------------------------------------------------------|
+|cookie| header |string| 是 | mss=3092447f3f26snCUIBpCShl3_kRxkaJsephz*************** |
+
+
+> 返回示例
+
+```json
+{
+ "body": {
+ "items": [
+ {
+ "prod_id": "240003",
+ "prod_name": "天卡会员",
+ "unit_price": 990,
+ "mark_price": 990,
+ "intro": "",
+ "buy_url": "付款二维码Url"
+ },
+ {
+ "prod_id": "240002",
+ "prod_name": "月卡会员",
+ "unit_price": 3000,
+ "mark_price": 4900,
+ "intro": "",
+ "buy_url": "付款二维码Url"
+ },
+ {
+ "prod_id": "240001",
+ "prod_name": "年费会员",
+ "unit_price": 9800,
+ "mark_price": 36500,
+ "intro": "",
+ "buy_url": "付款二维码Url"
+ }
+ ]
+ },
+ "errmsg": "ok",
+ "errno": "00000",
+ "host_time": "20250528102206"
+}
+```
+
+## 六、查询付款状态
+
+POST /vpapi/meb/product-buy-qry
+
+### 请求参数
+
+|名称| 位置 |类型| 必选 | 值 |
+|---|--------|---|----|---------------------------------------------------------|
+|cookie| header |string| 是 | mss=3092447f3f26snCUIBpCShl3_kRxkaJsephz*************** |
+|prod_id| param |string| 是 | 240002 |
+
+> 返回示例
+
+未支付
+
+```json
+{
+ "body":{},
+ "errmsg":"没有查到订单",
+ "errno":"ERROR",
+ "host_time":"20250528102227"
+}
+```
+已支付
+
+```json
+{
+ "body":{
+ "status":"paysuc"
+ },
+ "errmsg":"没有查到订单",
+ "errno":"ERROR",
+ "host_time":"20250528102227"
+}
+```
+
+## 七、查询付款状态
+
+POST /vpapi/meb/product-buy-qry
+
+### 请求参数
+
+|名称| 位置 |类型| 必选 | 值 |
+|---|--------|---|----|---------------------------------------------------------|
+|cookie| header |string| 是 | mss=3092447f3f26snCUIBpCShl3_kRxkaJsephz*************** |
+|prod_id| param |string| 是 | 240002 |
+
+> 返回示例
+
+未支付
+
+```json
+{
+ "body":{},
+ "errmsg":"没有查到订单",
+ "errno":"ERROR",
+ "host_time":"20250528102227"
+}
+```
+已支付
+
+```json
+{
+ "body":{
+ "status":"paysuc"
+ },
+ "errmsg":"没有查到订单",
+ "errno":"ERROR",
+ "host_time":"20250528102227"
+}
+```
+
+八、退出
+
+POST /vpapi/meb/logout
+
+### 请求参数
+
+|名称| 位置 |类型| 必选 | 值 |
+|---|--------|---|----|---------------------------------------------------------|
+|cookie| header |string| 是 | mss=3092447f3f26snCUIBpCShl3_kRxkaJsephz*************** |
+
+> 返回示例
+
+```json
+{
+ "body":{},
+ "errmsg":"ok",
+ "errno":"00000",
+ "host_time":"20250528104040"
+}
+
+```
\ No newline at end of file
diff --git a/mms-docs/mms-doc-api/pom.xml b/mms-docs/mms-doc-api/pom.xml
new file mode 100644
index 0000000..05599b3
--- /dev/null
+++ b/mms-docs/mms-doc-api/pom.xml
@@ -0,0 +1,81 @@
+
+
+ 4.0.0
+
+
+ mms-docs
+ com.sxpcwlkj
+ ${revision}
+
+
+ jar
+ mms-doc-api
+ 文档接口模块
+
+
+ 17
+
+
+
+
+ com.sxpcwlkj
+ mms-framework
+
+
+ com.sxpcwlkj
+ mms-oss
+
+
+
+ slf4j-reload4j
+ org.slf4j
+
+
+
+
+ com.sxpcwlkj
+ mms-sms
+
+
+ com.sxpcwlkj
+ mms-redis
+
+
+ com.sxpcwlkj
+ mms-wx
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+
+
+ repackage
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven-jar-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven-war-plugin.version}
+
+ false
+ ${project.artifactId}
+
+
+
+
+
diff --git a/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/MmsDocApiApplication.java b/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/MmsDocApiApplication.java
new file mode 100644
index 0000000..123c87a
--- /dev/null
+++ b/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/MmsDocApiApplication.java
@@ -0,0 +1,46 @@
+package com.sxpcwlkj;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.x.file.storage.spring.EnableFileStorage;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.core.env.Environment;
+
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+/**
+ * @author 西决
+ */
+@SpringBootApplication
+@Slf4j
+@EnableAspectJAutoProxy(exposeProxy = true)
+@MapperScan(basePackages = {"com.sxpcwlkj.**.mapper"})
+
+@EnableFileStorage
+public class MmsDocApiApplication {
+ public static void main(String[] args) throws UnknownHostException {
+
+ ConfigurableApplicationContext applicationContext = SpringApplication.run(MmsDocApiApplication.class, args);
+ Environment env = applicationContext.getEnvironment();
+ System.out.println("文档API端: 系统启动成功,当前环境为: " + env.getProperty("spring.profiles.active"));
+ log.info("\n----------------------------------------------------------\n\t" +
+ "Application '{}' is running! Access URLs:\n\t" +
+ "Local: \t\thttp://localhost:{}\n\t" +
+ "External: \thttp://{}:{}\n\t" +
+ "Doc: \t\t{}\n" +
+ "----------------------------------------------------------",
+ env.getProperty("sxpcwlkj.name"),
+ env.getProperty("server.port"),
+ InetAddress.getLocalHost().getHostAddress(),
+ env.getProperty("server.port"),
+ env.getProperty("sxpcwlkj.docUrl"));
+
+
+ }
+}
diff --git a/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/docApi/config/InitConfig.java b/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/docApi/config/InitConfig.java
new file mode 100644
index 0000000..b79b58c
--- /dev/null
+++ b/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/docApi/config/InitConfig.java
@@ -0,0 +1,31 @@
+package com.sxpcwlkj.docApi.config;
+
+import com.typesafe.config.Config;
+import jakarta.annotation.PostConstruct;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.event.ContextRefreshedEvent;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author 西决
+ */
+@Component
+@Slf4j
+@RequiredArgsConstructor
+public class InitConfig {
+ private final ApplicationContext applicationContext;
+ /**
+ * 初始化配置参数到缓存中
+ */
+ @PostConstruct
+ private void init() {
+ Map configMap = new HashMap<>();
+ applicationContext.publishEvent(new ContextRefreshedEvent(applicationContext));
+ log.info("项目初始化....");
+ }
+}
diff --git a/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/docApi/controller/DocUserController.java b/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/docApi/controller/DocUserController.java
new file mode 100644
index 0000000..03b94bf
--- /dev/null
+++ b/mms-docs/mms-doc-api/src/main/java/com/sxpcwlkj/docApi/controller/DocUserController.java
@@ -0,0 +1,315 @@
+package com.sxpcwlkj.docApi.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.dev33.satoken.annotation.SaIgnore;
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
+import com.github.binarywang.wxpay.bean.result.BaseWxPayResult;
+import com.ijpay.core.enums.TradeType;
+import com.ijpay.core.kit.WxPayKit;
+import com.sxpcwlkj.authority.LoginObject;
+import com.sxpcwlkj.common.code.entity.WxCodeBo;
+import com.sxpcwlkj.common.enums.DeviceEnum;
+import com.sxpcwlkj.common.enums.WxCodeStatusEnum;
+import com.sxpcwlkj.common.utils.*;
+import com.sxpcwlkj.docApi.entity.DocOrder;
+import com.sxpcwlkj.docApi.entity.DocProduct;
+import com.sxpcwlkj.docApi.entity.DocUser;
+import com.sxpcwlkj.docApi.entity.bo.MyRequest;
+import com.sxpcwlkj.docApi.entity.vo.DocOrderVo;
+import com.sxpcwlkj.docApi.entity.vo.DocUserVo;
+import com.sxpcwlkj.docApi.mapper.DocConfigMapper;
+import com.sxpcwlkj.docApi.mapper.DocOrderMapper;
+import com.sxpcwlkj.docApi.mapper.DocProductMapper;
+import com.sxpcwlkj.docApi.service.DocOrderService;
+import com.sxpcwlkj.docApi.service.DocUserService;
+import com.sxpcwlkj.docApi.utils.DocR;
+import com.sxpcwlkj.redis.RedisUtil;
+import com.sxpcwlkj.redis.constant.RedisConstant;
+import com.sxpcwlkj.wx.service.WxCodeService;
+import com.sxpcwlkj.wx.service.WxOrderService;
+import com.sxpcwlkj.wx.service.WxService;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.Duration;
+import java.util.*;
+
+/**
+ * @author shanpengnian
+ */
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/doc-api/meb/v1")
+public class DocUserController{
+
+ private final DocUserService docUserService;
+ private final DocOrderMapper docOrderMapper;
+ private final DocConfigMapper docConfigMapper;
+ private final WxCodeService wxCodeService;
+ private final DocProductMapper docProductMapper;
+ private final WxOrderService wxOrderService;
+ private final WxService wxService;
+ private final DocOrderService docOrderService;
+
+
+ /**
+ * 获取用户信息
+ * @param request 请求
+ * @param response 响应
+ * @return 用户信息
+ */
+ @SaIgnore
+ @PostMapping("/userinfo")
+ public R userinfo(HttpServletRequest request, HttpServletResponse response){
+ DocUserVo docUserVo = LoginObject.getLoginObject(DocUserVo.class);
+ if(docUserVo==null){
+ return R.fail("会话过期");
+ }
+ docOrderMapper.delete(new LambdaQueryWrapper().eq(DocOrder::getUid,docUserVo.getUid())
+ .eq(DocOrder::getStatus,0)
+ .le(DocOrder::getCtime,DateUtil.getAddDate(new Date(),0,0,0,1,0,0,0))
+ );
+ List orderVos= docOrderMapper.selectVoList(new LambdaQueryWrapper()
+ .eq(DocOrder::getUid,docUserVo.getUid())
+ .eq(DocOrder::getStatus, 1)
+ .orderByAsc(DocOrder::getCtime));
+ //根据付款时间,计算累计的VIP天数
+
+ Date expireTime=docUserVo.getCtime();
+ for (DocOrderVo docOrderVo : orderVos) {
+ //判断订单时间,是否大于 到期时间
+ if(docOrderVo.getCtime().after(expireTime)){
+ expireTime=docOrderVo.getCtime();
+ }
+ String day= docConfigMapper.selectByKey(docOrderVo.getProdId());
+ if(day==null){
+ day="0";
+ }
+ expireTime=DateUtil.getAddDate(expireTime,0,0, Integer.parseInt(day),0,0,0,0);
+ }
+
+ if(!new Date().after(expireTime)){
+ docUserVo.setType("vip");
+ docUserVo.setVip_date(expireTime);
+ }else {
+ docUserVo.setVip_date(DateUtil.getStrToDate("2025-01-01 00:00:00"));
+ docUserVo.setType("usr");
+ }
+
+ return R.success(docUserVo);
+ }
+
+
+ /**
+ * 登录二维码
+ * @return 二维码
+ */
+ @SaIgnore
+ @PostMapping("/oauth-authorize")
+ public R