Forráskód Böngészése

feat: cms数据权限过滤2

lixuesong 1 éve
szülő
commit
dfabd13c4c

+ 25 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmWkAlbumController.java

@@ -1,16 +1,19 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.service.SysCsmUserRelationService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.admin.entity.WmWkAlbum;
 import com.qunzhixinxi.hnqz.admin.service.WmWkAlbumService;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
@@ -18,7 +21,10 @@ import org.springframework.web.bind.annotation.*;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 
 
 /**
@@ -34,6 +40,7 @@ public class WmWkAlbumController {
 
     private final  WmWkAlbumService wmWkAlbumService;
 	private final WmDaDrugEntDrugtableService wmDaDrugEntDrugtableService;
+	private final SysCsmUserRelationService sysCsmUserRelationService;
 
     /**
      * 分页查询
@@ -43,13 +50,13 @@ public class WmWkAlbumController {
      */
     @GetMapping("/page" )
     @PreAuthorize("@pms.hasPermission('admin_wmwkalbum_view')" )
-    public R getWmWkAlbumPage(Page page, WmWkAlbum wmWkAlbum) {
+    public R<IPage<WmWkAlbum>> getWmWkAlbumPage(Page<WmWkAlbum> page, WmWkAlbum wmWkAlbum) {
 		OrderItem orderItem=new OrderItem();
 		orderItem.setColumn("create_time");
 		orderItem.setAsc(false);
 		page.addOrder(orderItem);
 
-		QueryWrapper queryWrapper=Wrappers.query();
+		QueryWrapper<WmWkAlbum> queryWrapper=Wrappers.query();
 		if(null!=wmWkAlbum.getXcmc())
 		{
 			queryWrapper.like(true,"xcmc",wmWkAlbum.getXcmc());
@@ -63,14 +70,24 @@ public class WmWkAlbumController {
 		queryWrapper.eq("del_flag", DelEnum.NOT_DEL.val());
 		queryWrapper.orderByDesc("create_time");
 
-    	Page pageAnswer =wmWkAlbumService.page(page, queryWrapper);
-    	List<WmWkAlbum> wmWkAlbumList=pageAnswer.getRecords();
+		if (SecurityUtils.getRoles().contains(19)) {
+			// CSM只能查看自己维护的企业下的数据, 以及下属维护的企业下的数据
+			Integer userId = SecurityUtils.getUser().getId();
+			// 递归查询下属关联的userId
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			queryWrapper.and(wrapper -> {
+				wrapper.in("create_user", allUserIds)
+						.or(wrapper2 -> wrapper2.isNull("create_user"));
+			});
+		}
+
+    	Page<WmWkAlbum> pageAnswer = wmWkAlbumService.page(page, queryWrapper);
+    	List<WmWkAlbum> wmWkAlbumList = pageAnswer.getRecords();
     	if(null!=wmWkAlbumList)
 		{
 			for (WmWkAlbum wmW :wmWkAlbumList) {
 				if(null!=wmW.getGlyp())
 				{
-					WmDaDrugEntDrugtable wmDaDrugEntDrugtable=new WmDaDrugEntDrugtable();
 //					if(wmW.getGlyp().contains(","))
 //					{
 						String [] ar=wmW.getGlyp().split(",");
@@ -120,6 +137,7 @@ public class WmWkAlbumController {
     public R save(@RequestBody WmWkAlbum wmWkAlbum) {
 		wmWkAlbum.setForwardNum(0);
 		wmWkAlbum.setCreateTime(LocalDateTime.now());
+		wmWkAlbum.setCreateUser(SecurityUtils.getUser().getId());
 //        return R.ok(wmWkAlbumService.save(wmWkAlbum));
 		wmWkAlbumService.saveWmWkAlbum(wmWkAlbum);
         return R.ok();
@@ -134,6 +152,8 @@ public class WmWkAlbumController {
     @PutMapping
     @PreAuthorize("@pms.hasPermission('admin_wmwkalbum_edit')" )
     public R updateById(@RequestBody WmWkAlbum wmWkAlbum) {
+		wmWkAlbum.setUpdateTime(LocalDateTime.now());
+		wmWkAlbum.setUpdateUser(SecurityUtils.getUser().getId());
 		wmWkAlbumService.updateWmWkAlbumById(wmWkAlbum);
         return R.ok();
     }

+ 20 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmWkArticleController.java

@@ -2,10 +2,13 @@ package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.util.ArrayUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.entity.WmWkAlbum;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.service.SysCsmUserRelationService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.admin.entity.WmWkArticle;
@@ -17,6 +20,9 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
+import java.util.Collections;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 
 
 /**
@@ -31,6 +37,7 @@ import java.time.LocalDateTime;
 public class WmWkArticleController {
 
 	private final WmWkArticleService wmWkArticleService;
+	private final SysCsmUserRelationService sysCsmUserRelationService;
 
 	/**
 	 * 分页查询
@@ -41,7 +48,7 @@ public class WmWkArticleController {
 	 */
 	@GetMapping("/page")
 	@PreAuthorize("@pms.hasPermission('admin_wmwkarticle_view')")
-	public R getWmWkArticlePage(Page page, WmWkArticle wmWkArticle) {
+	public R<IPage<WmWkArticle>> getWmWkArticlePage(Page<WmWkArticle> page, WmWkArticle wmWkArticle) {
 
 		OrderItem orderItem = new OrderItem();
 		orderItem.setColumn("create_time");
@@ -50,7 +57,7 @@ public class WmWkArticleController {
 
 		LocalDateTime startTime = wmWkArticle.getCreateTime();
 		LocalDateTime endTime = wmWkArticle.getUpdateTime();
-		QueryWrapper wrappers = Wrappers.query();
+		QueryWrapper<WmWkArticle> wrappers = Wrappers.query();
 		if (null != startTime) {
 			wrappers.ge(true, "create_time", startTime);
 		}
@@ -79,6 +86,17 @@ public class WmWkArticleController {
 		wrappers.eq("del_flag", DelEnum.NOT_DEL.val());
 		wrappers.orderByDesc("create_time");
 
+		if (SecurityUtils.getRoles().contains(19)) {
+			// CSM只能查看自己维护的企业下的数据, 以及下属维护的企业下的数据
+			Integer userId = SecurityUtils.getUser().getId();
+			// 递归查询下属关联的userId
+			Set<Integer> allUserIds = sysCsmUserRelationService.recurseCsmLowerUserId(Collections.singleton(userId), new AtomicInteger(10));
+			wrappers.and(wrapper -> {
+				wrapper.in("create_user", allUserIds)
+						.or(wrapper2 -> wrapper2.isNull("create_user"));
+			});
+		}
+
 		return R.ok(wmWkArticleService.page(page, wrappers));
 	}
 

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaAgentServiceImpl.java

@@ -316,7 +316,6 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 		}
 		wmDaAgent.setTenantId(1);
 		wmDaAgent.setDelFlag(0 + "");
-		wmDaAgent.setCreateTime(LocalDateTime.now());
 		List<WmDaDrugEnt> listEnts = new ArrayList<>();
 		if (wmDaAgent.getExtDrugEnt() != null) {
 			String[] ents = wmDaAgent.getExtDrugEnt().split(",");
@@ -332,6 +331,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 		}
 		wmDaAgent.setTemp1(temp1);
 		wmDaAgent.setCreateTime(LocalDateTime.now());
+		wmDaAgent.setCreateUser(SecurityUtils.getUser().getId());
 		wmDaAgent.setManagement(String.valueOf(1));
 		wmDaAgent.setPgqx(1 + "");
 		super.save(wmDaAgent);