Przeglądaj źródła

coding:投流代码提交

zhangqin 5 dni temu
rodzic
commit
01a80b7c61

+ 1 - 0
fs-ad-new-api/src/main/java/com/fs/app/facade/CallbackProcessingFacadeServiceImpl.java

@@ -233,6 +233,7 @@ public class CallbackProcessingFacadeServiceImpl implements CallbackProcessingFa
                 // 线上规则--群活码
                 QwGroupActual qwGroupActual = actualService.getGroupActualByAllocationRuleId(allocationRuleId);
                 byTraceId.setQwGroupActualId(qwGroupActual.getId());
+                byTraceId.setQwGroupLiveCodeId(qwGroupActual.getLiveCodeId());
                 qrCode = qwGroupActual.getGroupUrl();
             } else if (launchType.equals(2)) {
                 // 线下规则--个人活码

+ 1 - 1
fs-ad-new-api/src/main/java/com/fs/app/task/ConversionRetryTask.java

@@ -37,7 +37,7 @@ public class ConversionRetryTask {
      * 转化回传重试任务
      * cron: 每10分钟执行
      */
-    @Scheduled(cron = "0 */1 * * * ?")
+    // @Scheduled(cron = "0 */1 * * * ?")
     @DistributeLock(scene = "task", key = "conversion_retry", waitTime = 0, errorMsg = "任务已执行")
     public void execute() {
         // 查询待重试的转化记录

+ 177 - 6
fs-ad-new-api/src/main/java/com/fs/app/task/DataSyncTask.java

@@ -1,13 +1,25 @@
 package com.fs.app.task;
 
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.fs.newAdv.domain.Lead;
+import com.fs.newAdv.service.ILeadService;
 import com.fs.newAdv.service.ISiteStatisticsService;
+import com.fs.qw.domain.QwAssignRuleUser;
+import com.fs.qw.domain.QwGroupLiveCode;
+import com.fs.qw.service.IQwAssignRuleUserService;
+import com.fs.qw.service.IQwGroupLiveCodeService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 数据同步定时任务
@@ -23,31 +35,190 @@ public class DataSyncTask {
 
     @Autowired
     private ISiteStatisticsService statisticsService;
+    @Autowired
+    private ILeadService leadService;
+    @Autowired
+    private IQwGroupLiveCodeService qwGroupLiveCodeService;
+    @Autowired
+    private IQwAssignRuleUserService qwAssignRuleUserService;
 
 
     /**
      * 数据同步任务->同步昨日数据
-     * cron: 每天凌晨一点统计昨日站点数据
+     * cron: 每天00:10
      */
-    @Scheduled(cron = "0 0 1 * * ?")
+    // @Scheduled(cron = "0 10 0 * * ?")
     public void syncYesterdayData() {
         String batchNo = DateUtil.format(LocalDateTime.now().minusDays(1), "yyyy-MM-dd");
-        statisticsService.syncData(batchNo,1);
+        statisticsService.syncData(batchNo, 1);
     }
 
     /**
      * 数据同步任务->当日数据
      * cron: 每2小时统计站点数据
      */
-    // @Scheduled(cron = "0 0/2 * * * ?")
-    @Scheduled(cron = "0 0/1 * * * ?")
+    // @Scheduled(cron = "0 0 0/1 * * ?")
     public void syncTodayData() {
         String batchNo = DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd");
-        statisticsService.syncData(batchNo,1);
+        statisticsService.syncData(batchNo, 1);
+    }
+
+
+    /**
+     * 今日加群数据
+     * cron: 每1小时统计站点数据
+     */
+    // @Scheduled(cron = "0 0 0/1 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
+
+    public void weiChatGroupToDayData() {
+        // 统计今日加群数量
+        Optional.ofNullable(leadService.getToDayGroupNum())
+                .orElse(Collections.emptyList())
+                .stream()
+                .map(Lead::getQwGroupLiveCodeId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.groupingBy(
+                        Function.identity(),
+                        Collectors.counting()
+                ))
+                .forEach((k, v) -> {
+                    if (v > 0) {
+                        qwGroupLiveCodeService.update(
+                                new LambdaUpdateWrapper<QwGroupLiveCode>()
+                                        .eq(QwGroupLiveCode::getId, k)
+                                        .set(QwGroupLiveCode::getToDayNum, v)
+                        );
+                    }
+                });
     }
 
+    /**
+     * 累计加群数据
+     * cron: 每天00:20
+     */
+    // @Scheduled(cron = "0 20 0 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
+
+    public void weiChatGroupCountData() {
+        // 统计累积加群数量
+        Optional.ofNullable(leadService.getYesterdayGroupNum())
+                .orElse(Collections.emptyList())
+                .stream()
+                .map(Lead::getQwGroupLiveCodeId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.groupingBy(
+                        Function.identity(),
+                        Collectors.counting()
+                ))
+                .forEach((k, v) -> {
+                    if (v > 0) {
+                        QwGroupLiveCode byId = qwGroupLiveCodeService.getById(k);
+                        byId.setCountNum(byId.getCountNum() + v.intValue());
+                        qwGroupLiveCodeService.updateById(byId);
+                    }
+                });
+    }
 
 
+    /**
+     * 微信当天数据
+     * cron: 一小时执行一次
+     */
+    // @Scheduled(cron = "0 0 0/1 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
+    public void weiChatToDayData() {
+        // 统计累积加微数量
+        Optional.ofNullable(leadService.getToDayWeiChatNum())
+                .ifPresent(item -> {
+                            // 统计分配数
+                            item.stream()
+                                    .map(Lead::getQwAssignRuleUserId)
+                                    .filter(Objects::nonNull)
+                                    .collect(Collectors.groupingBy(
+                                            Function.identity(),
+                                            Collectors.counting()
+                                    ))
+                                    .forEach((k, v) -> {
+                                        if (v > 0) {
+                                            qwAssignRuleUserService.update(
+                                                    new LambdaUpdateWrapper<QwAssignRuleUser>()
+                                                            .eq(QwAssignRuleUser::getId, k)
+                                                            .set(QwAssignRuleUser::getAssignNumToDay, v)
+                                            );
+                                        }
+                                    });
+                            // 统计添加数
+                            item.stream()
+                                    .filter(data -> data.getAddContactQw().equals(1))
+                                    .map(Lead::getQwAssignRuleUserId)
+                                    .filter(Objects::nonNull)
+                                    .collect(Collectors.groupingBy(
+                                            Function.identity(),
+                                            Collectors.counting()
+                                    ))
+                                    .forEach((k, v) -> {
+                                        if (v > 0) {
+                                            qwAssignRuleUserService.update(
+                                                    new LambdaUpdateWrapper<QwAssignRuleUser>()
+                                                            .eq(QwAssignRuleUser::getId, k)
+                                                            .set(QwAssignRuleUser::getAddNumToDay, v)
+                                            );
+                                        }
+                                    });
+                        }
+                );
+    }
 
+    /**
+     * 微信累计数据
+     * cron: 每天00:30
+     */
+    // @Scheduled(cron = "0 30 0 * * ?")
+    @Scheduled(cron = "0 0/1 * * * ?")
+    public void weiChatCountData() {
+        // 统计累积加微数量
+        Optional.ofNullable(leadService.getYesterdayWeiChatNum())
+                .ifPresent(item -> {
+                            // 统计分配数
+                            item.stream()
+                                    .map(Lead::getQwAssignRuleUserId)
+                                    .filter(Objects::nonNull)
+                                    .collect(Collectors.groupingBy(
+                                            Function.identity(),
+                                            Collectors.counting()
+                                    ))
+                                    .forEach((k, v) -> {
+                                        if (v > 0) {
+                                            QwAssignRuleUser byId = qwAssignRuleUserService.getById(k);
+                                            qwAssignRuleUserService.update(
+                                                    new LambdaUpdateWrapper<QwAssignRuleUser>()
+                                                            .eq(QwAssignRuleUser::getId, k)
+                                                            .set(QwAssignRuleUser::getAssignNumCount, v+byId.getAssignNumCount())
+                                            );
+                                        }
+                                    });
+                            // 统计添加数
+                            item.stream()
+                                    .filter(data -> data.getAddContactQw().equals(1))
+                                    .map(Lead::getQwAssignRuleUserId)
+                                    .filter(Objects::nonNull)
+                                    .collect(Collectors.groupingBy(
+                                            Function.identity(),
+                                            Collectors.counting()
+                                    ))
+                                    .forEach((k, v) -> {
+                                        if (v > 0) {
+                                            QwAssignRuleUser byId = qwAssignRuleUserService.getById(k);
+                                            qwAssignRuleUserService.update(
+                                                    new LambdaUpdateWrapper<QwAssignRuleUser>()
+                                                            .eq(QwAssignRuleUser::getId, k)
+                                                            .set(QwAssignRuleUser::getAddNumCount, v+byId.getAddNumCount())
+                                            );
+                                        }
+                                    });
+                        }
+                );
+    }
 }
 

+ 58 - 0
fs-ad-new-api/src/main/java/com/fs/framework/aspectj/ScheduledTaskAspect.java

@@ -0,0 +1,58 @@
+package com.fs.framework.aspectj;
+
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StopWatch;
+
+/**
+ * 定时任务执行时间切面
+ * 记录所有定时任务的执行时间和状态
+ *
+ * @author zhangqin
+ * @date 2025-12-15
+ */
+@Slf4j
+@Aspect
+@Component
+public class ScheduledTaskAspect {
+
+    @Pointcut("@annotation(org.springframework.scheduling.annotation.Scheduled) && execution(* com.fs.app.task..*(..))")
+    public void scheduledTaskPointcut() {
+    }
+
+    @Around("scheduledTaskPointcut()")
+    public Object aroundScheduledTask(ProceedingJoinPoint joinPoint) throws Throwable {
+        String taskName = getTaskName(joinPoint);
+        StopWatch stopWatch = new StopWatch(taskName);
+        stopWatch.start();
+
+        try {
+            Object result = joinPoint.proceed();
+            stopWatch.stop();
+            long executionTime = stopWatch.getTotalTimeMillis();
+            log.info("任务执行耗时: {} {}", taskName, executionTime);
+            return result;
+        } catch (Exception e) {
+            stopWatch.stop();
+            long executionTime = stopWatch.getTotalTimeMillis();
+            log.error("==================== 定时任务执行失败 ====================");
+            log.error("任务名称: [{}]", taskName);
+            log.error("执行耗时: [{}ms]", executionTime);
+            log.error("执行状态: [失败]");
+            log.error("错误信息: [{}]", e.getMessage(), e);
+            throw e;
+        }
+    }
+
+    /**
+     * 获取任务名称
+     */
+    private String getTaskName(ProceedingJoinPoint joinPoint) {
+        return joinPoint.getSignature().getName();
+    }
+}
+

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/newAdv/LandingPageTemplateController.java

@@ -74,7 +74,7 @@ public class LandingPageTemplateController {
         if (status != null) {
             queryWrapper.eq(LandingPageTemplate::getStatus, status);
         }
-
+        queryWrapper.ne(LandingPageTemplate::getStatus, 2);
         queryWrapper.orderByDesc(LandingPageTemplate::getCreateTime);
 
         IPage<LandingPageTemplate> result = templateService.page(pageParam, queryWrapper);

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/newAdv/SiteController.java

@@ -40,7 +40,7 @@ public class SiteController {
         wrapper.like(siteName != null, Site::getSiteName, siteName);
         wrapper.eq(launchType != null, Site::getLaunchType, launchType);
         wrapper.eq(advertiserId != null, Site::getAdvertiserId, advertiserId);
-        wrapper.orderByDesc(Site::getCreateTime);
+        wrapper.orderByAsc(Site::getCreateTime);
         IPage<Site> result = siteService.page(page, wrapper);
         return Result.success(result);
     }

+ 9 - 3
fs-company/src/main/java/com/fs/company/controller/qw/QwAssignRuleController.java

@@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * <p>
  * 前端控制器
@@ -28,7 +30,6 @@ public class QwAssignRuleController {
     @Autowired
     private IQwAssignRuleService qwAssignRuleService;
     @Autowired
-
     private IQwAssignRuleUserService qwAssignRuleUserService;
 
     /**
@@ -46,8 +47,13 @@ public class QwAssignRuleController {
         wrapper.orderByDesc(QwAssignRule::getCreateTime);
         IPage<QwAssignRule> result = qwAssignRuleService.page(page, wrapper);
         result.getRecords().forEach(item -> {
-            item.setQwAssignRuleUsers(qwAssignRuleUserService.list(new LambdaQueryWrapper<QwAssignRuleUser>()
-                    .eq(QwAssignRuleUser::getAssignId, item.getId())));
+            List<QwAssignRuleUser> list = qwAssignRuleUserService.list(new LambdaQueryWrapper<QwAssignRuleUser>()
+                    .eq(QwAssignRuleUser::getAssignId, item.getId()));
+            for (QwAssignRuleUser qwAssignRuleUser : list) {
+                qwAssignRuleUser.setAssignNumCount(qwAssignRuleUser.getAssignNumCount()+qwAssignRuleUser.getAssignNumToDay());
+                qwAssignRuleUser.setAddNumCount(qwAssignRuleUser.getAddNumCount()+qwAssignRuleUser.getAddNumToDay());
+            }
+            item.setQwAssignRuleUsers(list);
         });
         return Result.success(result);
     }

+ 9 - 1
fs-company/src/main/java/com/fs/company/controller/qw/QwGroupActualController.java

@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fs.common.result.Result;
 import com.fs.qw.domain.QwGroupActual;
+import com.fs.qw.domain.QwGroupLiveCode;
 import com.fs.qw.service.IQwGroupActualService;
+import com.fs.qw.service.IQwGroupLiveCodeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -22,11 +24,14 @@ import org.springframework.web.bind.annotation.*;
 @RestController
 @RequestMapping("/qwGroupActual")
 public class QwGroupActualController {
+    @Autowired
+    private IQwGroupLiveCodeService qwGroupLiveCodeService;
+
     @Autowired
     private IQwGroupActualService qwGroupActualService;
 
     /**
-     * 分页查询渠道
+     * 分页查询群活码实际二维码
      */
     @GetMapping("/page")
     public Result<IPage<QwGroupActual>> page(
@@ -55,6 +60,9 @@ public class QwGroupActualController {
         if (qwGroupLiveCode.getId() != null) {
             success = qwGroupActualService.updateById(qwGroupLiveCode);
         } else {
+            QwGroupLiveCode byId = qwGroupLiveCodeService.getById(qwGroupLiveCode.getLiveCodeId());
+            byId.setQrcodeNum(byId.getQrcodeNum() + 1);
+            qwGroupLiveCodeService.updateById(byId);
             success = qwGroupActualService.save(qwGroupLiveCode);
         }
         return success ? Result.success() : Result.error("创建失败");

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/qw/QwGroupLiveCodeController.java

@@ -26,7 +26,7 @@ public class QwGroupLiveCodeController {
     private IQwGroupLiveCodeService qwGroupLiveCodeService;
 
     /**
-     * 分页查询渠道
+     * 分页查询群活码
      */
     @GetMapping("/page")
     public Result<IPage<QwGroupLiveCode>> page(

+ 22 - 2
fs-qw-api/src/main/java/com/fs/app/service/QwDataCallbackService.java

@@ -1,6 +1,7 @@
 package com.fs.app.service;
 
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.fs.app.util.WXBizMsgCrypt;
 import com.fs.common.core.domain.AjaxResult;
@@ -227,13 +228,32 @@ public class QwDataCallbackService {
                                     String qwApiExternal = redisCache.getCacheObject(cacheKey);
                                     if (StringUtil.strIsNullOrEmpty(qwApiExternal)) {
                                         try {
+                                            String externalUserID = root.getElementsByTagName("ExternalUserID").item(0).getTextContent();
+                                            String userID = root.getElementsByTagName("UserID").item(0).getTextContent();
                                             // 5. 新增用户
-                                            qwExternalContactService.insertQwExternalContactByExternalUserId(root.getElementsByTagName("ExternalUserID").item(0).getTextContent(),root.getElementsByTagName("UserID").item(0).getTextContent(),null,corpId,State,WelcomeCode);
+                                            qwExternalContactService.insertQwExternalContactByExternalUserId(externalUserID,userID,null,corpId,State,WelcomeCode);
                                             // 6. 业务逻辑执行成功后,写入 Redis 缓存(有效期 10 分钟)
                                             redisCache.setCacheObject(cacheKey, "1", 10, TimeUnit.MINUTES);
 
                                             // 广告线索处理
-                                            leadService.updateAddMemberLead(root.getElementsByTagName("ExternalUserID").item(0).getTextContent(),root.getElementsByTagName("UserID").item(0).getTextContent(),corpId,State);
+                                            leadService.updateAddMemberLead(externalUserID,userID,corpId,State)
+                                                    .thenAccept(result -> {
+                                                        if (StrUtil.isNotEmpty(result)) {
+                                                            QwExternalContact qwExternalContact = qwExternalContactMapper.selectQwExternalByExternalIdAndCompanyIdToIdAndFs(externalUserID, userID, corpId);
+                                                            if (qwExternalContact == null){
+                                                                try {
+                                                                    Thread.sleep(2000);
+                                                                } catch (InterruptedException e) {
+                                                                    throw new RuntimeException(e);
+                                                                }
+                                                                qwExternalContact = qwExternalContactMapper.selectQwExternalByExternalIdAndCompanyIdToIdAndFs(externalUserID, userID, corpId);
+                                                            }
+                                                            QwExternalContact temp = new QwExternalContact();
+                                                            temp.setId(qwExternalContact.getId());
+                                                            temp.setTraceId(result);
+                                                            qwExternalContactMapper.updateById(temp);
+                                                        }
+                                                    });
                                         } catch (Exception e) {
                                             // 7. 业务逻辑失败时,删除缓存
                                             redisCache.deleteObject(cacheKey);

+ 1 - 1
fs-service/src/main/java/com/fs/newAdv/domain/LandingPageTemplate.java

@@ -50,7 +50,7 @@ public class LandingPageTemplate implements Serializable {
     private String cmsGroupName;
 
     /**
-     * 状态(0禁用 1启用)
+     * 状态(0禁用 1启用 2删除
      */
     private Integer status;
 

+ 4 - 0
fs-service/src/main/java/com/fs/newAdv/domain/Lead.java

@@ -60,6 +60,10 @@ public class Lead implements Serializable {
      * qw_group_actual表id
      */
     private Long qwGroupActualId;
+    /**
+     * qw_group_live_code表id
+     */
+    private Long qwGroupLiveCodeId;
     /**
      * qw_contact_way表id
      */

+ 19 - 0
fs-service/src/main/java/com/fs/newAdv/mapper/LeadMapper.java

@@ -3,6 +3,9 @@ package com.fs.newAdv.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.newAdv.domain.Lead;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 /**
  * 线索Mapper
@@ -12,5 +15,21 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface LeadMapper extends BaseMapper<Lead> {
+    /**
+     * 查询当日加群的数量
+     *
+     * @return
+     */
+    @Select("SELECT * FROM adv_lead WHERE add_contact_qw_group = 1 AND DATE(create_time) = CURDATE()")
+    List<Lead> getToDayGroupNum();
+
+    @Select("SELECT * FROM adv_lead WHERE add_contact_qw_group = 1 AND DATE(create_time) = CURDATE() - INTERVAL 1 DAY")
+    List<Lead> getYesterdayGroupNum();
+
+    @Select("SELECT * FROM adv_lead WHERE qw_assign_rule_user_id is not null AND DATE(create_time) = CURDATE()")
+    List<Lead> getToDayWeiChatNum();
+
+    @Select("SELECT * FROM adv_lead WHERE qw_assign_rule_user_id is not null AND DATE(create_time) = CURDATE() - INTERVAL 1 DAY")
+    List<Lead> getYesterdayWeiChatNum();
 }
 

+ 25 - 1
fs-service/src/main/java/com/fs/newAdv/service/ILeadService.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.newAdv.domain.Lead;
 import com.fs.newAdv.enums.AdvertiserTypeEnum;
 
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+
 /**
  * 站点管理服务
  *
@@ -30,7 +33,7 @@ public interface ILeadService extends IService<Lead> {
      * @param corpId
      * @param state
      */
-    void updateAddMemberLead(String externalUserID, String userID, String corpId, String state);
+    CompletableFuture<String> updateAddMemberLead(String externalUserID, String userID, String corpId, String state);
     /**
      * 小程序授权线索处理
      * @param traceId
@@ -51,5 +54,26 @@ public interface ILeadService extends IService<Lead> {
      * @param traceId
      */
     void updateAuthIndex(String traceId);
+
+    /**
+     * 查询当日加群的记录
+     * @return
+     */
+    List<Lead> getToDayGroupNum();
+    /**
+     * 查询当日加群的记录
+     * @return
+     */
+    List<Lead> getYesterdayGroupNum();
+    /**
+     * 查询当日加微的记录
+     * @return
+     */
+    List<Lead> getToDayWeiChatNum();
+    /**
+     * 查询昨日加微的记录
+     * @return
+     */
+    List<Lead> getYesterdayWeiChatNum();
 }
 

+ 25 - 2
fs-service/src/main/java/com/fs/newAdv/service/impl/LeadServiceImpl.java

@@ -19,7 +19,9 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDate;
+import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
 
 /**
  * 域名管理Service实现类
@@ -78,7 +80,7 @@ public class LeadServiceImpl extends ServiceImpl<LeadMapper, Lead> implements IL
 
     @Override
     @Async("asyncExecutor")
-    public void updateAddMemberLead(String externalUserID, String userID, String corpId, String state) {
+    public CompletableFuture<String> updateAddMemberLead(String externalUserID, String userID, String corpId, String state) {
         QwExternalContactResult externalContactResult = qwApiService.getExternalcontact(externalUserID, corpId);
         String unionid = externalContactResult.getExternal_contact().getUnionid();
         // 末次归因逻辑
@@ -107,10 +109,11 @@ public class LeadServiceImpl extends ServiceImpl<LeadMapper, Lead> implements IL
                 // 当日加微事件回调
                 conversionEventPublisher.publishConversionEvent(lead.getTraceId(), SystemEventTypeEnum.WEI_CHAT_TODAY);
             }
+            return CompletableFuture.completedFuture(lead.getTraceId());
         } else {
             log.info("广告归因线索不存在:{} {} {}", externalUserID, userID,corpId);
         }
-
+        return CompletableFuture.completedFuture(null);
     }
 
     @Override
@@ -156,5 +159,25 @@ public class LeadServiceImpl extends ServiceImpl<LeadMapper, Lead> implements IL
             log.error("发起进入小程序失败:{}", traceId);
         }
     }
+
+    @Override
+    public List<Lead> getToDayGroupNum() {
+        return this.baseMapper.getToDayGroupNum();
+    }
+
+    @Override
+    public List<Lead> getYesterdayGroupNum() {
+        return this.baseMapper.getYesterdayGroupNum();
+    }
+
+    @Override
+    public List<Lead> getToDayWeiChatNum() {
+        return this.baseMapper.getToDayWeiChatNum();
+    }
+
+    @Override
+    public List<Lead> getYesterdayWeiChatNum() {
+        return this.baseMapper.getYesterdayWeiChatNum();
+    }
 }
 

+ 1 - 1
fs-service/src/main/java/com/fs/qw/domain/QwGroupLiveCode.java

@@ -46,7 +46,7 @@ public class QwGroupLiveCode extends Model<QwGroupLiveCode> {
 
     @ApiModelProperty("累积加群数")
     @TableField("count_num")
-    private Long countNum;
+    private Integer countNum;
 
     @ApiModelProperty("项目名称")
     @TableField("project_name")