소스 검색

fix:IOS登录前校验bugFix1

zack 1 개월 전
부모
커밋
74a682c6d4

+ 18 - 14
yt-ios-lemon/lemon-ios-service/src/main/java/com/ytpm/lemonios/controller/WxController.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
+import com.ytpm.agent.enums.UserStatusEnum;
 import com.ytpm.agent.model.YtDitch;
 import com.ytpm.app.enums.AppTypeEnums;
 import com.ytpm.app.enums.LoginType;
@@ -14,15 +15,12 @@ import com.ytpm.app.model.YtDyzPowerRecord;
 import com.ytpm.app.model.YtDyzUser;
 import com.ytpm.app.param.IosLoginParam;
 import com.ytpm.app.param.WxLoginParam;
-import com.ytpm.app.view.IosPowerResView;
-import com.ytpm.app.view.IosUserInfo;
-import com.ytpm.app.view.WxDefaultConfig;
-import com.ytpm.app.view.WxLoginResult;
-import com.ytpm.app.view.WxUserInfo;
+import com.ytpm.app.view.*;
 import com.ytpm.feign.RiskFeign;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.StatusCode;
+import com.ytpm.handle.CommonException;
 import com.ytpm.lemonios.dao.AdRecordMapper;
 import com.ytpm.lemonios.dao.AppUserMapper;
 import com.ytpm.lemonios.dao.DitchMapper;
@@ -30,15 +28,9 @@ import com.ytpm.lemonios.service.AppUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
@@ -141,11 +133,23 @@ public class WxController {
             IosUserInfo userInfo = setIosUserInfo(param);
             user = appUserService.crudForNewTransIos(param, userInfo);
         }
-        List<YtDyzAdRecord> adRecordList = recordMapper.getByIosId(param.getIosId());
+        List<YtDyzAdRecord> adRecordList = recordMapper.getByIosIdBeforeLogin(param.getIosId());
         user.setPreAdRecordList(adRecordList);
         user.setLoginType(LoginType.VISITOR);
         user.setAppId("a689ab630d3e62");
-        riskFeign.checkLoginRisk(user);
+        Result<?> result = riskFeign.checkLoginRisk(user);
+        if (result.getCode() != 200) {
+            String errorMessage = result.getMessage();
+            if (user.getLoginType() == LoginType.VISITOR && RepMessage.RISK_VISITOR_LOWER_VALUE.equals(errorMessage)) {
+                WxDefaultConfig defaultConfig = appUserMapper.getLastDefaultConfig();
+                throw new CommonException(StrUtil.emptyToDefault(defaultConfig.getLowValueTip(), errorMessage));
+            }
+            throw new CommonException(errorMessage);
+        }
+        YtDyzUser newUser = new YtDyzUser();
+        newUser.setUserId(user.getUserId());
+        newUser.setUserStatus(UserStatusEnum.NORMAL.getCode());
+        appUserMapper.updateUser(newUser);
         return Result.resultObjOk(user);
     }
 

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

@@ -31,6 +31,11 @@ public interface AdRecordMapper {
      */
     List<YtDyzAdRecord> getByIosId(@Param("iosId") String iosId);
 
+    /**
+     * 查询激励视频记录
+     */
+    List<YtDyzAdRecord> getByIosIdBeforeLogin(@Param("iosId") String iosId);
+
     List<YtDyzAdRecord> getByUserByParam(AdRecordListParam param);
 
     /**

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

@@ -122,6 +122,11 @@ public interface AppUserMapper {
      */
     WxDefaultConfig getLastOne(@Param("appId") String appId);
 
+    /**
+     * 获取最近一条默认配置
+     */
+    WxDefaultConfig getLastDefaultConfig();
+
     /**
      * 根据微信openid查询用户
      */

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

@@ -58,9 +58,8 @@ public class AdServiceImpl implements AdService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Result<?> saveRecord(DyzAdRecordParam param) {
-        YtDyzUser user;
+        YtDyzUser user = new YtDyzUser();
         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())) {
@@ -69,7 +68,7 @@ public class AdServiceImpl implements AdService {
                 param.setBeginTime(param.getFinishTime());
             }
             BeanUtils.copyProperties(param, adRecord);
-            adRecord.setUserId(user.getUserId());
+            adRecord.setIosId(param.getIosId());
             adRecord.setRecordId(IdUtil.fastSimpleUUID());
             adRecord.setNetworkName(AdPlatformTypeEnum.getDesc(Integer.parseInt(param.getNetworkFormId())));
             adRecordMapper.addOneVisitor(adRecord);

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

@@ -50,6 +50,7 @@
             record_id,
             user_id,
             nick_name,
+            ios_id,
             placement_id,
             ad_source_id,
             revenue,
@@ -69,6 +70,7 @@
                 #{recordId},
                 #{userId},
                 #{nickName},
+                #{iosId},
                 #{placementId},
                 #{adSourceId},
                 #{revenue},
@@ -109,6 +111,12 @@
         from yt_dyz_ad_record
         where ios_id = #{iosId}
     </select>
+    <select id="getByIosIdBeforeLogin" resultType="com.ytpm.app.model.YtDyzAdRecord">
+        select
+            record_id, user_id,app_id,ios_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
+        from yt_dyz_ad_record_visitor
+        where ios_id = #{iosId}
+    </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,

+ 166 - 8
yt-ios-lemon/lemon-ios-service/src/main/resources/mapper/AppUserMapper.xml

@@ -456,33 +456,191 @@
     </select>
     <select id="getByAppId" resultType="com.ytpm.app.view.WxDefaultConfig">
         select
-            config_id, config_name, open_id appId, secret, app_id platformAppId, app_key platformAppSecret, app_type,user_path,login_path,ad_path,answer_path,power_path
-             ,can_simulator,taku_app_id,taku_key,taku_banner_pid,taku_interstitial_pid,taku_reward_pid,taku_native_pid,can_use_adb,can_accumulation,can_use_float,can_use_root,ditch_id,power_wait_time,interstitial_interval_time
+            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 = #{appId}
     </select>
     <select id="getDefaultConfig" resultType="com.ytpm.app.view.WxDefaultConfig">
         select
-            config_id, config_name, open_id appId, secret, app_id platformAppId, app_key platformAppSecret, app_type,user_path,login_path,ad_path,answer_path,power_path
-                     ,can_simulator,taku_app_id,taku_key,taku_banner_pid,taku_interstitial_pid,taku_reward_pid,taku_native_pid,can_use_adb,can_accumulation,can_use_float,can_use_root,ditch_id,power_wait_time,interstitial_interval_time
+            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_type = #{appType}
     </select>
     <select id="getDefaultConfigByDitchId" 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
-             ,can_simulator,taku_app_id,taku_key,taku_banner_pid,taku_interstitial_pid,taku_reward_pid,taku_native_pid,can_use_adb,can_accumulation,can_use_float,can_use_root,ditch_id,power_wait_time,interstitial_interval_time
+            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 ditch_id = #{ditchId}
     </select>
     <select id="getLastOne" 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
-             ,can_simulator,taku_app_id,taku_key,taku_banner_pid,taku_interstitial_pid,taku_reward_pid,taku_native_pid,can_use_adb,can_accumulation,can_use_float,can_use_root,ditch_id,power_wait_time,interstitial_interval_time
+            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 =  #{appId}
         limit 1
     </select>
+    <select id="getLastDefaultConfig" 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
+        FROM yt_app_default_config
+        ORDER BY config_id DESC
+            LIMIT 1
+    </select>
     <select id="getSecretByAppId" resultType="java.lang.String">
         select
            secret

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

@@ -1024,8 +1024,13 @@ public class RiskServiceImpl implements RiskService {
                 param.setOperatorName("系统风控");
                 param.setAgentId(configMapper.getApplicationOwner(dyzUser.getAppId()));
                 addBannedRecord(Collections.singletonList(dyzUser.getUserId()),param);
-                YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
-                YtPlatformUserApp userApp =  appMapper.selectParentApp(ytApp.getSuperiorId());
+                YtPlatformUserApp userApp;
+                if (dyzUser.getIosId() != null) {
+                    userApp = appMapper.selectParentApp(dyzUser.getAppId());
+                } else {
+                    YtApp ytApp = appMapper.selectRiskApp(dyzUser.getAppId());
+                    userApp =  appMapper.selectParentApp(ytApp.getSuperiorId());
+                }
                 ScheduledExecutorService scheduled  = Executors.newSingleThreadScheduledExecutor();
                 scheduled.schedule(()->{
                     YtDyzUser next = new YtDyzUser();