فهرست منبع

fix:IOS新增插入游客广告记录功能

zack 1 ماه پیش
والد
کامیت
4a2999887e

+ 3 - 1
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/AgentAppServiceImpl.java

@@ -123,7 +123,9 @@ public class AgentAppServiceImpl implements AgentAppService {
             appMapper.insertOne(app);
             //新增APP时要生成 app_default_config
             generateDefaultConfig(param,app);
-            saveDitch(app);
+            if (param.getAppType() == 2){
+                saveDitch(app);
+            }
         }
     }
 

+ 5 - 0
yt-ios-lemon/lemon-ios-service/src/main/java/com/ytpm/lemonios/dao/AdRecordMapper.java

@@ -52,4 +52,9 @@ public interface AdRecordMapper {
      * 查询今日广告
      */
     List<YtDyzAdRecord> getTodayRecord(@Param("appIds")String appIds,@Param("firstDay")String firstDay,@Param("lastDay")String lastDay);
+
+    /**
+     * 保存游客广告记录
+     */
+    void addOneVisitor(YtDyzAdRecord adRecord);
 }

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

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
 import com.ytpm.advertise.enums.AdPlatformTypeEnum;
 import com.ytpm.advertise.enums.AdSourceTypeEnum;
 import com.ytpm.agent.enums.UserStatusEnum;
@@ -20,6 +21,7 @@ import com.ytpm.lemonios.dao.AdRecordMapper;
 import com.ytpm.lemonios.dao.AppUserMapper;
 import com.ytpm.lemonios.service.AdService;
 import com.ytpm.middle.view.*;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -35,6 +37,7 @@ import java.util.*;
 import java.util.concurrent.CountDownLatch;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Service
 @RefreshScope
 public class AdServiceImpl implements AdService {
@@ -56,8 +59,20 @@ public class AdServiceImpl implements AdService {
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
         YtDyzUser user;
-        if (param.getUserId().isEmpty()) {
+        if (StrUtil.isEmpty(param.getUserId())) {
             user = appUserMapper.selectByIosId((param.getIosId()));
+            YtDyzAdRecord adRecord = new YtDyzAdRecord();
+            if(Objects.isNull(param.getBeginTime()) || "null".equals(param.getBeginTime())){
+                if ("null".equals(param.getBeginTime())) {
+                    log.warn("param beginTime is null !");
+                }
+                param.setBeginTime(param.getFinishTime());
+            }
+            BeanUtils.copyProperties(param, adRecord);
+            adRecord.setUserId(user.getUserId());
+            adRecord.setRecordId(IdUtil.fastSimpleUUID());
+            adRecord.setNetworkName(AdPlatformTypeEnum.getDesc(Integer.parseInt(param.getNetworkFormId())));
+            adRecordMapper.addOneVisitor(adRecord);
         } else {
             user = appUserMapper.selectPrimaryKey(param.getUserId());
         }

+ 40 - 0
yt-ios-lemon/lemon-ios-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -44,6 +44,46 @@
          #{appId}
         )
     </insert>
+    <insert id="addOneVisitor">
+        insert into yt_dyz_ad_record_visitor
+        (
+            record_id,
+            user_id,
+            nick_name,
+            placement_id,
+            ad_source_id,
+            revenue,
+            network_form_id,
+            network_name,
+            network_placement_id,
+            begin_time,
+            finish_time,
+            result_json,
+            ad_source_index,
+            ad_source_type,
+            ecpm,
+            app_id
+        )
+        values
+            (
+                #{recordId},
+                #{userId},
+                #{nickName},
+                #{placementId},
+                #{adSourceId},
+                #{revenue},
+                #{networkFormId},
+                #{networkName},
+                #{networkPlacementId},
+                ifnull(#{beginTime}, now()),
+                ifnull(#{finishTime}, now()),
+                #{resultJson},
+                #{adSourceIndex},
+                #{adSourceType},
+                #{ecpm},
+                #{appId}
+            )
+    </insert>
     <select id="countByAppIds" resultType="java.lang.Integer">
         select
             count(record_id)

+ 2 - 6
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -535,12 +535,8 @@ public class RiskServiceImpl implements RiskService {
             return Result.resultOk(RepMessage.QUERY_SUCCESS);
         }
         YtPlatformUserApp userApp;
-        if (dyzUser.getIosId()!=null) {
-            userApp =  appMapper.selectParentApp(dyzUser.getAppId());
-        } else {
-            YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
-            userApp =  appMapper.selectParentApp(ytApp.getSuperiorId());
-        }
+        YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
+        userApp =  appMapper.selectParentApp(ytApp.getSuperiorId());
         Object o = feignInvoker.invoke(userApp.getServiceName(), "adRecords", dyzUser.getUserId(),
                 AdSourceTypeEnum.rewarded_video.getAdSourceType());
         JSONObject object = JSON.parseObject(JSON.toJSONString(o));