You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
4.0 KiB
234 lines
4.0 KiB
-- 用户基本信息视图
|
|
CREATE OR REPLACE VIEW consumer_base_info_view AS
|
|
SELECT
|
|
t1.*, cl.channel_name
|
|
FROM
|
|
(
|
|
SELECT
|
|
c.user_id,
|
|
c.nick_name,
|
|
c.created_at register_at,
|
|
c.mobile register_mobile,
|
|
c.level,
|
|
c.channel_no
|
|
FROM
|
|
consumer_info c
|
|
LEFT JOIN `user` u ON c.user_id = u.user_id
|
|
) t1
|
|
LEFT JOIN channel cl ON t1.channel_no = cl.channel_no;
|
|
|
|
-- 创建用户服务卡视图
|
|
CREATE OR REPLACE VIEW consumer_service_card_view AS
|
|
SELECT
|
|
t1.user_id,
|
|
t1.card_detail,
|
|
t2.max_card_type,
|
|
t2.sum_total_service_cnt,
|
|
t2.sum_serviced_cnt,
|
|
t2.sum_booked_cnt
|
|
FROM
|
|
(
|
|
SELECT
|
|
user_id,
|
|
GROUP_CONCAT(card_name, ':', card_cnt) card_detail
|
|
FROM
|
|
(
|
|
SELECT
|
|
user_id,
|
|
CASE card_type
|
|
WHEN 10 THEN
|
|
'单次卡'
|
|
WHEN 20 THEN
|
|
'月卡'
|
|
WHEN 30 THEN
|
|
'季卡'
|
|
WHEN 40 THEN
|
|
'半年卡'
|
|
WHEN 50 THEN
|
|
'年卡'
|
|
ELSE
|
|
''
|
|
END AS card_name,
|
|
COUNT(card_type) AS card_cnt
|
|
FROM
|
|
service_card
|
|
GROUP BY
|
|
user_id,
|
|
card_type
|
|
) ot
|
|
GROUP BY
|
|
user_id
|
|
) t1,
|
|
(
|
|
SELECT
|
|
user_id,
|
|
MAX(card_type) max_card_type,
|
|
SUM(total_service_cnt) sum_total_service_cnt,
|
|
SUM(booked_cnt) sum_booked_cnt,
|
|
SUM(serviced_cnt) sum_serviced_cnt
|
|
FROM
|
|
service_card -- WHERE sc.user_id = '180515171015928100'
|
|
GROUP BY
|
|
user_id
|
|
) t2
|
|
WHERE
|
|
t1.user_id = t2.user_id;
|
|
|
|
-- 创建用户服务评价视图
|
|
CREATE OR REPLACE VIEW service_evaluation_view AS
|
|
SELECT
|
|
*,
|
|
IF (
|
|
(
|
|
time_score + service_score + profession_score = '15'
|
|
AND content != ''
|
|
),
|
|
1,
|
|
0
|
|
) evaluation_status
|
|
FROM
|
|
service_evaluation;
|
|
|
|
-- 创建人员回访列表视图
|
|
CREATE OR REPLACE VIEW feedback_order_view AS
|
|
SELECT
|
|
f.*,
|
|
IF (
|
|
(
|
|
attitude_score + quality_score + efficiency_score = '15'
|
|
AND feedback_content != ''
|
|
),
|
|
1,
|
|
0
|
|
) feedback_evaluation_status,
|
|
a.nick_name feedback_name
|
|
FROM
|
|
feedback_order f
|
|
LEFT JOIN admin_info a ON f.feedback_by = a.user_id;
|
|
|
|
-- 创建客户商家关系视图
|
|
CREATE OR REPLACE VIEW rel_consumer_merchant_view AS
|
|
SELECT
|
|
c.user_id
|
|
,IF (
|
|
IFNULL(tmp1.merchant_no,'') = IFNULL(tmp2.coupon_merchant_no,''),
|
|
IFNULL(tmp1.merchant_no,''),
|
|
GROUP_CONCAT(
|
|
IFNULL(tmp1.merchant_no,''),
|
|
'&',
|
|
IFNULL(tmp2.coupon_merchant_no,'')
|
|
)
|
|
) merchant_no
|
|
FROM
|
|
consumer_info c
|
|
LEFT JOIN
|
|
(
|
|
SELECT
|
|
t1.user_id,
|
|
IF (
|
|
t1.order_merchant = t2.card_merchant_no,
|
|
t1.order_merchant,
|
|
GROUP_CONCAT(
|
|
t1.order_merchant,
|
|
'&',
|
|
t2.card_merchant_no
|
|
)
|
|
) merchant_no
|
|
FROM
|
|
(
|
|
SELECT
|
|
t.user_id,
|
|
GROUP_CONCAT(
|
|
t.merchant_no
|
|
ORDER BY
|
|
t.merchant_no ASC SEPARATOR '&'
|
|
) order_merchant
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
c.user_id,
|
|
v.merchant_no
|
|
FROM
|
|
consumer_info c,
|
|
vorder v
|
|
WHERE
|
|
c.user_id = v.user_id
|
|
GROUP BY
|
|
c.user_id,
|
|
v.merchant_no
|
|
) t
|
|
GROUP BY
|
|
t.user_id
|
|
) t1,
|
|
(
|
|
SELECT
|
|
t.user_id,
|
|
GROUP_CONCAT(
|
|
t.merchant_no
|
|
ORDER BY
|
|
t.merchant_no ASC SEPARATOR '&'
|
|
) card_merchant_no
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
c.user_id,
|
|
s.merchant_no
|
|
FROM
|
|
consumer_info c,
|
|
service_card s
|
|
WHERE
|
|
c.user_id = s.user_id
|
|
GROUP BY
|
|
c.user_id,
|
|
s.merchant_no
|
|
) t
|
|
GROUP BY
|
|
t.user_id
|
|
) t2
|
|
WHERE
|
|
t1.user_id = t2.user_id
|
|
GROUP BY
|
|
t1.user_id
|
|
) tmp1
|
|
ON c.user_id = tmp1.user_id
|
|
|
|
LEFT JOIN
|
|
|
|
(
|
|
SELECT
|
|
t.user_id,
|
|
GROUP_CONCAT(
|
|
t.merchant_no
|
|
ORDER BY
|
|
t.merchant_no ASC SEPARATOR '&'
|
|
) coupon_merchant_no
|
|
FROM
|
|
(
|
|
SELECT DISTINCT
|
|
c.user_id,
|
|
cp.merchant_no
|
|
FROM
|
|
consumer_info c,
|
|
coupon cp
|
|
WHERE
|
|
c.user_id = cp.user_id
|
|
GROUP BY
|
|
c.user_id,
|
|
cp.merchant_no
|
|
) t
|
|
GROUP BY
|
|
t.user_id
|
|
) tmp2
|
|
ON c.user_id = tmp2.user_id
|
|
GROUP BY c.user_id
|
|
,tmp1.merchant_no
|
|
,tmp2.coupon_merchant_no;
|
|
|
|
|
|
-- SELECT * FROM CONSUMER_BASE_INFO_VIEW;
|
|
-- SELECT * FROM CONSUMER_SERVICE_CARD_VIEW;
|
|
-- SELECT * FROM FEEDBACK_ORDER_VIEW;
|
|
-- SELECT * FROM REL_CONSUMER_MERCHANT_VIEW;
|
|
-- SELECT * FROM SERVICE_EVALUATION_VIEW;
|
|
-- SELECT * FROM REL_SERVICE_CARD_BOOK_DETAIL;
|
|
|