Kaynağa Gözat

fix 今日新增大额度用户提示

zoujiajian 2 yıl önce
ebeveyn
işleme
50e8e67d8b

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/mapper/UserMapper.java

@@ -1,5 +1,6 @@
 package com.cyksj.mapper;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.User;
 import org.apache.ibatis.annotations.Param;
@@ -64,4 +65,6 @@ public interface UserMapper extends BaseMapper<User> {
     Integer subYhsMoney(@Param("shopUserId") Long shopUserId, @Param("subMoney") BigDecimal subMoney);
 
 	Integer selectUnBindUserNum();
+
+    Integer getLargeNewConsumer(@Param("beginOfDay") DateTime beginOfDay, @Param("largeLimit") String largeLimit);
 }

+ 11 - 0
netflix-dao/src/main/resources/mapper/UserMapper.xml

@@ -16,4 +16,15 @@
                             from `user_bind_detail`) s on s.user_id = u.id
         where s.id is null
     </select>
+
+    <select id="getLargeNewConsumer" resultType="java.lang.Integer">
+        select count(s.user_id)
+        from (select user_id
+              from order_don o
+              where o.relation_id != 0 and o.status not in ('close','noPayment','refund') and created_time >= #{beginOfDay}
+              group by user_id
+              having sum(money) > #{largeLimit}) s
+        where not exists (select user_id,sum(money) from order_don o where o.user_id = s.user_id and o.relation_id != 0 and o.status not in ('close','noPayment','refund') and o.created_time &lt; #{beginOfDay} group by user_id, date_format(o.created_time,'%Y-%m-%d')
+        having sum(money) >  #{largeLimit})
+    </select>
 </mapper>

+ 15 - 2
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserController.java

@@ -3,6 +3,8 @@ package com.cyksj.web.controller.manage;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alipay.api.AlipayApiException;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
@@ -411,9 +413,9 @@ public class CmsUserController{
      */
     @GetMapping("/get/consume/large/user")
     public Result<SearchResult<UserView>> getLargeConsumer() {
-        MapBuilder builder = MapUtils.builder();
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
         String largeLimit = "200000";
-        String fu = String.format("(select user_id from order_don o where o.relation_id != 0 and o.status not in ('close','noPayment','refund') group by user_id, date_format(o.created_time,'%%Y-%%m-%%d')" +
+        String fu = String.format("(select distinct user_id from order_don o where o.relation_id != 0 and o.status not in ('close','noPayment','refund') group by user_id, date_format(o.created_time,'%%Y-%%m-%%d')" +
                 "having sum(money) > %s) ln inner join", largeLimit);
         String fuOn = " on ln.user_id = u.id";
         builder.put("fu", fu);
@@ -421,4 +423,15 @@ public class CmsUserController{
         SearchResult<UserView> search = beanSearcher.search(UserView.class, builder.build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
     }
+
+    /**
+     * 是否有最新的用户产生
+     */
+    @GetMapping("/get/consume/large/newUser")
+    public Result<Boolean> getLargeNewConsumer() {
+        String largeLimit = "200000";
+        DateTime beginOfDay = DateUtil.beginOfDay(DateTime.now());
+        Integer newConsumerCount = userMapper.getLargeNewConsumer(beginOfDay, largeLimit);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(newConsumerCount > 0 ? true : false);
+    }
 }