123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.caimei365.tools.mapper.CmOrganValueSystemMapper">
- <select id="newAdd" resultType="java.lang.Integer">
- SELECT DISTINCT userID FROM USER WHERE TIMESTAMPDIFF(DAY , registerTime,NOW()) <![CDATA[ <= ]]> 30
- </select>
- <select id="active" resultType="java.lang.Integer">
- SELECT DISTINCT userID FROM USER WHERE TIMESTAMPDIFF(DAY, registerTime, NOW()) > 30 AND TIMESTAMPDIFF(DAY, loginTime, NOW()) <![CDATA[ <= ]]> 90
- AND userID NOT IN (
- SELECT DISTINCT userID FROM USER WHERE
- userID IN (
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(DAY , u.registerTime,NOW()) <![CDATA[ <= ]]> 30 )
- AND u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- )
- AND userID IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR, loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- AND userID IN (
- SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2 AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- UNION
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE TIMESTAMPDIFF(DAY, u.loginTIme, NOW()) <![CDATA[ <= ]]> 90
- AND u.userID NOT IN(SELECT userID FROM USER WHERE TIMESTAMPDIFF(DAY, registerTime, NOW()) <![CDATA[ < ]]> 30)
- AND TIMESTAMPDIFF(YEAR, cod.orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- </select>
- <select id="inactive" resultType="java.lang.Integer">
- SELECT DISTINCT userID FROM USER WHERE userID NOT IN ( SELECT userID FROM USER WHERE TIMESTAMPDIFF(DAY , registerTime,NOW()) <![CDATA[ <= ]]> 30 )
- AND userID NOT IN (
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN ( SELECT userID FROM USER WHERE TIMESTAMPDIFF(DAY , registerTime,NOW()) <![CDATA[ <= ]]> 30 ) -- AND u.userID = 100351
- AND u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- UNION
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(DAY, loginTime, NOW()) <![CDATA[ <= ]]> 90
- UNION
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- UNION
- SELECT DISTINCT userID FROM USER WHERE
- userID IN (
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(DAY , u.registerTime,NOW()) <![CDATA[ <= ]]> 30 )
- AND u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- )
- AND userID IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR, loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- AND userID IN (
- SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2 AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- )
- AND u.userID IN (
- SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- )
- </select>
- <select id="loss" resultType="java.lang.Integer">
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (SELECT userID FROM USER WHERE TIMESTAMPDIFF(DAY , registerTime,NOW()) <![CDATA[ <= ]]> 30 )
- AND u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- </select>
- <select id="backflow" resultType="java.lang.Integer">
- SELECT DISTINCT userID FROM USER WHERE
- userID IN (
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(DAY , u.registerTime,NOW()) <![CDATA[ <= ]]> 30 )
- AND u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- )
- AND userID IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR, loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- AND userID IN (
- SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2 AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- </select>
- <select id="loyal" resultType="java.lang.Integer">
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE TIMESTAMPDIFF(DAY, u.loginTIme, NOW()) <![CDATA[ <= ]]> 90
- AND u.userID NOT IN(SELECT userID FROM USER WHERE TIMESTAMPDIFF(DAY, registerTime, NOW()) <![CDATA[ < ]]> 30)
- AND TIMESTAMPDIFF(YEAR, cod.orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- </select>
- <select id="silent" resultType="java.lang.Integer">
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- AND u.userID IN
- (
- SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT DISTINCT userID FROM USER WHERE
- userID IN (
- SELECT DISTINCT u.userID FROM USER u LEFT JOIN cm_order cod ON u.userID = cod.userID
- WHERE u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(DAY , u.registerTime,NOW()) <![CDATA[ <= ]]> 30 )
- AND u.userID NOT IN (SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2
- AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- AND u.userID NOT IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR,loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- )
- AND userID IN (
- SELECT userID FROM USER WHERE TIMESTAMPDIFF(YEAR, loginTime, NOW()) <![CDATA[ < ]]> 2
- )
- AND userID IN (
- SELECT userID FROM cm_order WHERE TIMESTAMPDIFF(YEAR, orderTime, NOW()) <![CDATA[ < ]]> 2 AND orderNo NOT IN (
- SELECT orderNo FROM cm_order WHERE
- STATUS = 6 OR refundType = 2
- OR orderID IN (
- SELECT orderID FROM cm_order_product WHERE productID IN (6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6068, 6069) GROUP BY orderID
- )
- )
- )
- )
- </select>
- <select id="getOrganUserId" resultType="com.caimei365.tools.model.po.CmOrganValueSystemPo">
- SELECT organID as organId, userId FROM cm_organ_value_system
- </select>
- <select id="getClubUserId" resultType="com.caimei365.tools.model.po.CmUserPo">
- SELECT userID, clubID FROM user WHERE userId IS NOT NULL AND userId != ''
- </select>
- <!--机构登录时间-->
- <select id="getClubLoginTime" resultType="com.caimei365.tools.model.po.UserOrganPo">
- SELECT
- c.clubId,
- c.userId,
- u.loginTime
- FROM club c
- LEFT JOIN USER u ON c.userId = u.userId
- where u.loginTime > DATE_SUB(NOW(), INTERVAL 6 MONTH)
- </select>
- <!--机构咨询记录数-->
- <select id="getClubRemarks" resultType="com.caimei365.tools.model.po.UserOrganPo">
- SELECT clubId, SUM(cou) AS number, communicationSituation as situation FROM (
- SELECT c.clubId, COUNT(*) AS cou, (SELECT communicationSituation FROM cm_club_remarks WHERE clubId = c.clubId ORDER BY ADDTIME DESC LIMIT 1) AS communicationSituation
- FROM club c
- LEFT JOIN cm_club_remarks ccr ON c.clubId = ccr.clubId
- WHERE ccr.addTime > DATE_SUB(NOW(), INTERVAL 6 MONTH) AND ccr.communicationSituation != 1 GROUP BY c.clubId
- UNION
- SELECT c.clubId, COUNT(*) AS cou, (SELECT communicationSituation FROM cm_visitor_remarks WHERE clubId = c.clubId ORDER BY ADDTIME DESC LIMIT 1) AS communicationSituation
- FROM club c
- LEFT JOIN cm_visitor_remarks cvr ON c.clubId = cvr.clubId
- WHERE cvr.addTime > DATE_SUB(NOW(), INTERVAL 6 MONTH) AND cvr.communicationSituation != 1 GROUP BY c.clubId
- ) remark GROUP BY clubId
- </select>
- <!--机构子订单数-->
- <select id="getClubShopOrder" resultType="com.caimei365.tools.model.po.UserOrganPo">
- SELECT u.userId, COUNT(*) AS shopOrderNumber
- FROM user u
- LEFT JOIN cm_shop_order cso ON cso.userId = u.userId
- WHERE cso.shopId != 998 AND cso.orderTime > DATE_SUB(NOW(), INTERVAL 6 MONTH) GROUP BY u.userId
- </select>
- <!--机构子订单数、需支付金额-->
- <select id="getUserAmount" resultType="com.caimei365.tools.model.po.UserOrganPo">
- SELECT
- userId,
- clubId,
- COUNT(shopOrderId) AS shopOrderNumber,
- SUM(needPayAmount) AS amount
- FROM cm_shop_order
- WHERE userId != '' AND userId IS NOT NULL
- AND clubId != '' AND clubId IS NOT NULL
- and userId = #{userId}
- AND orderTime > DATE_SUB(NOW(), INTERVAL 1 YEAR)
- GROUP BY userId
- </select>
- <select id="getBehaviorNumber" resultType="com.caimei365.tools.model.po.UserOrganPo">
- SELECT
- userId,
- COUNT(recordID) as recordNumber
- FROM cm_behavior_record
- WHERE userId != 0 AND accessTime > DATE_SUB(NOW(), INTERVAL 1 YEAR)
- and userId = #{userId}
- GROUP BY accessDate
- </select>
- <update id="updateOrgan">
- UPDATE cm_organ_value_system
- SET stage = ( CASE stage
- WHEN 0 THEN 1
- WHEN 1 THEN 2
- END), delType = 0
- WHERE organID IS NOT NULL
- </update>
- <update id="updateOrganActive">
- UPDATE cm_organ_active_system
- SET stage = ( CASE stage
- WHEN 0 THEN 1
- WHEN 1 THEN 2
- END), delType = 0
- WHERE id IS NOT NULL
- </update>
- <insert id="insertOrganActive">
- insert into cm_organ_active_system (userID, activeState, activeStatus, stage, addTime, delType)
- values (#{userId}, #{activeState}, #{activeStatus}, #{stage}, date_format(now(), '%Y-%m-%d'), #{delType})
- </insert>
- <insert id="organBatch" parameterType="java.util.List">
- insert into cm_organ_value_system (userID, customerValue, customerStatus, stage, addTime, delType)
- values (#{userId}, #{customerValue}, #{customerStatus}, #{stage}, date_format(now(), '%Y-%m-%d'), #{delType})
- </insert>
- <update id="updateOrganBatch">
- update cm_organ_value_system
- set <if test="userId != null">
- userID = #{userId},
- </if>
- <if test="customerValue != null and customerValue != ''">
- customerValue = #{customerValue},
- </if>
- <if test="customerStatus != null">
- customerStatus = #{customerStatus},
- </if>
- stage = #{stage},
- delType = #{delType}
- where organID = #{organId}
- </update>
- </mapper>
|