-- Active: xiaoding_test@@192.168.110.85@3306@xiaoding_test
/*
订单编号是order_exc_records表中的order_id字段，项目名称是order_exc_records表通过order_id关联order表查询出service_id项目编号再去关联project表查询出项目名称title,
用户名称是order_exc_records通过order_id关联order表查询出user_id再去和member_users表关联查询出用户名称nickname,
下单时间是order_exc_records表通过order_id关联到order_records表去通过判断该订单状态state然后获取created_at就是下单时间，
支付金额、支付方式是order_exc_records表中的order_id去 wallet_payment_records判断是否存在该订单存在则获取actual_amount实际支付金额字段和payment_method支付方式字段不存在则支付金额和支付方式空着即可，
服务状态是order_exc_records通过order_id和order_records关联获取state状态字段，
订单来源是order_exc_records表通过order_id关联到order表中的order_source字段，
技师/店铺的意思是该订单有可能是技师接单也有可能是店铺接单是通过订单来源类型进行区分的，
技师名称是根据order_exc_records表的order_id与order表关联查询出coach_id再与coach_users表关联查询出user_id再与用户表关联查询出技师名称，
店铺名称是order_exc_records表通过order_id关联到order表中的shop_id再与shop_auth_records表查询出shop_name，
技师/店铺接单时间是order_exc_records表通过order_id去order_records表判断该订单编号是否存在，
存在则再去通过state判断下单状态得出created_at下单时间，如果不存在则空着即可，
区域是order_exc_records表通过order_id关联的order表中的area_code字段，地址是order_exc_records表通过order_id关联的order表中的address字段，
备注是order_exc_records表通过order_id关联的order表中的remark字段，订单来源是order_exc_records表通过order_id关联的order表中的order_source字段

补充逻辑：用户表是member_users表，技师表是coach_users表，店铺表是shop_auth_records表

不查询字段：跟单客服是系统表获取的
*/
DROP TABLE IF EXISTS report_order_exception;
CREATE TABLE report_order_exception AS
SELECT 
    oer.order_id as order_id /* 订单编号 */,
    p.title as project_title /* 项目名称 */,
    mu.nickname as user_name /* 用户名称 */,
    orr.created_at as order_time /* 下单时间 */,
    wpr.actual_amount as payment_amount /* 支付金额 */,
    wpr.payment_method as payment_method /* 支付方式 */,
    orr.state as service_state /* 服务状态 */,
    CASE 
        WHEN o.order_source = 'coach' THEN u_coach.nickname /* 技师昵称 */
        WHEN o.order_source = 'shop' THEN sar.shop_name /* 店铺名称 */
        ELSE NULL
    END as accept_name /* 技师/店铺 */,
    orr.created_at as accept_time /* 技师/店铺接单时间 */,
    o.area_code as area_code /* 区域 */,
    o.address as address /* 地址 */,
    o.remark as remark /* 备注 */,
    o.order_source as order_source /* 订单来源 */
FROM 
    order_exc_records oer
LEFT JOIN 
    order_records orr ON oer.order_id = orr.order_id /* 关联订单记录表 */
LEFT JOIN 
    `order` o ON oer.order_id = o.id /* 关联订单表 */
LEFT JOIN 
    project p ON o.service_id = p.id /* 关联项目表 */
LEFT JOIN 
    member_users mu ON o.user_id = mu.id /* 关联用户表 */
LEFT JOIN 
    wallet_payment_records wpr ON oer.order_id = wpr.order_id /* 关联支付记录表 */
LEFT JOIN 
    coach_users cu ON o.coach_id = cu.id /* 关联技师用户表 */
LEFT JOIN 
    member_users u_coach ON cu.user_id = u_coach.id /* 关联用户表获取技师昵称 */
LEFT JOIN 
    shop_auth_records sar ON o.shop_id = sar.id /* 关联店铺认证记录表 */
WHERE 
    orr.state IS NOT NULL /* 确保订单状态存在 */