diff --git a/app/api/controller/order/OrderController.php b/app/api/controller/order/OrderController.php
index 431c3568f..fc7a1bf70 100644
--- a/app/api/controller/order/OrderController.php
+++ b/app/api/controller/order/OrderController.php
@@ -7,8 +7,10 @@ use app\api\controller\BaseApiController;
 use app\api\lists\order\OrderList;
 use app\api\validate\OrderValidate;
 use app\common\enum\PayEnum;
+use app\common\enum\YesNoEnum;
 use app\common\logic\PaymentLogic;
 use app\common\logic\PayNotifyLogic;
+use app\common\model\dict\DictData;
 use app\common\model\store_order\StoreOrder;
 use app\common\model\system_store\SystemStoreStaff;
 use app\common\model\user\UserAddress;
@@ -18,6 +20,7 @@ use hg\apidoc\annotation as ApiDoc;
 #[ApiDoc\title('订单')]
 class OrderController extends BaseApiController
 {
+    public $notNeedLogin = ['refund_reason'];
 
     /**
      * 订单列表
@@ -350,6 +353,15 @@ class OrderController extends BaseApiController
         return $this->fail('支付失败');
     }
 
+
+    #[
+        ApiDoc\Title('订单详情'),
+        ApiDoc\url('/api/order/order/detail'),
+        ApiDoc\Method('GET'),
+        ApiDoc\Param(name: "order_id", type: "int", require: true, desc: "订单id"),
+        ApiDoc\NotHeaders(),
+        ApiDoc\ResponseSuccess("data", type: "array"),
+    ]
     public function detail()
     {
         $order_id = (int)$this->request->get('order_id');
@@ -496,6 +508,46 @@ class OrderController extends BaseApiController
         OrderLogic::dealRefund($uid,$params);
         return $this->success('申请成功');
     }
+
+    #[
+        ApiDoc\Title('订单退款原因'),
+        ApiDoc\url('/api/order/order/refund_reason'),
+        ApiDoc\Method('GET'),
+        ApiDoc\Param(),
+        ApiDoc\NotHeaders(),
+        ApiDoc\ResponseSuccess("data", type: "array"),
+    ]
+    public function refund_reason()
+    {
+       return DictData::where('type_value','reason')->where('status',YesNoEnum::YES)
+            ->select()->toArray();
+
+    }
+
+
+    #[
+        ApiDoc\Title('取消售后'),
+        ApiDoc\url('/api/order/order/cancel_sale'),
+        ApiDoc\Method('GET'),
+        ApiDoc\Param(name: "order_id", type: "int", require: true, desc: "订单id"),
+        ApiDoc\NotHeaders(),
+        ApiDoc\ResponseSuccess("data", type: "array"),
+    ]
+    public function cancel_sale()
+    {
+        $order_id = (int)$this->request->get('order_id');
+        $where = [
+            'id' => $order_id,
+            'uid' => $this->userId,
+        ];
+        $order = OrderLogic::cancelSell($where);
+        if ($order) {
+            return $this->success();
+        } else {
+            return $this->fail('取消失败');
+        }
+
+    }
     
     
 
diff --git a/app/api/logic/order/OrderLogic.php b/app/api/logic/order/OrderLogic.php
index 42e288ea3..259efe60a 100644
--- a/app/api/logic/order/OrderLogic.php
+++ b/app/api/logic/order/OrderLogic.php
@@ -445,6 +445,19 @@ class OrderLogic extends BaseLogic
         return $find;
     }
 
+    //取消售后
+    public static function cancelSell($where)
+    {
+       return StoreOrder::where($where)->update(
+            [
+                'refund_status'=>OrderEnum::CANCEL_SALE,
+                'status'=>OrderEnum::CANCEL_ORDER,
+            ]
+        );
+
+
+    }
+
 
     //核销
 
diff --git a/app/common/enum/OrderEnum.php b/app/common/enum/OrderEnum.php
index 1234e32e3..747e3ae55 100644
--- a/app/common/enum/OrderEnum.php
+++ b/app/common/enum/OrderEnum.php
@@ -95,9 +95,19 @@ class OrderEnum
     const SUPPLIER = 3;
     const SYSTEM = 4;
 
+
+
+    /**
+     * 订单状态
+     * @CANCEL_ORDER 取消售后
+     */
+    const CANCEL_ORDER = 5;
+
+    //退款状态
     const REFUND_STATUS_NO = 0;
     const REFUND_STATUS_YES = 1;
     const REFUND_STATUS_FINISH = 2;
+    const CANCEL_SALE = 3;
 
     /**
      * @notes 获取支付类型