Browse Source

fix:修复ios服务端查询缺陷

hidewnd 1 tuần trước cách đây
mục cha
commit
efa12fdf9d

+ 2 - 0
yt-common/src/main/java/com/ytpm/agent/param/AdRecordListParam.java

@@ -25,6 +25,8 @@ public class AdRecordListParam extends PageMeta {
 
     private String userId;
 
+    private String iosId;
+
     private String adsourceType;
 
     private Integer loginStatus;

+ 12 - 13
yt-ios-lemon/lemon-ios-service/src/main/java/com/ytpm/lemonios/controller/UserController.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ytpm.advertise.enums.AdSourceTypeEnum;
+import com.ytpm.agent.enums.AdRecordEnum;
 import com.ytpm.agent.enums.UserStatusEnum;
 import com.ytpm.agent.param.AdRecordListParam;
 import com.ytpm.agent.param.AuditCheckParam;
@@ -210,23 +211,21 @@ public class UserController {
     }
 
     @PostMapping("/adRecords/page")
-    public ResultTable<YtDyzAdRecord> adRecordsPage(@RequestBody AdRecordListParam param, Errors errors) {
-        PageHelper.startPage(param.getPage(), param.getLimit());
+    public ResultTable<YtDyzAdRecord> adRecordsPage(@RequestBody AdRecordListParam param) {
         YtDyzUser user = appUserMapper.selectById(param.getUserId());
-        List<YtDyzAdRecord> adrecords;
-        if (param.getLoginStatus() == 1){
-            adrecords = adRecordMapper.getByIosIdBeforeLogin(user.getIosId());
-            for (YtDyzAdRecord adrecord: adrecords){
-                if (adrecord.getUserId() == null){
-                    adrecord.setUserId(user.getUserId());
-                    adRecordMapper.updateOneVisitor(adrecord);
+        param.setIosId(user.getIosId());
+        PageHelper.startPage(param.getPage(), param.getLimit());
+        List<YtDyzAdRecord> adRecords = adRecordMapper.getByUserByParam(param);
+        if(CollUtil.isNotEmpty(adRecords) && AdRecordEnum.LOGIN_BEFORE.getCode().equals(param.getLoginStatus())){
+            for (YtDyzAdRecord adRecord: adRecords){
+                if (adRecord.getUserId() == null){
+                    adRecord.setUserId(user.getUserId());
+                    adRecordMapper.updateOneVisitor(adRecord);
                 }
-                adrecord.setLoginStatus(1);
+                adRecord.setLoginStatus(AdRecordEnum.LOGIN_BEFORE.getCode());
             }
-        } else {
-            adrecords = adRecordMapper.getByUserByParam(param);
         }
-        return ResultTable.resultTableOk(new PageInfo<>(adrecords));
+        return ResultTable.resultTableOk(new PageInfo<>(adRecords));
     }
 
     /**

+ 6 - 5
yt-ios-lemon/lemon-ios-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -143,16 +143,17 @@
     </select>
     <select id="getByUserByParam" resultType="com.ytpm.app.model.YtDyzAdRecord">
         select
-        record_id, user_id,app_id, nick_name, placement_id, ad_source_id, revenue, network_form_id, network_name,
-        network_placement_id, finish_time, begin_time,result_json,ad_source_type,ad_source_index,ecpm,
+        record_id, user_id,ios_id,app_id, nick_name, placement_id, ad_source_id, revenue, network_form_id,
+        network_name,network_placement_id, finish_time, begin_time,result_json,ad_source_type,ad_source_index,ecpm,
         ifnull(#{loginStatus}, 2) as loginStatus
         <if test="loginStatus != null and loginStatus == 1">
-            from yt_dyz_ad_record_visitor
+        from yt_dyz_ad_record_visitor
+        where (user_id = #{userId} or ios_id = #{iosId})
         </if>
         <if test="loginStatus == null or loginStatus != 1">
-            from yt_dyz_ad_record
-        </if>
+        from yt_dyz_ad_record
         where user_id = #{userId}
+        </if>
         <if test="adsourceType != null and adsourceType!=888">
             and ad_source_type = #{adsourceType}
         </if>