Browse Source

fix: 风控规则更新兼容优化

hidewnd 1 tháng trước cách đây
mục cha
commit
e4bf378863

+ 0 - 25
yt-common/src/main/java/com/ytpm/app/param/AdRecordStatisticParam.java

@@ -1,25 +0,0 @@
-package com.ytpm.app.param;
-
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * @author lih
- * @date 2025-09-12 18:23
- */
-@Data
-public class AdRecordStatisticParam {
-
-    @ApiModelProperty("用户Id")
-    private String userId;
-
-    @ApiModelProperty("广告来源类型")
-    private Integer adSourceType;
-
-    @ApiModelProperty("统计开始时间")
-    private Date startTime;
-
-}

+ 4 - 3
yt-lime/lime-feign/src/main/java/com/ytpm/lime/feign/LimeFeign.java

@@ -7,7 +7,6 @@ import com.ytpm.agent.view.AgentTopCountView;
 import com.ytpm.app.model.YtAppDefaultConfig;
 import com.ytpm.app.model.YtDyzAdRecord;
 import com.ytpm.app.model.YtDyzUser;
-import com.ytpm.app.param.AdRecordStatisticParam;
 import com.ytpm.app.param.AppQueryUserTodayTimeParam;
 import com.ytpm.app.param.AppUserParam;
 import com.ytpm.app.param.AppUserQueryParam;
@@ -53,11 +52,13 @@ public interface LimeFeign {
     @GetMapping("/user/adRecords")
     ResultTable<YtDyzAdRecord> adRecords(@RequestParam(name = "userId",required = true) String userId, @RequestParam(name = "adsourceType",required = false)Integer adsourceType);
 
-    @GetMapping("/user/adRecords/page")
+    @PostMapping("/user/adRecords/page")
     ResultTable<YtDyzAdRecord> adRecordsPage(@RequestBody AdRecordListParam param);
 
     @GetMapping("/user/adRecords/count/month")
-    Result<Integer> queryRecordMonthCount(@RequestBody AdRecordStatisticParam param);
+    Result<Integer> queryRecordMonthCount(@RequestParam(name = "userId") String userId,
+                                          @RequestParam(name = "adSourceType", required = false) Integer adSourceType,
+                                          @RequestParam(name = "startTime", required = false) String startTime);
 
     @PostMapping("/user/queryUserByTime")
     List<YtDyzUser> queryUserByTime(@RequestBody AppUserQueryParam appUserQueryParam);

+ 9 - 5
yt-lime/lime-service/src/main/java/com/ytpm/lime/controller/UserController.java

@@ -14,7 +14,6 @@ import com.ytpm.agent.view.AgentAuditCheckVO;
 import com.ytpm.app.model.YtDyzAdRecord;
 import com.ytpm.app.model.YtDyzLoginRecord;
 import com.ytpm.app.model.YtDyzUser;
-import com.ytpm.app.param.AdRecordStatisticParam;
 import com.ytpm.app.param.AppQueryUserTodayTimeParam;
 import com.ytpm.app.param.AppUserParam;
 import com.ytpm.app.param.AppUserQueryParam;
@@ -213,18 +212,23 @@ public class UserController {
      * 查询广告记录统计数
      */
     @GetMapping("/adRecords/count/month")
-    public Result<Integer> queryRecordMonthCount(@RequestBody AdRecordStatisticParam param) {
+    public Result<Integer> queryRecordMonthCount(@RequestParam(name = "userId") String userId,
+                                                 @RequestParam(name = "adSourceType", required = false) Integer adSourceType,
+                                                 @RequestParam(name = "startTime", required = false) String startTime) {
+        Date time;
         // 统计起始时间为空,则默认查询当月信息
-        if (param.getStartTime() == null) {
+        if (StrUtil.isEmpty(startTime)) {
             Calendar calendar = Calendar.getInstance();
             calendar.setTime(new Date());
             calendar.set(Calendar.DAY_OF_MONTH, 1);
             calendar.set(Calendar.HOUR_OF_DAY, 0);
             calendar.set(Calendar.MINUTE, 0);
             calendar.set(Calendar.SECOND, 0);
-            param.setStartTime(calendar.getTime());
+            time = calendar.getTime();
+        } else {
+            time = DateUtil.parse(startTime, "yyyy-MM-dd HH:mm:ss");
         }
-        return Result.resultObjOk(adRecordMapper.getRecordMonthCount(param));
+        return Result.resultObjOk(adRecordMapper.getRecordMonthCount(userId, adSourceType, time));
     }
 
     @PostMapping("/queryUserByTime")

+ 4 - 2
yt-lime/lime-service/src/main/java/com/ytpm/lime/dao/AdRecordMapper.java

@@ -2,13 +2,13 @@ package com.ytpm.lime.dao;
 
 import com.ytpm.agent.param.AdRecordListParam;
 import com.ytpm.app.model.YtDyzAdRecord;
-import com.ytpm.app.param.AdRecordStatisticParam;
 import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.middle.view.AppRevenueHourVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 @Mapper
@@ -61,6 +61,8 @@ public interface AdRecordMapper {
     /**
      * 查询用户广告记录统计数
      */
-    Integer getRecordMonthCount(@Param("param") AdRecordStatisticParam param);
+    Integer getRecordMonthCount(@Param("userId") String userId,
+                                @Param("adSourceType") Integer adSourceType,
+                                @Param("startTime") Date startTime);
 
 }

+ 5 - 5
yt-lime/lime-service/src/main/resources/mapper/AdRecordMapper.xml

@@ -212,12 +212,12 @@
     <select id="getRecordMonthCount" resultType="java.lang.Integer">
         SELECT count(record_id) as counts
         FROM yt_dyz_ad_record
-        where user_id=#{param.userId} and revenue > 0
-        <if test="param.adSourceType != null and adsourceType!=888">
-            and ad_source_type = #{param.adSourceType}
+        where user_id= #{userId} and revenue > 0
+        <if test="adSourceType != null and adSourceType!=888">
+            and ad_source_type = #{adSourceType}
         </if>
-        <if test="param.startTime != null">
-            and finish_time > #{param.startTime}
+        <if test="startTime != null">
+            and finish_time > #{startTime}
         </if>
     </select>
 

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

@@ -27,7 +27,6 @@ import com.ytpm.app.enums.LoginType;
 import com.ytpm.app.model.YtDyzAdRecord;
 import com.ytpm.app.model.YtDyzLoginRecord;
 import com.ytpm.app.model.YtDyzUser;
-import com.ytpm.app.param.AdRecordStatisticParam;
 import com.ytpm.custom.CustomField;
 import com.ytpm.dao.AppMapper;
 import com.ytpm.dao.DictMapper;
@@ -610,11 +609,9 @@ public class RiskServiceImpl implements RiskService {
             Date limitStartDate = DateUtil.offset(new Date(), DateField.MONTH, -monthCount);
             int recordCount = 0;
             try {
-                AdRecordStatisticParam param = new AdRecordStatisticParam();
-                param.setUserId(dyzUser.getUserId());
-                param.setAdSourceType(AdSourceTypeEnum.rewarded_video.getAdSourceType());
-                param.setStartTime(limitStartDate);
-                Object o = feignInvoker.invoke(userApp.getServiceName(), "queryRecordMonthCount", param);
+                Object o = feignInvoker.invoke(userApp.getServiceName(), "queryRecordMonthCount",
+                        dyzUser.getUserId(), AdSourceTypeEnum.rewarded_video.getAdSourceType(),
+                        DateUtil.format(limitStartDate, "yyyy-MM-dd HH:mm:ss"));
                 JSONObject object = JSON.parseObject(JSON.toJSONString(o));
                 if (object.get("data") != null) {
                     recordCount = Integer.parseInt(object.get("data").toString());
@@ -707,7 +704,7 @@ public class RiskServiceImpl implements RiskService {
      */
     private void checkRisk746(YtDyzUser dyzUser, List<YtDyzAdRecord> records) {
         RiskTemplateView revenue = configMapper.getByCode(dyzUser.getAppId()+"-746");
-        if(revenue.getEnabled()!=1)return;
+        if (revenue == null || revenue.getEnabled() != 1) return;
         Map<String, String> revenueMap = revenue.getConfigList().stream().collect(
                 Collectors.toMap(RiskConfigView::getFieldName, RiskConfigView::getConfigVal));
         List<YtDyzAdRecord> revenues = records.stream().filter(