12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- -- Active: xiaoding_test@@192.168.110.85@3306
- /*
- 这段sql语句是根据"market_dist_teams"表获取的,这个表的解释是:
- 1、当一个用户A邀请另一个用户B的时候,数据是这样的
- - object_id是A的id
- - object_type是A的用户类型
- - user_id是B的id
- - 统计的时候A是B的一级邀请人
- 2、当用户B邀请C的时候,数据是这样的
- - object_id是B的id
- - object_type是B的用户类型
- - user_id是C的id
- - 统计的时候B是C的一级邀请人
- - 统计的时候A是C的二级邀请人
- 请重写我的统计sql
- */
- /*新的技师管理视图*/
- DROP VIEW IF EXISTS v_coach_list;
- CREATE OR REPLACE VIEW v_coach_list AS
- SELECT
- cu.id AS id,/*技师id*/
- ci.nickname AS nickname,/*技师名称*/
- ci.mobile AS mobile,/*手机号码*/
- ci.avatar AS avatar,/*头像*/
- ci.gender AS gender,/*性别*/
- ci.birthday AS birthday,/*生日*/
- cu.created_at AS created_at,/*注册时间*/
- cu.state AS state,/*技师状态*/
- cu.invite_code AS invite_code,/*邀请码*/
- cu.qr_code AS qr_code,/*二维码*/
- cu.is_vip AS is_vip, /*是否开通会员*/
- cu.vip_time AS vip_time,/*开通会员时间*/
- cu.level AS level,/*技师等级*/
- cu.score AS score,/*技师评分*/
- cu.work_status AS work_status,/*工作状态*/
- cu.formal_photo AS formal_photo,/*正式照*/
- cu.virtual_order AS virtual_order,/*虚拟订单*/
- /* 认证信息 */
- crr.id_card AS id_card,/*身份证*/
- crr.real_name AS real_name,/*真实姓名*/
- crr.id_card_front_photo AS id_card_front_photo,/*身份证正面*/
- crr.id_card_back_photo AS id_card_back_photo,/*身份证反面*/
- cq.health_cert AS health_cert,/*健康证*/
- cq.qual_photo AS qual_photo,/*资格证*/
- cq.business_license AS business_license,/*营业执照*/
- /* 所属店铺 */
- sar.shop_name AS shop_name,/*店铺名称*/
- /* 当前位置信息 */
- cl.city AS city,/*城市*/
- cl.address AS address,/*当前位置*/
- /* 钱包余额 */
- COALESCE(cw.total_income, 0) AS total_income,/*总收入*/
- COALESCE(cw.total_expense, 0) AS total_expense,/*总支出*/
- COALESCE(cw.total_balance, 0) AS total_balance,/*钱包余额*/
- COALESCE(cw.available_balance, 0) AS available_balance,/*可用余额*/
- COALESCE(cw.frozen_amount, 0) AS frozen_amount,/*冻结余额*/
- /* 一级邀请人 */
- CASE
- WHEN mdt1.object_type = 'App\\Models\\CoachUser' THEN ci1.nickname
- WHEN mdt1.object_type = 'App\\Models\\MemberUser' THEN mu1.nickname
- END AS inviter_level1_name,
- /* 二级邀请人 */
- CASE
- WHEN mdt2.object_type = 'App\\Models\\CoachUser' THEN ci2.nickname
- WHEN mdt2.object_type = 'App\\Models\\MemberUser' THEN mu2.nickname
- END AS inviter_level2_name
- FROM coach_users cu
- LEFT JOIN coach_info_records ci ON cu.info_record_id = ci.id
- LEFT JOIN coach_locations cl ON cu.id = cl.coach_id AND cl.type = 2
- LEFT JOIN coach_qual_records cq ON cu.qualification_record_id = cq.id
- LEFT JOIN shop_auth_records sar ON cu.shop_id = sar.shop_id
- LEFT JOIN coach_real_records crr ON cu.real_auth_record_id = crr.id
- LEFT JOIN wallet cw ON cu.id = cw.owner_id AND cw.owner_type = 'App\\Models\\CoachUser'
- /* 一级邀请人关联 */
- LEFT JOIN market_dist_teams mdt1 ON cu.id = mdt1.user_id AND mdt1.level = 1
- LEFT JOIN coach_info_records ci1 ON mdt1.object_type = 'App\\Models\\CoachUser' AND mdt1.object_id = ci1.coach_id
- LEFT JOIN member_users mu1 ON mdt1.object_type = 'App\\Models\\MemberUser' AND mdt1.object_id = mu1.id
- /* 二级邀请人关联 */
- LEFT JOIN market_dist_teams mdt2 ON cu.id = mdt2.user_id AND mdt2.level = 2
- LEFT JOIN coach_info_records ci2 ON mdt2.object_type = 'App\\Models\\CoachUser' AND mdt2.object_id = ci2.coach_id
- LEFT JOIN member_users mu2 ON mdt2.object_type = 'App\\Models\\MemberUser' AND mdt2.object_id = mu2.id
- WHERE cu.deleted_at IS NULL
|