售后 after

模块 after:共 8 个接口 —— 3 个被前端调用(在用),5 个未被调用(含 0 个开放/回调/内部)。用下方筛选可只看“在用/未使用”,或在右栏目录按名称过滤。

AfterSalesController 3/8 在用

POST /afterSales/approve 在用管理后台 #
售后管理 - 审批 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#approve
所属模块售后 after
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表after_salesorder_after_sales_operationlog
ControllerAfterSalesController#approve
转换BeanUtils.map → AfterSales ⇒ 表 after_sales
ServiceAfterSalesService#get (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectById ⇒ 表 after_sales
ServiceAfterSalesService#update (AfterSalesServiceImpl)
MapperAfterSalesMapper#updateById ⇒ 表 after_sales
ServiceOrderAfterSalesOperationlogService#add (OrderAfterSalesOperationlogServiceImpl)
MapperOrderAfterSalesOperationlogMapper#insert ⇒ 表 order_after_sales_operationlog
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 2
ChaosTransactionTemplate.executeSessionUserService.getSessionId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/afterSales/approve
uathttps://dscp-uat.hn12301.net/manage-api/afterSales/approve
prohttps://dscp-uat.hn12301.net/manage-api/afterSales/approve (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body AfterSalesApproveRequest
字段类型必填取值/校验表 / 列说明
idLong必填after_sales.id订单ID
statusApproveStatus1待处理2已同意3已拒绝4已取消after_sales.status售后订单状态(after.ApproveStatus),1待处理, 2已同意,3已拒绝,4已取消
remarksStringafter_sales.remarks备注
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构

void —— 无返回数据

示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/approve
{
  "body": {
    "id": 1,
    "status": "1",
    "remarks": ""
  }
}
响应示例
(void,无响应体)
处理逻辑
操作日志after / 售后审批
逻辑摘要调用 execute(newTransactionTemplate.execute);查询详情(afterSalesService.get);查询详情(sessionService.getSessionId);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 售后日志
  • 回滚事务
  • 处理异常
POST /afterSales/cancel 未使用小程序 #
售后管理 - 撤销退款 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#cancel
所属模块售后 after
暴露渠道小程序 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表after_salesorder_after_sales_operationlog
ControllerAfterSalesController#cancel
ServiceAfterSalesService#get (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectById ⇒ 表 after_sales
ServiceAfterSalesService#update (AfterSalesServiceImpl)
MapperAfterSalesMapper#updateById ⇒ 表 after_sales
ServiceOrderAfterSalesOperationlogService#add (OrderAfterSalesOperationlogServiceImpl)
MapperOrderAfterSalesOperationlogMapper#insert ⇒ 表 order_after_sales_operationlog
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 2
ChaosTransactionTemplate.executeSessionUserService.getSessionId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/mp-api/afterSales/cancel
uathttps://dscp-uat.hn12301.net/mp-api/afterSales/cancel
prohttps://dscp-uat.hn12301.net/mp-api/afterSales/cancel (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body IdRequest
字段类型必填取值/校验表 / 列说明
idLong必填after_sales.idid
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构

void —— 无返回数据

示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/cancel
{
  "body": {
    "id": 1
  }
}
响应示例
(void,无响应体)
处理逻辑
操作日志after / 售后撤销
逻辑摘要调用 execute(newTransactionTemplate.execute);查询详情(afterSalesService.get);更新(afterSalesService.update)
内联注释
  • 售后日志
  • 回滚事务
  • 处理异常
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

ANY /afterSales/exportAfterSales 未使用管理后台 #
售后管理 - 导出售后列表 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#exportAfterSales
所属模块售后 after
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法ANY
调用链路 & 涉及数据表
涉及数据表after_sales
ControllerAfterSalesController#exportAfterSales
转换BeanUtils.map → AfterSalesQuery
ServiceAfterSalesService#queryList (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectList ⇒ 表 after_sales

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/afterSales/exportAfterSales
uathttps://dscp-uat.hn12301.net/manage-api/afterSales/exportAfterSales
prohttps://dscp-uat.hn12301.net/manage-api/afterSales/exportAfterSales (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body HttpServletResponse

请求体类型:HttpServletResponse(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构

void —— 无返回数据

示例
请求示例 (自动生成,仅结构参考)
ANY /afterSales/exportAfterSales
响应示例
(void,无响应体)
处理逻辑
逻辑摘要列表查询(afterSalesService.queryList);调用 write(ExcelUtils.write);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 组装导出数据
  • 序号
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /afterSales/getAfterSales 未使用小程序 #
售后管理 - 售后详情 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#getAfterSales
所属模块售后 after
暴露渠道小程序 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表after_salesorder_after_sales_operationlog
ControllerAfterSalesController#getAfterSales
ServiceAfterSalesService#get (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectById ⇒ 表 after_sales
ServiceOrderAfterSalesOperationlogService#queryList (OrderAfterSalesOperationlogServiceImpl)
MapperOrderAfterSalesOperationlogMapper#selectList ⇒ 表 order_after_sales_operationlog

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/mp-api/afterSales/getAfterSales
uathttps://dscp-uat.hn12301.net/mp-api/afterSales/getAfterSales
prohttps://dscp-uat.hn12301.net/mp-api/afterSales/getAfterSales (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body IdRequest
字段类型必填取值/校验表 / 列说明
idLong必填after_sales.idid
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 AfterSalesResponse (object)
字段类型必填取值/校验表 / 列说明
idLongafter_sales.id售后ID,主键
orderIdLongafter_sales.order_id订单ID,关联订单表id
applyMoneyIntegerafter_sales.apply_money申请退款金额
refundMoneyIntegerafter_sales.refund_money实际退款金额
numIntegerafter_sales.num退货数量
refundTypeRefundType1退款2退款退货after_sales.refund_type售后类型(after.RefundType),1退款,2退款退货
logisticsLogisticsStatus1未发货2已发货after_sales.logistics物流状态(after.LogisticsStatus),1未发货,2已发货
statusApproveStatus1待处理2已同意3已拒绝4已取消after_sales.status售后订单状态(after.ApproveStatus),1待处理, 2已同意,3已拒绝
refundStatusRefundStatus1待退款2退款成功3退款失败after_sales.refund_status退款状态(afterSales.RefundStatus),1退款成功,2退款成功
refundDescStringafter_sales.refund_desc退款说明
refundPicStringafter_sales.refund_pic退款上传凭证图片
remarksStringafter_sales.remarks备注
applyTimeDateafter_sales.apply_time申请时间
afterSalesOperationlogList<OrderAfterSalesOperationlog>售后操作日志
afterSalesOperationlog[].idLongafter_sales.id
afterSalesOperationlog[].afterSalesIdLongorder_after_sales_operationlog.after_sales_id售后订单Id,order_after_sales表id
afterSalesOperationlog[].contentStringorder_after_sales_operationlog.content记录内容
afterSalesOperationlog[].createdByLongafter_sales.created_by创建人id
afterSalesOperationlog[].createdTimeDateafter_sales.created_time创建时间
afterSalesOperationlog[].updatedByStringafter_sales.updated_by更新人id
afterSalesOperationlog[].updatedTimeDateafter_sales.updated_time更新时间
createdByLongafter_sales.created_by创建人id
createdTimeDateafter_sales.created_time创建时间
updatedByLongafter_sales.updated_by更新人id
updatedTimeDateafter_sales.updated_time修改时间
示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/getAfterSales
{
  "body": {
    "id": 1
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "id": 1,
    "orderId": 1,
    "applyMoney": 0,
    "refundMoney": 0,
    "num": 0,
    "refundType": "1",
    "logistics": "1",
    "status": "1",
    "refundStatus": "1",
    "refundDesc": "",
    "refundPic": "https://example.com/x.png",
    "remarks": "",
    "applyTime": "2026-01-01 12:00:00",
    "afterSalesOperationlog": [
      {
        "id": 1,
        "afterSalesId": 1,
        "content": "",
        "createdBy": 0,
        "createdTime": "2026-01-01 12:00:00",
        "updatedBy": "2026-01-01 12:00:00",
        "updatedTime": "2026-01-01 12:00:00"
      }
    ],
    "createdBy": 0,
    "createdTime": "2026-01-01 12:00:00",
    "updatedBy": 0,
    "updatedTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
逻辑摘要查询详情(afterSalesService.get);列表查询(orderAfterSalesOperationlogService.queryList);入参与返回值经 BeanUtils 做对象/分页映射
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /afterSales/queryAfterSalesList 未使用小程序 #
售后管理 - 售后列表 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#queryAfterSalesList
所属模块售后 after
暴露渠道小程序 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表order_after_sales_operationlogafter_salesorderorder_goods
ControllerAfterSalesController#queryAfterSalesList
MapperOrderAfterSalesOperationlogService.getMapper#selectOne ⇒ 表 order_after_sales_operationlog
ServiceAfterSalesService#queryList (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectList ⇒ 表 after_sales
ServiceOrderService#get (OrderServiceImpl)
MapperOrderMapper#selectById ⇒ 表 order
ServiceOrderGoodsService#get (OrderGoodsServiceImpl)
MapperOrderGoodsMapper#selectById ⇒ 表 order_goods
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 2
SessionUserService.getSessionIdGoodsCache.get

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/mp-api/afterSales/queryAfterSalesList
uathttps://dscp-uat.hn12301.net/mp-api/afterSales/queryAfterSalesList
prohttps://dscp-uat.hn12301.net/mp-api/afterSales/queryAfterSalesList (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body

请求体类型:(未在仓库索引到该 DTO 源码,无法展开字段;可能位于依赖 jar 或为 Map/基础类型)

响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 List<AfterSalesListResponse> (list)
字段类型必填取值/校验表 / 列说明
[ ]array列表,元素结构见下
idLongorder_after_sales_operationlog.id售后ID,主键
orderIdLongafter_sales.order_id订单ID,关联订单表id
goodsNameStringorder_goods.goods_name商品名称
mainPicString商品主图
applyMoneyIntegerafter_sales.apply_money申请退款金额
refundMoneyIntegerafter_sales.refund_money实际退款金额
numIntegerafter_sales.num退货数量
refundTypeRefundType1退款2退款退货after_sales.refund_type售后类型(after.RefundType),1退款,2退款退货
statusApproveStatus1待处理2已同意3已拒绝4已取消after_sales.status售后订单状态(after.ApproveStatus),1待处理, 2已同意,3已拒绝
applyTimeDateafter_sales.apply_time申请时间
afterOperationlogString售后进度
示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/queryAfterSalesList
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": [
    {
      "id": 1,
      "orderId": 1,
      "goodsName": "",
      "mainPic": "https://example.com/x.png",
      "applyMoney": 0,
      "refundMoney": 0,
      "num": 0,
      "refundType": "1",
      "status": "1",
      "applyTime": "2026-01-01 12:00:00",
      "afterOperationlog": ""
    }
  ]
}
处理逻辑
逻辑摘要查询详情(sessionService.getSessionId);列表查询(afterSalesService.queryList);查询详情(orderService.get);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 查询订单信息
  • 商品名称
  • 商品主厨
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /afterSales/queryAfterSalesPage 在用管理后台 #
售后管理 - 售后列表分页查询 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#queryAfterSalesPage
所属模块售后 after
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表after_sales
ControllerAfterSalesController#queryAfterSalesPage
转换BeanUtils.map → AfterSalesQuery
ServiceAfterSalesService#queryPage (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectPage ⇒ 表 after_sales

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/afterSales/queryAfterSalesPage
uathttps://dscp-uat.hn12301.net/manage-api/afterSales/queryAfterSalesPage
prohttps://dscp-uat.hn12301.net/manage-api/afterSales/queryAfterSalesPage (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body AfterSalesPageRequest
字段类型必填取值/校验表 / 列说明
pageNumInteger页码(继承自框架分页基类 AbstractPageRequest)
pageSizeInteger每页条数(继承自框架分页基类 AbstractPageRequest)
idLongafter_sales.id售后ID,主键
orderIdLongafter_sales.order_id订单ID
refundStatusRefundStatus1待退款2退款成功3退款失败after_sales.refund_status退款状态(afterSales.RefundStatus),1待退款,2退款成功,3退款失败
statusApproveStatus1待处理2已同意3已拒绝4已取消after_sales.status售后订单状态(after.ApproveStatus),1待处理, 2已同意,3已拒绝, 4已取消
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 PageInfo<AfterSalesPageResponse> (page)
字段类型必填取值/校验表 / 列说明
list / recordsarray分页列表,元素结构见下
totallong总条数(PageInfo)
idLongafter_sales.id售后ID,主键
orderIdLongafter_sales.order_id订单ID,关联订单表id
applyMoneyIntegerafter_sales.apply_money申请退款金额
refundMoneyIntegerafter_sales.refund_money实际退款金额
numIntegerafter_sales.num退货数量
logisticsLogisticsStatus1未发货2已发货after_sales.logistics物流状态(after.LogisticsStatus),1未发货,2已发货
refundTypeRefundType1退款2退款退货after_sales.refund_type售后类型(after.RefundType),1退款,2退款退货
refundStatusRefundStatus1待退款2退款成功3退款失败after_sales.refund_status退款状态(afterSales.RefundStatus),1待退款,2退款成功,3退款失败
statusApproveStatus1待处理2已同意3已拒绝4已取消after_sales.status售后订单状态(after.ApproveStatus),1待处理, 2已同意,3已拒绝, 4已取消
refundDescStringafter_sales.refund_desc退款说明
remarksStringafter_sales.remarks备注
applyTimeDateafter_sales.apply_time申请时间
示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/queryAfterSalesPage
{
  "body": {
    "pageNum": 0,
    "pageSize": 0,
    "id": 1,
    "orderId": 1,
    "refundStatus": "1",
    "status": "1"
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "records": [
      {
        "id": 1,
        "orderId": 1,
        "applyMoney": 0,
        "refundMoney": 0,
        "num": 0,
        "logistics": "1",
        "refundType": "1",
        "refundStatus": "1",
        "status": "1",
        "refundDesc": "",
        "remarks": "",
        "applyTime": "2026-01-01 12:00:00"
      }
    ],
    "total": 0
  }
}
处理逻辑
逻辑摘要分页查询(afterSalesService.queryPage);入参与返回值经 BeanUtils 做对象/分页映射
POST /afterSales/refund 未使用小程序 #
售后管理 - 申请退款 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#refund
所属模块售后 after
暴露渠道小程序 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表after_salesorderorder_after_sales_operationlog
ControllerAfterSalesController#refund
转换BeanUtils.map → AfterSales ⇒ 表 after_sales
转换BeanUtils.map → AfterSalesResponse
ServiceOrderService#get (OrderServiceImpl)
MapperOrderMapper#selectById ⇒ 表 order
ServiceAfterSalesService#add (AfterSalesServiceImpl)
MapperAfterSalesMapper#insert ⇒ 表 after_sales
ServiceOrderAfterSalesOperationlogService#add (OrderAfterSalesOperationlogServiceImpl)
MapperOrderAfterSalesOperationlogMapper#insert ⇒ 表 order_after_sales_operationlog
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 2
ChaosTransactionTemplate.executeSessionMemberService.getSessionId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/mp-api/afterSales/refund
uathttps://dscp-uat.hn12301.net/mp-api/afterSales/refund
prohttps://dscp-uat.hn12301.net/mp-api/afterSales/refund (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body AfterSalesAddRequest
字段类型必填取值/校验表 / 列说明
orderIdLong必填after_sales.order_id订单ID
refundTypeRefundType1退款2退款退货after_sales.refund_type售后类型(after.RefundType),1退款,2退款退货
applyMoneyInteger必填after_sales.apply_money申请退款金额
numInteger必填after_sales.num退货数量
logisticsLogisticsStatus1未发货2已发货after_sales.logistics物流状态(after.LogisticsStatus),1未发货,2已发货
refundDescStringafter_sales.refund_desc退款说明
refundPicStringafter_sales.refund_pic退款上传凭证图片
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 AfterSalesResponse (object)
字段类型必填取值/校验表 / 列说明
idLongafter_sales.id售后ID,主键
orderIdLongafter_sales.order_id订单ID,关联订单表id
applyMoneyIntegerafter_sales.apply_money申请退款金额
refundMoneyIntegerafter_sales.refund_money实际退款金额
numIntegerafter_sales.num退货数量
refundTypeRefundType1退款2退款退货after_sales.refund_type售后类型(after.RefundType),1退款,2退款退货
logisticsLogisticsStatus1未发货2已发货after_sales.logistics物流状态(after.LogisticsStatus),1未发货,2已发货
statusApproveStatus1待处理2已同意3已拒绝4已取消after_sales.status售后订单状态(after.ApproveStatus),1待处理, 2已同意,3已拒绝
refundStatusRefundStatus1待退款2退款成功3退款失败after_sales.refund_status退款状态(afterSales.RefundStatus),1退款成功,2退款成功
refundDescStringafter_sales.refund_desc退款说明
refundPicStringafter_sales.refund_pic退款上传凭证图片
remarksStringafter_sales.remarks备注
applyTimeDateafter_sales.apply_time申请时间
afterSalesOperationlogList<OrderAfterSalesOperationlog>售后操作日志
afterSalesOperationlog[].idLongafter_sales.id
afterSalesOperationlog[].afterSalesIdLongorder_after_sales_operationlog.after_sales_id售后订单Id,order_after_sales表id
afterSalesOperationlog[].contentStringorder_after_sales_operationlog.content记录内容
afterSalesOperationlog[].createdByLongafter_sales.created_by创建人id
afterSalesOperationlog[].createdTimeDateafter_sales.created_time创建时间
afterSalesOperationlog[].updatedByStringafter_sales.updated_by更新人id
afterSalesOperationlog[].updatedTimeDateafter_sales.updated_time更新时间
createdByLongafter_sales.created_by创建人id
createdTimeDateafter_sales.created_time创建时间
updatedByLongafter_sales.updated_by更新人id
updatedTimeDateafter_sales.updated_time修改时间
示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/refund
{
  "body": {
    "orderId": 1,
    "refundType": "1",
    "applyMoney": 0,
    "num": 0,
    "logistics": "1",
    "refundDesc": "",
    "refundPic": "https://example.com/x.png"
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "id": 1,
    "orderId": 1,
    "applyMoney": 0,
    "refundMoney": 0,
    "num": 0,
    "refundType": "1",
    "logistics": "1",
    "status": "1",
    "refundStatus": "1",
    "refundDesc": "",
    "refundPic": "https://example.com/x.png",
    "remarks": "",
    "applyTime": "2026-01-01 12:00:00",
    "afterSalesOperationlog": [
      {
        "id": 1,
        "afterSalesId": 1,
        "content": "",
        "createdBy": 0,
        "createdTime": "2026-01-01 12:00:00",
        "updatedBy": "2026-01-01 12:00:00",
        "updatedTime": "2026-01-01 12:00:00"
      }
    ],
    "createdBy": 0,
    "createdTime": "2026-01-01 12:00:00",
    "updatedBy": 0,
    "updatedTime": "2026-01-01 12:00:00"
  }
}
处理逻辑
操作日志after / 售后退款
逻辑摘要查询详情(orderService.get);调用 date(DateUtil.date);调用 execute(newTransactionTemplate.execute);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • 支付状态错误
  • 订单状态错误
  • 保存售后申请
  • 售后日志
  • 回滚事务
  • 处理异常
前端调用方

源码扫描未发现 7 个前端对该接口的调用(可能为开放回调/内部/未上线/管理端动态调用)

POST /afterSales/zfbRefund 在用管理后台 #
支付宝退款 · AfterSalesController
基本信息
控制器com.jxxx.dscp.api.controller.after.AfterSalesController#zfbRefund
所属模块售后 after
暴露渠道管理后台 (@Route 注解;决定 URL 前缀与可访问端)
请求方法POST
调用链路 & 涉及数据表
涉及数据表after_salesorder_paymentorderorder_after_sales_operationlogorder_operatelogopenapi_channel_order
ControllerAfterSalesController#zfbRefund
转换BeanUtils.map → AfterSales ⇒ 表 after_sales
转换BeanUtils.map → OrderPayment ⇒ 表 order_payment
ServiceOrderService#get (OrderServiceImpl)
MapperOrderMapper#selectById ⇒ 表 order
ServiceAfterSalesService#get (AfterSalesServiceImpl)
MapperAfterSalesMapper#selectById ⇒ 表 after_sales
ServiceAfterSalesService#add (AfterSalesServiceImpl)
MapperAfterSalesMapper#insert ⇒ 表 after_sales
ServiceOrderAfterSalesOperationlogService#add (OrderAfterSalesOperationlogServiceImpl)
MapperOrderAfterSalesOperationlogMapper#insert ⇒ 表 order_after_sales_operationlog
ServiceOrderOperatelogService#add (OrderOperatelogServiceImpl)
MapperOrderOperatelogMapper#insert ⇒ 表 order_operatelog
ServiceOrderService#update (OrderServiceImpl)
MapperOrderMapper#updateById ⇒ 表 order
ServiceOpenapiChannelOrderService#get (OpenapiChannelOrderServiceImpl)
MapperOpenapiChannelOrderMapper#selectById ⇒ 表 openapi_channel_order
ServiceOpenapiChannelOrderService#update (OpenapiChannelOrderServiceImpl)
MapperOpenapiChannelOrderMapper#updateById ⇒ 表 openapi_channel_order
ServiceOrderPaymentService#add (OrderPaymentServiceImpl)
MapperOrderPaymentMapper#insert ⇒ 表 order_payment
其它依赖(权限 / 会话 / 缓存 / 校验等,不直接读写业务表)· 3
ZfbCardService.manageRefundSessionMemberService.getSessionIdSessionUserService.getSessionId

链路按 Controller → Service(Impl) → Mapper → 表 逐层追踪;字段对应的「表.列」见下方请求/响应表新增列,按字段同名映射到涉及的实体表列; 表示该字段为查询条件 / 计算 / 转换 / 包装字段,未直接对应单一列。

环境 URL
环境完整 URL(主机 + 渠道前缀 + 路径)备注
devhttps://dscp-dev.hn12301.net/manage-api/afterSales/zfbRefund
uathttps://dscp-uat.hn12301.net/manage-api/afterSales/zfbRefund
prohttps://dscp-uat.hn12301.net/manage-api/afterSales/zfbRefund (仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
请求参数 · Header / Query / Path

无(该接口无 Query/Path/Header 显式参数;入参见 Body)

请求参数 · Body AfterSalesAddRequest
字段类型必填取值/校验表 / 列说明
orderIdLong必填after_sales.order_id订单ID
refundTypeRefundType1退款2退款退货after_sales.refund_type售后类型(after.RefundType),1退款,2退款退货
applyMoneyInteger必填after_sales.apply_money申请退款金额
numInteger必填after_sales.num退货数量
logisticsLogisticsStatus1未发货2已发货after_sales.logistics物流状态(after.LogisticsStatus),1未发货,2已发货
refundDescStringafter_sales.refund_desc退款说明
refundPicStringafter_sales.refund_pic退款上传凭证图片
响应参数
外层包装(chaos 框架自动;前端同时兼容 code/msg)
errcodeint业务码,0=成功
errmsgstring提示信息
dataT下方“data 结构”
data 结构 AlipayTradeRefundResponse (object)

标量/Map/外部类型:AlipayTradeRefundResponse

示例
请求示例 (自动生成,仅结构参考)
POST /afterSales/zfbRefund
{
  "body": {
    "orderId": 1,
    "refundType": "1",
    "applyMoney": 0,
    "num": 0,
    "logistics": "1",
    "refundDesc": "",
    "refundPic": "https://example.com/x.png"
  }
}
响应示例
{
  "errcode": 0,
  "errmsg": "",
  "data": ""
}
处理逻辑
操作日志after / 支付宝退款
逻辑摘要查询详情(orderService.get);调用 manageRefund(zfbCardService.manageRefund);查询详情(afterSalesService.get);入参与返回值经 BeanUtils 做对象/分页映射
内联注释
  • && old.getApplyMoney() == order.getPayableAmount()
  • 售后日志
  • 操作日志
  • 更新订单
  • 新增订单交易流水