Bläddra i källkod

根据角色获取权限
角色分配权限回显
统计排行榜数据

marxjaw 3 månader sedan
förälder
incheckning
555e2422be
40 ändrade filer med 646 tillägg och 40 borttagningar
  1. 9 0
      yt-app/app-feign/src/main/java/com/ytpm/feign/AppFeign.java
  2. 17 0
      yt-app/app-service/src/main/java/com/ytpm/controller/AdController.java
  3. 23 0
      yt-app/app-service/src/main/java/com/ytpm/dao/AppUserMapper.java
  4. 14 0
      yt-app/app-service/src/main/java/com/ytpm/service/AdService.java
  5. 33 0
      yt-app/app-service/src/main/java/com/ytpm/service/impl/AdServiceImpl.java
  6. 6 4
      yt-app/app-service/src/main/resources/mapper/AdRecordMapper.xml
  7. 62 0
      yt-app/app-service/src/main/resources/mapper/AppUserMapper.xml
  8. 2 0
      yt-common/src/main/java/com/ytpm/app/model/YtDyzAdRecord.java
  9. 2 0
      yt-common/src/main/java/com/ytpm/app/param/DyzAdRecordParam.java
  10. 17 0
      yt-common/src/main/java/com/ytpm/middle/enums/RankingTypeEnum.java
  11. 20 0
      yt-common/src/main/java/com/ytpm/middle/view/AppRankingListVO.java
  12. 20 0
      yt-common/src/main/java/com/ytpm/middle/view/DashboardRankingListVO.java
  13. 20 0
      yt-common/src/main/java/com/ytpm/middle/view/DashboardTopCountVo.java
  14. 3 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddlePermissionVO.java
  15. 4 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddleUserInfo.java
  16. 24 0
      yt-common/src/main/java/com/ytpm/middle/view/UserRankingListVO.java
  17. 3 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AgentController.java
  18. 2 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AppController.java
  19. 2 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DeptController.java
  20. 36 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/HomeController.java
  21. 11 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/PermissionController.java
  22. 14 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/RoleController.java
  23. 2 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/UserController.java
  24. 15 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/ApkMapper.java
  25. 4 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/EnterpriseMapper.java
  26. 15 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/PermissionMapper.java
  27. 17 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/CountService.java
  28. 5 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/PermissionService.java
  29. 5 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/RoleService.java
  30. 2 9
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AttachServiceImpl.java
  31. 79 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/CountServiceImpl.java
  32. 41 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/PermissionServiceImpl.java
  33. 18 2
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/RoleServiceImpl.java
  34. 4 4
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/UserServiceImpl.java
  35. 17 0
      yt-middle/middle-platform/src/main/resources/mapper/ApkMapper.xml
  36. 6 0
      yt-middle/middle-platform/src/main/resources/mapper/EnterpriseMapper.xml
  37. 34 10
      yt-middle/middle-platform/src/main/resources/mapper/MiddleUserMapper.xml
  38. 34 3
      yt-middle/middle-platform/src/main/resources/mapper/PermissionMapper.xml
  39. 0 2
      yt-risk/risk-manage/src/main/java/com/ytpm/controller/PublicApiController.java
  40. 4 6
      yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

+ 9 - 0
yt-app/app-feign/src/main/java/com/ytpm/feign/AppFeign.java

@@ -12,13 +12,16 @@ import com.ytpm.app.view.WxDefaultConfig;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
+import com.ytpm.middle.view.DashboardRankingListVO;
 import org.springframework.cloud.openfeign.FeignClient;
 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.RequestParam;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 @FeignClient(name = "app-service")
 public interface AppFeign {
@@ -56,4 +59,10 @@ public interface AppFeign {
 
     @PostMapping("/user/queryTodayBanned")
     List<YtDyzUser> queryTodayBanned(@RequestBody AppUserTodayBannedParam appUserTodayBannedParam);
+
+    @GetMapping("/ad/getAdCount")
+    Map<String, BigDecimal> getAdCount(@RequestParam(name = "appIds")String appIds);
+
+    @GetMapping("/ad/getAppRankingList")
+    DashboardRankingListVO queryRankingList(@RequestParam(name = "sortBy") Integer sortBy,@RequestParam(name = "limit") Integer limit);
 }

+ 17 - 0
yt-app/app-service/src/main/java/com/ytpm/controller/AdController.java

@@ -2,15 +2,20 @@ package com.ytpm.controller;
 
 import com.ytpm.app.param.DyzAdRecordParam;
 import com.ytpm.general.Result;
+import com.ytpm.middle.view.DashboardRankingListVO;
 import com.ytpm.service.AdService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+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 javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Map;
 
 
 @Api(tags = "用户浏览广告记录")
@@ -29,4 +34,16 @@ public class AdController {
     public Result<?> saveRecord(@RequestBody DyzAdRecordParam param){
         return adService.saveRecord(param);
     }
+
+    @ApiOperation("根据应用ID查询广告数")
+    @GetMapping("/getAdCount")
+    public Map<String, BigDecimal> getAdCount(@RequestParam(name = "appIds")String appIds){
+        return adService.getAdCount(appIds);
+    }
+
+    @ApiOperation("查询应用排行榜信息")
+    @GetMapping("/getAppRankingList")
+    public DashboardRankingListVO queryRankingList(@RequestParam(name = "sortBy")Integer sortBy,@RequestParam(name = "limit")Integer limit){
+        return adService.queryRankingList(sortBy,limit);
+    }
 }

+ 23 - 0
yt-app/app-service/src/main/java/com/ytpm/dao/AppUserMapper.java

@@ -7,9 +7,12 @@ import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.app.view.HourCountView;
 import com.ytpm.app.view.WxDefaultConfig;
 import com.ytpm.app.view.YtAppUserListView;
+import com.ytpm.middle.view.AppRankingListVO;
+import com.ytpm.middle.view.UserRankingListVO;
 import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -107,4 +110,24 @@ public interface AppUserMapper {
      * 根据APP_ID获取配置
      */
     List<WxDefaultConfig> getConfigByIds(@Param("appIds") String appIds);
+
+    /**
+     * 根据应用统计广告数
+     */
+    int getAdCount(@Param("appIds") String appIds);
+
+    /**
+     * 根据应用统计收益
+     */
+    BigDecimal getRevenueCount(@Param("appIds") String appIds);
+
+    /**
+     * 查询应用排行榜
+     */
+    List<AppRankingListVO> getAppRanking(@Param("sortBy") int sortBy,@Param("limit") int limit);
+
+    /**
+     * 查询用户排行榜数据
+     */
+    List<UserRankingListVO> getUserRanking(@Param("sortBy") int sortBy,@Param("limit") int limit);
 }

+ 14 - 0
yt-app/app-service/src/main/java/com/ytpm/service/AdService.java

@@ -2,10 +2,24 @@ package com.ytpm.service;
 
 import com.ytpm.app.param.DyzAdRecordParam;
 import com.ytpm.general.Result;
+import com.ytpm.middle.view.DashboardRankingListVO;
+
+import java.math.BigDecimal;
+import java.util.Map;
 
 public interface AdService {
     /**
      * 保存广告记录
      */
     Result<?> saveRecord(DyzAdRecordParam param);
+
+    /**
+     * 根据应用查询广告数量
+     */
+    Map<String, BigDecimal> getAdCount(String appIds);
+
+    /**
+     * 查询排行榜信息
+     */
+    DashboardRankingListVO queryRankingList(Integer sortBy,Integer limit);
 }

+ 33 - 0
yt-app/app-service/src/main/java/com/ytpm/service/impl/AdServiceImpl.java

@@ -14,6 +14,9 @@ import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.StatusCode;
 import com.ytpm.handle.CustomerException;
+import com.ytpm.middle.view.AppRankingListVO;
+import com.ytpm.middle.view.DashboardRankingListVO;
+import com.ytpm.middle.view.UserRankingListVO;
 import com.ytpm.service.AdService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +25,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 @Service
@@ -59,6 +66,32 @@ public class AdServiceImpl implements AdService {
         return Result.resultOk(RepMessage.SAVE_SUCCESS);
     }
 
+    /**
+     * 根据应用查询广告数量
+     */
+    @Override
+    public Map<String,BigDecimal> getAdCount(String appIds) {
+        Map<String, BigDecimal> map = new HashMap<>();
+        //查询这些app的用户统计广告数量相加
+        int adCount = appUserMapper.getAdCount(appIds);
+        BigDecimal total = appUserMapper.getRevenueCount(appIds);
+        map.put("adCount", BigDecimal.valueOf(adCount));
+        map.put("expectRevenue", total);
+        return map;
+    }
+
+    /**
+     * 查询排行榜信息
+     */
+    @Override
+    public DashboardRankingListVO queryRankingList(Integer sortBy,Integer limit) {
+        //查询前五个应用名称 当日收益  用户数量
+        List<AppRankingListVO> appRankingList = appUserMapper.getAppRanking(sortBy,limit);
+        //查询前五个用户  所属应用  视频数 总收益 ecpm
+        List<UserRankingListVO> userRankingList = appUserMapper.getUserRanking(sortBy,limit);
+        return new DashboardRankingListVO(appRankingList,userRankingList);
+    }
+
     /**
      * 保存记录
      *  始终创建新的事务以保障子方法的独立事务

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

@@ -19,7 +19,8 @@
          result_json,
          ad_source_index,
          ad_source_type,
-         ecpm
+         ecpm,
+         app_id
         )
         values
         (
@@ -37,12 +38,13 @@
          #{resultJson},
          #{adSourceIndex},
          #{adSourceType},
-         #{ecpm}
+         #{ecpm},
+         #{appId}
         )
     </insert>
     <select id="getByUserId" resultType="com.ytpm.app.model.YtDyzAdRecord">
         select
-            record_id, user_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,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
         from yt_dyz_ad_record
         where user_id = #{userId}
           <if test="adsourceType != null">
@@ -52,7 +54,7 @@
     </select>
     <select id="getByUserIds" resultType="com.ytpm.app.model.YtDyzAdRecord">
         select
-            record_id, user_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,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
         from yt_dyz_ad_record
         where user_id in
               <foreach collection="userIds.split(',')" open="(" close=")" separator="," item="item">

+ 62 - 0
yt-app/app-service/src/main/resources/mapper/AppUserMapper.xml

@@ -337,4 +337,66 @@
             #{item}
         </foreach>
     </select>
+    <select id="getAdCount" resultType="java.lang.Integer">
+        select
+            sum(total_video)
+        from yt_dyz_user
+        where app_id in
+        <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+    <select id="getRevenueCount" resultType="java.math.BigDecimal">
+        select
+        sum(total_income)
+        from yt_dyz_user
+        where app_id in
+        <foreach collection="appIds.split(',')" separator="," item="item" open="(" close=")">
+            #{item}
+        </foreach>
+    </select>
+    <select id="getAppRanking" resultType="com.ytpm.middle.view.AppRankingListVO">
+        SELECT
+            u.app_id,
+            sum( ar.revenue ) totalRevenue
+        FROM
+            yt_dyz_ad_record ar
+            JOIN yt_dyz_user u ON ar.user_id = u.user_id
+        <where>
+            <if test="sortBy != null and sortBy == 1">
+                DATE_FORMAT( ar.finish_time, '%Y-%m-%d' ) = CURRENT_DATE()
+            </if>
+            <if test="sortBy != null and sortBy != 1">
+                YEARWEEK( ar.finish_time, 1 ) = YEARWEEK(now(),1)
+            </if>
+        </where>
+        GROUP BY
+            u.app_id
+        ORDER BY
+            sum( ar.revenue ) DESC
+        LIMIT #{limit}
+    </select>
+    <select id="getUserRanking" resultType="com.ytpm.middle.view.UserRankingListVO">
+        SELECT
+            u.user_id,
+            u.nick_name,
+            u.head_img,
+            u.total_video,
+            sum( ar.revenue ) totalIncome
+        FROM
+            yt_dyz_ad_record ar
+                JOIN yt_dyz_user u ON ar.user_id = u.user_id
+        <where>
+            <if test="sortBy != null and sortBy == 1">
+                DATE_FORMAT( ar.finish_time, '%Y-%m-%d' ) = CURRENT_DATE()
+            </if>
+            <if test="sortBy != null and sortBy != 1">
+                YEARWEEK( ar.finish_time, 1 ) = YEARWEEK(now(),1)
+            </if>
+        </where>
+        GROUP BY ar.user_id
+        ORDER BY
+            sum( ar.revenue ) DESC
+        limit #{limit}
+    </select>
 </mapper>

+ 2 - 0
yt-common/src/main/java/com/ytpm/app/model/YtDyzAdRecord.java

@@ -48,4 +48,6 @@ public class YtDyzAdRecord extends ComprehensiveCommonView {
     private int adSourceIndex;
     @ApiModelProperty("广告源类型")
     private int adSourceType;
+    @ApiModelProperty("应用ID")
+    private String appId;
 }

+ 2 - 0
yt-common/src/main/java/com/ytpm/app/param/DyzAdRecordParam.java

@@ -41,4 +41,6 @@ public class DyzAdRecordParam {
     private int adSourceType;
     @ApiModelProperty("SDK返回json数据")
     private String resultJson;
+    @ApiModelProperty("应用ID")
+    private String appId;
 }

+ 17 - 0
yt-common/src/main/java/com/ytpm/middle/enums/RankingTypeEnum.java

@@ -0,0 +1,17 @@
+package com.ytpm.middle.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum RankingTypeEnum {
+    APP(1,"应用"),
+    USER(2,"用户");
+
+    private int code;
+    private String desc;
+
+    RankingTypeEnum(int code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+}

+ 20 - 0
yt-common/src/main/java/com/ytpm/middle/view/AppRankingListVO.java

@@ -0,0 +1,20 @@
+package com.ytpm.middle.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("应用排行榜信息")
+public class AppRankingListVO {
+    @ApiModelProperty("应用ID")
+    private String appId;
+    @ApiModelProperty("应用名称")
+    private String appName;
+    @ApiModelProperty("总收益")
+    private BigDecimal totalRevenue;
+    @ApiModelProperty("当前排名")
+    private int ranking;
+}

+ 20 - 0
yt-common/src/main/java/com/ytpm/middle/view/DashboardRankingListVO.java

@@ -0,0 +1,20 @@
+package com.ytpm.middle.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("排行榜信息")
+public class DashboardRankingListVO {
+    @ApiModelProperty("应用排行榜信息")
+    private List<AppRankingListVO> appRankingList;
+    @ApiModelProperty("用户排行榜信息")
+    private List<UserRankingListVO> userRankingList;
+}

+ 20 - 0
yt-common/src/main/java/com/ytpm/middle/view/DashboardTopCountVo.java

@@ -0,0 +1,20 @@
+package com.ytpm.middle.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("首页顶部数据统计")
+public class DashboardTopCountVo {
+    @ApiModelProperty("入驻供应商数")
+    private int agentCount;
+    @ApiModelProperty("出包数")
+    private int apkCount;
+    @ApiModelProperty("广告数")
+    private int adCount;
+    @ApiModelProperty("预期收益")
+    private BigDecimal expectRevenue;
+}

+ 3 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddlePermissionVO.java

@@ -46,6 +46,9 @@ public class MiddlePermissionVO extends BaseParam {
     /** 排序 */
     @ApiModelProperty("排序")
     private int sort;
+    /** 排序 */
+    @ApiModelProperty("是否选中")
+    private boolean checked;
     /** 子权限列表 */
     @ApiModelProperty("子权限列表")
     private List<MiddlePermissionVO> children;

+ 4 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddleUserInfo.java

@@ -23,6 +23,10 @@ import java.util.Objects;
 public class MiddleUserInfo {
     @ApiModelProperty("用户ID")
     private String userId;
+    @ApiModelProperty("部门ID")
+    private Integer deptId;
+    @ApiModelProperty("部门名称")
+    private String deptName;
     @ApiModelProperty("用户昵称")
     private String nickName;
     @ApiModelProperty("头像")

+ 24 - 0
yt-common/src/main/java/com/ytpm/middle/view/UserRankingListVO.java

@@ -0,0 +1,24 @@
+package com.ytpm.middle.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("用户排行榜信息")
+public class UserRankingListVO {
+    @ApiModelProperty("总视频数")
+    private int totalVideo;
+    @ApiModelProperty("总收益")
+    private BigDecimal totalIncome;
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("用户头像")
+    private String headImg;
+    @ApiModelProperty("当前排名")
+    private int ranking;
+}

+ 3 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AgentController.java

@@ -8,6 +8,7 @@ import com.ytpm.middle.service.AgentService;
 import com.ytpm.middle.view.AgentBaseInfoListVO;
 import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -60,6 +61,7 @@ public class AgentController {
     /**
      * 启用或禁用
      */
+    @ApiImplicitParam(name = "creditCode", value = "企业信用代码", required = true)
     @ApiOperation("启用或禁用")
     @GetMapping("/changeEnabled")
     public Result<String> enabled(@RequestParam(name = "creditCode")String creditCode,  @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
@@ -69,6 +71,7 @@ public class AgentController {
     /**
      * 重置密码
      */
+    @ApiImplicitParam(name = "creditCode", value = "企业信用代码", required = true)
     @ApiOperation("重置密码")
     @GetMapping("/resetPwd")
     public Result<String> resetPwd(@RequestParam(name = "creditCode")String creditCode){

+ 2 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AppController.java

@@ -9,6 +9,7 @@ import com.ytpm.middle.service.AppService;
 import com.ytpm.middle.view.AppListVO;
 import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -59,6 +60,7 @@ public class AppController {
     /**
      * 删除应用
      */
+    @ApiImplicitParam(name = "appId", value = "应用ID", required = true)
     @ApiOperation("删除应用")
     @PostMapping("/delApp")
     public Result<String> delApp(@RequestParam("appId")String appId, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){

+ 2 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/DeptController.java

@@ -8,6 +8,7 @@ import com.ytpm.middle.service.DeptService;
 import com.ytpm.middle.view.MiddleDeptVO;
 import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -48,6 +49,7 @@ public class DeptController {
         return deptService.updateOne(param);
     }
 
+    @ApiImplicitParam(name = "deptId", value = "部门ID", required = true)
     @ApiOperation("删除部门")
     @GetMapping("/deleteOne")
     public Result<String> deleteOne(@RequestParam(name = "deptId")Integer deptId,@ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {

+ 36 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/HomeController.java

@@ -0,0 +1,36 @@
+package com.ytpm.middle.controller;
+
+import com.ytpm.general.Result;
+import com.ytpm.middle.service.CountService;
+import com.ytpm.middle.view.DashboardRankingListVO;
+import com.ytpm.middle.view.DashboardTopCountVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@Api(tags = "首页模块")
+@RestController
+@RequestMapping("/dashboard")
+public class HomeController {
+
+    @Resource
+    private CountService countService;
+
+    @ApiOperation("获取顶部数据统计")
+    @GetMapping("/topCount")
+    public Result<DashboardTopCountVo> getTopCount() {
+        return countService.getTopCount();
+    }
+    @ApiImplicitParam(name = "sortBy", value = "排序规则 1-当日 2-每周")
+    @ApiOperation("排行榜信息")
+    @GetMapping("/rankingList")
+    public Result<DashboardRankingListVO> getRankingList(@Param("sortBy")Integer sortBy) {
+        return countService.getRankingList(sortBy);
+    }
+}

+ 11 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/PermissionController.java

@@ -6,6 +6,8 @@ import com.ytpm.middle.param.MiddlePermissionParam;
 import com.ytpm.middle.service.PermissionService;
 import com.ytpm.middle.view.MiddlePermissionVO;
 import com.ytpm.middle.view.MiddleUserInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -18,6 +20,7 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 
+@Api(tags = "权限管理模块")
 @RestController
 @RequestMapping("/permission")
 public class PermissionController {
@@ -45,6 +48,7 @@ public class PermissionController {
         return permissionService.updateOne(param);
     }
 
+    @ApiImplicitParam(name = "permissionId", value = "权限ID", required = true)
     @ApiOperation("删除权限")
     @GetMapping("/delOne")
     public Result<String> delOne(@RequestParam(name = "permissionId")int permissionId, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
@@ -57,10 +61,17 @@ public class PermissionController {
         return permissionService.getMenuByRole(userInfo);
     }
 
+    @ApiImplicitParam(name = "permissionId", value = "权限ID", required = true)
     @ApiOperation("根据菜单获取按钮列表")
     @GetMapping("/getPermissionByMenu")
     public ResultTable<MiddlePermissionVO> getPermissionByMenu(@RequestParam(name = "permissionId")Integer permissionId,@ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         return permissionService.getPermissionByMenu(permissionId,userInfo);
     }
 
+    @ApiOperation("根据角色查询树状权限列表")
+    @GetMapping("/queryTreeByRole")
+    public ResultTable<MiddlePermissionVO> queryTreeByRole(@RequestParam(name = "roleId",required = true)Integer roleId){
+        return permissionService.queryTreeByRole(roleId);
+    }
+
 }

+ 14 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/RoleController.java

@@ -6,6 +6,9 @@ import com.ytpm.middle.param.MiddleRoleParam;
 import com.ytpm.middle.service.RoleService;
 import com.ytpm.middle.view.MiddleRoleVO;
 import com.ytpm.middle.view.MiddleUserInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -18,6 +21,7 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 
+@Api(tags = "角色管理模块")
 @RestController
 @RequestMapping("/role")
 public class RoleController {
@@ -45,6 +49,7 @@ public class RoleController {
         return roleService.updateOne(param);
     }
 
+    @ApiImplicitParam(name = "roleId", value = "角色ID", required = true)
     @ApiOperation("删除角色")
     @GetMapping("/delOne")
     public Result<String> delOne(@RequestParam(name = "roleId")Integer roleId, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
@@ -56,4 +61,13 @@ public class RoleController {
     public Result<String> grantUserList(@RequestParam(name = "userIds")String userIds,@RequestParam(name = "roleId")Integer roleId,@ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
         return roleService.grantUsers(userIds,roleId,userInfo.getUserId());
     }
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "roleId", value = "角色ID", required = true),
+            @ApiImplicitParam(name = "permissionIds", value = "权限ID(,拼接)", required = true),
+    })
+    @ApiOperation("角色权限设置")
+    @GetMapping("/savePermission")
+    public Result<String> savePermission(@RequestParam(name = "roleId")Integer roleId,@RequestParam(name = "permissionIds")String permissionIds,@ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
+        return roleService.savePermission(roleId,permissionIds,userInfo.getUserId());
+    }
 }

+ 2 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/UserController.java

@@ -7,6 +7,7 @@ import com.ytpm.middle.param.MiddleUserParam;
 import com.ytpm.middle.service.UserService;
 import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -48,6 +49,7 @@ public class UserController {
         return userService.updateOne(param);
     }
 
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true)
     @ApiOperation("删除用户")
     @GetMapping("/deleteOne")
     public Result<String> deleteOne(@RequestParam(name = "userId")String userId) {

+ 15 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/ApkMapper.java

@@ -24,4 +24,19 @@ public interface ApkMapper {
      * 保存应用
      */
     void updateOne(YtApp app);
+
+    /**
+     * 统计出包数量
+     */
+    int countApk();
+
+    /**
+     * 查询appId
+     */
+    String getAppIds();
+
+    /**
+     * 查询所有应用
+     */
+    List<AgentAppView> queryAll();
 }

+ 4 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/EnterpriseMapper.java

@@ -20,4 +20,8 @@ public interface EnterpriseMapper {
      * 修改企业
      */
     void updateById(YtMiddleEnterprise enterprise);
+    /**
+     * 统计入驻的企业数
+     */
+    int countEnterprise();
 }

+ 15 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/PermissionMapper.java

@@ -69,4 +69,19 @@ public interface PermissionMapper {
      * 查询指定菜单的权限列表
      */
     List<MiddlePermissionVO> getByParentId(@Param("permissionId") Integer permissionId, @Param("roleIds") String roleIds);
+
+    /**
+     * 给角色分配权限
+     */
+    void addRolePermissions(@Param("roleId")Integer roleId, @Param("permissionIds") String permissionIds, @Param("operatorId") String operatorId);
+
+    /**
+     * 根据角色
+     */
+    void delByRoleId(@Param("roleId") Integer roleId);
+
+    /**
+     * 根据角色查询所有权限
+     */
+    List<MiddlePermissionVO> queryAllByRole(@Param("roleId") Integer roleId);
 }

+ 17 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/CountService.java

@@ -0,0 +1,17 @@
+package com.ytpm.middle.service;
+
+import com.ytpm.general.Result;
+import com.ytpm.middle.view.DashboardRankingListVO;
+import com.ytpm.middle.view.DashboardTopCountVo;
+
+public interface CountService {
+    /**
+     * 获取顶部数据统计
+     */
+    Result<DashboardTopCountVo> getTopCount();
+
+    /**
+     * 按照排行榜类型、排序规则统计排行榜信息
+     */
+    Result<DashboardRankingListVO> getRankingList(Integer sortBy);
+}

+ 5 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/PermissionService.java

@@ -41,4 +41,9 @@ public interface PermissionService {
      * 根据菜单获取权限列表
      */
     ResultTable<MiddlePermissionVO> getPermissionByMenu(Integer permissionId, MiddleUserInfo userInfo);
+
+    /**
+     * 根据角色查询权限列表
+     */
+    ResultTable<MiddlePermissionVO> queryTreeByRole(Integer roleId);
 }

+ 5 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/RoleService.java

@@ -32,4 +32,9 @@ public interface RoleService {
      * 角色授权用户
      */
     Result<String> grantUsers(String userIds,Integer roleId, String operatorId);
+
+    /**
+     * 角色分配权限
+     */
+    Result<String> savePermission(Integer roleId, String permissionIds, String operatorId);
 }

+ 2 - 9
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AttachServiceImpl.java

@@ -15,13 +15,6 @@ import java.io.IOException;
 @Service
 public class AttachServiceImpl implements AttachService {
 
-    private static String endpoint;
-
-    @Value("${oss.aliyun.endpoint}")
-    private void setEndpoint(String endpointCon) {
-        endpoint = endpointCon;
-    }
-
     @Override
     public Attach uploadFile(MultipartFile multipartFile) {
 
@@ -29,7 +22,7 @@ public class AttachServiceImpl implements AttachService {
         Attach attach = new Attach();
         attach.setName(originFilename);
         try {
-            attach.setUrl(endpoint+"/"+AliOSSUtil.uploadAdvise(multipartFile.getInputStream(),originFilename));
+            attach.setUrl("https://file.ytmdm.com/"+AliOSSUtil.uploadAdvise(multipartFile.getInputStream(),originFilename));
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
@@ -43,7 +36,7 @@ public class AttachServiceImpl implements AttachService {
         Image image = new Image();
         image.setOssName(imgName);
         try {
-            image.setUrl(endpoint+"/"+AliOSSUtil.uploadAdvise(multipartFile.getInputStream(), imgName));
+            image.setUrl("https://file.ytmdm.com/"+AliOSSUtil.uploadAdvise(multipartFile.getInputStream(), imgName));
         } catch (IOException e) {
             throw new RuntimeException(e);
         }

+ 79 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/CountServiceImpl.java

@@ -0,0 +1,79 @@
+package com.ytpm.middle.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.ytpm.agent.view.AgentAppView;
+import com.ytpm.feign.AppFeign;
+import com.ytpm.general.Result;
+import com.ytpm.middle.dao.ApkMapper;
+import com.ytpm.middle.dao.EnterpriseMapper;
+import com.ytpm.middle.service.CountService;
+import com.ytpm.middle.util.RedisUtil;
+import com.ytpm.middle.view.AppRankingListVO;
+import com.ytpm.middle.view.DashboardRankingListVO;
+import com.ytpm.middle.view.DashboardTopCountVo;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Service
+public class CountServiceImpl implements CountService {
+
+    @Resource
+    private EnterpriseMapper enterpriseMapper;
+    @Resource
+    private ApkMapper apkMapper;
+    @Resource
+    private AppFeign appFeign;
+    @Resource
+    private RedisUtil redisUtil;
+    @Value("${ranking.expire}")
+    private int rankingExpire;
+    @Value("${ranking.limit}")
+    private int rankingLimit;
+    private static final String RANKING_KEY = "yt_ranking";
+    /**
+     * 获取顶部数据统计
+     */
+    @Override
+    public Result<DashboardTopCountVo> getTopCount() {
+        DashboardTopCountVo vo = new DashboardTopCountVo();
+        vo.setAgentCount(enterpriseMapper.countEnterprise());
+        vo.setApkCount(apkMapper.countApk());
+        Map<String, BigDecimal> map = appFeign.getAdCount(apkMapper.getAppIds());
+        if(!map.isEmpty()){
+            BigDecimal adCount = map.get("adCount");
+            BigDecimal revenue = map.get("expectRevenue");
+            vo.setAdCount(Objects.isNull(adCount) ? 0 : adCount.intValue());
+            vo.setExpectRevenue(Objects.isNull(revenue) ? BigDecimal.ZERO : revenue);
+        }
+        return Result.resultObjOk(vo);
+    }
+
+    /**
+     * 按照排行榜类型、排序规则统计排行榜信息
+     */
+    @Override
+    public Result<DashboardRankingListVO> getRankingList(Integer sortBy) {
+        //判断redis中是否存在排行榜信息 不存在则查询数据进行更新,存在则直接取出
+        if(Boolean.TRUE.equals(redisUtil.hasKey(RANKING_KEY))){
+            String ranking = redisUtil.getStr(RANKING_KEY);
+            return Result.resultObjOk(JSON.parseObject(ranking, DashboardRankingListVO.class));
+        }
+        DashboardRankingListVO rankingVO = appFeign.queryRankingList(sortBy,rankingLimit);
+        List<AppRankingListVO> appRankingList = rankingVO.getAppRankingList();
+        List<AgentAppView> views = apkMapper.queryAll();
+        Map<String, String> collect = views.stream().collect(Collectors.toMap(s -> s.getAppId(), o -> o.getAppName()));
+        for (AppRankingListVO vo : appRankingList) {
+            vo.setAppName(collect.get(vo.getAppId()));
+        }
+        rankingVO.setAppRankingList(appRankingList);
+        redisUtil.setTimeOutMinutesStr(RANKING_KEY, JSON.toJSONString(rankingVO),rankingExpire);
+        return Result.resultObjOk(rankingVO);
+    }
+}

+ 41 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/PermissionServiceImpl.java

@@ -161,6 +161,31 @@ public class PermissionServiceImpl implements PermissionService {
         return ResultTable.resultTableOk(new PageInfo<>(permissionMapper.getByParentId(permissionId,roleIds)));
     }
 
+    /**
+     * 根据角色查询权限列表
+     */
+    @Override
+    public ResultTable<MiddlePermissionVO> queryTreeByRole(Integer roleId) {
+        List<MiddlePermissionVO> all = permissionMapper.queryAll(new MiddlePermissionParam());
+        List<MiddlePermissionVO> permissionVOS = permissionMapper.queryAllByRole(roleId);
+        //过滤一级列表
+        List<MiddlePermissionVO> firstList = all.stream().filter(
+                s-> Objects.isNull(s.getParentId())).collect(Collectors.toList());
+        //递归处理菜单设置子列表
+        for (MiddlePermissionVO vo : firstList) {
+            if(CollUtil.isEmpty(permissionVOS)){
+                recursionChildPermission(vo,all);
+            }else{
+                List<Integer> permissionIdList = permissionVOS.stream().map(MiddlePermissionVO::getPermissionId)
+                        .distinct().collect(Collectors.toList());
+                vo.setChecked(permissionIdList.contains(vo.getPermissionId()));
+                recursionChildPermission(vo,all,permissionIdList);
+            }
+
+        }
+        return ResultTable.resultTableOk(new PageInfo<>(firstList));
+    }
+
     /**
      * 递归处理菜单设置子列表
      */
@@ -174,4 +199,20 @@ public class PermissionServiceImpl implements PermissionService {
             recursionChildPermission(child,allList);
         }
     }
+
+    /**
+     * 递归处理菜单设置子列表,并设置选中状态
+     */
+    private void recursionChildPermission(MiddlePermissionVO vo, List<MiddlePermissionVO> allList, List<Integer> idList) {
+        List<MiddlePermissionVO> children = allList.stream()
+                .filter(s -> Objects.equals(vo.getPermissionId(), s.getParentId()))
+                .collect(Collectors.toList());
+        if(CollUtil.isEmpty(children))return;
+        vo.setChecked(idList.contains(vo.getPermissionId()));
+        vo.setChildren(children);
+        for (MiddlePermissionVO child : children) {
+            child.setChecked(idList.contains(child.getPermissionId()));
+            recursionChildPermission(child,allList);
+        }
+    }
 }

+ 18 - 2
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/RoleServiceImpl.java

@@ -5,7 +5,7 @@ import com.github.pagehelper.PageInfo;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import com.ytpm.middle.dao.MiddleUserMapper;
+import com.ytpm.middle.dao.PermissionMapper;
 import com.ytpm.middle.dao.RoleMapper;
 import com.ytpm.middle.model.YtMiddleRole;
 import com.ytpm.middle.param.MiddleRoleParam;
@@ -24,7 +24,7 @@ public class RoleServiceImpl implements RoleService {
     @Resource
     private RoleMapper roleMapper;
     @Resource
-    private MiddleUserMapper middleUserMapper;
+    private PermissionMapper permissionMapper;
 
     /**
      * 查询角色列表
@@ -96,4 +96,20 @@ public class RoleServiceImpl implements RoleService {
         roleMapper.grantRoleToUsers(roleId,operatorId,userIds);
         return Result.resultOk(RepMessage.GRANT_SUCCESS);
     }
+
+    /**
+     * 角色分配权限
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<String> savePermission(Integer roleId, String permissionIds, String operatorId) {
+        YtMiddleRole old = roleMapper.selectPrimary(roleId);
+        if(Objects.isNull(old)){
+            return Result.resultOk(RepMessage.DELETE_SUCCESS);
+        }
+        //清除旧权限,分配新权限
+        permissionMapper.delByRoleId(roleId);
+        permissionMapper.addRolePermissions(roleId,permissionIds,operatorId);
+        return Result.resultOk(RepMessage.GRANT_SUCCESS);
+    }
 }

+ 4 - 4
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/UserServiceImpl.java

@@ -76,8 +76,8 @@ public class UserServiceImpl implements UserService {
     @Transactional(rollbackFor = Exception.class)
     public Result<String> updateOne(MiddleUserParam param) {
         MiddleUserInfo byPhone = userMapper.selectPrimary(param.getUserId());
-        if(Objects.nonNull(byPhone)){
-            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        if(Objects.isNull(byPhone)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
         }
         //修改用户信息
         YtPlatformUser user = new YtPlatformUser();
@@ -101,8 +101,8 @@ public class UserServiceImpl implements UserService {
     @Transactional(rollbackFor = Exception.class)
     public Result<String> delOne(String userId) {
         MiddleUserInfo old = userMapper.selectPrimary(userId);
-        if(Objects.nonNull(old)){
-            return Result.resultErr(RepMessage.OBJECT_ALREADY_EXIST);
+        if(Objects.isNull(old)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
         }
         YtPlatformUser platformUser = new YtPlatformUser();
         platformUser.setUserId(userId);

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

@@ -44,6 +44,23 @@
         GROUP BY
         ya.app_id
     </select>
+    <select id="countApk" resultType="java.lang.Integer">
+        select
+            count(app_id)
+        from yt_app
+        where apk_url is not null
+    </select>
+    <select id="getAppIds" resultType="java.lang.String">
+        select
+            group_concat(app_id)
+        from yt_app
+        where apk_url is not null
+    </select>
+    <select id="queryAll" resultType="com.ytpm.agent.view.AgentAppView">
+        select
+            app_id, app_key, app_name, user_id, app_type, apk_url, qr_code, version_code, update_tips, enabled, store_on_sale, store_type, store_url, package_name, domain, category, sub_category, coppa, screen_orientation, ccpa, feign_path, ditch_id, ditch_name, superior_id
+        from yt_app
+    </select>
 
     <insert id="insertOne">
         insert into yt_app

+ 6 - 0
yt-middle/middle-platform/src/main/resources/mapper/EnterpriseMapper.xml

@@ -80,4 +80,10 @@
         from yt_middle_enterprise
         where credit_code = #{creditCode}
     </select>
+    <select id="countEnterprise" resultType="java.lang.Integer">
+        select
+            count(credit_code)
+        from yt_middle_enterprise
+        where available = 1
+    </select>
 </mapper>

+ 34 - 10
yt-middle/middle-platform/src/main/resources/mapper/MiddleUserMapper.xml

@@ -36,7 +36,7 @@
         insert into yt_middle_user_role (user_id, role_id, create_time, create_user_id)
         values
         <foreach collection="roleIdList" separator="," item="item">
-            (#{userId},#{item},#{operatorId},now())
+            (#{userId},#{item},now(),#{operatorId})
         </foreach>
     </insert>
     <update id="updateById">
@@ -82,11 +82,29 @@
         delete from yt_middle_user_role where user_id = #{userId}
     </delete>
 
-    <select id="getByLoginName" resultType="com.ytpm.middle.view.MiddleUserInfo">
+    <select id="getByLoginName" resultMap="MiddleUserMap">
         select
-            user_id, nick_name, head_image, login_name, encrypt_pwd, salt, phone, last_login_time,  account_status,  user_type, registry_time,super_admin
-        from yt_platform_user
-        where user_type = 99 and account_status = 1 and login_name = #{userName}
+            u.user_id,
+            u.nick_name,
+            u.head_image,
+            u.login_name,
+            u.encrypt_pwd,
+            u.salt,
+            u.phone,
+            u.last_login_time,
+            u.account_status,
+            u.user_type,
+            u.registry_time,
+            u.super_admin,
+            u.account_status,
+            d.dept_id,
+            d.dept_name,
+            r.role_id,
+            (select role_name from yt_middle_role where role_id = r.role_id) roleName
+        from yt_platform_user u
+        left join yt_middle_dept d on u.dept_id = d.dept_id
+        left join yt_middle_user_role r on u.user_id = r.user_id
+        where u.user_type = 99 and u.account_status = 1 and u.login_name = #{userName}
     </select>
     <select id="getRoleList" resultType="com.ytpm.middle.view.MiddleRoleVO">
         select
@@ -100,11 +118,15 @@
     </select>
     <resultMap id="MiddleUserMap" type="com.ytpm.middle.view.MiddleUserInfo">
         <id column="user_id" property="userId" />
-        <result column="" property="nickName" />
-        <result column="" property="headImage" />
-        <result column="" property="loginName" />
-        <result column="" property="phone" />
-        <result column="" property="lastLoginTime" />
+        <result column="dept_id" property="deptId" />
+        <result column="dept_name" property="deptName" />
+        <result column="nick_name" property="nickName" />
+        <result column="head_image" property="headImage" />
+        <result column="account_status" property="accountStatus" />
+        <result column="login_name" property="loginName" />
+        <result column="super_admin" property="superAdmin" />
+        <result column="phone" property="phone" />
+        <result column="last_login_time" property="lastLoginTime" />
         <collection property="roleList" ofType="com.ytpm.middle.view.MiddleRoleVO">
             <id column="role_id" property="roleId" />
             <result column="roleName" property="roleName" />
@@ -120,7 +142,9 @@
             ypu.nick_name,
             ypu.head_image,
             ypu.login_name,
+            ypu.account_status,
             ypu.phone,
+            ypu.super_admin,
             ypu.last_login_time
         from yt_platform_user ypu
         left join yt_middle_user_role ymur on ypu.user_id = ymur.user_id

+ 34 - 3
yt-middle/middle-platform/src/main/resources/mapper/PermissionMapper.xml

@@ -33,6 +33,13 @@
          #{available}
         )
     </insert>
+    <insert id="addRolePermissions">
+        insert into yt_middle_role_permission (role_id, permission_id, create_time, create_user_id)
+        values
+        <foreach collection="permissionIds.split(',')" separator="," item="item">
+            (#{roleId},#{item}, now(), #{operatorId})
+        </foreach>
+    </insert>
     <update id="updateById">
         update yt_middle_permission
         <set>
@@ -43,7 +50,7 @@
                 permission_code = #{permissionCode},
             </if>
             <if test="type != null">
-                type = #{type},
+                `type` = #{type},
             </if>
             <if test="parentId != null">
                 parent_id = #{parentId},
@@ -57,7 +64,7 @@
             <if test="href != null">
                 href = #{href},
             </if>
-            <if test=" != null">
+            <if test="route != null">
                 route = #{route},
             </if>
             <if test="sort != null">
@@ -78,6 +85,9 @@
     <delete id="delByParentId">
         update yt_middle_permission set available = 0, update_time = now(),update_user_id = #{userId} where parent_id = #{userId}
     </delete>
+    <delete id="delByRoleId">
+        delete from yt_middle_role_permission where role_id = #{roleId}
+    </delete>
 
     <select id="getFirstMenu" resultType="com.ytpm.middle.view.MiddlePermissionVO">
         select
@@ -176,7 +186,7 @@
             mp.update_user_id,
             mp.available
         from yt_middle_role_permission mrp
-        left join yt_middle_permission mp on mrp.permission_id = mp.permission_id and mp.available = 1
+        join yt_middle_permission mp on mrp.permission_id = mp.permission_id and mp.available = 1
         where mrp.role_id in
         <foreach collection="roleIdList" item="item" separator="," open="(" close=")">
             #{item}
@@ -210,4 +220,25 @@
             </if>
         </where>
     </select>
+    <select id="queryAllByRole" resultType="com.ytpm.middle.view.MiddlePermissionVO">
+        select
+            mp.permission_id,
+            mp.permission_name,
+            mp.permission_code,
+            mp.type,
+            mp.parent_id,
+            mp.target,
+            mp.icon,
+            mp.href,
+            mp.route,
+            mp.sort,
+            mp.create_time,
+            mp.create_user_id,
+            mp.update_time,
+            mp.update_user_id,
+            mp.available
+        from yt_middle_role_permission rp
+        join yt_middle_permission mp on rp.permission_id = mp.permission_id
+        where rp.role_id = #{roleId}
+    </select>
 </mapper>

+ 0 - 2
yt-risk/risk-manage/src/main/java/com/ytpm/controller/PublicApiController.java

@@ -13,8 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.math.BigDecimal;
-
 @RestController
 @RequestMapping("/public")
 public class PublicApiController {

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

@@ -536,8 +536,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
             DateUtil.isSameDay(DateUtil.parse(s.getFinishTime()), new Date())
         ).sorted(Comparator.comparing(YtDyzAdRecord::getFinishTime)).collect(Collectors.toList());
         //校验风控742规则
-        RiskTemplateView ecpmLimit= configMapper.getByCode(dyzUser.getAppId()+"-742");//TODO 为了产品调控参数,风控编码设置为appid
-//        RiskTemplateView ecpmLimit= configMapper.getByCode("742");
+        RiskTemplateView ecpmLimit= configMapper.getByCode(dyzUser.getAppId()+"-742");
         checkRisk742(ecpmLimit,dyzUser,records);
         //校验风控746规则
         if(!records.isEmpty() && records.size()>1){
@@ -572,8 +571,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
      * 校验默认风控规则746
      */
     private void checkRisk746(YtDyzUser dyzUser, List<YtDyzAdRecord> records) {
-        RiskTemplateView revenue = configMapper.getByCode(dyzUser.getAppId()+"-746");//TODO 为了产品调控参数,风控编码设置为appid.
-//        RiskTemplateView revenue = configMapper.getByCode("746");
+        RiskTemplateView revenue = configMapper.getByCode(dyzUser.getAppId()+"-746");
         if(revenue.getEnabled()!=1)return;
         Map<String, String> revenueMap = revenue.getConfigList().stream().collect(
                 Collectors.toMap(RiskConfigView::getFieldName, RiskConfigView::getConfigVal));
@@ -652,6 +650,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
             appFeign.updateUserInfo(user);
             scheduled.shutdown();
         },24, TimeUnit.HOURS);
+        scheduled.shutdown();
         throw new CustomerException(errMsg);
     }
 
@@ -836,7 +835,6 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
 
     @Override
     public List<YtPlatformBanned> queryBannedRecordGroupByUserId(Date startTime, Date endTime,List<String> appIdList) {
-        List<YtPlatformBanned> bannedList = riskManageMapper.queryBannedRecordGroupByUserId(startTime, endTime,appIdList);
-        return bannedList;
+        return riskManageMapper.queryBannedRecordGroupByUserId(startTime, endTime,appIdList);
     }
 }