package com.xinelu.applet.service.nursingorder;


import com.alibaba.fastjson2.JSONObject;
import com.xinelu.applet.dto.nurseorder.NurseOrderDTO;
import com.xinelu.applet.vo.nursingorder.AppletGoodsOrderVO;
import com.xinelu.applet.vo.nursingorder.ConsultationGoodVO;
import com.xinelu.applet.vo.nursingorder.NursingOrderInfoVO;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.core.domain.entity.SysDictData;
import com.xinelu.common.core.page.TableDataInfo;
import com.xinelu.manage.domain.goodsOrder.GoodsOrder;

import java.util.List;

/**
 * 订单列表Service接口
 *
 * @author zhangheng
 * @date 2022-09-06
 */
public interface INursingOrderService {
    /**
     * 根据被护理人patientId查询订单信息
     *
     * @param patientId 被护理人id
     * @return 订单列表
     */
    List<NursingOrderInfoVO> getNursingOrderByPatientId(Long patientId);

    /**
     * 根据护理人id以及订单状态查询订单信息
     *
     * @param goodsOrderVO 订单信息
     * @return java.util.List<com.xinyilu.nurseapplet.domain.vo.nursingorder.AppletGoodsOrderVO>
     **/
    List<AppletGoodsOrderVO> getGoodsOrder(AppletGoodsOrderVO goodsOrderVO);

    /**
     * 根据订单编号查询专家咨询订单详情
     *
     * @param orderNo 订单编号
     **/
    ConsultationGoodVO getConsultationOrder(String orderNo);

    /**
     * 查询退款原因
     *
     * @param sysDictData 退款原因
     * @return com.xinyilu.common.core.domain.entity.SysDictData
     **/
    List<SysDictData> getRefundReason(SysDictData sysDictData);

    /**
     * 修改商品订单(退款售后记录信息)
     *
     * @param goodsOrder 商品订单
     * @return 结果
     */
    int updateGoodsOrder(GoodsOrder goodsOrder);

    /**
     * 根据预约订单编号查询对应得订单详情信息
     *
     * @param orderNo 订单编号
     * @return 详情信息
     */
    AjaxResult getAppointmentDetailsInfo(String orderNo);

    /**
     * 根据parentId编号查询对应得订单
     *
     * @param nurseOrder nurseOrder
     * @return AjaxResult
     */
    TableDataInfo getAppletOrderList(NurseOrderDTO nurseOrder);

    JSONObject pushMeg(Long orderId, Long patientId);
}
