From 1ff2f63ddc05988ed7d698ef93a905659365446f Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 10 九月 2025 14:52:57 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/intelligent_manufacture_wuhu

---
 serverWuhu/src/main/java/com/doumee/service/business/DemandRecordService.java             |   97 +++
 serverWuhu/src/main/java/com/doumee/core/utils/Constants.java                             |    1 
 serverWuhu/src/main/java/com/doumee/service/business/ApplicationInfoService.java          |   98 +++
 serverWuhu/src/main/java/com/doumee/dao/business/model/ApplicationInfo.java               |   95 +++
 serverWuhu/src/main/java/com/doumee/service/business/impl/ServerProviderServiceImpl.java  |  220 ++++++++
 serverWuhu/src/main/java/com/doumee/api/business/ServerProviderController.java            |  109 ++++
 serverWuhu/src/main/java/com/doumee/dao/business/DemandRecordMapper.java                  |   13 
 serverWuhu/src/main/java/com/doumee/service/business/impl/DemandRecordServiceImpl.java    |  155 +++++
 serverWuhu/src/main/java/com/doumee/dao/business/model/ServerProvider.java                |   95 +++
 serverWuhu/src/main/java/com/doumee/service/business/impl/ApplicationInfoServiceImpl.java |  196 +++++++
 serverWuhu/src/main/java/com/doumee/dao/business/ApplicationInfoMapper.java               |   13 
 serverWuhu/src/main/java/com/doumee/api/business/LabelsController.java                    |   11 
 serverWuhu/src/main/java/com/doumee/core/utils/Date.java                                  |    7 
 serverWuhu/src/main/java/com/doumee/service/business/ServerProviderService.java           |   98 +++
 serverWuhu/src/main/java/com/doumee/api/business/ApplicationInfoController.java           |  111 ++++
 serverWuhu/src/main/java/com/doumee/api/business/DemandRecordController.java              |   90 +++
 serverWuhu/src/main/java/com/doumee/dao/business/ServerProviderMapper.java                |   13 
 serverWuhu/src/main/java/com/doumee/dao/business/model/DemandRecord.java                  |   98 +++
 18 files changed, 1,520 insertions(+), 0 deletions(-)

diff --git a/serverWuhu/src/main/java/com/doumee/api/business/ApplicationInfoController.java b/serverWuhu/src/main/java/com/doumee/api/business/ApplicationInfoController.java
new file mode 100644
index 0000000..a8b8237
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/api/business/ApplicationInfoController.java
@@ -0,0 +1,111 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.ApplicationInfo;
+import com.doumee.dao.business.model.ServerProvider;
+import com.doumee.service.business.ApplicationInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Api(tags = "搴旂敤绠$悊")
+@RestController
+@RequestMapping("/business/applicationInfo")
+public class ApplicationInfoController extends BaseController {
+
+    @Autowired
+    private ApplicationInfoService applicationInfoService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:applicationinfo:create")
+    public ApiResponse create(@RequestBody ApplicationInfo applicationInfo) {
+        return ApiResponse.success(applicationInfoService.create(applicationInfo));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:applicationinfo:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        applicationInfoService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:applicationinfo:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        applicationInfoService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:applicationinfo:update")
+    public ApiResponse updateById(@RequestBody ApplicationInfo applicationInfo) {
+        applicationInfoService.updateById(applicationInfo);
+        return ApiResponse.success(null);
+    }
+
+
+    @ApiOperation("淇敼鐘舵��")
+    @PostMapping("/updateStatus")
+    @RequiresPermissions("business:applicationinfo:update")
+    public ApiResponse updateStatus(@RequestBody ApplicationInfo applicationInfo) {
+        applicationInfoService.updateStatus(applicationInfo);
+        return ApiResponse.success(null);
+    }
+
+
+
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:applicationinfo:query")
+    public ApiResponse<PageData<ApplicationInfo>> findPage (@RequestBody PageWrap<ApplicationInfo> pageWrap) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.nonNull(loginUserInfo)&&Objects.nonNull(loginUserInfo.getType())&&!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            pageWrap.getModel().setStatus(Constants.ZERO);
+        }
+        return ApiResponse.success(applicationInfoService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:applicationinfo:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<ApplicationInfo> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(ApplicationInfo.class).export(applicationInfoService.findPage(pageWrap).getRecords(), "搴旂敤绠$悊", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:applicationinfo:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(applicationInfoService.findById(id));
+    }
+}
diff --git a/serverWuhu/src/main/java/com/doumee/api/business/DemandRecordController.java b/serverWuhu/src/main/java/com/doumee/api/business/DemandRecordController.java
new file mode 100644
index 0000000..547b29e
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/api/business/DemandRecordController.java
@@ -0,0 +1,90 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.dao.business.model.DemandRecord;
+import com.doumee.service.business.DemandRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Api(tags = "闇�姹傝褰�")
+@RestController
+@RequestMapping("/business/demandRecord")
+public class DemandRecordController extends BaseController {
+
+    @Autowired
+    private DemandRecordService demandRecordService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:demandrecord:create")
+    public ApiResponse create(@RequestBody DemandRecord demandRecord) {
+        return ApiResponse.success(demandRecordService.create(demandRecord));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:demandrecord:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        demandRecordService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:demandrecord:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        demandRecordService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:demandrecord:update")
+    public ApiResponse updateById(@RequestBody DemandRecord demandRecord) {
+        demandRecordService.updateById(demandRecord);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:demandrecord:query")
+    public ApiResponse<PageData<DemandRecord>> findPage (@RequestBody PageWrap<DemandRecord> pageWrap) {
+        return ApiResponse.success(demandRecordService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:demandrecord:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<DemandRecord> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(DemandRecord.class).export(demandRecordService.findPage(pageWrap).getRecords(), "闇�姹傝褰�", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:demandrecord:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(demandRecordService.findById(id));
+    }
+}
diff --git a/serverWuhu/src/main/java/com/doumee/api/business/LabelsController.java b/serverWuhu/src/main/java/com/doumee/api/business/LabelsController.java
index 30e6b19..e6d8744 100644
--- a/serverWuhu/src/main/java/com/doumee/api/business/LabelsController.java
+++ b/serverWuhu/src/main/java/com/doumee/api/business/LabelsController.java
@@ -1,11 +1,13 @@
 package com.doumee.api.business;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.doumee.api.BaseController;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Labels;
 import com.doumee.service.business.LabelsService;
 import io.swagger.annotations.Api;
@@ -74,6 +76,15 @@
         return ApiResponse.success(labelsService.findPage(pageWrap));
     }
 
+
+    @ApiOperation("鍒楄〃鏌ヨ")
+    @PostMapping("/list")
+    public ApiResponse<List<Labels>> list (@RequestBody Labels labels) {
+        return ApiResponse.success(labelsService.findList(labels));
+    }
+
+
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:labels:exportExcel")
diff --git a/serverWuhu/src/main/java/com/doumee/api/business/ServerProviderController.java b/serverWuhu/src/main/java/com/doumee/api/business/ServerProviderController.java
new file mode 100644
index 0000000..25cf696
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/api/business/ServerProviderController.java
@@ -0,0 +1,109 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.ServerProvider;
+import com.doumee.service.business.ServerProviderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Api(tags = "鏈嶅姟鍟嗕俊鎭�")
+@RestController
+@RequestMapping("/business/serverProvider")
+public class ServerProviderController extends BaseController {
+
+    @Autowired
+    private ServerProviderService serverProviderService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:serverprovider:create")
+    public ApiResponse create(@RequestBody ServerProvider serverProvider) {
+        return ApiResponse.success(serverProviderService.create(serverProvider));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:serverprovider:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        serverProviderService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+
+    @ApiOperation("淇敼鐘舵��")
+    @PostMapping("/updateStatus")
+    @RequiresPermissions("business:serverprovider:update")
+    public ApiResponse updateStatus(@RequestBody ServerProvider serverProvider) {
+        serverProviderService.updateStatus(serverProvider);
+        return ApiResponse.success(null);
+    }
+
+
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:serverprovider:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        serverProviderService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:serverprovider:update")
+    public ApiResponse updateById(@RequestBody ServerProvider serverProvider) {
+        serverProviderService.updateById(serverProvider);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:serverprovider:query")
+    public ApiResponse<PageData<ServerProvider>> findPage (@RequestBody PageWrap<ServerProvider> pageWrap) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(Objects.nonNull(loginUserInfo)&&Objects.nonNull(loginUserInfo.getType())&&!Constants.equalsInteger(loginUserInfo.getType(),Constants.ZERO)){
+            pageWrap.getModel().setStatus(Constants.ZERO);
+        }
+        return ApiResponse.success(serverProviderService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:serverprovider:exportExcel")
+    public void exportExcel (@RequestBody PageWrap<ServerProvider> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(ServerProvider.class).export(serverProviderService.findPage(pageWrap).getRecords(), "鏈嶅姟鍟嗕俊鎭�", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:serverprovider:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(serverProviderService.findById(id));
+    }
+}
diff --git a/serverWuhu/src/main/java/com/doumee/core/utils/Constants.java b/serverWuhu/src/main/java/com/doumee/core/utils/Constants.java
index cff3b74..8b5f803 100644
--- a/serverWuhu/src/main/java/com/doumee/core/utils/Constants.java
+++ b/serverWuhu/src/main/java/com/doumee/core/utils/Constants.java
@@ -43,6 +43,7 @@
     public static final String SYSTEM_USER_FILE ="SYSTEM_USER_FILE" ;
     public static final String CREDIT_CODE_REGEX = "[0-9A-HJ-NPQRTUWXY]{2}\\d{6}[0-9A-HJ-NPQRTUWXY]{10}";
     public static final String COMPANY_USER_RULES = "COMPANY_USER_RULES";
+    public static final String LOGO_FILE ="LOGO_FILE" ;
 
     /**
      * 鍗曠偣鐧诲綍
diff --git a/serverWuhu/src/main/java/com/doumee/core/utils/Date.java b/serverWuhu/src/main/java/com/doumee/core/utils/Date.java
index 73310aa..68d5160 100644
--- a/serverWuhu/src/main/java/com/doumee/core/utils/Date.java
+++ b/serverWuhu/src/main/java/com/doumee/core/utils/Date.java
@@ -2,6 +2,7 @@
 
 import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
+import java.util.Objects;
 
 /**
  * 鏃ユ湡宸ュ叿
@@ -20,6 +21,9 @@
      * @return java.util.Date
      */
     public java.util.Date getStart (java.util.Date date) {
+        if(Objects.isNull(date)){
+            return null;
+        }
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
         calendar.set(Calendar.HOUR_OF_DAY, 0);
@@ -36,6 +40,9 @@
      * @return java.util.Date
      */
     public java.util.Date getEnd (java.util.Date date) {
+        if(Objects.isNull(date)){
+            return null;
+        }
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(date);
         calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 1);
diff --git a/serverWuhu/src/main/java/com/doumee/dao/business/ApplicationInfoMapper.java b/serverWuhu/src/main/java/com/doumee/dao/business/ApplicationInfoMapper.java
new file mode 100644
index 0000000..ef13b60
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/dao/business/ApplicationInfoMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.ApplicationInfo;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+public interface ApplicationInfoMapper extends MPJJoinMapper<ApplicationInfo> {
+
+}
diff --git a/serverWuhu/src/main/java/com/doumee/dao/business/DemandRecordMapper.java b/serverWuhu/src/main/java/com/doumee/dao/business/DemandRecordMapper.java
new file mode 100644
index 0000000..bca5118
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/dao/business/DemandRecordMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.DemandRecord;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+public interface DemandRecordMapper extends MPJJoinMapper<DemandRecord> {
+
+}
diff --git a/serverWuhu/src/main/java/com/doumee/dao/business/ServerProviderMapper.java b/serverWuhu/src/main/java/com/doumee/dao/business/ServerProviderMapper.java
new file mode 100644
index 0000000..489c0d9
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/dao/business/ServerProviderMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.ServerProvider;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+public interface ServerProviderMapper extends MPJJoinMapper<ServerProvider> {
+
+}
diff --git a/serverWuhu/src/main/java/com/doumee/dao/business/model/ApplicationInfo.java b/serverWuhu/src/main/java/com/doumee/dao/business/model/ApplicationInfo.java
new file mode 100644
index 0000000..3df6317
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/dao/business/model/ApplicationInfo.java
@@ -0,0 +1,95 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 搴旂敤绠$悊
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Data
+@ApiModel("搴旂敤绠$悊")
+@TableName("`application_info`")
+public class ApplicationInfo {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name="涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "绂佸惎鐢ㄧ姸鎬侊細0=鍚敤锛�1=绂佺敤", example = "1")
+    @ExcelColumn(name="绂佸惎鐢ㄧ姸鎬侊細0=鍚敤锛�1=绂佺敤")
+    private Integer status;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鏈嶅姟鍟嗕富閿� server_provider", example = "1")
+    @ExcelColumn(name="鏈嶅姟鍟嗕富閿� server_provider")
+    private Integer serverId;
+
+    @ApiModelProperty(value = "搴旂敤鍚嶇О")
+    @ExcelColumn(name="搴旂敤鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "LOGO鍥剧墖")
+    @ExcelColumn(name="LOGO鍥剧墖")
+    private String logo;
+
+    @ApiModelProperty(value = "鏍囩淇℃伅锛堝涓互鑻辨枃,鍒嗗壊锛�")
+    @ExcelColumn(name="鏍囩淇℃伅锛堝涓互鑻辨枃,鍒嗗壊锛�")
+    private String lables;
+
+    @ApiModelProperty(value = "绠�浠嬶紙澶氳鏂囨湰锛�")
+    @ExcelColumn(name="绠�浠嬶紙澶氳鏂囨湰锛�")
+    private String introduction;
+
+    @ApiModelProperty(value = "璇︽儏锛堝瘜鏂囨湰锛�")
+    @ExcelColumn(name="璇︽儏锛堝瘜鏂囨湰锛�")
+    private String details;
+
+    @ApiModelProperty(value = "鏈嶅姟鍟嗗悕绉�", example = "1")
+    @TableField(exist = false)
+    private String serverName;
+
+    @ApiModelProperty(value = "logo鍏ㄨ矾寰�", example = "1")
+    @TableField(exist = false)
+    private String fullLog;
+
+    @ApiModelProperty(value = "搴旂敤淇℃伅", example = "1")
+    @TableField(exist = false)
+    private String applicationInfo;
+
+}
diff --git a/serverWuhu/src/main/java/com/doumee/dao/business/model/DemandRecord.java b/serverWuhu/src/main/java/com/doumee/dao/business/model/DemandRecord.java
new file mode 100644
index 0000000..5675ebb
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/dao/business/model/DemandRecord.java
@@ -0,0 +1,98 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 闇�姹傝褰�
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Data
+@ApiModel("闇�姹傝褰�")
+@TableName("`demand_record`")
+public class DemandRecord {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鎻愪氦鏃堕棿",width = 20,index = 7,dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "绂佸惎鐢ㄧ姸鎬侊細0=鍚敤锛�1=绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "搴旂敤涓婚敭 application_info", example = "1")
+    private Integer applicationId;
+
+    @ApiModelProperty(value = "浼佷笟涓婚敭 company", example = "1")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "鑱旂郴浜哄鍚�")
+    @ExcelColumn(name="鑱旂郴浜�",width = 20,index = 4)
+    private String linkName;
+
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
+    @ExcelColumn(name="鑱旂郴鐢佃瘽",width = 20,index = 5)
+    private String linkPhone;
+
+    @ApiModelProperty(value = "鎻忚堪")
+    @ExcelColumn(name="闇�姹傛弿杩�",width = 30,index = 6)
+    private String details;
+
+    @ApiModelProperty(value = "浼佷笟鍚嶇О", example = "1")
+    @ExcelColumn(name="闇�姹備紒涓�",width = 20,index = 3)
+    @TableField(exist = false)
+    private String companyName;
+
+    @ApiModelProperty(value = "鏈嶅姟鍟嗗悕绉�", example = "1")
+    @ExcelColumn(name="鏈嶅姟鍟嗗悕绉�",width = 20,index = 1)
+    @TableField(exist = false)
+    private String serverName;
+
+    @ApiModelProperty(value = "搴旂敤鍚嶇О", example = "1")
+    @ExcelColumn(name="搴旂敤鍚嶇О",width = 20,index = 2)
+    @TableField(exist = false)
+    private String applicationName;
+
+    @ApiModelProperty(value = "搴旂敤LOGO", example = "1")
+    @TableField(exist = false)
+    private String applicationLogo;
+
+    @ApiModelProperty(value = "鎻愪氦鏌ヨ鏃堕棿", example = "1")
+    @TableField(exist = false)
+    private Date startDate;
+
+    @ApiModelProperty(value = "鎻愪氦鏌ヨ鏃堕棿", example = "1")
+    @TableField(exist = false)
+    private Date endDate;
+
+
+}
diff --git a/serverWuhu/src/main/java/com/doumee/dao/business/model/ServerProvider.java b/serverWuhu/src/main/java/com/doumee/dao/business/model/ServerProvider.java
new file mode 100644
index 0000000..870cd6d
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/dao/business/model/ServerProvider.java
@@ -0,0 +1,95 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 鏈嶅姟鍟嗕俊鎭�
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Data
+@ApiModel("鏈嶅姟鍟嗕俊鎭�")
+@TableName("`server_provider`")
+public class ServerProvider {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name="涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @ExcelColumn(name="鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createDate;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+    private Integer editor;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @ExcelColumn(name="鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date editDate;
+
+    @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+    @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+    private Integer isdeleted;
+
+    @ApiModelProperty(value = "绂佸惎鐢ㄧ姸鎬侊細0=鍚敤锛�1=绂佺敤", example = "1")
+    @ExcelColumn(name="绂佸惎鐢ㄧ姸鎬侊細0=鍚敤锛�1=绂佺敤")
+    private Integer status;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name="澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍚嶇О锛堜笉鍙噸澶嶏級")
+    @ExcelColumn(name="鍚嶇О锛堜笉鍙噸澶嶏級")
+    private String name;
+
+    @ApiModelProperty(value = "LOGO鍥剧墖")
+    @ExcelColumn(name="LOGO鍥剧墖")
+    private String logo;
+
+    @ApiModelProperty(value = "鎵�灞炶涓氾紙鍏宠仈labels琛級", example = "1")
+    @ExcelColumn(name="鎵�灞炶涓氾紙鍏宠仈labels琛級")
+    private Integer industryId;
+
+    @ApiModelProperty(value = "鏈嶅姟鏄熺骇 1 - 5", example = "1")
+    @ExcelColumn(name="鏈嶅姟鏄熺骇 1 - 5")
+    private Integer starLevel;
+
+    @ApiModelProperty(value = "鑱旂郴浜哄鍚�")
+    @ExcelColumn(name="鑱旂郴浜哄鍚�")
+    private String linkName;
+
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
+    @ExcelColumn(name="鑱旂郴浜虹數璇�")
+    private String linkPhone;
+
+    @ApiModelProperty(value = "绠�浠嬶紙澶氳鏂囨湰锛�")
+    @ExcelColumn(name="绠�浠嬶紙澶氳鏂囨湰锛�")
+    private String introduction;
+
+    @ApiModelProperty(value = "鎵�灞炶涓氬悕绉�", example = "1")
+    @TableField(exist = false)
+    private String industryName;
+
+
+    @ApiModelProperty(value = "logo鍏ㄨ矾寰�", example = "1")
+    @TableField(exist = false)
+    private String fullLog;
+}
diff --git a/serverWuhu/src/main/java/com/doumee/service/business/ApplicationInfoService.java b/serverWuhu/src/main/java/com/doumee/service/business/ApplicationInfoService.java
new file mode 100644
index 0000000..911b6ac
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/service/business/ApplicationInfoService.java
@@ -0,0 +1,98 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.ApplicationInfo;
+import java.util.List;
+
+/**
+ * 搴旂敤绠$悊Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+public interface ApplicationInfoService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param applicationInfo 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(ApplicationInfo applicationInfo);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param applicationInfo 瀹炰綋瀵硅薄
+     */
+    void delete(ApplicationInfo applicationInfo);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param applicationInfo 瀹炰綋瀵硅薄
+     */
+    void updateById(ApplicationInfo applicationInfo);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param applicationInfos 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<ApplicationInfo> applicationInfos);
+
+    void updateStatus(ApplicationInfo applicationInfo);
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return ApplicationInfo
+     */
+    ApplicationInfo findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param applicationInfo 瀹炰綋瀵硅薄
+     * @return ApplicationInfo
+     */
+    ApplicationInfo findOne(ApplicationInfo applicationInfo);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param applicationInfo 瀹炰綋瀵硅薄
+     * @return List<ApplicationInfo>
+     */
+    List<ApplicationInfo> findList(ApplicationInfo applicationInfo);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<ApplicationInfo>
+     */
+    PageData<ApplicationInfo> findPage(PageWrap<ApplicationInfo> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param applicationInfo 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(ApplicationInfo applicationInfo);
+}
diff --git a/serverWuhu/src/main/java/com/doumee/service/business/DemandRecordService.java b/serverWuhu/src/main/java/com/doumee/service/business/DemandRecordService.java
new file mode 100644
index 0000000..7b32af0
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/service/business/DemandRecordService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.DemandRecord;
+import java.util.List;
+
+/**
+ * 闇�姹傝褰昐ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+public interface DemandRecordService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param demandRecord 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(DemandRecord demandRecord);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param demandRecord 瀹炰綋瀵硅薄
+     */
+    void delete(DemandRecord demandRecord);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param demandRecord 瀹炰綋瀵硅薄
+     */
+    void updateById(DemandRecord demandRecord);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param demandRecords 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<DemandRecord> demandRecords);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return DemandRecord
+     */
+    DemandRecord findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param demandRecord 瀹炰綋瀵硅薄
+     * @return DemandRecord
+     */
+    DemandRecord findOne(DemandRecord demandRecord);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param demandRecord 瀹炰綋瀵硅薄
+     * @return List<DemandRecord>
+     */
+    List<DemandRecord> findList(DemandRecord demandRecord);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<DemandRecord>
+     */
+    PageData<DemandRecord> findPage(PageWrap<DemandRecord> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param demandRecord 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(DemandRecord demandRecord);
+}
diff --git a/serverWuhu/src/main/java/com/doumee/service/business/ServerProviderService.java b/serverWuhu/src/main/java/com/doumee/service/business/ServerProviderService.java
new file mode 100644
index 0000000..dd89294
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/service/business/ServerProviderService.java
@@ -0,0 +1,98 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.ServerProvider;
+import java.util.List;
+
+/**
+ * 鏈嶅姟鍟嗕俊鎭疭ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+public interface ServerProviderService {
+
+    /**
+     * 鍒涘缓
+     * 
+     * @param serverProvider 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(ServerProvider serverProvider);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param serverProvider 瀹炰綋瀵硅薄
+     */
+    void delete(ServerProvider serverProvider);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    void updateStatus(ServerProvider serverProvider);
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param serverProvider 瀹炰綋瀵硅薄
+     */
+    void updateById(ServerProvider serverProvider);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param serverProviders 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<ServerProvider> serverProviders);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return ServerProvider
+     */
+    ServerProvider findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param serverProvider 瀹炰綋瀵硅薄
+     * @return ServerProvider
+     */
+    ServerProvider findOne(ServerProvider serverProvider);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param serverProvider 瀹炰綋瀵硅薄
+     * @return List<ServerProvider>
+     */
+    List<ServerProvider> findList(ServerProvider serverProvider);
+  
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<ServerProvider>
+     */
+    PageData<ServerProvider> findPage(PageWrap<ServerProvider> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param serverProvider 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(ServerProvider serverProvider);
+}
diff --git a/serverWuhu/src/main/java/com/doumee/service/business/impl/ApplicationInfoServiceImpl.java b/serverWuhu/src/main/java/com/doumee/service/business/impl/ApplicationInfoServiceImpl.java
new file mode 100644
index 0000000..e7ca3ae
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/service/business/impl/ApplicationInfoServiceImpl.java
@@ -0,0 +1,196 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.ApplicationInfoMapper;
+import com.doumee.dao.business.ServerProviderMapper;
+import com.doumee.dao.business.model.ApplicationInfo;
+import com.doumee.dao.business.model.Labels;
+import com.doumee.dao.business.model.ServerProvider;
+import com.doumee.service.business.ApplicationInfoService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.Model;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 搴旂敤绠$悊Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Service
+public class ApplicationInfoServiceImpl implements ApplicationInfoService {
+
+    @Autowired
+    private ApplicationInfoMapper applicationInfoMapper;
+
+    @Autowired
+    private ServerProviderMapper serverProviderMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+
+    @Override
+    public Integer create(ApplicationInfo applicationInfo) {
+        if(Objects.isNull(applicationInfo)
+                || Objects.isNull(applicationInfo.getServerId())
+                || StringUtils.isBlank(applicationInfo.getName())
+                || StringUtils.isBlank(applicationInfo.getLogo())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(serverProviderMapper.selectCount(new QueryWrapper<ServerProvider>().lambda().eq(ServerProvider::getIsdeleted, Constants.ZERO)
+                .eq(ServerProvider::getId,applicationInfo.getServerId()))<=Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈嶅姟鍟嗕俊鎭凡鍒犻櫎锛�");
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        applicationInfo.setCreateDate(new Date());
+        applicationInfo.setCreator(loginUserInfo.getId());
+        applicationInfo.setEditor(applicationInfo.getCreator());
+        applicationInfo.setEditDate(applicationInfo.getCreateDate());
+        applicationInfo.setStatus(Constants.ZERO);
+        applicationInfo.setIsdeleted(Constants.ZERO);
+        applicationInfoMapper.insert(applicationInfo);
+        return applicationInfo.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        applicationInfoMapper.update(null,new UpdateWrapper<ApplicationInfo>().lambda()
+                .set(ApplicationInfo::getIsdeleted,Constants.ONE).eq(ApplicationInfo::getId,id));
+    }
+
+    @Override
+    public void delete(ApplicationInfo applicationInfo) {
+        UpdateWrapper<ApplicationInfo> deleteWrapper = new UpdateWrapper<>(applicationInfo);
+        applicationInfoMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        applicationInfoMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(ApplicationInfo applicationInfo) {
+        if(Objects.isNull(applicationInfo)
+                || Objects.isNull(applicationInfo.getId())
+                || Objects.isNull(applicationInfo.getServerId())
+                || StringUtils.isBlank(applicationInfo.getName())
+                || StringUtils.isBlank(applicationInfo.getLogo())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        applicationInfo.setEditor(loginUserInfo.getId());
+        applicationInfo.setEditDate(new Date());
+        applicationInfoMapper.updateById(applicationInfo);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<ApplicationInfo> applicationInfos) {
+        if (CollectionUtils.isEmpty(applicationInfos)) {
+            return;
+        }
+        for (ApplicationInfo applicationInfo: applicationInfos) {
+            this.updateById(applicationInfo);
+        }
+    }
+
+    @Override
+    public void updateStatus(ApplicationInfo applicationInfo) {
+        if(Objects.isNull(applicationInfo)
+                || Objects.isNull(applicationInfo.getId())
+                || Objects.isNull(applicationInfo.getStatus())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        applicationInfoMapper.update(null,new UpdateWrapper<ApplicationInfo>().lambda().set(ApplicationInfo::getStatus,applicationInfo.getStatus())
+                .eq(ApplicationInfo::getId,applicationInfo.getId()));
+    }
+
+
+
+
+    @Override
+    public ApplicationInfo findById(Integer id) {
+        MPJLambdaWrapper<ApplicationInfo> queryWrapper = new MPJLambdaWrapper<ApplicationInfo>();
+        queryWrapper.selectAll(ApplicationInfo.class)
+                .selectAs(ServerProvider::getName,ApplicationInfo::getServerName)
+                .leftJoin(ServerProvider.class,ServerProvider::getId,ApplicationInfo::getServerId)
+                .eq(ApplicationInfo::getId,id)
+                .orderByDesc(ApplicationInfo::getId)
+        ;
+        String prefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.LOGO_FILE).getCode();
+        ApplicationInfo applicationInfo = applicationInfoMapper.selectJoinOne(ApplicationInfo.class,queryWrapper);
+        if(Objects.isNull(applicationInfo)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        applicationInfo.setFullLog(prefix + applicationInfo.getLogo());
+        return applicationInfo;
+    }
+
+    @Override
+    public ApplicationInfo findOne(ApplicationInfo applicationInfo) {
+        QueryWrapper<ApplicationInfo> wrapper = new QueryWrapper<>(applicationInfo);
+        return applicationInfoMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<ApplicationInfo> findList(ApplicationInfo applicationInfo) {
+        QueryWrapper<ApplicationInfo> wrapper = new QueryWrapper<>(applicationInfo);
+        return applicationInfoMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<ApplicationInfo> findPage(PageWrap<ApplicationInfo> pageWrap) {
+        IPage<ApplicationInfo> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<ApplicationInfo> queryWrapper = new MPJLambdaWrapper<ApplicationInfo>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        ApplicationInfo model = pageWrap.getModel();
+        queryWrapper.selectAll(ApplicationInfo.class)
+                .selectAs(ServerProvider::getName,ApplicationInfo::getServerName)
+                .leftJoin(ServerProvider.class,ServerProvider::getId,ApplicationInfo::getServerId)
+                .eq(ApplicationInfo::getIsdeleted,Constants.ZERO)
+                .eq(Objects.nonNull(model.getStatus()),ApplicationInfo::getStatus,model.getStatus())
+                .like(StringUtils.isNotBlank(model.getName()),ApplicationInfo::getName,model.getName())
+                .like(StringUtils.isNotBlank(model.getServerName()),ServerProvider::getName,model.getServerName())
+                .and(StringUtils.isNotBlank(model.getApplicationInfo()),i->i.like(ApplicationInfo::getName,model.getApplicationInfo()).or().like(ServerProvider::getName,model.getApplicationInfo()))
+                .orderByDesc(ServerProvider::getId)
+        ;
+        IPage<ApplicationInfo> iPage = applicationInfoMapper.selectJoinPage(page, ApplicationInfo.class ,queryWrapper);
+        String prefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.LOGO_FILE).getCode();
+        iPage.getRecords().forEach(i->{
+            i.setFullLog(prefix + i.getLogo());
+        });
+        return PageData.from(iPage);
+    }
+
+
+    @Override
+    public long count(ApplicationInfo applicationInfo) {
+        QueryWrapper<ApplicationInfo> wrapper = new QueryWrapper<>(applicationInfo);
+        return applicationInfoMapper.selectCount(wrapper);
+    }
+}
diff --git a/serverWuhu/src/main/java/com/doumee/service/business/impl/DemandRecordServiceImpl.java b/serverWuhu/src/main/java/com/doumee/service/business/impl/DemandRecordServiceImpl.java
new file mode 100644
index 0000000..d8780d2
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/service/business/impl/DemandRecordServiceImpl.java
@@ -0,0 +1,155 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.DemandRecordMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.service.business.DemandRecordService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 闇�姹傝褰昐ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Service
+public class DemandRecordServiceImpl implements DemandRecordService {
+
+    @Autowired
+    private DemandRecordMapper demandRecordMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Override
+    public Integer create(DemandRecord demandRecord) {
+        if(Objects.isNull(demandRecord)
+                || Objects.isNull(demandRecord.getApplicationId())
+                || StringUtils.isEmpty(demandRecord.getLinkName())
+                || StringUtils.isEmpty(demandRecord.getLinkPhone())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!(Constants.equalsInteger(loginUserInfo.getType(),Constants.ONE)||Constants.equalsInteger(loginUserInfo.getType(),Constants.TWO))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
+        }
+        demandRecord.setCreateDate(new Date());
+        demandRecord.setCreator(loginUserInfo.getId());
+        demandRecord.setEditor(demandRecord.getCreator());
+        demandRecord.setEditDate(demandRecord.getCreateDate());
+        demandRecord.setStatus(Constants.ZERO);
+        demandRecord.setIsdeleted(Constants.ZERO);
+        demandRecord.setCompanyId(loginUserInfo.getCompanyId());
+        demandRecordMapper.insert(demandRecord);
+        return demandRecord.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        demandRecordMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(DemandRecord demandRecord) {
+        UpdateWrapper<DemandRecord> deleteWrapper = new UpdateWrapper<>(demandRecord);
+        demandRecordMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        demandRecordMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(DemandRecord demandRecord) {
+        demandRecordMapper.updateById(demandRecord);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<DemandRecord> demandRecords) {
+        if (CollectionUtils.isEmpty(demandRecords)) {
+            return;
+        }
+        for (DemandRecord demandRecord: demandRecords) {
+            this.updateById(demandRecord);
+        }
+    }
+
+    @Override
+    public DemandRecord findById(Integer id) {
+        return demandRecordMapper.selectById(id);
+    }
+
+    @Override
+    public DemandRecord findOne(DemandRecord demandRecord) {
+        QueryWrapper<DemandRecord> wrapper = new QueryWrapper<>(demandRecord);
+        return demandRecordMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<DemandRecord> findList(DemandRecord demandRecord) {
+        QueryWrapper<DemandRecord> wrapper = new QueryWrapper<>(demandRecord);
+        return demandRecordMapper.selectList(wrapper);
+    }
+  
+    @Override
+    public PageData<DemandRecord> findPage(PageWrap<DemandRecord> pageWrap) {
+        IPage<DemandRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<DemandRecord> queryWrapper = new MPJLambdaWrapper<DemandRecord>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        DemandRecord model = pageWrap.getModel();
+        queryWrapper.selectAll(DemandRecord.class)
+                .selectAs(Company::getName,DemandRecord::getCompanyName)
+                .selectAs(ServerProvider::getName,DemandRecord::getServerName)
+                .selectAs(ApplicationInfo::getName,DemandRecord::getApplicationName)
+                .selectAs(ApplicationInfo::getLogo,DemandRecord::getApplicationLogo)
+                .leftJoin(Company.class,Company::getId,DemandRecord::getCompanyId)
+                .leftJoin(ApplicationInfo.class,ApplicationInfo::getId,DemandRecord::getApplicationId)
+                .leftJoin(ServerProvider.class,ServerProvider::getId,ApplicationInfo::getServerId)
+                .eq(ServerProvider::getIsdeleted,Constants.ZERO)
+                .and(org.apache.commons.lang3.StringUtils.isNotBlank(model.getLinkName())
+                        , i->i.like(DemandRecord::getLinkName,model.getLinkName()).or().like(DemandRecord::getLinkPhone,model.getLinkName()))
+                .like(org.apache.commons.lang3.StringUtils.isNotBlank(model.getApplicationName()),ApplicationInfo::getName,model.getApplicationName())
+                .ge(Objects.nonNull(model.getStartDate()),DemandRecord::getCreateDate, Utils.Date.getStart(model.getStartDate()))
+                .le(Objects.nonNull(model.getEndDate()),DemandRecord::getCreateDate, Utils.Date.getEnd(model.getEndDate()))
+                .orderByDesc(DemandRecord::getId)
+        ;
+        IPage<DemandRecord> iPage = demandRecordMapper.selectJoinPage( page, DemandRecord.class,  queryWrapper);
+        String prefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.LOGO_FILE).getCode();
+        for (DemandRecord demandRecord:iPage.getRecords()) {
+            if(org.apache.commons.lang3.StringUtils.isNotBlank(demandRecord.getApplicationLogo())){
+                demandRecord.setApplicationLogo(prefix + demandRecord.getApplicationLogo());
+            }
+        }
+        return PageData.from(iPage);
+    }
+
+    @Override
+    public long count(DemandRecord demandRecord) {
+        QueryWrapper<DemandRecord> wrapper = new QueryWrapper<>(demandRecord);
+        return demandRecordMapper.selectCount(wrapper);
+    }
+}
diff --git a/serverWuhu/src/main/java/com/doumee/service/business/impl/ServerProviderServiceImpl.java b/serverWuhu/src/main/java/com/doumee/service/business/impl/ServerProviderServiceImpl.java
new file mode 100644
index 0000000..5087a27
--- /dev/null
+++ b/serverWuhu/src/main/java/com/doumee/service/business/impl/ServerProviderServiceImpl.java
@@ -0,0 +1,220 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.ApplicationInfoMapper;
+import com.doumee.dao.business.LabelsMapper;
+import com.doumee.dao.business.ServerProviderMapper;
+import com.doumee.dao.business.model.ApplicationInfo;
+import com.doumee.dao.business.model.Labels;
+import com.doumee.dao.business.model.ServerProvider;
+import com.doumee.service.business.ServerProviderService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鏈嶅姟鍟嗕俊鎭疭ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/09/08 10:24
+ */
+@Service
+public class ServerProviderServiceImpl implements ServerProviderService {
+
+    @Autowired
+    private ServerProviderMapper serverProviderMapper;
+
+    @Autowired
+    private LabelsMapper labelsMapper;
+
+    @Autowired
+    private ApplicationInfoMapper applicationInfoMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Override
+    public Integer create(ServerProvider serverProvider) {
+        if(Objects.isNull(serverProvider)
+                || StringUtils.isBlank(serverProvider.getName())
+                || StringUtils.isBlank(serverProvider.getLogo())
+//            || Objects.isNull(serverProvider.getStarLevel())
+//            || Objects.isNull(serverProvider.getIndustryId())
+//            || StringUtils.isBlank(serverProvider.getLinkPhone())
+//            || StringUtils.isBlank(serverProvider.getLinkName())
+//            || StringUtils.isBlank(serverProvider.getIntroduction())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        //鏌ヨ鍚嶇О鏄惁閲嶅
+        if(serverProviderMapper.selectCount(new QueryWrapper<ServerProvider>().lambda().eq(ServerProvider::getIsdeleted,Constants.ZERO).eq(ServerProvider::getName,serverProvider.getName()))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈嶅姟鍟嗗悕绉癧 "+serverProvider.getName()+" ]宸插瓨鍦紒");
+        }
+        if(Objects.nonNull(serverProvider.getIndustryId())&&Objects.isNull(labelsMapper.selectById(serverProvider.getIndustryId()))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"琛屼笟淇℃伅閿欒");
+        };
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        serverProvider.setCreateDate(new Date());
+        serverProvider.setCreator(loginUserInfo.getId());
+        serverProvider.setEditor(serverProvider.getCreator());
+        serverProvider.setEditDate(serverProvider.getCreateDate());
+        serverProvider.setStatus(Constants.ZERO);
+        serverProvider.setIsdeleted(Constants.ZERO);
+        serverProviderMapper.insert(serverProvider);
+        return serverProvider.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        if(applicationInfoMapper.selectCount(new QueryWrapper<ApplicationInfo>().lambda()
+                .eq(ApplicationInfo::getIsdeleted,Constants.ZERO).eq(ApplicationInfo::getServerId,id)
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈嶅姟鍟嗕娇鐢ㄤ腑锛屾棤娉曡繘琛屽垹闄�");
+        }
+        serverProviderMapper.update(null,new UpdateWrapper<ServerProvider>().lambda()
+                .set(ServerProvider::getIsdeleted,Constants.ONE).eq(ServerProvider::getId,id));
+    }
+
+    @Override
+    public void delete(ServerProvider serverProvider) {
+        UpdateWrapper<ServerProvider> deleteWrapper = new UpdateWrapper<>(serverProvider);
+        serverProviderMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        serverProviderMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateStatus(ServerProvider serverProvider) {
+        if(Objects.isNull(serverProvider)
+                || Objects.isNull(serverProvider.getId())
+                || Objects.isNull(serverProvider.getStatus())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        serverProviderMapper.update(null,new UpdateWrapper<ServerProvider>().lambda().set(ServerProvider::getStatus,serverProvider.getStatus()).eq(ServerProvider::getId,serverProvider.getId()));
+    }
+
+
+
+    @Override
+    public void updateById(ServerProvider serverProvider) {
+        if(Objects.isNull(serverProvider)
+                || Objects.isNull(serverProvider.getId())
+                || StringUtils.isBlank(serverProvider.getName())
+                || StringUtils.isBlank(serverProvider.getLogo())
+//                || Objects.isNull(serverProvider.getStarLevel())
+//                || Objects.isNull(serverProvider.getIndustryId())
+//                || StringUtils.isBlank(serverProvider.getLinkPhone())
+//                || StringUtils.isBlank(serverProvider.getLinkName())
+//                || StringUtils.isBlank(serverProvider.getIntroduction())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        //鏌ヨ鍚嶇О鏄惁閲嶅
+        if(serverProviderMapper.selectCount(new QueryWrapper<ServerProvider>().lambda().ne(ServerProvider::getId,serverProvider.getId())
+                .eq(ServerProvider::getIsdeleted,Constants.ZERO).eq(ServerProvider::getName,serverProvider.getName()))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈嶅姟鍟嗗悕绉癧 "+serverProvider.getName()+" ]宸插瓨鍦紒");
+        }
+        if(Objects.nonNull(serverProvider.getIndustryId())&&Objects.isNull(labelsMapper.selectById(serverProvider.getIndustryId()))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"琛屼笟淇℃伅閿欒");
+        };
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        serverProvider.setEditor(loginUserInfo.getId());
+        serverProvider.setEditDate(new Date());
+        serverProviderMapper.updateById(serverProvider);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<ServerProvider> serverProviders) {
+        if (CollectionUtils.isEmpty(serverProviders)) {
+            return;
+        }
+        for (ServerProvider serverProvider: serverProviders) {
+            this.updateById(serverProvider);
+        }
+    }
+
+    @Override
+    public ServerProvider findById(Integer id) {
+        MPJLambdaWrapper<ServerProvider> queryWrapper = new MPJLambdaWrapper<ServerProvider>();
+        queryWrapper.selectAll(ServerProvider.class)
+                .selectAs(Labels::getName,ServerProvider::getIndustryName)
+                .leftJoin(Labels.class,Labels::getId,ServerProvider::getIndustryId)
+                .eq(ServerProvider::getId,id)
+                .orderByDesc(ServerProvider::getId)
+        ;
+        String prefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.LOGO_FILE).getCode();
+        ServerProvider serverProvider = serverProviderMapper.selectJoinOne(ServerProvider.class,queryWrapper);
+        if(Objects.isNull(serverProvider)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        serverProvider.setFullLog(prefix + serverProvider.getLogo());
+        return serverProvider;
+    }
+
+    @Override
+    public ServerProvider findOne(ServerProvider serverProvider) {
+        QueryWrapper<ServerProvider> wrapper = new QueryWrapper<>(serverProvider);
+        return serverProviderMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<ServerProvider> findList(ServerProvider serverProvider) {
+        QueryWrapper<ServerProvider> wrapper = new QueryWrapper<>(serverProvider);
+        wrapper.lambda().eq(ServerProvider::getIsdeleted,Constants.ZERO);
+        wrapper.lambda().eq(ServerProvider::getStatus,Constants.ZERO);
+        return serverProviderMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<ServerProvider> findPage(PageWrap<ServerProvider> pageWrap) {
+        IPage<ServerProvider> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<ServerProvider> queryWrapper = new MPJLambdaWrapper<ServerProvider>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        ServerProvider model = pageWrap.getModel();
+        queryWrapper.selectAll(ServerProvider.class)
+                .selectAs(Labels::getName,ServerProvider::getIndustryName)
+                .leftJoin(Labels.class,Labels::getId,ServerProvider::getIndustryId)
+                .eq(ServerProvider::getIsdeleted,Constants.ZERO)
+                .and(StringUtils.isNotBlank(model.getName()),i->i.like(ServerProvider::getName,model.getName()))
+                .eq(Objects.nonNull(model.getStatus()),ServerProvider::getStatus,model.getStatus())
+                .eq(Objects.nonNull(model.getIndustryId()),ServerProvider::getIndustryId,model.getIndustryId())
+                .orderByDesc(ServerProvider::getId)
+        ;
+        IPage<ServerProvider> serverProviderIPage = serverProviderMapper.selectJoinPage(page, ServerProvider.class ,queryWrapper);
+        String prefix = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.LOGO_FILE).getCode();
+        serverProviderIPage.getRecords().forEach(i->{
+            i.setFullLog(prefix + i.getLogo());
+        });
+        return PageData.from(serverProviderIPage);
+    }
+
+    @Override
+    public long count(ServerProvider serverProvider) {
+        QueryWrapper<ServerProvider> wrapper = new QueryWrapper<>(serverProvider);
+        return serverProviderMapper.selectCount(wrapper);
+    }
+}

--
Gitblit v1.9.3