From 3b634c3db32ca2eb3f661c29b3ff088a7f42318a Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Sun, 26 Apr 2020 12:39:36 +0800
Subject: [PATCH] 添加 产品管理控制权限

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleOrganizationController.java                                     |    7 +++
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/fallback/ISysRoleOrganizationServiceFallbackFactory.java |   33 ++++++++++++++++
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java                                |    6 ++-
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/ISysRoleOrganizationService.java                         |   29 ++++++++++++++
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml                                                                  |    1 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleOrganizationService.java                                             |    2 +
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java                                |    9 ++++
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java                                        |    3 +
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java                                     |   14 +++++++
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java                                                               |    4 ++
 10 files changed, 104 insertions(+), 4 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
index 64d7428..ca909f5 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/ISysProductService.java
@@ -1,6 +1,7 @@
 package com.kidgrow.oprationcenter.service;
 
 import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUser;
 import com.kidgrow.oprationcenter.model.SysProduct;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.service.ISuperService;
@@ -21,7 +22,7 @@
      * @param params
      * @return
      */
-    PageResult<SysProduct> findList(Map<String, Object> params);
+    PageResult<SysProduct> findList(Map<String, Object> params, SysUser sysUser);
 
 
     /**
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/ISysRoleOrganizationService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/ISysRoleOrganizationService.java
new file mode 100644
index 0000000..d8f9b2e
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/ISysRoleOrganizationService.java
@@ -0,0 +1,29 @@
+package com.kidgrow.oprationcenter.service.feign;
+
+import com.kidgrow.common.constant.ServiceNameConstants;
+import com.kidgrow.common.model.SysRole;
+import com.kidgrow.oprationcenter.service.feign.fallback.ISysRoleOrganizationServiceFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/22 14:33 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@FeignClient(name = ServiceNameConstants.OPRATIONCENTER_SERVER, fallbackFactory = ISysRoleOrganizationServiceFallbackFactory.class, decode404 = true)
+public interface ISysRoleOrganizationService {
+    /**
+     * 根据条件查询
+     * @param list
+     */
+    @GetMapping(value = "/sysroleorganization/getRoleOrg")
+    Map<String, Object> getRoleOrgMap(@RequestParam List<SysRole> list);
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/fallback/ISysRoleOrganizationServiceFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/fallback/ISysRoleOrganizationServiceFallbackFactory.java
new file mode 100644
index 0000000..d5f4027
--- /dev/null
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/feign/fallback/ISysRoleOrganizationServiceFallbackFactory.java
@@ -0,0 +1,33 @@
+package com.kidgrow.oprationcenter.service.feign.fallback;
+
+import com.kidgrow.common.model.SysRole;
+import com.kidgrow.oprationcenter.service.feign.ISysRoleOrganizationService;
+import feign.hystrix.FallbackFactory;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/22 14:33 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@Slf4j
+@Component
+public class ISysRoleOrganizationServiceFallbackFactory implements FallbackFactory<ISysRoleOrganizationService> {
+    @Override
+    public ISysRoleOrganizationService create(Throwable throwable) {
+      return new ISysRoleOrganizationService() {
+          @Override
+          public Map<String, Object> getRoleOrgMap(List<SysRole> list) {
+              return new HashMap<>();
+          }
+      };
+    }
+}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
index a57e78b..2945148 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java
@@ -3,12 +3,15 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUser;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.oprationcenter.service.feign.ISysRoleOrganizationService;
 import com.kidgrow.oprationcenter.mapper.SysProductMapper;
 import com.kidgrow.oprationcenter.model.SysProduct;
 import com.kidgrow.oprationcenter.service.ISysProductService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
@@ -26,14 +29,18 @@
 @Slf4j
 @Service
 public class SysProductServiceImpl extends SuperServiceImpl<SysProductMapper, SysProduct> implements ISysProductService {
+    @Autowired
+    private ISysRoleOrganizationService  sysRoleOrganizationService;
     /**
      * 列表
      * @param params
      * @return
      */
     @Override
-    public PageResult<SysProduct> findList(Map<String, Object> params){
+    public PageResult<SysProduct> findList(Map<String, Object> params, SysUser sysUser){
         Page<SysProduct> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
+        Map<String, Object> roleOrgMap = sysRoleOrganizationService.getRoleOrgMap(sysUser.getRoles());
+        params.putAll(roleOrgMap);
         List<SysProduct> list  =  baseMapper.findList(page, params);
         return PageResult.<SysProduct>builder().data(list).code(0).count(page.getTotal()).build();
     }
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
index c23f867..4a1c70c 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/SysProductMapper.xml
@@ -57,6 +57,7 @@
             <if test="p.updateTime != null and p.updateTime !=''">
                 and update_time = #{p.updateTime}
             </if>
+            <include refid="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper.Role_Organization"></include>
         </where>
     </sql>
 
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
index 16185a5..c56f27d 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/SysProductController.java
@@ -1,8 +1,10 @@
 package com.kidgrow.oprationcenter.controller;
 
+import com.kidgrow.common.annotation.LoginUser;
 import com.kidgrow.common.controller.BaseController;
 import com.kidgrow.common.model.PageResult;
 import com.kidgrow.common.model.ResultBody;
+import com.kidgrow.common.model.SysUser;
 import com.kidgrow.oprationcenter.model.ProductOrderDetail;
 import com.kidgrow.oprationcenter.model.SysProduct;
 import com.kidgrow.oprationcenter.service.IProductOrderDetailService;
@@ -51,12 +53,12 @@
             @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
     })
     @GetMapping
-    public PageResult list(@RequestParam Map<String, Object> params) {
+    public PageResult list(@RequestParam Map<String, Object> params, @LoginUser SysUser sysUser) {
         if(params.size()==0){
             params.put("page",1);
             params.put("limit",10);
         }
-        return sysProductService.findList(params);
+        return sysProductService.findList(params,sysUser);
     }
 
     /**
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleOrganizationService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleOrganizationService.java
index f3d2c59..4a87b0e 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleOrganizationService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysRoleOrganizationService.java
@@ -36,5 +36,7 @@
     boolean saveOrUpdateSer(SysRoleOrganizationDto sysRoleOrganizationDto, SysUser user);
 
     ResultBody getTree(Map<String, Object> params,SysUser user);
+
+    Map<String, Object> getRoleOrgMap( SysUser user);
 }
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
index f9cf315..29d6233 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
@@ -192,6 +192,13 @@
         }
         return listMap;
     }
+
+    /**
+     * 将权限 分装到map对像
+     * @param params
+     * @param user
+     */
+
     public void getRoleOrg(Map<String, Object> params, SysUser user){
         List<SysRole> roles = user.getRoles();
         List<Map<SysRole,List<SysRoleOrganization>>> listroleOrg=new ArrayList<>();
@@ -211,4 +218,11 @@
         //添加权限控制
         params.put("roleOrg",listroleOrg);
     }
+
+    @Override
+    public Map<String, Object> getRoleOrgMap(SysUser user) {
+        Map<String, Object> map=new HashMap<>();
+        getRoleOrg(map,user);
+        return map;
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleOrganizationController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleOrganizationController.java
index 9e07de2..4adaf4d 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleOrganizationController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysRoleOrganizationController.java
@@ -112,6 +112,13 @@
     public ResultBody getTree(@RequestParam Map<String, Object> params,@LoginUser SysUser user) {
         return sysRoleOrganizationService.getTree(params,user);
     }
+    @ApiOperation(value = "获取数据权限的map")
+    @GetMapping("getRoleOrg")
+    public Map<String, Object> getRoleOrgMap(@RequestParam List<SysRole> list) {
+        SysUser user=new SysUser();
+        user.setRoles(list);
+        return sysRoleOrganizationService.getRoleOrgMap(user);
+    }
 
     /**
      * 删除
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java
index bd604d7..788ff72 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/ServiceNameConstants.java
@@ -29,4 +29,8 @@
      * 订单Demo服务名
      */
     String DEMO_ORDER_SERVICE="demo-order-server";
+    /**
+     * oprationcenter-server服务
+     */
+    String OPRATIONCENTER_SERVER = "oprationcenter-server";
 }

--
Gitblit v1.8.0