Parcourir la source

fix up of bug

marxjaw il y a 3 mois
Parent
commit
fe5840f229
20 fichiers modifiés avec 155 ajouts et 35 suppressions
  1. 3 2
      yt-agent/agent-service/src/main/java/com/ytpm/dao/AgentDitchMapper.java
  2. 12 2
      yt-agent/agent-service/src/main/java/com/ytpm/service/impl/AgentDitchServiceImpl.java
  3. 6 0
      yt-agent/agent-service/src/main/resources/mapper/AgentDitchMapper.xml
  4. 2 2
      yt-app/app-service/src/main/java/com/ytpm/controller/dyz/UserController.java
  5. 4 0
      yt-app/app-service/src/main/java/com/ytpm/dao/dyz/AdRecordMapper.java
  6. 2 1
      yt-app/app-service/src/main/java/com/ytpm/dao/dyz/AppUserMapper.java
  7. 8 5
      yt-app/app-service/src/main/java/com/ytpm/service/dyz/impl/AdServiceImpl.java
  8. 50 4
      yt-app/app-service/src/main/resources/mapper/dyz/AdRecordMapper.xml
  9. 14 4
      yt-app/app-service/src/main/resources/mapper/dyz/AppUserMapper.xml
  10. 4 0
      yt-common/src/main/java/com/ytpm/app/param/AppUserParam.java
  11. 2 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskDeblockingListParam.java
  12. 7 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/RiskMapper.java
  13. 16 7
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java
  14. 3 0
      yt-middle/middle-platform/src/main/resources/mapper/ApkMapper.xml
  15. 7 6
      yt-middle/middle-platform/src/main/resources/mapper/MiddlerDeptMapper.xml
  16. 1 0
      yt-middle/middle-platform/src/main/resources/mapper/PermissionMapper.xml
  17. 4 0
      yt-middle/middle-platform/src/main/resources/mapper/RiskMapper.xml
  18. 4 2
      yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java
  19. 3 0
      yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml
  20. 3 0
      yt-risk/risk-manage/src/main/resources/mapper/RiskManageMapper.xml

+ 3 - 2
yt-agent/agent-service/src/main/java/com/ytpm/dao/AgentDitchMapper.java

@@ -1,17 +1,18 @@
 package com.ytpm.dao;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ytpm.agent.model.YtDitch;
 import com.ytpm.agent.param.DitchListParam;
 import com.ytpm.agent.view.AgentDitchView;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
-public interface AgentDitchMapper extends BaseMapper<YtDitch> {
+public interface AgentDitchMapper{
     List<AgentDitchView> ditchList(DitchListParam param);
 
     void update(YtDitch ytDitch);
 
     void insertOne(YtDitch ytDitch);
 
+    YtDitch selectById(@Param("ditchId") Long ditchId);
 }

+ 12 - 2
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/AgentDitchServiceImpl.java

@@ -13,9 +13,12 @@ import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.AgentDitchService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Objects;
+
 @Service
 public class AgentDitchServiceImpl implements AgentDitchService {
 
@@ -41,13 +44,20 @@ public class AgentDitchServiceImpl implements AgentDitchService {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result<?> updateOne(YtDitch param) {
+        YtDitch ytDitch = agentDitchMapper.selectById(param.getDitchId());
+        if(Objects.isNull(ytDitch)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
         agentDitchMapper.update(param);
         //同时修改app中的渠道类型名称
         Long ditchId = param.getDitchId();
         YtApp ytApp = appMapper.selectByDitchId(ditchId);
-        ytApp.setDitchName(param.getDitchName());
-        appMapper.updateOne(ytApp);
+        if(Objects.nonNull(ytApp)){
+            ytApp.setDitchName(param.getDitchName());
+            appMapper.updateOne(ytApp);
+        }
         return Result.resultOk(RepMessage.MODIFY_SUCCESS);
     }
 

+ 6 - 0
yt-agent/agent-service/src/main/resources/mapper/AgentDitchMapper.xml

@@ -45,5 +45,11 @@
             and is_delete=0
         </where>
     </select>
+    <select id="selectById" resultType="com.ytpm.agent.model.YtDitch">
+        select
+            ditch_id, ditch_name, user_id, is_delete, create_time
+        from yt_ditch
+        where ditch_id = #{ditchId}
+    </select>
 
 </mapper>

+ 2 - 2
yt-app/app-service/src/main/java/com/ytpm/controller/dyz/UserController.java

@@ -182,7 +182,7 @@ public class UserController {
      */
     @PostMapping("/getUserList")
     public ResultTable<YtDyzUser> getUserList(@RequestBody AppUserParam param) {
-        List<YtDyzUser> userList = appUserMapper.getUserList(param.getUserIds());
+        List<YtDyzUser> userList = appUserMapper.getUserList(param);
         for (YtDyzUser user : userList) {
             user.setLoginRecordList(loginRecordMapper.getLoginRecords(user.getUserId()));
         }
@@ -191,7 +191,7 @@ public class UserController {
 
     @PostMapping("/getUserAll")
     public ResultTable<YtDyzUser> getUserAll(@RequestBody AppUserParam param) {
-        List<YtDyzUser> userList = appUserMapper.getUserList(param.getUserIds());
+        List<YtDyzUser> userList = appUserMapper.getUserList(param);
         return ResultTable.resultTableOk(new PageInfo<>(userList));
     }
 

+ 4 - 0
yt-app/app-service/src/main/java/com/ytpm/dao/dyz/AdRecordMapper.java

@@ -40,11 +40,15 @@ public interface AdRecordMapper {
      */
     BigDecimal getRevenueByType(@Param("appIds") String appIds,@Param("type") int type);
 
+    BigDecimal getNetworkRevenueByType(@Param("appIds") String appIds,@Param("type") int type,@Param("networkId") String networkId);
+
     /**
      * 根据应用查询ecpm
      */
     BigDecimal getEcpmByType(@Param("appIds")String appIds, @Param("type")int type);
 
+    BigDecimal getNetworkEcpmByType(@Param("appIds")String appIds, @Param("type")int type,@Param("networkId") String networkId);
+
     /**
      * 查询广告平台分组统计
      */

+ 2 - 1
yt-app/app-service/src/main/java/com/ytpm/dao/dyz/AppUserMapper.java

@@ -3,6 +3,7 @@ package com.ytpm.dao.dyz;
 import com.ytpm.app.model.YtAppDefaultConfig;
 import com.ytpm.app.model.YtDyzPowerRecord;
 import com.ytpm.app.model.YtDyzUser;
+import com.ytpm.app.param.AppUserParam;
 import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.app.view.HourCountView;
 import com.ytpm.app.view.WxDefaultConfig;
@@ -80,7 +81,7 @@ public interface AppUserMapper {
     /**
      * 查询用户信息
      */
-    List<YtDyzUser> getUserList(@Param("userIds") String userIds);
+    List<YtDyzUser> getUserList(AppUserParam param);
 
     /**
      * 根据应用类型查询应用默认配置

+ 8 - 5
yt-app/app-service/src/main/java/com/ytpm/service/dyz/impl/AdServiceImpl.java

@@ -208,6 +208,7 @@ public class AdServiceImpl implements AdService {
     public List<AgentAdGroupStaticsVO> getAgentProfit(String appIds) {
         List<AgentAdGroupStaticsVO> vos = adRecordMapper.getAdGroupStatics(appIds);
         for (AgentAdGroupStaticsVO vo : vos) {
+            //今日收益
             List<AgentNetworkRevenueGroupVO> networkRevenueGroups = vo.getNetworkRevenueGroups();
             if(CollUtil.isNotEmpty(networkRevenueGroups)){
                 Map<String, BigDecimal> revenueMap = networkRevenueGroups.stream().collect(
@@ -215,17 +216,19 @@ public class AdServiceImpl implements AdService {
                 vo.setTodayHourRevenueMap(revenueMap);
                 vo.setTodayRevenue(revenueMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add));
             }
-            vo.setYesterdayRevenue(adRecordMapper.getRevenueByType(appIds,2));
-            vo.setMonthRevenue(adRecordMapper.getRevenueByType(appIds,3));
+            vo.setYesterdayRevenue(adRecordMapper.getNetworkRevenueByType(appIds,2,vo.getNetowrkId()));
+            vo.setMonthRevenue(adRecordMapper.getNetworkRevenueByType(appIds,3,vo.getNetowrkId()));
+            //今日ecpm
             List<AgentNetworkEcpmGroupVO> networkEcpmGroups = vo.getNetworkEcpmGroups();
             if(CollUtil.isNotEmpty(networkEcpmGroups)){
                 Map<String, BigDecimal> ecpmMap = networkEcpmGroups.stream().collect(
                         Collectors.toMap(AgentNetworkEcpmGroupVO::getHour, AgentNetworkEcpmGroupVO::getEcpm));
                 vo.setTodayHourEcpmMap(ecpmMap);
-                vo.setTodayEcpm(ecpmMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add));
+                int count = ecpmMap.values().size();
+                vo.setTodayEcpm(ecpmMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP));
             }
-            vo.setYesterdayEcpm(adRecordMapper.getEcpmByType(appIds,2));
-            vo.setMonthEcpm(adRecordMapper.getEcpmByType(appIds,3));
+            vo.setYesterdayEcpm(adRecordMapper.getNetworkEcpmByType(appIds,2,vo.getNetowrkId()));
+            vo.setMonthEcpm(adRecordMapper.getNetworkEcpmByType(appIds,3,vo.getNetowrkId()));
         }
         return vos;
     }

+ 50 - 4
yt-app/app-service/src/main/resources/mapper/dyz/AdRecordMapper.xml

@@ -112,13 +112,58 @@
                 and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
             </if>
     </select>
+    <select id="getNetworkRevenueByType" resultType="java.math.BigDecimal">
+        SELECT
+            sum( revenue ) revenue
+        FROM
+            yt_dyz_ad_record
+        WHERE
+            ad_source_type = 1
+            and network_form_id = #{networkId}
+            and app_id in
+            <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
+                #{item}
+            </foreach>
+            <if test="type != null and type ==1">
+                and DATE(finish_time) = DATE(now())
+            </if>
+            <if test="type != null and type ==2">
+                and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
+            </if>
+            <if test="type != null and type ==3">
+                and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+            </if>
+    </select>
     <select id="getEcpmByType" resultType="java.math.BigDecimal">
         SELECT
-            sum( ecpm )
+            avg( ecpm )
         FROM
             yt_dyz_ad_record
         WHERE
-            app_id in
+            ad_source_type = 1
+            and app_id in
+        <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
+            #{item}
+        </foreach>
+        <if test="type != null and type ==1">
+            and DATE(finish_time) = DATE(now())
+        </if>
+        <if test="type != null and type ==2">
+            and DATE(finish_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
+        </if>
+        <if test="type != null and type ==3">
+            and DATE_FORMAT(finish_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
+        </if>
+    </select>
+    <select id="getNetworkEcpmByType" resultType="java.math.BigDecimal">
+        SELECT
+            avg( ecpm )
+        FROM
+            yt_dyz_ad_record
+        WHERE
+            ad_source_type = 1
+            and network_form_id = #{networkId}
+            and app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>
@@ -150,11 +195,12 @@
             network_name,
             DATE_FORMAT(finish_time,'%Y-%m-%d %H:00:00') as `hour`,
             sum( revenue ) revenue,
-            sum( ecpm ) ecpm
+            avg( ecpm ) ecpm
         FROM
             yt_dyz_ad_record
         WHERE
-            app_id in
+            ad_source_type = 1
+            and app_id in
         <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
             #{item}
         </foreach>

+ 14 - 4
yt-app/app-service/src/main/resources/mapper/dyz/AppUserMapper.xml

@@ -236,10 +236,20 @@
             du.platform_id,
             du.power
         from yt_dyz_user du
-        where du.user_id in
-        <foreach collection="userIds.split(',')" item="item" separator="," open="(" close=")">
-            #{item}
-        </foreach>
+        <where>
+            <if test="userIds != null and userIds != ''">
+                and du.user_id in
+                <foreach collection="userIds.split(',')" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="loginTimeBegin != null">
+                and du.last_login_time <![CDATA[>=]]> #{loginTimeBegin}
+            </if>
+            <if test="loginTimeEnd != null">
+                and du.last_login_time <![CDATA[<=]]> #{loginTimeEnd}
+            </if>
+        </where>
     </select>
 
     <select id="queryAllByTime" resultType="com.ytpm.app.model.YtDyzUser">

+ 4 - 0
yt-common/src/main/java/com/ytpm/app/param/AppUserParam.java

@@ -2,7 +2,11 @@ package com.ytpm.app.param;
 
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class AppUserParam {
     private String userIds;
+    private Date loginTimeBegin;
+    private Date loginTimeEnd;
 }

+ 2 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskDeblockingListParam.java

@@ -38,4 +38,6 @@ public class RiskDeblockingListParam extends PageMeta {
     private Integer channelType;
     @ApiModelProperty("渠道来源")
     private Integer channelOrigin;
+    @ApiModelProperty("用户ID")
+    private String userId;
 }

+ 7 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/RiskMapper.java

@@ -40,4 +40,11 @@ public interface RiskMapper {
      * 分时统计风控数
      */
     List<AppUserHourVO> countBannedHour(@Param("appId")String appId, @Param("type")int type);
+
+    /**
+     * 风控配置关联应用
+     */
+    void relativeApp(@Param("appId")String appId,@Param("appName")String appName,
+                     @Param("templateId")String templateId,
+                     @Param("nickName")String nickName, @Param("userId")String userId);
 }

+ 16 - 7
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java

@@ -85,7 +85,7 @@ public class ApkServiceImpl implements ApkService {
             //修改时判断已生成风控配置,则说明出过包,仅需更换即可
             YtRiskTemplate template =  riskMapper.getTemplateByAppId(param.getAppId());
             if(Objects.isNull(template)){
-                generateRiskDefaultConfig(param.getAppId(),param.getUserId(),loginUser);
+                generateRiskDefaultConfig(param,loginUser);
             }
             return Result.resultOk(RepMessage.SAVE_SUCCESS);
         }
@@ -94,14 +94,15 @@ public class ApkServiceImpl implements ApkService {
 
     /**
      * 给应用生成默认的风控配置
-     * @param appId
      */
-    private void generateRiskDefaultConfig(String appId,String agentId,MiddleUserInfo loginUser) {
-        addTemp742(appId,agentId,loginUser);
-        addTemp746(appId,agentId,loginUser);
+    private void generateRiskDefaultConfig(AppParam param,MiddleUserInfo loginUser) {
+        addTemp742(param,loginUser);
+        addTemp746(param,loginUser);
     }
 
-    private void addTemp746(String appId, String agentId, MiddleUserInfo loginUser) {
+    private void addTemp746(AppParam param, MiddleUserInfo loginUser) {
+        String appId = param.getAppId();
+        String agentId = param.getUserId();
         List<String> configIds = new ArrayList<>();
         String configId = IdUtil.getSnowflakeNextIdStr();
         configIds.add(configId);
@@ -122,9 +123,14 @@ public class ApkServiceImpl implements ApkService {
                 2,appId,new Date(),loginUser.getUserId(),null,
                 null,1,1,1);
         riskMapper.insertTemplate(template);
+        //风控模版关联应用
+        riskMapper.relativeApp(appId,param.getAppName(),template.getTemplateId(),
+                loginUser.getNickName(),loginUser.getUserId());
     }
 
-    private void addTemp742(String appId, String agentId, MiddleUserInfo loginUser) {
+    private void addTemp742(AppParam param, MiddleUserInfo loginUser) {
+        String appId = param.getAppId();
+        String agentId = param.getUserId();
         List<String> configIds = new ArrayList<>();
         String configId = IdUtil.getSnowflakeNextIdStr();
         configIds.add(configId);
@@ -149,6 +155,9 @@ public class ApkServiceImpl implements ApkService {
                 2,appId,new Date(),loginUser.getUserId(),null,
                 null,1,1,1);
         riskMapper.insertTemplate(template);
+        //风控模版关联应用
+        riskMapper.relativeApp(appId,param.getAppName(),template.getTemplateId(),
+                loginUser.getNickName(),loginUser.getUserId());
     }
 
     /**

+ 3 - 0
yt-middle/middle-platform/src/main/resources/mapper/ApkMapper.xml

@@ -34,6 +34,9 @@
         LEFT JOIN yt_app_channel_relative acr ON ya.app_id = acr.app_id
         LEFT JOIN yt_platform_user u ON ya.user_id = u.user_id
         <where>
+            <if test="channelName !=null and channelName != ''">
+                and ya.ditch_name like concat('%', #{channelName} ,'%')
+            </if>
             <if test="appName !=null and appName != ''">
                 and ya.app_name like concat('%', #{appName} ,'%')
             </if>

+ 7 - 6
yt-middle/middle-platform/src/main/resources/mapper/MiddlerDeptMapper.xml

@@ -29,22 +29,22 @@
             <if test=" parentId!=null" >
                 parent_id = #{parentId},
             </if>
-            <if test=" deptId!=null" >
-                dept_name = #{deptId},
+            <if test=" deptName!=null" >
+                dept_name = #{deptName},
             </if>
             <if test=" describe!=null" >
                 `describe` = #{describe},
             </if>
-            <if test=" !=null" >
+            <if test="sort !=null" >
                 sort = #{sort},
             </if>
-            <if test=" !=null" >
+            <if test="updateTime !=null" >
                 update_time = #{updateTime},
             </if>
-            <if test=" !=null" >
+            <if test="updateUserId !=null" >
                 update_user_id = #{updateUserId},
             </if>
-            <if test=" !=null" >
+            <if test="available !=null" >
                 available = #{available}
             </if>
         </set>
@@ -64,6 +64,7 @@
                 and dept_name like concat('%',#{deptName},'%')
             </if>
         </where>
+        order by sort desc
     </select>
     <select id="getAllDeptList" resultType="com.ytpm.middle.view.DropDownVO">
         select

+ 1 - 0
yt-middle/middle-platform/src/main/resources/mapper/PermissionMapper.xml

@@ -138,6 +138,7 @@
                 and available  = #{available}
             </if>
         </where>
+        order by sort desc
     </select>
     <select id="getByRoute" resultType="com.ytpm.middle.model.YtMiddlePermission">
         select

+ 4 - 0
yt-middle/middle-platform/src/main/resources/mapper/RiskMapper.xml

@@ -74,6 +74,10 @@
          #{canModify}
         );
     </insert>
+    <insert id="relativeApp">
+        insert into yt_cofig_app (template_id, app_id, app_name, operator, operator_name, operator_time)
+        values (#{templateId},#{appId},#{appName},#{userId},#{nickName},now());
+    </insert>
     <select id="getTemplateByAppId" resultType="com.ytpm.risk.model.YtRiskTemplate">
         select
             template_id, template_name, template_content, template_code, channel_id, effect_node, app_id, all_satisfy, create_time, create_user_id, update_time, update_user_id, enabled, can_modify

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

@@ -312,11 +312,13 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
     /**
      * 设置解封用户信息
      */
-    private void setDeblockLoginInfo(List<RiskDeblockingListView> deblockingList) {
+    private void setDeblockLoginInfo(List<RiskDeblockingListView> deblockingList,RiskDeblockingListParam param) {
         String userIds = deblockingList.stream().map(
                 RiskDeblockingListView::getUserId).distinct().collect(Collectors.joining(","));
         AppUserParam appUserParam = new AppUserParam();
         appUserParam.setUserIds(userIds);
+        appUserParam.setLoginTimeBegin(param.getLoginTimeBegin());
+        appUserParam.setLoginTimeEnd(param.getLoginTimeEnd());
         List<YtDyzUser> data = appFeign.getUserList(appUserParam).getData();
         Map<String, YtDyzUser> collect = data.stream().collect(Collectors.toMap(YtDyzUser::getUserId, o->o));
         for (RiskDeblockingListView view : deblockingList) {
@@ -339,7 +341,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
         PageHelper.startPage(param.getPage(),param.getLimit());
         List<RiskDeblockingListView> deblockingList = riskManageMapper.getDeblockingList(param);
         if(CollUtil.isNotEmpty(deblockingList)){
-            setDeblockLoginInfo(deblockingList);
+            setDeblockLoginInfo(deblockingList,param);
         }
         return ResultTable.resultTableOk(new PageInfo<RiskDeblockingListView>(deblockingList));
     }

+ 3 - 0
yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml

@@ -135,6 +135,9 @@
                 LEFT JOIN yt_platform_user u_update ON t.update_user_id = u_update.user_id
         WHERE
             t.channel_id = #{channelId}
+        <if test="appId != null and appId!= ''">
+            and ca.app_id = #{appId}
+        </if>
         group by t.template_id
     </select>
     <select id="selectOneTemplate" resultType="com.ytpm.risk.model.YtRiskTemplate">

+ 3 - 0
yt-risk/risk-manage/src/main/resources/mapper/RiskManageMapper.xml

@@ -77,6 +77,9 @@
         <if test="appId != null and appId != ''">
             and a.app_id = #{appId}
         </if>
+        <if test="userId != null and userId != ''">
+            and pd.user_id = #{userId}
+        </if>
         <if test="channelOrigin != null">
             and a.ditch_id = #{channelOrigin}
         </if>