From 08675d26d73c60e1c593e901e09588acf2c39233 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 10 四月 2026 20:03:47 +0800
Subject: [PATCH] 代码生成

---
 server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java    |    7 
 server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java                       |   75 
 server/services/src/main/java/com/doumee/dao/business/RevenueMapper.java                        |   13 
 server/services/src/main/java/com/doumee/service/business/AppVersionService.java                |  107 
 server/services/src/main/java/com/doumee/service/business/ShopInfoService.java                  |   52 
 server/admin/src/main/java/com/doumee/job/AreasJob.java                                         |   14 
 server/services/src/main/java/com/doumee/dao/dto/ChangeStatusDTO.java                           |   23 
 server/admin/src/main/java/com/doumee/api/business/OrdersDetailController.java                  |   83 
 server/admin/src/main/java/com/doumee/api/business/ShopInfoController.java                      |   45 
 server/services/src/main/java/com/doumee/dao/dto/ResetPasswordDTO.java                          |   23 
 server/services/src/main/java/com/doumee/core/constants/Constants.java                          |  412 ---
 server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java     |    5 
 server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java     |   85 
 server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java       |  179 +
 server/admin/src/main/java/com/doumee/api/business/OrdersController.java                        |   53 
 server/services/src/main/java/com/doumee/dao/business/model/Category.java                       |   19 
 server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java |  175 -
 server/admin/src/main/java/com/doumee/api/business/RevenueController.java                       |   92 
 server/web/src/main/java/com/doumee/api/web/ShopInfoApi.java                                    |   44 
 server/admin/src/main/java/com/doumee/api/business/WithdrawalOrdersController.java              |   37 
 server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java                           |  277 --
 server/services/src/main/java/com/doumee/dao/business/AppVersionMapper.java                     |   13 
 server/services/src/main/java/com/doumee/dao/business/model/AppVersion.java                     |   94 
 server/services/src/main/java/com/doumee/service/business/AliSmsService.java                    |   96 
 server/web/src/main/java/com/doumee/api/web/UserApi.java                                        |    2 
 server/admin/src/main/java/com/doumee/api/business/MemberController.java                        |   17 
 server/services/src/main/java/com/doumee/service/business/RevenueService.java                   |   99 
 server/services/src/main/java/com/doumee/biz/system/impl/AreasBizImpl.java                      |   30 
 server/services/src/main/java/com/doumee/dao/business/model/Orders.java                         |  596 ++--
 server/services/src/main/java/com/doumee/dao/business/OrdersDetailMapper.java                   |   13 
 server/services/src/main/java/com/doumee/api/system/SystemDictDataController.java               |   17 
 server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java               |   70 
 server/services/src/main/java/com/doumee/service/business/WithdrawalOrdersService.java          |   16 
 server/services/src/main/java/com/doumee/service/business/OrdersService.java                    |   76 
 server/services/src/main/java/com/doumee/dao/business/model/OrdersDetail.java                   |   87 
 server/services/src/main/java/com/doumee/service/business/impl/OrdersDetailServiceImpl.java     |  148 +
 server/services/src/main/java/com/doumee/service/business/OrdersDetailService.java              |  100 
 server/admin/src/main/java/com/doumee/api/business/AppVersionController.java                    |  103 
 server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java         |  488 ++++
 server/services/src/main/java/com/doumee/dao/business/WithdrawalOrdersMapper.java               |   10 
 server/services/src/main/java/com/doumee/dao/business/model/Multifile.java                      |    3 
 server/services/src/main/java/com/doumee/biz/system/AreasBiz.java                               |   21 
 server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java                               |  134 +
 server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java         |   51 
 server/admin/src/main/java/com/doumee/core/job/SchedulerProxy.java                              |   12 
 /dev/null                                                                                       |  221 -
 server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java                             |  113 
 server/services/src/main/java/com/doumee/service/business/impl/RevenueServiceImpl.java          |  151 +
 server/services/src/main/java/com/doumee/dao/business/model/Revenue.java                        |  103 
 server/web/src/main/java/com/doumee/api/web/AppVersionApi.java                                  |   33 
 server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java              |    5 
 server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java           |    5 
 server/services/src/main/java/com/doumee/dao/business/OrdersMapper.java                         |    6 
 server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java                              |  103 
 server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java           | 2070 -----------------
 55 files changed, 3,077 insertions(+), 3,849 deletions(-)

diff --git a/server/admin/src/main/java/com/doumee/api/business/AppVersionController.java b/server/admin/src/main/java/com/doumee/api/business/AppVersionController.java
new file mode 100644
index 0000000..6c18c4c
--- /dev/null
+++ b/server/admin/src/main/java/com/doumee/api/business/AppVersionController.java
@@ -0,0 +1,103 @@
+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.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.AppVersion;
+import com.doumee.service.business.AppVersionService;
+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.Date;
+import java.util.List;
+
+/**
+ * APP鐗堟湰绠$悊
+ * @author rk
+ * @date 2026/04/10
+ */
+@Api(tags = "APP鐗堟湰")
+@RestController
+@RequestMapping("/business/appVersion")
+public class AppVersionController extends BaseController {
+
+    @Autowired
+    private AppVersionService appVersionService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:appVersion:create")
+    public ApiResponse create(@RequestBody AppVersion appVersion) {
+        LoginUserInfo loginUserInfo = this.getLoginUser();
+        appVersion.setDeleted(0);
+        appVersion.setCreateTime(new Date());
+        appVersion.setCreateUser(loginUserInfo.getId());
+        appVersion.setUpdateTime(new Date());
+        appVersion.setUpdateUser(loginUserInfo.getId());
+        return ApiResponse.success(appVersionService.create(appVersion));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:appVersion:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        appVersionService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:appVersion: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));
+        }
+        appVersionService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:appVersion:update")
+    public ApiResponse updateById(@RequestBody AppVersion appVersion) {
+        LoginUserInfo loginUserInfo = this.getLoginUser();
+        appVersion.setUpdateTime(new Date());
+        appVersion.setUpdateUser(loginUserInfo.getId());
+        appVersionService.updateById(appVersion);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:appVersion:query")
+    public ApiResponse<PageData<AppVersion>> findPage(@RequestBody PageWrap<AppVersion> pageWrap) {
+        return ApiResponse.success(appVersionService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:appVersion:exportExcel")
+    public void exportExcel(@RequestBody PageWrap<AppVersion> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(AppVersion.class).export(appVersionService.findPage(pageWrap).getRecords(), "APP鐗堟湰", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:appVersion:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(appVersionService.findById(id));
+    }
+
+}
diff --git a/server/admin/src/main/java/com/doumee/api/business/MemberController.java b/server/admin/src/main/java/com/doumee/api/business/MemberController.java
index ded2490..44f1dd1 100644
--- a/server/admin/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -84,23 +84,6 @@
     @RequiresPermissions("business:member:exportExcel")
     public void exportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response) {
         List<Member> memberList = memberService.findPage(pageWrap).getRecords();
-        if(CollectionUtils.isNotEmpty(memberList)){
-            for (Member m:memberList) {
-                m.setAmountYuan(Objects.nonNull(m.getAmount())&&m.getAmount()> Constants.ZERO? new BigDecimal(m.getAmount()+"").divide(new BigDecimal("100"),2,BigDecimal.ROUND_UP):BigDecimal.ZERO);
-                List<String> identityInfo = new ArrayList<>();
-                if(Constants.equalsInteger(m.getWorkerIdentity(),Constants.TWO)){
-                    identityInfo.add("宸ヤ汉");
-                }
-                if(Constants.equalsInteger(m.getDriverIdentity(),Constants.TWO)){
-                    identityInfo.add("鍙告満");
-                }
-                if(Constants.equalsInteger(m.getChefIdentity(),Constants.TWO)){
-                    identityInfo.add("渚涢");
-                }
-                m.setIdentityApplyInfo(StringUtils.join(identityInfo,","));
-                m.setIdentityInfo("鍙戝崟鏂�" + (StringUtils.isNotBlank(m.getIdentityApplyInfo())?" | 鎺ュ崟鏂�":""));
-            }
-        }
         ExcelExporter.build(Member.class).export(memberList, "浼氬憳淇℃伅琛�", response);
     }
 
diff --git a/server/admin/src/main/java/com/doumee/api/business/OrderLogController.java b/server/admin/src/main/java/com/doumee/api/business/OrderLogController.java
deleted file mode 100644
index 967a5f6..0000000
--- a/server/admin/src/main/java/com/doumee/api/business/OrderLogController.java
+++ /dev/null
@@ -1,90 +0,0 @@
-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.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.OrderLog;
-import com.doumee.service.business.OrderLogService;
-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/07/09 12:00
- */
-@Api(tags = "璁㈠崟鎿嶄綔鏃ュ織")
-@RestController
-@RequestMapping("/business/orderLog")
-public class OrderLogController extends BaseController {
-
-    @Autowired
-    private OrderLogService orderLogService;
-
-    @PreventRepeat
-    @ApiOperation("鏂板缓")
-    @PostMapping("/create")
-    @RequiresPermissions("business:orderlog:create")
-    public ApiResponse create(@RequestBody OrderLog orderLog) {
-        return ApiResponse.success(orderLogService.create(orderLog));
-    }
-
-    @ApiOperation("鏍规嵁ID鍒犻櫎")
-    @GetMapping("/delete/{id}")
-    @RequiresPermissions("business:orderlog:delete")
-    public ApiResponse deleteById(@PathVariable Integer id) {
-        orderLogService.deleteById(id);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鎵归噺鍒犻櫎")
-    @GetMapping("/delete/batch")
-    @RequiresPermissions("business:orderlog: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));
-        }
-        orderLogService.deleteByIdInBatch(idList);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鏍规嵁ID淇敼")
-    @PostMapping("/updateById")
-    @RequiresPermissions("business:orderlog:update")
-    public ApiResponse updateById(@RequestBody OrderLog orderLog) {
-        orderLogService.updateById(orderLog);
-        return ApiResponse.success(null);
-    }
-
-    @ApiOperation("鍒嗛〉鏌ヨ")
-    @PostMapping("/page")
-    @RequiresPermissions("business:orderlog:query")
-    public ApiResponse<PageData<OrderLog>> findPage (@RequestBody PageWrap<OrderLog> pageWrap) {
-        return ApiResponse.success(orderLogService.findPage(pageWrap));
-    }
-
-    @ApiOperation("瀵煎嚭Excel")
-    @PostMapping("/exportExcel")
-    @RequiresPermissions("business:orderlog:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<OrderLog> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(OrderLog.class).export(orderLogService.findPage(pageWrap).getRecords(), "璁㈠崟鎿嶄綔鏃ュ織", response);
-    }
-
-    @ApiOperation("鏍规嵁ID鏌ヨ")
-    @GetMapping("/{id}")
-    @RequiresPermissions("business:orderlog:query")
-    public ApiResponse findById(@PathVariable Integer id) {
-        return ApiResponse.success(orderLogService.findById(id));
-    }
-}
diff --git a/server/admin/src/main/java/com/doumee/api/business/OrdersController.java b/server/admin/src/main/java/com/doumee/api/business/OrdersController.java
index 983a2e0..54d4698 100644
--- a/server/admin/src/main/java/com/doumee/api/business/OrdersController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/OrdersController.java
@@ -2,17 +2,13 @@
 
 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.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Orders;
 import com.doumee.service.business.OrdersService;
-import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 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.*;
@@ -22,24 +18,17 @@
 import java.util.List;
 
 /**
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 瀵勫瓨璁㈠崟绠$悊
+ * @author rk
+ * @date 2026/04/10
  */
-@Api(tags = "璁㈠崟淇℃伅璁板綍")
+@Api(tags = "瀵勫瓨璁㈠崟")
 @RestController
 @RequestMapping("/business/orders")
 public class OrdersController extends BaseController {
 
     @Autowired
     private OrdersService ordersService;
-
-    @PreventRepeat
-    @ApiOperation("鏂板缓")
-    @PostMapping("/create")
-    @RequiresPermissions("business:orders:create")
-    public ApiResponse create(@RequestBody Orders orders) {
-        return ApiResponse.success(ordersService.create(orders));
-    }
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
@@ -53,7 +42,7 @@
     @GetMapping("/delete/batch")
     @RequiresPermissions("business:orders:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
-        String [] idArray = ids.split(",");
+        String[] idArray = ids.split(",");
         List<Integer> idList = new ArrayList<>();
         for (String id : idArray) {
             idList.add(Integer.valueOf(id));
@@ -62,43 +51,33 @@
         return ApiResponse.success(null);
     }
 
-//    @ApiOperation("鏍规嵁ID淇敼")
-//    @PostMapping("/updateById")
-//    @RequiresPermissions("business:orders:update")
-//    public ApiResponse updateById(@RequestBody Orders orders) {
-//        ordersService.updateById(orders);
-//        return ApiResponse.success(null);
-//    }
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:orders:update")
+    public ApiResponse updateById(@RequestBody Orders orders) {
+        ordersService.updateById(orders);
+        return ApiResponse.success(null);
+    }
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
     @RequiresPermissions("business:orders:query")
-    public ApiResponse<PageData<Orders>> findPage (@RequestBody PageWrap<Orders> pageWrap) {
+    public ApiResponse<PageData<Orders>> findPage(@RequestBody PageWrap<Orders> pageWrap) {
         return ApiResponse.success(ordersService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:orders:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<Orders> pageWrap, HttpServletResponse response) {
-        List<Orders> ordersList = ordersService.findPage(pageWrap).getRecords();
-        ExcelExporter.build(Orders.class).export(ordersList, "璁㈠崟淇℃伅璁板綍", response);
+    public void exportExcel(@RequestBody PageWrap<Orders> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(Orders.class).export(ordersService.findPage(pageWrap).getRecords(), "瀵勫瓨璁㈠崟", response);
     }
 
-    @ApiOperation("鏍规嵁ID鏌ヨ ")
+    @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @RequiresPermissions("business:orders:query")
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(ordersService.findById(id));
-    }
-
-    @ApiOperation("骞冲彴鍙栨秷璁㈠崟")
-    @GetMapping("/cancel")
-    @RequiresPermissions("business:orders:update")
-    public ApiResponse cancel(@RequestParam Integer id) {
-        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        ordersService.platformCancel(id,loginUserInfo);
-        return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
 }
diff --git a/server/admin/src/main/java/com/doumee/api/business/OrdersDetailController.java b/server/admin/src/main/java/com/doumee/api/business/OrdersDetailController.java
new file mode 100644
index 0000000..1eb786e
--- /dev/null
+++ b/server/admin/src/main/java/com/doumee/api/business/OrdersDetailController.java
@@ -0,0 +1,83 @@
+package com.doumee.api.business;
+
+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.OrdersDetail;
+import com.doumee.service.business.OrdersDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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/10
+ */
+@Api(tags = "瀵勫瓨璁㈠崟鏄庣粏")
+@RestController
+@RequestMapping("/business/ordersDetail")
+public class OrdersDetailController {
+
+    @Autowired
+    private OrdersDetailService ordersDetailService;
+
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    public ApiResponse create(@RequestBody OrdersDetail ordersDetail) {
+        return ApiResponse.success(ordersDetailService.create(ordersDetail));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        ordersDetailService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        String[] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        ordersDetailService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    public ApiResponse updateById(@RequestBody OrdersDetail ordersDetail) {
+        ordersDetailService.updateById(ordersDetail);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    public ApiResponse<PageData<OrdersDetail>> findPage(@RequestBody PageWrap<OrdersDetail> pageWrap) {
+        return ApiResponse.success(ordersDetailService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    public void exportExcel(@RequestBody PageWrap<OrdersDetail> pageWrap, HttpServletResponse response) {
+        List<OrdersDetail> ordersDetailList = ordersDetailService.findPage(pageWrap).getRecords();
+        ExcelExporter.build(OrdersDetail.class).export(ordersDetailList, "瀵勫瓨璁㈠崟鏄庣粏", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(ordersDetailService.findById(id));
+    }
+
+}
diff --git a/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java b/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java
deleted file mode 100644
index d719e4b..0000000
--- a/server/admin/src/main/java/com/doumee/api/business/PaymentCallback.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.doumee.api.business;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.doumee.config.wx.TransferDetailEntityNew;
-import com.doumee.config.wx.WxMiniConfig;
-import com.doumee.core.constants.Constants;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.model.ApiResponse;
-import com.doumee.service.business.OrdersService;
-import com.doumee.service.business.WithdrawalOrdersService;
-import com.wechat.pay.java.core.Config;
-import com.wechat.pay.java.core.RSAAutoCertificateConfig;
-import com.wechat.pay.java.core.RSAPublicKeyConfig;
-import com.wechat.pay.java.core.notification.NotificationConfig;
-import com.wechat.pay.java.core.notification.NotificationParser;
-import com.wechat.pay.java.core.notification.RequestParam;
-import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
-import com.wechat.pay.java.service.refund.model.RefundNotification;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.mgt.DefaultSecurityManager;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.HttpServletRequest;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Created by IntelliJ IDEA.
- * 鏀粯鍥炶皟
- * @Author : Rk
- * @create 2023/2/23 13:49
- */
-@Slf4j
-@RestController
-@CrossOrigin
-public class PaymentCallback {
-
-    @Autowired
-    private OrdersService ordersService;
-
-    @Autowired
-    private WithdrawalOrdersService withdrawalOrdersService;
-
-}
diff --git a/server/admin/src/main/java/com/doumee/api/business/RevenueController.java b/server/admin/src/main/java/com/doumee/api/business/RevenueController.java
new file mode 100644
index 0000000..85d30d9
--- /dev/null
+++ b/server/admin/src/main/java/com/doumee/api/business/RevenueController.java
@@ -0,0 +1,92 @@
+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.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Revenue;
+import com.doumee.service.business.RevenueService;
+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/10
+ */
+@Api(tags = "鏀舵敮璁板綍")
+@RestController
+@RequestMapping("/business/revenue")
+public class RevenueController extends BaseController {
+
+    @Autowired
+    private RevenueService revenueService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("business:revenue:create")
+    public ApiResponse create(@RequestBody Revenue revenue) {
+        return ApiResponse.success(revenueService.create(revenue));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("business:revenue:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        revenueService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("business:revenue: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));
+        }
+        revenueService.deleteByIdInBatch(idList);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("business:revenue:update")
+    public ApiResponse updateById(@RequestBody Revenue revenue) {
+        revenueService.updateById(revenue);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("business:revenue:query")
+    public ApiResponse<PageData<Revenue>> findPage(@RequestBody PageWrap<Revenue> pageWrap) {
+        return ApiResponse.success(revenueService.findPage(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
+    @PostMapping("/exportExcel")
+    @RequiresPermissions("business:revenue:exportExcel")
+    public void exportExcel(@RequestBody PageWrap<Revenue> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(Revenue.class).export(revenueService.findPage(pageWrap).getRecords(), "鏀舵敮璁板綍", response);
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("business:revenue:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(revenueService.findById(id));
+    }
+
+}
diff --git a/server/admin/src/main/java/com/doumee/api/business/ShopInfoController.java b/server/admin/src/main/java/com/doumee/api/business/ShopInfoController.java
index bf72c43..98989c6 100644
--- a/server/admin/src/main/java/com/doumee/api/business/ShopInfoController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/ShopInfoController.java
@@ -7,6 +7,11 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.ShopInfo;
+import com.doumee.dao.dto.AuditDTO;
+import com.doumee.dao.dto.ChangeStatusDTO;
+import com.doumee.dao.dto.ResetPasswordDTO;
+import com.doumee.dao.dto.ShopUpdateDTO;
+import com.doumee.dao.vo.ShopDetailVO;
 import com.doumee.service.business.ShopInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -90,4 +95,44 @@
         return ApiResponse.success(shopInfoService.findById(id));
     }
 
+    @ApiOperation("闂ㄥ簵璇︽儏锛堝惈闄勪欢锛�")
+    @GetMapping("/detail/{id}")
+    @RequiresPermissions("business:shopInfo:query")
+    public ApiResponse<ShopDetailVO> detail(@PathVariable Integer id) {
+        return ApiResponse.success(shopInfoService.getShopDetail(id));
+    }
+
+    @ApiOperation("瀹℃壒闂ㄥ簵鐢宠")
+    @PostMapping("/audit")
+    @RequiresPermissions("business:shopInfo:audit")
+    public ApiResponse audit(@RequestBody AuditDTO auditDTO) {
+        auditDTO.setAuditUser(this.getLoginUser().getId());
+        shopInfoService.auditShop(auditDTO);
+        return ApiResponse.success("瀹℃壒鎴愬姛");
+    }
+
+    @ApiOperation("淇敼闂ㄥ簵鐘舵��")
+    @PostMapping("/changeStatus")
+    @RequiresPermissions("business:shopInfo:update")
+    public ApiResponse changeStatus(@RequestBody ChangeStatusDTO dto) {
+        shopInfoService.changeStatus(dto);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @ApiOperation("閲嶇疆闂ㄥ簵瀵嗙爜")
+    @PostMapping("/resetPassword")
+    @RequiresPermissions("business:shopInfo:update")
+    public ApiResponse resetPassword(@RequestBody ResetPasswordDTO dto) {
+        shopInfoService.resetPassword(dto);
+        return ApiResponse.success("瀵嗙爜閲嶇疆鎴愬姛");
+    }
+
+    @ApiOperation("淇敼闂ㄥ簵淇℃伅")
+    @PostMapping("/updateShop")
+    @RequiresPermissions("business:shopInfo:update")
+    public ApiResponse updateShop(@RequestBody ShopUpdateDTO dto) {
+        shopInfoService.updateShop(dto);
+        return ApiResponse.success("淇敼鎴愬姛");
+    }
+
 }
diff --git a/server/admin/src/main/java/com/doumee/api/business/WithdrawalOrdersController.java b/server/admin/src/main/java/com/doumee/api/business/WithdrawalOrdersController.java
index 4c27823..02556f7 100644
--- a/server/admin/src/main/java/com/doumee/api/business/WithdrawalOrdersController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/WithdrawalOrdersController.java
@@ -2,7 +2,6 @@
 
 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.PageData;
 import com.doumee.core.model.PageWrap;
@@ -19,10 +18,11 @@
 import java.util.List;
 
 /**
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 鎻愮幇鐢宠绠$悊
+ * @author rk
+ * @date 2026/04/10
  */
-@Api(tags = "鎻愮幇鐢宠璁板綍")
+@Api(tags = "鎻愮幇鐢宠")
 @RestController
 @RequestMapping("/business/withdrawalOrders")
 public class WithdrawalOrdersController extends BaseController {
@@ -30,17 +30,9 @@
     @Autowired
     private WithdrawalOrdersService withdrawalOrdersService;
 
-    @PreventRepeat
-    @ApiOperation("鏂板缓")
-    @PostMapping("/create")
-    @RequiresPermissions("business:withdrawalorders:create")
-    public ApiResponse create(@RequestBody WithdrawalOrders withdrawalOrders) {
-        return ApiResponse.success(withdrawalOrdersService.create(withdrawalOrders));
-    }
-
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
-    @RequiresPermissions("business:withdrawalorders:delete")
+    @RequiresPermissions("business:withdrawalOrders:delete")
     public ApiResponse deleteById(@PathVariable Integer id) {
         withdrawalOrdersService.deleteById(id);
         return ApiResponse.success(null);
@@ -48,9 +40,9 @@
 
     @ApiOperation("鎵归噺鍒犻櫎")
     @GetMapping("/delete/batch")
-    @RequiresPermissions("business:withdrawalorders:delete")
+    @RequiresPermissions("business:withdrawalOrders:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
-        String [] idArray = ids.split(",");
+        String[] idArray = ids.split(",");
         List<Integer> idList = new ArrayList<>();
         for (String id : idArray) {
             idList.add(Integer.valueOf(id));
@@ -61,7 +53,7 @@
 
     @ApiOperation("鏍规嵁ID淇敼")
     @PostMapping("/updateById")
-    @RequiresPermissions("business:withdrawalorders:update")
+    @RequiresPermissions("business:withdrawalOrders:update")
     public ApiResponse updateById(@RequestBody WithdrawalOrders withdrawalOrders) {
         withdrawalOrdersService.updateById(withdrawalOrders);
         return ApiResponse.success(null);
@@ -69,22 +61,23 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    @RequiresPermissions("business:withdrawalorders:query")
-    public ApiResponse<PageData<WithdrawalOrders>> findPage (@RequestBody PageWrap<WithdrawalOrders> pageWrap) {
+    @RequiresPermissions("business:withdrawalOrders:query")
+    public ApiResponse<PageData<WithdrawalOrders>> findPage(@RequestBody PageWrap<WithdrawalOrders> pageWrap) {
         return ApiResponse.success(withdrawalOrdersService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
-    @RequiresPermissions("business:withdrawalorders:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<WithdrawalOrders> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(WithdrawalOrders.class).export(withdrawalOrdersService.findPage(pageWrap).getRecords(), "鎻愮幇鐢宠璁板綍", response);
+    @RequiresPermissions("business:withdrawalOrders:exportExcel")
+    public void exportExcel(@RequestBody PageWrap<WithdrawalOrders> pageWrap, HttpServletResponse response) {
+        ExcelExporter.build(WithdrawalOrders.class).export(withdrawalOrdersService.findPage(pageWrap).getRecords(), "鎻愮幇鐢宠", response);
     }
 
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
-    @RequiresPermissions("business:withdrawalorders:query")
+    @RequiresPermissions("business:withdrawalOrders:query")
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(withdrawalOrdersService.findById(id));
     }
+
 }
diff --git a/server/admin/src/main/java/com/doumee/core/job/SchedulerProxy.java b/server/admin/src/main/java/com/doumee/core/job/SchedulerProxy.java
index 57311f3..f108fa9 100644
--- a/server/admin/src/main/java/com/doumee/core/job/SchedulerProxy.java
+++ b/server/admin/src/main/java/com/doumee/core/job/SchedulerProxy.java
@@ -3,11 +3,14 @@
 import com.doumee.config.quartz.JobHandler;
 import com.doumee.config.quartz.JobHandlerWithDisallowConcurrent;
 import com.doumee.core.constants.Constants;
+import com.doumee.service.business.AreasService;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 /**
@@ -17,11 +20,20 @@
  */
 @Slf4j
 @Component
+@EnableScheduling
 public class SchedulerProxy {
 
     @Autowired
     private Scheduler scheduler;
 
+    @Autowired
+    private AreasService areasService;
+
+    @Scheduled(initialDelay = 0, fixedRate = 10000)
+    public void cacheAreaData(){
+        areasService.cacheData();
+    }
+
     /**
      * 鍒涘缓JOB
      *
diff --git a/server/admin/src/main/java/com/doumee/job/AutoCommentJob.java b/server/admin/src/main/java/com/doumee/job/AreasJob.java
similarity index 68%
rename from server/admin/src/main/java/com/doumee/job/AutoCommentJob.java
rename to server/admin/src/main/java/com/doumee/job/AreasJob.java
index 402b5cb..0e7978d 100644
--- a/server/admin/src/main/java/com/doumee/job/AutoCommentJob.java
+++ b/server/admin/src/main/java/com/doumee/job/AreasJob.java
@@ -3,29 +3,29 @@
 import com.doumee.core.job.BaseJob;
 import com.doumee.core.job.JobContext;
 import com.doumee.core.job.JobParam;
-import com.doumee.service.business.OrdersService;
+import com.doumee.service.business.AreasService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 /**
- * 鑷姩璇勪环
+ * 鏅�氱殑瀹氭椂浠诲姟
  * @author  dm
  * @since 2025/03/31 16:44
  */
 @Slf4j
-@Component("AutoCommentJob")
-public class AutoCommentJob extends BaseJob {
+@Component("areasJob")
+public class AreasJob extends BaseJob {
+
 
     @Autowired
-    private OrdersService ordersService;
+    private AreasService areasService;
 
     @Override
     public JobContext execute(JobParam param) {
         JobContext jobContext = new JobContext();
         try {
-            ordersService.autoComment();
-            jobContext.setContext("鑷姩璇勪环");
+            areasService.cacheData();
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/server/admin/src/main/java/com/doumee/job/AutoCancelOrdersJob.java b/server/admin/src/main/java/com/doumee/job/AutoCancelOrdersJob.java
deleted file mode 100644
index 39b366f..0000000
--- a/server/admin/src/main/java/com/doumee/job/AutoCancelOrdersJob.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.doumee.job;
-
-import com.doumee.core.job.BaseJob;
-import com.doumee.core.job.JobContext;
-import com.doumee.core.job.JobParam;
-import com.doumee.service.business.OrdersService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * 鑷姩鍙栨秷鏈敮浠樿鍗�
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Slf4j
-@Component("AutoCancelOrdersJob")
-public class AutoCancelOrdersJob extends BaseJob {
-
-    @Autowired
-    private OrdersService ordersService;
-
-    @Override
-    public JobContext execute(JobParam param) {
-        JobContext jobContext = new JobContext();
-        try {
-            ordersService.autoCancelWaitPay();
-            jobContext.setContext("鑷姩鍙栨秷鏈敮浠樿鍗�");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return jobContext;
-    }
-}
diff --git a/server/admin/src/main/java/com/doumee/job/AutoConfirmJob.java b/server/admin/src/main/java/com/doumee/job/AutoConfirmJob.java
deleted file mode 100644
index 74fe0fb..0000000
--- a/server/admin/src/main/java/com/doumee/job/AutoConfirmJob.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.doumee.job;
-
-import com.doumee.core.job.BaseJob;
-import com.doumee.core.job.JobContext;
-import com.doumee.core.job.JobParam;
-import com.doumee.service.business.OrdersService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * 鑷姩纭璁㈠崟淇敼
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Slf4j
-@Component("AutoConfirmJob")
-public class AutoConfirmJob extends BaseJob {
-
-    @Autowired
-    private OrdersService ordersService;
-
-    @Override
-    public JobContext execute(JobParam param) {
-        JobContext jobContext = new JobContext();
-        try {
-            ordersService.autoConfirm();
-            jobContext.setContext("鑷姩纭璁㈠崟淇敼");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return jobContext;
-    }
-}
diff --git a/server/admin/src/main/java/com/doumee/job/AutoGrabOrdersJob.java b/server/admin/src/main/java/com/doumee/job/AutoGrabOrdersJob.java
deleted file mode 100644
index 5bcb7af..0000000
--- a/server/admin/src/main/java/com/doumee/job/AutoGrabOrdersJob.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.doumee.job;
-
-import com.doumee.core.job.BaseJob;
-import com.doumee.core.job.JobContext;
-import com.doumee.core.job.JobParam;
-import com.doumee.service.business.OrdersService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * 鑷姩娲惧崟
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Slf4j
-@Component("AutoGrabOrdersJob")
-public class AutoGrabOrdersJob extends BaseJob {
-
-    @Autowired
-    private OrdersService ordersService;
-
-    @Override
-    public JobContext execute(JobParam param) {
-        JobContext jobContext = new JobContext();
-        try {
-            ordersService.autoGrabOrders();
-            jobContext.setContext("鑷姩娲惧崟");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return jobContext;
-    }
-}
diff --git a/server/admin/src/main/java/com/doumee/job/InitializeCodeJob.java b/server/admin/src/main/java/com/doumee/job/InitializeCodeJob.java
deleted file mode 100644
index 4d66167..0000000
--- a/server/admin/src/main/java/com/doumee/job/InitializeCodeJob.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.doumee.job;
-
-import com.doumee.core.job.BaseJob;
-import com.doumee.core.job.JobContext;
-import com.doumee.core.job.JobParam;
-import com.doumee.service.business.OrdersService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-/**
- * 鍒濆鍖栬鍗曠紪鍙�
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Slf4j
-@Component("InitializeCodeJob")
-public class InitializeCodeJob extends BaseJob {
-
-    @Autowired
-    private OrdersService ordersService;
-
-    @Override
-    public JobContext execute(JobParam param) {
-        JobContext jobContext = new JobContext();
-        try {
-            ordersService.initializeCode();
-            jobContext.setContext("鍒濆鍖栬鍗曠紪鍙�");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return jobContext;
-    }
-}
diff --git a/server/services/src/main/java/com/doumee/api/system/SystemDictDataController.java b/server/services/src/main/java/com/doumee/api/system/SystemDictDataController.java
index 6895d47..ed24e02 100644
--- a/server/services/src/main/java/com/doumee/api/system/SystemDictDataController.java
+++ b/server/services/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -10,7 +10,6 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.common.dto.UpdateSortDTO;
-import com.doumee.dao.dto.PlatformConfigDTO;
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -91,22 +90,6 @@
     @GetMapping("/findByDictCode")
     public ApiResponse<List<SystemDictData>> findByCode (@RequestParam String dictCode) {
         return ApiResponse.success(systemDictDataService.findByDictCode(dictCode));
-    }
-
-
-
-    @ApiOperation("鑾峰彇骞冲彴閰嶇疆椤�")
-    @GetMapping("/getPlatformConfig")
-    public ApiResponse<PlatformConfigDTO> getPlatformConfig () {
-        return ApiResponse.success(systemDictDataService.getPlatformConfigDTO());
-    }
-
-
-    @ApiOperation("鏇存柊骞冲彴閰嶇疆椤�")
-    @PostMapping("/updPlatformConfig")
-    public ApiResponse updPlatformConfig (@RequestBody PlatformConfigDTO platformConfigDTO) {
-        systemDictDataService.updPlatformConfig(platformConfigDTO);
-        return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
 
 
diff --git a/server/services/src/main/java/com/doumee/biz/system/AreasBiz.java b/server/services/src/main/java/com/doumee/biz/system/AreasBiz.java
new file mode 100644
index 0000000..2705760
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/biz/system/AreasBiz.java
@@ -0,0 +1,21 @@
+package com.doumee.biz.system;
+
+import com.doumee.dao.business.model.Areas;
+
+/**
+ * 鍖哄垝淇℃伅涓氬姟灏佽
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface AreasBiz {
+
+    /**
+     * 鏍规嵁鍖哄幙涓婚敭鑾峰彇瀹屾暣鍖哄垝淇℃伅锛堢渷/甯�/鍖哄悕绉帮級
+     *
+     * @param areaId 鍖哄幙涓婚敭锛坅reas琛� type=2 鐨勮褰曪級
+     * @return 鍖呭惈鐪佸競鍖轰俊鎭殑 Areas 瀵硅薄锛宎reaId 涓� null 鏃惰繑鍥� null
+     */
+    Areas resolveArea(Integer areaId);
+
+}
diff --git a/server/services/src/main/java/com/doumee/biz/system/impl/AreasBizImpl.java b/server/services/src/main/java/com/doumee/biz/system/impl/AreasBizImpl.java
new file mode 100644
index 0000000..a26c322
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/biz/system/impl/AreasBizImpl.java
@@ -0,0 +1,30 @@
+package com.doumee.biz.system.impl;
+
+import com.doumee.biz.system.AreasBiz;
+import com.doumee.dao.business.model.Areas;
+import com.doumee.service.business.AreasService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 鍖哄垝淇℃伅涓氬姟灏佽瀹炵幇
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+@Service
+public class AreasBizImpl implements AreasBiz {
+
+    @Autowired
+    private AreasService areasService;
+
+    @Override
+    public Areas resolveArea(Integer areaId) {
+        if (areaId == null) {
+            return null;
+        }
+        // cacheData 涓凡涓烘瘡鏉″尯鍘胯褰曞~鍏呬簡 provinceId/provinceName/cityId/cityName
+        return areasService.findById(areaId);
+    }
+
+}
diff --git a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
index 6cad1e8..7ade5c2 100644
--- a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
+++ b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
@@ -6,21 +6,12 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.HttpsUtil;
 import com.doumee.dao.business.model.IdentityInfo;
-import com.doumee.dao.business.model.Orders;
-import com.doumee.dao.business.model.WithdrawalOrders;
-import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestTemplate;
 
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -35,15 +26,6 @@
 
 
     private static String mineUrl = "/pages/mine/mine";
-
-    private static String orderDetail = "pages/order-details/order-details?id={id}";// 鐢ㄥ伐
-
-    private static String orderDetailFreight = "pages/freight-order/freight-order?id={id}";// 璐ц繍
-
-    private static String orderDetailFood = "pages/order-food/order-food?id={id}";// 璁㈤
-
-    private static String balanceUrl = "pages/balance-details/balance-details";// 浣欓鏄庣粏
-
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
@@ -75,269 +57,10 @@
             wxMsgVO.setData(m);
             log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁よ瘉淇℃伅锛歿}", JSONObject.toJSONString(wxMsgVO));
             String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
             log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁よ瘉淇℃伅锛歿}", JSONObject.toJSONString(responseEntity));
         }catch (WxErrorException wxErrorException){
 
         }
     }
 
-
-    /**
-     * 璁㈠崟鍙栨秷涓氬姟閫氱煡
-     * @param openidList
-     * @param orders
-     * @param cancelType 鍙栨秷绫诲瀷锛�0=骞冲彴鍙栨秷锛�1=鍙戝崟鏂瑰彇娑堬紱1=鎺ュ崟鏂瑰彇娑�
-     * @throws WxErrorException
-     */
-    public  void  cancelMessage(List<String> openidList, Orders orders,Integer cancelType ){
-
-        try{
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙栨秷涓氬姟  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟URL锛歿}", url);
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8");
-            Map<String, TemplateData> m = new HashMap<>(5);
-            m.put("character_string3", new TemplateData(orders.getCode()));
-            m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType())));
-            m.put("thing1", new TemplateData(orders.getLocation() + (StringUtils.isNotBlank(orders.getLocationRemark())?orders.getLocationRemark():"")));
-            m.put("date8", new TemplateData(DateUtil.formatDate(orders.getCancelTime(),"yyyy-MM-dd HH:mm:ss")));
-            m.put("thing6", new TemplateData(Constants.equalsInteger(cancelType,Constants.ZERO)?"骞冲彴鍙栨秷":Constants.equalsInteger(cancelType,Constants.ONE)?"鍙戝崟鏂瑰彇娑�":"鎺ュ崟鏂瑰彇娑�"));
-            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
-                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
-            pageUrl = pageUrl.replace("{id}",orders.getId().toString());
-            wxMsgVO.setPage(pageUrl);
-            wxMsgVO.setData(m);
-            if(CollectionUtils.isNotEmpty(openidList)){
-                for (String openid:openidList) {
-                    //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-                    wxMsgVO.setTouser(openid);
-                    log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(wxMsgVO));
-                    String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
-                    log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity));
-                }
-            }else{
-                log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", "鏃犱汉鍛樹俊鎭�");
-            }
-        }catch (WxErrorException wxErrorException){
-
-        }
-
-    }
-
-
-    /**
-     * 鎺ュ崟閫氱煡
-     * @param openid
-     * @param orders
-     * @param memberName
-     * @param memberPhone
-     * @throws WxErrorException
-     */
-    public  void  acceptMessage(String openid, Orders orders,String memberName,String memberPhone){
-
-        try{
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎺ュ崟涓氬姟  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            wxMsgVO.setTouser(openid);
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("oVjOBLcHxIlGzOMJsdInmgI5CHGXh-UTvMzQqfFOnIg");
-            Map<String, TemplateData> m = new HashMap<>(4);
-            m.put("character_string3", new TemplateData(orders.getCode()));
-            m.put("thing1", new TemplateData(Constants.orderType.getName(orders.getType())));
-            m.put("thing15", new TemplateData(memberName));
-            m.put("phone_number8", new TemplateData(memberPhone));
-            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
-                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
-            pageUrl = pageUrl.replace("{id}",orders.getId().toString());
-            wxMsgVO.setPage(pageUrl);
-            wxMsgVO.setData(m);
-            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎺ュ崟閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
-            String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎺ュ崟閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
-        }catch (WxErrorException wxErrorException){
-
-        }
-
-    }
-
-
-    public  void  orderUpdMessage(String openid, Orders orders){
-
-        try{
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙樻洿閫氱煡  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            wxMsgVO.setTouser(openid);
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk");
-            Map<String, TemplateData> m = new HashMap<>(3);
-            m.put("character_string1", new TemplateData(orders.getCode()));
-            m.put("thing3", new TemplateData("鍙樻洿璁㈠崟鏃ユ湡"));
-            //鍙樻洿鍚庢棩鏈燂細07-23鑷�07-25
-            m.put("thing5", new TemplateData("鍙樻洿鍚庢棩鏈燂細" +DateUtil.getFomartDate(orders.getStartDate(),"MM-dd") + "鑷�" +DateUtil.getFomartDate(orders.getEndDate(),"MM-dd")));
-            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
-                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
-            pageUrl = pageUrl.replace("{id}",orders.getId().toString());
-            wxMsgVO.setPage(pageUrl);
-            wxMsgVO.setData(m);
-            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
-            String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
-        }catch (WxErrorException wxErrorException){
-
-        }
-
-    }
-
-
-
-
-    public  void  withdrawalMessage(String openid, WithdrawalOrders withdrawalOrders){
-        try{
-
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎻愮幇鎴愬姛閫氱煡  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            wxMsgVO.setTouser(openid);
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("fNJy4545hcrH83bP3a1vszs7XEKWjXMsrfr2XCNsql0");
-            Map<String, TemplateData> m = new HashMap<>(4);
-            m.put("phrase2", new TemplateData("宸叉墦娆�"));
-            m.put("amount1", new TemplateData((new BigDecimal(withdrawalOrders.getAmount().toString()).divide(new BigDecimal("100"))).toString()));
-            m.put("time3", new TemplateData(DateUtil.getFomartDate(withdrawalOrders.getUpdateTime(),"yyyy.MM.dd HH.mm.ss")));
-            m.put("thing4", new TemplateData("鎵撴鎴愬姛锛岃娉ㄦ剰鏌ユ敹"));
-            wxMsgVO.setPage(balanceUrl);
-            wxMsgVO.setData(m);
-            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
-            String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
-        }catch (WxErrorException wxErrorException){
-
-        }
-    }
-
-
-    public  void  revenueMessage(String openid, Orders orders){
-        try{
-
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鏀剁泭閫氱煡  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            wxMsgVO.setTouser(openid);
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("tDpYImlrdv-0d3euTrHbYZ1cEZvjVHTNlqHvV0tpLHg");
-            Map<String, TemplateData> m = new HashMap<>(5);
-            m.put("character_string8", new TemplateData(orders.getCode()));
-            m.put("phrase3", new TemplateData("宸叉敮浠�"));
-            m.put("phrase4", new TemplateData("寰俊鏀粯"));
-            m.put("amount6", new TemplateData((new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100")))+"鍏�"));
-            m.put("date7", new TemplateData(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss")));
-            wxMsgVO.setPage(balanceUrl);
-            wxMsgVO.setData(m);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(wxMsgVO));
-            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-            String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
-        }catch (WxErrorException wxErrorException){
-
-        }
-    }
-
-
-    public  void  autoDispatchMessage(String openid, Orders orders,double distance){
-        try{
-
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鏈嶅姟娲惧崟  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            wxMsgVO.setTouser(openid);
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("1h6JYpQf-mDKV4tYQ6gGDONfx1awqtm3-y9W8vUraT4");
-            Map<String, TemplateData> m = new HashMap<>(5);
-            m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType())));
-            m.put("thing3", new TemplateData(orders.getOrderContent()));
-            m.put("phrase4", new TemplateData("姝ゅ湴璺濈鎮�"+distance+"鍏噷"));
-            m.put("amount28", new TemplateData(orders.getEstimatedAccount().toString()));
-            m.put("thing12", new TemplateData("宸ュ崟灏嗕簬"+DateUtil.formatDate(orders.getStartDate(),"MM-dd")+"寮�濮�"));
-            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
-                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
-            pageUrl = pageUrl.replace("{id}",orders.getId().toString());
-            wxMsgVO.setPage(pageUrl);
-            wxMsgVO.setData(m);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(wxMsgVO));
-            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-            String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-//                    ResponseEntity<String> responseEntity =
-//                            restTemplate.postForEntity(url, wxMsgVO, String.class);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(responseEntity));
-        }catch (WxErrorException wxErrorException){
-
-        }
-    }
-
-    public  void  waitPayMessage(String openid, Orders orders){
-        try{
-
-            String accessToken = WxMiniConfig.wxMaService.getAccessToken();
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟閲戦纭寰呮敮浠�  -> accessToken锛歿}",accessToken);
-            //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
-            String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
-            //鎷兼帴鎺ㄩ�佺殑妯$増
-            WxMsgVO wxMsgVO = new WxMsgVO();
-            wxMsgVO.setTouser(openid);
-            //璁㈤槄娑堟伅妯℃澘id
-            wxMsgVO.setTemplate_id("3rOz7DAnawrkKDM8b5_XW4FLivISWYov6d7QSC4ORsg");
-            Map<String, TemplateData> m = new HashMap<>(5);
-            m.put("character_string1", new TemplateData(orders.getCode()));
-            m.put("thing7", new TemplateData( Constants.getOrderInfo(orders)));
-            m.put("amount14", new TemplateData(new BigDecimal(orders.getPayAccount().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP).toString()));
-            String pageUrl = Constants.equalsInteger(orders.getType(),Constants.orderType.hyd.getKey())?orderDetailFreight:
-                    Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())?orderDetailFood:orderDetail;
-            pageUrl = pageUrl.replace("{id}",orders.getId().toString());
-            wxMsgVO.setPage(pageUrl);
-            wxMsgVO.setData(m);
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟閲戦纭寰呮敮浠橈細{}", JSONObject.toJSONString(wxMsgVO));
-            //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
-            String responseEntity  = HttpsUtil.postJson(url,JSONObject.toJSONString(wxMsgVO));
-            log.error("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟閲戦纭寰呮敮浠橈細{}", JSONObject.toJSONString(responseEntity));
-        }catch (WxErrorException wxErrorException){
-
-        }
-    }
 }
diff --git a/server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java
deleted file mode 100644
index 736d9f3..0000000
--- a/server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.doumee.config.wx;
-
-import com.alibaba.fastjson.JSONObject;
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.constants.Constants;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.HttpsUtil;
-import com.doumee.dao.business.WithdrawalOrdersMapper;
-import com.doumee.dao.business.model.Orders;
-import com.doumee.dao.business.model.WithdrawalOrders;
-import com.doumee.dao.system.model.SystemDictData;
-import com.wechat.pay.java.service.refund.model.AmountReq;
-import com.wechat.pay.java.service.refund.model.CreateRequest;
-import com.wechat.pay.java.service.refund.model.QueryByOutRefundNoRequest;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-
-/**
- * 寰俊灏忕▼搴�-鍏叡鏂规硶
- */
-@Service
-@Slf4j
-public class WxMiniUtilService {
-
-    @Autowired
-    private WithdrawalOrdersMapper withdrawalOrdersMapper;
-
-    @Autowired
-    private SystemDictDataBiz systemDictDataBiz;
-
-    @Autowired
-    private WxPayProperties wxPayProperties;
-
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public boolean wxRefund(WithdrawalOrders withdrawalOrders,Orders orders) {
-//        // 鍙戦�侀��娆捐姹�
-//        withdrawalOrders.setCreateTime(new Date());
-//        withdrawalOrdersMapper.insert(withdrawalOrders);
-//        CreateRequest request = new CreateRequest();
-//        request.setOutTradeNo(orders.getOutTradeNo());
-//        request.setOutRefundNo(withdrawalOrders.getId().toString());
-//        request.setSubMchid(WxMiniConfig.wxProperties.getSubMchId());
-//        request.setNotifyUrl(WxMiniConfig.wxProperties.getRefundNotifyUrl());
-//        AmountReq amountReq = new AmountReq();
-//        amountReq.setTotal(1L);//withdrawalOrders.getAmount());
-//        amountReq.setRefund(1L);//withdrawalOrders.getAmount());
-//        amountReq.setCurrency("CNY");
-//        request.setAmount(amountReq);
-//        try {
-//            log.error("=============="+JSONObject.toJSONString(request));
-//            com.wechat.pay.java.service.refund.model.Refund response = WxMiniConfig.wxPayService.refund(request);
-//            log.error("=============="+JSONObject.toJSONString(response));
-//            if ("SUCCESS".equals(response.getStatus().name())
-//                    || "PROCESSING".equals(response.getStatus().name()) ) {
-//                return  true;
-//            }else{
-//                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝閫�娆剧敵璇峰け璐ュ摝锛�");
-//            }
-//        }catch (Exception e){
-//            e.printStackTrace();
-//            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝閫�娆剧敵璇峰け璐ワ紒");
-//        }
-        return false;
-    }
-
-
-
-}
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index f415282..0e3677d 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -1,6 +1,5 @@
 package com.doumee.core.constants;
 
-import com.doumee.dao.business.model.Orders;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -55,15 +54,6 @@
     public static final String PRIVACY_AGREEMENT ="PRIVACY_AGREEMENT" ;
 
 
-    public static final String RELEASE_CANCEL_TIMES ="RELEASE_CANCEL_TIMES" ;
-    public static final String RECEIVE_CANCEL_TIMES ="RECEIVE_CANCEL_TIMES" ;
-    public static final String RELEASE_CANCEL_TIME ="RELEASE_CANCEL_TIME" ;
-    public static final String RECEIVE_CANCEL_TIME ="RECEIVE_CANCEL_TIME" ;
-    public static final String AUTO_DISPATCH ="AUTO_DISPATCH" ;
-    public static final String AUTO_DISPATCH_DISTANCE ="AUTO_DISPATCH_DISTANCE" ;
-    public static final String AUTO_CONFIRM ="AUTO_CONFIRM" ;
-    public static final String AUTO_CANCEL_WAIT_PAY ="AUTO_CANCEL_WAIT_PAY" ;
-
     public static final String QYWX = "QYWX";
     public static final  Integer ONE = 1;
     public static final Integer TWO = 2;
@@ -75,7 +65,7 @@
     public static final String INENTITY_FILES = "INENTITY_FILES";
     public static final String MEMBER_FILES = "MEMBER_FILES";
     public static final String CATEGORY_FILES = "CATEGORY_FILES";
-    public static final String ORDERS_FILES = "ORDERS_FILES";
+    public static final String SHOP_FILES = "SHOP_FILES";
     public static boolean WORKORDER_SHE_EMAIL_SENDING = false;
     public static  boolean DEALING_COMPANY_SYNC = false ;
     public static  boolean DEALING_MEMBER_SYNC = false ;
@@ -98,9 +88,6 @@
      * 缂撳瓨Key
      */
     interface CacheKey {
-    }
-    public interface RedisKeys {
-        public static final String ORDER_CODE = "ORDER_CODE";
     }
     /**
      * 鎿嶄綔绫诲瀷锛岀敤浜庡仛鎺ュ彛楠岃瘉鍒嗙粍
@@ -371,390 +358,29 @@
         }
     }
 
+
     /**
-     * 鐢ㄦ埛鏀舵敮涓氬姟绫诲瀷
-     * 鍙樺姩绫诲瀷:0=鐢ㄥ伐鍗曟敹鍏ワ紱1=璐ц繍鍗曟敹鍏ワ紱2=渚涢鍗曟敹鍏ワ紱3=鎻愮幇鐢宠锛�
+     * 闄勪欢绫诲瀷锛堝搴� multifile.objType锛�
      */
     @Getter
-    public enum RevenueType {
-
-        YGD_INCOME(  0, "鐢ㄥ伐鍗曟敹鍏�","鐢ㄥ伐鍗�" ,0),
-        HYD_INCOME(  1, "璐ц繍鍗曟敹鍏�","璐ц繍鍗�" ,0),
-        GCD_INCOME(2, "渚涢鍗曟敹鍏�","渚涢鍗�" ,0),
-        WITHDRAW_APPLY(3, "鎻愮幇鐢宠","鎻愮幇鐢宠" ,0),
-        REFUND(  4, "鎻愮幇鐢宠閫�鍥�","鎻愮幇鐢宠閫�鍥�" ,0)
+    @AllArgsConstructor
+    public enum FileType {
+        OTHER_MATERIAL(0, "闂ㄥ簵鍏朵粬鏉愭枡"),
+        STORE_INTERIOR(1, "闂ㄥ簵鍐呴儴鐓х墖"),
+        ORDER_DEPOSIT(2, "璁㈠崟瀵勫瓨鍥剧墖"),
+        ORDER_TAKE(3, "璁㈠崟鍙栦欢鍥剧墖"),
+        DRIVER_TAKE(4, "鍙告満鍙栦欢鍥剧墖"),
+        DRIVER_DONE(5, "鍙告満瀹屾垚鍥剧墖"),
+        DRIVER_CAR(6, "鍙告満瀹炲悕璁よ瘉杞﹁締鐓х墖"),
+        DRIVER_LICENSE(7, "鍙告満瀹炲悕璁よ瘉椹鹃┒璇佺収鐗�"),
+        DRIVER_OTHER(8, "鍙告満瀹炲悕璁よ瘉鍏朵粬鍥剧墖"),
+        STORE_FRONT(9, "闂ㄥ簵闂ㄥご鐓�"),
+        SOCIAL_SECURITY(10, "绀句繚缂寸撼璇佹槑"),
+        LABOR_CONTRACT(11, "鏈夋晥鍔冲姩鍚堝悓"),
         ;
 
-        private int key;
-        private String name;
-        private  String info;
-        private int navIndex;
-
-        RevenueType(int key, String name, String info,int navIndex) {
-            this.info = info;
-            this.key = key;
-            this.name = name;
-            this.navIndex = navIndex;
-        }
-        public static RevenueType getObj(int index) {
-            for (RevenueType c : RevenueType.values()) {
-                if (c.getKey() == index) {
-                    return c;
-                }
-            }
-            return null;
-        }
-        public static String getName(int index) {
-            for (RevenueType c : RevenueType.values()) {
-                if (c.getKey() == index) {
-                    return c.getName();
-                }
-            }
-            return null;
-        }
-        public static String getInfo(int index) {
-            for (RevenueType c : RevenueType.values()) {
-                if (c.getKey() == index) {
-                    return c.getInfo();
-                }
-            }
-            return null;
-        }
-        public static String getObjName(int index) {
-            for (RevenueType c : RevenueType.values()) {
-                if (c.getKey() == index) {
-                    return c.getName();
-                }
-            }
-            return null;
-        }
-
-
-    }
-
-
-
-
-    public  enum OrdersLog {
-        UPLOAD(0, "鍙戝崟鏂�-鍙戝竷璁㈠崟","{userName}鍙戝竷{param}",0),
-        RECEIVE(1, "鎺ュ崟鏂�-宸叉姠鍗�","{userName}宸叉姠鍗�",1),
-        UPD_ORDER(2, "鍙戝崟鏂�-淇敼璁㈠崟","{userName}淇敼浜嗙敤宸ユ椂闂�",0),
-        UPD_DISAGREE(3, "鎺ュ崟鏂�-涓嶅悓鎰忎慨鏀�,璁㈠崟鍙栨秷","{userName}涓嶅悓鎰忎慨鏀癸紝璁㈠崟鍙栨秷",1),
-        UPD_AGREE(4, "鎺ュ崟鏂�-鍚屾剰淇敼","{userName}鍚屾剰淇敼",1),
-        AUTO(5, "绯荤粺-鑷姩娲惧崟","鏃犱汉鎺ュ崟宸茶嚜鍔ㄦ淳鍗曠粰{userName}",1),
-        CANCEL(6, "鎺ュ崟鏂�-鍙栨秷鎺ュ崟","{userName}宸叉墜鍔ㄥ彇娑堟帴鍗�",1),
-        BEGIN(7, "鍙戝崟鏂�-寮�濮嬩綔涓�","{userName}宸插紑濮嬩綔涓�",0),
-        DONE(8, "鍙戝崟鏂�-瀹屾垚浣滀笟","{userName}宸茬‘璁ゅ畬鎴愪綔涓�",0),
-        PAY(9, "鍙戝崟鏂�-瀹屾垚鏀粯","{userName}宸叉敮浠樿垂鐢�",0),
-        COMMENT(10, "鍙戝崟鏂�-璇勪环瀹屾垚","{userName}瀹屾垚璇勪环",0),
-        SYSTEM_CANCEL(11, "绯荤粺-璁㈠崟鍙栨秷","绯荤粺鍙栨秷",2),
-        RELEASE_CANCEL(12, "鍙戝崟鏂�-璁㈠崟鍙栨秷","{userName}宸叉墜鍔ㄥ彇娑堣鍗�",0),
-        AUTO_COMMENT(13, "绯荤粺-鑷姩璇勪环","瓒呭嚭7鏃ユ湭璇勪环锛岀郴缁熷凡鑷姩璇勪环",2),
-        AUTO_AGREE(14, "绯荤粺-鑷姩鍚屾剰","鎺ュ崟鏂硅秴鏃舵湭澶勭悊锛屽凡鑷姩鍚屾剰",2),
-
-        FEE_CONFIRM(15, "鎺ュ崟鏂�-纭璐圭敤","{userName}宸茬‘璁よ垂鐢�",1),
-
-        ;
-        // 鎴愬憳鍙橀噺
-        private String name;
-        private String info;
-        private int key;
-        private int userType;
-
-        // 鏋勯�犳柟娉�
-        OrdersLog(int key, String name,String info,int userType) {
-            this.name = name;
-            this.info = info;
-            this.key = key;
-            this.userType = userType;
-        }
-
-        // 鏅�氭柟娉�
-        public static String getName(int index) {
-            for (OrdersLog c : OrdersLog.values()) {
-                if (c.getKey() == index) {
-                    return c.name;
-                }
-            }
-            return null;
-        }
-        public static String getInfo(int index) {
-            for (OrdersLog c : OrdersLog.values()) {
-                if (c.getKey() == index) {
-                    return c.info;
-                }
-            }
-            return null;
-        }
-
-        // get set 鏂规硶
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public int getKey() {
-            return key;
-        }
-
-        public void setKey(int key) {
-            this.key = key;
-        }
-
-        public int getUserType() {
-            return userType;
-        }
-
-        public void setUserType(int key) {
-            this.userType = userType;
-        }
-
-        public String getInfo() {
-            return info;
-        }
-
-        public void setInfo(String info) {
-            this.info = info;
-        }
-    }
-
-
-    public  enum workType {
-        czg(0, "閲囨憳宸�"),
-        fjg(1, "鍒嗘嫞宸�"),
-        bzg(2, "鍖呰宸�"),
-
-        ;
-        // 鎴愬憳鍙橀噺
-        private int key;
-        private String name;
-
-        // 鏋勯�犳柟娉�
-        workType(int key, String name) {
-            this.name = name;
-            this.key = key;
-        }
-
-        // 鏅�氭柟娉�
-        public static String getName(int index) {
-            for (workType c : workType.values()) {
-                if (c.getKey() == index) {
-                    return c.name;
-                }
-            }
-            return null;
-        }
-        // get set 鏂规硶
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public int getKey() {
-            return key;
-        }
-
-        public void setKey(int key) {
-            this.key = key;
-        }
-
-    }
-
-
-    public  enum ordersStatus {
-        waitPay(0, "寰呮敮浠�","寰呮敮浠�"),
-        wait(1, "寰呮帴鍗�","寰呮帴鍗�"),
-        accept(2, "宸叉帴鍗�","宸叉帴鍗�"),
-        doing(3, "杩涜涓�","杩涜涓�"),
-        done(4, "宸插畬鎴�","宸插畬鎴�"),
-        feeconfirm(5, "寰呮敮浠�","寰呭彂鍗曟柟鏀粯"),//閲戦宸茬‘璁�
-        cancel(99, "宸插彇娑�","宸插彇娑�"),
-        ;
-        // 鎴愬憳鍙橀噺
-        private int key;
-        private String name; //鎺ュ崟鏂规枃妗�
-        private String info; //鍙戝崟鏂规枃妗�
-        // 鏋勯�犳柟娉�
-        ordersStatus(int key, String name,String info) {
-            this.name = name;
-            this.key = key;
-            this.info = info;
-        }
-
-        // 鏅�氭柟娉�
-        public static String getName(int index) {
-            for (ordersStatus c : ordersStatus.values()) {
-                if (c.getKey() == index) {
-                    return c.name;
-                }
-            }
-            return null;
-        }
-
-        public static String getInfo(int index) {
-            for (ordersStatus c : ordersStatus.values()) {
-                if (c.getKey() == index) {
-                    return c.info;
-                }
-            }
-            return null;
-        }
-        // get set 鏂规硶
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public int getKey() {
-            return key;
-        }
-
-        public void setKey(int key) {
-            this.key = key;
-        }
-
-        public String getInfo() {
-            return info;
-        }
-
-        public void setInfo(String info) {
-            this.info = info;
-        }
-
-    }
-
-
-
-    public  enum orderType {
-        ygd(0, "鐢ㄥ伐鍗�"),
-        hyd(1, "璐ц繍鍗�"),
-        scd(2, "閫侀鍗�"),
-
-        ;
-        // 鎴愬憳鍙橀噺
-        private int key;
-        private String name;
-
-        // 鏋勯�犳柟娉�
-        orderType(int key, String name) {
-            this.name = name;
-            this.key = key;
-        }
-
-        // 鏅�氭柟娉�
-        public static String getName(int index) {
-            for (orderType c : orderType.values()) {
-                if (c.getKey() == index) {
-                    return c.name;
-                }
-            }
-            return null;
-        }
-        // get set 鏂规硶
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public int getKey() {
-            return key;
-        }
-
-        public void setKey(int key) {
-            this.key = key;
-        }
-
-    }
-
-
-
-    public  enum smsContent {
-        accept(0, "SMS_491325122","鎮ㄧ殑{order}璁㈠崟宸茶鎺ュ崟锛佹椂闂达細{time1}-{time2}锛屽彲杩涘叆灏忕▼搴忚仈绯绘帴鍗曟柟銆�"),
-        receiveCancel(1, "SMS_491055243","鎮ㄧ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡琚帴鍗曟柟鍙栨秷锛岃鍗曞凡閲嶆柊杩涘叆鎺ュ崟澶у巺銆�"),
-        platformCancel(2, "SMS_491375152","鎮ㄧ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2},宸茬敱骞冲彴鍙栨秷銆傚鏈夌枒闂鑱旂郴瀹㈡湇銆�"),
-        agreeUpd(3, "SMS_491190259","鎺ュ崟鏂瑰凡鍚屾剰鎮ㄥ皢{order}鐨勮鍗曟椂闂翠慨鏀逛负{time1}鑷硔time2}銆�"),
-        disAgreeUpd(4, "SMS_491085252","鎺ュ崟鏂瑰凡鎷掔粷鎮ㄥ皢{order}鐨勮鍗曟椂闂翠慨鏀逛负{time1}-{time2}銆傜郴缁熷凡閲嶆柊灏嗚鍗曟斁鍏ユ帴鍗曞ぇ鍘呫��"),
-        orderUpd(5, "SMS_491010267","璇锋敞鎰忥紒鎮ㄦ壙鎺ョ殑{order}璁㈠崟锛屽鎴峰皢璁㈠崟鏃堕棿淇敼涓簕time1}-{time2}銆傝鍓嶅線纭鏄惁鎺ュ彈锛岃秴鏃朵笉澶勭悊灏嗚涓哄悓鎰忋��"),
-        releaseCancel(6, "SMS_491150253","鎮ㄦ壙鎺ョ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡琚彂鍗曟柟鍙栨秷銆傛偍鍙墠寰�鎺ュ崟澶у巺閲嶆柊鎺ュ崟銆�"),
-        platformCancel2(7, "SMS_491420143","鎮ㄦ壙鎺ョ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡鐢卞钩鍙板彇娑堛�傚鏈夌枒闂鑱旂郴瀹㈡湇銆�"),
-        dispatch(8, "SMS_491180276","宸蹭负鎮ㄦ櫤鑳藉尮閰嶈鍗曘�傝鍗曠被鍨嬶細{order}锛屾椂闂达細{time1}-{time2}锛岃窛绂伙細{distance}锛岄璁¤垂鐢▄money}銆傝鍓嶅線纭銆�"),
-        pay(9, "SMS_491180278","鎮ㄦ壙鎺ョ殑{order}璁㈠崟娆鹃」宸插埌璐︼紒鍒拌处閲戦锛歿money}銆傚彲鍦ㄥ皬绋嬪簭璐︽埛浣欓杩涜鏌ョ湅銆�"),
-        authentication(10, "SMS_491055290","鎮ㄧ敵璇风殑{authentication}鐨剓order}璁よ瘉{status}銆傝鍦ㄥ皬绋嬪簭鏌ョ湅璇︽儏銆�"),
-        ;
-        // 鎴愬憳鍙橀噺
-        private int key;
-        private String code;
-        private String name;
-
-        // 鏋勯�犳柟娉�
-        smsContent(int key,String code, String name) {
-            this.name = name;
-            this.code = code;
-            this.key = key;
-        }
-
-        // 鏅�氭柟娉�
-        public static Constants.smsContent getSmsContent(int index) {
-            for (smsContent c : smsContent.values()) {
-                if (c.getKey() == index) {
-                    return c;
-                }
-            }
-            return null;
-        }
-        // get set 鏂规硶
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public String getCode() {
-            return code;
-        }
-
-        public void setCode(String code) {
-            this.code = code;
-        }
-
-        public int getKey() {
-            return key;
-        }
-
-        public void setKey(int key) {
-            this.key = key;
-        }
-
-    }
-
-
-    public static  String getOrderInfo(Orders orders){
-        String orderTypeInfo = "鐢ㄥ伐鍗�";
-        if(!Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            orderTypeInfo =   Constants.equalsInteger(orders.getType(),Constants.ONE)?"鐢ㄨ溅鍗�":"閫侀鍗�";
-        }else{
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){
-                orderTypeInfo = orderTypeInfo + "-閲囨憳宸�";
-            }else{
-                orderTypeInfo = orderTypeInfo + (Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"-鍒嗘嫞宸�":"-鍖呰宸�");
-            }
-        }
-        return orderTypeInfo;
-
+        private final int key;
+        private final String name;
     }
 
 
diff --git a/server/services/src/main/java/com/doumee/dao/business/AppVersionMapper.java b/server/services/src/main/java/com/doumee/dao/business/AppVersionMapper.java
new file mode 100644
index 0000000..2b3590f
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/AppVersionMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.doumee.dao.business.model.AppVersion;
+import com.github.yulichang.base.MPJBaseMapper;
+
+/**
+ * APP鐗堟湰Mapper
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface AppVersionMapper extends MPJBaseMapper<AppVersion> {
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/OrderLogMapper.java b/server/services/src/main/java/com/doumee/dao/business/OrderLogMapper.java
deleted file mode 100644
index f228021..0000000
--- a/server/services/src/main/java/com/doumee/dao/business/OrderLogMapper.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.doumee.dao.business;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.doumee.dao.business.model.OrderLog;
-
-/**
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
- */
-public interface OrderLogMapper extends BaseMapper<OrderLog> {
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/business/OrdersDetailMapper.java b/server/services/src/main/java/com/doumee/dao/business/OrdersDetailMapper.java
new file mode 100644
index 0000000..2e8875f
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/OrdersDetailMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.doumee.dao.business.model.OrdersDetail;
+import com.github.yulichang.base.MPJBaseMapper;
+
+/**
+ * 瀵勫瓨璁㈠崟鏄庣粏 Mapper
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface OrdersDetailMapper extends MPJBaseMapper<OrdersDetail> {
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/OrdersMapper.java b/server/services/src/main/java/com/doumee/dao/business/OrdersMapper.java
index f9d3086..0fd5108 100644
--- a/server/services/src/main/java/com/doumee/dao/business/OrdersMapper.java
+++ b/server/services/src/main/java/com/doumee/dao/business/OrdersMapper.java
@@ -1,12 +1,12 @@
 package com.doumee.dao.business;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.Orders;
 import com.github.yulichang.base.MPJBaseMapper;
 
 /**
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 瀵勫瓨璁㈠崟淇℃伅Mapper
+ * @author rk
+ * @date 2026/04/10
  */
 public interface OrdersMapper extends MPJBaseMapper<Orders> {
 
diff --git a/server/services/src/main/java/com/doumee/dao/business/RevenueMapper.java b/server/services/src/main/java/com/doumee/dao/business/RevenueMapper.java
new file mode 100644
index 0000000..36d0d30
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/RevenueMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.doumee.dao.business.model.Revenue;
+import com.github.yulichang.base.MPJBaseMapper;
+
+/**
+ * 鏀舵敮璁板綍Mapper
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface RevenueMapper extends MPJBaseMapper<Revenue> {
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/WithdrawalOrdersMapper.java b/server/services/src/main/java/com/doumee/dao/business/WithdrawalOrdersMapper.java
index b3df52e..a481b8b 100644
--- a/server/services/src/main/java/com/doumee/dao/business/WithdrawalOrdersMapper.java
+++ b/server/services/src/main/java/com/doumee/dao/business/WithdrawalOrdersMapper.java
@@ -1,12 +1,12 @@
 package com.doumee.dao.business;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.business.model.WithdrawalOrders;
+import com.github.yulichang.base.MPJBaseMapper;
 
 /**
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 鎻愮幇鐢宠璁板綍Mapper
+ * @author rk
+ * @date 2026/04/10
  */
-public interface WithdrawalOrdersMapper extends BaseMapper<WithdrawalOrders> {
-
+public interface WithdrawalOrdersMapper extends MPJBaseMapper<WithdrawalOrders> {
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/AppVersion.java b/server/services/src/main/java/com/doumee/dao/business/model/AppVersion.java
new file mode 100644
index 0000000..ff34807
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/model/AppVersion.java
@@ -0,0 +1,94 @@
+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;
+
+/**
+ * APP鐗堟湰
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("APP鐗堟湰")
+@TableName("`app_version`")
+public class AppVersion {
+
+    @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 = "鐗堟湰鍙峰悕绉�")
+    @ExcelColumn(name = "鐗堟湰鍙峰悕绉�")
+    private String versionInfo;
+
+    @ApiModelProperty(value = "瀹夎鍖呰矾寰�")
+    @ExcelColumn(name = "瀹夎鍖呰矾寰�")
+    private String fileUrl;
+
+    @ApiModelProperty(value = "瀹夎鐗堝悕绉�")
+    @ExcelColumn(name = "瀹夎鐗堝悕绉�")
+    private String name;
+
+    @ApiModelProperty(value = "鏇存柊鎻忚堪")
+    @ExcelColumn(name = "鏇存柊鎻忚堪")
+    private String content;
+
+    @ApiModelProperty(value = "鎺掑簭鐮�")
+    @ExcelColumn(name = "鎺掑簭鐮�")
+    private Integer sortnum;
+
+    @ApiModelProperty(value = "鏇存柊鏍囬")
+    @ExcelColumn(name = "鏇存柊鏍囬")
+    private String title;
+
+    @ApiModelProperty(value = "鏄惁寮哄埗鏇存柊 0鍚� 1鏄�", example = "0")
+    @ExcelColumn(name = "鏄惁寮哄埗鏇存柊", valueMapping = "0=鍚�;1=鏄�;")
+    private Integer isForce;
+
+    @ApiModelProperty(value = "骞冲彴绫诲瀷 0=Android 1=IOS", example = "0")
+    @ExcelColumn(name = "骞冲彴绫诲瀷", valueMapping = "0=Android;1=IOS;")
+    private Integer type;
+
+    @ApiModelProperty(value = "鏂囦欢澶у皬 鍗曚綅锛圞B锛�")
+    @ExcelColumn(name = "鏂囦欢澶у皬(KB)")
+    private Long fileSize;
+
+    @ApiModelProperty(value = "鐗堟湰鍙�")
+    @ExcelColumn(name = "鐗堟湰鍙�")
+    private Integer versionNum;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Category.java b/server/services/src/main/java/com/doumee/dao/business/model/Category.java
index ffbc6d3..62bdcfd 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Category.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Category.java
@@ -67,12 +67,12 @@
     @ExcelColumn(name="绫诲瀷:1=杞﹁締绫诲瀷;2=鐗╁搧鍒嗙被;3=鐗╁搧绛夌骇;4=鐗╁搧灏哄;")
     private Integer type;
 
-    @ApiModelProperty(value = "鍐呭 锛坱ype=1锛氶�氳鏂瑰紡; type=2锛氬徃鏈鸿瘎绾э級;")
+    @ApiModelProperty(value = "鍐呭 锛坱ype=1锛氶�氳鏂瑰紡 鏈哄姩杞� = driving 闈炴満鍔ㄨ溅 = bicycling ; type=2=瀵勫瓨璇存槑 锛� type=3锛氬徃鏈鸿瘎绾э紱type=4:鏄惁鐗瑰ぇ灏哄 0=鍚︼紱1=鏄紱锛�;")
     @ExcelColumn(name="鍐呭")
     private String detail;
 
-    @ApiModelProperty(value = "鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級")
-    @ExcelColumn(name="鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級")
+    @ApiModelProperty(value = "鍥炬爣锛堢墿鍝佸昂瀵镐娇鐢級")
+    @ExcelColumn(name="鍥炬爣锛堢墿鍝佸昂瀵镐娇鐢級")
     private String icon;
 
     @ApiModelProperty(value = "鎺掑簭鐮侊紙鍗囧簭锛�")
@@ -83,18 +83,17 @@
     @ExcelColumn(name="鍐呭")
     private String otherField;
 
-    @ApiModelProperty(value = "鏄惁鍥哄畾杞﹁締", example = "1")
-    @ExcelColumn(name="鏄惁鍥哄畾杞﹁締")
-    private Integer isFixed; // 寮冪敤
+
+    @ApiModelProperty(value = "鑷叧鑱斾富閿細鐗╁搧鍒嗙被浣跨敤 鍏宠仈鐗╁搧绛夌骇", example = "1")
+    @ExcelColumn(name="鑷叧鑱斾富閿�")
+    private Integer relationId; // 寮冪敤
 
 
-    @ApiModelProperty(value = "鏄惁鍥哄畾杞﹁締锛堣溅杈嗙被鍨嬩娇鐢級:0=鍚︼紱1=鏄紱", example = "1")
+
+    @ApiModelProperty(value = "淇敼浜�", example = "1")
     @TableField(exist = false)
     private String updateUserName;
 
-    @ApiModelProperty(value = "椁愭爣绛夐厤缃」闆嗗悎", example = "1")
-    @TableField(exist = false)
-    private JSONArray detailList;
 
     @ApiModelProperty(value = "鍥炬爣鍏ㄨ矾寰�")
     @TableField(exist = false)
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Multifile.java b/server/services/src/main/java/com/doumee/dao/business/model/Multifile.java
index 11bc06d..8ff48b7 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Multifile.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Multifile.java
@@ -53,7 +53,8 @@
     @ApiModelProperty(value = "绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬", example = "1")
     private Integer type;
 
-    @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷锛�0=闂ㄥ簵鍏朵粬鏉愭枡锛�1=闂ㄥ簵鍐呴儴鐓х墖锛�2=璁㈠崟瀵勫瓨鍥剧墖锛�3=璁㈠崟鍙栦欢鍥剧墖锛�4=鍙告満鍙栦欢鍥剧墖锛�5=鍙告満瀹屾垚鍥剧墖锛�6=鍙告満瀹炲悕璁よ瘉杞﹁締鐓х墖锛�7=鍙告満瀹炲悕璁よ瘉椹鹃┒璇佺収鐗囷紱8=鍙告満瀹炲悕璁よ瘉鍏朵粬鍥剧墖锛�" +
+    @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷锛�0=闂ㄥ簵鍏朵粬鏉愭枡锛�1=闂ㄥ簵鍐呴儴鐓х墖锛�2=璁㈠崟瀵勫瓨鍥剧墖锛�3=璁㈠崟鍙栦欢鍥剧墖锛�4=鍙告満鍙栦欢鍥剧墖锛�5=鍙告満瀹屾垚鍥剧墖锛�6=鍙告満瀹炲悕璁よ瘉杞﹁締鐓х墖锛�" +
+            "7=鍙告満瀹炲悕璁よ瘉椹鹃┒璇佺収鐗囷紱8=鍙告満瀹炲悕璁よ瘉鍏朵粬鍥剧墖锛�" +
             "9=闂ㄥ簵闂ㄥご鐓э紱10=绀句繚缂寸撼璇佹槑锛�11=鏈夋晥鍔冲姩鍚堝悓锛�", example = "1")
     private Integer objType;
 
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/OrderLog.java b/server/services/src/main/java/com/doumee/dao/business/model/OrderLog.java
deleted file mode 100644
index 23af747..0000000
--- a/server/services/src/main/java/com/doumee/dao/business/model/OrderLog.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.doumee.dao.business.model;
-
-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/07/09 12:00
- */
-@Data
-@ApiModel("璁㈠崟鎿嶄綔鏃ュ織")
-@TableName("`order_log`")
-public class OrderLog {
-
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name="涓婚敭")
-    private Integer id;
-
-    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
-    @ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
-    private Integer deleted;
-
-    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
-    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
-    private Integer createUser;
-
-    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name="鍒涘缓鏃堕棿")
-    private Date createTime;
-
-    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
-    @ExcelColumn(name="鏇存柊浜虹紪鐮�")
-    private Integer updateUser;
-
-    @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name="鏇存柊鏃堕棿")
-    private Date updateTime;
-
-    @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name="澶囨敞")
-    private String remark;
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭锛坥rders锛�", example = "1")
-    @ExcelColumn(name="璁㈠崟涓婚敭锛坥rders锛�")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "鏍囬")
-    @ExcelColumn(name="鏍囬")
-    private String title;
-
-    @ApiModelProperty(value = "鏃ュ織鍐呭")
-    @ExcelColumn(name="鏃ュ織鍐呭")
-    private String logInfo;
-
-    @ApiModelProperty(value = "鎿嶄綔绫诲瀷", example = "1")
-    @ExcelColumn(name="鎿嶄綔绫诲瀷")
-    private Integer objType;
-
-    @ApiModelProperty(value = "鎿嶄綔浜�", example = "1")
-    @ExcelColumn(name="鎿嶄綔浜�")
-    private Integer memberId;
-
-    @ApiModelProperty(value = "鎿嶄綔鍓嶆暟鎹�")
-    @ExcelColumn(name="鎿嶄綔鍓嶆暟鎹�")
-    private String beforeInfo;
-
-    @ApiModelProperty(value = "鎿嶄綔鍚庢暟鎹�")
-    @ExcelColumn(name="鎿嶄綔鍚庢暟鎹�")
-    private String afterInfo;
-
-    @ApiModelProperty(value = "璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱", example = "1")
-    @ExcelColumn(name="璁㈠崟鐘舵��:0=寰呮帴鍗曪紱1=宸叉帴鍗曪紱2=杩涜涓紱3=宸插畬鎴愶紱99=宸插彇娑堬紱")
-    private Integer orderStatus;
-
-
-
-    @ApiModelProperty(value = "鎿嶄綔浜虹被鍨嬶細0=鍙戝崟鏂�;1=鎺ュ崟鏂�;2=绯荤粺;", example = "1")
-    @ExcelColumn(name="鎿嶄綔浜虹被鍨嬶細0=鍙戝崟鏂�;1=鎺ュ崟鏂�;2=绯荤粺;")
-    private Integer optUserType;
-}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Orders.java b/server/services/src/main/java/com/doumee/dao/business/model/Orders.java
index d0d91e4..f4a690c 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/Orders.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Orders.java
@@ -1,402 +1,350 @@
 package com.doumee.dao.business.model;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelColumn;
-import com.doumee.dao.dto.CateringDTO;
-import com.doumee.dao.dto.WayInfoDTO;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
+import com.doumee.core.annotation.excel.ExcelColumn;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
 import java.math.BigDecimal;
-import java.util.List;
+import java.util.Date;
 
 /**
- * 璁㈠崟淇℃伅璁板綍
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 瀵勫瓨璁㈠崟淇℃伅
+ * @author rk
+ * @date 2026/04/10
  */
 @Data
-@ApiModel("璁㈠崟淇℃伅璁板綍")
+@ApiModel("瀵勫瓨璁㈠崟淇℃伅")
 @TableName("`orders`")
 public class Orders {
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
+    @ExcelColumn(name = "涓婚敭")
     private Integer id;
 
-    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
+    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "0")
+    @ExcelColumn(name = "鏄惁宸插垹闄�")
     private Integer deleted;
 
     @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    @ExcelColumn(name = "鍒涘缓浜虹紪鐮�")
     private Integer createUser;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name = "鍙戝竷鏃堕棿",index = 8,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @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 = "鍙戝崟鏂�", example = "1")
-    private Integer releaseMemberId;
+    @ApiModelProperty(value = "浼氬憳涓婚敭", example = "1")
+    @ExcelColumn(name = "浼氬憳涓婚敭")
+    private Integer memberId;
 
-    @ApiModelProperty(value = "绫诲瀷:0=鐢ㄥ伐锛�1=杩愯揣锛�2=璁㈤", example = "1")
-    @ExcelColumn(name = "璁㈠崟绫诲瀷",valueMapping = "0=鐢ㄥ伐鍗�;1=璐ц繍鍗�;2=璁㈤鍗�;",index = 2,width = 10)
+    @ApiModelProperty(value = "瀵勫瓨鏂瑰紡:0=灏卞湴瀛樺彇锛�1=寮傚湴瀛樺彇", example = "0")
+    @ExcelColumn(name = "瀵勫瓨鏂瑰紡", valueMapping = "0=灏卞湴瀛樺彇;1=寮傚湴瀛樺彇;")
     private Integer type;
 
-    @ApiModelProperty(value = "寮�濮嬫椂闂� yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date startDate;
+    @ApiModelProperty(value = "鏄惁蹇呴』鏈汉绛炬敹锛�0=鍚︼紱1=鏄�", example = "0")
+    @ExcelColumn(name = "鏈汉绛炬敹", valueMapping = "0=鍚�;1=鏄�;")
+    private Integer selfTake;
 
-    @ApiModelProperty(value = "缁撴潫鏃堕棿 yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date endDate;
-
-    @ApiModelProperty(value = "鍦扮偣淇℃伅/鐢ㄨ溅璧风偣/鐢ㄩ鍦扮偣")
-    private String location;
-
-    @ApiModelProperty(value = "鍦扮偣鎻忚堪")
-    private String locationRemark;
-
-    @ApiModelProperty(value = "缁忓害", example = "1")
-    private BigDecimal lat;
-
-    @ApiModelProperty(value = "鐪佷唤")
-    private String province;
-
-    @ApiModelProperty(value = "鍩庡競")
-    private String city;
-
-    @ApiModelProperty(value = "鍖哄幙")
-    private String area;
-
-    @ApiModelProperty(value = "绾害", example = "1")
-    private BigDecimal lgt;
-
-    @ApiModelProperty(value = "闇�姹傜被鍨嬶紙杩愯揣/鐢ㄥ伐)锛氬叧鑱� category", example = "1")
-    private Integer categoryId;
-
-    @ApiModelProperty(value = "鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級", example = "1")
-    private Integer workType;
-
-    @ApiModelProperty(value = "璁′环鏁伴噺1((閲嶉噺/浜烘暟/锛堝ぉ鏁�/灏忔椂/閲嶉噺锛�/锛堝ぉ鏁�/娆℃暟锛�/鐢ㄩ澶╂暟)", example = "1")
-    private Integer priceNum1;
-
-    @ApiModelProperty(value = "璁′环鏁伴噺2(鍒嗘嫞宸�/鍖呰宸� 浜烘暟)", example = "1")
-    private Integer priceNum2;
-
-    @ApiModelProperty(value = "锛堝彂鍗曟柟璁剧疆锛夎浠锋暟閲�1((閲嶉噺/浜烘暟/锛堝ぉ鏁�/灏忔椂/閲嶉噺锛�/锛堝ぉ鏁�/娆℃暟锛�/鐢ㄩ澶╂暟)", example = "1")
-    private Integer originPriceNum1;
-
-    @ApiModelProperty(value = "锛堝彂鍗曟柟璁剧疆锛夎浠锋暟閲�2(鍒嗘嫞宸�/鍖呰宸� 浜烘暟)", example = "1")
-    private Integer originPriceNum2;
-
-    @ApiModelProperty(value = "闇�姹傝ˉ鍏�")
-    private String supplement;
-
-    @ApiModelProperty(value = "璐圭敤鏍囧噯", example = "1")
-    private BigDecimal price;
-
-    @ApiModelProperty(value = "棰勪及璐圭敤", example = "1")
-    private Long estimatedAccount;
-    @ApiModelProperty(value = "鎺ュ崟鏂圭‘璁ゅ叾浠栬垂鐢紙鍒嗭級", example = "1")
-    private Long confirmOtherFee;
-    @ApiModelProperty(value = "鎺ュ崟鏂圭‘璁よ垂鐢ㄥ娉�", example = "1")
-    private String confirmFeeRemark;
-
-    @ApiModelProperty(value = "(鍙戝崟鏂硅缃級棰勪及璐圭敤", example = "1")
-    private Long originEstimatedAccount;
-
-    @ApiModelProperty(value = "瀹為檯鏀粯璐圭敤", example = "1")
-    private Long payAccount;
-
-    @ApiModelProperty(value = "瀹炴敹璐圭敤", example = "1")
-    private Long receiveAccount;
-
-    @ApiModelProperty(value = "鐢ㄨ溅绫诲瀷(鐢ㄥ伐鍖呰/杩愯揣浣跨敤):0=澶�;1=娆�/灏忔椂;2=閲嶉噺", example = "1")
-    private Integer carType;
-
-    @ApiModelProperty(value = "杩愯緭鍝佺(杩愯揣浣跨敤) 鍏宠仈category琛�", example = "1")
-    private Integer transportTypeId;
-
-    @ApiModelProperty(value = "杩愯緭閲嶉噺/鏁伴噺", example = "1")
-    private Integer transportNum;
-
-    @ApiModelProperty(value = "杩愯緭鍗曚綅(涓�/鏂�)")
-    private String transportUnit;
-
-    @ApiModelProperty(value = "鐢ㄨ溅缁堢偣鍦板潃")
-    private String locationEnd;
-
-    @ApiModelProperty(value = "鐢ㄨ溅缁堢偣缁忓害")
-    private String latEnd;
-
-    @ApiModelProperty(value = "鐢ㄨ溅缁堢偣绾害")
-    private String lgtEnd;
-
-    @ApiModelProperty(value = "閫旂粡鐐�/椁愭爣淇℃伅")
-    private String wayInfo;
-
-    @ApiModelProperty(value = "璁㈠崟缂栧彿")
-    @ExcelColumn(name = "璁㈠崟缂栧彿",index = 1,width = 10)
-    private String code;
-
-    @ApiModelProperty(value = "璁㈠崟鐘舵��:0=寰呮敮浠� 1=寰呮帴鍗曪紱2=宸叉帴鍗曪紱3=杩涜涓紱4=宸插畬鎴愶紱5=宸茬‘璁ら噾棰濓紱99=宸插彇娑堬紱", example = "1")
-    @ExcelColumn(name = "璁㈠崟鐘舵��",index = 11,width = 10,valueMapping = "0=寰呮敮浠�;1=寰呮帴鍗�;2=宸叉帴鍗�;3=杩涜涓�;4=宸插畬鎴�;5=寰呮敮浠�;99=宸插彇娑�;")
+    @ApiModelProperty(value = "璁㈠崟鐘舵��", example = "0")
+    @ExcelColumn(name = "璁㈠崟鐘舵��", valueMapping = "0=寰呮敮浠�;1=寰呭瘎瀛�;2=宸插瘎瀛�;3=寰呭彇浠�;6=瀛樺湪閫炬湡;7=宸插畬鎴�;98=宸叉寕璧�;99=宸插彇娑�;")
     private Integer status;
 
-    @ApiModelProperty(value = "鏀粯鐘舵��:0=寰呮敮浠� 1=宸叉敮浠�", example = "1")
-    private Integer payStatus;
+    @ApiModelProperty(value = "鏄惁寮傚父璁㈠崟锛�0=鍚︼紱1=鏄�", example = "0")
+    @ExcelColumn(name = "寮傚父璁㈠崟", valueMapping = "0=鍚�;1=鏄�;")
+    private Integer exceptionStatus;
+
+    @ApiModelProperty(value = "鍏宠仈涓昏鍗�")
+    @ExcelColumn(name = "鍏宠仈涓昏鍗�")
+    private Integer relationOrderId;
+
+    @ApiModelProperty(value = "寮傚父鍘熷洜")
+    @ExcelColumn(name = "寮傚父鍘熷洜")
+    private String exceptionInfo;
+
+    @ApiModelProperty(value = "鎵�灞炲煄甯傦紙areas:id锛�")
+    @ExcelColumn(name = "鎵�灞炲煄甯�")
+    private String cityId;
+
+    @ApiModelProperty(value = "瀛樹欢搴楅摵锛坰hop_info:id锛�", example = "1")
+    @ExcelColumn(name = "瀛樹欢搴楅摵")
+    private Integer depositShopId;
+
+    @ApiModelProperty(value = "棰勮鍒板簵瀛樹欢鏃堕棿璧�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date arriveStartTime;
+
+    @ApiModelProperty(value = "棰勮鍒板簵瀛樹欢鏃堕棿姝�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date arriveEndTime;
+
+    @ApiModelProperty(value = "瀛樹欢鍦扮偣")
+    @ExcelColumn(name = "瀛樹欢鍦扮偣")
+    private String depositLocation;
+
+    @ApiModelProperty(value = "瀛樹欢鍦扮偣鎻忚堪")
+    @ExcelColumn(name = "瀛樹欢鍦扮偣鎻忚堪")
+    private String depositLocationReamrk;
+
+    @ApiModelProperty(value = "瀛樹欢鐐圭粡搴�")
+    private BigDecimal depositLat;
+
+    @ApiModelProperty(value = "瀛樹欢鐐圭含搴�")
+    private BigDecimal depositLgt;
+
+    @ApiModelProperty(value = "鍙栦欢搴楅摵锛坰hop_info:id锛�", example = "1")
+    @ExcelColumn(name = "鍙栦欢搴楅摵")
+    private Integer takeShopId;
+
+    @ApiModelProperty(value = "鍙栦欢鍦扮偣")
+    @ExcelColumn(name = "鍙栦欢鍦扮偣")
+    private String takeLocation;
+
+    @ApiModelProperty(value = "鍙栦欢鍦扮偣璇︾粏鍦板潃")
+    @ExcelColumn(name = "鍙栦欢鍦扮偣璇︾粏鍦板潃")
+    private String takeLocationReamrk;
+
+    @ApiModelProperty(value = "鍙栦欢缁忓害")
+    private BigDecimal takeLat;
+
+    @ApiModelProperty(value = "鍙栦欢绾害")
+    private BigDecimal takeLgt;
+
+    @ApiModelProperty(value = "璺濈锛堝紓鍦板瓨鍙栦娇鐢級")
+    @ExcelColumn(name = "璺濈")
+    private BigDecimal distance;
+
+    @ApiModelProperty(value = "瀵勫瓨鏃堕棿锛堝瘎瀛樺紑濮嬭璐规椂闂达級")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelColumn(name = "瀵勫瓨鏃堕棿", width = 16, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date depositTime;
 
     @ApiModelProperty(value = "鎺ュ崟鏃堕棿")
-    @ExcelColumn(name = "鎺ュ崟鏃堕棿",index = 9,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date acceptTime;
 
-    @ApiModelProperty(value = "鎺ュ崟浜�", example = "1")
-    private Integer acceptMemberId;
+    @ApiModelProperty(value = "鎺ュ崟浜�")
+    @ExcelColumn(name = "鎺ュ崟浜�")
+    private Integer acceptDriver;
 
-    @ApiModelProperty(value = "鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟锛�", example = "1")
-    @ExcelColumn(name = "鎺ュ崟鏂瑰紡",index = 14,width = 10,valueMapping = "0=鎵嬪姩鎺ュ崟;1=绯荤粺娲惧崟;")
+    @ApiModelProperty(value = "鎺ュ崟绫诲瀷:0=鎵嬪姩鎺ュ崟锛�1=绯荤粺娲惧崟", example = "0")
+    @ExcelColumn(name = "鎺ュ崟绫诲瀷", valueMapping = "0=鎵嬪姩鎺ュ崟;1=绯荤粺娲惧崟;")
     private Integer acceptType;
 
-    @ApiModelProperty(value = "寮�濮嬩綔涓氭椂闂�")
-    private Date workStartTime;
+    @ApiModelProperty(value = "鍙栦欢鏃堕棿锛堝瘎瀛樼粨鏉熻璐规椂闂达級")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date takeTime;
 
-    @ApiModelProperty(value = "瀹屾垚鏃堕棿")
-    @ExcelColumn(name = "瀹屾垚鏃堕棿",index = 10,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "鍙告満鍙栦欢鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date driverTakeTime;
+
+    @ApiModelProperty(value = "鍙告満寮�濮嬫淳閫佹椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date sendTime;
+
+    @ApiModelProperty(value = "琛屾潕杞Щ鍒板簵鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date arriveTime;
+
+    @ApiModelProperty(value = "瀹屾垚璁㈠崟鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date finishTime;
 
-    @ApiModelProperty(value = "骞冲彴鎻愭垚姣斾緥", example = "1")
-    private BigDecimal platformRata;
+    @ApiModelProperty(value = "纭浼氬憳鍒板簵鍙栦欢鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date confirmArriveTime;
+
+    @ApiModelProperty(value = "鎸傝捣鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date suspendTime;
+
+    @ApiModelProperty(value = "鍙栦欢浜烘墜鏈哄彿")
+    @ExcelColumn(name = "鍙栦欢浜烘墜鏈哄彿")
+    private String takePhone;
+
+    @ApiModelProperty(value = "鍙栦欢浜哄悕绉�")
+    @ExcelColumn(name = "鍙栦欢浜哄悕绉�")
+    private String takeUser;
+
+    @ApiModelProperty(value = "鍟嗗搧绫诲瀷锛坈ategory锛�")
+    @ExcelColumn(name = "鍟嗗搧绫诲瀷")
+    private Integer goodType;
+
+    @ApiModelProperty(value = "琛ュ厖淇℃伅")
+    @ExcelColumn(name = "琛ュ厖淇℃伅")
+    private String supplement;
+
+    @ApiModelProperty(value = "棰勮瀛樻斁澶╂暟 榛樿1澶�", example = "1")
+    @ExcelColumn(name = "棰勮瀛樻斁澶╂暟")
+    private Integer estimatedDepositDays;
+
+    @ApiModelProperty(value = "瀹為檯瀛樻斁澶╂暟")
+    @ExcelColumn(name = "瀹為檯瀛樻斁澶╂暟")
+    private Integer depositDays;
+
+    @ApiModelProperty(value = "棰勪及璐圭敤锛堝垎锛�")
+    @ExcelColumn(name = "棰勪及璐圭敤")
+    private Long estimatedAmount;
+
+    @ApiModelProperty(value = "鍩虹璐圭敤/鍗曚环锛堝垎锛�")
+    @ExcelColumn(name = "鍩虹璐圭敤")
+    private Long price;
+
+    @ApiModelProperty(value = "鍔犳�ョ郴鏁�")
+    private BigDecimal urgentRata;
+
+    @ApiModelProperty(value = "鏄惁鍔犳�ワ細0=鍚︼紱1=鏄�", example = "0")
+    @ExcelColumn(name = "鏄惁鍔犳��", valueMapping = "0=鍚�;1=鏄�;")
+    private Integer isUrgent;
+
+    @ApiModelProperty(value = "淇濅环閲戦锛堝垎锛�")
+    @ExcelColumn(name = "淇濅环閲戦")
+    private Long declaredAmount;
+
+    @ApiModelProperty(value = "淇濅环淇濊垂锛堝垎锛�")
+    @ExcelColumn(name = "淇濅环淇濊垂")
+    private Long declaredFee;
+
+    @ApiModelProperty(value = "鍔犳�ヨ垂鐢紙鍒嗭級")
+    @ExcelColumn(name = "鍔犳�ヨ垂鐢�")
+    private Long urgentAmount;
+
+    @ApiModelProperty(value = "骞冲彴濂栧姳鍙告満璐圭敤锛堝垎锛�")
+    @ExcelColumn(name = "骞冲彴濂栧姳鍙告満璐圭敤")
+    private Long platformRewardAmount;
+
+    @ApiModelProperty(value = "鎸囨淳鍙告満鐢ㄦ埛涓婚敭锛坢ember:id锛�")
+    @ExcelColumn(name = "鎸囨淳鍙告満")
+    private Integer assignDriverId;
+
+    @ApiModelProperty(value = "璁㈠崟鎬昏垂鐢紙鍒嗭級")
+    @ExcelColumn(name = "璁㈠崟鎬昏垂鐢�")
+    private Long totalAmount;
+
+    @ApiModelProperty(value = "瀹為檯鏀粯璐圭敤锛堝垎锛�")
+    @ExcelColumn(name = "瀹為檯鏀粯璐圭敤")
+    private Long payAmount;
+
+    @ApiModelProperty(value = "閫�娆捐垂鐢紙鍒嗭級")
+    @ExcelColumn(name = "閫�娆捐垂鐢�")
+    private Long refundAmount;
+
+    @ApiModelProperty(value = "閫炬湡璐圭敤锛堝垎锛�")
+    @ExcelColumn(name = "閫炬湡璐圭敤")
+    private Long overdueAmount;
+
+    @ApiModelProperty(value = "閫炬湡澶╂暟")
+    @ExcelColumn(name = "閫炬湡澶╂暟")
+    private Integer overdueDays;
+
+    @ApiModelProperty(value = "鏀粯鐘舵�侊細0=鏈敮浠橈紱1=宸叉敮浠�", example = "0")
+    @ExcelColumn(name = "鏀粯鐘舵��", valueMapping = "0=鏈敮浠�;1=宸叉敮浠�;")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "鏀粯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+
+    @ApiModelProperty(value = "璁㈠崟缂栧彿")
+    @ExcelColumn(name = "璁㈠崟缂栧彿")
+    private String code;
+
+    @ApiModelProperty(value = "鍙告満钖叕锛堝垎锛�")
+    @ExcelColumn(name = "鍙告満钖叕")
+    private Long driverFee;
+
+    @ApiModelProperty(value = "瀵勫瓨搴楅摵鏀剁泭锛堝垎锛�")
+    @ExcelColumn(name = "瀵勫瓨搴楅摵鏀剁泭")
+    private Long depositShopFee;
+
+    @ApiModelProperty(value = "鍙栦欢搴楅摵鏀剁泭锛堝垎锛�")
+    @ExcelColumn(name = "鍙栦欢搴楅摵鏀剁泭")
+    private Long takeShopFee;
+
+    @ApiModelProperty(value = "鍙告満鏀剁泭鍗犳瘮")
+    private BigDecimal driverFeeRata;
+
+    @ApiModelProperty(value = "瀵勫瓨搴楅摵鏀剁泭鍗犳瘮")
+    private BigDecimal depositShopFeeRata;
+
+    @ApiModelProperty(value = "鍙栦欢搴楅摵鏀剁泭鍗犳瘮")
+    private BigDecimal takeShopFeeRata;
 
     @ApiModelProperty(value = "寰俊骞冲彴浜ゆ槗璁㈠崟鍙�")
     private String wxExternalNo;
 
-    @ApiModelProperty(value = "鏄惁璇勪环:0=鍚︼紱1=鏄�", example = "1")
+    @ApiModelProperty(value = "鏄惁璇勪环:0=鍚︼紱1=鏄�", example = "0")
+    @ExcelColumn(name = "鏄惁璇勪环", valueMapping = "0=鍚�;1=鏄�;")
     private Integer commentStatus;
 
     @ApiModelProperty(value = "璇勪环鍐呭")
+    @ExcelColumn(name = "璇勪环鍐呭")
     private String commentInfo;
 
-    @ApiModelProperty(value = "璇勪环鏄熺骇1-5", example = "1")
-    private Integer commentLevel;
+    @ApiModelProperty(value = "璇勪环鍙告満鏄熺骇1-5")
+    private Integer commentDriverLevel;
+
+    @ApiModelProperty(value = "璇勪环瀵勫瓨鐐规槦绾�1-5")
+    private Integer commentDepositLevel;
+
+    @ApiModelProperty(value = "璇勪环鍙栦欢鐐规槦绾�1-5")
+    private Integer commentTakeLevel;
 
     @ApiModelProperty(value = "璇勪环鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date commentTime;
 
-    @ApiModelProperty(value = "璇勪环绫诲瀷:0=鎵嬪姩璇勪环锛�1=绯荤粺鑷姩璇勪环锛�", example = "1")
-    private Integer commentType;
-
     @ApiModelProperty(value = "鍙栨秷鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date cancelTime;
 
-    @ApiModelProperty(value = "鏄惁宸蹭慨鏀�:0=鍚︼紱1=鏄紱2=宸茬‘璁�;", example = "1")
-    private Integer isUpdate;
+    @ApiModelProperty(value = "寮傚父璐圭敤/瀹㈡埛鏀粯锛堝垎锛�")
+    @ExcelColumn(name = "寮傚父璐圭敤")
+    private Long exceptionAmount;
 
-    @ApiModelProperty(value = "淇敼鏃堕棿", example = "1")
-    private Date isUpdateTime;
+    @ApiModelProperty(value = "寮傚父琛ュ伩/琛ュ伩鍙告満锛堝垎锛�")
+    @ExcelColumn(name = "寮傚父琛ュ伩")
+    private Long exceptionFee;
 
-    @ApiModelProperty(value = "鎺ュ崟鏂归粦鍚嶅崟member:id 澶氫釜浠�,鍒嗗壊")
-    private String blackReceive;
+    @ApiModelProperty(value = "鐗╁搧淇℃伅")
+    @ExcelColumn(name = "鐗╁搧淇℃伅")
+    private String goodsInfo;
 
+    @ApiModelProperty(value = "缁撶畻鐘舵�侊細0=寰呯粨绠楋紱1=宸茬粨绠楋紱")
+    private Integer settlementStatus;
 
-    @ApiModelProperty(value = "鎬诲ぉ鏁�", example = "1")
-    private Integer totalDays;
-
-    @ApiModelProperty(value = "鍙栨秷绫诲瀷锛�0=鍙戝崟鏂规棤璐e彇娑堬紱1=鍙戝崟鏂规湁璐e彇娑堬紱2=绯荤粺鍙栨秷锛�", example = "1")
-    private Integer cancelType;
-
-    @ApiModelProperty(value = "鏀粯鏂瑰紡锛�0=寰俊锛�1=鍏朵粬", example = "1")
-    private Integer payMethod;
-
-    @ApiModelProperty(value = "鏀粯鏃堕棿", example = "1")
-    private Date payTime;
-
-    @ApiModelProperty(value = "鑱旂郴浜�", example = "1")
-    private String linkPhone;
-
-    @ApiModelProperty(value = "鑱旂郴鏂瑰紡", example = "1")
-    private String linkName;
-
-    @ApiModelProperty(value = "杞﹁締瑙勬牸", example = "1")
-    private String carUnit;
-
-    @ApiModelProperty(value = "涓夋柟鏀粯璁㈠崟鍙�", example = "1")
-    private String outTradeNo;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂圭‘璁ら噾棰濇椂闂�")
-    private Date confirmFeeTime;
-
-    @ApiModelProperty(value = "鍥剧墖")
     @TableField(exist = false)
-    private List<Multifile> multifileList;
+    @ApiModelProperty(value = "鍒涘缓寮�濮嬫椂闂�(鏌ヨ鐢�)", example = "2026-01-01")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createStartTime;
 
-
-    @ApiModelProperty(value = "鏃ュ織鍒楄〃")
     @TableField(exist = false)
-    private List<OrderLog> orderLogList;
+    @ApiModelProperty(value = "鍒涘缓缁撴潫鏃堕棿(鏌ヨ鐢�)", example = "2026-12-31")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createEndTime;
 
-    @ApiModelProperty(value = "璁㈠崟鐘舵�佹弿杩�", example = "1")
     @TableField(exist = false)
-    private String statusName;
-
-
-    @ApiModelProperty(value = "閫旂粡鐐�")
-    @TableField(exist = false)
-    private List<WayInfoDTO> wayInfoDTOList;
-
-    @ApiModelProperty(value = "椁愭爣")
-    @TableField(exist = false)
-    private List<CateringDTO> cateringDTOList;
-
-    @ApiModelProperty(value = "绉诲姩绔敤鎴�")
-    @TableField(exist = false)
-    private Member member;
-
-    @ApiModelProperty(value = "鏌ヨ鎴戠殑璁㈠崟锛�0=鍙戝崟鏂硅鍗曪紱1=鎺ュ崟鏂硅鍗曪紱2=鎺ュ崟澶у巺锛�", example = "1")
-    @TableField(exist = false)
-    private Integer queryMyOrderType;
-
-    @Schema(description ="淇敼纭鍊掕鏃�")
-    @TableField(exist = false)
-    private Long confirmCountdown;
-
-
-    @Schema(description ="鑷姩鍙栨秷鍊掕鏃�")
-    @TableField(exist = false)
-    private Long cancelCountdown;
-
-
-    @ApiModelProperty(value = "闇�姹傜被鍨�")
-    @TableField(exist = false)
-    private String categoryName;
-
-    @ApiModelProperty(value = "杩愯緭鍝佺")
-    @TableField(exist = false)
-    private String transportTypeName;
-
-    @ApiModelProperty(value = "璺濈 鍗曚綅km")
-    @TableField(exist = false)
-    private double distance;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂瑰悕绉�")
-    @TableField(exist = false)
-    @ExcelColumn(name = "鎺ュ崟鏂瑰悕绉�",index = 6,width = 10)
-    private String acceptName;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂规墜鏈哄彿")
-    @TableField(exist = false)
-    @ExcelColumn(name = "鎺ュ崟鏂硅仈绯绘柟寮�",index = 7,width = 10)
-    private String acceptPhone;
-
-    @ApiModelProperty(value = "鍙戝崟鏂瑰悕绉�")
-    @TableField(exist = false)
-    @ExcelColumn(name = "鍙戝崟鏂瑰悕绉�",index = 4,width = 10)
-    private String releaseName;
-
-    @ApiModelProperty(value = "鍙戝崟鏂规墜鏈哄彿")
-    @TableField(exist = false)
-    @ExcelColumn(name = "鍙戝崟鏂规墜鏈哄彿",index = 5,width = 10)
-    private String releasePhone;
-
-    @ApiModelProperty(value = "璁㈠崟鍐呭")
-    @TableField(exist = false)
-    @ExcelColumn(name = "璁㈠崟鍐呭",index = 3,width = 20)
-    private String orderContent;
-
-
-    @ApiModelProperty(value = "鍙戝崟鏃堕棿璧�")
-    @TableField(exist = false)
-    private Date createTimeStart;
-
-    @ApiModelProperty(value = "鍙戝崟鏃堕棿姝�")
-    @TableField(exist = false)
-    private Date createTimeEnd;
-
-    @ApiModelProperty(value = "璐圭敤鏍囧噯鍗曚綅", example = "1")
-    @TableField(exist = false)
-    private String priceUnit;
-
-
-    @ApiModelProperty(value = "鎺ュ崟鏃堕棿璧�")
-    @TableField(exist = false)
-    private Date acceptTimeStart;
-
-    @ApiModelProperty(value = "鎺ュ崟鏃堕棿姝�")
-    @TableField(exist = false)
-    private Date acceptTimeEnd;
-
-
-    @ApiModelProperty(hidden = true)
-    @TableField(exist = false)
-    @ExcelColumn(name = "棰勪及閲戦锛堝厓锛�",index = 12,width = 10)
-    private double estimatedAccountYuan;
-
-    @ApiModelProperty(hidden = true)
-    @TableField(exist = false)
-    @ExcelColumn(name = "瀹炰粯閲戦锛堝厓锛�",index = 13,width = 10)
-    private double payAccountYuan;
-
-    @ApiModelProperty(value = "瀹屾垚鏃堕棿璧�")
-    @TableField(exist = false)
-    private Date doneTimeStart;
-
-    @ApiModelProperty(value = "瀹屾垚鏃堕棿姝�")
-    @TableField(exist = false)
-    private Date doneTimeEnd;
-
-    @ApiModelProperty(value = "鎺掑簭鏂瑰紡锛�0=鏈�鏂板彂甯�;1=璺濈浼樺厛;2=浠锋牸鍊掑簭", example = "1")
-    @TableField(exist = false)
-    private Integer sortType;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂硅瘎鍒�")
-    @TableField(exist = false)
-    private double score;
-
-    @ApiModelProperty(value = "鎺ュ崟閲�")
-    @TableField(exist = false)
-    private Long receiveNum;
-
-    @ApiModelProperty(value = "鍙戝崟閲�")
-    @TableField(exist = false)
-    private Long publishNum;
-
-    @ApiModelProperty(value = "鍙戝崟鏂瑰ご鍍�")
-    @TableField(exist = false)
-    private String releaseCoverImage;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂瑰ご鍍�")
-    @TableField(exist = false)
-    private String acceptCoverImage;
-
-    @ApiModelProperty(value = "缁忓害", example = "1")
-    @TableField(exist = false)
-    private BigDecimal queryLat;
-
-    @ApiModelProperty(value = "绾害", example = "1")
-    @TableField(exist = false)
-    private BigDecimal queryLgt;
-
-    @ApiModelProperty(value = "鏄惁鍙彇娑堬細0=鍙互锛�1=涓嶅彲浠�", example = "1")
-    @TableField(exist = false)
-    private Integer cancelStatus;
-
-
-    @ApiModelProperty(value = "鏄惁鍙紑濮嬶細0=涓嶅彲浠ワ紱1=鍙互", example = "1")
-    @TableField(exist = false)
-    private Integer canStart;
+    @ApiModelProperty(value = "璁㈠崟绾у埆")
+    private String orderLevel;
 
 }
-
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/OrdersDetail.java b/server/services/src/main/java/com/doumee/dao/business/model/OrdersDetail.java
new file mode 100644
index 0000000..87d9a98
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/model/OrdersDetail.java
@@ -0,0 +1,87 @@
+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.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 瀵勫瓨璁㈠崟锛屾槑缁嗕俊鎭�
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("瀵勫瓨璁㈠崟鏄庣粏淇℃伅")
+@TableName("`orders_detail`")
+public class OrdersDetail {
+
+    @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")
+    @ExcelColumn(name = "鍒涘缓鏃堕棿", width = 16, dateFormat = "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")
+    @ExcelColumn(name = "瀵勫瓨璁㈠崟涓婚敭")
+    private Integer orderId;
+
+    @ApiModelProperty(value = "灏哄 鍏宠仈category type = 4", example = "1")
+    @ExcelColumn(name = "灏哄")
+    private Integer luggageId;
+
+    @ApiModelProperty(value = "灏哄鍚嶇О")
+    @ExcelColumn(name = "灏哄鍚嶇О")
+    private String luggageName;
+
+    @ApiModelProperty(value = "鏁伴噺", example = "1")
+    @ExcelColumn(name = "鏁伴噺")
+    private Integer num;
+
+    @ApiModelProperty(value = "灏卞湴瀛樺彇 - 鍗曚环锛堝垎锛�")
+    @ExcelColumn(name = "鍗曚环")
+    private Long unitPrice;
+
+    @ApiModelProperty(value = "寮傚湴瀛樺彇 - 閰嶉�佽捣姝ラ噷绋�")
+    @ExcelColumn(name = "閰嶉�佽捣姝ラ噷绋�")
+    private BigDecimal startDistance;
+
+    @ApiModelProperty(value = "寮傚湴瀛樺彇 - 閰嶉�佽捣姝ラ噷绋嬫瘡鍏噷鍗曚环锛堝垎锛�")
+    @ExcelColumn(name = "璧锋閲岀▼鍗曚环")
+    private Long startPrice;
+
+    @ApiModelProperty(value = "寮傚湴瀛樺彇 - 瓒呭嚭棣栧崟閲岀▼鍏噷鏁�")
+    @ExcelColumn(name = "瓒呭嚭棣栧崟閲岀▼")
+    private BigDecimal extraDistance;
+
+    @ApiModelProperty(value = "寮傚湴瀛樺彇 - 瓒呭嚭棣栧崟閲岀▼鍗曚环锛堝垎锛�")
+    @ExcelColumn(name = "瓒呭嚭棣栧崟閲岀▼鍗曚环")
+    private Long extraPrice;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Revenue.java b/server/services/src/main/java/com/doumee/dao/business/model/Revenue.java
new file mode 100644
index 0000000..71f8a58
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/business/model/Revenue.java
@@ -0,0 +1,103 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+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/10
+ */
+@Data
+@ApiModel("鏀舵敮璁板綍")
+@TableName("`revenue`")
+public class Revenue {
+
+    @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")
+    @ExcelColumn(name = "鍒涘缓鏃堕棿", index = 6, width = 16, dateFormat = "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 memberId;
+
+    @ApiModelProperty(value = "浼氬憳绫诲瀷锛�1=鍙告満锛�2=闂ㄥ簵", example = "1")
+    private Integer memberType;
+
+    @ApiModelProperty(value = "鏄惁鐢熸晥锛�0=鍏ヨ处涓紱1=宸插叆璐︼紱")
+    @ExcelColumn(name = "鏄惁鐢熸晥", valueMapping = "0=鍏ヨ处涓�;1=宸插叆璐�;", index = 5, width = 8)
+    private Integer vaildStatus;
+
+    @ApiModelProperty(value = "绫诲瀷锛�0=瀹屾垚璁㈠崟锛�1=鎻愮幇鏀嚭锛�2=鎻愮幇閫�鍥烇紱3=骞冲彴濂栧姳", example = "0")
+    @ExcelColumn(name = "鍙樺姩绫诲瀷", valueMapping = "0=瀹屾垚璁㈠崟;1=鎻愮幇鏀嚭;2=鎻愮幇閫�鍥�;3=骞冲彴濂栧姳;", index = 3, width = 10)
+    private Integer type;
+
+    @ApiModelProperty(value = "鏀舵敮绫诲瀷锛�1=鏀跺叆锛�-1=鏀嚭", example = "1")
+    @ExcelColumn(name = "鏀舵敮绫诲瀷", valueMapping = "1=鏀跺叆;-1=鏀嚭;", index = 1, width = 8)
+    private Integer optType;
+
+    @ApiModelProperty(value = "閲戦锛堝垎锛�")
+    private Long amount;
+
+    @ApiModelProperty(value = "鍙樺姩鍓嶉噾棰濓紙鍒嗭級")
+    private Long beforeAmount;
+
+    @ApiModelProperty(value = "鍙樺姩鍚庨噾棰濓紙鍒嗭級")
+    private Long afterAmount;
+
+    @ApiModelProperty(value = "鍏宠仈涓氬姟涓婚敭", example = "1")
+    private Integer objId;
+
+    @ApiModelProperty(value = "鍏宠仈涓氬姟绫诲瀷锛�0=璁㈠崟涓氬姟锛�1=鎻愮幇涓氬姟", example = "0")
+    private Integer objType;
+
+    @ApiModelProperty(value = "鐘舵�侊細0=鎴愬姛锛�1=澶辫触锛�2=澶勭悊涓�", example = "0")
+    private Integer status;
+
+    @ApiModelProperty(value = "璁㈠崟鍙�")
+    @ExcelColumn(name = "璁㈠崟鍙�", index = 4, width = 16)
+    private String orderNo;
+
+    @ApiModelProperty(value = "鏌ヨ寮�濮嬫椂闂�")
+    @TableField(exist = false)
+    private Date startTime;
+
+    @ApiModelProperty(value = "鏌ヨ缁撴潫鏃堕棿")
+    @TableField(exist = false)
+    private Date endTime;
+
+    @ApiModelProperty(value = "鍙樺姩閲戦锛堝厓锛�")
+    @TableField(exist = false)
+    @ExcelColumn(name = "鍙樺姩閲戦(鍏�)", index = 2, width = 10)
+    private Double amountInfo;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java b/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java
index deb42ac..9e9ff65 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/ShopInfo.java
@@ -1,6 +1,7 @@
 package com.doumee.dao.business.model;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.doumee.core.annotation.excel.ExcelColumn;
@@ -9,7 +10,9 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 闂ㄥ簵淇℃伅
@@ -95,21 +98,25 @@
     @ApiModelProperty(value = "娉曚汉韬唤璇佸彿鐮侊紙浼佷笟绫诲瀷浣跨敤锛�")
     private String legalPersonCard;
 
-    @ApiModelProperty(value = "韬唤璇佹闈㈢収")
+    @ApiModelProperty(value = "韬唤璇佹闈㈢収锛堜紒涓氱被 涓烘硶浜鸿韩浠借瘉淇℃伅锛�")
     private String idcardImg;
 
-    @ApiModelProperty(value = "韬唤璇佸弽闈㈢収")
+    @ApiModelProperty(value = "韬唤璇佸弽闈㈢収锛堜紒涓氱被 涓烘硶浜鸿韩浠借瘉淇℃伅")
     private String idcardImgBack;
 
     @ApiModelProperty(value = "钀ヤ笟鎵х収")
     private String businessImg;
 
-    @ApiModelProperty(value = "鐘舵�侊細0=寰呭鎵癸紱1=瀹℃壒閫氳繃锛�2=瀹℃壒鏈�氳繃", example = "0")
-    @ExcelColumn(name = "鐘舵��", index = 7, width = 10, valueMapping = "0=寰呭鎵�;1=瀹℃壒閫氳繃;2=瀹℃壒鏈�氳繃;")
+    @ApiModelProperty(value = "瀹℃壒鐘舵�侊細0=寰呭鎵癸紱1=瀹℃壒閫氳繃锛�2=瀹℃壒鏈�氳繃锛�3=宸叉敮浠樻娂閲�", example = "0")
+    @ExcelColumn(name = "瀹℃壒鐘舵��", index = 7, width = 10, valueMapping = "0=寰呭鎵�;1=瀹℃壒閫氳繃;2=瀹℃壒鏈�氳繃;3=宸叉敮浠樻娂閲�;")
+    private Integer auditStatus;
+
+    @ApiModelProperty(value = "鐘舵�侊細0=鍚敤锛�1=绂佺敤", example = "0")
+    @ExcelColumn(name = "鐘舵��", index = 8, width = 10, valueMapping = "0=鍚敤;1=绂佺敤;")
     private Integer status;
 
     @ApiModelProperty(value = "瀹℃壒鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date auditTime;
 
     @ApiModelProperty(value = "瀹℃壒浜�", example = "1")
@@ -121,4 +128,62 @@
     @ApiModelProperty(value = "OPENID")
     private String openid;
 
+    @ApiModelProperty(value = "鏀粯鐘舵�侊細0=寰呮敮浠橈紱1=宸叉敮浠�", example = "0")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "寰俊骞冲彴浜ゆ槗璁㈠崟鍙�")
+    private String wxExternalNo;
+
+    @ApiModelProperty(value = "璁㈠崟缂栧彿")
+    private String code;
+
+    @ApiModelProperty(value = "鏀粯鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date payTime;
+
+    @ApiModelProperty(value = "鎶奸噾閲戦")
+    private Long depositAmount;
+
+    @ApiModelProperty(value = "闂ㄥ簵璇勫垎")
+    private BigDecimal score;
+
+    @ApiModelProperty(value = "娉ㄥ唽浼氬憳涓婚敭")
+    private Integer regionMemberId;
+
+    @ApiModelProperty(value = "鎶奸噾鏀粯浼氬憳openid")
+    private String payMemberOpenId;
+
+    @ApiModelProperty(value = "閰嶉�佽寖鍥�(km)")
+    private BigDecimal deliveryArea;
+    // 闈炴寔涔呭寲锛氶檮浠跺垪琛�
+    @TableField(exist = false)
+    @ApiModelProperty(value = "闂ㄥ簵闂ㄥご鐓�", hidden = true)
+    private List<String> storeFrontImgs;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "闂ㄥ簵鍐呴儴鐓�", hidden = true)
+    private List<String> storeInteriorImgs;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "鍏朵粬鏉愭枡", hidden = true)
+    private List<String> otherMaterialImgs;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "鏈夋晥鍔冲姩鍚堝悓", hidden = true)
+    private List<String> laborContractImgs;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "绀句繚缂寸撼璇佹槑", hidden = true)
+    private List<String> socialSecurityImgs;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "娉ㄥ唽寮�濮嬫椂闂�(鏌ヨ鐢�)", example = "2026-01-01")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createStartTime;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "娉ㄥ唽缁撴潫鏃堕棿(鏌ヨ鐢�)", example = "2026-12-31")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createEndTime;
+
 }
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java b/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java
index 4b5050e..61ea0e9 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java
@@ -1,19 +1,21 @@
 package com.doumee.dao.business.model;
 
-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.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
+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 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * @author rk
+ * @date 2026/04/10
  */
 @Data
 @ApiModel("鎻愮幇鐢宠璁板綍")
@@ -22,72 +24,78 @@
 
     @TableId(type = IdType.AUTO)
     @ApiModelProperty(value = "涓婚敭", example = "1")
-    @ExcelColumn(name="涓婚敭")
+    @ExcelColumn(name = "涓婚敭")
     private Integer id;
 
-    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
-    @ExcelColumn(name="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�")
+    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "0")
+    @ExcelColumn(name = "鏄惁宸插垹闄�")
     private Integer deleted;
 
     @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
-    @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+    @ExcelColumn(name = "鍒涘缓浜虹紪鐮�")
     private Integer createUser;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
-    @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @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="鏇存柊浜虹紪鐮�")
+    @ExcelColumn(name = "鏇存柊浜虹紪鐮�")
     private Integer updateUser;
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @ExcelColumn(name="鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
     @ApiModelProperty(value = "澶囨敞")
-    @ExcelColumn(name="澶囨敞")
+    @ExcelColumn(name = "澶囨敞")
     private String remark;
 
     @ApiModelProperty(value = "浼氬憳涓婚敭", example = "1")
-    @ExcelColumn(name="浼氬憳涓婚敭")
+    @ExcelColumn(name = "浼氬憳涓婚敭")
     private Integer memberId;
 
-    @ApiModelProperty(value = "鎻愮幇閲戦(鍗曚綅:鍒�)", example = "1")
-    @ExcelColumn(name="鎻愮幇閲戦(鍗曚綅:鍒�)")
+    @ApiModelProperty(value = "鎻愮幇閲戦(鍗曚綅:鍒�)")
+    @ExcelColumn(name = "鎻愮幇閲戦")
     private Long amount;
 
     @ApiModelProperty(value = "寰俊骞冲彴浜ゆ槗璁㈠崟鍙�")
-    @ExcelColumn(name="寰俊骞冲彴浜ゆ槗璁㈠崟鍙�")
+    @ExcelColumn(name = "寰俊浜ゆ槗璁㈠崟鍙�")
     private String wxExternalNo;
 
-    @ApiModelProperty(value = "鐘舵��:0=鎻愮幇鐢宠涓�:1=鎻愮幇鎴愬姛锛�2=鎻愮幇澶辫触锛�", example = "1")
-    @ExcelColumn(name="鐘舵��:0=鎻愮幇鐢宠涓�:1=鎻愮幇鎴愬姛锛�2=鎻愮幇澶辫触锛�")
+    @ApiModelProperty(value = "鐘舵��:0=鎻愮幇鐢宠涓�;1=鎻愮幇鎴愬姛;2=鎻愮幇澶辫触;", example = "0")
+    @ExcelColumn(name = "鐘舵��", valueMapping = "0=鎻愮幇鐢宠涓�;1=鎻愮幇鎴愬姛;2=鎻愮幇澶辫触;")
     private Integer status;
 
     @ApiModelProperty(value = "鎻愮幇瀹屾垚鏃堕棿")
-    @ExcelColumn(name="鎻愮幇瀹屾垚鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date doneTime;
 
     @ApiModelProperty(value = "瀹屾垚澶囨敞")
-    @ExcelColumn(name="瀹屾垚澶囨敞")
+    @ExcelColumn(name = "瀹屾垚澶囨敞")
     private String doneInfo;
 
-
-    @ApiModelProperty(value = "涓氬姟绫诲瀷锛�0=鎻愮幇锛�1=閫�娆撅紱", example = "1")
-    @ExcelColumn(name="涓氬姟绫诲瀷锛�0=鎻愮幇锛�1=閫�娆撅紱")
+    @ApiModelProperty(value = "涓氬姟绫诲瀷锛�0=鎻愮幇锛�1=閫�娆撅紱", example = "0")
+    @ExcelColumn(name = "涓氬姟绫诲瀷", valueMapping = "0=鎻愮幇;1=閫�娆�;")
     private Integer type;
 
-    @ApiModelProperty(value = "鍏宠仈璁㈠崟涓婚敭 orders", example = "1")
-    @ExcelColumn(name="鍏宠仈璁㈠崟涓婚敭 orders")
+    @ApiModelProperty(value = "鍏宠仈璁㈠崟涓婚敭")
+    @ExcelColumn(name = "鍏宠仈璁㈠崟")
     private Integer objId;
 
     @ApiModelProperty(value = "鎻愮幇鐢宠鍗曞彿")
-    @ExcelColumn(name="鎻愮幇鐢宠鍗曞彿")
+    @ExcelColumn(name = "鎻愮幇鐢宠鍗曞彿")
     private String outBillNo;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "鍒涘缓寮�濮嬫椂闂�(鏌ヨ鐢�)", example = "2026-01-01")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createStartTime;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "鍒涘缓缁撴潫鏃堕棿(鏌ヨ鐢�)", example = "2026-12-31")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createEndTime;
 
 }
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ChangeStatusDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ChangeStatusDTO.java
new file mode 100644
index 0000000..739acbf
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/dto/ChangeStatusDTO.java
@@ -0,0 +1,23 @@
+package com.doumee.dao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 淇敼鐘舵�佽姹傜被
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("淇敼鐘舵�佽姹�")
+public class ChangeStatusDTO {
+
+    @ApiModelProperty(value = "涓婚敭", required = true)
+    private Integer id;
+
+    @ApiModelProperty(value = "鐘舵�侊細0=鍚敤锛�1=绂佺敤", required = true, example = "0")
+    private Integer status;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/CommentDTO.java b/server/services/src/main/java/com/doumee/dao/dto/CommentDTO.java
deleted file mode 100644
index 6204854..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/CommentDTO.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.doumee.dao.dto;
-
-import com.doumee.dao.business.model.Member;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2023/3/23 9:50
- */
-@Data
-@ApiModel("璁㈠崟璇勪环")
-public class CommentDTO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "璇勪环鏄熺骇 1 - 5 ")
-    private Long level;
-
-    @ApiModelProperty(value = "璇勪环鍐呭")
-    private String info;
-
-    @ApiModelProperty(hidden = true)
-    private Member member;
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ConfirmFeeOrderDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ConfirmFeeOrderDTO.java
deleted file mode 100644
index 9088524..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/ConfirmFeeOrderDTO.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.doumee.dao.dto;
-
-import com.doumee.dao.business.model.Member;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Data
-@ApiModel("纭璁㈠崟璐圭敤淇℃伅")
-public class ConfirmFeeOrderDTO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "璁′环鏁伴噺1((閲嶉噺/浜烘暟/锛堝ぉ鏁�/灏忔椂/閲嶉噺锛�/锛堝ぉ鏁�/娆℃暟锛�/鐢ㄩ澶╂暟)", example = "1")
-    private Integer priceNum1;
-
-    @ApiModelProperty(value = "璁′环鏁伴噺2(鍒嗘嫞宸�/鍖呰宸� 浜烘暟)", example = "1")
-    private Integer priceNum2;
-    @ApiModelProperty(value = "鎺ュ崟鏂圭‘璁ゅ叾浠栬垂鐢紙鍒嗭級", example = "1")
-    private Long confirmOtherFee;
-    @ApiModelProperty(value = "鎺ュ崟鏂圭‘璁よ垂鐢ㄥ娉�" )
-    private String confirmFeeRemark;
-    @ApiModelProperty(hidden = true)
-    private Member member;
-}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ConfirmUpdOrderDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ConfirmUpdOrderDTO.java
deleted file mode 100644
index fb42c56..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/ConfirmUpdOrderDTO.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.doumee.dao.dto;
-
-import com.doumee.dao.business.model.Member;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Data
-@ApiModel("纭璁㈠崟淇敼淇℃伅")
-public class ConfirmUpdOrderDTO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "鎿嶄綔绫诲瀷锛�0=鍚屾剰锛�1=涓嶅悓鎰忥紱")
-    private Integer status;
-
-    @ApiModelProperty(hidden = true)
-    private Member member;
-}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/DoneOrderDTO.java b/server/services/src/main/java/com/doumee/dao/dto/DoneOrderDTO.java
deleted file mode 100644
index 98d48ce..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/DoneOrderDTO.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.doumee.dao.dto;
-
-import com.doumee.dao.business.model.Member;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2023/3/23 9:50
- */
-@Data
-@ApiModel("瀹屾垚璁㈠崟")
-public class DoneOrderDTO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "鏀粯閲戦 鍗曚綅锛氬垎")
-    private Long amount;
-
-    @ApiModelProperty(hidden = true)
-    private Member member;
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/PlatformConfigDTO.java b/server/services/src/main/java/com/doumee/dao/dto/PlatformConfigDTO.java
deleted file mode 100644
index 414f941..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/PlatformConfigDTO.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.doumee.dao.dto;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2023/3/23 9:50
- */
-@Data
-@ApiModel("绯荤粺璁㈠崟閰嶇疆")
-public class PlatformConfigDTO {
-
-    @ApiModelProperty(value = "鍙戝崟鏂� - 姣忔棩鍙彇娑堟鏁�")
-    private String releaseCancelTimes;
-
-    @ApiModelProperty(value = "鍙戝崟鏂� - 鍙彁鍓峏灏忔椂鍙栨秷 锛堝崟浣嶏細灏忔椂锛�")
-    private String releaseCancelTime;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂� - 姣忔棩鍙彇娑堟鏁�")
-    private String receiveCancelTimes;
-
-    @ApiModelProperty(value = "鎺ュ崟鏂� - 鍙彁鍓峏灏忔椂鍙栨秷 锛堝崟浣嶏細灏忔椂锛�")
-    private String receiveCancelTime;
-
-    @ApiModelProperty(value = "鑷姩娲惧崟鏃堕棿閰嶇疆锛堝崟浣嶅垎閽燂級")
-    private String autoDispatch;
-
-    @ApiModelProperty(value = "鑷姩娲惧崟璺濈锛堝崟浣嶏細km锛�")
-    private String autoDispatchDistance;
-
-    @ApiModelProperty(value = "璁㈠崟淇敼鏈‘璁よ嚜鍔ㄧ‘璁ゆ椂闂达紙鍗曚綅锛氬垎閽燂級")
-    private String autoConfirm;
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ResetPasswordDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ResetPasswordDTO.java
new file mode 100644
index 0000000..7863e0a
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/dto/ResetPasswordDTO.java
@@ -0,0 +1,23 @@
+package com.doumee.dao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 閲嶇疆瀵嗙爜璇锋眰绫�
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("閲嶇疆瀵嗙爜璇锋眰")
+public class ResetPasswordDTO {
+
+    @ApiModelProperty(value = "闂ㄥ簵涓婚敭", required = true)
+    @NotNull(message = "闂ㄥ簵涓婚敭涓嶈兘涓虹┖")
+    private Integer id;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ReusePayDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ReusePayDTO.java
deleted file mode 100644
index 7c35ffb..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/ReusePayDTO.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.doumee.dao.dto;
-
-import com.doumee.dao.business.model.Member;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2023/3/23 9:50
- */
-@Data
-@ApiModel("閲嶆柊鏀粯")
-public class ReusePayDTO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "鏀粯閲戦 鍗曚綅锛氬垎")
-    private Long amount;
-
-    @ApiModelProperty(hidden = true)
-    private Member member;
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java
new file mode 100644
index 0000000..28722ff
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/dto/ShopApplyDTO.java
@@ -0,0 +1,103 @@
+package com.doumee.dao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 闂ㄥ簵鍏ラ┗鐢宠璇锋眰
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("闂ㄥ簵鍏ラ┗鐢宠璇锋眰")
+public class ShopApplyDTO implements Serializable {
+
+    @ApiModelProperty(value = "浼佷笟绫诲瀷锛�0=涓汉锛�1=浼佷笟", required = true, example = "0")
+    @NotNull(message = "浼佷笟绫诲瀷涓嶈兘涓虹┖")
+    private Integer companyType;
+
+    @ApiModelProperty(value = "搴楅摵鍚嶇О", required = true)
+    @NotBlank(message = "搴楅摵鍚嶇О涓嶈兘涓虹┖")
+    private String name;
+
+    @ApiModelProperty(value = "娉ㄥ唽鎵嬫満鍙�", required = true)
+    @NotBlank(message = "娉ㄥ唽鎵嬫満鍙蜂笉鑳戒负绌�")
+    private String telephone;
+
+    @ApiModelProperty(value = "鑱旂郴浜哄悕绉�", required = true)
+    @NotBlank(message = "鑱旂郴浜哄悕绉颁笉鑳戒负绌�")
+    private String linkName;
+
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�", required = true)
+    @NotBlank(message = "鑱旂郴浜虹數璇濅笉鑳戒负绌�")
+    private String linkPhone;
+
+    @ApiModelProperty(value = "鑱旂郴浜鸿韩浠借瘉鍙风爜", required = true)
+    @NotBlank(message = "鑱旂郴浜鸿韩浠借瘉鍙风爜涓嶈兘涓虹┖")
+    private String idcard;
+
+    @ApiModelProperty(value = "鍖哄垝涓婚敭", required = true, example = "1")
+    @NotNull(message = "鍖哄垝涓嶈兘涓虹┖")
+    private Integer areaId;
+
+    @ApiModelProperty(value = "瀹氫綅缁忓害", required = true)
+    @NotNull(message = "缁忓害涓嶈兘涓虹┖")
+    private Double longitude;
+
+    @ApiModelProperty(value = "瀹氫綅绾害", required = true)
+    @NotNull(message = "绾害涓嶈兘涓虹┖")
+    private Double latitude;
+
+    @ApiModelProperty(value = "璇︾粏鍦板潃", required = true)
+    @NotBlank(message = "璇︾粏鍦板潃涓嶈兘涓虹┖")
+    private String address;
+
+    @ApiModelProperty(value = "韬唤璇佹闈㈢収", required = true)
+    @NotBlank(message = "韬唤璇佹闈㈢収涓嶈兘涓虹┖")
+    private String idcardImg;
+
+    @ApiModelProperty(value = "韬唤璇佸弽闈㈢収", required = true)
+    @NotBlank(message = "韬唤璇佸弽闈㈢収涓嶈兘涓虹┖")
+    private String idcardImgBack;
+
+    @ApiModelProperty(value = "钀ヤ笟鎵х収锛堜紒涓氱被鍨嬪繀濉級")
+    private String businessImg;
+
+    @ApiModelProperty(value = "娉曚汉濮撳悕锛堜紒涓氱被鍨嬪繀濉級")
+    private String legalPersonName;
+
+    @ApiModelProperty(value = "娉曚汉鐢佃瘽锛堜紒涓氱被鍨嬪繀濉級")
+    private String legalPersonPhone;
+
+    @ApiModelProperty(value = "娉曚汉韬唤璇佸彿鐮侊紙浼佷笟绫诲瀷蹇呭~锛�")
+    private String legalPersonCard;
+
+    @ApiModelProperty(value = "闂ㄥ簵闂ㄥご鐓э紙鏈�澶�3寮狅級", required = true)
+    @NotNull(message = "闂ㄥ簵闂ㄥご鐓т笉鑳戒负绌�")
+    @Size(min = 1, max = 3, message = "闂ㄥ簵闂ㄥご鐓�1-3寮�")
+    private List<String> storeFrontImgs;
+
+    @ApiModelProperty(value = "闂ㄥ簵鍐呴儴鐓э紙鏈�澶�3寮狅級", required = true)
+    @NotNull(message = "闂ㄥ簵鍐呴儴鐓т笉鑳戒负绌�")
+    @Size(min = 1, max = 3, message = "闂ㄥ簵鍐呴儴鐓�1-3寮�")
+    private List<String> storeInteriorImgs;
+
+    @ApiModelProperty(value = "鍏朵粬鏉愭枡锛堟渶澶�3寮狅級")
+    @Size(max = 3, message = "鍏朵粬鏉愭枡鏈�澶�3寮�")
+    private List<String> otherMaterialImgs;
+
+    @ApiModelProperty(value = "鏈夋晥鍔冲姩鍚堝悓锛堜釜浜虹被鍨嬪繀濉紝鏈�澶�3寮狅級")
+    @Size(max = 3, message = "鏈夋晥鍔冲姩鍚堝悓鏈�澶�3寮�")
+    private List<String> laborContractImgs;
+
+    @ApiModelProperty(value = "绀句繚缂寸撼璇佹槑锛堜釜浜虹被鍨嬪繀濉紝鏈�澶�3寮狅級")
+    @Size(max = 3, message = "绀句繚缂寸撼璇佹槑鏈�澶�3寮�")
+    private List<String> socialSecurityImgs;
+}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java b/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java
new file mode 100644
index 0000000..f7f252d
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/dto/ShopUpdateDTO.java
@@ -0,0 +1,113 @@
+package com.doumee.dao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 闂ㄥ簵鍚庡彴淇敼璇锋眰
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("闂ㄥ簵鍚庡彴淇敼璇锋眰")
+public class ShopUpdateDTO implements Serializable {
+
+    @ApiModelProperty(value = "闂ㄥ簵涓婚敭", required = true)
+    @NotNull(message = "闂ㄥ簵涓婚敭涓嶈兘涓虹┖")
+    private Integer id;
+
+    @ApiModelProperty(value = "娉ㄥ唽鎵嬫満鍙�", required = true)
+    @NotBlank(message = "娉ㄥ唽鎵嬫満鍙蜂笉鑳戒负绌�")
+    private String telephone;
+
+    @ApiModelProperty(value = "闂ㄥ簵鍚嶇О", required = true)
+    @NotBlank(message = "闂ㄥ簵鍚嶇О涓嶈兘涓虹┖")
+    private String name;
+
+    @ApiModelProperty(value = "鑱旂郴浜�", required = true)
+    @NotBlank(message = "鑱旂郴浜轰笉鑳戒负绌�")
+    private String linkName;
+
+    @ApiModelProperty(value = "鑱旂郴鐢佃瘽", required = true)
+    @NotBlank(message = "鑱旂郴鐢佃瘽涓嶈兘涓虹┖")
+    private String linkPhone;
+
+    @ApiModelProperty(value = "韬唤璇佸彿鐮�", required = true)
+    @NotBlank(message = "韬唤璇佸彿鐮佷笉鑳戒负绌�")
+    private String idcard;
+
+    @ApiModelProperty(value = "鎵�鍦ㄥ尯鍒�", required = true, example = "1")
+    @NotNull(message = "鎵�鍦ㄥ尯鍒掍笉鑳戒负绌�")
+    private Integer areaId;
+
+    @ApiModelProperty(value = "闂ㄥ簵鍦板潃", required = true)
+    @NotBlank(message = "闂ㄥ簵鍦板潃涓嶈兘涓虹┖")
+    private String address;
+
+    @ApiModelProperty(value = "缁忓害", required = true)
+    @NotNull(message = "缁忓害涓嶈兘涓虹┖")
+    private Double longitude;
+
+    @ApiModelProperty(value = "绾害", required = true)
+    @NotNull(message = "绾害涓嶈兘涓虹┖")
+    private Double latitude;
+
+    @ApiModelProperty(value = "浼佷笟绫诲瀷锛�0=涓汉锛�1=浼佷笟", required = true, example = "0")
+    @NotNull(message = "浼佷笟绫诲瀷涓嶈兘涓虹┖")
+    private Integer companyType;
+
+    // ========== 浼佷笟绫讳俊鎭� ==========
+
+    @ApiModelProperty(value = "娉曚汉濮撳悕锛堜紒涓氱被鍨嬪繀濉級")
+    private String legalPersonName;
+
+    @ApiModelProperty(value = "娉曚汉鎵嬫満鍙凤紙浼佷笟绫诲瀷蹇呭~锛�")
+    private String legalPersonPhone;
+
+    @ApiModelProperty(value = "娉曚汉韬唤璇佸彿鐮侊紙浼佷笟绫诲瀷蹇呭~锛�")
+    private String legalPersonCard;
+
+    @ApiModelProperty(value = "韬唤璇佹闈㈢収/娉曚汉韬唤璇佹闈�", required = true)
+    @NotBlank(message = "韬唤璇佹闈㈢収涓嶈兘涓虹┖")
+    private String idcardImg;
+
+    @ApiModelProperty(value = "韬唤璇佸弽闈㈢収/娉曚汉韬唤璇佸弽闈�", required = true)
+    @NotBlank(message = "韬唤璇佸弽闈㈢収涓嶈兘涓虹┖")
+    private String idcardImgBack;
+
+    @ApiModelProperty(value = "钀ヤ笟鎵х収锛堜紒涓氱被鍨嬪繀濉級")
+    private String businessImg;
+
+    // ========== 鍥剧墖鍒楄〃 ==========
+
+    @ApiModelProperty(value = "闂ㄥご鐓э紙鏈�澶�3寮狅級", required = true)
+    @NotNull(message = "闂ㄥご鐓т笉鑳戒负绌�")
+    @Size(min = 1, max = 3, message = "闂ㄥご鐓�1-3寮�")
+    private List<String> storeFrontImgs;
+
+    @ApiModelProperty(value = "闂ㄥ簵鍐呴儴鐓х墖锛堟渶澶�3寮狅級", required = true)
+    @NotNull(message = "闂ㄥ簵鍐呴儴鐓х墖涓嶈兘涓虹┖")
+    @Size(min = 1, max = 3, message = "闂ㄥ簵鍐呴儴鐓х墖1-3寮�")
+    private List<String> storeInteriorImgs;
+
+    @ApiModelProperty(value = "鍏朵粬鏉愭枡锛堟渶澶�3寮狅級")
+    @Size(max = 3, message = "鍏朵粬鏉愭枡鏈�澶�3寮�")
+    private List<String> otherMaterialImgs;
+
+    @ApiModelProperty(value = "鏈夋晥鍔冲姩鍚堝悓锛堜釜浜虹被鍨嬪繀濉紝鏈�澶�3寮狅級")
+    @Size(max = 3, message = "鏈夋晥鍔冲姩鍚堝悓鏈�澶�3寮�")
+    private List<String> laborContractImgs;
+
+    @ApiModelProperty(value = "绀句繚缂寸撼璇佹槑锛堜釜浜虹被鍨嬪繀濉紝鏈�澶�3寮狅級")
+    @Size(max = 3, message = "绀句繚缂寸撼璇佹槑鏈�澶�3寮�")
+    private List<String> socialSecurityImgs;
+
+}
diff --git a/server/services/src/main/java/com/doumee/dao/dto/UpdOrderDataDTO.java b/server/services/src/main/java/com/doumee/dao/dto/UpdOrderDataDTO.java
deleted file mode 100644
index 659b469..0000000
--- a/server/services/src/main/java/com/doumee/dao/dto/UpdOrderDataDTO.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.doumee.dao.dto;
-
-import com.doumee.dao.business.model.Member;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * @author  dm
- * @since 2025/03/31 16:44
- */
-@Data
-@ApiModel("淇敼璁㈠崟鏃ユ湡")
-public class UpdOrderDataDTO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "寮�濮嬫椂闂�")
-    private Date startDate;
-
-    @ApiModelProperty(value = "缁撴潫鏃堕棿")
-    private Date endDate;
-
-    @ApiModelProperty(value = "澶╂暟")
-    private Integer totalDays;
-
-    @ApiModelProperty(hidden = true)
-    private Member member;
-}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/OrderReleaseVO.java b/server/services/src/main/java/com/doumee/dao/vo/OrderReleaseVO.java
deleted file mode 100644
index 011b69e..0000000
--- a/server/services/src/main/java/com/doumee/dao/vo/OrderReleaseVO.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.doumee.dao.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2025/7/10 15:09
- */
-@Data
-public class OrderReleaseVO {
-
-    @ApiModelProperty(value = "璁㈠崟涓婚敭")
-    private Integer id;
-
-    @ApiModelProperty(value = "鏀粯璇︽儏")
-    private Object object;
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/PayResponse.java b/server/services/src/main/java/com/doumee/dao/vo/PayResponse.java
deleted file mode 100644
index 38456ff..0000000
--- a/server/services/src/main/java/com/doumee/dao/vo/PayResponse.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.doumee.dao.vo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2023/3/23 9:50
- */
-@Data
-@ApiModel("鏀粯鐩稿簲绫�")
-public class PayResponse implements Serializable {
-
-    @ApiModelProperty(value = "鏀粯璁㈠崟涓婚敭")
-    private Integer orderId;
-
-    @ApiModelProperty(value = "鏀粯绫诲瀷锛�0=鐜伴噾鏀粯锛�1=绾Н鍒嗘敮浠�")
-    private Integer payType;
-
-    @ApiModelProperty(value = "寰俊璋冭捣涓氬姟")
-    private Object response;
-
-    @ApiModelProperty(value = "閿佸畾缂栧彿",hidden = true)
-    private String lockKey;
-
-}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java b/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java
new file mode 100644
index 0000000..7530b9c
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/dao/vo/ShopDetailVO.java
@@ -0,0 +1,134 @@
+package com.doumee.dao.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 闂ㄥ簵璇︽儏杩斿洖锛堝惈闄勪欢鍒楄〃锛�
+ * @author rk
+ * @date 2026/04/10
+ */
+@Data
+@ApiModel("闂ㄥ簵璇︽儏杩斿洖")
+public class ShopDetailVO implements Serializable {
+
+    @ApiModelProperty(value = "闂ㄥ簵涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "浼佷笟绫诲瀷锛�0=涓汉锛�1=浼佷笟")
+    private Integer companyType;
+
+    @ApiModelProperty(value = "搴楅摵鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "娉ㄥ唽鎵嬫満鍙�")
+    private String telephone;
+
+    @ApiModelProperty(value = "鑱旂郴浜哄悕绉�")
+    private String linkName;
+
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
+    private String linkPhone;
+
+    @ApiModelProperty(value = "鑱旂郴浜鸿韩浠借瘉鍙风爜")
+    private String idcard;
+
+    @ApiModelProperty(value = "鍖哄垝涓婚敭")
+    private Integer areaId;
+
+    @ApiModelProperty(value = "鐪佷唤涓婚敭")
+    private Integer provinceId;
+
+    @ApiModelProperty(value = "甯備富閿�")
+    private Integer cityId;
+
+    @ApiModelProperty(value = "鐪佷唤鍚嶇О")
+    private String provinceName;
+
+    @ApiModelProperty(value = "鍩庡競鍚嶇О")
+    private String cityName;
+
+    @ApiModelProperty(value = "鍖哄幙鍚嶇О")
+    private String areaName;
+
+    @ApiModelProperty(value = "瀹氫綅缁忓害")
+    private Double longitude;
+
+    @ApiModelProperty(value = "瀹氫綅绾害")
+    private Double latitude;
+
+    @ApiModelProperty(value = "璇︾粏鍦板潃")
+    private String address;
+
+    @ApiModelProperty(value = "娉曚汉濮撳悕")
+    private String legalPersonName;
+
+    @ApiModelProperty(value = "娉曚汉鐢佃瘽")
+    private String legalPersonPhone;
+
+    @ApiModelProperty(value = "娉曚汉韬唤璇佸彿鐮�")
+    private String legalPersonCard;
+
+    @ApiModelProperty(value = "韬唤璇佹闈㈢収")
+    private String idcardImg;
+
+    @ApiModelProperty(value = "韬唤璇佸弽闈㈢収")
+    private String idcardImgBack;
+
+    @ApiModelProperty(value = "钀ヤ笟鎵х収")
+    private String businessImg;
+
+    @ApiModelProperty(value = "瀹℃壒鐘舵�侊細0=寰呭鎵癸紱1=瀹℃壒閫氳繃锛�2=瀹℃壒鏈�氳繃锛�3=宸叉敮浠樻娂閲�")
+    private Integer auditStatus;
+
+    @ApiModelProperty(value = "鐘舵�侊細0=鍚敤锛�1=绂佺敤")
+    private Integer status;
+
+    @ApiModelProperty(value = "瀹℃壒鏃堕棿")
+    private Date auditTime;
+
+    @ApiModelProperty(value = "瀹℃壒澶囨敞")
+    private String auditRemark;
+
+    @ApiModelProperty(value = "OPENID")
+    private String openid;
+
+    @ApiModelProperty(value = "鏀粯鐘舵�侊細0=寰呮敮浠橈紱1=宸叉敮浠�")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "闂ㄥ簵璇勫垎")
+    private BigDecimal score;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+    @ApiModelProperty(value = "閰嶉�佽寖鍥�(km)")
+    private BigDecimal deliveryArea;
+    // 闄勪欢鍒楄〃
+    @ApiModelProperty(value = "闂ㄥ簵闂ㄥご鐓�")
+    private List<String> storeFrontImgs;
+
+    @ApiModelProperty(value = "闂ㄥ簵鍐呴儴鐓�")
+    private List<String> storeInteriorImgs;
+
+    @ApiModelProperty(value = "鍏朵粬鏉愭枡")
+    private List<String> otherMaterialImgs;
+
+    @ApiModelProperty(value = "鏈夋晥鍔冲姩鍚堝悓")
+    private List<String> laborContractImgs;
+
+    @ApiModelProperty(value = "绀句繚缂寸撼璇佹槑")
+    private List<String> socialSecurityImgs;
+
+    @ApiModelProperty(value = "鍥剧墖鍓嶇紑鍦板潃")
+    private String imgPrefix;
+
+    @ApiModelProperty(value = "缁戝畾寮�鎴蜂細鍛樺ご鍍�")
+    private String payMemberCoverImage;
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/AliSmsService.java b/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
index b9b3174..43f915d 100644
--- a/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
+++ b/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
@@ -1,7 +1,6 @@
 package com.doumee.service.business;
 
 import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.DefaultAcsClient;
 import com.aliyuncs.IAcsClient;
@@ -10,24 +9,10 @@
 import com.aliyuncs.http.MethodType;
 import com.aliyuncs.profile.DefaultProfile;
 import com.aliyuncs.profile.IClientProfile;
-import com.doumee.core.constants.Constants;
-import com.doumee.core.utils.DateUtil;
-import com.doumee.dao.business.CategoryMapper;
-import com.doumee.dao.business.model.Category;
-import com.doumee.dao.business.model.IdentityInfo;
-import com.doumee.dao.business.model.Orders;
-import com.doumee.dao.dto.CateringDTO;
-import com.github.pagehelper.Constant;
-import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
-import java.util.*;
+import java.util.Map;
 
 /**
  * Created by IntelliJ IDEA.
@@ -39,86 +24,13 @@
 @Slf4j
 public class AliSmsService {
 
-    protected Logger logger = LogManager.getLogger("sms");
-
     private final static String ACCESS_KEY_ID = "LTAI5tMkg7wwV74a8H6Bm3Ej";
     private final static String ACCESS_KEY_SECRET = "FcHKST36sfwfo706L6bvrweGFIbp3n";
     private final static String SING_NAME = "姗欐澶╀笅绉戞妧";
 
 
-    public void businessSendSms(int type, String phone, Orders orders, BigDecimal distance,
-                        IdentityInfo identityInfo,CategoryMapper categoryMapper){
-        try{
-            Constants.smsContent smsContent = Constants.smsContent.getSmsContent(type);
-            Map<String,Object> tempParam = new HashMap<>();
-            if(smsContent.getName().indexOf("time1")>=Constants.ZERO){
-                tempParam.put("time1", DateUtil.formatDate(orders.getStartDate(),"yyyy-MM-dd")+" ");
-            }
-            if(smsContent.getName().indexOf("time2")>=Constants.ZERO){
-                tempParam.put("time2", " "+DateUtil.formatDate(orders.getEndDate(),"yyyy-MM-dd"));
-            }
-            if(smsContent.getName().indexOf("money")>=Constants.ZERO){
-                tempParam.put("money", new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)+"鍏�");
-            }
-            if(smsContent.getName().indexOf("distance")>=Constants.ZERO){
-                tempParam.put("distance", distance +"km");
-            }
-            //璁よ瘉鐭俊 鐗规畩澶勭悊
-            if(Constants.equalsInteger(smsContent.getKey(),Constants.smsContent.authentication.getKey())){
-                //璁よ瘉绫诲瀷
-                if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){
-                    tempParam.put("authentication", Constants.equalsInteger(identityInfo.getAuthType(),Constants.ZERO)?"涓汉":identityInfo.getCompanyName());
-                }
-                if(smsContent.getName().indexOf("order")>=Constants.ZERO){
-                    tempParam.put("oeder", Constants.orderType.getName(identityInfo.getType()).replace("鍗�",""));
-                }
-                if(smsContent.getName().indexOf("status")>=Constants.ZERO){
-                    tempParam.put("status", Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"宸查�氳繃":"鏈�氳繃");
-                }
-            }else{
-                if(smsContent.getName().indexOf("order")>=Constants.ZERO){
-                    String order = "";
-                    //鏌ヨ璁㈠崟鐨勭被鍨嬩俊鎭�
-                    if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                        order = Constants.workType.getName(orders.getWorkType());
-                        Category category = categoryMapper.selectById(orders.getCategoryId());
-                        if(Objects.nonNull(category)){
-                            order = category.getName() + order;
-                        }
-                    }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                        order = "杩愯緭";
-                        Category category = categoryMapper.selectById(orders.getTransportTypeId());
-                        if(Objects.nonNull(category)){
-                            order = category.getName() + order;
-                        }
-                    }else{
-                        List<CateringDTO> cateringDTOList = JSONArray.parseArray(orders.getWayInfo(),CateringDTO.class);
-                        if(CollectionUtils.isNotEmpty(cateringDTOList)){
-                            for (CateringDTO cateringDTO:cateringDTOList) {
-                                if(StringUtils.isBlank(order)){
-                                    order = cateringDTO.getName();
-                                }else{
-                                    order = order + "/" +cateringDTO.getName();
-                                }
-                            }
-                        }
-                    }
-                    tempParam.put("order",order);
-                }
-            }
-            if(smsContent.getName().indexOf("distance")>=Constants.ZERO){
-                tempParam.put("distance", distance +"km");
-            }
-            AliSmsService.sendSms(phone,smsContent.getCode(), JSONObject.toJSONString(tempParam));
-        }catch (Exception e){
-            log.error("鐭俊鍙戦�佸け璐");
-        }
-
-    }
-
-
     public static void main(String[] args) {
-        Map<String,Object> tempParam = new HashMap<>();
+        Map<String,Object> tempParam = new java.util.HashMap<>();
         tempParam.put("order","钁¤悇閲囨憳宸�");
         tempParam.put("time1","07-23");
         tempParam.put("time2","07-24");
@@ -158,8 +70,8 @@
             request.setSignName(SING_NAME);
             //蹇呭~:鐭俊妯℃澘-鍙湪鐭俊鎺у埗鍙颁腑鎵惧埌
             request.setTemplateCode(templateCode);
-            //鍙��:妯℃澘涓殑鍙橀噺鏇挎崲JSON涓�,濡傛ā鏉垮唴瀹逛负"浜茬埍鐨�${name},鎮ㄧ殑楠岃瘉鐮佷负${code}"鏃�,姝ゅ鐨勫�间负
-            //鍙嬫儏鎻愮ず:濡傛灉JSON涓渶瑕佸甫鎹㈣绗�,璇峰弬鐓ф爣鍑嗙殑JSON鍗忚瀵规崲琛岀鐨勮姹�,姣斿鐭俊鍐呭涓寘鍚玕r\n鐨勬儏鍐靛湪JSON涓渶瑕佽〃绀烘垚\\r\\n,鍚﹀垯浼氬鑷碕SON鍦ㄦ湇鍔$瑙f瀽澶辫触
+            //鍙��:妯℃澘涓殑鍙橀噺鏇挎崲JSON涓�,濡傛ā鏉垮唴瀹逛负"浜茬埍鐨�${name},鎮ㄧ殑楠岃瘉鐮佷负${code}"鏃讹紝姝ゅ鐨勫�间负
+            //鍙嬫儏鎻愮ず:濡傛灉JSON涓渶瑕佸甫鎹㈣绗�,璇峰弬鐓ф爣鍑嗙殑JSON鍗忚瀵规崲琛岀鐨勮姹�,姣斿鐭俊鍐呭涓寘鍚玕r\n鐨勬儏鍐靛湪JSON涓渶瑕佽〃绀烘垚\\r\n,鍚﹀垯浼氬鑷碕SON鍦ㄦ湇鍔$瑙f瀽澶辫触
             request.setTemplateParam(templateParam);
             //鍙��-涓婅鐭俊鎵╁睍鐮�(鎵╁睍鐮佸瓧娈垫帶鍒跺湪7浣嶆垨浠ヤ笅锛屾棤鐗规畩闇�姹傜敤鎴疯蹇界暐姝ゅ瓧娈�)
             //dto.setSmsUpExtendCode("90997");
diff --git a/server/services/src/main/java/com/doumee/service/business/AppVersionService.java b/server/services/src/main/java/com/doumee/service/business/AppVersionService.java
new file mode 100644
index 0000000..c9e58cb
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/AppVersionService.java
@@ -0,0 +1,107 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.AppVersion;
+
+import java.util.List;
+
+/**
+ * APP鐗堟湰Service瀹氫箟
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface AppVersionService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param appVersion 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(AppVersion appVersion);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param appVersion 瀹炰綋瀵硅薄
+     */
+    void delete(AppVersion appVersion);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param appVersion 瀹炰綋瀵硅薄
+     */
+    void updateById(AppVersion appVersion);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param appVersions 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<AppVersion> appVersions);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return AppVersion
+     */
+    AppVersion findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param appVersion 瀹炰綋瀵硅薄
+     * @return AppVersion
+     */
+    AppVersion findOne(AppVersion appVersion);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param appVersion 瀹炰綋瀵硅薄
+     * @return List<AppVersion>
+     */
+    List<AppVersion> findList(AppVersion appVersion);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<AppVersion>
+     */
+    PageData<AppVersion> findPage(PageWrap<AppVersion> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param appVersion 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(AppVersion appVersion);
+
+    /**
+     * 鑾峰彇鏈�鏂版湁鏁堢殑APP鐗堟湰
+     *
+     * @param type 骞冲彴绫诲瀷 0=Android 1=IOS
+     * @return 鏈�鏂扮増鏈俊鎭�
+     */
+    AppVersion getLatestVersion(Integer type);
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/OrderLogService.java b/server/services/src/main/java/com/doumee/service/business/OrderLogService.java
deleted file mode 100644
index 0cf42ee..0000000
--- a/server/services/src/main/java/com/doumee/service/business/OrderLogService.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.doumee.service.business;
-
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.OrderLog;
-import java.util.List;
-
-/**
- * 璁㈠崟鎿嶄綔鏃ュ織Service瀹氫箟
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
- */
-public interface OrderLogService {
-
-    /**
-     * 鍒涘缓
-     * 
-     * @param orderLog 瀹炰綋瀵硅薄
-     * @return Integer
-     */
-    Integer create(OrderLog orderLog);
-
-    /**
-     * 涓婚敭鍒犻櫎
-     *
-     * @param id 涓婚敭
-     */
-    void deleteById(Integer id);
-
-    /**
-     * 鍒犻櫎
-     *
-     * @param orderLog 瀹炰綋瀵硅薄
-     */
-    void delete(OrderLog orderLog);
-
-    /**
-     * 鎵归噺涓婚敭鍒犻櫎
-     *
-     * @param ids 涓婚敭闆�
-     */
-    void deleteByIdInBatch(List<Integer> ids);
-
-    /**
-     * 涓婚敭鏇存柊
-     *
-     * @param orderLog 瀹炰綋瀵硅薄
-     */
-    void updateById(OrderLog orderLog);
-
-    /**
-     * 鎵归噺涓婚敭鏇存柊
-     *
-     * @param orderLogs 瀹炰綋闆�
-     */
-    void updateByIdInBatch(List<OrderLog> orderLogs);
-
-    /**
-     * 涓婚敭鏌ヨ
-     *
-     * @param id 涓婚敭
-     * @return OrderLog
-     */
-    OrderLog findById(Integer id);
-
-    /**
-     * 鏉′欢鏌ヨ鍗曟潯璁板綍
-     *
-     * @param orderLog 瀹炰綋瀵硅薄
-     * @return OrderLog
-     */
-    OrderLog findOne(OrderLog orderLog);
-
-    /**
-     * 鏉′欢鏌ヨ
-     *
-     * @param orderLog 瀹炰綋瀵硅薄
-     * @return List<OrderLog>
-     */
-    List<OrderLog> findList(OrderLog orderLog);
-  
-    /**
-     * 鍒嗛〉鏌ヨ
-     *
-     * @param pageWrap 鍒嗛〉瀵硅薄
-     * @return PageData<OrderLog>
-     */
-    PageData<OrderLog> findPage(PageWrap<OrderLog> pageWrap);
-
-    /**
-     * 鏉′欢缁熻
-     *
-     * @param orderLog 瀹炰綋瀵硅薄
-     * @return long
-     */
-    long count(OrderLog orderLog);
-}
diff --git a/server/services/src/main/java/com/doumee/service/business/OrdersDetailService.java b/server/services/src/main/java/com/doumee/service/business/OrdersDetailService.java
new file mode 100644
index 0000000..20ed30d
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/OrdersDetailService.java
@@ -0,0 +1,100 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.OrdersDetail;
+
+import java.util.List;
+
+/**
+ * 瀵勫瓨璁㈠崟鏄庣粏 Service瀹氫箟
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface OrdersDetailService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param ordersDetail 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(OrdersDetail ordersDetail);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ordersDetail 瀹炰綋瀵硅薄
+     */
+    void delete(OrdersDetail ordersDetail);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param ordersDetail 瀹炰綋瀵硅薄
+     */
+    void updateById(OrdersDetail ordersDetail);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param ordersDetails 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<OrdersDetail> ordersDetails);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return OrdersDetail
+     */
+    OrdersDetail findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param ordersDetail 瀹炰綋瀵硅薄
+     * @return OrdersDetail
+     */
+    OrdersDetail findOne(OrdersDetail ordersDetail);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param ordersDetail 瀹炰綋瀵硅薄
+     * @return List<OrdersDetail>
+     */
+    List<OrdersDetail> findList(OrdersDetail ordersDetail);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<OrdersDetail>
+     */
+    PageData<OrdersDetail> findPage(PageWrap<OrdersDetail> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param ordersDetail 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(OrdersDetail ordersDetail);
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/OrdersService.java b/server/services/src/main/java/com/doumee/service/business/OrdersService.java
index f2695ea..c33fe57 100644
--- a/server/services/src/main/java/com/doumee/service/business/OrdersService.java
+++ b/server/services/src/main/java/com/doumee/service/business/OrdersService.java
@@ -1,30 +1,25 @@
 package com.doumee.service.business;
 
-import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.Orders;
-import com.doumee.dao.dto.*;
-import com.doumee.dao.vo.OrderReleaseVO;
-import com.wechat.pay.java.service.refund.model.RefundNotification;
 
 import java.util.List;
 
 /**
- * 璁㈠崟淇℃伅璁板綍Service瀹氫箟
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 瀵勫瓨璁㈠崟淇℃伅Service瀹氫箟
+ * @author rk
+ * @date 2026/04/10
  */
 public interface OrdersService {
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param orders 瀹炰綋瀵硅薄
      * @return Integer
      */
-    OrderReleaseVO create(Orders orders);
+    Integer create(Orders orders);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -52,15 +47,14 @@
      *
      * @param orders 瀹炰綋瀵硅薄
      */
-//    void updateById(Orders orders);
+    void updateById(Orders orders);
 
-    void update(Orders orders);
     /**
      * 鎵归噺涓婚敭鏇存柊
      *
-     * @param orderss 瀹炰綋闆�
+     * @param ordersList 瀹炰綋闆�
      */
-    void updateByIdInBatch(List<Orders> orderss);
+    void updateByIdInBatch(List<Orders> ordersList);
 
     /**
      * 涓婚敭鏌ヨ
@@ -85,7 +79,7 @@
      * @return List<Orders>
      */
     List<Orders> findList(Orders orders);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      *
@@ -102,56 +96,4 @@
      */
     long count(Orders orders);
 
-    void accept(Integer orderId, Member member);
-
-    void begin(Integer orderId,Member member);
-
-//    void updOrderData(UpdOrderDataDTO updOrderDataDTO);
-//
-    void confirmUpd(ConfirmUpdOrderDTO confirmUpdOrderDTO);
-
-    /**
-     * 璁㈠崟鍙栨秷鍓嶇疆鎻愮ず
-     * @param orderId
-     * @param member
-     * @return
-     */
-    String cancelTips(Integer orderId,Member member);
-
-    void cancelOrder(Integer orderId,Member member);
-
-    OrderReleaseVO doneOrder(DoneOrderDTO doneOrderDTO);
-
-    void comment(CommentDTO commentDTO);
-
-    /**
-     * 鏀粯鍥炶皟涓氬姟
-     * @param preOrderId
-     * @return
-     */
-    String payNotify(String preOrderId,String paymentNo);
-
-    void platformCancel(Integer orderId, LoginUserInfo loginUserInfo);
-
-    PageData<Orders> findPageForMini(PageWrap<Orders> pageWrap);
-
-    Orders getDetail(Integer id,Member member);
-
-    void refundCallback(RefundNotification refundNotification);
-
-    void autoComment();
-
-    void autoConfirm();
-
-    Long getTotal(Orders orders);
-
-    void autoGrabOrders();
-
-    void initializeCode();
-
-    OrderReleaseVO reusePay(ReusePayDTO reusePayDTO);
-
-    void confirmFee(ConfirmFeeOrderDTO orders);
-
-    void autoCancelWaitPay();
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/RevenueService.java b/server/services/src/main/java/com/doumee/service/business/RevenueService.java
new file mode 100644
index 0000000..48653ec
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/RevenueService.java
@@ -0,0 +1,99 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Revenue;
+
+import java.util.List;
+
+/**
+ * 鏀舵敮璁板綍Service瀹氫箟
+ * @author rk
+ * @date 2026/04/10
+ */
+public interface RevenueService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param revenue 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(Revenue revenue);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param revenue 瀹炰綋瀵硅薄
+     */
+    void delete(Revenue revenue);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param revenue 瀹炰綋瀵硅薄
+     */
+    void updateById(Revenue revenue);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param revenues 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<Revenue> revenues);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return Revenue
+     */
+    Revenue findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param revenue 瀹炰綋瀵硅薄
+     * @return Revenue
+     */
+    Revenue findOne(Revenue revenue);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param revenue 瀹炰綋瀵硅薄
+     * @return List<Revenue>
+     */
+    List<Revenue> findList(Revenue revenue);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<Revenue>
+     */
+    PageData<Revenue> findPage(PageWrap<Revenue> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param revenue 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(Revenue revenue);
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java b/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java
index 8114534..d7b24e0 100644
--- a/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java
+++ b/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java
@@ -3,6 +3,13 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.ShopInfo;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.dto.AuditDTO;
+import com.doumee.dao.dto.ChangeStatusDTO;
+import com.doumee.dao.dto.ResetPasswordDTO;
+import com.doumee.dao.dto.ShopApplyDTO;
+import com.doumee.dao.dto.ShopUpdateDTO;
+import com.doumee.dao.vo.ShopDetailVO;
 
 import java.util.List;
 
@@ -96,4 +103,49 @@
      */
     long count(ShopInfo shopInfo);
 
+    /**
+     * 闂ㄥ簵鍏ラ┗鐢宠/淇敼
+     * @param request 鐢宠璇锋眰
+     * @param member 褰撳墠鐧诲綍浼氬憳
+     */
+    void applyShop(ShopApplyDTO request, Member member);
+
+    /**
+     * 鏌ヨ闂ㄥ簵璇︽儏锛堝惈闄勪欢锛�
+     * @param shopId 闂ㄥ簵涓婚敭
+     * @return 闂ㄥ簵璇︽儏
+     */
+    ShopDetailVO getShopDetail(Integer shopId);
+
+    /**
+     * 鏌ヨ褰撳墠浼氬憳鐨勯棬搴椾俊鎭�
+     * @param memberId 浼氬憳涓婚敭
+     * @return 闂ㄥ簵璇︽儏锛屾棤鍒欒繑鍥瀗ull
+     */
+    ShopDetailVO getMyShop(Integer memberId);
+
+    /**
+     * 瀹℃壒闂ㄥ簵鐢宠
+     * @param auditDTO 瀹℃壒璇锋眰
+     */
+    void auditShop(AuditDTO auditDTO);
+
+    /**
+     * 淇敼闂ㄥ簵鐘舵�侊紙鍚敤/绂佺敤锛�
+     * @param dto 淇敼鐘舵�佽姹�
+     */
+    void changeStatus(ChangeStatusDTO dto);
+
+    /**
+     * 閲嶇疆闂ㄥ簵瀵嗙爜锛堟墜鏈哄彿鍚�6浣� + @123456锛�
+     * @param dto 閲嶇疆瀵嗙爜璇锋眰
+     */
+    void resetPassword(ResetPasswordDTO dto);
+
+    /**
+     * 鍚庡彴淇敼闂ㄥ簵淇℃伅
+     * @param dto 淇敼璇锋眰
+     */
+    void updateShop(ShopUpdateDTO dto);
+
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/WithdrawalOrdersService.java b/server/services/src/main/java/com/doumee/service/business/WithdrawalOrdersService.java
index 53ebbc0..f3a6ed2 100644
--- a/server/services/src/main/java/com/doumee/service/business/WithdrawalOrdersService.java
+++ b/server/services/src/main/java/com/doumee/service/business/WithdrawalOrdersService.java
@@ -3,20 +3,19 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.WithdrawalOrders;
-import com.doumee.dao.dto.WithdrawalDTO;
 
 import java.util.List;
 
 /**
  * 鎻愮幇鐢宠璁板綍Service瀹氫箟
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * @author rk
+ * @date 2026/04/10
  */
 public interface WithdrawalOrdersService {
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param withdrawalOrders 瀹炰綋瀵硅薄
      * @return Integer
      */
@@ -53,9 +52,9 @@
     /**
      * 鎵归噺涓婚敭鏇存柊
      *
-     * @param withdrawalOrderss 瀹炰綋闆�
+     * @param withdrawalOrdersList 瀹炰綋闆�
      */
-    void updateByIdInBatch(List<WithdrawalOrders> withdrawalOrderss);
+    void updateByIdInBatch(List<WithdrawalOrders> withdrawalOrdersList);
 
     /**
      * 涓婚敭鏌ヨ
@@ -80,7 +79,7 @@
      * @return List<WithdrawalOrders>
      */
     List<WithdrawalOrders> findList(WithdrawalOrders withdrawalOrders);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      *
@@ -96,8 +95,5 @@
      * @return long
      */
     long count(WithdrawalOrders withdrawalOrders);
-
-
-    void transferSuccess(String outBillNo,Boolean isSuccess);
 
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java
new file mode 100644
index 0000000..814ee65
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/impl/AppVersionServiceImpl.java
@@ -0,0 +1,179 @@
+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.constants.ResponseStatus;
+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.AppVersionMapper;
+import com.doumee.dao.business.model.AppVersion;
+import com.doumee.service.business.AppVersionService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * APP鐗堟湰Service瀹炵幇
+ * @author rk
+ * @date 2026/04/10
+ */
+@Service
+public class AppVersionServiceImpl implements AppVersionService {
+
+    @Autowired
+    private AppVersionMapper appVersionMapper;
+
+    @Override
+    public Integer create(AppVersion appVersion) {
+        if (StringUtils.isBlank(appVersion.getVersionInfo())
+                || StringUtils.isBlank(appVersion.getFileUrl())
+                || StringUtils.isBlank(appVersion.getName())
+                || StringUtils.isBlank(appVersion.getContent())
+                || StringUtils.isBlank(appVersion.getTitle())
+                || Objects.isNull(appVersion.getIsForce())
+                || Objects.isNull(appVersion.getType())
+                || Objects.isNull(appVersion.getFileSize())
+                || Objects.isNull(appVersion.getVersionNum())) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        appVersionMapper.insert(appVersion);
+        return appVersion.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        appVersionMapper.update(new UpdateWrapper<AppVersion>().lambda()
+                .set(AppVersion::getDeleted, Constants.ONE)
+                .eq(AppVersion::getId, id));
+    }
+
+    @Override
+    public void delete(AppVersion appVersion) {
+        UpdateWrapper<AppVersion> deleteWrapper = new UpdateWrapper<>(appVersion);
+        appVersionMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (ids == null || ids.isEmpty()) {
+            return;
+        }
+        appVersionMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(AppVersion appVersion) {
+        appVersionMapper.updateById(appVersion);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<AppVersion> appVersions) {
+        if (appVersions == null || appVersions.isEmpty()) {
+            return;
+        }
+        for (AppVersion appVersion : appVersions) {
+            this.updateById(appVersion);
+        }
+    }
+
+    @Override
+    public AppVersion findById(Integer id) {
+        AppVersion appVersion = appVersionMapper.selectById(id);
+        if (Objects.isNull(appVersion)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        return appVersion;
+    }
+
+    @Override
+    public AppVersion findOne(AppVersion appVersion) {
+        QueryWrapper<AppVersion> wrapper = new QueryWrapper<>(appVersion);
+        return appVersionMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<AppVersion> findList(AppVersion appVersion) {
+        QueryWrapper<AppVersion> wrapper = new QueryWrapper<>(appVersion);
+        return appVersionMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<AppVersion> findPage(PageWrap<AppVersion> pageWrap) {
+        IPage<AppVersion> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<AppVersion> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setDeleted(Constants.ZERO);
+        if (pageWrap.getModel().getId() != null) {
+            queryWrapper.lambda().eq(AppVersion::getId, pageWrap.getModel().getId());
+        }
+        if (pageWrap.getModel().getDeleted() != null) {
+            queryWrapper.lambda().eq(AppVersion::getDeleted, pageWrap.getModel().getDeleted());
+        }
+        if (pageWrap.getModel().getCreateUser() != null) {
+            queryWrapper.lambda().eq(AppVersion::getCreateUser, pageWrap.getModel().getCreateUser());
+        }
+        if (pageWrap.getModel().getCreateTime() != null) {
+            queryWrapper.lambda().ge(AppVersion::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
+            queryWrapper.lambda().le(AppVersion::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
+        }
+        if (pageWrap.getModel().getUpdateUser() != null) {
+            queryWrapper.lambda().eq(AppVersion::getUpdateUser, pageWrap.getModel().getUpdateUser());
+        }
+        if (pageWrap.getModel().getUpdateTime() != null) {
+            queryWrapper.lambda().ge(AppVersion::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
+            queryWrapper.lambda().le(AppVersion::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
+        }
+        if (pageWrap.getModel().getRemark() != null) {
+            queryWrapper.lambda().eq(AppVersion::getRemark, pageWrap.getModel().getRemark());
+        }
+        if (pageWrap.getModel().getVersionInfo() != null) {
+            queryWrapper.lambda().like(AppVersion::getVersionInfo, pageWrap.getModel().getVersionInfo());
+        }
+        if (pageWrap.getModel().getName() != null) {
+            queryWrapper.lambda().like(AppVersion::getName, pageWrap.getModel().getName());
+        }
+        if (pageWrap.getModel().getTitle() != null) {
+            queryWrapper.lambda().like(AppVersion::getTitle, pageWrap.getModel().getTitle());
+        }
+        if (pageWrap.getModel().getIsForce() != null) {
+            queryWrapper.lambda().eq(AppVersion::getIsForce, pageWrap.getModel().getIsForce());
+        }
+        if (pageWrap.getModel().getType() != null) {
+            queryWrapper.lambda().eq(AppVersion::getType, pageWrap.getModel().getType());
+        }
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(appVersionMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(AppVersion appVersion) {
+        QueryWrapper<AppVersion> wrapper = new QueryWrapper<>(appVersion);
+        return appVersionMapper.selectCount(wrapper);
+    }
+
+    @Override
+    public AppVersion getLatestVersion(Integer type) {
+        QueryWrapper<AppVersion> qw = new QueryWrapper<>();
+        qw.lambda()
+                .eq(AppVersion::getDeleted, Constants.ZERO)
+                .eq(AppVersion::getType, type)
+                .orderByDesc(AppVersion::getVersionNum)
+                .last("limit 1");
+        return appVersionMapper.selectOne(qw);
+    }
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index 56d9001..5fb7a02 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -52,24 +52,17 @@
         if(Objects.isNull(category)
         || Objects.isNull(category.getType())
         || Objects.isNull(category.getName())
-        || (!Constants.equalsInteger(category.getType(),Constants.ZERO)&& CollectionUtils.isEmpty(category.getDetailList()))
-        || (Constants.equalsInteger(category.getType(),Constants.ONE) && (Objects.isNull(category.getIcon())||Objects.isNull(category.getIsFixed())) )
+        || StringUtils.isBlank(category.getDetail())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
+        validateByType(category);
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         category.setDeleted(Constants.ZERO);
         category.setCreateTime(new Date());
         category.setCreateUser(loginUserInfo.getId());
         category.setUpdateTime(new Date());
         category.setUpdateUser(loginUserInfo.getId());
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(category.getDetailList())
-                && !Constants.equalsInteger(category.getType(),Constants.THREE)){
-            category.setDetail(category.getDetailList().toJSONString());
-        }
-        if(!Constants.equalsInteger(category.getType(),Constants.ONE)){
-            category.setIsFixed(Constants.ZERO);
-        }
         categoryMapper.insert(category);
         return category.getId();
     }
@@ -102,19 +95,14 @@
                 || Objects.isNull(category.getId())
                 || Objects.isNull(category.getType())
                 || Objects.isNull(category.getName())
-                || (!Constants.equalsInteger(category.getType(),Constants.ZERO)&& CollectionUtils.isEmpty(category.getDetailList()))
-                || (Constants.equalsInteger(category.getType(),Constants.ONE) && (Objects.isNull(category.getIcon())||Objects.isNull(category.getIsFixed())) )
+                || StringUtils.isBlank(category.getDetail())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
+        validateByType(category);
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         category.setUpdateTime(new Date());
-        category.setIsFixed(null);
         category.setUpdateUser(loginUserInfo.getId());
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(category.getDetailList())
-                && !Constants.equalsInteger(category.getType(),Constants.THREE)){
-            category.setDetail(category.getDetailList().toJSONString());
-        }
         categoryMapper.updateById(category);
     }
     @Override
@@ -125,11 +113,7 @@
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         category.setUpdateTime(new Date());
-        category.setIsFixed(null);
         category.setUpdateUser(loginUserInfo.getId());
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(category.getDetailList())){
-            category.setDetail(category.getDetailList().toJSONString());
-        }
         categoryMapper.updateById(category);
     }
 
@@ -148,9 +132,6 @@
         Category category = categoryMapper.selectById(id);
         if(Objects.isNull(category)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(StringUtils.isNotBlank(category.getDetail())){
-            category.setDetailList(JSONArray.parseArray(category.getDetail()));
         }
         if(StringUtils.isNotBlank(category.getIcon())){
             String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
@@ -219,9 +200,6 @@
         if (pageWrap.getModel().getIcon() != null) {
             queryWrapper.eq(Category::getIcon, pageWrap.getModel().getIcon());
         }
-        if (pageWrap.getModel().getIsFixed() != null) {
-            queryWrapper.eq(Category::getIsFixed, pageWrap.getModel().getIsFixed());
-        }
         queryWrapper.orderByAsc(Category::getSortnum);
         PageData<Category> result =PageData.from(categoryMapper.selectJoinPage(page, Category.class,queryWrapper));
         if(result!=null && result.getRecords()!=null){
@@ -229,9 +207,6 @@
                     +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CATEGORY_FILES).getCode();
             for(Category cate : result.getRecords()){
                 try {
-                    if(StringUtils.isNotBlank(cate.getDetail())){
-                        cate.setDetailList(JSONArray.parseArray(cate.getDetail()));
-                    }
                     if(StringUtils.isNotBlank(cate.getIcon())){
                         cate.setIconFull(path + cate.getIcon());
                     }
@@ -259,9 +234,6 @@
             String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CATEGORY_FILES).getCode();
             for (Category category:categoryList) {
-                if(StringUtils.isNotBlank(category.getDetail())){
-                    category.setDetailList(JSONArray.parseArray(category.getDetail()));
-                }
                 if(StringUtils.isNotBlank(category.getIcon())){
                     category.setIconFull(path + category.getIcon());
                 }
@@ -270,5 +242,20 @@
         return categoryList;
     }
 
+    private void validateByType(Category category) {
+        if (Constants.equalsInteger(category.getType(), Constants.ONE)) {
+            if (StringUtils.isBlank(category.getOtherField())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "杞﹁締绫诲瀷蹇呴』濉啓闄勫睘瀛楁");
+            }
+        } else if (Constants.equalsInteger(category.getType(), Constants.TWO)) {
+            if (Objects.isNull(category.getRelationId())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐗╁搧鍒嗙被蹇呴』閫夋嫨鍏宠仈鐗╁搧绛夌骇");
+            }
+        } else if (Constants.equalsInteger(category.getType(), Constants.FOUR)) {
+            if (StringUtils.isBlank(category.getIcon())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐗╁搧灏哄蹇呴』涓婁紶鍥炬爣");
+            }
+        }
+    }
 
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
index fd591be..93068ad 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
@@ -486,10 +486,5 @@
             sendWxMessage.identityInfoMessage(member.getOpenid(),identityInfo);
         }
 
-        //鐭俊閫氱煡
-        aliSmsService.businessSendSms(Constants.smsContent.authentication.getKey(),
-                member.getTelephone(),null,null,
-                identityInfo,categoryMapper);
-
     }
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java
index a24c980..bdeeffe 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberRevenueServiceImpl.java
@@ -7,7 +7,6 @@
 import com.doumee.dao.business.MemberRevenueMapper;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.MemberRevenue;
-import com.doumee.dao.business.model.Orders;
 import com.doumee.service.business.MemberRevenueService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -98,9 +97,7 @@
                 .selectAs(Member::getName,MemberRevenue::getMemberName)
                 .selectAs(Member::getNickName,MemberRevenue::getMemberNickname)
                 .selectAs(Member::getTelephone,MemberRevenue::getMemberPhone)
-                .selectAs(Orders::getWorkType,MemberRevenue::getWorkType)
-                .leftJoin(Member.class,Member::getId,MemberRevenue::getMemberId)
-                .leftJoin(Orders.class,Orders::getId,MemberRevenue::getObjId);
+                .leftJoin(Member.class,Member::getId,MemberRevenue::getMemberId);
         Utils.MP.blankToNull(pageWrap.getModel());
         pageWrap.getModel().setDeleted(Constants.ZERO);
         queryWrapper.eq(pageWrap.getModel().getId() != null,MemberRevenue::getId, pageWrap.getModel().getId());
@@ -120,7 +117,7 @@
         PageData<MemberRevenue> result =  PageData.from(memberRevenueMapper.selectJoinPage(page,MemberRevenue.class,  queryWrapper));
         if(result!=null && result.getRecords()!=null){
             for(MemberRevenue model :result.getRecords()){
-                model.setTypeName(Constants.RevenueType.getObjName(model.getType()));
+                model.setTypeName(null);
                 model.setAmountInfo(Constants.getFormatMoney(model.getAmount()));
             }
         }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 33dc998..fffe79b 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -14,11 +14,9 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.IdentityInfoMapper;
 import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.OrdersMapper;
 import com.doumee.dao.business.model.IdentityInfo;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.business.model.MemberRevenue;
-import com.doumee.dao.business.model.Orders;
 import com.doumee.dao.dto.WxPhoneRequest;
 import com.doumee.dao.vo.AccountResponse;
 import com.doumee.dao.vo.UserCenterVO;
@@ -59,9 +57,6 @@
 
     @Autowired
     private IdentityInfoMapper identityInfoMapper;
-
-    @Autowired
-    private OrdersMapper ordersMapper;
 
     @Autowired
     private JwtTokenUtil jwtTokenUtil;
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrderLogServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrderLogServiceImpl.java
deleted file mode 100644
index 945b237..0000000
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrderLogServiceImpl.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package com.doumee.service.business.impl;
-
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.OrderLogMapper;
-import com.doumee.dao.business.model.OrderLog;
-import com.doumee.service.business.OrderLogService;
-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 org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import java.util.List;
-
-/**
- * 璁㈠崟鎿嶄綔鏃ュ織Service瀹炵幇
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
- */
-@Service
-public class OrderLogServiceImpl implements OrderLogService {
-
-    @Autowired
-    private OrderLogMapper orderLogMapper;
-
-    @Override
-    public Integer create(OrderLog orderLog) {
-        orderLogMapper.insert(orderLog);
-        return orderLog.getId();
-    }
-
-    @Override
-    public void deleteById(Integer id) {
-        orderLogMapper.deleteById(id);
-    }
-
-    @Override
-    public void delete(OrderLog orderLog) {
-        UpdateWrapper<OrderLog> deleteWrapper = new UpdateWrapper<>(orderLog);
-        orderLogMapper.delete(deleteWrapper);
-    }
-
-    @Override
-    public void deleteByIdInBatch(List<Integer> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
-            return;
-        }
-        orderLogMapper.deleteBatchIds(ids);
-    }
-
-    @Override
-    public void updateById(OrderLog orderLog) {
-        orderLogMapper.updateById(orderLog);
-    }
-
-    @Override
-    public void updateByIdInBatch(List<OrderLog> orderLogs) {
-        if (CollectionUtils.isEmpty(orderLogs)) {
-            return;
-        }
-        for (OrderLog orderLog: orderLogs) {
-            this.updateById(orderLog);
-        }
-    }
-
-    @Override
-    public OrderLog findById(Integer id) {
-        return orderLogMapper.selectById(id);
-    }
-
-    @Override
-    public OrderLog findOne(OrderLog orderLog) {
-        QueryWrapper<OrderLog> wrapper = new QueryWrapper<>(orderLog);
-        return orderLogMapper.selectOne(wrapper);
-    }
-
-    @Override
-    public List<OrderLog> findList(OrderLog orderLog) {
-        QueryWrapper<OrderLog> wrapper = new QueryWrapper<>(orderLog);
-        return orderLogMapper.selectList(wrapper);
-    }
-  
-    @Override
-    public PageData<OrderLog> findPage(PageWrap<OrderLog> pageWrap) {
-        IPage<OrderLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<OrderLog> queryWrapper = new QueryWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(OrderLog::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getDeleted() != null) {
-            queryWrapper.lambda().eq(OrderLog::getDeleted, pageWrap.getModel().getDeleted());
-        }
-        if (pageWrap.getModel().getCreateUser() != null) {
-            queryWrapper.lambda().eq(OrderLog::getCreateUser, pageWrap.getModel().getCreateUser());
-        }
-        if (pageWrap.getModel().getCreateTime() != null) {
-            queryWrapper.lambda().ge(OrderLog::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
-            queryWrapper.lambda().le(OrderLog::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
-        }
-        if (pageWrap.getModel().getUpdateUser() != null) {
-            queryWrapper.lambda().eq(OrderLog::getUpdateUser, pageWrap.getModel().getUpdateUser());
-        }
-        if (pageWrap.getModel().getUpdateTime() != null) {
-            queryWrapper.lambda().ge(OrderLog::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
-            queryWrapper.lambda().le(OrderLog::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(OrderLog::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getOrderId() != null) {
-            queryWrapper.lambda().eq(OrderLog::getOrderId, pageWrap.getModel().getOrderId());
-        }
-        if (pageWrap.getModel().getTitle() != null) {
-            queryWrapper.lambda().eq(OrderLog::getTitle, pageWrap.getModel().getTitle());
-        }
-        if (pageWrap.getModel().getLogInfo() != null) {
-            queryWrapper.lambda().eq(OrderLog::getLogInfo, pageWrap.getModel().getLogInfo());
-        }
-        if (pageWrap.getModel().getObjType() != null) {
-            queryWrapper.lambda().eq(OrderLog::getObjType, pageWrap.getModel().getObjType());
-        }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.lambda().eq(OrderLog::getMemberId, pageWrap.getModel().getMemberId());
-        }
-        if (pageWrap.getModel().getBeforeInfo() != null) {
-            queryWrapper.lambda().eq(OrderLog::getBeforeInfo, pageWrap.getModel().getBeforeInfo());
-        }
-        if (pageWrap.getModel().getAfterInfo() != null) {
-            queryWrapper.lambda().eq(OrderLog::getAfterInfo, pageWrap.getModel().getAfterInfo());
-        }
-        if (pageWrap.getModel().getOrderStatus() != null) {
-            queryWrapper.lambda().eq(OrderLog::getOrderStatus, pageWrap.getModel().getOrderStatus());
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(orderLogMapper.selectPage(page, queryWrapper));
-    }
-
-    @Override
-    public long count(OrderLog orderLog) {
-        QueryWrapper<OrderLog> wrapper = new QueryWrapper<>(orderLog);
-        return orderLogMapper.selectCount(wrapper);
-    }
-}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersDetailServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersDetailServiceImpl.java
new file mode 100644
index 0000000..2cc489b
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersDetailServiceImpl.java
@@ -0,0 +1,148 @@
+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.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.OrdersDetailMapper;
+import com.doumee.dao.business.model.OrdersDetail;
+import com.doumee.service.business.OrdersDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 瀵勫瓨璁㈠崟鏄庣粏 Service瀹炵幇
+ *
+ * @author rk
+ * @date 2026/04/10
+ */
+@Service
+public class OrdersDetailServiceImpl implements OrdersDetailService {
+
+    @Autowired
+    private OrdersDetailMapper ordersDetailMapper;
+
+    @Override
+    public Integer create(OrdersDetail ordersDetail) {
+        ordersDetailMapper.insert(ordersDetail);
+        return ordersDetail.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        ordersDetailMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(OrdersDetail ordersDetail) {
+        UpdateWrapper<OrdersDetail> deleteWrapper = new UpdateWrapper<>(ordersDetail);
+        ordersDetailMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (ids == null || ids.isEmpty()) {
+            return;
+        }
+        ordersDetailMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(OrdersDetail ordersDetail) {
+        ordersDetailMapper.updateById(ordersDetail);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<OrdersDetail> ordersDetails) {
+        if (ordersDetails == null || ordersDetails.isEmpty()) {
+            return;
+        }
+        for (OrdersDetail ordersDetail : ordersDetails) {
+            this.updateById(ordersDetail);
+        }
+    }
+
+    @Override
+    public OrdersDetail findById(Integer id) {
+        return ordersDetailMapper.selectById(id);
+    }
+
+    @Override
+    public OrdersDetail findOne(OrdersDetail ordersDetail) {
+        QueryWrapper<OrdersDetail> wrapper = new QueryWrapper<>(ordersDetail);
+        return ordersDetailMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<OrdersDetail> findList(OrdersDetail ordersDetail) {
+        QueryWrapper<OrdersDetail> wrapper = new QueryWrapper<>(ordersDetail);
+        return ordersDetailMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<OrdersDetail> findPage(PageWrap<OrdersDetail> pageWrap) {
+        IPage<OrdersDetail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<OrdersDetail> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setDeleted(Constants.ZERO);
+        if (pageWrap.getModel().getId() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getId, pageWrap.getModel().getId());
+        }
+        if (pageWrap.getModel().getDeleted() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getDeleted, pageWrap.getModel().getDeleted());
+        }
+        if (pageWrap.getModel().getCreateUser() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getCreateUser, pageWrap.getModel().getCreateUser());
+        }
+        if (pageWrap.getModel().getCreateTime() != null) {
+            queryWrapper.lambda().ge(OrdersDetail::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
+            queryWrapper.lambda().le(OrdersDetail::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
+        }
+        if (pageWrap.getModel().getUpdateUser() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getUpdateUser, pageWrap.getModel().getUpdateUser());
+        }
+        if (pageWrap.getModel().getUpdateTime() != null) {
+            queryWrapper.lambda().ge(OrdersDetail::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
+            queryWrapper.lambda().le(OrdersDetail::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
+        }
+        if (pageWrap.getModel().getRemark() != null) {
+            queryWrapper.lambda().like(OrdersDetail::getRemark, pageWrap.getModel().getRemark());
+        }
+        if (pageWrap.getModel().getOrderId() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getOrderId, pageWrap.getModel().getOrderId());
+        }
+        if (pageWrap.getModel().getLuggageId() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getLuggageId, pageWrap.getModel().getLuggageId());
+        }
+        if (pageWrap.getModel().getLuggageName() != null) {
+            queryWrapper.lambda().like(OrdersDetail::getLuggageName, pageWrap.getModel().getLuggageName());
+        }
+        if (pageWrap.getModel().getNum() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getNum, pageWrap.getModel().getNum());
+        }
+        if (pageWrap.getModel().getUnitPrice() != null) {
+            queryWrapper.lambda().eq(OrdersDetail::getUnitPrice, pageWrap.getModel().getUnitPrice());
+        }
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(ordersDetailMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(OrdersDetail ordersDetail) {
+        QueryWrapper<OrdersDetail> wrapper = new QueryWrapper<>(ordersDetail);
+        return ordersDetailMapper.selectCount(wrapper);
+    }
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
index 68a4903..414e48e 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -1,384 +1,49 @@
 package com.doumee.service.business.impl;
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.config.wx.SendWxMessage;
-import com.doumee.config.wx.WxMiniConfig;
-import com.doumee.config.wx.WxMiniUtilService;
-import com.doumee.core.constants.Constants;
-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.DateUtil;
-import com.doumee.core.utils.GeoUtils;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.*;
-import com.doumee.dao.business.model.*;
-import com.doumee.dao.dto.*;
-import com.doumee.dao.vo.OrderReleaseVO;
-import com.doumee.dao.vo.PayResponse;
-import com.doumee.service.business.AliSmsService;
-import com.doumee.service.business.OrdersService;
 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.binarywang.wxpay.bean.request.BaseWxPayRequest;
-import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
-import com.github.binarywang.wxpay.exception.WxPayException;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+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.OrdersMapper;
+import com.doumee.dao.business.model.Category;
+import com.doumee.dao.business.model.Orders;
+import com.doumee.service.business.OrdersService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.wechat.pay.java.service.partnerpayments.jsapi.model.Amount;
-import com.wechat.pay.java.service.partnerpayments.jsapi.model.Payer;
-import com.wechat.pay.java.service.partnerpayments.jsapi.model.PrepayRequest;
-import com.wechat.pay.java.service.partnerpayments.jsapi.model.PrepayWithRequestPaymentResponse;
-import com.wechat.pay.java.service.refund.model.RefundNotification;
-import jodd.util.StringUtil;
-import lombok.With;
-import lombok.extern.slf4j.Slf4j;
-import nonapi.io.github.classgraph.json.Id;
-import org.apache.poi.sl.image.ImageHeaderEMF;
-import org.checkerframework.checker.units.qual.A;
-import org.springframework.beans.BeanUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
+import java.util.List;
+import java.util.Objects;
 
 /**
- * 璁㈠崟淇℃伅璁板綍Service瀹炵幇
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * 瀵勫瓨璁㈠崟淇℃伅Service瀹炵幇
+ * @author rk
+ * @date 2026/04/10
  */
-@Slf4j
 @Service
 public class OrdersServiceImpl implements OrdersService {
 
     @Autowired
     private OrdersMapper ordersMapper;
 
-    @Autowired
-    private SystemDictDataBiz systemDictDataBiz;
-
-    @Autowired
-    private CategoryMapper categoryMapper;
-
-    @Autowired
-    private MultifileMapper multifileMapper;
-
-    @Autowired
-    private OrderLogMapper orderLogMapper;
-
-    @Autowired
-    private MemberMapper memberMapper;
-
-    @Autowired
-    private MemberRevenueMapper memberRevenueMapper;
-
-    @Autowired
-    private IdentityInfoMapper identityInfoMapper;
-
-    @Autowired
-    private WithdrawalOrdersMapper withdrawalOrdersMapper;
-
-    @Autowired
-    private ReceiveWeightMapper receiveWeightMapper;
-
-    @Autowired
-    private WxMiniUtilService wxMiniUtilService;
-
-    @Autowired
-    private SendWxMessage sendWxMessage;
-
-    @Autowired
-    private AliSmsService aliSmsService;
-
-    @Resource
-    private RedisTemplate<String,Object> redisTemplate;
-
     @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public OrderReleaseVO create(Orders orders) {
-        OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
-        Object objects = null;
-        this.initVerification(orders);
-        Member member = memberMapper.selectById(orders.getMember().getId());
-        if(Objects.isNull(member)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
-        }
-
-        orders.setCreateTime(new Date());
-        orders.setUpdateTime(orders.getUpdateTime());
-        orders.setPayStatus(Constants.ZERO);
-        orders.setDeleted(Constants.ZERO);
-        orders.setReleaseMemberId(orders.getMember().getId());
-        orders.setCommentStatus(Constants.ZERO);
-        //鏌ヨ鎵嬬画璐�
-        Category platformCategory = categoryMapper.selectOne(new QueryWrapper<Category>().lambda().eq(Category::getType,Constants.THREE).eq(Category::getName,orders.getType()).eq(Category::getDeleted,Constants.ZERO).last("limit 1 "));
-        if(Objects.isNull(platformCategory)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈缃钩鍙伴厤缃俊鎭�");
-        }
-        orders.setPlatformRata(new BigDecimal(platformCategory.getDetail()).divide(new BigDecimal("100")));
-        //璁㈠崟缂栧彿
-        orders.setCode(this.getNextCode(orders.getType()));
-        Category category = categoryMapper.selectOne(new QueryWrapper<Category>().lambda()
-                .eq(Category::getDeleted,Constants.ZERO).eq(Category::getType,Constants.THREE)
-                .eq(Category::getName,orders.getType())
-                .last("limit 1")
-        );
-        if(Objects.isNull(category)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍙傛暟閰嶇疆閿欒,璇疯仈绯荤鐞嗗憳");
-        }
-        orders.setPayAccount(orders.getEstimatedAccount());
-        Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
-        orders.setReceiveAccount(orders.getPayAccount() - tcje);
-        //鐢ㄩ璁㈠崟
-        if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
-            orders.setStatus(Constants.ordersStatus.waitPay.getKey());
-            orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
-            //鍞よ捣鏀粯涓氬姟
-            objects = this.getWxPayResponse(orders,member.getOpenid());
-            orderReleaseVO.setObject(objects);
-        }else{
-            orders.setStatus(Constants.ordersStatus.wait.getKey());
-        }
-        orders.setOriginPriceNum1(orders.getPriceNum1());
-        orders.setOriginPriceNum2(orders.getPriceNum2());
-        orders.setOriginEstimatedAccount(orders.getEstimatedAccount());
-        orders.setConfirmOtherFee(0l);
+    public Integer create(Orders orders) {
         ordersMapper.insert(orders);
-
-        orderReleaseVO.setId(orders.getId());
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(orders.getMultifileList())){
-            List<Multifile> multifileList = orders.getMultifileList();
-            for (Multifile multifile:multifileList) {
-                if(Objects.isNull(multifile)
-                || StringUtils.isEmpty(multifile.getFileurl())
-                || StringUtils.isEmpty(multifile.getName())){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢淇℃伅閿欒");
-                }
-                multifile.setIsdeleted(Constants.ZERO);
-                multifile.setCreateDate(new Date());
-                multifile.setObjId(orders.getId());
-                multifile.setObjType(Constants.ONE);
-            }
-            multifileMapper.insert(multifileList);
-        }
-        //鏇存柊鐢ㄦ埛鍙戝崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" PUBLISH_NUM =  ( ifnull(PUBLISH_NUM,0) + 1 )").eq(Member::getId,orders.getMember().getId()));
-
-        //鍒涘缓鎿嶄綔鏃ュ織
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.UPLOAD;
-        String orderTypeInfo = Constants.getOrderInfo(orders);/*"鐢ㄥ伐鍗�";
-        if(!Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            orderTypeInfo =   Constants.equalsInteger(orders.getType(),Constants.ONE)?"鐢ㄨ溅鍗�":"閫侀鍗�";
-        }else{
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){
-                orderTypeInfo = orderTypeInfo + "-閲囨憳宸�";
-            }else{
-                orderTypeInfo = orderTypeInfo + (Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"-鍒嗘嫞宸�":"-鍖呰宸�");
-            }
-        }*/
-        String logInfo = ordersLog.getInfo()
-                .replace("{param}",orderTypeInfo)
-                .replace("{userName}", org.apache.commons.lang3.StringUtils.isNotBlank(member.getName())?member.getName():"-");
-        this.saveOrderLog(orders,ordersLog,
-                logInfo,orders.getReleaseMemberId(),null);
-        return orderReleaseVO;
+        return orders.getId();
     }
-
-    private PayResponse getWxPayResponse(Orders orders,String openid){
-        try {
-            Object response = null;
-            //璋冭捣鏀粯
-            WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
-            request.setAttach("createOrder");
-            request.setAttach("璁㈠崟鏀粯");
-            request.setOutTradeNo(orders.getOutTradeNo());
-            request.setTotalFee(BaseWxPayRequest.yuanToFen(orders.getPrice().toString()));
-
-
-            request.setTimeStart(DateUtil.DateToString(new Date(), "yyyyMMddHHmmss"));
-            request.setSpbillCreateIp(Constants.getIpAddr());
-            //寰俊灏忕▼搴�
-            request.setOpenid(openid);
-            response = WxMiniConfig.wxPayService.createOrder(request);
-            PayResponse payResponse = new PayResponse();
-            payResponse.setResponse(response);
-            payResponse.setOrderId(orders.getId());
-            payResponse.setPayType(Constants.ZERO);
-
-            return payResponse;
-        } catch (WxPayException e) {
-            e.printStackTrace();
-        }
-        throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏀粯澶辫触锛�");
-    }
-
-    /**
-     * 鏃ュ織淇℃伅
-     * @param orders 璁㈠崟淇℃伅
-     * @param ordersLog 璁㈠崟鏀寔鍒嗙被
-     * @param logInfo 鏃ュ織鍐呭
-     * @param memberId 绉诲姩绔搷浣滀汉
-     * @param userId 绯荤粺鎿嶄綔浜�
-     */
-    public void saveOrderLog(Orders orders,Constants.OrdersLog ordersLog,String logInfo,Integer memberId,Integer userId){
-        OrderLog orderLog = new OrderLog();
-        orderLog.setCreateTime(orders.getUpdateTime());
-        orderLog.setDeleted(Constants.ZERO);
-        orderLog.setOrderId(orders.getId());
-        orderLog.setTitle(ordersLog.getName());
-        orderLog.setLogInfo(logInfo);
-        orderLog.setObjType(ordersLog.getKey());
-        orderLog.setOrderStatus(orders.getStatus());
-        orderLog.setMemberId(memberId);
-        orderLog.setCreateUser(userId);
-        orderLog.setOptUserType(ordersLog.getUserType());
-        orderLogMapper.insert(orderLog);
-    }
-
-
-
-
-    public void initVerification(Orders orders){
-         if(Objects.isNull(orders)
-                || Objects.isNull(orders.getType())
-                || Objects.isNull(orders.getStartDate())
-                || Objects.isNull(orders.getEndDate())
-                || StringUtil.isBlank(orders.getLocation())
-                || StringUtil.isBlank(orders.getLinkPhone())
-                || Objects.isNull(orders.getLat())
-                || Objects.isNull(orders.getLgt())
-                || (!Constants.equalsInteger(orders.getType(),Constants.TWO) && Objects.isNull(orders.getCategoryId()))
-                || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Objects.isNull(orders.getWorkType()))
-                || Objects.isNull(orders.getPriceNum1())
-                || Objects.isNull(orders.getEstimatedAccount())
-                || Objects.isNull(orders.getPrice())
-        ){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        Integer priceNum2 = orders.getPriceNum2();
-        if( (Constants.equalsInteger(orders.getType(),Constants.ZERO)
-                && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) &&
-            ( Constants.equalsInteger(orders.getCarType(),Constants.ZERO)
-                    || Constants.equalsInteger(orders.getCarType(),Constants.ONE) ))
-            || (Constants.equalsInteger(orders.getType(),Constants.ZERO)
-                && Constants.equalsInteger(orders.getWorkType(),Constants.ONE))
-        ){
-            if(Objects.isNull(orders.getPriceNum2())){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST);
-            }
-        }else{
-            orders.setPriceNum2(Constants.ONE);
-        }
-        orders.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1);
-        if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)
-                && ( Objects.isNull(orders.getCarType())  ) ){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST);
-            }
-        }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-            if(Objects.isNull(orders.getTransportTypeId())
-                    || Objects.isNull(orders.getCarType())
-                    || Objects.isNull(orders.getTransportNum())
-                    || StringUtils.isEmpty(orders.getTransportUnit())
-                    || StringUtils.isEmpty(orders.getLocationEnd())
-                    || StringUtils.isEmpty(orders.getCarUnit())
-                    || Objects.isNull(orders.getLatEnd())
-                    || Objects.isNull(orders.getLgtEnd())
-                    || CollectionUtils.isEmpty(orders.getWayInfoDTOList())
-            ){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST);
-            }
-            for (WayInfoDTO wayInfoDTO:orders.getWayInfoDTOList()) {
-                if(Objects.isNull(wayInfoDTO)
-                        ||StringUtils.isEmpty(wayInfoDTO.getLocation())
-//                        ||StringUtils.isEmpty(wayInfoDTO.getProvince())
-//                        ||StringUtils.isEmpty(wayInfoDTO.getCity())
-//                        ||StringUtils.isEmpty(wayInfoDTO.getArea())
-                        ||Objects.isNull(wayInfoDTO.getLat())
-                        ||Objects.isNull(wayInfoDTO.getLgt())
-                ){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST);
-                }
-            }
-            orders.setWayInfo(JSONObject.toJSONString(orders.getWayInfoDTOList()));
-        }else{
-            List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda().eq(Category::getDeleted,Constants.ZERO)
-                    .eq(Category::getType,Constants.TWO)
-            );
-            if(CollectionUtils.isEmpty(categoryList)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"椁愭爣淇℃伅閿欒");
-            }
-            //鐢ㄩ璁㈠崟
-            if(CollectionUtils.isEmpty(orders.getCateringDTOList())){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST);
-            }
-            Long sumPrice = 0L;
-//            List<CateringDTO> cateringDTOList = new ArrayList<>();
-            for (CateringDTO cateringDTO:orders.getCateringDTOList()) {
-                if(Objects.isNull(cateringDTO)
-                        || StringUtils.isEmpty(cateringDTO.getName())
-                        || Objects.isNull(cateringDTO.getPrice())
-                        || Objects.isNull(cateringDTO.getNum())
-                ){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄩ鏍囧噯鏁版嵁閿欒");
-                }
-                //椁愭爣淇℃伅
-                List<Category> categories = categoryList.stream().filter(i->Constants.equalsInteger(i.getId(),cateringDTO.getId())).collect(Collectors.toList());
-                if(CollectionUtils.isEmpty(categories)){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄩ鏍囧噯鏁版嵁閿欒锛岃鍒锋柊閲嶈瘯");
-                }
-                Category category = categories.get(Constants.ZERO);
-                List<String> priceList = JSONArray.parseArray(category.getDetail(),String.class  );
-                if(CollectionUtils.isEmpty(priceList)){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄩ鏍囧噯鏁版嵁閿欒锛岃鍒锋柊閲嶈瘯");
-                }
-                if(priceList.stream().filter(i->((Long.valueOf(i)*100)+"").equals((cateringDTO.getPrice()+""))).collect(Collectors.toList()).size()==Constants.ZERO){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄩ鏍囧噯鏁版嵁閿欒锛岃鍒锋柊閲嶈瘯");
-                }
-                sumPrice = sumPrice + (cateringDTO.getPrice() * cateringDTO.getNum()) ;
-
-            }
-            if(new BigDecimal(sumPrice.toString()).compareTo(orders.getPrice())!=Constants.ZERO){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍗曚环璁$畻閿欒");
-            }
-
-
-            orders.setWayInfo(JSONObject.toJSONString(orders.getCateringDTOList()));
-        }
-        if(!orders.getEstimatedAccount().equals(this.getTotal(orders))){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閲戦璁$畻閿欒!");
-        }
-        orders.setPriceNum2(priceNum2);
-    }
-
-
-
-
-
-
 
     @Override
     public void deleteById(Integer id) {
-        ordersMapper.deleteById(id);
+        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
+                .set(Orders::getDeleted, Constants.ONE)
+                .eq(Orders::getId, id));
     }
 
     @Override
@@ -389,176 +54,36 @@
 
     @Override
     public void deleteByIdInBatch(List<Integer> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
+        if (ids == null || ids.isEmpty()) {
             return;
         }
         ordersMapper.deleteBatchIds(ids);
     }
 
     @Override
-    public void update(Orders orders){
-        if(Objects.isNull(orders)
-                || Objects.isNull(orders.getId())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        Orders model = ordersMapper.selectById(orders.getId());
-        if(!Constants.equalsInteger(model.getReleaseMemberId(),orders.getMember().getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(Constants.equalsInteger(model.getIsUpdate(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸蹭慨鏀癸紝寰呮帴鍗曟柟纭锛屾棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(!Constants.equalsInteger(model.getType(),Constants.TWO)){
-            if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)
-                    ||Constants.equalsInteger(model.getStatus(),Constants.ONE)){
-                this.updateById(orders);
-            }else if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){
-                this.updOrderData(orders,model);
-            }else{
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED);
-            }
-        }else{
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
-        }
-    }
-
-
-
-//    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void updateById(Orders orders) {
-
-        Orders model = ordersMapper.selectById(orders.getId());
-        if(Constants.equalsInteger(model.getType(),Constants.TWO)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"姝ょ被璁㈠崟鏃犳硶杩涜淇敼");
-        }
-        if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
-        }
-        this.initVerification(orders);
-        orders.setUpdateTime(new Date());
-        Category category = categoryMapper.selectOne(new QueryWrapper<Category>().lambda()
-                .eq(Category::getDeleted,Constants.ZERO).eq(Category::getType,Constants.THREE)
-                .eq(Category::getName,orders.getType())
-                .last("limit 1")
-        );
-        if(Objects.isNull(category)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍙傛暟閰嶇疆閿欒,璇疯仈绯荤鐞嗗憳");
-        }
-        multifileMapper.update(new UpdateWrapper<Multifile>().lambda().set(Multifile::getIsdeleted,Constants.ONE).eq(Multifile::getObjType,Constants.ONE)
-                .eq(Multifile::getObjId,orders.getId()));
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(orders.getMultifileList())){
-            List<Multifile> multifileList = orders.getMultifileList();
-            for (Multifile multifile:multifileList) {
-                if(Objects.isNull(multifile)
-                        || Objects.isNull(multifile.getObjType())
-                        || StringUtils.isEmpty(multifile.getFileurl())
-                        || StringUtils.isEmpty(multifile.getName())){
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢淇℃伅閿欒");
-                }
-                multifile.setId(null);
-                multifile.setIsdeleted(Constants.ZERO);
-                multifile.setCreateDate(new Date());
-                multifile.setObjId(orders.getId());
-                multifile.setObjType(Constants.ONE);
-            }
-            multifileMapper.insert(multifileList);
-        }
-        orders.setOriginPriceNum1(orders.getPriceNum1());
-        orders.setOriginPriceNum2(orders.getPriceNum2());
-        orders.setOriginEstimatedAccount(orders.getEstimatedAccount());
-        orders.setPayAccount(orders.getEstimatedAccount());
-        orders.setConfirmOtherFee(0L);
         ordersMapper.updateById(orders);
     }
 
     @Override
-    public void updateByIdInBatch(List<Orders> orderss) {
-        if (CollectionUtils.isEmpty(orderss)) {
+    public void updateByIdInBatch(List<Orders> ordersList) {
+        if (ordersList == null || ordersList.isEmpty()) {
             return;
         }
-        for (Orders orders: orderss) {
-            //this.updateById(orders);
+        for (Orders orders : ordersList) {
+            this.updateById(orders);
         }
     }
 
     @Override
     public Orders findById(Integer id) {
-        Orders orders = ordersMapper.selectJoinOne(Orders.class,new MPJLambdaWrapper<Orders>()
-                        .selectAll(Orders.class)
-                        .select(" m1.name " , Orders::getReleaseName)
-                        .select(" m1.telephone " , Orders::getReleasePhone)
-                        .select(" case when i.AUTH_TYPE = 0 then i.LINK_NAME else i.COMPANY_NAME end " , Orders::getAcceptName)
-                        .select(" i.TELEPHONE " , Orders::getAcceptPhone)
-                        .select("c1.name",Orders::getCategoryName)
-                        .select("c2.name",Orders::getTransportTypeName)
-                        .leftJoin(" category c1 on t.category_id = c1.id  ")
-                        .leftJoin(" category c2 on t.TRANSPORT_TYPE_ID = c2.id  ")
-                        .leftJoin("member m1 on t.RELEASE_MEMBER_ID = m1.id ")
-                        .leftJoin("member m2 on t.ACCEPT_MEMBER_ID = m2.id ")
-                        .leftJoin("identity_info i on m2.id = i.MEMBER_ID and i.TYPE = t.type and i.AUDIT_STATUS = 2  ")
-                        .eq(Orders::getDeleted,Constants.ZERO)
-                        .eq(Orders::getId,id)
-                        .orderByDesc(Orders::getId));
-        if(Objects.isNull(orders)){
+        Orders orders = ordersMapper.selectById(id);
+        if (Objects.isNull(orders)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus()));
-        this.getPriceUnit(orders);
-
-        //闄勪欢淇℃伅
-        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,orders.getId())
-                .eq(Multifile::getIsdeleted,Constants.ZERO).eq(Multifile::getObjType,Constants.ONE).orderByAsc(Multifile::getId));
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
-            String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORDERS_FILES).getCode();
-            for (Multifile multifile:multifileList) {
-                multifile.setFileurlFull(path + multifile.getFileurl());
-            }
-            orders.setMultifileList(multifileList);
-        }
-        //璁㈠崟娴佽浆璁板綍
-        List<OrderLog> orderLogList = orderLogMapper.selectList(new QueryWrapper<OrderLog>().lambda()
-                .eq(OrderLog::getDeleted,Constants.ZERO)
-                .eq(OrderLog::getOrderId,orders.getId())
-                .orderByAsc(OrderLog::getCreateTime)
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(orderLogList)){
-            for (OrderLog orderLog:orderLogList) {
-                if(Constants.equalsInteger(orderLog.getOptUserType(),Constants.ZERO)&& org.apache.commons.lang3.StringUtils.isNotBlank(orders.getReleaseName())){
-                    orderLog.setLogInfo(orderLog.getLogInfo().replace("{userName}",orders.getReleaseName()));
-                }else if(Constants.equalsInteger(orderLog.getOptUserType(),Constants.ONE)&& org.apache.commons.lang3.StringUtils.isNotBlank(orders.getAcceptName())){
-                    orderLog.setLogInfo(orderLog.getLogInfo().replace("{userName}",orders.getAcceptName()));
-                }
-            }
-            orders.setOrderLogList(orderLogList);
         }
         return orders;
     }
 
-    public void getPriceUnit(Orders orders){
-        if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){
-                orders.setPriceUnit("鍏�/鏂�");
-            }else if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)){
-                orders.setPriceUnit("鍏�/浜�/澶�");
-            }else{
-                if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){
-                    orders.setPriceUnit("鍏�/浜�/澶�");
-                }else if(Constants.equalsInteger(orders.getCarType(),Constants.ONE)){
-                    orders.setPriceUnit("鍏�/浜�/灏忔椂");
-                }else{
-                    orders.setPriceUnit("鍏�/鏂�");
-                }
-            }
-        }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-            if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){
-                orders.setPriceUnit("鍏�/澶�");
-            }else if(Constants.equalsInteger(orders.getCarType(),Constants.ONE)){
-                orders.setPriceUnit("鍏�/娆�");
-            }
-        }
-    }
     @Override
     public Orders findOne(Orders orders) {
         QueryWrapper<Orders> wrapper = new QueryWrapper<>(orders);
@@ -570,1536 +95,39 @@
         QueryWrapper<Orders> wrapper = new QueryWrapper<>(orders);
         return ordersMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<Orders> findPage(PageWrap<Orders> pageWrap) {
         IPage<Orders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        MPJLambdaWrapper<Orders> queryWrapper = new MPJLambdaWrapper<Orders>();
+        MPJLambdaWrapper<Orders> queryWrapper = new MPJLambdaWrapper<Orders>()
+                .selectAll(Orders.class)
+                .selectAs(Category::getDetail, Orders::getOrderLevel)
+                .leftJoin(Category.class, Category::getId, Orders::getGoodType);
         Utils.MP.blankToNull(pageWrap.getModel());
-        Orders model  = pageWrap.getModel();
-        queryWrapper.selectAll(Orders.class)
-                .select(" m1.name " , Orders::getReleaseName)
-                .select(" m1.telephone " , Orders::getReleasePhone)
-                .select(" case when i.AUTH_TYPE = 0 then i.LINK_NAME else i.COMPANY_NAME end " , Orders::getAcceptName)
-                .select(" i.TELEPHONE " , Orders::getAcceptPhone)
-                .select("c1.name",Orders::getCategoryName)
-                .select("c2.name",Orders::getTransportTypeName)
-                .leftJoin(" category c1 on t.category_id = c1.id  ")
-                .leftJoin(" category c2 on t.TRANSPORT_TYPE_ID = c2.id  ")
-                .leftJoin("member m1 on t.RELEASE_MEMBER_ID = m1.id ")
-                .leftJoin("member m2 on t.ACCEPT_MEMBER_ID = m2.id ")
-                .leftJoin("identity_info i on m2.id = i.MEMBER_ID and i.TYPE = t.type and i.AUDIT_STATUS = 2  ")
-                .eq(Orders::getDeleted,Constants.ZERO)
-                .orderByDesc(Orders::getId)
-        ;
-        queryWrapper.ge(Objects.nonNull(model.getCreateTimeStart()),Orders::getCreateTime, Utils.Date.getStart(model.getCreateTimeStart()));
-        queryWrapper.le(Objects.nonNull(model.getCreateTimeEnd()),Orders::getCreateTime, Utils.Date.getEnd(model.getCreateTimeEnd()));
-        queryWrapper.ge(Objects.nonNull(model.getAcceptTimeStart()),Orders::getAcceptTime, Utils.Date.getStart(model.getAcceptTimeStart()));
-        queryWrapper.le(Objects.nonNull(model.getAcceptTimeEnd()),Orders::getAcceptTime, Utils.Date.getEnd(model.getAcceptTimeEnd()));
-        queryWrapper.ge(Objects.nonNull(model.getDoneTimeStart()),Orders::getFinishTime, Utils.Date.getStart(model.getDoneTimeStart()));
-        queryWrapper.le(Objects.nonNull(model.getDoneTimeEnd()),Orders::getFinishTime, Utils.Date.getEnd(model.getDoneTimeEnd()));
-        queryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(model.getCode()),Orders::getCode, model.getCode());
-        queryWrapper.eq(Objects.nonNull(model.getType()),Orders::getType, model.getType());
-        queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus, model.getStatus());
-        queryWrapper.eq(Objects.nonNull(model.getCommentStatus()),Orders::getCommentStatus, model.getCommentStatus());
-        queryWrapper.eq(Objects.nonNull(model.getReleaseMemberId()),Orders::getReleaseMemberId, model.getReleaseMemberId());
-        queryWrapper.eq(Objects.nonNull(model.getAcceptMemberId()),Orders::getAcceptMemberId, model.getAcceptMemberId());
-        queryWrapper.eq(Objects.nonNull(model.getAcceptType()),Orders::getAcceptType, model.getAcceptType());
-        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name like '%"+model.getReleaseName()+"%' or m1.TELEPHONE like '%"+model.getReleaseName()+"%' ");
-        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getAcceptName()),"( i.LINK_NAME like '%"+model.getAcceptName()+"%' or i.company_name like '%"+model.getAcceptName()+"%' or i.TELEPHONE like '%"+model.getAcceptName()+"%' ) ");
-        IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper);
-        for (Orders orders:iPage.getRecords()) {
-           this.getOrderContent(orders);
-           orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus()));
-           orders.setEstimatedAccountYuan(Objects.nonNull(orders.getEstimatedAccount())&&orders.getEstimatedAccount()>0?orders.getEstimatedAccount()/100:0L);
-           orders.setPayAccountYuan(Objects.nonNull(orders.getPayAccount())&&orders.getPayAccount()>0?orders.getPayAccount()/100:0L);
-        }
-        return PageData.from(iPage);
-    }
-
-    public void getOrderContent(Orders orders){
-        if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            orders.setOrderContent(Constants.workType.getName(orders.getWorkType()) +" | " + orders.getCategoryName());
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){
-                if(Objects.nonNull(orders.getPriceNum1())){
-                    orders.setOrderContent(orders.getOrderContent()+" | " +orders.getPriceNum1()+"鏂�");
-                }
-            }else if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)){
-                if(Objects.nonNull(orders.getPriceNum2())) {
-                    orders.setOrderContent(orders.getOrderContent() + " | " + orders.getPriceNum2() + "浜�");
-                }
-            }else{
-                if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)||Constants.equalsInteger(orders.getCarType(),Constants.ONE)){
-                    if(Objects.nonNull(orders.getPriceNum2())) {
-                        orders.setOrderContent(orders.getOrderContent() + " | " + orders.getPriceNum2() + "浜�");
-                    }
-                }else{
-                    if(Objects.nonNull(orders.getPriceNum1())) {
-                        orders.setOrderContent(orders.getOrderContent() + " | " + orders.getPriceNum1() + "鏂�");
-                    }
-                }
-            }
-        }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-            if(org.apache.commons.lang3.StringUtils.isNotBlank(orders.getCategoryName())){
-                orders.setOrderContent(  orders.getCategoryName() +
-                        (StringUtils.isEmpty(orders.getTransportTypeName())?"":" | " + orders.getTransportTypeName() ) +
-                        (Objects.isNull(orders.getTransportNum())?null:" | " + orders.getTransportNum() +"鏂�"));
-            }
-
-            if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){
-                if(Objects.nonNull(orders.getPriceNum2())) {
-                    orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum1() + "澶�");
-                }
-            }else{
-                if(Objects.nonNull(orders.getPriceNum2())) {
-                    orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum1() + "娆�");
-                }
-            }
-        }else{
-            if(org.apache.commons.lang3.StringUtils.isNotBlank(orders.getWayInfo())){
-                List<CateringDTO> cateringDTOList = JSONArray.parseArray(orders.getWayInfo(),CateringDTO.class);
-                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cateringDTOList)){
-                    for (CateringDTO cateringDTO:cateringDTOList) {
-                        if(StringUtils.isEmpty(orders.getOrderContent())){
-                            orders.setOrderContent(cateringDTO.getName()+(new BigDecimal(cateringDTO.getPrice().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP))+" 闇�"+cateringDTO.getNum()+"浠�");
-                        }else{
-                            orders.setOrderContent(orders.getOrderContent()+" | "+cateringDTO.getName()+(new BigDecimal(cateringDTO.getPrice().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP))+" 闇�"+cateringDTO.getNum()+"浠�");
-                        }
-                    }
-                }
+        pageWrap.getModel().setDeleted(Constants.ZERO);
+        queryWrapper.eq(pageWrap.getModel().getDeleted() != null, Orders::getDeleted, pageWrap.getModel().getDeleted());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()), Orders::getCode, pageWrap.getModel().getCode());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsInfo()), Orders::getGoodsInfo, pageWrap.getModel().getGoodsInfo());
+        queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime()));
+        queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
+        queryWrapper.eq(pageWrap.getModel().getDepositShopId() != null, Orders::getDepositShopId, pageWrap.getModel().getDepositShopId());
+        queryWrapper.eq(pageWrap.getModel().getType() != null, Orders::getType, pageWrap.getModel().getType());
+        queryWrapper.eq(pageWrap.getModel().getStatus() != null, Orders::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.eq(pageWrap.getModel().getTakeShopId() != null, Orders::getTakeShopId, pageWrap.getModel().getTakeShopId());
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-
+        return PageData.from(ordersMapper.selectJoinPage(page, Orders.class, queryWrapper));
     }
-
-
 
     @Override
     public long count(Orders orders) {
         QueryWrapper<Orders> wrapper = new QueryWrapper<>(orders);
         return ordersMapper.selectCount(wrapper);
     }
-
-
-    /**
-     * 鎵嬪姩鎺ュ崟
-     * @param orderId
-     */
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void accept(Integer orderId,Member member){
-        Orders orders = ordersMapper.selectById(orderId);
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.wait.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
-        }
-        if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ嚜宸辩殑璁㈠崟鏃犳硶杩涜璇ユ搷浣�");
-        }
-         member = memberMapper.selectById(member.getId());
-        //鏌ヨ鐢ㄦ埛鏄惁鏈夊搴旇韩浠�
-        if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            if(!Constants.equalsInteger(member.getWorkerIdentity(),Constants.TWO)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線\"鎴戠殑\"椤甸潰鎻愪氦鐢宠");
-            }
-        }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-            if(!Constants.equalsInteger(member.getDriverIdentity(),Constants.TWO)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線\"鎴戠殑\"椤甸潰鎻愪氦鐢宠");
-            }
-        }else{
-            if(!Constants.equalsInteger(member.getChefIdentity(),Constants.TWO)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ繕鏈敞鍐岃鏈嶅姟锛岃鍓嶅線\"鎴戠殑\"椤甸潰鎻愪氦鐢宠");
-            }
-        }
-
-         ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId())
-                .set(Orders::getUpdateTime,new Date())
-                .set(Orders::getAcceptType,Constants.ZERO)
-                .set(Orders::getAcceptTime,new Date())
-                .set(Orders::getAcceptMemberId,member.getId())
-                .set(Orders::getStatus,Constants.ordersStatus.accept.getKey())
-        );
-
-        //鏇存柊鎺ュ崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" RECEIVE_NUM = (ifnull(RECEIVE_NUM,0) + 1 )").eq(Member::getId,member.getId()));
-
-        //鍒涘缓鎿嶄綔鏃ュ織
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.RECEIVE;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),member.getId(),null);
-
-        IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                .eq(IdentityInfo::getMemberId,member.getId())
-                .eq(IdentityInfo::getType,orders.getType())
-                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                .last("limit 1")
-        );
-        Member releaseMember = memberMapper.selectById(orders.getReleaseMemberId());
-
-        if(Objects.nonNull(releaseMember)){
-            if(org.apache.commons.lang3.StringUtils.isNotBlank(releaseMember.getOpenid())&&Objects.nonNull(wokerIdentityInfo)){
-                //鍙戦�佸井淇¢�氱煡
-                sendWxMessage.acceptMessage(releaseMember.getOpenid(),orders,wokerIdentityInfo.getLinkName(),wokerIdentityInfo.getTelephone());
-            }
-            if(org.apache.commons.lang3.StringUtils.isNotBlank(orders.getLinkPhone())){
-                //鐭俊閫氱煡
-                aliSmsService.businessSendSms(Constants.smsContent.accept.getKey(),orders.getLinkPhone(),orders,null,
-                        wokerIdentityInfo,categoryMapper);
-            }
-        }
-
-
-
-    }
-
-
-    /**
-     * 寮�濮嬩綔涓�
-     * @param orderId
-     * @param member
-     */
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void begin(Integer orderId,Member member){
-        Orders orders = ordersMapper.selectById(orderId);
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
-        }
-        if(!Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼寰呯‘璁わ紝鏃犳硶杩涜璇ユ搷浣�");
-        }
-        if(orders.getStartDate().getTime()>System.currentTimeMillis()){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鏈埌寮�濮嬫椂闂存棤娉曡繘琛岃鎿嶄綔");
-        }
-        orders.setUpdateTime(new Date());
-        orders.setStatus(Constants.ordersStatus.doing.getKey());
-        orders.setWorkStartTime(new Date());
-        ordersMapper.updateById(orders);
-
-        //鍒涘缓鎿嶄綔鏃ュ織
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.BEGIN;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),member.getId(),null);
-    }
-
-
-    /**
-     * 鍙戝崟鏂逛慨鏀硅鍗� - 宸叉帴鍗曠姸鎬�
-     */
-//    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void updOrderData(Orders orders,Orders model){
-        if(Objects.isNull(orders)
-            || Objects.isNull(orders.getStartDate())
-            || Objects.isNull(orders.getEndDate())){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        model.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1);
-        model.setStartDate(orders.getStartDate());
-        model.setEndDate(orders.getEndDate());
-        //鐢ㄨ溅绫诲瀷
-        if(Constants.equalsInteger(model.getType(),Constants.ONE)){
-            if(Constants.equalsInteger(model.getCarType(),Constants.ZERO)) {
-                model.setPriceNum1(orders.getTotalDays());
-            }
-        }else if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
-            if(Constants.equalsInteger(model.getWorkType(),Constants.ONE)||
-                    (Constants.equalsInteger(model.getWorkType(),Constants.TWO)&&Constants.equalsInteger(model.getCarType(),Constants.ZERO))){
-                model.setPriceNum1(orders.getTotalDays());
-            }
-        }else{
-            model.setPriceNum1(orders.getTotalDays());
-        }
-        Long total = this.getTotal(orders);
-        Long tcje = Long.valueOf(new BigDecimal(total.toString()).multiply(model.getPlatformRata()).intValue());
-        Long reciveTotal = total  - tcje;
-        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                .set(Orders::getStartDate,model.getStartDate())
-                .set(Orders::getEndDate,model.getEndDate())
-                .set(Orders::getTotalDays,model.getTotalDays())
-                .set(Orders::getIsUpdate,Constants.ONE)
-                .set(Orders::getIsUpdateTime,new Date())
-                .set(Orders::getUpdateTime,new Date())
-                .set(Orders::getEstimatedAccount,total)
-                .set(Orders::getOriginEstimatedAccount,total)
-                .set(Orders::getReceiveAccount,reciveTotal)
-                .eq(Orders::getId,orders.getId())
-        );
-        //鍒涘缓鎿嶄綔鏃ュ織
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_ORDER;
-        this.saveOrderLog(model,ordersLog,
-                ordersLog.getInfo(),orders.getMember().getId(),null);
-
-        //閫氱煡鎺ュ崟浜� 璁㈠崟鍙戠敓鍙樻洿
-        Member member = memberMapper.selectById(model.getAcceptMemberId());
-        if(Objects.nonNull(member)){
-            if(org.apache.commons.lang3.StringUtils.isNotBlank(member.getOpenid())){
-                model.setStartDate(orders.getStartDate());
-                model.setEndDate(orders.getEndDate());
-                //鍙戦�佸井淇¢�氱煡
-                sendWxMessage.orderUpdMessage(member.getOpenid(),model);
-            }
-            IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                    .eq(IdentityInfo::getMemberId,member.getId())
-                    .eq(IdentityInfo::getType,orders.getType())
-                    .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                    .last("limit 1")
-            );
-            if(Objects.nonNull(wokerIdentityInfo)){
-                //鐭俊閫氱煡
-                aliSmsService.businessSendSms(Constants.smsContent.orderUpd.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
-                        null,categoryMapper);
-            }
-        }
-
-    }
-
-
-    @Override
-    public Long getTotal(Orders orders){
-        if(Objects.isNull(orders)
-                ||Objects.isNull(orders.getPrice())
-                ||Objects.isNull(orders.getPriceNum1())
-                ||Objects.isNull(orders.getType())
-        ){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        BigDecimal bigDecimalPrice = BigDecimal.ZERO;
-        if(
-            (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO ))
-                    || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Objects.nonNull(orders.getCarType()) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO ) && Constants.equalsInteger(orders.getCarType(),Constants.TWO))
-                || Constants.equalsInteger(orders.getType(),Constants.ONE)
-                || Constants.equalsInteger(orders.getType(),Constants.TWO)
-        ){
-            bigDecimalPrice = orders.getPrice().multiply(new BigDecimal(orders.getPriceNum1().toString()));
-        }else{
-            if(Objects.isNull(orders.getPriceNum2())){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST);
-            }
-            bigDecimalPrice = orders.getPrice().multiply(new BigDecimal(orders.getPriceNum1().toString())).multiply(new BigDecimal(orders.getPriceNum2().toString()));
-        }
-        if(Objects.nonNull(orders.getConfirmOtherFee())){
-            bigDecimalPrice = bigDecimalPrice.add(new BigDecimal(orders.getConfirmOtherFee().toString()));
-        }
-        return bigDecimalPrice.divide(new BigDecimal("1"),0,BigDecimal.ROUND_HALF_UP).longValue();//orders.getPrice() * orders.getPriceNum1() * orders.getPriceNum2();
-    }
-
-
-    /**
-     * 鎺ュ崟鏂圭‘璁よ鍗曡垂鐢�
-     */
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void  confirmFee(ConfirmFeeOrderDTO confirmUpdOrderDTO){
-        if(Objects.isNull(confirmUpdOrderDTO)
-                || Objects.isNull(confirmUpdOrderDTO.getOrderId())
-                || Objects.isNull(confirmUpdOrderDTO.getPriceNum1())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        Orders orders = ordersMapper.selectById(confirmUpdOrderDTO.getOrderId());
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
-        }
-        //绫诲瀷:0=鐢ㄥ伐锛�1=杩愯揣锛�2=璁㈤
-        if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-            //鐢ㄥ伐绫诲瀷:0=閲囨憳宸ワ紱1=鍒嗘嫞宸ワ紱2=鍖呰宸ワ紱锛堢敤宸ヨ鍗曪級
-            if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)){
-                //1=鍒嗘嫞宸�
-                if( Objects.isNull(confirmUpdOrderDTO.getPriceNum2())){//蹇呴』鏈夌敤宸ユ暟閲忥紙浜猴級
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST);
-                }
-            }else if(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)){
-                //鍖呰宸� 鐢ㄨ溅绫诲瀷(鐢ㄥ伐鍖呰/杩愯揣浣跨敤):0=澶�;1=娆�/灏忔椂;2=閲嶉噺
-                if( !Constants.equalsInteger(orders.getCarType(),Constants.TWO)
-                        && Objects.isNull(confirmUpdOrderDTO.getPriceNum2())){
-                    //涓嶆槸鎸夐噸閲忚璐圭殑锛屽繀椤绘湁鐢ㄥ伐鏁伴噺锛堜汉锛�
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST);
-                }
-            }
-        }else  if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-            //杩愯揣璁㈠崟
-
-        }else{
-            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ヨ鍗曚笉鏀寔璇ユ搷浣滐紝璇疯繑鍥炲埛鏂伴噸璇曪紒");
-        }
-        orders.setPriceNum1(confirmUpdOrderDTO.getPriceNum1());
-        orders.setPriceNum2(confirmUpdOrderDTO.getPriceNum2());
-        orders.setConfirmOtherFee(confirmUpdOrderDTO.getConfirmOtherFee());
-        Long totalFee = this.getTotal(orders);//閲嶆柊璁$畻璐圭敤
-        Long payFee = totalFee;//閲嶆柊璁$畻璐圭敤
-        Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
-        Long reciveTotal = payFee  - tcje;
-        //BigDecimal recFee = new BigDecimal(payFee).multiply((new BigDecimal(1).subtract(Constants.formatBigDecimal(orders.getPlatformRata())))).setScale(0, RoundingMode.HALF_UP) ;
-        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                .set(Orders::getPriceNum1,confirmUpdOrderDTO.getPriceNum1())
-                .set(Orders::getPriceNum2,confirmUpdOrderDTO.getPriceNum2())
-                .set(Orders::getConfirmFeeRemark,confirmUpdOrderDTO.getConfirmFeeRemark())
-                .set(Orders::getConfirmOtherFee,confirmUpdOrderDTO.getConfirmOtherFee())
-                .set(Orders::getEstimatedAccount,totalFee)
-                .set(Orders::getStatus,Constants.ordersStatus.feeconfirm.getKey())
-                .set(Orders::getPayAccount,payFee)
-                .set(Orders::getReceiveAccount,reciveTotal)
-                .set(Orders::getUpdateTime,new Date())
-                .set(Orders::getConfirmFeeTime,new Date())
-                .eq(Orders::getId,orders.getId())
-        );
-        //璁板綍鍚屾剰淇敼鐨勬棩蹇�
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.FEE_CONFIRM;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null);
-
-        //寰俊閫氱煡
-        Member member = memberMapper.selectById(orders.getReleaseMemberId());
-        if(Objects.nonNull(member)&& org.apache.commons.lang3.StringUtils.isNotBlank(member.getOpenid())){
-            sendWxMessage.waitPayMessage(member.getOpenid(),orders);
-        }
-
-    }
-
-    /**
-     * 鎺ュ崟鏂瑰鐞嗚鍗曚慨鏀�
-     * @param confirmUpdOrderDTO
-     */
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void confirmUpd(ConfirmUpdOrderDTO confirmUpdOrderDTO){
-        if(Objects.isNull(confirmUpdOrderDTO)
-                || Objects.isNull(confirmUpdOrderDTO.getOrderId())
-                || Objects.isNull(confirmUpdOrderDTO.getStatus())
-                || !(Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)||
-                Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ZERO))
-        ){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        Orders orders = ordersMapper.selectById(confirmUpdOrderDTO.getOrderId());
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
-        }
-        if(!Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        if(!Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){
-            ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                    .set(Orders::getIsUpdate,Constants.TWO)
-                    .set(Orders::getUpdateTime,new Date())
-                    .eq(Orders::getId,orders.getId())
-            );
-            //璁板綍鍚屾剰淇敼鐨勬棩蹇�
-            Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_AGREE;
-            this.saveOrderLog(orders,ordersLog,
-                    ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null);
-        }else{
-            ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                    .set(Orders::getIsUpdate,Constants.TWO)
-                    .set(Orders::getUpdateTime,new Date())
-                    .set(Orders::getStatus,Constants.ordersStatus.wait.getKey())
-                    .set(Orders::getAcceptMemberId,null)
-                    .set(Orders::getAcceptType,null)
-                    .eq(Orders::getId,orders.getId())
-            );
-
-            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId()));
-
-            //璁板綍涓嶅悓鎰忎慨鏀圭殑鏃ュ織
-            Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_DISAGREE;
-            this.saveOrderLog(orders,ordersLog,
-                    ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null);
-        }
-        //鐭俊閫氱煡
-        aliSmsService.businessSendSms(!Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)?
-                        Constants.smsContent.agreeUpd.getKey():Constants.smsContent.disAgreeUpd.getKey()
-                ,orders.getLinkPhone(),null,null,
-                null,categoryMapper);
-    }
-
-
-    @Override
-    public void cancelOrder(Integer orderId,Member member){
-        Orders orders = ordersMapper.selectById(orderId);
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
-            this.releaseCancelOrder(orders,member);
-        }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
-            this.receiveCancelOrder(orders,member);
-        }else{
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-
-
-    }
-
-
-    @Override
-    public String cancelTips(Integer orderId,Member member){
-        Orders orders = ordersMapper.selectById(orderId);
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-
-        Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
-        Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
-                .apply(" DATE(cancel_time) = DATE(NOW()) ")
-                .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                .eq(Orders::getReleaseMemberId,member.getId()));
-        //鏌ヨ鍙栨秷娆℃暟
-        if(totalCancelTimes<=cancelTimes){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟");
-        }
-
-        Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
-        Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
-        if(hours < cancelTimeHour){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟");
-        }
-        return  "浠婃棩杩樺彲涓诲姩鍙栨秷"+(totalCancelTimes-cancelTimes)+"娆★紝鏄惁纭鍙栨秷";
-
-    }
-
-    /**
-     * 鍙戝崟鏂瑰彇娑堣鍗�
-     * @param member
-     */
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void releaseCancelOrder(Orders orders,Member member){
-        if(!(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.wait.getKey())
-                ||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey())
-        || Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey()))){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
-        }
-        if(!Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        //寰呮敮浠樼敤椁愯鍗�/寰呮帴鍗曡鍗曡繘琛屽彇娑�
-        if(Constants.equalsInteger(orders.getStatus(),Constants.ONE)
-                ||Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){
-            if(Constants.equalsInteger(orders.getType(),Constants.TWO)&&Constants.equalsInteger(orders.getStatus(),Constants.ONE)){
-                //閫�娆句笟鍔�
-                WithdrawalOrders  withdrawalOrders = new WithdrawalOrders();
-                withdrawalOrders.setCreateTime(new Date());
-                withdrawalOrders.setDeleted(Constants.ZERO);
-                withdrawalOrders.setMemberId(orders.getReleaseMemberId());
-                withdrawalOrders.setAmount(orders.getPayAccount());
-                withdrawalOrders.setStatus(Constants.ZERO);
-                withdrawalOrders.setDoneTime(new Date());
-                withdrawalOrders.setType(Constants.ONE);
-                withdrawalOrders.setObjId(orders.getId());
-                wxMiniUtilService.wxRefund(withdrawalOrders,orders);
-            }
-            ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                    .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                    .set(Orders::getUpdateTime,new Date())
-                    .set(Orders::getCancelTime,new Date())
-                    .set(Orders::getCancelType,Constants.ZERO)
-                    .eq(Orders::getId,orders.getId())
-            );
-        }else{
-            //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
-            Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
-            Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
-                    .apply(" DATE(cancel_time) = DATE(NOW()) ")
-                    .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                    .eq(Orders::getReleaseMemberId,orders.getReleaseMemberId()));
-            //鏌ヨ鍙栨秷娆℃暟
-            if(totalCancelTimes<=cancelTimes){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟");
-            }
-
-            Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
-            Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
-            if(hours < cancelTimeHour){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟");
-            }
-
-            if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
-                //閫�娆句笟鍔�
-                WithdrawalOrders  withdrawalOrders = new WithdrawalOrders();
-                withdrawalOrders.setCreateTime(new Date());
-                withdrawalOrders.setMemberId(orders.getReleaseMemberId());
-                withdrawalOrders.setAmount(orders.getPayAccount());
-                withdrawalOrders.setWxExternalNo("refund_"+orders.getCode());
-                withdrawalOrders.setStatus(Constants.ONE);
-                withdrawalOrders.setDoneTime(new Date());
-                withdrawalOrders.setType(Constants.ONE);
-                withdrawalOrders.setObjId(orders.getId());
-                wxMiniUtilService.wxRefund(withdrawalOrders,orders);
-            }
-            ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                    .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                    .set(Orders::getUpdateTime,new Date())
-                    .set(Orders::getCancelTime,new Date())
-                    .set(Orders::getCancelType,Constants.ONE)
-                    .eq(Orders::getId,orders.getId())
-            );
-            //鍑忓皯鎺ュ崟閲�
-            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = (receive_num - 1) ").eq(Member::getId,orders.getAcceptMemberId()));
-        }
-        //鍑忓皯鍙戝崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("publish_num = (publish_num - 1)").eq(Member::getId,orders.getReleaseMemberId()));
-
-        //鏃ュ織瀛樺偍
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.RELEASE_CANCEL;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),member.getId(),null);
-
-        List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
-                .and(i->i.eq(Member::getId,orders.getReleaseMemberId()).or().eq(Member::getId,orders.getAcceptMemberId()))
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
-            List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
-            //鍙戦�佸井淇¢�氱煡
-            orders.setCancelTime(new Date());
-            sendWxMessage.cancelMessage(openIdList,orders,Constants.ONE);
-        }
-
-        IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
-                .eq(IdentityInfo::getType,orders.getType())
-                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                .last("limit 1")
-        );
-        if(Objects.nonNull(wokerIdentityInfo)){
-            //鐭俊閫氱煡
-            aliSmsService.businessSendSms(Constants.smsContent.releaseCancel.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
-                    null,categoryMapper);
-        }
-    }
-
-
-    /**
-     * 鎺ュ崟鏂瑰彇娑堟帴鍗�
-     * @param member
-     */
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void receiveCancelOrder(Orders orders,Member member){
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
-        }
-        if(!Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
-        Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIMES).getCode());
-        Long cancelTimes = orderLogMapper.selectCount(new QueryWrapper<OrderLog>().lambda()
-                .apply(" DATE(create_time) = DATE(NOW()) ")
-                .eq(OrderLog::getObjType,Constants.OrdersLog.CANCEL.getKey())
-                .eq(OrderLog::getMemberId,member.getId()));
-        //鏌ヨ鍙栨秷娆℃暟
-        if(totalCancelTimes<=cancelTimes){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟");
-        }
-
-        Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode());
-        Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
-        if(hours < cancelTimeHour){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟");
-        }
-        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                .set(Orders::getUpdateTime,new Date())
-                .set(Orders::getCancelTime,new Date())
-                .set(Orders::getStatus,Constants.ordersStatus.wait.getKey())
-                .set(Orders::getAcceptMemberId,null)
-                .set(Orders::getAcceptType,null)
-                .eq(Orders::getId,orders.getId())
-        );
-
-        //鍑忓皯鎺ュ崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" receive_num = receive_num - 1 ").eq(Member::getId,orders.getAcceptMemberId()));
-        //鏃ュ織瀛樺偍
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.CANCEL;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),member.getId(),null);
-
-
-        List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
-                .and(i->i.eq(Member::getId,orders.getReleaseMemberId()).or().eq(Member::getId,orders.getAcceptMemberId()))
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
-            List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
-            //鍙戦�佸井淇¢�氱煡
-            orders.setCancelTime(new Date());
-            sendWxMessage.cancelMessage(openIdList,orders,Constants.TWO);
-        }
-        //鐭俊閫氱煡
-        aliSmsService.businessSendSms(Constants.smsContent.receiveCancel.getKey(),member.getTelephone(),orders,null,
-                null,categoryMapper);
-    }
-
-
-    /**
-     * 瀹屾垚璁㈠崟
-     * @param doneOrderDTO
-     */
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public OrderReleaseVO doneOrder(DoneOrderDTO doneOrderDTO){
-        if(Objects.isNull(doneOrderDTO)||Objects.isNull(doneOrderDTO.getOrderId())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        Orders orders = ordersMapper.selectById(doneOrderDTO.getOrderId());
-        if(!Constants.equalsInteger(orders.getType(),Constants.TWO)&&Objects.isNull(doneOrderDTO.getAmount())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(Constants.equalsInteger(orders.getType(),Constants.orderType.scd.getKey())){
-            if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
-            }
-        }else{
-            if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.feeconfirm.getKey())){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
-            }
-        }
-
-        if(!Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔");
-        }
-        Member payMember = memberMapper.selectById(doneOrderDTO.getMember().getId());
-        if(Objects.isNull(payMember)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
-        }
-
-        OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
-        orderReleaseVO.setId(orders.getId());
-        Object object = null;
-        //鐢ㄩ璁㈠崟
-        if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){
-            orders.setPayAccount(doneOrderDTO.getAmount());
-            //鎻愭垚閲戦
-//            Long tcje =  (new BigDecimal(orders.getPayAccount().toString()).multiply(Constants.formatBigDecimal(orders.getPlatformRata())).setScale(0,RoundingMode.HALF_UP).longValue());
-            Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
-            orders.setReceiveAccount(orders.getPayAccount() - tcje);
-            orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
-            ordersMapper.updateById(orders);
-            //鍞よ捣鏀粯涓氬姟
-            object = this.getWxPayResponse(orders,payMember.getOpenid());
-            orderReleaseVO.setObject(object);
-        }else{
-            orders.setStatus(Constants.ordersStatus.done.getKey());
-            orders.setFinishTime(new Date());
-            ordersMapper.updateById(orders);
-
-            Member member = memberMapper.selectById(orders.getAcceptMemberId());
-
-            //瀛樺偍娴佹按璁板綍
-            MemberRevenue memberRevenue = new MemberRevenue();
-            memberRevenue.setCreateTime(new Date());
-            memberRevenue.setMemberId(orders.getAcceptMemberId());
-            memberRevenue.setType(orders.getType());
-            memberRevenue.setOptType(Constants.ONE);
-            memberRevenue.setBeforeAmount(member.getAmount());
-            memberRevenue.setAmount(orders.getReceiveAccount());
-            memberRevenue.setAfterAmount(member.getAmount() + orders.getReceiveAccount());
-            if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()) + "-" +
-                        (Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)?"閲囨憳宸�":(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"鍒嗘嫞宸�":"鍖呰宸�")));
-            }else{
-                memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()));
-            }
-            memberRevenue.setObjId(orders.getId());
-            memberRevenue.setObjType(Constants.ZERO);
-            memberRevenue.setStatus(Constants.ZERO);
-            memberRevenueMapper.insert(memberRevenue);
-
-            //鏃ュ織瀛樺偍
-            Constants.OrdersLog ordersLog = Constants.OrdersLog.DONE;
-            this.saveOrderLog(orders,ordersLog,
-                    ordersLog.getInfo(),doneOrderDTO.getMember().getId(),null);
-
-            sendWxMessage.revenueMessage(member.getOpenid(),orders);
-
-            //鐭俊閫氱煡鎺ュ崟鏂�
-            if(Objects.nonNull(orders.getAcceptMemberId())){
-                IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                        .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
-                        .eq(IdentityInfo::getType,orders.getType())
-                        .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                        .last("limit 1")
-                );
-                if(Objects.nonNull(wokerIdentityInfo)){
-                    aliSmsService.businessSendSms(Constants.smsContent.pay.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
-                            null,categoryMapper);
-                }
-            }
-        }
-        return orderReleaseVO;
-    }
-
-
-
-    @Override
-    public OrderReleaseVO reusePay(ReusePayDTO reusePayDTO){
-        if(Objects.isNull(reusePayDTO)||Objects.isNull(reusePayDTO.getOrderId())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        Orders orders = ordersMapper.selectById(reusePayDTO.getOrderId());
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getType(),Constants.TWO)&&Objects.isNull(reusePayDTO.getAmount())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-
-        if(!((( Constants.equalsInteger(orders.getType(),Constants.TWO) && Constants.equalsInteger(orders.getStatus(),Constants.ZERO) )
-                || ( !Constants.equalsInteger(orders.getType(),Constants.TWO) && Constants.equalsInteger(orders.getStatus(),Constants.FIVE) ))
-        && Constants.equalsInteger(orders.getPayStatus(),Constants.ZERO) )){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆");
-        }
-        Member payMember = memberMapper.selectById(reusePayDTO.getMember().getId());
-        if(Objects.isNull(payMember)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛淇℃伅寮傚父");
-        }
-
-        OrderReleaseVO orderReleaseVO = new OrderReleaseVO();
-        if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){
-            orders.setPayAccount(reusePayDTO.getAmount());
-            //鎻愭垚閲戦
-            Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue());
-            orders.setReceiveAccount(orders.getPayAccount() - tcje);
-            orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
-            ordersMapper.updateById(orders);
-        }
-        orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
-        ordersMapper.updateById(orders);
-        //鍞よ捣鏀粯涓氬姟
-        Object object = this.getWxPayResponse(orders,payMember.getOpenid());
-        orderReleaseVO.setObject(object);
-        orderReleaseVO.setId(orders.getId());
-        return orderReleaseVO;
-    }
-
-
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public void platformCancel(Integer orderId, LoginUserInfo loginUserInfo){
-        Orders orders = ordersMapper.selectById(orderId);
-        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.wait.getKey())||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())
-                ||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey()))){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷");
-        }
-        //濡傛灉宸叉敮浠� 鍒欓渶瑕佽繘琛岄��娆�
-        if(Constants.equalsInteger(orders.getPayStatus(),Constants.ONE)){
-            WithdrawalOrders  withdrawalOrders = new WithdrawalOrders();
-            withdrawalOrders.setCreateTime(new Date());
-            withdrawalOrders.setMemberId(orders.getReleaseMemberId());
-            withdrawalOrders.setAmount(orders.getPayAccount());
-            withdrawalOrders.setWxExternalNo("refund_"+orders.getCode());
-            withdrawalOrders.setStatus(Constants.ONE);
-            withdrawalOrders.setDoneTime(new Date());
-            withdrawalOrders.setType(Constants.ONE);
-            withdrawalOrders.setObjId(orders.getId());
-            wxMiniUtilService.wxRefund(withdrawalOrders,orders);
-        }
-
-        //鍑忓皯鍙戝崟閲�
-        memberMapper.update(new UpdateWrapper<Member>().lambda()
-                .setSql("publish_num = ifnull(publish_num,0) - 1")
-                .eq(Member::getId,orders.getReleaseMemberId()));
-
-        if(Constants.equalsInteger(orders.getStatus(),Constants.TWO)||Constants.equalsInteger(orders.getStatus(),Constants.THREE)){
-            //鍑忓皯鎺ュ崟閲�
-            memberMapper.update(new UpdateWrapper<Member>().lambda()
-                    .setSql("receive_num = ifnull(receive_num,0) - 1")
-                    .eq(Member::getId,orders.getAcceptMemberId()));
-        }
-        Date date = new Date();
-        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                .set(Orders::getUpdateTime,date)
-                .set(Orders::getCancelTime,date)
-                .set(Orders::getCancelType,Constants.TWO)
-                .eq(Orders::getId,orders.getId())
-        );
-
-        //鏃ュ織瀛樺偍
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.SYSTEM_CANCEL;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),null,loginUserInfo.getId());
-
-        List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
-                        .and(i->i.eq(Member::getId,orders.getReleaseMemberId()).or().eq(Member::getId,orders.getAcceptMemberId()))
-                );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(members)){
-            List<String> openIdList = members.stream().map(i->i.getOpenid()).collect(Collectors.toList());
-            orders.setCancelTime(new Date());
-            //鍙戦�佸井淇¢�氱煡
-            orders.setCancelTime(new Date());
-            sendWxMessage.cancelMessage(openIdList,orders,Constants.ZERO);
-        }
-        //鐭俊閫氱煡鍙戝崟鏂�
-        aliSmsService.businessSendSms(Constants.smsContent.platformCancel.getKey(),orders.getLinkPhone(),orders,null,
-                null,categoryMapper);
-        //鐭俊閫氱煡鎺ュ崟鏂�
-        if(Objects.nonNull(orders.getAcceptMemberId())){
-            IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                    .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
-                    .eq(IdentityInfo::getType,orders.getType())
-                    .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                    .last("limit 1")
-            );
-            if(Objects.nonNull(wokerIdentityInfo)){
-                aliSmsService.businessSendSms(Constants.smsContent.platformCancel2.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
-                        null,categoryMapper);
-            }
-        }
-
-    }
-
-
-
-
-    @Override
-    public void comment(CommentDTO commentDTO){
-        if(Objects.isNull(commentDTO)
-        || Objects.isNull(commentDTO.getOrderId())
-        || Objects.isNull(commentDTO.getLevel())
-        || commentDTO.getLevel()<1 || commentDTO.getLevel() > 5 ){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        Orders orders = ordersMapper.selectById(commentDTO.getOrderId());
-        if(Objects.isNull(orders)
-                ||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.done.getKey())){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇勪环");
-        }
-        if(Constants.equalsInteger(orders.getCommentStatus(),Constants.ONE)){
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸茶瘎浠凤紒");
-        }
-
-        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                .set(Orders::getCommentStatus,Constants.ONE)
-                .set(Orders::getUpdateTime,new Date())
-                .set(Orders::getCommentTime,new Date())
-                .set(Orders::getCommentLevel,commentDTO.getLevel())
-                .set(org.apache.commons.lang3.StringUtils.isNotBlank(commentDTO.getInfo()),Orders::getCommentInfo,commentDTO.getInfo())
-                .set(Orders::getCommentType,Constants.ZERO)
-                .eq(Orders::getId,orders.getId())
-        );
-        memberMapper.update(new UpdateWrapper<Member>().lambda()
-                .setSql(" score =  ( ifnull(total_score,0) +" + commentDTO.getLevel() + " ) / (ifnull(score_order_num,0) + 1 )")
-                .setSql(" total_score =  ifnull(total_score,0) +" + commentDTO.getLevel())
-                .setSql(" score_order_num = ifnull(score_order_num,0) + 1 " )
-                .eq(Member::getId,orders.getAcceptMemberId())
-        );
-        //鏃ュ織瀛樺偍
-        Constants.OrdersLog ordersLog = Constants.OrdersLog.COMMENT;
-        this.saveOrderLog(orders,ordersLog,
-                ordersLog.getInfo(),orders.getAcceptMemberId(),null);
-    }
-
-
-    /**
-     * 鏀粯鍥炶皟
-     * @param preOrderId
-     * @param paymentNo
-     * @return
-     */
-    @Override
-    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public String payNotify(String preOrderId,String paymentNo){
-        Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getOutTradeNo,preOrderId).last("limit 1"));
-        if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
-            //鐢ㄩ璁㈠崟  濡傛灉宸茬粡娴佽浆鍒板凡鏀粯  鍒欑洿鎺ヨ繑鍥�
-            if(!Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){
-                return  ("澶勭悊鎴愬姛!");
-            }else{
-                //澶勭悊鏀粯瀹屾垚閫昏緫
-                ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                        .set(Orders::getUpdateTime,new Date())
-                        .set(Orders::getStatus,Constants.ordersStatus.wait.getKey())
-                        .set(Orders::getPayStatus,Constants.ONE)
-                        .set(Orders::getPayTime,new Date())
-                        .set(Orders::getPayMethod,Constants.ZERO)
-                        .set(Orders::getWxExternalNo,paymentNo)
-                        .eq(Orders::getId,orders.getId())
-                );
-
-                //瀛樺偍鏃ュ織
-                Constants.OrdersLog ordersLog = Constants.OrdersLog.PAY;
-                this.saveOrderLog(orders,ordersLog,
-                        ordersLog.getInfo(),orders.getReleaseMemberId(),null);
-            }
-        }else{
-            //闈炵敤椁愮被璁㈠崟
-            if(!Constants.equalsInteger(orders.getStatus(),Constants.FIVE)){
-                return  ("澶勭悊鎴愬姛!");
-            }else{
-                //澶勭悊鏀粯瀹屾垚閫昏緫
-                ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                        .set(Orders::getUpdateTime,new Date())
-                        .set(Orders::getStatus,Constants.FOUR)
-                        .set(Orders::getPayStatus,Constants.ONE)
-                        .set(Orders::getPayTime,new Date())
-                        .set(Orders::getPayMethod,Constants.ZERO)
-                        .set(Orders::getWxExternalNo,paymentNo)
-                        .set(Orders::getFinishTime,new Date())
-                        .eq(Orders::getId,orders.getId())
-                );
-
-                Member member = memberMapper.selectById(orders.getAcceptMemberId());
-                //瀛樺偍娴佹按璁板綍
-                MemberRevenue memberRevenue = new MemberRevenue();
-                memberRevenue.setCreateTime(new Date());
-                memberRevenue.setDeleted(Constants.ZERO);
-                memberRevenue.setTransactionNo(orders.getCode());
-                memberRevenue.setMemberId(orders.getAcceptMemberId());
-                memberRevenue.setType(orders.getType());
-                memberRevenue.setOptType(Constants.ONE);
-                memberRevenue.setBeforeAmount(member.getAmount());
-                memberRevenue.setAmount(orders.getReceiveAccount());
-                memberRevenue.setAfterAmount(member.getAmount() + orders.getReceiveAccount());
-                if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                    memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()) + "-" +
-                            (Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)?"閲囨憳宸�":(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"鍒嗘嫞宸�":"鍖呰宸�")));
-                }else{
-                    memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()));
-                }
-                memberRevenue.setObjId(orders.getId());
-                memberRevenue.setObjType(Constants.ZERO);
-                memberRevenue.setStatus(Constants.ZERO);
-                memberRevenueMapper.insert(memberRevenue);
-
-                //鏇存柊鎺ュ崟鐢ㄦ埛鐨勪綑棰濅笌鍘嗗彶鎬婚噾棰�
-                memberMapper.update(new UpdateWrapper<Member>().lambda()
-                        .setSql(" amount = ( amount + " + orders.getReceiveAccount() +")" )
-                        .setSql(" total_amount = ( amount + " + orders.getReceiveAccount() + ")" )
-                        .eq(Member::getId,member.getId())
-                );
-
-                //瀛樺偍鏃ュ織
-                Constants.OrdersLog ordersLog = Constants.OrdersLog.PAY;
-                this.saveOrderLog(orders,ordersLog,
-                        ordersLog.getInfo(),orders.getReleaseMemberId(),null);
-
-                // 閫氱煡鎺ュ崟鏂� 娆鹃」宸插埌璐�
-                sendWxMessage.revenueMessage(member.getOpenid(),orders);
-
-                //鐭俊閫氱煡鎺ュ崟鏂�
-                if(Objects.nonNull(orders.getAcceptMemberId())){
-                    IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                            .eq(IdentityInfo::getMemberId,orders.getAcceptMemberId())
-                            .eq(IdentityInfo::getType,orders.getType())
-                            .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                            .last("limit 1")
-                    );
-                    if(Objects.nonNull(wokerIdentityInfo)){
-                        aliSmsService.businessSendSms(Constants.smsContent.pay.getKey(),wokerIdentityInfo.getTelephone(),orders,null,
-                                null,categoryMapper);
-                    }
-                }
-
-            }
-        }
-        return  ("澶勭悊鎴愬姛!");
-    }
-
-
-    @Override
-    public PageData<Orders> findPageForMini(PageWrap<Orders> pageWrap) {
-        IPage<Orders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        MPJLambdaWrapper<Orders> queryWrapper = new MPJLambdaWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        Orders model = pageWrap.getModel();
-        if(Objects.isNull(model)
-            || Objects.isNull(model.getQueryMyOrderType())
-        ){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        BigDecimal chefLat = model.getQueryLat();
-        BigDecimal chefLgt = model.getQueryLgt();
-        BigDecimal driverLat = model.getQueryLat();
-        BigDecimal driverLgt = model.getQueryLgt();
-        BigDecimal workerLat = model.getQueryLat();
-        BigDecimal workerLgt = model.getQueryLgt();
-        IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                .eq(IdentityInfo::getMemberId,model.getMember().getId())
-                .eq(IdentityInfo::getType,Constants.ZERO)
-                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                .last("limit 1")
-        );
-        if(Objects.nonNull(wokerIdentityInfo)){
-            workerLat = wokerIdentityInfo.getLat();
-            workerLgt = wokerIdentityInfo.getLgt();
-        }
-        IdentityInfo driverIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                .eq(IdentityInfo::getMemberId,model.getMember().getId())
-                .eq(IdentityInfo::getType,Constants.ONE)
-                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                .last("limit 1")
-        );
-        if(Objects.nonNull(driverIdentityInfo)){
-            driverLat = driverIdentityInfo.getLat();
-            driverLgt = driverIdentityInfo.getLgt();
-        }
-        IdentityInfo chefIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                .eq(IdentityInfo::getMemberId,model.getMember().getId())
-                .eq(IdentityInfo::getType,Constants.TWO)
-                .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                .last("limit 1")
-        );
-        if(Objects.nonNull(chefIdentityInfo)){
-            chefLat = chefIdentityInfo.getLat();
-            chefLgt = chefIdentityInfo.getLgt();
-        }
-        queryWrapper.selectAll(Orders.class)
-                .select("c1.name",Orders::getCategoryName)
-                .select("c2.name",Orders::getTransportTypeName)
-                .leftJoin(" category c1 on t.category_id = c1.id  ")
-                .leftJoin(" category c2 on t.TRANSPORT_TYPE_ID = c2.id  ")
-                .eq(Objects.nonNull(model.getType()),Orders::getType,model.getType())
-                .eq(Objects.nonNull(model.getCommentStatus()),Orders::getCommentStatus,model.getCommentStatus());;
-        if(!(Objects.isNull(model.getQueryLat())||Objects.isNull(model.getQueryLgt()))){
-            queryWrapper.select(" case when T.LGT IS NULL OR T.LAT IS NULL THEN 0 " +
-                    " when t.TYPE = 0 then CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+workerLgt+", "+workerLat+" )) /1000,DECIMAL(15,2))  " +
-                    " when t.TYPE = 1 then   CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+driverLgt+", "+driverLat+" )) /1000,DECIMAL(15,2)) " +
-                    " else  CONVERT( ST_Distance_Sphere ( POINT ( t.LGT, t.LAT ), POINT ( "+chefLgt+", "+chefLat+" )) /1000,DECIMAL(15,2)) end " , Orders::getDistance);
-        }
-        if(Objects.nonNull(model.getQueryMyOrderType())){
-            if(Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ZERO)){
-                //鍙戝崟鏂� 鎴戠殑璁㈠崟
-                queryWrapper.eq(Orders::getReleaseMemberId,model.getMember().getId());
-                queryWrapper.eq(Objects.nonNull(model.getStatus())&&!Constants.equalsInteger(model.getStatus(),Constants.ordersStatus.waitPay.getKey()),Orders::getStatus,model.getStatus());
-                queryWrapper.in(Objects.nonNull(model.getStatus())&&Constants.equalsInteger(model.getStatus(),Constants.ordersStatus.waitPay.getKey()),Orders::getStatus,model.getStatus(),Constants.ordersStatus.feeconfirm.getKey());
-                queryWrapper.orderByDesc(Orders::getCreateTime);
-            }else if(Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ONE)){
-                //鎺ュ崟鏂� 鎴戠殑璁㈠崟
-                queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId());
-                queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus,model.getStatus());
-//                queryWrapper.in(Objects.nonNull(model.getStatus())&&Constants.equalsInteger(model.getStatus(),Constants.ordersStatus.waitPay.getKey()),Orders::getStatus,model.getStatus(),Constants.ordersStatus.feeconfirm.getKey());
-                queryWrapper.orderByDesc(Orders::getAcceptTime);
-            }else{
-                //鏌ヨ鐢ㄦ埛鐨勬帴鍗曟潈閲� 鎺ュ崟澶у巺
-                ReceiveWeight receiveWeight = receiveWeightMapper.selectOne(new QueryWrapper<ReceiveWeight>().lambda().eq(ReceiveWeight::getDeleted,Constants.ZERO).apply(" RECEIVE_MIN < "+model.getMember().getReceiveNum()+" and RECEIVE_MAX > " + model.getMember().getReceiveNum()).last(" limit 1 "));
-                if(Objects.nonNull(receiveWeight)){
-                    queryWrapper.apply(" DATE_ADD(t.CREATE_TIME, INTERVAL "+receiveWeight.getDelayTime()+" MINUTE)  < now() ");
-                }
-                queryWrapper.eq(Orders::getStatus,Constants.ordersStatus.wait.getKey());
-                queryWrapper.ne(Orders::getReleaseMemberId,model.getMember().getId());
-                if(Objects.nonNull(model.getSortType())){
-                    if(Constants.equalsInteger(model.getSortType(),Constants.ZERO)){
-                        queryWrapper.orderByDesc(Orders::getCreateTime);
-                    }else if(Constants.equalsInteger(model.getSortType(),Constants.ONE)){
-                        queryWrapper.orderByAsc(" distance  ");
-                    }else{
-                        queryWrapper.orderByDesc(Orders::getEstimatedAccount);
-                    }
-                }
-            }
-        } 
-        IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper);
-        for (Orders orders:iPage.getRecords()) {
-            this.getPriceUnit(orders);
-            if(Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ZERO)||Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ONE)){
-                orders.setStatusName(
-                        Constants.equalsInteger(model.getQueryMyOrderType(),Constants.ZERO)?Constants.ordersStatus.getName(orders.getStatus()):
-                                Constants.ordersStatus.getInfo(orders.getStatus())
-                );
-            }
-        }
-        return PageData.from(iPage);
-    }
-
-
-
-
-    //瀹氫綅璺濈
-    public void getDistance(Member member,Orders orders){
-        try{
-            if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
-                if(Objects.nonNull(member.getWorkerIdentityModel())&&Objects.nonNull(member.getWorkerIdentityModel().getLgt())
-                        &&Objects.nonNull(member.getWorkerIdentityModel().getLat())){
-                    orders.setDistance(
-                            GeoUtils.haversineDistance(
-                                    orders.getLgt().doubleValue(),orders.getLat().doubleValue(),
-                                    member.getWorkerIdentityModel().getLgt().doubleValue(),
-                                    member.getWorkerIdentityModel().getLat().doubleValue()
-                            )
-                    );
-                }
-
-            }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
-                if(Objects.nonNull(member.getDriverIdentityModel())&&Objects.nonNull(member.getDriverIdentityModel().getLgt())
-                        &&Objects.nonNull(member.getDriverIdentityModel().getLat())) {
-                    orders.setDistance(
-                            GeoUtils.haversineDistance(
-                                    orders.getLgt().doubleValue(), orders.getLat().doubleValue(),
-                                    member.getDriverIdentityModel().getLgt().doubleValue(),
-                                    member.getDriverIdentityModel().getLat().doubleValue()
-                            )
-                    );
-                }
-            }else{
-                if(Objects.nonNull(member.getChefIdentityModel())&&Objects.nonNull(member.getChefIdentityModel().getLgt())
-                        &&Objects.nonNull(member.getChefIdentityModel().getLat())) {
-                    orders.setDistance(
-                            GeoUtils.haversineDistance(
-                                    orders.getLgt().doubleValue(),orders.getLat().doubleValue(),
-                                    member.getChefIdentityModel().getLgt().doubleValue(),
-                                    member.getChefIdentityModel().getLat().doubleValue()
-                            )
-                    );
-                }
-            }
-        }catch (Exception e){
-            orders.setDistance(0L);
-        }
-    }
-
-
-
-    @Override
-    public Orders getDetail(Integer id,Member member) {
-        Orders orders = ordersMapper.selectJoinOne(Orders.class,new MPJLambdaWrapper<Orders>()
-                        .selectAll(Orders.class)
-                        .select(" m1.name " , Orders::getReleaseName)
-                        .select(" m1.telephone " , Orders::getReleasePhone)
-                        .select(" case when i.AUTH_TYPE = 0 then i.LINK_NAME else i.COMPANY_NAME end " , Orders::getAcceptName)
-                        .select(" i.TELEPHONE " , Orders::getAcceptPhone)
-                        .select("c1.name",Orders::getCategoryName)
-                        .select("c2.name",Orders::getTransportTypeName)
-                        .select(" m2.SCORE " , Orders::getScore)
-                        .select(" m1.PUBLISH_NUM " , Orders::getPublishNum)
-                        .select(" m2.RECEIVE_NUM " , Orders::getReceiveNum)
-                        .select(" m1.COVER_IMAGE " , Orders::getReleaseCoverImage)
-                        .select(" m2.COVER_IMAGE " , Orders::getAcceptCoverImage)
-                        .leftJoin(" category c1 on t.category_id = c1.id  ")
-                        .leftJoin(" category c2 on t.TRANSPORT_TYPE_ID = c2.id  ")
-                        .leftJoin("member m1 on t.RELEASE_MEMBER_ID = m1.id ")
-                        .leftJoin("member m2 on t.ACCEPT_MEMBER_ID = m2.id ")
-                        .leftJoin("identity_info i on m2.id = i.MEMBER_ID and i.TYPE = t.type and i.AUDIT_STATUS = 2  ")
-
-                        .eq(Orders::getId,id)
-                );
-        if(Objects.isNull(orders)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        //澶村儚淇℃伅
-        String coverPath  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
-                +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode();
-        if(org.apache.commons.lang3.StringUtils.isNotBlank(orders.getReleaseCoverImage())){
-            orders.setReleaseCoverImage(coverPath + orders.getReleaseCoverImage());
-        }
-        if(org.apache.commons.lang3.StringUtils.isNotBlank(orders.getAcceptCoverImage())){
-            orders.setAcceptCoverImage(coverPath + orders.getAcceptCoverImage());
-        }
-        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,orders.getId())
-                .eq(Multifile::getIsdeleted,Constants.ZERO).eq(Multifile::getObjType,Constants.ONE).orderByAsc(Multifile::getId));
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
-            String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
-                    +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ORDERS_FILES).getCode();
-            for (Multifile multifile:multifileList) {
-                multifile.setFileurlFull(path + multifile.getFileurl());
-            }
-            orders.setMultifileList(multifileList);
-        }
-        orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus()));
-        orders.setCancelStatus(Constants.ZERO);
-        if(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())&&Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
-            String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_CONFIRM).getCode();
-            orders.setConfirmCountdown(DateUtil.getXMinuteAfterDate(orders.getIsUpdateTime(),Integer.valueOf(autoConfirmTime)).getTime() - System.currentTimeMillis());
-            if(orders.getConfirmCountdown()<=Constants.ZERO){
-                orders.setConfirmCountdown(0L);
-            }
-        }
-        if(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey())){
-            orders.setCancelCountdown(DateUtil.getXMinuteAfterDate(orders.getCreateTime(),15).getTime() - System.currentTimeMillis());
-            if(orders.getCancelCountdown()<=Constants.ZERO){
-                orders.setCancelCountdown(0L);
-            }
-        }
-        this.getPriceUnit(orders);
-        orders.setCanStart(Constants.ZERO);
-        if(orders.getStatus() <= Constants.ordersStatus.accept.getKey()){
-            if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
-                if(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())&&orders.getStartDate().getTime() <= System.currentTimeMillis()){
-                    orders.setCanStart(Constants.ONE);
-                }
-                //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
-                Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
-                Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
-                        .apply(" DATE(cancel_time) = DATE(NOW()) ")
-                        .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                        .eq(Orders::getReleaseMemberId,orders.getReleaseMemberId()));
-                //鏌ヨ鍙栨秷娆℃暟
-                if(totalCancelTimes<=cancelTimes){
-                    orders.setCancelStatus(Constants.ONE);
-                    return orders;
-                }
-                Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
-                Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
-                if(hours < cancelTimeHour){
-                    orders.setCancelStatus(Constants.ONE);
-                    return orders;
-                }
-            }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
-                //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗
-                Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIMES).getCode());
-                Long cancelTimes = orderLogMapper.selectCount(new QueryWrapper<OrderLog>().lambda()
-                        .apply(" DATE(create_time) = DATE(NOW()) ")
-                        .eq(OrderLog::getObjType,Constants.OrdersLog.CANCEL.getKey())
-                        .eq(OrderLog::getMemberId,member.getId()));
-                //鏌ヨ鍙栨秷娆℃暟
-                if(totalCancelTimes<=cancelTimes){
-                    orders.setCancelStatus(Constants.ONE);
-                    return orders;
-                }
-
-                Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode());
-                Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
-                if(hours < cancelTimeHour){
-                    orders.setCancelStatus(Constants.ONE);
-                    return orders;
-                }
-            }
-        } else{
-            orders.setCancelStatus(Constants.ONE);
-        }
-        return orders;
-    }
-
-
-
-
-    public synchronized String  getNextCode(Integer type){
-        String prefix = "YG";
-        if(!Constants.equalsInteger(type,Constants.ZERO)){
-            prefix = (Constants.equalsInteger(type,Constants.ONE)?"YH-":"DC-");
-        }
-        prefix =  prefix + DateUtil.getCurrDateTimeShort() +"-";
-
-        Integer countNum  = (Integer) redisTemplate.opsForValue().get(Constants.RedisKeys.ORDER_CODE);//RedisUtil.getObject(redisTemplate, Constants.RedisKeys.ORDER_CODE, Integer.class);
-        countNum = Constants.formatIntegerNum(countNum)+1;
-        //鏇存柊缂撳瓨
-        redisTemplate.opsForValue().set(Constants.RedisKeys.ORDER_CODE,countNum);
-        String nextIndex =Integer.toString( countNum );
-        return prefix + org.apache.commons.lang3.StringUtils.leftPad(nextIndex,3,"0");
-    }
-
-
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void refundCallback(RefundNotification refundNotification){
-        WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectById(refundNotification.getOutRefundNo());
-        if(Objects.isNull(withdrawalOrders)||!Constants.equalsInteger(withdrawalOrders.getStatus(),Constants.ZERO)){
-            return;
-        }
-        withdrawalOrders.setWxExternalNo(refundNotification.getTransactionId());
-        withdrawalOrders.setUpdateTime(new Date());
-        withdrawalOrders.setDoneTime(withdrawalOrders.getUpdateTime());
-        if (!"SUCCESS".equals(refundNotification.getRefundStatus().name())) {
-            // 濡傛灉閫�娆剧姸鎬佷笉姝g‘锛屼慨鏀归��娆惧崟鐘舵��
-            withdrawalOrders.setStatus(Constants.TWO);
-        }else{
-            withdrawalOrders.setStatus(Constants.ONE);
-        }
-        //鏇存柊閫�娆惧崟鐘舵��
-        withdrawalOrdersMapper.updateById(withdrawalOrders);
-    }
-
-
-    /**
-     * 鑷姩娲惧崟
-     */
-    @Override
-    public void autoGrabOrders(){
-        String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_DISPATCH).getCode();
-        List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO)
-                .eq(Orders::getStatus,Constants.ONE).eq(Orders::getCommentStatus,Constants.ZERO)
-                .apply(" DATE_ADD(create_time, INTERVAL "+autoConfirmTime+" MINUTE) < now() ")
-                .last("limit 100")
-        );
-        for (Orders orders:ordersList) {
-            BigDecimal lat = orders.getLat();
-            BigDecimal lgt = orders.getLgt();
-            //鏌ヨ鑼冨洿鍐呯殑浼氬憳
-            List<Member> memberList = memberMapper.getList(lgt,lat,orders.getType(),orders.getReleaseMemberId());
-//                    memberMapper.selectList(new MPJLambdaWrapper<Member>()
-//                    .select(Member::getId,Member::getScore)
-//                            .select(" ifnull((select r.level from receive_weight r where r.RECEIVE_MAX > RECEIVE_NUM and RECEIVE_NUM > r.RECEIVE_MIN limit 1  ),0) " ,Member::getLevel)
-//                            .select(  " ifnull( (select CONVERT( ST_Distance_Sphere ( POINT ( ii.lgt, ii.lat ), POINT ( "+lgt+", "+lat+" )) /1000,DECIMAL(15,2)) from identity_info ii where ii.AUDIT_STATUS = 2 and type = 0 and ii.member_id = ID limit  1 ),0) ",Member::getDistance )
-////
-//                    .apply(" id in (" +
-//                            " select ii.member_id from identity_info ii where ii.AUDIT_STATUS = 2 and type = '"+orders.getType()+"' " +
-//                            " and ( CONVERT( ST_Distance_Sphere ( POINT ( ii.lgt, ii.lat ), POINT ( "+lgt+", "+lat+" )) /1000,DECIMAL(15,2))) < 100 " +
-//                            ") ")
-//                    .orderByDesc(" level , score ")
-//                    .orderByAsc(Member::getDistance)
-//                    .last(" limit 1 ")
-//            );
-            if(CollectionUtils.isEmpty(memberList)){
-                continue;
-            }
-
-            Member member = memberList.get(Constants.ZERO);
-            Member releaseMember = memberMapper.selectById(orders.getReleaseMemberId());
-            //鑷姩娲惧崟
-            Orders model = ordersMapper.selectById(orders.getId());
-            if(!Constants.equalsInteger(model.getStatus(),Constants.ONE) || Constants.equalsInteger(releaseMember.getId(),model.getReleaseMemberId())){
-               //濡傛灉璁㈠崟宸插垹闄� 骞朵笖闈炲彂甯冩柟
-                continue;
-            }
-            ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,model.getId())
-                    .set(Orders::getUpdateTime,new Date())
-                    .set(Orders::getAcceptType,Constants.ONE)
-                    .set(Orders::getAcceptTime,new Date())
-                    .set(Orders::getAcceptMemberId,member.getId())
-                    .set(Orders::getStatus,Constants.ordersStatus.accept.getKey())
-            );
-
-            //鏇存柊鎺ュ崟閲�
-            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" RECEIVE_NUM = (ifnull(RECEIVE_NUM,0) + 1 )").eq(Member::getId,member.getId()));
-
-            //鍒涘缓鎿嶄綔鏃ュ織
-            Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO;
-            this.saveOrderLog(orders,ordersLog,
-                    ordersLog.getInfo(),member.getId(),null);
-
-            IdentityInfo wokerIdentityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda()
-                    .eq(IdentityInfo::getMemberId,member.getId())
-                    .eq(IdentityInfo::getType,orders.getType())
-                    .eq(IdentityInfo::getAuditStatus,Constants.TWO)
-                    .last("limit 1")
-            );
-            //閫氱煡鍙戝崟鏂�
-            if(org.apache.commons.lang3.StringUtils.isNotBlank(releaseMember.getOpenid())&&Objects.nonNull(wokerIdentityInfo)){
-                //鍙戦�佸井淇¢�氱煡
-                sendWxMessage.acceptMessage(releaseMember.getOpenid(),orders,wokerIdentityInfo.getLinkName(),wokerIdentityInfo.getTelephone());
-            }
-
-            //閫氱煡鎺ュ崟鏂�
-            sendWxMessage.autoDispatchMessage(member.getOpenid(),orders,GeoUtils.haversineDistance(
-                    orders.getLgt().doubleValue(), orders.getLat().doubleValue(),
-                    wokerIdentityInfo.getLgt().doubleValue(),
-                    wokerIdentityInfo.getLat().doubleValue()
-            ));
-             
-            aliSmsService.businessSendSms(Constants.smsContent.dispatch.getKey(),orders.getLinkPhone(),orders,null,
-                    null,categoryMapper);
-        }
-    }
-
-    //鑷姩璇勪环 璁㈠崟瀹屾垚7澶╁悗鑷姩璇勪环4鏄�
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void autoComment(){
-        List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
-                .eq(Orders::getStatus,Constants.FOUR).eq(Orders::getCommentStatus,Constants.ZERO)
-                .apply(" DATE_ADD(finish_time, INTERVAL 7 DAY) < now() ")
-                .last("limit 100")
-        );
-
-        for (Orders orders:ordersList) {
-            ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                    .set(Orders::getCommentStatus,Constants.ONE)
-                    .set(Orders::getUpdateTime,new Date())
-                    .set(Orders::getCommentTime,new Date())
-                    .set(Orders::getCommentLevel,Constants.FOUR)
-                    .set(Orders::getCommentType,Constants.ZERO)
-                    .eq(Orders::getId,orders.getId())
-            );
-
-            memberMapper.update(new UpdateWrapper<Member>().lambda()
-                    .setSql(" score = ( ( total_score +" + Constants.FOUR + " ) / (score_order_num + 1 ) ) ")
-                    .setSql(" total_score = ( total_score +" + Constants.FOUR + ")")
-                    .setSql(" score_order_num = ( score_order_num + 1 ) " ).eq(Member::getId,orders.getAcceptMemberId())
-            );
-
-            //鏃ュ織瀛樺偍
-            Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO_COMMENT;
-            this.saveOrderLog(orders,ordersLog,
-                    ordersLog.getInfo(),orders.getAcceptMemberId(),null);
-        }
-    }
-
-
-    //鑷姩纭 璁㈠崟淇敼鍚庤嫢鏈鐞� 鏍规嵁閰嶇疆鑷姩澶勭悊
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void autoConfirm(){
-        String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_CONFIRM).getCode();
-        List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
-                .eq(Orders::getStatus,Constants.ordersStatus.accept.getKey())
-                .eq(Orders::getIsUpdate,Constants.ONE)
-                .apply(" DATE_ADD(IS_UPDATE_TIME, INTERVAL "+autoConfirmTime+" MINUTE) < now() ")
-                .last("limit 100")
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ordersList)){
-            for (Orders orders:ordersList) {
-                ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                        .set(Orders::getIsUpdate,Constants.TWO)
-                        .set(Orders::getUpdateTime,new Date())
-                        .eq(Orders::getId,orders.getId())
-                );
-                //璁板綍鍚屾剰淇敼鐨勬棩蹇�
-                Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO_AGREE;
-                this.saveOrderLog(orders,ordersLog,
-                        ordersLog.getInfo(),null,null);
-            }
-        }
-    }
-
-
-
-    //鑷姩鍙栨秷 璁㈠崟鏈敮浠�
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public void autoCancelWaitPay(){
-        List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda()
-                .eq(Orders::getStatus,Constants.ordersStatus.waitPay)
-                .apply(" DATE_ADD(CREATE_TIME, INTERVAL 15 MINUTE) < now() ")
-                .last("limit 100")
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ordersList)){
-            for (Orders orders:ordersList) {
-                ordersMapper.update(new UpdateWrapper<Orders>().lambda()
-                        .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
-                        .set(Orders::getUpdateTime,DateUtil.getCurrDateTime())
-                        .set(Orders::getCancelTime,DateUtil.getCurrDateTime())
-                        .set(Orders::getCancelType,Constants.TWO)
-                        .eq(Orders::getId,orders.getId())
-                );
-                //璁板綍鍚屾剰淇敼鐨勬棩蹇�
-                Constants.OrdersLog ordersLog = Constants.OrdersLog.SYSTEM_CANCEL;
-                this.saveOrderLog(orders,ordersLog,
-                        ordersLog.getInfo(),orders.getAcceptMemberId(),null);
-            }
-        }
-    }
-
-
-    @Override
-    public  void initializeCode(){
-        //鏇存柊缂撳瓨
-        redisTemplate.opsForValue().set(Constants.RedisKeys.ORDER_CODE,0);
-    }
-
 
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/RevenueServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/RevenueServiceImpl.java
new file mode 100644
index 0000000..441ea60
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/impl/RevenueServiceImpl.java
@@ -0,0 +1,151 @@
+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.constants.ResponseStatus;
+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.RevenueMapper;
+import com.doumee.dao.business.model.Revenue;
+import com.doumee.service.business.RevenueService;
+import org.apache.commons.lang3.StringUtils;
+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/10
+ */
+@Service
+public class RevenueServiceImpl implements RevenueService {
+
+    @Autowired
+    private RevenueMapper revenueMapper;
+
+    @Override
+    public Integer create(Revenue revenue) {
+        revenueMapper.insert(revenue);
+        return revenue.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        revenueMapper.update(new UpdateWrapper<Revenue>().lambda()
+                .set(Revenue::getDeleted, Constants.ONE)
+                .eq(Revenue::getId, id));
+    }
+
+    @Override
+    public void delete(Revenue revenue) {
+        UpdateWrapper<Revenue> deleteWrapper = new UpdateWrapper<>(revenue);
+        revenueMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (ids == null || ids.isEmpty()) {
+            return;
+        }
+        revenueMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(Revenue revenue) {
+        revenueMapper.updateById(revenue);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<Revenue> revenues) {
+        if (revenues == null || revenues.isEmpty()) {
+            return;
+        }
+        for (Revenue revenue : revenues) {
+            this.updateById(revenue);
+        }
+    }
+
+    @Override
+    public Revenue findById(Integer id) {
+        Revenue revenue = revenueMapper.selectById(id);
+        if (Objects.isNull(revenue)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        return revenue;
+    }
+
+    @Override
+    public Revenue findOne(Revenue revenue) {
+        QueryWrapper<Revenue> wrapper = new QueryWrapper<>(revenue);
+        return revenueMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<Revenue> findList(Revenue revenue) {
+        QueryWrapper<Revenue> wrapper = new QueryWrapper<>(revenue);
+        return revenueMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<Revenue> findPage(PageWrap<Revenue> pageWrap) {
+        IPage<Revenue> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<Revenue> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        pageWrap.getModel().setDeleted(Constants.ZERO);
+        // 鐢ㄦ埛涓婚敭
+        if (pageWrap.getModel().getMemberId() != null) {
+            queryWrapper.lambda().eq(Revenue::getMemberId, pageWrap.getModel().getMemberId());
+        }
+        // 鏃堕棿鑼冨洿
+        if (pageWrap.getModel().getStartTime() != null) {
+            queryWrapper.lambda().ge(Revenue::getCreateTime, pageWrap.getModel().getStartTime());
+        }
+        if (pageWrap.getModel().getEndTime() != null) {
+            queryWrapper.lambda().le(Revenue::getCreateTime, pageWrap.getModel().getEndTime());
+        }
+        // 鏀舵敮绫诲瀷
+        if (pageWrap.getModel().getOptType() != null) {
+            queryWrapper.lambda().eq(Revenue::getOptType, pageWrap.getModel().getOptType());
+        }
+        // 璁㈠崟鍙锋ā绯婃煡璇�
+        if (StringUtils.isNotBlank(pageWrap.getModel().getOrderNo())) {
+            queryWrapper.lambda().like(Revenue::getOrderNo, pageWrap.getModel().getOrderNo());
+        }
+        // 鏄惁鐢熸晥
+        if (pageWrap.getModel().getVaildStatus() != null) {
+            queryWrapper.lambda().eq(Revenue::getVaildStatus, pageWrap.getModel().getVaildStatus());
+        }
+        // 榛樿鎸夊垱寤烘椂闂村�掑簭
+        queryWrapper.lambda().orderByDesc(Revenue::getCreateTime);
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        PageData<Revenue> result = PageData.from(revenueMapper.selectPage(page, queryWrapper));
+        // 閲戦鍒嗚浆鍏�
+        if (result != null && result.getRecords() != null) {
+            for (Revenue model : result.getRecords()) {
+                model.setAmountInfo(Constants.getFormatMoney(model.getAmount()));
+            }
+        }
+        return result;
+    }
+
+    @Override
+    public long count(Revenue revenue) {
+        QueryWrapper<Revenue> wrapper = new QueryWrapper<>(revenue);
+        return revenueMapper.selectCount(wrapper);
+    }
+
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
index a69fee6..97d1f7d 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
@@ -10,15 +10,31 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
+import com.doumee.biz.system.AreasBiz;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.MultifileMapper;
 import com.doumee.dao.business.ShopInfoMapper;
+import com.doumee.dao.business.model.Areas;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Multifile;
 import com.doumee.dao.business.model.ShopInfo;
+import com.doumee.dao.dto.AuditDTO;
+import com.doumee.dao.dto.ChangeStatusDTO;
+import com.doumee.dao.dto.ResetPasswordDTO;
+import com.doumee.dao.dto.ShopApplyDTO;
+import com.doumee.dao.dto.ShopUpdateDTO;
+import com.doumee.dao.vo.ShopDetailVO;
 import com.doumee.service.business.ShopInfoService;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 闂ㄥ簵淇℃伅Service瀹炵幇
@@ -30,6 +46,18 @@
 
     @Autowired
     private ShopInfoMapper shopInfoMapper;
+
+    @Autowired
+    private MemberMapper memberMapper;
+
+    @Autowired
+    private MultifileMapper multifileMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private AreasBiz areasBiz;
 
     @Override
     public Integer create(ShopInfo shopInfo) {
@@ -50,7 +78,7 @@
 
     @Override
     public void deleteByIdInBatch(List<Integer> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
+        if (ids == null || ids.isEmpty()) {
             return;
         }
         shopInfoMapper.deleteBatchIds(ids);
@@ -63,7 +91,7 @@
 
     @Override
     public void updateByIdInBatch(List<ShopInfo> shopInfos) {
-        if (CollectionUtils.isEmpty(shopInfos)) {
+        if (shopInfos == null || shopInfos.isEmpty()) {
             return;
         }
         for (ShopInfo shopInfo : shopInfos) {
@@ -111,6 +139,12 @@
             queryWrapper.lambda().ge(ShopInfo::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
             queryWrapper.lambda().le(ShopInfo::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
         }
+        if (pageWrap.getModel().getCreateStartTime() != null) {
+            queryWrapper.lambda().ge(ShopInfo::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime()));
+        }
+        if (pageWrap.getModel().getCreateEndTime() != null) {
+            queryWrapper.lambda().le(ShopInfo::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
+        }
         if (pageWrap.getModel().getUpdateUser() != null) {
             queryWrapper.lambda().eq(ShopInfo::getUpdateUser, pageWrap.getModel().getUpdateUser());
         }
@@ -139,6 +173,9 @@
         if (pageWrap.getModel().getAreaId() != null) {
             queryWrapper.lambda().eq(ShopInfo::getAreaId, pageWrap.getModel().getAreaId());
         }
+        if (pageWrap.getModel().getAuditStatus() != null) {
+            queryWrapper.lambda().eq(ShopInfo::getAuditStatus, pageWrap.getModel().getAuditStatus());
+        }
         if (pageWrap.getModel().getStatus() != null) {
             queryWrapper.lambda().eq(ShopInfo::getStatus, pageWrap.getModel().getStatus());
         }
@@ -168,4 +205,445 @@
         return shopInfoMapper.selectCount(wrapper);
     }
 
+    // ========== 闂ㄥ簵鍏ラ┗涓氬姟 ==========
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void applyShop(ShopApplyDTO request, Member member) {
+        Integer memberId = member.getId();
+
+        // 1. 鏍¢獙闂ㄥ簵鎵嬫満鍙峰敮涓�鎬э紙shop_info.telephone锛�
+        checkTelephoneUnique(request.getTelephone(), null);
+
+        // 2. 鏍规嵁绫诲瀷鏍¢獙闄勪欢
+        if (Constants.equalsInteger(request.getCompanyType(), Constants.ZERO)) {
+            // 涓汉绫诲瀷锛氬繀椤讳笂浼犲姵鍔ㄥ悎鍚屽拰绀句繚璇佹槑
+            if (CollectionUtils.isEmpty(request.getLaborContractImgs())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓汉绫诲瀷蹇呴』涓婁紶鏈夋晥鍔冲姩鍚堝悓");
+            }
+            if (CollectionUtils.isEmpty(request.getSocialSecurityImgs())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓汉绫诲瀷蹇呴』涓婁紶绀句繚缂寸撼璇佹槑");
+            }
+        } else if (Constants.equalsInteger(request.getCompanyType(), Constants.ONE)) {
+            // 浼佷笟绫诲瀷锛氬繀椤诲~鍐欐硶浜轰俊鎭拰钀ヤ笟鎵х収
+            if (StringUtils.isBlank(request.getBusinessImg())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』涓婁紶钀ヤ笟鎵х収");
+            }
+            if (StringUtils.isBlank(request.getLegalPersonName())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉濮撳悕");
+            }
+            if (StringUtils.isBlank(request.getLegalPersonPhone())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉鐢佃瘽");
+            }
+            if (StringUtils.isBlank(request.getLegalPersonCard())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉韬唤璇佸彿鐮�");
+            }
+        }
+
+        Date now = new Date();
+        String rawPassword = generateDefaultPassword(request.getTelephone());
+        String salt = RandomStringUtils.randomAlphabetic(6);
+        String encryptedPassword = Utils.Secure.encryptPassword(rawPassword, salt);
+
+        // 3. 鏌ヨ璇ヤ細鍛樻槸鍚﹀凡鏈夐棬搴楄褰�
+        QueryWrapper<ShopInfo> existQw = new QueryWrapper<>();
+        existQw.lambda()
+                .eq(ShopInfo::getRegionMemberId, memberId)
+                .eq(ShopInfo::getDeleted, Constants.ZERO)
+                .last("limit 1");
+        ShopInfo existing = shopInfoMapper.selectOne(existQw);
+
+        Integer shopId;
+        if (existing != null) {
+            // 鏍¢獙鐘舵�侊細鍙湁寰呭鎵�(0)鍜岃椹冲洖(2)鍙慨鏀�
+            if (!Constants.equalsInteger(existing.getAuditStatus(), Constants.ZERO)
+                    && !Constants.equalsInteger(existing.getAuditStatus(), Constants.TWO)) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠闂ㄥ簵鐘舵�佷笉鍏佽淇敼");
+            }
+            // 鏍¢獙openid鍖归厤锛氬綋鍓嶇櫥褰曚細鍛樼殑openid蹇呴』涓庨棬搴楃殑openid涓�鑷�
+            if (existing.getOpenid() != null && !existing.getOpenid().equals(member.getOpenid())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈闄愭搷浣滃綋鍓嶉棬搴椾俊鎭�");
+            }
+            // 鏍¢獙鎵嬫満鍙峰敮涓�鎬э紙鎺掗櫎鑷韩锛�
+            if (!request.getTelephone().equals(existing.getTelephone())) {
+                checkTelephoneUnique(request.getTelephone(), existing.getId());
+            }
+            // 鏇存柊
+            existing.setCompanyType(request.getCompanyType());
+            existing.setName(request.getName());
+            existing.setTelephone(request.getTelephone());
+            existing.setLinkName(request.getLinkName());
+            existing.setLinkPhone(request.getLinkPhone());
+            existing.setIdcard(request.getIdcard());
+            existing.setAreaId(request.getAreaId());
+            existing.setLongitude(request.getLongitude());
+            existing.setLatitude(request.getLatitude());
+            existing.setAddress(request.getAddress());
+            existing.setIdcardImg(request.getIdcardImg());
+            existing.setIdcardImgBack(request.getIdcardImgBack());
+            existing.setBusinessImg(request.getBusinessImg());
+            existing.setLegalPersonName(request.getLegalPersonName());
+            existing.setLegalPersonPhone(request.getLegalPersonPhone());
+            existing.setLegalPersonCard(request.getLegalPersonCard());
+            existing.setPassword(encryptedPassword);
+            existing.setSalt(salt);
+            existing.setAuditStatus(Constants.ZERO);
+            existing.setUpdateTime(now);
+            existing.setUpdateUser(memberId);
+            existing.setAuditRemark(null);
+            existing.setAuditTime(null);
+            existing.setAuditUserId(null);
+            shopInfoMapper.updateById(existing);
+            shopId = existing.getId();
+        } else {
+            // 鏂板缓
+            ShopInfo shopInfo = new ShopInfo();
+            shopInfo.setCompanyType(request.getCompanyType());
+            shopInfo.setName(request.getName());
+            shopInfo.setTelephone(request.getTelephone());
+            shopInfo.setLinkName(request.getLinkName());
+            shopInfo.setLinkPhone(request.getLinkPhone());
+            shopInfo.setIdcard(request.getIdcard());
+            shopInfo.setAreaId(request.getAreaId());
+            shopInfo.setLongitude(request.getLongitude());
+            shopInfo.setLatitude(request.getLatitude());
+            shopInfo.setAddress(request.getAddress());
+            shopInfo.setIdcardImg(request.getIdcardImg());
+            shopInfo.setIdcardImgBack(request.getIdcardImgBack());
+            shopInfo.setBusinessImg(request.getBusinessImg());
+            shopInfo.setLegalPersonName(request.getLegalPersonName());
+            shopInfo.setLegalPersonPhone(request.getLegalPersonPhone());
+            shopInfo.setLegalPersonCard(request.getLegalPersonCard());
+            shopInfo.setPassword(encryptedPassword);
+            shopInfo.setSalt(salt);
+            shopInfo.setOpenid(member.getOpenid());
+            shopInfo.setAuditStatus(Constants.ZERO);
+            shopInfo.setStatus(Constants.ZERO);
+            shopInfo.setDeleted(Constants.ZERO);
+            shopInfo.setCreateTime(now);
+            shopInfo.setUpdateTime(now);
+            shopInfo.setCreateUser(memberId);
+            shopInfo.setRegionMemberId(memberId);
+            shopInfoMapper.insert(shopInfo);
+            shopId = shopInfo.getId();
+        }
+
+        // 4. 鍒犻櫎鏃ч檮浠惰褰�
+        multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId, shopId)
+                .in(Multifile::getObjType,
+                        Constants.FileType.STORE_FRONT.getKey(),
+                        Constants.FileType.STORE_INTERIOR.getKey(),
+                        Constants.FileType.OTHER_MATERIAL.getKey(),
+                        Constants.FileType.LABOR_CONTRACT.getKey(),
+                        Constants.FileType.SOCIAL_SECURITY.getKey()));
+
+        // 5. 淇濆瓨鏂伴檮浠惰褰�
+        saveMultifileList(shopId, Constants.FileType.STORE_FRONT.getKey(), request.getStoreFrontImgs(), now);
+        saveMultifileList(shopId, Constants.FileType.STORE_INTERIOR.getKey(), request.getStoreInteriorImgs(), now);
+        saveMultifileList(shopId, Constants.FileType.OTHER_MATERIAL.getKey(), request.getOtherMaterialImgs(), now);
+        saveMultifileList(shopId, Constants.FileType.LABOR_CONTRACT.getKey(), request.getLaborContractImgs(), now);
+        saveMultifileList(shopId, Constants.FileType.SOCIAL_SECURITY.getKey(), request.getSocialSecurityImgs(), now);
+    }
+
+    @Override
+    public ShopDetailVO getShopDetail(Integer shopId) {
+        ShopInfo shopInfo = shopInfoMapper.selectById(shopId);
+        if (shopInfo == null || Constants.equalsInteger(shopInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        return buildShopDetailVO(shopInfo);
+    }
+
+    @Override
+    public ShopDetailVO getMyShop(Integer memberId) {
+        QueryWrapper<ShopInfo> qw = new QueryWrapper<>();
+        qw.lambda()
+                .eq(ShopInfo::getRegionMemberId, memberId)
+                .eq(ShopInfo::getDeleted, Constants.ZERO)
+                .last("limit 1");
+        ShopInfo shopInfo = shopInfoMapper.selectOne(qw);
+        if (shopInfo == null) {
+            return null;
+        }
+        return buildShopDetailVO(shopInfo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void auditShop(AuditDTO auditDTO) {
+        if (auditDTO.getId() == null) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓婚敭涓嶈兘涓虹┖");
+        }
+        if (auditDTO.getAuditStatus() == null
+                || (auditDTO.getAuditStatus() != 0 && auditDTO.getAuditStatus() != 1)) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀹℃壒鐘舵�佸弬鏁伴敊璇�");
+        }
+        ShopInfo shopInfo = shopInfoMapper.selectById(auditDTO.getId());
+        if (shopInfo == null || Constants.equalsInteger(shopInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if (!Constants.equalsInteger(shopInfo.getAuditStatus(), Constants.ZERO)) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠鐘舵�佷笉鍏佽瀹℃壒");
+        }
+
+        Date now = new Date();
+        // auditDTO.auditStatus: 0=閫氳繃 鈫� auditStatus=1, 1=椹冲洖 鈫� auditStatus=2
+        Integer newAuditStatus = Constants.equalsInteger(auditDTO.getAuditStatus(), Constants.ZERO) ? Constants.ONE : Constants.TWO;
+        shopInfo.setAuditStatus(newAuditStatus);
+        shopInfo.setAuditTime(now);
+        shopInfo.setAuditRemark(auditDTO.getAuditRemark());
+        shopInfo.setAuditUserId(auditDTO.getAuditUser());
+        shopInfo.setUpdateTime(now);
+        shopInfoMapper.updateById(shopInfo);
+    }
+
+    @Override
+    public void changeStatus(ChangeStatusDTO dto) {
+        if (dto.getId() == null) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓婚敭涓嶈兘涓虹┖");
+        }
+        if (dto.getStatus() == null || (dto.getStatus() != 0 && dto.getStatus() != 1)) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐘舵�佸弬鏁伴敊璇紝0=鍚敤锛�1=绂佺敤");
+        }
+        ShopInfo shopInfo = shopInfoMapper.selectById(dto.getId());
+        if (shopInfo == null || Constants.equalsInteger(shopInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        shopInfo.setStatus(dto.getStatus());
+        shopInfo.setUpdateTime(new Date());
+        shopInfoMapper.updateById(shopInfo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void resetPassword(ResetPasswordDTO dto) {
+        if (dto.getId() == null) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "闂ㄥ簵涓婚敭涓嶈兘涓虹┖");
+        }
+        ShopInfo shopInfo = shopInfoMapper.selectById(dto.getId());
+        if (shopInfo == null || Constants.equalsInteger(shopInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        String rawPassword = generateDefaultPassword(shopInfo.getTelephone());
+        String salt = RandomStringUtils.randomAlphabetic(6);
+        shopInfo.setPassword(Utils.Secure.encryptPassword(rawPassword, salt));
+        shopInfo.setSalt(salt);
+        shopInfo.setUpdateTime(new Date());
+        shopInfoMapper.updateById(shopInfo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateShop(ShopUpdateDTO request) {
+        if (request.getId() == null) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "闂ㄥ簵涓婚敭涓嶈兘涓虹┖");
+        }
+        ShopInfo shopInfo = shopInfoMapper.selectById(request.getId());
+        if (shopInfo == null || Constants.equalsInteger(shopInfo.getDeleted(), Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+
+        // 鏍¢獙鎵嬫満鍙峰敮涓�鎬э紙鎺掗櫎鑷韩锛�
+        if (!request.getTelephone().equals(shopInfo.getTelephone())) {
+            checkTelephoneUnique(request.getTelephone(), shopInfo.getId());
+        }
+
+        // 鏍规嵁绫诲瀷鏍¢獙蹇呭~
+        if (Constants.equalsInteger(request.getCompanyType(), Constants.ZERO)) {
+            // 涓汉绫诲瀷锛氬繀椤讳笂浼犲姵鍔ㄥ悎鍚屽拰绀句繚璇佹槑
+            if (CollectionUtils.isEmpty(request.getLaborContractImgs())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓汉绫诲瀷蹇呴』涓婁紶鏈夋晥鍔冲姩鍚堝悓");
+            }
+            if (CollectionUtils.isEmpty(request.getSocialSecurityImgs())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "涓汉绫诲瀷蹇呴』涓婁紶绀句繚缂寸撼璇佹槑");
+            }
+        } else if (Constants.equalsInteger(request.getCompanyType(), Constants.ONE)) {
+            // 浼佷笟绫诲瀷锛氬繀椤诲~鍐欐硶浜轰俊鎭拰钀ヤ笟鎵х収
+            if (StringUtils.isBlank(request.getBusinessImg())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』涓婁紶钀ヤ笟鎵х収");
+            }
+            if (StringUtils.isBlank(request.getLegalPersonName())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉濮撳悕");
+            }
+            if (StringUtils.isBlank(request.getLegalPersonPhone())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉鐢佃瘽");
+            }
+            if (StringUtils.isBlank(request.getLegalPersonCard())) {
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浼佷笟绫诲瀷蹇呴』濉啓娉曚汉韬唤璇佸彿鐮�");
+            }
+        }
+
+        Date now = new Date();
+        // 鏇存柊鍩虹淇℃伅
+        shopInfo.setCompanyType(request.getCompanyType());
+        shopInfo.setName(request.getName());
+        shopInfo.setTelephone(request.getTelephone());
+        shopInfo.setLinkName(request.getLinkName());
+        shopInfo.setLinkPhone(request.getLinkPhone());
+        shopInfo.setIdcard(request.getIdcard());
+        shopInfo.setAreaId(request.getAreaId());
+        shopInfo.setLongitude(request.getLongitude());
+        shopInfo.setLatitude(request.getLatitude());
+        shopInfo.setAddress(request.getAddress());
+        // 浼佷笟绫讳俊鎭�
+        shopInfo.setIdcardImg(request.getIdcardImg());
+        shopInfo.setIdcardImgBack(request.getIdcardImgBack());
+        shopInfo.setBusinessImg(request.getBusinessImg());
+        shopInfo.setLegalPersonName(request.getLegalPersonName());
+        shopInfo.setLegalPersonPhone(request.getLegalPersonPhone());
+        shopInfo.setLegalPersonCard(request.getLegalPersonCard());
+        shopInfo.setUpdateTime(now);
+        shopInfoMapper.updateById(shopInfo);
+
+        // 鍒犻櫎鏃ч檮浠惰褰�
+        multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId, shopInfo.getId())
+                .in(Multifile::getObjType,
+                        Constants.FileType.STORE_FRONT.getKey(),
+                        Constants.FileType.STORE_INTERIOR.getKey(),
+                        Constants.FileType.OTHER_MATERIAL.getKey(),
+                        Constants.FileType.LABOR_CONTRACT.getKey(),
+                        Constants.FileType.SOCIAL_SECURITY.getKey()));
+
+        // 淇濆瓨鏂伴檮浠惰褰�
+        saveMultifileList(shopInfo.getId(), Constants.FileType.STORE_FRONT.getKey(), request.getStoreFrontImgs(), now);
+        saveMultifileList(shopInfo.getId(), Constants.FileType.STORE_INTERIOR.getKey(), request.getStoreInteriorImgs(), now);
+        saveMultifileList(shopInfo.getId(), Constants.FileType.OTHER_MATERIAL.getKey(), request.getOtherMaterialImgs(), now);
+        saveMultifileList(shopInfo.getId(), Constants.FileType.LABOR_CONTRACT.getKey(), request.getLaborContractImgs(), now);
+        saveMultifileList(shopInfo.getId(), Constants.FileType.SOCIAL_SECURITY.getKey(), request.getSocialSecurityImgs(), now);
+    }
+
+    // ========== 绉佹湁鏂规硶 ==========
+
+    /**
+     * 鐢熸垚榛樿瀵嗙爜锛氭墜鏈哄彿鍚�6浣� + @123456
+     */
+    private String generateDefaultPassword(String telephone) {
+        if (StringUtils.isBlank(telephone) || telephone.length() < 6) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎵嬫満鍙锋牸寮忓紓甯革紝鏃犳硶鐢熸垚榛樿瀵嗙爜");
+        }
+        return telephone.substring(telephone.length() - 6) + "@123456";
+    }
+
+    private void checkTelephoneUnique(String telephone, Integer excludeId) {
+        QueryWrapper<ShopInfo> qw = new QueryWrapper<>();
+        qw.lambda()
+                .eq(ShopInfo::getTelephone, telephone)
+                .eq(ShopInfo::getDeleted, Constants.ZERO);
+        if (excludeId != null) {
+            qw.lambda().ne(ShopInfo::getId, excludeId);
+        }
+        long count = shopInfoMapper.selectCount(qw);
+        if (count > 0) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇ユ墜鏈哄彿宸叉敞鍐岄棬搴�");
+        }
+    }
+
+    private void saveMultifileList(Integer objId, Integer objType, List<String> urls, Date now) {
+        if (CollectionUtils.isEmpty(urls)) {
+            return;
+        }
+        int sortNum = 0;
+        for (String url : urls) {
+            Multifile multifile = new Multifile();
+            multifile.setObjId(objId);
+            multifile.setObjType(objType);
+            multifile.setType(Constants.ZERO);
+            multifile.setFileurl(url);
+            multifile.setIsdeleted(Constants.ZERO);
+            multifile.setCreateDate(now);
+            multifile.setSortnum(sortNum++);
+            multifileMapper.insert(multifile);
+        }
+    }
+
+    private ShopDetailVO buildShopDetailVO(ShopInfo shopInfo) {
+        ShopDetailVO vo = new ShopDetailVO();
+        vo.setId(shopInfo.getId());
+        vo.setCompanyType(shopInfo.getCompanyType());
+        vo.setName(shopInfo.getName());
+        vo.setTelephone(shopInfo.getTelephone());
+        vo.setLinkName(shopInfo.getLinkName());
+        vo.setLinkPhone(shopInfo.getLinkPhone());
+        vo.setIdcard(shopInfo.getIdcard());
+        vo.setAreaId(shopInfo.getAreaId());
+        // 濉厖鐪佸競鍖哄悕绉板強涓婚敭
+        Areas area = areasBiz.resolveArea(shopInfo.getAreaId());
+        if (area != null) {
+            vo.setProvinceId(area.getProvinceId());
+            vo.setCityId(area.getCityId());
+            vo.setProvinceName(area.getProvinceName());
+            vo.setCityName(area.getCityName());
+            vo.setAreaName(area.getName());
+        }
+        vo.setLongitude(shopInfo.getLongitude());
+        vo.setLatitude(shopInfo.getLatitude());
+        vo.setAddress(shopInfo.getAddress());
+        vo.setLegalPersonName(shopInfo.getLegalPersonName());
+        vo.setLegalPersonPhone(shopInfo.getLegalPersonPhone());
+        vo.setLegalPersonCard(shopInfo.getLegalPersonCard());
+        vo.setAuditStatus(shopInfo.getAuditStatus());
+        vo.setStatus(shopInfo.getStatus());
+        vo.setAuditTime(shopInfo.getAuditTime());
+        vo.setAuditRemark(shopInfo.getAuditRemark());
+        vo.setOpenid(shopInfo.getOpenid());
+        vo.setPayStatus(shopInfo.getPayStatus());
+        vo.setScore(shopInfo.getScore());
+        vo.setCreateTime(shopInfo.getCreateTime());
+
+        // 鎷兼帴鍥剧墖鍓嶇紑
+        String imgPrefix = "";
+        try {
+            imgPrefix = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.RESOURCE_PATH).getCode()
+                    + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.SHOP_FILES).getCode();
+        } catch (Exception e) {
+            // 鏈厤缃椂蹇界暐
+        }
+        vo.setImgPrefix(imgPrefix);
+
+        // 鍗曞浘瀛楁杩斿洖鍗婅矾寰�
+        vo.setIdcardImg(shopInfo.getIdcardImg());
+        vo.setIdcardImgBack(shopInfo.getIdcardImgBack());
+        vo.setBusinessImg(shopInfo.getBusinessImg());
+
+        // 鏌ヨ闄勪欢
+        QueryWrapper<Multifile> fileQw = new QueryWrapper<>();
+        fileQw.lambda()
+                .eq(Multifile::getObjId, shopInfo.getId())
+                .eq(Multifile::getIsdeleted, Constants.ZERO)
+                .in(Multifile::getObjType,
+                        Constants.FileType.STORE_FRONT.getKey(),
+                        Constants.FileType.STORE_INTERIOR.getKey(),
+                        Constants.FileType.OTHER_MATERIAL.getKey(),
+                        Constants.FileType.LABOR_CONTRACT.getKey(),
+                        Constants.FileType.SOCIAL_SECURITY.getKey())
+                .orderByAsc(Multifile::getObjType, Multifile::getSortnum);
+        List<Multifile> files = multifileMapper.selectList(fileQw);
+
+        // 鎸� objType 鍒嗙粍锛岃繑鍥炲崐璺緞
+        Map<Integer, List<String>> fileMap = new HashMap<>();
+        for (Multifile f : files) {
+            fileMap.computeIfAbsent(f.getObjType(), k -> new ArrayList<>()).add(f.getFileurl());
+        }
+
+        vo.setStoreFrontImgs(fileMap.getOrDefault(Constants.FileType.STORE_FRONT.getKey(), new ArrayList<>()));
+        vo.setStoreInteriorImgs(fileMap.getOrDefault(Constants.FileType.STORE_INTERIOR.getKey(), new ArrayList<>()));
+        vo.setOtherMaterialImgs(fileMap.getOrDefault(Constants.FileType.OTHER_MATERIAL.getKey(), new ArrayList<>()));
+        vo.setLaborContractImgs(fileMap.getOrDefault(Constants.FileType.LABOR_CONTRACT.getKey(), new ArrayList<>()));
+        vo.setSocialSecurityImgs(fileMap.getOrDefault(Constants.FileType.SOCIAL_SECURITY.getKey(), new ArrayList<>()));
+
+        // 鏌ヨ缁戝畾寮�鎴蜂細鍛樺ご鍍忥紙payMemberOpenId 鍏宠仈 member.openid锛�
+        if (StringUtils.isNotBlank(shopInfo.getPayMemberOpenId())) {
+            QueryWrapper<Member> memberQw = new QueryWrapper<>();
+            memberQw.lambda().eq(Member::getOpenid, shopInfo.getPayMemberOpenId()).last("limit 1");
+            Member payMember = memberMapper.selectOne(memberQw);
+            if (payMember != null) {
+                vo.setPayMemberCoverImage(payMember.getCoverImage());
+            }
+        }
+
+        return vo;
+    }
+
 }
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
index b7d603d..68070ca 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
@@ -1,59 +1,35 @@
 package com.doumee.service.business.impl;
 
-import com.alibaba.fastjson.JSONObject;
-import com.doumee.config.wx.SendWxMessage;
-import com.doumee.config.wx.WXPayUtility;
-import com.doumee.config.wx.WxMiniConfig;
+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.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.MemberRevenueMapper;
 import com.doumee.dao.business.WithdrawalOrdersMapper;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.MemberRevenue;
 import com.doumee.dao.business.model.WithdrawalOrders;
-import com.doumee.dao.dto.WithdrawalDTO;
 import com.doumee.service.business.WithdrawalOrdersService;
-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 org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
 
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
-import java.util.UUID;
 
 /**
  * 鎻愮幇鐢宠璁板綍Service瀹炵幇
- * @author 姹熻箘韫�
- * @date 2025/07/09 12:00
+ * @author rk
+ * @date 2026/04/10
  */
 @Service
 public class WithdrawalOrdersServiceImpl implements WithdrawalOrdersService {
 
     @Autowired
     private WithdrawalOrdersMapper withdrawalOrdersMapper;
-
-    @Autowired
-    private MemberMapper memberMapper;
-
-    @Autowired
-    private MemberRevenueMapper memberRevenueMapper;
-
-    @Autowired
-    private SendWxMessage sendWxMessage;
 
     @Override
     public Integer create(WithdrawalOrders withdrawalOrders) {
@@ -63,7 +39,9 @@
 
     @Override
     public void deleteById(Integer id) {
-        withdrawalOrdersMapper.deleteById(id);
+        withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda()
+                .set(WithdrawalOrders::getDeleted, Constants.ONE)
+                .eq(WithdrawalOrders::getId, id));
     }
 
     @Override
@@ -74,7 +52,7 @@
 
     @Override
     public void deleteByIdInBatch(List<Integer> ids) {
-        if (CollectionUtils.isEmpty(ids)) {
+        if (ids == null || ids.isEmpty()) {
             return;
         }
         withdrawalOrdersMapper.deleteBatchIds(ids);
@@ -86,18 +64,22 @@
     }
 
     @Override
-    public void updateByIdInBatch(List<WithdrawalOrders> withdrawalOrderss) {
-        if (CollectionUtils.isEmpty(withdrawalOrderss)) {
+    public void updateByIdInBatch(List<WithdrawalOrders> withdrawalOrdersList) {
+        if (withdrawalOrdersList == null || withdrawalOrdersList.isEmpty()) {
             return;
         }
-        for (WithdrawalOrders withdrawalOrders: withdrawalOrderss) {
+        for (WithdrawalOrders withdrawalOrders : withdrawalOrdersList) {
             this.updateById(withdrawalOrders);
         }
     }
 
     @Override
     public WithdrawalOrders findById(Integer id) {
-        return withdrawalOrdersMapper.selectById(id);
+        WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectById(id);
+        if (Objects.isNull(withdrawalOrders)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        return withdrawalOrders;
     }
 
     @Override
@@ -111,55 +93,21 @@
         QueryWrapper<WithdrawalOrders> wrapper = new QueryWrapper<>(withdrawalOrders);
         return withdrawalOrdersMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<WithdrawalOrders> findPage(PageWrap<WithdrawalOrders> pageWrap) {
         IPage<WithdrawalOrders> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<WithdrawalOrders> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getDeleted() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getDeleted, pageWrap.getModel().getDeleted());
-        }
-        if (pageWrap.getModel().getCreateUser() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getCreateUser, pageWrap.getModel().getCreateUser());
-        }
-        if (pageWrap.getModel().getCreateTime() != null) {
-            queryWrapper.lambda().ge(WithdrawalOrders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()));
-            queryWrapper.lambda().le(WithdrawalOrders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()));
-        }
-        if (pageWrap.getModel().getUpdateUser() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getUpdateUser, pageWrap.getModel().getUpdateUser());
-        }
-        if (pageWrap.getModel().getUpdateTime() != null) {
-            queryWrapper.lambda().ge(WithdrawalOrders::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()));
-            queryWrapper.lambda().le(WithdrawalOrders::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()));
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getMemberId() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getMemberId, pageWrap.getModel().getMemberId());
-        }
-        if (pageWrap.getModel().getAmount() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getAmount, pageWrap.getModel().getAmount());
-        }
-        if (pageWrap.getModel().getWxExternalNo() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getWxExternalNo, pageWrap.getModel().getWxExternalNo());
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getStatus, pageWrap.getModel().getStatus());
-        }
-        if (pageWrap.getModel().getDoneTime() != null) {
-            queryWrapper.lambda().ge(WithdrawalOrders::getDoneTime, Utils.Date.getStart(pageWrap.getModel().getDoneTime()));
-            queryWrapper.lambda().le(WithdrawalOrders::getDoneTime, Utils.Date.getEnd(pageWrap.getModel().getDoneTime()));
-        }
-        if (pageWrap.getModel().getDoneInfo() != null) {
-            queryWrapper.lambda().eq(WithdrawalOrders::getDoneInfo, pageWrap.getModel().getDoneInfo());
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+        pageWrap.getModel().setDeleted(Constants.ZERO);
+        queryWrapper.lambda().eq(WithdrawalOrders::getDeleted, pageWrap.getModel().getDeleted());
+        queryWrapper.lambda().like(StringUtils.isNotBlank(pageWrap.getModel().getOutBillNo()), WithdrawalOrders::getOutBillNo, pageWrap.getModel().getOutBillNo());
+        queryWrapper.lambda().eq(pageWrap.getModel().getMemberId() != null, WithdrawalOrders::getMemberId, pageWrap.getModel().getMemberId());
+        queryWrapper.lambda().eq(pageWrap.getModel().getStatus() != null, WithdrawalOrders::getStatus, pageWrap.getModel().getStatus());
+        queryWrapper.lambda().eq(pageWrap.getModel().getType() != null, WithdrawalOrders::getType, pageWrap.getModel().getType());
+        queryWrapper.lambda().ge(pageWrap.getModel().getCreateStartTime() != null, WithdrawalOrders::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateStartTime()));
+        queryWrapper.lambda().le(pageWrap.getModel().getCreateEndTime() != null, WithdrawalOrders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
+        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());
             } else {
@@ -174,70 +122,5 @@
         QueryWrapper<WithdrawalOrders> wrapper = new QueryWrapper<>(withdrawalOrders);
         return withdrawalOrdersMapper.selectCount(wrapper);
     }
-
-
-    /************************************绉诲姩绔帴鍙�*******************************************/
-
-
-
-
-    @Override
-    public void transferSuccess(String outBillNo,Boolean isSuccess){
-        WithdrawalOrders withdrawalOrders = withdrawalOrdersMapper.selectOne(new QueryWrapper<WithdrawalOrders>().lambda()
-                .eq(WithdrawalOrders::getOutBillNo,outBillNo).last("limit 1"));
-        Member member = memberMapper.selectById(withdrawalOrders.getMemberId());
-        if(Objects.isNull(member)){
-            return;
-        }
-        if(Objects.nonNull(withdrawalOrders)){
-            //杞处鎴愬姛
-            if(isSuccess){
-                withdrawalOrdersMapper.update(new UpdateWrapper<WithdrawalOrders>().lambda()
-                        .set(WithdrawalOrders::getStatus,Constants.ONE)
-                        .set(WithdrawalOrders::getUpdateTime, DateUtil.getCurrDateTime())
-                        .eq(WithdrawalOrders::getOutBillNo,outBillNo)
-                );
-                //淇敼娴佹按璁板綍鐘舵��
-                memberRevenueMapper.update(new UpdateWrapper<MemberRevenue>().lambda()
-                        .set(MemberRevenue::getStatus,Constants.ZERO)
-                        .set(MemberRevenue::getUpdateTime, DateUtil.getCurrDateTime())
-                        .eq(MemberRevenue::getObjId,withdrawalOrders.getId())
-                        .eq(MemberRevenue::getObjType,Constants.ONE)
-                );
-                withdrawalOrders.setUpdateTime(new Date());
-                sendWxMessage.withdrawalMessage(member.getOpenid(),withdrawalOrders);
-            }else {
-                //鏇存柊鐢ㄦ埛浣欓
-                memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" AMOUNT = AMOUNT +  " + withdrawalOrders.getAmount() ).eq(Member::getId,withdrawalOrders.getMemberId()));
-                //淇敼娴佹按璁板綍鐘舵��
-                memberRevenueMapper.update(new UpdateWrapper<MemberRevenue>().lambda()
-                        .set(MemberRevenue::getStatus,Constants.ONE)
-                        .set(MemberRevenue::getUpdateTime, DateUtil.getCurrDateTime())
-                        .eq(MemberRevenue::getObjId,withdrawalOrders.getId())
-                        .eq(MemberRevenue::getObjType,Constants.ONE)
-                );
-                //瀛樺偍娴佹按璁板綍
-                MemberRevenue memberRevenue = new MemberRevenue();
-                memberRevenue.setCreateTime(new Date());
-                memberRevenue.setTransactionNo(withdrawalOrders.getOutBillNo());
-                memberRevenue.setDeleted(Constants.ZERO);
-                memberRevenue.setMemberId(withdrawalOrders.getMemberId());
-                memberRevenue.setType(Constants.FOUR);
-                memberRevenue.setOptType(Constants.ONE);
-                memberRevenue.setBeforeAmount(member.getAmount());
-                memberRevenue.setAmount(withdrawalOrders.getAmount());
-                memberRevenue.setAfterAmount(member.getAmount() + withdrawalOrders.getAmount());
-                memberRevenue.setObjId(withdrawalOrders.getId());
-                memberRevenue.setRemark(Constants.RevenueType.getInfo(memberRevenue.getType()));
-                memberRevenue.setObjType(Constants.ONE);
-                memberRevenue.setDeleted(Constants.ZERO);
-                memberRevenue.setStatus(Constants.ZERO);
-                memberRevenueMapper.insert(memberRevenue);
-            }
-        }
-
-    }
-
-
 
 }
diff --git a/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java b/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java
index 793b66f..e5d274d 100644
--- a/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java
+++ b/server/services/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -2,7 +2,6 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
-import com.doumee.dao.dto.PlatformConfigDTO;
 import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.dao.system.vo.SystemDictDataListVO;
@@ -99,9 +98,5 @@
      * @return long
      */
     long count(SystemDictData systemDictData);
-
-    PlatformConfigDTO getPlatformConfigDTO();
-
-    void updPlatformConfig(PlatformConfigDTO platformConfigDTO);
 
 }
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index d6ea68a..3480531 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -1,13 +1,9 @@
 package com.doumee.service.system.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.doumee.core.constants.Constants;
 import com.doumee.core.exception.BusinessException;
-import com.doumee.dao.dto.PlatformConfigDTO;
 import com.doumee.dao.system.model.SystemDict;
-import com.doumee.dao.system.model.SystemMenu;
 import com.doumee.service.system.SystemDictService;
-import com.github.pagehelper.Constant;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.doumee.core.model.PageData;
@@ -121,7 +117,7 @@
         queryDictDataDto.setDeleted(Boolean.FALSE);
         return this.findList(queryDictDataDto);
     }
-  
+
     @Override
     public PageData<SystemDictDataListVO> findPage(PageWrap<QuerySystemDictDataDTO> pageWrap) {
         PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
@@ -133,84 +129,5 @@
         Wrapper<SystemDictData> wrapper = new QueryWrapper<>(systemDictData);
         return systemDictDataMapper.selectCount(wrapper);
     }
-
-
-
-    @Override
-    public PlatformConfigDTO getPlatformConfigDTO(){
-        PlatformConfigDTO platformConfigDTO = new PlatformConfigDTO();
-        platformConfigDTO.setAutoConfirm("0");
-        platformConfigDTO.setReceiveCancelTime("0");
-        platformConfigDTO.setReceiveCancelTimes("0");
-        platformConfigDTO.setReleaseCancelTimes("0");
-        platformConfigDTO.setReleaseCancelTime("0");
-        platformConfigDTO.setAutoDispatch("0");
-        platformConfigDTO.setAutoDispatchDistance("0");
-
-        List<SystemDictData> systemDictDataList = systemDictDataMapper.selectList(new QueryWrapper<SystemDictData>()
-                .lambda().eq(SystemDictData::getDictId,100)
-                .in(SystemDictData::getLabel, Constants.AUTO_DISPATCH
-                ,Constants.AUTO_CONFIRM,Constants.AUTO_DISPATCH_DISTANCE,Constants.RELEASE_CANCEL_TIME
-                ,Constants.RELEASE_CANCEL_TIMES,Constants.RECEIVE_CANCEL_TIMES,Constants.RECEIVE_CANCEL_TIME)
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)){
-            for (SystemDictData systemDictData:systemDictDataList) {
-                if(systemDictData.getLabel().equals(Constants.AUTO_DISPATCH)){
-                    platformConfigDTO.setAutoDispatch(systemDictData.getCode());
-                }else if(systemDictData.getLabel().equals(Constants.AUTO_CONFIRM)){
-                    platformConfigDTO.setAutoConfirm(systemDictData.getCode());
-                }else if(systemDictData.getLabel().equals(Constants.AUTO_DISPATCH_DISTANCE)){
-                    platformConfigDTO.setAutoDispatchDistance(systemDictData.getCode());
-                }else if(systemDictData.getLabel().equals(Constants.RELEASE_CANCEL_TIME)){
-                    platformConfigDTO.setReleaseCancelTime(systemDictData.getCode());
-                }else if(systemDictData.getLabel().equals(Constants.RELEASE_CANCEL_TIMES)){
-                    platformConfigDTO.setReleaseCancelTimes(systemDictData.getCode());
-                }else if(systemDictData.getLabel().equals(Constants.RECEIVE_CANCEL_TIMES)){
-                    platformConfigDTO.setReceiveCancelTimes(systemDictData.getCode());
-                }else if(systemDictData.getLabel().equals(Constants.RECEIVE_CANCEL_TIME)){
-                    platformConfigDTO.setReceiveCancelTime(systemDictData.getCode());
-                }
-            }
-        }
-        return platformConfigDTO;
-    }
-
-
-
-    @Override
-    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
-    public void updPlatformConfig(PlatformConfigDTO platformConfigDTO){
-        List<SystemDictData> systemDictDataList = systemDictDataMapper.selectList(new QueryWrapper<SystemDictData>()
-                .lambda().eq(SystemDictData::getDictId,100)
-                .in(SystemDictData::getLabel, Constants.AUTO_DISPATCH
-                        ,Constants.AUTO_CONFIRM,Constants.AUTO_DISPATCH_DISTANCE,Constants.RELEASE_CANCEL_TIME
-                        ,Constants.RELEASE_CANCEL_TIMES,Constants.RECEIVE_CANCEL_TIMES,Constants.RECEIVE_CANCEL_TIME)
-        );
-        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)){
-            for (SystemDictData systemDictData:systemDictDataList) {
-                if(systemDictData.getLabel().equals(Constants.AUTO_DISPATCH)){
-                    systemDictData.setCode(platformConfigDTO.getAutoDispatch());
-                }else if(systemDictData.getLabel().equals(Constants.AUTO_CONFIRM)){
-                    systemDictData.setCode(platformConfigDTO.getAutoConfirm());
-                }else if(systemDictData.getLabel().equals(Constants.AUTO_DISPATCH_DISTANCE)){
-                    systemDictData.setCode(platformConfigDTO.getAutoDispatchDistance());
-                }else if(systemDictData.getLabel().equals(Constants.RELEASE_CANCEL_TIME)){
-                    systemDictData.setCode(platformConfigDTO.getReleaseCancelTime());
-                }else if(systemDictData.getLabel().equals(Constants.RELEASE_CANCEL_TIMES)){
-                    systemDictData.setCode(platformConfigDTO.getReleaseCancelTimes());
-                }else if(systemDictData.getLabel().equals(Constants.RECEIVE_CANCEL_TIMES)){
-                    systemDictData.setCode(platformConfigDTO.getReceiveCancelTimes());
-                }else if(systemDictData.getLabel().equals(Constants.RECEIVE_CANCEL_TIME)){
-                    systemDictData.setCode(platformConfigDTO.getReceiveCancelTime());
-                }
-                systemDictDataMapper.update(new UpdateWrapper<SystemDictData>().lambda()
-                        .set(SystemDictData::getCode,systemDictData.getCode())
-                        .eq(SystemDictData::getId,systemDictData.getId()));
-            }
-        }
-    }
-
-
-
 
 }
diff --git a/server/web/src/main/java/com/doumee/api/web/AppVersionApi.java b/server/web/src/main/java/com/doumee/api/web/AppVersionApi.java
new file mode 100644
index 0000000..8c8c352
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/AppVersionApi.java
@@ -0,0 +1,33 @@
+package com.doumee.api.web;
+
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.AppVersion;
+import com.doumee.service.business.AppVersionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * APP鐗堟湰锛堝皬绋嬪簭绔級
+ * @author rk
+ * @date 2026/04/10
+ */
+@Api(tags = "APP鐗堟湰")
+@RestController
+@RequestMapping("/web/appVersion")
+public class AppVersionApi extends ApiController {
+
+    @Autowired
+    private AppVersionService appVersionService;
+
+    @ApiOperation("鑾峰彇鏈�鏂扮増鏈�")
+    @GetMapping("/latest")
+    public ApiResponse<AppVersion> latest(
+            @ApiParam(value = "骞冲彴绫诲瀷 0=Android 1=IOS", required = true, example = "0")
+            @RequestParam Integer type) {
+        return ApiResponse.success(appVersionService.getLatestVersion(type));
+    }
+
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/OrdersApi.java b/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
deleted file mode 100644
index 4262967..0000000
--- a/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package com.doumee.api.web;
-
-import com.azure.core.annotation.Post;
-import com.doumee.core.annotation.LoginRequired;
-import com.doumee.core.annotation.trace.Trace;
-import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.IdentityInfo;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Orders;
-import com.doumee.dao.dto.*;
-import com.doumee.dao.vo.OrderReleaseVO;
-import com.doumee.service.business.IdentityInfoService;
-import com.doumee.service.business.MemberService;
-import com.doumee.service.business.OrdersService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * Created by IntelliJ IDEA.
- *
- * @Author : Rk
- * @create 2025/7/10 9:29
- */
-@Api(tags = "璁㈠崟涓氬姟")
-@Trace(exclude = true)
-@RestController
-@RequestMapping("/web/orders")
-@Slf4j
-public class OrdersApi extends  ApiController{
-
-
-    @Autowired
-    private MemberService memberService;
-
-    @Autowired
-    private OrdersService ordersService;
-
-    @LoginRequired
-    @ApiOperation(value = "鍙戝竷璁㈠崟 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/release")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse<OrderReleaseVO> release(@RequestBody Orders orders) {
-        orders.setMember(this.getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛",ordersService.create(orders));
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "淇敼璁㈠崟 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/updateOrder")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse updateOrder(@RequestBody Orders orders) {
-        orders.setMember(this.getMemberResponse());
-        ordersService.update(orders);
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "鎺ュ崟鏂圭‘璁よ鍗曡垂鐢� - 鎺ュ崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/confirmFee")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse confirmFee(@RequestBody ConfirmFeeOrderDTO orders) {
-        orders.setMember(this.getMemberResponse());
-        ordersService.confirmFee(orders);
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-
-//    @LoginRequired
-//    @ApiOperation(value = "淇敼璁㈠崟鏃ユ湡 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-//    @PostMapping("/updOrderData")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-//    })
-//    public ApiResponse updOrderData(@RequestBody UpdOrderDataDTO updOrderDataDTO) {
-//        updOrderDataDTO.setMember(this.getMemberResponse());
-//        ordersService.updOrderData(updOrderDataDTO);
-//        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-//    }
-
-    @LoginRequired
-    @ApiOperation(value = "鎵嬪姩鎺ュ崟 - 鎺ュ崟鏂�", notes = "灏忕▼搴忕")
-    @GetMapping("/accept")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse accept(@RequestParam Integer orderId) {
-        ordersService.accept(orderId,this.getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "寮�濮嬩綔涓� - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @GetMapping("/begin")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse begin(@RequestParam Integer orderId) {
-        ordersService.begin(orderId,this.getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "鍙栨秷璁㈠崟 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @GetMapping("/cancelOrder")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse cancelOrder(@RequestParam Integer orderId) {
-        ordersService.cancelOrder(orderId,this.getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "鍙栨秷鍓嶆彁绀鸿 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @GetMapping("/cancelTips")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse cancelTips(@RequestParam Integer orderId) {
-        ordersService.cancelTips(orderId,this.getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-
-
-    @LoginRequired
-    @ApiOperation(value = "纭璁㈠崟淇敼 - 鎺ュ崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/confirmUpd")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse confirmUpd(@RequestBody ConfirmUpdOrderDTO confirmUpdOrderDTO) {
-        confirmUpdOrderDTO.setMember(this.getMemberResponse());
-        ordersService.confirmUpd(confirmUpdOrderDTO);
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "瀹屾垚璁㈠崟 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/doneOrder")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse<OrderReleaseVO> doneOrder(@RequestBody DoneOrderDTO doneOrderDTO) {
-        doneOrderDTO.setMember(getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛",ordersService.doneOrder(doneOrderDTO));
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "璁㈠崟閲嶆柊鏀粯 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/reusePay")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse<OrderReleaseVO> reusePay(@RequestBody ReusePayDTO reusePayDTO) {
-        reusePayDTO.setMember(getMemberResponse());
-        return  ApiResponse.success("鎿嶄綔鎴愬姛",ordersService.reusePay(reusePayDTO));
-    }
-
-
-    @LoginRequired
-    @ApiOperation(value = "璁㈠崟璇勪环 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
-    @PostMapping("/comment")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse comment(@RequestBody CommentDTO commentDTO) {
-        commentDTO.setMember(this.getMemberResponse());
-        ordersService.comment(commentDTO);
-        return  ApiResponse.success("鎿嶄綔鎴愬姛");
-    }
-
-
-
-    @LoginRequired
-    @ApiOperation("鍒嗛〉鏌ヨ")
-    @PostMapping("/page")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse<PageData<Orders>> findPage (@RequestBody PageWrap<Orders> pageWrap) {
-        pageWrap.getModel().setMember(this.getMemberResponse());
-        return ApiResponse.success(ordersService.findPageForMini(pageWrap));
-    }
-
-    @LoginRequired
-    @ApiOperation(value = "璁㈠崟璇︽儏", notes = "灏忕▼搴忕")
-    @GetMapping("/getDetail")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse<Orders> getDetail(@RequestParam Integer orderId) {
-        return  ApiResponse.success("鎿嶄綔鎴愬姛",ordersService.getDetail(orderId,this.getMemberResponse()));
-    }
-
-    @LoginRequired
-    @ApiOperation("鑾峰彇棰勮閲戦锛堝垎锛�")
-    @PostMapping("/getTotal")
-    @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
-    })
-    public ApiResponse<Long> getTotal(@RequestBody Orders orders) {
-        return ApiResponse.success(ordersService.getTotal(orders));
-    }
-
-
-}
diff --git a/server/web/src/main/java/com/doumee/api/web/ShopInfoApi.java b/server/web/src/main/java/com/doumee/api/web/ShopInfoApi.java
new file mode 100644
index 0000000..d128ca8
--- /dev/null
+++ b/server/web/src/main/java/com/doumee/api/web/ShopInfoApi.java
@@ -0,0 +1,44 @@
+package com.doumee.api.web;
+
+import com.doumee.core.annotation.LoginRequired;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.dto.ShopApplyDTO;
+import com.doumee.dao.vo.ShopDetailVO;
+import com.doumee.service.business.ShopInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 闂ㄥ簵鍏ラ┗锛堝皬绋嬪簭绔級
+ * @author rk
+ * @date 2026/04/10
+ */
+@Api(tags = "闂ㄥ簵鍏ラ┗")
+@RestController
+@RequestMapping("/web/shopInfo")
+public class ShopInfoApi extends ApiController {
+
+    @Autowired
+    private ShopInfoService shopInfoService;
+
+    @LoginRequired
+    @ApiOperation("闂ㄥ簵鍏ラ┗鐢宠/淇敼")
+    @PostMapping("/apply")
+    public ApiResponse apply(@RequestBody @Validated ShopApplyDTO request) {
+        Member member = this.getMemberResponse();
+        shopInfoService.applyShop(request, member);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
+
+    @LoginRequired
+    @ApiOperation("鏌ヨ鎴戠殑闂ㄥ簵淇℃伅")
+    @GetMapping("/myShop")
+    public ApiResponse<ShopDetailVO> myShop() {
+        return ApiResponse.success(shopInfoService.getMyShop(this.getMemberId()));
+    }
+
+}
diff --git a/server/web/src/main/java/com/doumee/api/web/UserApi.java b/server/web/src/main/java/com/doumee/api/web/UserApi.java
index c02650b..294fd91 100644
--- a/server/web/src/main/java/com/doumee/api/web/UserApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/UserApi.java
@@ -13,9 +13,7 @@
 import com.doumee.dao.vo.AccountResponse;
 import com.doumee.dao.vo.UserCenterVO;
 import com.doumee.service.business.IdentityInfoService;
-import com.doumee.service.business.MemberRevenueService;
 import com.doumee.service.business.MemberService;
-import com.doumee.service.business.WithdrawalOrdersService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;

--
Gitblit v1.9.3