ソースを参照

feat: 子包服务修改同步

hidewnd 1 ヶ月 前
コミット
7bfa3b6835
52 ファイル変更1483 行追加781 行削除
  1. 1 1
      yt-adage/adage-service/src/main/java/com/ytpm/adage/service/impl/AdServiceImpl.java
  2. 51 24
      yt-adage/adage-service/src/main/resources/mapper/AppUserMapper.xml
  3. 1 1
      yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/service/impl/AdServiceImpl.java
  4. 51 24
      yt-algebraic/algebraic-service/src/main/resources/mapper/AppUserMapper.xml
  5. 1 1
      yt-allusion/allusion-service/src/main/java/com/ytpm/allusion/service/impl/AdServiceImpl.java
  6. 51 24
      yt-allusion/allusion-service/src/main/resources/mapper/AppUserMapper.xml
  7. 1 1
      yt-answer/answer-service/src/main/java/com/ytpm/answer/service/impl/AdServiceImpl.java
  8. 51 24
      yt-answer/answer-service/src/main/resources/mapper/AppUserMapper.xml
  9. 1 1
      yt-arena/arena-service/src/main/java/com/ytpm/arena/service/impl/AdServiceImpl.java
  10. 51 24
      yt-arena/arena-service/src/main/resources/mapper/AppUserMapper.xml
  11. 1 1
      yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/service/impl/AdServiceImpl.java
  12. 51 24
      yt-arithmetic/arithmetic-service/src/main/resources/mapper/AppUserMapper.xml
  13. 1 1
      yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/service/impl/AdServiceImpl.java
  14. 51 24
      yt-calculator/calculator-service/src/main/resources/mapper/AppUserMapper.xml
  15. 1 1
      yt-carp/carp-service/src/main/java/com/ytpm/carp/service/impl/AdServiceImpl.java
  16. 51 24
      yt-carp/carp-service/src/main/resources/mapper/AppUserMapper.xml
  17. 1 1
      yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/service/impl/AdServiceImpl.java
  18. 51 24
      yt-countstep/countstep-service/src/main/resources/mapper/AppUserMapper.xml
  19. 1 1
      yt-diary/diary-service/src/main/java/com/ytpm/diary/service/impl/AdServiceImpl.java
  20. 51 24
      yt-diary/diary-service/src/main/resources/mapper/AppUserMapper.xml
  21. 1 1
      yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/service/impl/AdServiceImpl.java
  22. 51 24
      yt-dtw/dtw-service/src/main/resources/mapper/AppUserMapper.xml
  23. 1 1
      yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/service/impl/AdServiceImpl.java
  24. 51 24
      yt-emoticons/emoticons-service/src/main/resources/mapper/AppUserMapper.xml
  25. 1 1
      yt-funarith/funarith-service/src/main/java/com/ytpm/funarith/service/impl/AdServiceImpl.java
  26. 51 24
      yt-funarith/funarith-service/src/main/resources/mapper/AppUserMapper.xml
  27. 1 1
      yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/service/impl/AdServiceImpl.java
  28. 51 24
      yt-idiom/idiom-service/src/main/resources/mapper/AppUserMapper.xml
  29. 1 1
      yt-irun/irun-service/src/main/java/com/ytpm/irun/service/impl/AdServiceImpl.java
  30. 51 24
      yt-irun/irun-service/src/main/resources/mapper/AppUserMapper.xml
  31. 1 1
      yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/service/impl/AdServiceImpl.java
  32. 51 24
      yt-lemon/lemon-service/src/main/resources/mapper/AppUserMapper.xml
  33. 1 1
      yt-mileage/mileage-service/src/main/java/com/ytpm/mileage/service/impl/AdServiceImpl.java
  34. 51 24
      yt-mileage/mileage-service/src/main/resources/mapper/AppUserMapper.xml
  35. 1 1
      yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/service/impl/AdServiceImpl.java
  36. 182 155
      yt-nofeeds/nofeeds-service/src/main/resources/mapper/AppUserMapper.xml
  37. 1 1
      yt-picking/picking-service/src/main/java/com/ytpm/picking/service/impl/AdServiceImpl.java
  38. 51 24
      yt-picking/picking-service/src/main/resources/mapper/AppUserMapper.xml
  39. 1 1
      yt-proverb/proverb-service/src/main/java/com/ytpm/proverb/service/impl/AdServiceImpl.java
  40. 51 24
      yt-proverb/proverb-service/src/main/resources/mapper/AppUserMapper.xml
  41. 1 1
      yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/service/impl/AdServiceImpl.java
  42. 51 24
      yt-raisepig/raisepig-service/src/main/resources/mapper/AppUserMapper.xml
  43. 1 1
      yt-summary/summary-service/src/main/java/com/ytpm/summary/service/impl/AdServiceImpl.java
  44. 51 24
      yt-summary/summary-service/src/main/resources/mapper/AppUserMapper.xml
  45. 1 1
      yt-typing/typing-service/src/main/java/com/ytpm/typing/service/impl/AdServiceImpl.java
  46. 51 24
      yt-typing/typing-service/src/main/resources/mapper/AppUserMapper.xml
  47. 1 1
      yt-vitality/vitality-service/src/main/java/com/ytpm/vitality/service/impl/AdServiceImpl.java
  48. 51 24
      yt-vitality/vitality-service/src/main/resources/mapper/AppUserMapper.xml
  49. 1 1
      yt-walk/walk-service/src/main/java/com/ytpm/walk/service/impl/AdServiceImpl.java
  50. 51 24
      yt-walk/walk-service/src/main/resources/mapper/AppUserMapper.xml
  51. 1 1
      yt-walking/walking-service/src/main/java/com/ytpm/walking/service/impl/AdServiceImpl.java
  52. 51 24
      yt-walking/walking-service/src/main/resources/mapper/AppUserMapper.xml

+ 1 - 1
yt-adage/adage-service/src/main/java/com/ytpm/adage/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-adage/adage-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-algebraic/algebraic-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-allusion/allusion-service/src/main/java/com/ytpm/allusion/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-allusion/allusion-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-answer/answer-service/src/main/java/com/ytpm/answer/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-answer/answer-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-arena/arena-service/src/main/java/com/ytpm/arena/service/impl/AdServiceImpl.java

@@ -68,7 +68,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-arena/arena-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/service/impl/AdServiceImpl.java

@@ -68,7 +68,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-arithmetic/arithmetic-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-calculator/calculator-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-carp/carp-service/src/main/java/com/ytpm/carp/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-carp/carp-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-countstep/countstep-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-diary/diary-service/src/main/java/com/ytpm/diary/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-diary/diary-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-dtw/dtw-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-emoticons/emoticons-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-funarith/funarith-service/src/main/java/com/ytpm/funarith/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-funarith/funarith-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-idiom/idiom-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-irun/irun-service/src/main/java/com/ytpm/irun/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-irun/irun-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-lemon/lemon-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-mileage/mileage-service/src/main/java/com/ytpm/mileage/service/impl/AdServiceImpl.java

@@ -76,7 +76,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-mileage/mileage-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 182 - 155
yt-nofeeds/nofeeds-service/src/main/resources/mapper/AppUserMapper.xml

@@ -4,70 +4,72 @@
     <insert id="addOne" parameterType="com.ytpm.app.model.YtDyzUser">
         insert into yt_dyz_user
         (
-         user_id,
-         nick_name,
-         head_img,
-         registry_time,
-         last_login_time,
-         last_login_ip,
-         login_days,
-         total_video,
-         total_income,
-         red_packet_balance,
-         red_packet_amount,
-         points_balance,
-         points_total,
-         withdraw_total,
-         sign_days,
-         user_status,
-         risk_reason,
-         wx_open_id,
-         ditch_id,
-         platform_id,
-         app_id,
-         power,
-         phone,
-         phone_json,
-         device_id
+            user_id,
+            nick_name,
+            head_img,
+            registry_time,
+            last_login_time,
+            last_login_ip,
+            login_days,
+            total_video,
+            total_income,
+            nearly_income,
+            red_packet_balance,
+            red_packet_amount,
+            points_balance,
+            points_total,
+            withdraw_total,
+            sign_days,
+            user_status,
+            risk_reason,
+            wx_open_id,
+            ditch_id,
+            platform_id,
+            app_id,
+            power,
+            phone,
+            phone_json,
+            device_id
         )
         values
-        (
-         #{userId},
-         #{nickName},
-         #{headImg},
-         #{registryTime},
-         #{lastLoginTime},
-         #{lastLoginIp},
-         #{loginDays},
-         #{totalVideo},
-         #{totalIncome},
-         #{redPacketBalance},
-         #{redPacketAmount},
-         #{pointsBalance},
-         #{pointsTotal},
-         #{withdrawTotal},
-         #{signDays},
-         #{userStatus},
-         #{riskReason},
-         #{wxOpenId},
-         #{ditchId},
-         #{platformId},
-         #{appId},
-         #{power},
-         #{phone},
-         #{phoneJson},
-         #{deviceId}
-        )
+            (
+                #{userId},
+                #{nickName},
+                #{headImg},
+                #{registryTime},
+                #{lastLoginTime},
+                #{lastLoginIp},
+                #{loginDays},
+                #{totalVideo},
+                #{totalIncome},
+                #{nearlyIncome},
+                #{redPacketBalance},
+                #{redPacketAmount},
+                #{pointsBalance},
+                #{pointsTotal},
+                #{withdrawTotal},
+                #{signDays},
+                #{userStatus},
+                #{riskReason},
+                #{wxOpenId},
+                #{ditchId},
+                #{platformId},
+                #{appId},
+                #{power},
+                #{phone},
+                #{phoneJson},
+                #{deviceId}
+            )
     </insert>
     <insert id="addPowerRecord">
         insert into yt_dyz_power_record
         (
-         record_id, user_id, type, remark, add_time
+            record_id, user_id, type, remark, add_time
         )
         values
-        (
-         #{recordId},#{userId},#{type},#{remark},#{addTime}
-        )
+            (
+                #{recordId},#{userId},#{type},#{remark},#{addTime}
+            )
     </insert>
     <insert id="saveAppConfig">
         insert into yt_app_default_config
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-           user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
-        and ditch_id = #{ditchId}
+          and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-            user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -288,15 +299,17 @@
         </if>
         <if test="appIds != null and appIds != ''">
             and app_id in
-                <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
-                    #{item}
-                </foreach>
+            <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
+                #{item}
+            </foreach>
         </if>
         order by user_id desc
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -338,37 +352,38 @@
     </resultMap>
     <select id="getUserList" resultMap="UserMap">
         select
-            du.user_id,
-            du.head_img,
-            du.nick_name,
-            du.phone,
-            du.device_id,
-            du.registry_time,
-            du.last_login_time,
-            du.last_login_ip,
-            du.login_days,
-            du.total_video,
-            du.total_income,
-            du.red_packet_balance,
-            du.red_packet_amount,
-            du.points_balance,
-            du.points_total,
-            du.withdraw_total,
-            du.sign_days,
-            du.user_status,
-            du.risk_reason,
-            du.wx_open_id,
-            du.ditch_id,
-            du.app_id,
-            du.platform_id,
-            du.power,
-            lr.record_id,
-            lr.login_time,
-            lr.device_brand,
-            lr. device_model,
-            lr.login_ip,
-            lr.operator,
-            lr.ip_addr
+        du.user_id,
+        du.head_img,
+        du.nick_name,
+        du.phone,
+        du.device_id,
+        du.registry_time,
+        du.last_login_time,
+        du.last_login_ip,
+        du.login_days,
+        du.total_video,
+        du.total_income,
+        du.nearly_income,
+        du.red_packet_balance,
+        du.red_packet_amount,
+        du.points_balance,
+        du.points_total,
+        du.withdraw_total,
+        du.sign_days,
+        du.user_status,
+        du.risk_reason,
+        du.wx_open_id,
+        du.ditch_id,
+        du.app_id,
+        du.platform_id,
+        du.power,
+        lr.record_id,
+        lr.login_time,
+        lr.device_brand,
+        lr. device_model,
+        lr.login_ip,
+        lr.operator,
+        lr.ip_addr
         from yt_dyz_user du
         left join yt_dyz_login_record lr on du.user_id = lr.user_id
         <where>
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,25 +493,25 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-        and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
         select
-            config_id, config_name, open_id, secret, app_id, app_key, app_type, user_path, login_path, ad_path,
-            answer_path, power_path,taku_app_id, taku_key, taku_banner_pid, taku_native_pid, taku_reward_pid,
-            taku_interstitial_pid, can_use_root, can_use_adb, can_use_float, can_accumulation,can_simulator,
-            ditch_id, power_wait_time, interstitial_interval_time,
-            low_value_tip, brush_tip, flow_interval_time,task_limit_tip,start_wait_time,can_cache_video
+        config_id, config_name, open_id, secret, app_id, app_key, app_type, user_path, login_path, ad_path,
+        answer_path, power_path,taku_app_id, taku_key, taku_banner_pid, taku_native_pid, taku_reward_pid,
+        taku_interstitial_pid, can_use_root, can_use_adb, can_use_float, can_accumulation,can_simulator,
+        ditch_id, power_wait_time, interstitial_interval_time,
+        low_value_tip, brush_tip, flow_interval_time,task_limit_tip,start_wait_time,can_cache_video
         from yt_app_default_config
         where app_id in
         <foreach collection="appIds.split(',')" item="item" separator="," open="(" close=")">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-            sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -524,11 +536,11 @@
     </select>
     <select id="getAppRanking" resultType="com.ytpm.middle.view.AppRankingListVO">
         SELECT
-            u.app_id,
-            sum( ar.revenue ) totalRevenue
+        u.app_id,
+        sum( ar.revenue ) totalRevenue
         FROM
-            yt_dyz_ad_record ar
-            JOIN yt_dyz_user u ON ar.user_id = u.user_id
+        yt_dyz_ad_record ar
+        JOIN yt_dyz_user u ON ar.user_id = u.user_id
         <where>
             <if test="sortBy != null">
                 <choose>
@@ -545,21 +557,21 @@
             </if>
         </where>
         GROUP BY
-            u.app_id
+        u.app_id
         ORDER BY
-            sum( ar.revenue ) DESC
+        sum( ar.revenue ) DESC
         LIMIT #{limit}
     </select>
     <select id="getUserRanking" resultType="com.ytpm.middle.view.UserRankingListVO">
         SELECT
-            u.user_id,
-            u.nick_name,
-            u.head_img,
-            u.total_video,
-            sum( ar.revenue ) totalIncome
+        u.user_id,
+        u.nick_name,
+        u.head_img,
+        u.total_video,
+        sum( ar.revenue ) totalIncome
         FROM
-            yt_dyz_ad_record ar
-                JOIN yt_dyz_user u ON ar.user_id = u.user_id
+        yt_dyz_ad_record ar
+        JOIN yt_dyz_user u ON ar.user_id = u.user_id
         <where>
             <if test="sortBy != null">
                 <choose>
@@ -577,12 +589,12 @@
         </where>
         GROUP BY ar.user_id
         ORDER BY
-            sum( ar.revenue ) DESC
+        sum( ar.revenue ) DESC
         limit #{limit}
     </select>
     <select id="countUserByAppIds" resultType="java.lang.Integer">
         select
-            count(user_id)
+        count(user_id)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -591,7 +603,7 @@
     </select>
     <select id="countRevenueByAppIds" resultType="java.math.BigDecimal">
         select
-            sum(total_income)
+        sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -600,7 +612,7 @@
     </select>
     <select id="countBannedByAppIds" resultType="java.lang.Integer">
         select
-            count(user_id)
+        count(user_id)
         from yt_dyz_user
         where user_status > 1 and app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -639,8 +651,8 @@
     </select>
     <select id="countRegistryHour" resultType="com.ytpm.middle.view.AppUserHourVO">
         select
-            DATE_FORMAT(registry_time,'%Y-%m-%d %H:00:00') as `time`,
-            count(user_id) `count`
+        DATE_FORMAT(registry_time,'%Y-%m-%d %H:00:00') as `time`,
+        count(user_id) `count`
         from yt_dyz_user
         where app_id = #{appId}
         <if test="type != null and type ==1">
@@ -673,7 +685,7 @@
     </select>
     <select id="queryByUserIds" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
         from yt_dyz_user
         where user_id in
         <foreach collection="userIds.split(',')" separator="," item="item"  open="(" close=")">
@@ -701,21 +713,21 @@
     </resultMap>
     <select id="queryTodayUserAd" resultMap="UserAdMap">
         select
-            u.user_id,
-            u.app_id,
-            u.nick_name,
-            ar.record_id,
-            ar.placement_id,
-            ar.ad_source_id,
-            ar.ad_source_type,
-            ar.ad_source_index,
-            ar.revenue,
-            ar.ecpm,
-            ar.network_form_id,
-            ar.network_name,
-            ar.network_placement_id,
-            ar.finish_time,
-            ar.begin_time
+        u.user_id,
+        u.app_id,
+        u.nick_name,
+        ar.record_id,
+        ar.placement_id,
+        ar.ad_source_id,
+        ar.ad_source_type,
+        ar.ad_source_index,
+        ar.revenue,
+        ar.ecpm,
+        ar.network_form_id,
+        ar.network_name,
+        ar.network_placement_id,
+        ar.finish_time,
+        ar.begin_time
         from yt_dyz_ad_record ar
         join yt_dyz_user u on ar.user_id = u.user_id
         where ar.ad_source_type = #{adSourceType} and ar.app_id = #{appId} and ar.user_id in
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-picking/picking-service/src/main/java/com/ytpm/picking/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-picking/picking-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-proverb/proverb-service/src/main/java/com/ytpm/proverb/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-proverb/proverb-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-raisepig/raisepig-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-summary/summary-service/src/main/java/com/ytpm/summary/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-summary/summary-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-typing/typing-service/src/main/java/com/ytpm/typing/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-typing/typing-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-vitality/vitality-service/src/main/java/com/ytpm/vitality/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-vitality/vitality-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-walk/walk-service/src/main/java/com/ytpm/walk/service/impl/AdServiceImpl.java

@@ -75,7 +75,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-walk/walk-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>

+ 1 - 1
yt-walking/walking-service/src/main/java/com/ytpm/walking/service/impl/AdServiceImpl.java

@@ -76,7 +76,7 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user = appUserMapper.selectPrimaryKey(param.getUserId());
-        log.error(StrUtil.format("[saveRecord]:{} ", param.getBeginTime()));
+        log.warn(StrUtil.format("[saveRecord] userId:{} revenue:{} ", param.getUserId(), param.getRevenue()));
         if(Objects.isNull(user)){
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }

+ 51 - 24
yt-walking/walking-service/src/main/resources/mapper/AppUserMapper.xml

@@ -13,6 +13,7 @@
             login_days,
             total_video,
             total_income,
+            nearly_income,
             red_packet_balance,
             red_packet_amount,
             points_balance,
@@ -41,6 +42,7 @@
                 #{loginDays},
                 #{totalVideo},
                 #{totalIncome},
+                #{nearlyIncome},
                 #{redPacketBalance},
                 #{redPacketAmount},
                 #{pointsBalance},
@@ -211,6 +213,9 @@
             <if test="totalIncome != null">
                 total_income = #{totalIncome},
             </if>
+            <if test="nearlyIncome != null">
+                nearly_income = #{nearlyIncome},
+            </if>
             <if test="redPacketBalance != null">
                 red_packet_balance = #{redPacketBalance},
             </if>
@@ -252,14 +257,20 @@
     </delete>
     <select id="getYtAppUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+            user_id, app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+            registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+            red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+            sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where wx_open_id = #{openid}
           and ditch_id = #{ditchId}
     </select>
     <select id="queryAll" resultType="com.ytpm.app.view.YtAppUserListView">
         select
-        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, ditch_id, nick_name,head_img, power,
+        registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         from yt_dyz_user
         where 1 = 1
         <if test="userId != null and userId !=''">
@@ -296,7 +307,9 @@
     </select>
     <select id="selectPrimaryKey" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power
+            user_id,app_id,phone,device_id, ditch_id, head_img, nick_name, registry_time, last_login_time, last_login_ip,
+            login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, platform_id, power, nearly_income
         from yt_dyz_user
         where user_id = #{userId}
     </select>
@@ -312,6 +325,7 @@
         <result column="login_days" property="loginDays" />
         <result column="total_video" property="totalVideo" />
         <result column="total_income" property="totalIncome" />
+        <result column="nearly_income" property="nearlyIncome" />
         <result column="red_packet_balance" property="redPacketBalance" />
         <result column="red_packet_amount" property="redPacketAmount" />
         <result column="points_balance" property="pointsBalance" />
@@ -349,6 +363,7 @@
         du.login_days,
         du.total_video,
         du.total_income,
+        du.nearly_income,
         du.red_packet_balance,
         du.red_packet_amount,
         du.points_balance,
@@ -390,11 +405,10 @@
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">
         SELECT
-        user_id,app_id,phone,device_id, nick_name, head_img, power, registry_time,
-        last_login_time, last_login_ip, login_days, total_video,
-        total_income, red_packet_balance, red_packet_amount,
-        points_balance, points_total, withdraw_total, sign_days,
-        user_status, risk_reason, wx_open_id, platform_id
+        user_id,app_id,phone,device_id, nick_name, head_img, power,
+        registry_time,last_login_time, last_login_ip, login_days, total_video, total_income, nearly_income,
+        red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total,
+        sign_days, user_status, risk_reason, wx_open_id, platform_id
         FROM yt_dyz_user
         <where>
             <if test="startTime != null">
@@ -479,16 +493,16 @@
     </select>
     <select id="queryByOpenid" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
+            user_id,phone,device_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power
         from yt_dyz_user
         where wx_open_id = #{openid}
     </select>
     <select id="getByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
-        where device_id = #{deviceId}
-          and wx_open_id = #{openid}
+        where device_id = #{deviceId} and wx_open_id = #{openid}
         limit 1
     </select>
     <select id="getConfigByIds" resultType="com.ytpm.app.view.WxDefaultConfig">
@@ -505,8 +519,7 @@
         </foreach>
     </select>
     <select id="getAdCount" resultType="java.lang.Integer">
-        select
-        sum(total_video)
+        select sum(total_video)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -514,8 +527,7 @@
         </foreach>
     </select>
     <select id="getRevenueCount" resultType="java.math.BigDecimal">
-        select
-        sum(total_income)
+        select sum(total_income)
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -726,7 +738,10 @@
     </select>
     <select id="getMonthRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id
+        user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+        total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+        withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+        power, phone, device_id
         from yt_dyz_user
         where app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
@@ -755,20 +770,25 @@
     </select>
     <select id="getLastRegistryUser" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId}
     </select>
 
     <select id="getByDeviceAndDitch" resultType="com.ytpm.app.model.YtDyzUser">
         select
-            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id, power, phone, device_id, phone_json
+            user_id, head_img, nick_name, registry_time, last_login_time, last_login_ip, login_days,
+            total_video, total_income, nearly_income, red_packet_balance, red_packet_amount, points_balance, points_total,
+            withdraw_total, sign_days, user_status, risk_reason, wx_open_id, ditch_id, app_id, platform_id,
+            power, phone, device_id, phone_json
         from yt_dyz_user
         where device_id = #{deviceId} and ditch_id = #{ditchId} limit 1
     </select>
     <select id="getPlatformByDeviceId" resultType="java.lang.String">
-        select
-            platform_id
+        select platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
         limit 1
@@ -784,8 +804,15 @@
     </update>
     <update id="updateTotal">
         UPDATE yt_dyz_user
-        SET total_video = COALESCE(total_video, 0) + #{videoCount},
-            total_income = COALESCE(total_income, 0) + #{revenue}
+        SET nearly_income = 0, nearly_begin_time = NOW()
         WHERE user_id = #{userId}
+          AND last_login_time <![CDATA[ < ]]>  DATE_SUB(NOW(), INTERVAL 3 DAY)
+          AND IFNULL(nearly_begin_time, NOW()) <![CDATA[ < ]]> DATE_SUB(NOW(), INTERVAL 3 DAY);
+        UPDATE yt_dyz_user SET nearly_begin_time = NOW() WHERE user_id = #{userId} AND nearly_begin_time IS NULL;
+        UPDATE yt_dyz_user
+        SET total_video = COALESCE(total_video, 0) + #{videoCount},
+            total_income = COALESCE(total_income, 0) + #{revenue},
+            nearly_income = COALESCE(nearly_income, 0) + #{revenue}
+        WHERE user_id = #{userId};
     </update>
 </mapper>