Explorar o código

渠道所属用户展示

zoujiajian %!s(int64=2) %!d(string=hai) anos
pai
achega
21d14a44e5

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/Channel.java

@@ -35,4 +35,9 @@ public class Channel extends BaseEntity{
      * 备注
      */
     private String remark;
+
+    /**
+     * 创建人
+     */
+    private Long creator;
 }

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java

@@ -36,6 +36,9 @@ public class ChannelPopularizeView {
     @DbField("c.name")
     private String channelName;
 
+    @DbField("c.creator")
+    private Long creator;
+
     /**
      * 链接名称
      */

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelView.java

@@ -81,6 +81,9 @@ public class ChannelView {
     @DbField("c.remark")
     private String remark;
 
+    @DbField("c.creator")
+    private Long creator;
+
 
     @DbField("c.created_time")
     private Date createdTime;

+ 11 - 0
netflix-service/src/main/java/com/cyksj/service/mange/cms/service/CmsUserService.java

@@ -0,0 +1,11 @@
+package com.cyksj.service.mange.cms.service;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CmsUserService
+ * 创建者: JavaZou
+ * 创建时间:2024/3/1 13:49
+ */
+public interface CmsUserService {
+	Boolean isRootRole(long adminId);
+}

+ 30 - 0
netflix-service/src/main/java/com/cyksj/service/mange/cms/service/impl/CmsUserServiceImpl.java

@@ -0,0 +1,30 @@
+package com.cyksj.service.mange.cms.service.impl;
+
+import com.cyksj.model.views.CmsUserVO;
+import com.cyksj.service.mange.cms.service.CmsUserService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: CmsUserServiceImpl
+ * 创建者: JavaZou
+ * 创建时间:2024/3/1 13:50
+ */
+@Service
+@RequiredArgsConstructor
+public class CmsUserServiceImpl implements CmsUserService {
+	private final BeanSearcher beanSearcher;
+
+	@Override
+	public Boolean isRootRole(long adminId) {
+		CmsUserVO root = beanSearcher.searchFirst(CmsUserVO.class, MapUtils.builder()
+				.field(CmsUserVO::getId, adminId)
+				.field(CmsUserVO::getRoleNames, "root").op(Operator.Contain)
+				.build());
+		return root != null ? true : false;
+	}
+}

+ 26 - 9
netflix-web/src/main/java/com/cyksj/web/controller/manage/channel/CmsChannelController.java

@@ -1,5 +1,6 @@
 package com.cyksj.web.controller.manage.channel;
 
+import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
@@ -8,8 +9,10 @@ import com.cyksj.model.entity.ChannelPopularize;
 import com.cyksj.model.views.ChannelView;
 import com.cyksj.service.mange.channel.ChannelPopularizeService;
 import com.cyksj.service.mange.channel.ChannelService;
+import com.cyksj.service.mange.cms.service.CmsUserService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -35,21 +38,27 @@ public class CmsChannelController {
 
     private final BeanSearcher beanSearcher;
 
+    private final CmsUserService cmsUserService;
+
     private final HttpServletRequest request;
 
     @GetMapping
-    public Result<SearchResult<ChannelView>> get(String startTime, String endTime){
+    public Result<SearchResult<ChannelView>> get(String startTime, String endTime) {
         String timeSql = StringUtils.EMPTY;
-        if(StringUtils.isNotBlank(startTime)){
-            timeSql += String.format(" and o.created_time >= '%s'",startTime);
+        long adminId = StpUtil.getLoginIdAsLong();
+        Boolean isRootRole = cmsUserService.isRootRole(adminId);
+        if (StringUtils.isNotBlank(startTime)) {
+            timeSql += String.format(" and o.created_time >= '%s'", startTime);
+        }
+        if (StringUtils.isNotBlank(endTime)) {
+            timeSql += String.format(" and o.created_time <= '%s'", endTime);
         }
-        if(StringUtils.isNotBlank(endTime)){
-            timeSql += String.format(" and o.created_time <= '%s'" , endTime);
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+        if (!isRootRole) {
+            builder.field(ChannelView::getCreator, adminId);
         }
         SearchResult<ChannelView> searchResult = beanSearcher.search(ChannelView.class,
-                MapUtils.flatBuilder(request.getParameterMap())
-                        .put("time",timeSql)
-                        .build());
+                builder.put("time", timeSql).build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(searchResult);
     }
 
@@ -58,7 +67,13 @@ public class CmsChannelController {
      */
     @GetMapping("/get/channelList")
     public Result<List<Channel>> getChannels() {
-        List<Channel> list = beanSearcher.searchAll(Channel.class, MapUtils.flatBuilder(request.getParameterMap())
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+        long adminId = StpUtil.getLoginIdAsLong();
+        Boolean isRootRole = cmsUserService.isRootRole(adminId);
+        if (!isRootRole) {
+            builder.field(Channel::getCreator, adminId);
+        }
+        List<Channel> list = beanSearcher.searchAll(Channel.class, builder
                 .onlySelect(Channel::getId, Channel::getName)
                 .build());
         return GatewayResponse.SUCCESS.newBuilder().toResult(list);
@@ -66,6 +81,8 @@ public class CmsChannelController {
 
     @PostMapping
     public Result<String> post(@RequestBody Channel channel){
+        long adminId = StpUtil.getLoginIdAsLong();
+        channel.setCreator(adminId);
         channelService.save(channel);
         return GatewayResponse.SUCCESS.newBuilder().toResult();
     }

+ 12 - 3
netflix-web/src/main/java/com/cyksj/web/controller/manage/channel/CmsChannelPopularizeController.java

@@ -1,6 +1,7 @@
 package com.cyksj.web.controller.manage.channel;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.constant.Constant;
@@ -14,8 +15,10 @@ import com.cyksj.model.entity.*;
 import com.cyksj.model.views.ChannelPopularizeDetailView;
 import com.cyksj.model.views.ChannelPopularizeView;
 import com.cyksj.service.mange.channel.ChannelPopularizeService;
+import com.cyksj.service.mange.cms.service.CmsUserService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -49,12 +52,18 @@ public class CmsChannelPopularizeController {
 
     private final CorpCustomerAcquisitionLinkPopularizeMapper acquisitionLinkPopularizeMapper;
 
+    private final CmsUserService cmsUserService;
+
     @GetMapping
     @SaCheckPermission("promotion:view")
     public Result<SearchResult<ChannelPopularizeView>> get(String startTime, String endTime) {
-        SearchResult<ChannelPopularizeView> searchResult = beanSearcher.search(ChannelPopularizeView.class,
-                MapUtils.flatBuilder(request.getParameterMap())
-                        .build());
+        long adminId = StpUtil.getLoginIdAsLong();
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+        Boolean isRootRole = cmsUserService.isRootRole(adminId);
+        if (!isRootRole) {
+            builder.field(ChannelPopularizeView::getCreator, adminId);
+        }
+        SearchResult<ChannelPopularizeView> searchResult = beanSearcher.search(ChannelPopularizeView.class, builder.build());
         searchResult.getDataList().forEach(data -> {
             Integer emailCount = userMapper.selectCount(Wrappers.lambdaQuery(User.class)
                     .eq(User::getPopularizeId, data.getId())