Procházet zdrojové kódy

Merge remote-tracking branch 'refs/remotes/origin/lih'

# Conflicts:
#	yt-adage/adage-service/src/main/java/com/ytpm/adage/service/impl/AdServiceImpl.java
#	yt-adage/adage-service/src/main/java/com/ytpm/adage/service/impl/VisitorLoginServiceImpl.java
#	yt-adage/adage-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/service/impl/AdServiceImpl.java
#	yt-algebraic/algebraic-service/src/main/java/com/ytpm/algebraic/service/impl/VisitorLoginServiceImpl.java
#	yt-algebraic/algebraic-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-allusion/allusion-service/src/main/java/com/ytpm/allusion/service/impl/AdServiceImpl.java
#	yt-allusion/allusion-service/src/main/java/com/ytpm/allusion/service/impl/VisitorLoginServiceImpl.java
#	yt-allusion/allusion-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-answer/answer-service/src/main/java/com/ytpm/answer/service/impl/AdServiceImpl.java
#	yt-answer/answer-service/src/main/java/com/ytpm/answer/service/impl/VisitorLoginServiceImpl.java
#	yt-answer/answer-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-arena/arena-service/src/main/java/com/ytpm/arena/service/impl/AdServiceImpl.java
#	yt-arena/arena-service/src/main/java/com/ytpm/arena/service/impl/VisitorLoginServiceImpl.java
#	yt-arena/arena-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/service/impl/AdServiceImpl.java
#	yt-arithmetic/arithmetic-service/src/main/java/com/ytpm/arithmetic/service/impl/VisitorLoginServiceImpl.java
#	yt-arithmetic/arithmetic-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/service/impl/AdServiceImpl.java
#	yt-calculator/calculator-service/src/main/java/com/ytpm/calculator/service/impl/VisitorLoginServiceImpl.java
#	yt-calculator/calculator-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-carp/carp-service/src/main/java/com/ytpm/carp/service/impl/AdServiceImpl.java
#	yt-carp/carp-service/src/main/java/com/ytpm/carp/service/impl/VisitorLoginServiceImpl.java
#	yt-carp/carp-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/service/impl/AdServiceImpl.java
#	yt-countstep/countstep-service/src/main/java/com/ytpm/countstep/service/impl/VisitorLoginServiceImpl.java
#	yt-countstep/countstep-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-diary/diary-service/src/main/java/com/ytpm/diary/service/impl/AdServiceImpl.java
#	yt-diary/diary-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/service/impl/AdServiceImpl.java
#	yt-dtw/dtw-service/src/main/java/com/ytpm/dtw/service/impl/VisitorLoginServiceImpl.java
#	yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/service/impl/AdServiceImpl.java
#	yt-emoticons/emoticons-service/src/main/java/com/ytpm/emoticons/service/impl/VisitorLoginServiceImpl.java
#	yt-emoticons/emoticons-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-funarith/funarith-service/src/main/java/com/ytpm/funarith/service/impl/AdServiceImpl.java
#	yt-funarith/funarith-service/src/main/java/com/ytpm/funarith/service/impl/VisitorLoginServiceImpl.java
#	yt-funarith/funarith-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-idiom/idiom-service/src/main/java/com/ytpm/idiom/service/impl/VisitorLoginServiceImpl.java
#	yt-idiom/idiom-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-irun/irun-service/src/main/java/com/ytpm/irun/service/impl/AdServiceImpl.java
#	yt-irun/irun-service/src/main/java/com/ytpm/irun/service/impl/VisitorLoginServiceImpl.java
#	yt-irun/irun-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/service/impl/AdServiceImpl.java
#	yt-lemon/lemon-service/src/main/java/com/ytpm/lemon/service/impl/VisitorLoginServiceImpl.java
#	yt-lemon/lemon-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-lime/lime-service/src/main/java/com/ytpm/lime/service/impl/AdServiceImpl.java
#	yt-lime/lime-service/src/main/java/com/ytpm/lime/service/impl/VisitorLoginServiceImpl.java
#	yt-lime/lime-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-mileage/mileage-service/src/main/java/com/ytpm/mileage/service/impl/AdServiceImpl.java
#	yt-mileage/mileage-service/src/main/java/com/ytpm/mileage/service/impl/VisitorLoginServiceImpl.java
#	yt-mileage/mileage-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/service/impl/AdServiceImpl.java
#	yt-nofeeds/nofeeds-service/src/main/java/com/ytpm/nofeeds/service/impl/VisitorLoginServiceImpl.java
#	yt-nofeeds/nofeeds-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-picking/picking-service/src/main/java/com/ytpm/picking/service/impl/AdServiceImpl.java
#	yt-picking/picking-service/src/main/java/com/ytpm/picking/service/impl/VisitorLoginServiceImpl.java
#	yt-picking/picking-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-proverb/proverb-service/src/main/java/com/ytpm/proverb/service/impl/AdServiceImpl.java
#	yt-proverb/proverb-service/src/main/java/com/ytpm/proverb/service/impl/VisitorLoginServiceImpl.java
#	yt-proverb/proverb-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-question/yt-question-service/src/main/java/com/ytpm/question/service/impl/AdServiceImpl.java
#	yt-question/yt-question-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/service/impl/AdServiceImpl.java
#	yt-raisepig/raisepig-service/src/main/java/com/ytpm/raisepig/service/impl/VisitorLoginServiceImpl.java
#	yt-raisepig/raisepig-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-risk/risk-manage/src/main/resources/bootstrap.yml
#	yt-summary/summary-service/src/main/java/com/ytpm/summary/service/impl/AdServiceImpl.java
#	yt-summary/summary-service/src/main/java/com/ytpm/summary/service/impl/VisitorLoginServiceImpl.java
#	yt-summary/summary-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-typing/typing-service/src/main/java/com/ytpm/typing/service/impl/AdServiceImpl.java
#	yt-typing/typing-service/src/main/java/com/ytpm/typing/service/impl/VisitorLoginServiceImpl.java
#	yt-typing/typing-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-vitality/vitality-service/src/main/java/com/ytpm/vitality/service/impl/AdServiceImpl.java
#	yt-vitality/vitality-service/src/main/java/com/ytpm/vitality/service/impl/VisitorLoginServiceImpl.java
#	yt-vitality/vitality-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-walk/walk-service/src/main/java/com/ytpm/walk/service/impl/AdServiceImpl.java
#	yt-walk/walk-service/src/main/java/com/ytpm/walk/service/impl/VisitorLoginServiceImpl.java
#	yt-walk/walk-service/src/main/resources/mapper/AppUserMapper.xml
#	yt-walking/walking-service/src/main/java/com/ytpm/walking/service/impl/AdServiceImpl.java
#	yt-walking/walking-service/src/main/java/com/ytpm/walking/service/impl/VisitorLoginServiceImpl.java
#	yt-walking/walking-service/src/main/resources/mapper/AppUserMapper.xml
hidewnd před 1 měsícem
rodič
revize
06ca8df8db
18 změnil soubory, kde provedl 296 přidání a 21 odebrání
  1. 11 1
      yt-agent/agent-service/src/main/java/com/ytpm/dao/AppMapper.java
  2. 18 0
      yt-agent/agent-service/src/main/java/com/ytpm/dao/RiskMapper.java
  3. 15 5
      yt-agent/agent-service/src/main/java/com/ytpm/service/impl/AgentDitchServiceImpl.java
  4. 20 4
      yt-agent/agent-service/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java
  5. 21 0
      yt-agent/agent-service/src/main/resources/mapper/AppMapper.xml
  6. 57 0
      yt-agent/agent-service/src/main/resources/mapper/RiskMapper.xml
  7. 3 0
      yt-common/src/main/java/com/ytpm/agent/param/AppParam.java
  8. 3 0
      yt-common/src/main/java/com/ytpm/agent/view/AgentAppView.java
  9. 3 0
      yt-common/src/main/java/com/ytpm/app/model/YtAppDefaultConfig.java
  10. 4 0
      yt-common/src/main/java/com/ytpm/app/model/YtDyzUser.java
  11. 2 1
      yt-common/src/main/java/com/ytpm/app/view/WxDefaultConfig.java
  12. 3 0
      yt-common/src/main/java/com/ytpm/app/view/YtAppUserListView.java
  13. 1 1
      yt-common/src/main/java/com/ytpm/handle/AbstractLoginService.java
  14. 45 0
      yt-common/src/main/java/com/ytpm/risk/model/YtRiskTemplateLog.java
  15. 36 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskTemplateLogParam.java
  16. 44 0
      yt-common/src/main/java/com/ytpm/risk/view/RiskTemplateLogView.java
  17. 6 5
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java
  18. 4 4
      yt-question/yt-question-service/src/main/java/com/ytpm/question/service/impl/VisitorLoginServiceImpl.java

+ 11 - 1
yt-agent/agent-service/src/main/java/com/ytpm/dao/AppMapper.java

@@ -20,7 +20,7 @@ public interface AppMapper {
      */
     YtApp selectPrimary(@Param("appId") String appId);
 
-    YtApp selectByDitchId(@Param("ditchId") Long ditchId);
+    List<YtApp> selectByDitchId(@Param("ditchId") Long ditchId);
 
     /**
      * 保存应用
@@ -47,4 +47,14 @@ public interface AppMapper {
     YtApp getByDitchIdAndSuperiorId(@Param("ditchId") Long ditchId, @Param("superiorId") String superiorId);
 
     List<YtApp> getBySuperiorId(@Param("superiorId") String superiorId);
+
+    /**
+     * 批量删除应用
+     */
+    void deleteAppIds(@Param("ids") List<String> ids);
+
+    /**
+     * 删除指定应用所有风控规则
+     */
+    void deleteRisks(@Param("ids") List<String> ids);
 }

+ 18 - 0
yt-agent/agent-service/src/main/java/com/ytpm/dao/RiskMapper.java

@@ -6,13 +6,16 @@ import com.ytpm.agent.model.YtPlatformDeblocking;
 import com.ytpm.agent.view.AgentAppClassView;
 import com.ytpm.risk.model.YtRiskConfig;
 import com.ytpm.risk.model.YtRiskTemplate;
+import com.ytpm.risk.model.YtRiskTemplateLog;
 import com.ytpm.risk.param.RiskBannedListParam;
 import com.ytpm.risk.param.RiskConfigParam;
 import com.ytpm.risk.param.RiskDeblockingListParam;
 import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskTemplateLogParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskDeblockingListView;
+import com.ytpm.risk.view.RiskTemplateLogView;
 import com.ytpm.risk.view.RiskTemplateView;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -113,4 +116,19 @@ public interface RiskMapper {
      * 根据APP 查询当月的封禁数据
      */
     List<YtPlatformBanned> queryMonthBanned(@Param("appIdList") List<String> appIdList);
+
+    /**
+     * 根据模板ID查询模板配置信息
+     */
+    List<YtRiskConfig> selectRiskConfig(@Param("templateId") String templateId);
+
+    /**
+     * 新增模板配置修改记录
+     */
+    void addRiskTemplateLog(@Param("logs") List<YtRiskTemplateLog> logs);
+
+    /**
+     * 查询风控配置修改记录
+     */
+    List<RiskTemplateLogView> selectTemplateLog(RiskTemplateLogParam param);
 }

+ 15 - 5
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/AgentDitchServiceImpl.java

@@ -1,12 +1,12 @@
 package com.ytpm.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ytpm.agent.model.YtApp;
 import com.ytpm.agent.model.YtDitch;
 import com.ytpm.agent.param.DitchListParam;
 import com.ytpm.agent.view.AgentDitchView;
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.dao.AgentDitchMapper;
 import com.ytpm.dao.AppMapper;
 import com.ytpm.general.RepMessage;
@@ -20,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Service
 public class AgentDitchServiceImpl implements AgentDitchService {
@@ -58,10 +59,12 @@ public class AgentDitchServiceImpl implements AgentDitchService {
         agentDitchMapper.update(param);
         //同时修改app中的渠道类型名称
         Long ditchId = param.getDitchId();
-        YtApp ytApp = appMapper.selectByDitchId(ditchId);
-        if(Objects.nonNull(ytApp)){
-            ytApp.setDitchName(param.getDitchName());
-            appMapper.updateOne(ytApp);
+        List<YtApp> ytApps = appMapper.selectByDitchId(ditchId);
+        if(CollUtil.isNotEmpty(ytApps)){
+            for (YtApp ytApp : ytApps) {
+                ytApp.setDitchName(param.getDitchName());
+                appMapper.updateOne(ytApp);
+            }
         }
         return Result.resultOk(RepMessage.MODIFY_SUCCESS);
     }
@@ -72,6 +75,13 @@ public class AgentDitchServiceImpl implements AgentDitchService {
         ytDitch.setIsDelete(1);
         ytDitch.setDitchId(ditchId);
         agentDitchMapper.update(ytDitch);
+        // 20250917 删除渠道后 同步删除渠道下应用(假删除)及应用风控配置(真删除)
+        List<YtApp> ytApps = appMapper.selectByDitchId(ditchId);
+        if(CollUtil.isNotEmpty(ytApps)){
+            List<String> ids = ytApps.stream().map(YtApp::getAppId).collect(Collectors.toList());
+            appMapper.deleteAppIds(ids);
+            appMapper.deleteRisks(ids);
+        }
         return Result.resultOk(RepMessage.DELETE_SUCCESS);
     }
 }

+ 20 - 4
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -23,9 +23,7 @@ import com.ytpm.app.param.AppUserParam;
 import com.ytpm.custom.CustomField;
 import com.ytpm.dao.AgentAppMapper;
 import com.ytpm.dao.AgentDictMapper;
-import com.ytpm.dao.AppMapper;
 import com.ytpm.dao.RiskMapper;
-import com.ytpm.general.PageMeta;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
@@ -33,6 +31,7 @@ import com.ytpm.handle.CustomerException;
 import com.ytpm.risk.enums.BannedTypeEnum;
 import com.ytpm.risk.model.YtRiskConfig;
 import com.ytpm.risk.model.YtRiskTemplate;
+import com.ytpm.risk.model.YtRiskTemplateLog;
 import com.ytpm.risk.param.RiskBannedListParam;
 import com.ytpm.risk.param.RiskBannedParam;
 import com.ytpm.risk.param.RiskConfigListParam;
@@ -50,13 +49,11 @@ import com.ytpm.util.RedisService;
 import com.ytpm.utils.FeignClientInvoker;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.extern.slf4j.Slf4j;
-import org.aspectj.weaver.loadtime.Agent;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.lang.reflect.Field;
-import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -272,9 +269,15 @@ public class RiskServiceImpl implements RiskService {
         if(Objects.isNull(old)){
             return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
         }
+        // 获取原有配置信息
+        List<YtRiskConfig> configs = riskMapper.selectRiskConfig(param.getTemplateId());
+        Map<String, String> valueMap = configs.stream().collect(Collectors.toMap(
+                YtRiskConfig::getConfigId, YtRiskConfig::getConfigVal,
+                (o1, o2) -> o2));
         //修改配置值
         List<RiskConfigListParam> configList = param.getConfigList();
         StringBuilder content = new StringBuilder();
+        List<YtRiskTemplateLog> logs = new ArrayList<>();
         for (RiskConfigListParam listParam : configList) {
             YtRiskConfig config = new YtRiskConfig();
             config.setConfigId(listParam.getConfigId());
@@ -284,6 +287,18 @@ public class RiskServiceImpl implements RiskService {
             if(CharSequenceUtil.isNotBlank(format)){
                 content.append(format).append(",");
             }
+            String oldValue = valueMap.get(listParam.getConfigId());
+            if (!StrUtil.emptyIfNull(oldValue).equals(StrUtil.emptyIfNull(listParam.getConfigVal()))) {
+                YtRiskTemplateLog log = new  YtRiskTemplateLog();;
+                log.setTemplateId(old.getTemplateId());
+                log.setTemplateCode(old.getTemplateCode());
+                log.setConfigId(listParam.getConfigId());
+                log.setOldValue(oldValue);
+                log.setNewValue(listParam.getConfigVal());
+                log.setOperator(param.getChannelId());
+                log.setOperatorName(param.getChannelId());
+                logs.add(log);
+            }
         }
         //同步修改配置模版内容
         YtRiskTemplate template = new YtRiskTemplate();
@@ -292,6 +307,7 @@ public class RiskServiceImpl implements RiskService {
         template.setUpdateTime(new Date());
         template.setUpdateUserId(param.getChannelId());
         riskMapper.updateByTempId(template);
+        riskMapper.addRiskTemplateLog(logs);
         return Result.resultOk(RepMessage.MODIFY_SUCCESS);
     }
 

+ 21 - 0
yt-agent/agent-service/src/main/resources/mapper/AppMapper.xml

@@ -128,6 +128,27 @@
     <update id="deleteApp">
         update yt_app set enabled = 0 where app_id = #{appId}
     </update>
+    <update id="deleteAppIds">
+        update yt_app set enabled = 0
+        where app_id in <foreach collection="ids" item="id" open="(" separator="," close=")" >#{id}</foreach>
+    </update>
+    <delete id="deleteRisks">
+        delete from yt_risk_config where config_id in (
+            select yt_risk_template_config.config_id
+            from yt_risk_template_config
+            left join yt_risk_template on yt_risk_template_config.template_id = yt_risk_template.template_id
+            where yt_risk_template.app_id in <foreach collection="ids" item="appId" open="(" separator="," close=")">#{appId}</foreach>
+        );
+        delete from yt_risk_template_config where template_id in (
+            select yt_risk_template.template_id
+            from yt_risk_template
+            where yt_risk_template.app_id in <foreach collection="ids" item="appId" open="(" separator="," close=")">#{appId}</foreach>
+        );
+        delete from yt_cofig_app
+        where app_id in <foreach collection="ids" item="appId" open="(" separator="," close=")">#{appId}</foreach>;
+        delete from yt_risk_template
+        where app_id in <foreach collection="ids" item="appId" open="(" separator="," close=")">#{appId}</foreach>;
+    </delete>
     <select id="selectPrimary" resultType="com.ytpm.agent.model.YtApp">
         select
             app_id,ditch_id, ditch_name,  app_key, app_name,user_id, app_type, apk_url, qr_code, version_code, update_tips, enabled,superior_id

+ 57 - 0
yt-agent/agent-service/src/main/resources/mapper/RiskMapper.xml

@@ -312,6 +312,32 @@
             )
         </foreach>
     </insert>
+    <insert id="addRiskTemplateLog">
+        insert into yt_risk_template_log
+        (
+        template_id,
+        config_id,
+        template_code,
+        old_value,
+        new_value,
+        operator,
+        operator_time,
+        operator_name
+        )
+        values
+        <foreach collection="logs" item="item" separator="," index="index">
+        (
+            #{item.templateId},
+            #{item.configId},
+            #{item.templateCode},
+            #{item.oldValue},
+            #{item.newValue},
+            #{item.operator},
+            now(),
+            #{item.operatorName}
+        )
+        </foreach>
+    </insert>
 
     <select id="selectOneTemplate" resultType="com.ytpm.risk.model.YtRiskTemplate">
         select
@@ -432,4 +458,35 @@
             </if>
         </where>
     </select>
+    <select id="selectRiskConfig" resultType="com.ytpm.risk.model.YtRiskConfig">
+        SELECT
+            rt.template_id,
+            rt.template_code,
+            rt.template_name,
+            rt.template_content,
+            rt.effect_node,
+            rt.enabled,
+            rc.config_id,
+            rc.field_name,
+            rc.field_desc,
+            rc.config_type,
+            rc.config_val,
+            rc.multy
+        FROM yt_risk_template rt
+        LEFT JOIN yt_risk_template_config rtc ON rt.template_id = rtc.template_id
+        LEFT JOIN yt_risk_config rc ON rtc.config_id = rc.config_id
+        WHERE rt.template_id = #{templateId}
+    </select>
+    <select id="selectTemplateLog" resultType="com.ytpm.risk.view.RiskTemplateLogView">
+        select config_id, template_code, old_value, new_value, operator, operator_time, operator_name
+        from yt_risk_template_log
+        where template_id = #{templateId}
+        <if test="configId != null">
+            and config_id = #{configId}
+        </if>
+        <if test="operator != null">
+            and operator = #{operator}
+        </if>
+        order by operator_time desc
+    </select>
 </mapper>

+ 3 - 0
yt-common/src/main/java/com/ytpm/agent/param/AppParam.java

@@ -85,4 +85,7 @@ public class AppParam {
 
     @ApiModelProperty("启动页等待时间(秒)")
     private Integer startWaitTime;
+
+    @ApiModelProperty("是否允许自动刷新")
+    private Integer canAllowAutoRefresh;
 }

+ 3 - 0
yt-common/src/main/java/com/ytpm/agent/view/AgentAppView.java

@@ -173,5 +173,8 @@ public class AgentAppView {
     @ApiModelProperty("原生(信息流)间隔时长(秒)")
     private Integer flowIntervalTime;
 
+    @ApiModelProperty("是否允许自动刷新")
+    private Integer canAllowAutoRefresh;
+
 
 }

+ 3 - 0
yt-common/src/main/java/com/ytpm/app/model/YtAppDefaultConfig.java

@@ -77,6 +77,9 @@ public class YtAppDefaultConfig {
     @ApiModelProperty("启动页等待时间(秒)")
     private Integer startWaitTime;
 
+    @ApiModelProperty("是否允许自动刷新")
+    private Integer canAllowAutoRefresh;
+
     public YtAppDefaultConfig(Object o, String appName, String wxAppId, String wxSecret, String appId, String appKey, int appType,String ditchId) {
         this.configId = Objects.isNull(o)?null: Integer.parseInt(o.toString());
         this.configName = appName;

+ 4 - 0
yt-common/src/main/java/com/ytpm/app/model/YtDyzUser.java

@@ -62,6 +62,10 @@ public class YtDyzUser extends PageMeta {
     /** 总收益 */
     @ApiModelProperty("总收益")
     private BigDecimal totalIncome;
+
+    @ApiModelProperty("前三日总收益")
+    private BigDecimal nearlyIncome;
+
     /** 红包余额 */
     @CustomField(node = 1)
     @ApiModelProperty("红包余额")

+ 2 - 1
yt-common/src/main/java/com/ytpm/app/view/WxDefaultConfig.java

@@ -70,5 +70,6 @@ public class WxDefaultConfig {
     @ApiModelProperty("启动页等待时间(秒)")
     private Integer startWaitTime;
 
-
+    @ApiModelProperty("是否允许自动刷新")
+    private Integer canAllowAutoRefresh;
 }

+ 3 - 0
yt-common/src/main/java/com/ytpm/app/view/YtAppUserListView.java

@@ -89,6 +89,9 @@ public class YtAppUserListView extends PageMeta {
     private String communicationOperator;
     @ApiModelProperty("今日收益")
     private BigDecimal todayIncome;
+
+    @ApiModelProperty("前三日总收益")
+    private BigDecimal nearlyIncome;
     /** 登录历史记录 */
     @ApiModelProperty("登录历史记录")
     private List<YtDyzLoginRecord> loginRecordList;

+ 1 - 1
yt-common/src/main/java/com/ytpm/handle/AbstractLoginService.java

@@ -148,7 +148,7 @@ public abstract class AbstractLoginService {
             beforeDeadWithUserCrud(loginParam, ytDyzUser, paramMap);
             //如果当前登录是本日第一次登录则登录天数+1
             //202550916 游客登陆不记录登陆信息
-//            deadWithUserCrud(loginParam, ytDyzUser, paramMap);
+            deadWithUserCrud(loginParam, ytDyzUser, paramMap);
         }
         // 保存游客广告信息
         WxDefaultConfig defaultConfig = (WxDefaultConfig) paramMap.get("defaultConfig");

+ 45 - 0
yt-common/src/main/java/com/ytpm/risk/model/YtRiskTemplateLog.java

@@ -0,0 +1,45 @@
+package com.ytpm.risk.model;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * @author lih
+ * @date 2025-09-18 17:30
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("风控配置修改记录表")
+public class YtRiskTemplateLog {
+
+    @ApiModelProperty("模板ID")
+    private String templateId;
+
+    @ApiModelProperty("配置ID")
+    private String configId;
+
+    @ApiModelProperty("风控编码")
+    private String templateCode;
+
+    @ApiModelProperty("原风控值")
+    private String oldValue;
+
+    @ApiModelProperty("修改后风控值")
+    private String newValue;
+
+    @ApiModelProperty("操作人")
+    private String operator;
+
+    @ApiModelProperty("操作人姓名")
+    private String operatorName;
+
+    @ApiModelProperty("操作时间")
+    private Date operatorTime;
+}

+ 36 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskTemplateLogParam.java

@@ -0,0 +1,36 @@
+package com.ytpm.risk.param;
+
+
+import com.ytpm.general.PageMeta;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * @author lih
+ * @date 2025-09-19 11:09
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("风控配置修改记录入参")
+@EqualsAndHashCode(callSuper = true)
+public class RiskTemplateLogParam extends PageMeta implements Serializable {
+
+    @ApiModelProperty("模板ID")
+    private String templateId;
+
+    @ApiModelProperty("配置ID")
+    private String configId;
+
+    @ApiModelProperty("是否查询自身记录 (1是 0 否)")
+    private Integer querySelf;
+
+    @ApiModelProperty("操作人Id")
+    private String operator;
+}

+ 44 - 0
yt-common/src/main/java/com/ytpm/risk/view/RiskTemplateLogView.java

@@ -0,0 +1,44 @@
+package com.ytpm.risk.view;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author lih
+ * @date 2025-09-19 11:06
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("易推风控配置修改记录")
+public class RiskTemplateLogView implements Serializable {
+
+    @ApiModelProperty("配置ID")
+    private String configId;
+
+    @ApiModelProperty("风控编码")
+    private String templateCode;
+
+    @ApiModelProperty("原风控值")
+    private String oldValue;
+
+    @ApiModelProperty("修改后风控值")
+    private String newValue;
+
+    @ApiModelProperty("操作人")
+    private String operator;
+
+    @ApiModelProperty("操作人姓名")
+    private String operatorName;
+
+    @ApiModelProperty("操作时间")
+    private Date operatorTime;
+}

+ 6 - 5
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java

@@ -60,10 +60,10 @@ public class ApkServiceImpl implements ApkService {
     @Value("${risk.config.initAdCompletedCount:10}")
     private String initAdCompletedCount;
 
-    @Value("${risk.config.initFirstCount:3}")
+    @Value("${risk.config.initFirstCount:4}")
     private String initFirstCount;
 
-    @Value("${risk.config.initAverageRevenue:0.05}")
+    @Value("${risk.config.initAverageRevenue:0.12}")
     private String initAverageRevenue;
 
     @Value("${risk.config.initMonthCount:1}")
@@ -72,10 +72,10 @@ public class ApkServiceImpl implements ApkService {
     @Value("${risk.config.initMonthTaskLimit:80}")
     private String initMonthTaskLimit;
 
-    @Value("${risk.config.initHourCount:24}")
+    @Value("${risk.config.initHourCount:3}")
     private String initHourCount;
 
-    @Value("${risk.config.initHourTaskLimit:5}")
+    @Value("${risk.config.initHourTaskLimit:10}")
     private String initHourTaskLimit;
 
     @Value("${risk.config.visitor.initEcpmLimit:20}")
@@ -143,6 +143,7 @@ public class ApkServiceImpl implements ApkService {
                 view.setLowValueTip(config.getLowValueTip());
                 view.setBrushTip(config.getBrushTip());
                 view.setFlowIntervalTime(config.getFlowIntervalTime());
+                view.setCanAllowAutoRefresh(config.getCanAllowAutoRefresh());
             }
             if(CharSequenceUtil.isBlank(view.getApkUrl()))continue;
             String substring = view.getApkUrl().substring(view.getApkUrl().lastIndexOf("/")+1).toLowerCase(Locale.ENGLISH);
@@ -212,7 +213,7 @@ public class ApkServiceImpl implements ApkService {
         config.setBrushTip(param.getBrushTip());
         config.setCanCacheVideo(param.getCanCacheVideo());
         config.setStartWaitTime(param.getStartWaitTime());
-
+        config.setCanAllowAutoRefresh(param.getCanAllowAutoRefresh());
         feignInvoker.invoke(app.getServiceName(), "updateAppConfig",config);
     }
 

+ 4 - 4
yt-question/yt-question-service/src/main/java/com/ytpm/question/service/impl/VisitorLoginServiceImpl.java

@@ -141,10 +141,10 @@ public class VisitorLoginServiceImpl extends AbstractLoginService {
         newUser.setPhone(loginParam.getPhone());
         newUser.setDeviceId(loginParam.getDeviceId());
         //如果当前登录是本日第一次登录则登录天数+1
-        int loginCount = loginRecordMapper.getTodayLoginCount(old.getUserId());
-        if (loginCount < 1) {
-            newUser.setLoginDays(old.getLoginDays() + 1);
-        }
+//        int loginCount = loginRecordMapper.getTodayLoginCount(old.getUserId());
+//        if (loginCount < 1) {
+//            newUser.setLoginDays(old.getLoginDays() + 1);
+//        }
         appUserMapper.updateUser(newUser);
     }