From b5f8660e06bb79d125019b4883e2b4807f095530 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 16 四月 2026 20:09:30 +0800
Subject: [PATCH] ~~~

---
 server/services/src/main/java/com/doumee/dao/vo/ShopCenterVO.java                          |   33 ++
 server/services/src/main/java/com/doumee/dao/business/OtherOrdersMapper.java               |    7 
 server/admin/src/main/java/com/doumee/api/business/OtherOrdersController.java              |   82 +++++
 server/services/src/main/java/com/doumee/dao/business/model/OrderComment.java              |   68 ++++
 server/services/src/main/java/com/doumee/dao/dto/CommentOrderDTO.java                      |   44 ++
 server/services/src/main/java/com/doumee/service/business/OtherOrdersService.java          |   98 ++++++
 server/services/src/main/java/com/doumee/service/business/impl/OtherOrdersServiceImpl.java |  131 ++++++++
 server/services/src/main/java/com/doumee/dao/dto/StoreOutDTO.java                          |   31 ++
 /dev/null                                                                                  |  201 -------------
 server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java                       |   28 +
 server/services/src/main/java/com/doumee/dao/business/OrderCommentMapper.java              |   12 
 server/web/src/main/java/com/doumee/api/web/WalletApi.java                                 |    6 
 server/services/src/main/java/com/doumee/dao/vo/RevenueStatisticsVO.java                   |   27 +
 server/services/src/main/java/com/doumee/dao/business/model/OtherOrders.java               |   90 ++++++
 14 files changed, 657 insertions(+), 201 deletions(-)

diff --git a/server/admin/src/main/java/com/doumee/api/business/OtherOrdersController.java b/server/admin/src/main/java/com/doumee/api/business/OtherOrdersController.java
new file mode 100644
index 0000000..81b0bc1
--- /dev/null
+++ b/server/admin/src/main/java/com/doumee/api/business/OtherOrdersController.java
@@ -0,0 +1,82 @@
+package com.doumee.api.business;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.OtherOrders;
+import com.doumee.service.business.OtherOrdersService;
+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 rk
+ * @date 2026/04/16
+ */
+@Api(tags = "鍏朵粬璁㈠崟")
+@RestController
+@RequestMapping("/business/otherOrders")
+public class OtherOrdersController extends BaseController {
+
+    @Autowired
+    private OtherOrdersService otherOrdersService;
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:otherOrders:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        otherOrdersService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:otherOrders: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));
+        }
+        otherOrdersService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:otherOrders:update")
+    public ApiResponse updateById(@RequestBody OtherOrders otherOrders) {
+        otherOrdersService.updateById(otherOrders);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:otherOrders:query")
+    public ApiResponse<PageData<OtherOrders>> findPage(@RequestBody PageWrap<OtherOrders> pageWrap) {
+        return ApiResponse.success(otherOrdersService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:otherOrders:exportExcel")
+    public void exportExcel(@RequestBody PageWrap<OtherOrders> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(OtherOrders.class).export(otherOrdersService.findPage(pageWrap).getRecords(), "鍏朵粬璁㈠崟", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:otherOrders:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(otherOrdersService.findById(id));
+    }
+}
diff --git a/server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java b/server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java
deleted file mode 100644
index e7911c4..0000000
--- a/server/services/src/main/java/com/doumee/core/utils/huaweiOBS/ObsUtil.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package com.doumee.core.utils.huaweiOBS;
-
-import com.azure.storage.blob.BlobContainerClient;
-import com.azure.storage.blob.BlobServiceClient;
-import com.azure.storage.blob.BlobServiceClientBuilder;
-import com.doumee.core.utils.azure.AzureBlobUtil;
-import com.obs.services.BasicObsCredentialsProvider;
-import com.obs.services.ObsClient;
-import com.obs.services.exception.ObsException;
-import com.obs.services.model.*;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.List;
-
-/**
- * @date 2020/4/28
- */
-public class ObsUtil {
-
-    public ObsClient obsClient;
-    public     String accessKey;
-    public   String accessId;
-    public    String endpoint;
-
-    public BlobContainerClient blobContainerClient ;
-
-    public ObsUtil(String accessId, String accessKey, String endpoint){
-        try {
-            this.accessId = accessId;
-            this.accessKey = accessKey;
-            this.endpoint = endpoint;
-            this.obsClient = new ObsClient(new BasicObsCredentialsProvider(accessId, accessKey), this.endpoint);
-        }catch (Exception e) {
-            e.printStackTrace();
-        }
-
-    }
-    private void initClient() {
-        this.obsClient = new ObsClient(new BasicObsCredentialsProvider(this.accessId, this.accessKey), this.endpoint);
-    }
-    private void uploadLocalFile(File file,String bucket,String key) {
-        try {
-            if(this.obsClient == null){
-                initClient();
-            }
-            // 鏂囦欢涓婁紶
-            // localfile 涓哄緟涓婁紶鐨勬湰鍦版枃浠惰矾寰勶紝闇�瑕佹寚瀹氬埌鍏蜂綋鐨勬枃浠跺悕
-            PutObjectRequest request = new PutObjectRequest();
-            request.setBucketName(bucket);
-            request.setObjectKey(key);
-            request.setFile(file);
-            obsClient.putObject(request);
-            System.out.println("putObject successfully");
-        } catch (ObsException e) {
-            System.out.println("putObject failed");
-            // 璇锋眰澶辫触,鎵撳嵃http鐘舵�佺爜
-            System.out.println("HTTP Code:" + e.getResponseCode());
-            // 璇锋眰澶辫触,鎵撳嵃鏈嶅姟绔敊璇爜
-            System.out.println("Error Code:" + e.getErrorCode());
-            // 璇锋眰澶辫触,鎵撳嵃璇︾粏閿欒淇℃伅
-            System.out.println("Error Message:" + e.getErrorMessage());
-            // 璇锋眰澶辫触,鎵撳嵃璇锋眰id
-            System.out.println("Request ID:" + e.getErrorRequestId());
-            System.out.println("Host ID:" + e.getErrorHostId());
-            e.printStackTrace();
-        } catch (Exception e) {
-            System.out.println("putObject failed");
-            // 鍏朵粬寮傚父淇℃伅鎵撳嵃
-            e.printStackTrace();
-        }
-    }
-
-
-    /**
-     * 涓婁紶鏂囦欢
-     * @param is
-     * @param objectKey
-     * @return
-     * @throws IOException
-     */
-    public  boolean uploadFile(String bucketName,InputStream is, String objectKey) throws Exception {
-        if(this.obsClient == null){
-            initClient();
-        }
-
-        try {
-            // 涓婁紶瀛楃涓诧紙byte鏁扮粍锛�
-            obsClient.putObject(bucketName, objectKey, is);
-            System.out.println("putObject successfully");
-        } catch (ObsException e) {
-            System.out.println("putObject failed");
-            // 璇锋眰澶辫触,鎵撳嵃http鐘舵�佺爜
-            System.out.println("HTTP Code:" + e.getResponseCode());
-            // 璇锋眰澶辫触,鎵撳嵃鏈嶅姟绔敊璇爜
-            System.out.println("Error Code:" + e.getErrorCode());
-            // 璇锋眰澶辫触,鎵撳嵃璇︾粏閿欒淇℃伅
-            System.out.println("Error Message:" + e.getErrorMessage());
-            // 璇锋眰澶辫触,鎵撳嵃璇锋眰id
-            System.out.println("Request ID:" + e.getErrorRequestId());
-            System.out.println("Host ID:" + e.getErrorHostId());
-           return false;
-        } catch (Exception e) {
-            System.out.println("putObject failed");
-            // 鍏朵粬寮傚父淇℃伅鎵撳嵃
-            e.printStackTrace();
-            return false;
-        }finally {
-            if(this.obsClient!=null){
-                this.obsClient.close();
-            }
-        }
-
-       return true;
-    }
-
-    public static void main(String[] args) {
-        ObsUtil blobUtil = new ObsUtil("HPUAQVBRXX9A9TLZ3RTA","uHC2uoFh42Z2xgQmCBBtG8rNZ4Caf85qQ2DQqZZf","obs.cn-south-1.myhuaweicloud.com");
-        blobUtil.uploadLocalFile(new File("D://static/1.png"),"jinkuai","orders/1.png");
-        blobUtil.uploadLocalFile(new File("D://static/2.png"),"jinkuai","orders/2.png");
-        blobUtil.uploadLocalFile(new File("D://static/3.png"),"jinkuai","orders/3.png");
-        blobUtil.uploadLocalFile(new File("D://static/4.png"),"jinkuai","orders/4.png");
-    }
-    public static  Integer uploadNetFile(ObsClient obsClient,String bucketName,String url, String objectKey) throws IOException {
-        InputStream is = new URL(url).openStream();
-        if(is != null){
-            Boolean flag = obsClient.doesObjectExist(bucketName, objectKey);
-            PutObjectResult result = null;
-            result = obsClient.putObject(bucketName, objectKey, is);
-            obsClient.close();
-            return result.getStatusCode();
-        }
-        //鍚屽悕鏂囦欢鍙兘琚鐩�
-        return null;
-    }
-
-    /**
-     * 鑾峰緱鎵�鏈夋枃浠�
-     * @return
-     * @throws IOException
-     */
-    public List<ObsObject> getAllFileInfo( ObsClient obsClient,String bucketName) throws IOException {
-        ObjectListing objectList = obsClient.listObjects(bucketName);
-        List<ObsObject> list = objectList.getObjects();
-        obsClient.close();
-        return list;
-    }
-
-    /**
-     * 鍒犻櫎鏂囦欢
-     * @param objectKey
-     * @return
-     * @throws IOException
-     */
-    public Boolean removeFile(ObsClient obsClient,String bucketName,String objectKey) throws IOException {
-        boolean exist = obsClient.doesObjectExist(bucketName, objectKey);
-        DeleteObjectResult result = null;
-        if (exist) {
-            result = obsClient.deleteObject(bucketName, objectKey);
-        }
-        obsClient.close();
-        //鏄惁鍙互琚爣璁颁负鍒犻櫎
-        return result.isDeleteMarker();
-    }
-
-    /**
-     * 鑾峰彇鏂囦欢瀵硅薄-涓嬭浇
-     * @param objectKey
-     * @return
-     */
-    public ObsObject getFile(ObsClient obsClient,String bucketName,String objectKey) {
-        boolean exist = obsClient.doesObjectExist(bucketName, objectKey);
-        if (exist) {
-            ObsObject object = obsClient.getObject(bucketName, objectKey);
-            return object;
-        }
-        return null;
-    }
-
-    /**
-     * 棰勮鎺堟潈璁块棶-鏀寔娴佸紡鏂囦欢
-     * 濡傛灉鏄祦寮忔枃浠讹紝杩斿洖鐨勯摼鎺ュ彲浠ュ湪娴忚鍣ㄩ瑙�
-     * 濡傛灉鏄潪娴佸紡鏂囦欢锛岃繑鍥炵殑閾炬帴鍙互鍦ㄦ祻瑙堝櫒閲屼笅杞芥枃浠�
-     * @param objectKey
-     * @return
-     * @throws IOException
-     */
-    public String preview(ObsClient obsClient,String bucketName,String objectKey) throws IOException {
-        //300鏈夋晥鏃堕棿
-        TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, 300);
-        request.setBucketName(bucketName);
-        request.setObjectKey(objectKey);
-        TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
-        obsClient.close();
-        return response.getSignedUrl();
-    }
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/business/OrderCommentMapper.java b/server/services/src/main/java/com/doumee/dao/business/OrderCommentMapper.java
new file mode 100644
index 0000000..42cad7d
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/OrderCommentMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business;
+
+import com.doumee.dao.business.model.OrderComment;
+import com.github.yulichang.base.MPJBaseMapper;
+
+/**
+ * 璁㈠崟璇勪环璁板綍Mapper
+ * @author rk
+ * @date 2026/04/16
+ */
+public interface OrderCommentMapper extends MPJBaseMapper<OrderComment> {
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/OtherOrdersMapper.java b/server/services/src/main/java/com/doumee/dao/business/OtherOrdersMapper.java
new file mode 100644
index 0000000..4f1247b
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/OtherOrdersMapper.java
@@ -0,0 +1,7 @@
+package com.doumee.dao.business;
+
+import com.doumee.dao.business.model.OtherOrders;
+import com.github.yulichang.base.MPJBaseMapper;
+
+public interface OtherOrdersMapper extends MPJBaseMapper<OtherOrders> {
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/OrderComment.java b/server/services/src/main/java/com/doumee/dao/business/model/OrderComment.java
new file mode 100644
index 0000000..70f3d51
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/model/OrderComment.java
@@ -0,0 +1,68 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 璁㈠崟璇勪环璁板綍
+ * @author rk
+ * @date 2026/04/16
+ */
+@Data
+@ApiModel("璁㈠崟璇勪环璁板綍")
+@TableName("`order_comment`")
+public class OrderComment {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Integer id;
+
+    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "0")
+    private Integer deleted;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    private Integer createUser;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鍏宠仈璁㈠崟涓婚敭", example = "1")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "璁㈠崟缂栧彿")
+    private String orderCode;
+
+    @ApiModelProperty(value = "璇勪环浜�(浼氬憳)涓婚敭", example = "1")
+    private Integer memberId;
+
+    @ApiModelProperty(value = "璇勪环瀵硅薄绫诲瀷锛�1=瀛樹欢闂ㄥ簵锛�2=鍙栦欢闂ㄥ簵锛�3=鍙告満", example = "1")
+    private Integer targetType;
+
+    @ApiModelProperty(value = "璇勪环瀵硅薄涓婚敭(shop_info.id鎴杁river_info.id)", example = "1")
+    private Integer targetId;
+
+    @ApiModelProperty(value = "璇勫垎1-5", example = "5")
+    private Integer score;
+
+    @ApiModelProperty(value = "璇勪环鍐呭")
+    private String content;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/OtherOrders.java b/server/services/src/main/java/com/doumee/dao/business/model/OtherOrders.java
new file mode 100644
index 0000000..95119c2
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/model/OtherOrders.java
@@ -0,0 +1,90 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鍏朵粬璁㈠崟璁板綍
+ * @author rk
+ * @date 2026/04/16
+ */
+@Data
+@ApiModel("鍏朵粬璁㈠崟璁板綍")
+@TableName("`other_orders`")
+public class OtherOrders {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "0")
+    @ExcelColumn(name = "鏄惁宸插垹闄�")
+    private Integer deleted;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name = "鍒涘缓浜虹紪鐮�")
+    private Integer createUser;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelColumn(name = "鍒涘缓鏃堕棿", width = 16, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    @ExcelColumn(name = "鏇存柊浜虹紪鐮�")
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "澶囨敞")
+    @ExcelColumn(name = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "璁㈠崟绫诲瀷锛�0=搴楅摵鎶奸噾璁㈠崟;1=鍙告満鎶奸噾璁㈠崟;2=閫炬湡璐圭敤璁㈠崟", example = "0")
+    @ExcelColumn(name = "璁㈠崟绫诲瀷", valueMapping = "0=搴楅摵鎶奸噾璁㈠崟;1=鍙告満鎶奸噾璁㈠崟;2=閫炬湡璐圭敤璁㈠崟;")
+    private Integer type;
+
+    @ApiModelProperty(value = "鍏宠仈浼氬憳涓婚敭", example = "1")
+    @ExcelColumn(name = "鍏宠仈浼氬憳涓婚敭")
+    private Integer memberId;
+
+    @ApiModelProperty(value = "瀹為檯鏀粯璐圭敤")
+    @ExcelColumn(name = "瀹為檯鏀粯璐圭敤")
+    private Long payAccount;
+
+    @ApiModelProperty(value = "鏀粯鐘舵�侊細0=鏈敮浠�;1=宸叉敮浠�", example = "0")
+    @ExcelColumn(name = "鏀粯鐘舵��", valueMapping = "0=鏈敮浠�;1=宸叉敮浠�;")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "鏀粯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelColumn(name = "鏀粯鏃堕棿", width = 16, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+
+    @ApiModelProperty(value = "璁㈠崟缂栧彿")
+    @ExcelColumn(name = "璁㈠崟缂栧彿")
+    private String code;
+
+    @ApiModelProperty(value = "寰俊骞冲彴浜ゆ槗璁㈠崟鍙�")
+    @ExcelColumn(name = "寰俊骞冲彴浜ゆ槗璁㈠崟鍙�")
+    private String wxExternalNo;
+
+    @ApiModelProperty(value = "鍏宠仈瀵勫瓨璁㈠崟涓婚敭", example = "1")
+    @ExcelColumn(name = "鍏宠仈瀵勫瓨璁㈠崟涓婚敭")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "涓夋柟璁㈠崟鍙�")
+    @ExcelColumn(name = "涓夋柟璁㈠崟鍙�")
+    private String outTradeNo;
+}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/CommentOrderDTO.java b/server/services/src/main/java/com/doumee/dao/dto/CommentOrderDTO.java
new file mode 100644
index 0000000..d9e0059
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/dto/CommentOrderDTO.java
@@ -0,0 +1,44 @@
+package com.doumee.dao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 璁㈠崟璇勪环璇锋眰
+ *
+ * @author rk
+ * @date 2026/04/16
+ */
+@Data
+@ApiModel("璁㈠崟璇勪环璇锋眰")
+public class CommentOrderDTO {
+
+    @NotNull(message = "璁㈠崟涓婚敭涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "璁㈠崟涓婚敭", required = true)
+    private Integer orderId;
+
+    @NotNull(message = "瀛樹欢闂ㄥ簵璇勫垎涓嶈兘涓虹┖")
+    @Min(value = 1, message = "璇勫垎鏈�浣�1鏄�")
+    @Max(value = 5, message = "璇勫垎鏈�楂�5鏄�")
+    @ApiModelProperty(value = "瀛樹欢闂ㄥ簵璇勫垎1-5", required = true, example = "5")
+    private Integer depositScore;
+
+    @Min(value = 1, message = "璇勫垎鏈�浣�1鏄�")
+    @Max(value = 5, message = "璇勫垎鏈�楂�5鏄�")
+    @ApiModelProperty(value = "鍙栦欢闂ㄥ簵璇勫垎1-5锛堝紓鍦板瘎瀛樹笖鏈夊彇浠堕棬搴楁椂蹇呭~锛�", example = "5")
+    private Integer takeScore;
+
+    @Min(value = 1, message = "璇勫垎鏈�浣�1鏄�")
+    @Max(value = 5, message = "璇勫垎鏈�楂�5鏄�")
+    @ApiModelProperty(value = "鍙告満璇勫垎1-5锛堝紓鍦板瘎瀛樿鍗曞繀濉級", example = "5")
+    private Integer driverScore;
+
+    @ApiModelProperty(value = "璇勪环鍐呭")
+    private String content;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/StoreOutDTO.java b/server/services/src/main/java/com/doumee/dao/dto/StoreOutDTO.java
new file mode 100644
index 0000000..b5b3c0f
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/dto/StoreOutDTO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.List;
+
+/**
+ * 闂ㄥ簵纭鍑哄簱璇锋眰
+ *
+ * @author rk
+ * @date 2026/04/16
+ */
+@Data
+@ApiModel("闂ㄥ簵纭鍑哄簱璇锋眰")
+public class StoreOutDTO {
+
+    @NotNull(message = "璁㈠崟涓婚敭涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "璁㈠崟涓婚敭", required = true)
+    private Integer orderId;
+
+    @Size(max = 3, message = "鏈�澶氫笂浼�3寮犲浘鐗�")
+    @ApiModelProperty(value = "鍑哄簱鍥剧墖鍦板潃鍒楄〃锛屾渶澶�3寮�")
+    private List<String> images;
+
+    @ApiModelProperty(value = "鍑哄簱澶囨敞")
+    private String remark;
+}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java b/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java
new file mode 100644
index 0000000..a4dd10c
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/vo/PlatformAboutVO.java
@@ -0,0 +1,28 @@
+package com.doumee.dao.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 骞冲彴淇℃伅锛堝叧浜庢垜浠�佸崗璁瓑锛�
+ *
+ * @author rk
+ * @date 2026/04/16
+ */
+@Data
+@ApiModel("骞冲彴淇℃伅")
+public class PlatformAboutVO {
+
+    @ApiModelProperty(value = "鍏充簬鎴戜滑")
+    private String aboutUs;
+
+    @ApiModelProperty(value = "鐢ㄦ埛鍗忚")
+    private String userAgreement;
+
+    @ApiModelProperty(value = "闅愮鍗忚")
+    private String privacyAgreement;
+
+    @ApiModelProperty(value = "鏈嶅姟浠嬬粛")
+    private String serverIntroduce;
+}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/RevenueStatisticsVO.java b/server/services/src/main/java/com/doumee/dao/vo/RevenueStatisticsVO.java
new file mode 100644
index 0000000..732e06e
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/vo/RevenueStatisticsVO.java
@@ -0,0 +1,27 @@
+package com.doumee.dao.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鏀剁泭缁熻VO
+ * @author rk
+ * @date 2026/04/16
+ */
+@Data
+@ApiModel("鏀剁泭缁熻")
+public class RevenueStatisticsVO {
+
+    @ApiModelProperty(value = "褰撳墠璐︽埛浣欓锛堝垎锛�")
+    private Long balance;
+
+    @ApiModelProperty(value = "寰呯粨绠楅噾棰濓紙鍒嗭級")
+    private Long pendingAmount;
+
+    @ApiModelProperty(value = "绱鎻愮幇閲戦锛堝垎锛�")
+    private Long totalWithdrawn;
+
+    @ApiModelProperty(value = "鎻愮幇涓噾棰濓紙鍒嗭級")
+    private Long withdrawingAmount;
+}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/ShopCenterVO.java b/server/services/src/main/java/com/doumee/dao/vo/ShopCenterVO.java
new file mode 100644
index 0000000..c129682
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/vo/ShopCenterVO.java
@@ -0,0 +1,33 @@
+package com.doumee.dao.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ShopCenterVO {
+
+    @ApiModelProperty(value = "闂ㄥ簵澶村儚鍏ㄨ矾寰�")
+    private String fullCoverImg;
+
+    @ApiModelProperty(value = "闂ㄥ簵澶村儚鍗婅矾寰�")
+    private String coverImg;
+
+    @ApiModelProperty(value = "闂ㄥ簵鍚嶇О")
+    private String shopName;
+
+    @ApiModelProperty(value = "鑱旂郴浜哄悕绉�")
+    private String linkName;
+
+    @ApiModelProperty(value = "闂ㄥ簵绫诲瀷锛�0=涓汉锛�1=浼佷笟")
+    private Integer companyType;
+
+    @ApiModelProperty(value = "鏄惁鏈夋秷鎭�")
+    private Boolean hasMessage;
+
+    @ApiModelProperty(value = "寰呮牳楠岃鍗曟暟閲�")
+    private Integer waitDepositCount;
+
+    @ApiModelProperty(value = "寰呮敹璐ц鍗曟暟閲�")
+    private Integer waitReceiveCount;
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/OtherOrdersService.java b/server/services/src/main/java/com/doumee/service/business/OtherOrdersService.java
new file mode 100644
index 0000000..3a22baf
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/OtherOrdersService.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.OtherOrders;
+
+import java.util.List;
+
+/**
+ * 鍏朵粬璁㈠崟璁板綍Service瀹氫箟
+ * @author rk
+ * @date 2026/04/16
+ */
+public interface OtherOrdersService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param otherOrders 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(OtherOrders otherOrders);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param otherOrders 瀹炰綋瀵硅薄
+     */
+    void delete(OtherOrders otherOrders);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param otherOrders 瀹炰綋瀵硅薄
+     */
+    void updateById(OtherOrders otherOrders);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param otherOrdersList 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<OtherOrders> otherOrdersList);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return OtherOrders
+     */
+    OtherOrders findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param otherOrders 瀹炰綋瀵硅薄
+     * @return OtherOrders
+     */
+    OtherOrders findOne(OtherOrders otherOrders);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param otherOrders 瀹炰綋瀵硅薄
+     * @return List<OtherOrders>
+     */
+    List<OtherOrders> findList(OtherOrders otherOrders);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<OtherOrders>
+     */
+    PageData<OtherOrders> findPage(PageWrap<OtherOrders> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param otherOrders 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(OtherOrders otherOrders);
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OtherOrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OtherOrdersServiceImpl.java
new file mode 100644
index 0000000..9d06292
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OtherOrdersServiceImpl.java
@@ -0,0 +1,131 @@
+package com.doumee.service.business.impl;
+
+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.doumee.core.constants.Constants;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.OtherOrdersMapper;
+import com.doumee.dao.business.model.OtherOrders;
+import com.doumee.service.business.OtherOrdersService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鍏朵粬璁㈠崟璁板綍Service瀹炵幇
+ * @author rk
+ * @date 2026/04/16
+ */
+@Service
+public class OtherOrdersServiceImpl implements OtherOrdersService {
+
+    @Autowired
+    private OtherOrdersMapper otherOrdersMapper;
+
+    @Override
+    public Integer create(OtherOrders otherOrders) {
+        otherOrdersMapper.insert(otherOrders);
+        return otherOrders.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        otherOrdersMapper.update(new UpdateWrapper<OtherOrders>().lambda()
+                .set(OtherOrders::getDeleted, Constants.ONE)
+                .eq(OtherOrders::getId, id));
+    }
+
+    @Override
+    public void delete(OtherOrders otherOrders) {
+        UpdateWrapper<OtherOrders> deleteWrapper = new UpdateWrapper<>(otherOrders);
+        otherOrdersMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (ids == null || ids.isEmpty()) {
+            return;
+        }
+        otherOrdersMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(OtherOrders otherOrders) {
+        otherOrdersMapper.updateById(otherOrders);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<OtherOrders> otherOrdersList) {
+        if (otherOrdersList == null || otherOrdersList.isEmpty()) {
+            return;
+        }
+        for (OtherOrders otherOrders : otherOrdersList) {
+            this.updateById(otherOrders);
+        }
+    }
+
+    @Override
+    public OtherOrders findById(Integer id) {
+        OtherOrders otherOrders = otherOrdersMapper.selectById(id);
+        if (Objects.isNull(otherOrders)) {
+            throw new BusinessException(com.doumee.core.constants.ResponseStatus.DATA_EMPTY);
+        }
+        return otherOrders;
+    }
+
+    @Override
+    public OtherOrders findOne(OtherOrders otherOrders) {
+        QueryWrapper<OtherOrders> wrapper = new QueryWrapper<>(otherOrders);
+        return otherOrdersMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<OtherOrders> findList(OtherOrders otherOrders) {
+        QueryWrapper<OtherOrders> wrapper = new QueryWrapper<>(otherOrders);
+        return otherOrdersMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<OtherOrders> findPage(PageWrap<OtherOrders> pageWrap) {
+        IPage<OtherOrders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<OtherOrders> queryWrapper = new MPJLambdaWrapper<OtherOrders>()
+                .selectAll(OtherOrders.class);
+        Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setDeleted(Constants.ZERO);
+        OtherOrders model = pageWrap.getModel();
+        if (model.getType() != null) {
+            queryWrapper.eq(OtherOrders::getType, model.getType());
+        }
+        if (model.getMemberId() != null) {
+            queryWrapper.eq(OtherOrders::getMemberId, model.getMemberId());
+        }
+        if (model.getPayStatus() != null) {
+            queryWrapper.eq(OtherOrders::getPayStatus, model.getPayStatus());
+        }
+        if (model.getOrderId() != null) {
+            queryWrapper.eq(OtherOrders::getOrderId, model.getOrderId());
+        }
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(otherOrdersMapper.selectJoinPage(page, OtherOrders.class, queryWrapper));
+    }
+
+    @Override
+    public long count(OtherOrders otherOrders) {
+        QueryWrapper<OtherOrders> wrapper = new QueryWrapper<>(otherOrders);
+        return otherOrdersMapper.selectCount(wrapper);
+    }
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/WalletApi.java b/server/web/src/main/java/com/doumee/api/web/WalletApi.java
new file mode 100644
index 0000000..72cb49c
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/WalletApi.java
@@ -0,0 +1,6 @@
+package com.doumee.api.web;/**
+* Created by IntelliJ IDEA.
+* @Author : Rk
+* @create 2026/4/16 18:05
+*/public class WalletApi {
+}

--
Gitblit v1.9.3