|
@@ -0,0 +1,265 @@
|
|
|
|
+<?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="customerValue" resultType="com.caimei365.tools.model.po.CmOrganValueSystemPo">
|
|
|
|
+ SELECT u.userID as userID,IFNULL(b.payableAmount, 0)as payableAmount,IFNULL(b.num, 0) as number,TIMESTAMPDIFF(DAY, IFNULL(b.orderTime, '2000-01-01 00:00:00'), NOW()) as orderTime
|
|
|
|
+ FROM USER u LEFT JOIN
|
|
|
|
+ (SELECT DISTINCT u.userID AS userID,SUM(co.payableAmount) AS payableAmount,COUNT(co.orderNo) AS num,MAX(co.orderTime) AS orderTime FROM USER u LEFT JOIN cm_order co ON u.userID = co.userID
|
|
|
|
+ WHERE TIMESTAMPDIFF(YEAR, co.orderTime, NOW()) <![CDATA[ < ]]> 2
|
|
|
|
+ AND co.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
|
|
|
|
+ )
|
|
|
|
+ )
|
|
|
|
+ GROUP BY u.userID
|
|
|
|
+ ) b ON u.userID = b.userID
|
|
|
|
+ </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>
|
|
|
|
+
|
|
|
|
+ <insert id="organBatch" parameterType="java.util.List">
|
|
|
|
+ insert into cm_organ_value_system
|
|
|
|
+ (userID, activeState, customerValue, stage, delType)
|
|
|
|
+ values
|
|
|
|
+ (#{userID},#{activeState},#{customerValue},#{stage},#{delType})
|
|
|
|
+ </insert>
|
|
|
|
+</mapper>
|