Explorar o código

add 查询用户是否有权限

459242451@qq.com %!s(int64=3) %!d(string=hai) anos
pai
achega
93ee7c601f

+ 10 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/DutyReportRecordController.java

@@ -1,13 +1,11 @@
 package com.ruoyi.web.controller.zhdd;
 
 import cn.hutool.core.collection.CollUtil;
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.Security;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.UserUtil;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.zhdd.domain.bo.DutyReportRecordBo;
@@ -61,9 +59,18 @@ public class DutyReportRecordController extends BaseController {
      * 导出值班报告信息列表
      */
     @ApiOperation("导出值班报告信息列表")
-    @Log(title = "值班报告信息", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
+    @Security
     public void export(@Validated DutyReportRecordBo bo, HttpServletResponse response) {
+        // 根据当前用户的角色
+        LoginUser cacheLoginUser = UserUtil.getCacheLoginUser();
+        // 查询角色如果包含admin的,直接查询全部
+        Set<String> userRole = cacheLoginUser.getUserRole();
+        boolean admin = CollUtil.containsAny(userRole, CollUtil.newHashSet("admin"));
+        if (!admin) {
+            bo.setCreateBy(cacheLoginUser.getUsername());
+            bo.setReceiveUser(cacheLoginUser.getUsername());
+        }
         List<DutyReportRecordVo> list = iDutyReportRecordService.queryList(bo);
         ExcelUtil.exportExcel(list, "交接日志", DutyReportRecordVo.class, response);
     }

+ 53 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhdd/ZhddCommonController.java

@@ -0,0 +1,53 @@
+package com.ruoyi.web.controller.zhdd;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.framework.web.service.SysPermissionService;
+import com.ruoyi.system.service.ISysUserService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Set;
+
+/**
+ * @Description: TODO
+ * @Author: huangcheng
+ * @Date: 2022/7/4
+ * @Version V1.0
+ */
+@Api(value = "应急指挥公共接口", tags = {"应急指挥公共接口"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+public class ZhddCommonController {
+
+    private final ISysUserService userService;
+    private final SysPermissionService permissionService;
+
+    @GetMapping("/isUserHasPermission")
+    public JSONObject isUserHasPermission(@RequestParam String userId) {
+        JSONObject jo = new JSONObject();
+        jo.set("success", true);
+        jo.set("message", "成功");
+        jo.set("code", 200);
+        jo.set("result", new JSONObject().set("hasPermission", false));
+        // 判断当前用户有无权限
+        SysUser sysUser = userService.selectUserById(userId);
+        if (sysUser != null) {
+            if (StrUtil.isNotBlank(sysUser.getDeptId())) {
+                // 查询当前用户角色
+                SysUser userRole = new SysUser();
+                userRole.setUserId(userId);
+                Set<String> roles = permissionService.getRolePermission(userRole);
+                if (!roles.isEmpty()) {
+                    jo.set("result", new JSONObject().set("hasPermission", true));
+                }
+            }
+        }
+        return jo;
+    }
+}

+ 1 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java

@@ -98,6 +98,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
             .antMatchers(
                 HttpMethod.GET,
                 "/",
+                "/isUserHasPermission",
                 "/*.html",
                 "/**/*.html",
                 "/**/*.css",

+ 9 - 6
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/domain/vo/DutyReportRecordVo.java

@@ -30,33 +30,36 @@ public class DutyReportRecordVo {
     /**
      * 报告内容
      */
-    @Excel(name = "报告内容")
+    @Excel(name = "值班记录", orderNum = "4")
     @ApiModelProperty("报告内容")
     private String reportContent;
 
     /**
      * 报告状态
      */
-    @Excel(name = "报告状态")
     @ApiModelProperty("报告状态")
     private Integer status;
 
-    @Excel(name = "报告人")
     private String createBy;
 
-    @Excel(name = "更新时间")
     private Date updateTime;
 
     private Date createTime;
 
-    // 值班人名
+    @Excel(name = "值班人员", orderNum = "1")
     private String createByName;
+
     // 接班人员
     private String receiveUser;
-    // 交班时间
+    @Excel(name = "交班时间", orderNum = "3")
     private Date passDateTime;
+
+    @Excel(name = "接班人员", orderNum = "5")
     private String receiveUserName;
+
     private Date deadline;
+
+    @Excel(name = "接班时间", orderNum = "2")
     private Date receiveDateTime;
 
 }

+ 12 - 4
ruoyi-zhdd/src/main/java/com/ruoyi/zhdd/service/impl/DutyReportRecordServiceImpl.java

@@ -2,6 +2,7 @@ package com.ruoyi.zhdd.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpStatus;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -10,7 +11,6 @@ import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
 import com.ruoyi.common.core.page.PagePlus;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.UserUtil;
 import com.ruoyi.zhdd.domain.DutyReportRecord;
 import com.ruoyi.zhdd.domain.bo.DutyReportRecordBo;
@@ -61,10 +61,18 @@ public class DutyReportRecordServiceImpl extends ServicePlusImpl<DutyReportRecor
     private LambdaQueryWrapper<DutyReportRecord> buildQueryWrapper(DutyReportRecordBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<DutyReportRecord> lqw = Wrappers.lambdaQuery();
-        lqw.and(a -> a.eq(DutyReportRecord::getCreateBy, bo.getCreateBy()).or().eq(DutyReportRecord::getReceiveUser, bo.getReceiveUser()));
-        lqw.eq(StringUtils.isNotBlank(bo.getCreateBy()), DutyReportRecord::getCreateBy, bo.getCreateBy());
+        lqw.and(StrUtil.isNotBlank(bo.getCreateBy()) && StrUtil.isNotBlank(bo.getReceiveUser()), a -> a.eq(DutyReportRecord::getCreateBy, bo.getCreateBy()).or().eq(DutyReportRecord::getReceiveUser, bo.getReceiveUser()));
         if (params.get("beginTime") != null && params.get("endTime") != null) {
-            lqw.between(DutyReportRecord::getCreateTime, Timestamp.valueOf(Convert.toStr(params.get("beginTime")) + " 00:00:00"), Timestamp.valueOf(Convert.toStr(params.get("endTime")) + " 23:59:59"));
+            lqw.between(DutyReportRecord::getPassDateTime, Timestamp.valueOf(Convert.toStr(params.get("beginTime")) + " 00:00:00"), Timestamp.valueOf(Convert.toStr(params.get("endTime")) + " 23:59:59"));
+        }
+        if (params.get("receiveBeginTime") != null && params.get("receiveEndTime") != null) {
+            lqw.between(DutyReportRecord::getReceiveDateTime, Timestamp.valueOf(Convert.toStr(params.get("receiveBeginTime")) + " 00:00:00"), Timestamp.valueOf(Convert.toStr(params.get("receiveEndTime")) + " 23:59:59"));
+        }
+        if (params.get("createByName") != null) {
+            lqw.like(DutyReportRecord::getCreateByName, params.get("createByName"));
+        }
+        if (params.get("receiveUserName") != null) {
+            lqw.like(DutyReportRecord::getReceiveUserName, params.get("receiveUserName"));
         }
         lqw.orderByDesc(DutyReportRecord::getCreateTime);
         return lqw;