Browse Source

处方订单导出手机号和地址没有权限的加密,文章过滤掉分类已禁用的文章

wjj 1 month ago
parent
commit
38a048ec51

+ 2 - 1
fs-service/src/main/java/com/fs/his/mapper/FsArticleMapper.java

@@ -67,7 +67,8 @@ public interface FsArticleMapper
     public int deleteFsArticleByArticleIds(Long[] articleIds);
     @Select({"<script> " +
             "select a.*  from fs_article a    " +
-            "where 1=1  " +
+            "LEFT JOIN fs_article_cate ac ON ac.cate_id = a.cate_id" +
+            "where ac.status != 0  " +
             "<if test = 'maps.keyword != null     '> " +
             "and a.title like CONCAT(#{maps.keyword},'%')" +
             "</if>" +

+ 37 - 4
fs-service/src/main/java/com/fs/his/service/impl/FsExportTaskServiceImpl.java

@@ -2,9 +2,14 @@ package com.fs.his.service.impl;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.entity.SysRole;
+import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.utils.ParseUtils;
+import com.fs.common.utils.SecurityUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.his.mapper.FsStoreOrderMapper;
 import com.fs.his.mapper.FsStorePaymentMapper;
@@ -14,6 +19,7 @@ import com.fs.his.service.IFsStoreOrderService;
 import com.fs.his.vo.FsStoreOrderExcelVO;
 import com.fs.his.vo.FsStoreOrderExportVO;
 import com.fs.his.vo.FsStorePaymentExcelVO;
+import com.fs.system.service.ISysMenuService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -38,6 +44,9 @@ public class FsExportTaskServiceImpl implements IFsExportTaskService
 
     FsStorePaymentMapper fsStorePaymentMapper;
 
+    @Autowired
+    private ISysMenuService menuService;
+
 
     /**
      * 查询导出任务
@@ -130,11 +139,35 @@ public class FsExportTaskServiceImpl implements IFsExportTaskService
                 if (vo.getCycle()!=null){
                     vo.setFollowCount(vo.getCycle()/ vo.getFollowFrequency());
                 }
-                if (vo.getUserPhone() != null) {
-                    vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+                boolean isPhoneEncodeFlag = true;
+                boolean isAddressEncodeFlag = true;
+                LoginUser loginUser = SecurityUtils.getLoginUser();
+                List<SysRole> admin = loginUser.getUser().getRoles().stream().filter(item -> item.getRoleKey().equals("admin")).collect(Collectors.toList());
+                if (!admin.isEmpty()) {
+                    //超级管理员
+                    isAddressEncodeFlag = false;
+                    isPhoneEncodeFlag = false;
+                } else {
+                    //非超级管理员
+                    Set<String> perms = menuService.selectMenuPermsByUserId(loginUser.getUserId());
+                    boolean phoneContains = perms.contains("his:storeOrder:queryPhone");
+                    boolean addressContains = perms.contains("his:storeOrder:queryAddress");
+                    if (addressContains) {
+                        isAddressEncodeFlag = false;
+                    }
+                    if (phoneContains) {
+                        isPhoneEncodeFlag = false;
+                    }
+                }
+                if (isPhoneEncodeFlag) {
+                    if (vo.getUserPhone() != null) {
+                        vo.setUserPhone(vo.getUserPhone().replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2"));
+                    }
                 }
-                if (vo.getUserAddress() != null) {
-                    vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
+                if (isAddressEncodeFlag) {
+                    if (vo.getUserAddress() != null) {
+                        vo.setUserAddress(ParseUtils.parseAddress(vo.getUserAddress()));
+                    }
                 }
             }
         }