Răsfoiți Sursa

操作日志查询

xiatian 3 ani în urmă
părinte
comite
c394fe16ff

+ 15 - 6
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/AdminOperateController.java

@@ -1,5 +1,8 @@
 package cn.com.qmth.examcloud.core.basic.api.controller;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
@@ -7,8 +10,8 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import cn.com.qmth.examcloud.api.commons.enums.AdminOperateType;
 import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
-import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.core.basic.service.AdminOperateService;
 import cn.com.qmth.examcloud.core.basic.service.bean.AdminOperateBean;
 import cn.com.qmth.examcloud.core.basic.service.bean.AdminOperateQuery;
@@ -28,12 +31,18 @@ public class AdminOperateController extends ControllerSupport {
 	@ApiOperation(value = "日志分页查询")
 	public PageInfo<AdminOperateBean> queryPage(@ModelAttribute AdminOperateQuery req,
 			@PathVariable @ApiParam(value = "pageNo = 1,2,3...") Integer pageNo, @PathVariable Integer pageSize) {
-		User user = getAccessUser();
-		if(isSuperAdmin()) {
-			return adminOperateService.queryPage(req, pageNo, pageSize, null);
-		}else {
-			return adminOperateService.queryPage(req, pageNo, pageSize, user.getRootOrgId());
+		validateRootOrgIsolation(req.getRootOrgId());
+		return adminOperateService.queryPage(req, pageNo, pageSize);
+	}
+	
+	@GetMapping("types")
+	@ApiOperation(value = "日志分页查询")
+	public List<String> types() {
+		List<String> list=new ArrayList<>();
+		for(AdminOperateType v:AdminOperateType.values()) {
+			list.add(v.getDesc());
 		}
+		return list;
 	}
 	
 }

+ 6 - 5
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/OrgController.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.core.basic.api.controller;
 
+import cn.com.qmth.examcloud.api.commons.enums.AdminOperateType;
 import cn.com.qmth.examcloud.api.commons.enums.DataRuleType;
 import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
@@ -1132,7 +1133,7 @@ public class OrgController extends ControllerSupport {
 
         User accessUser = getAccessUser();
         if (changeInfo != null) {
-            ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "考生端配置-保存考生端配置", changeInfo));
+            ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE1.getDesc(), changeInfo));
         }
     }
 
@@ -1369,7 +1370,7 @@ public class OrgController extends ControllerSupport {
         logoFileUrlEntity.setValue(url);
         orgPropertyRepo.save(logoFileUrlEntity);
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "考生端配置-上传学校logo", null));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE2.getDesc(), null));
         return url;
     }
     
@@ -1442,7 +1443,7 @@ public class OrgController extends ControllerSupport {
         logoFileUrlEntity.setValue(url);
         orgPropertyRepo.save(logoFileUrlEntity);
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "考生端配置-上传考生端登录界面图片", null));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE3.getDesc(), null));
         return url;
     }
 
@@ -1481,7 +1482,7 @@ public class OrgController extends ControllerSupport {
         String url = pi.getUrl();
 
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "考生端配置-上传学校答题纸模板", null));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE4.getDesc(), null));
         return url;
     }
 
@@ -1624,7 +1625,7 @@ public class OrgController extends ControllerSupport {
         orgPropertyRepo.save(logoFileUrlEntity);
 
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "考生端配置-上传菜单logo", null));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE5.getDesc(), null));
         return url;
     }
 

+ 2 - 1
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/RolePrivilegeController.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.core.basic.api.controller;
 
+import cn.com.qmth.examcloud.api.commons.enums.AdminOperateType;
 import cn.com.qmth.examcloud.api.commons.enums.PrivilegeGroupType;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.api.commons.security.enums.RoleMeta;
@@ -499,7 +500,7 @@ public class RolePrivilegeController extends ControllerSupport {
         boolean hasChange=hasChange(rootOrgId, privilegeGroupId, privilegeIdSet);
         rolePrivilegeService.updateRootOrgPrivilegeRelations(rootOrgId, privilegeGroupId, privilegeIdSet);
         if(hasChange) {
-        	ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "考生端配置-保存考生端配置","修改自定义菜单"));
+        	ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE1.getDesc(),"修改自定义菜单"));
         }
     }
     

+ 7 - 6
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/UserController.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.core.basic.api.controller;
 
+import cn.com.qmth.examcloud.api.commons.enums.AdminOperateType;
 import cn.com.qmth.examcloud.api.commons.enums.DataRuleType;
 import cn.com.qmth.examcloud.api.commons.exchange.PageInfo;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
@@ -536,7 +537,7 @@ public class UserController extends ControllerSupport {
         userForm.setId(null);
         Map<String, Object> ret = saveUser(userForm);
 
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "普通用户管理-新增用户", "用户ID:" + ret.get("userId")));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE6.getDesc(), "用户ID:" + ret.get("userId")));
         return ret;
     }
 
@@ -576,7 +577,7 @@ public class UserController extends ControllerSupport {
 
         Map<String, Object> ret = saveUser(userForm);
 
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "普通用户管理-修改用户", "用户ID:" + ret.get("userId")));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE7.getDesc(), "用户ID:" + ret.get("userId")));
         return ret;
     }
 
@@ -739,7 +740,7 @@ public class UserController extends ControllerSupport {
             userRepo.save(user);
         }
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "普通用户管理-重置用户密码", "用户ID:" + id));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE8.getDesc(), "用户ID:" + id));
     }
     
     @ApiOperation(value = "批量重置用户密码", notes = "重置密码")
@@ -758,7 +759,7 @@ public class UserController extends ControllerSupport {
             userRepo.save(user);
         }
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "普通用户管理-批量重置用户密码", null));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE9.getDesc(), null));
     }
 
     @ApiOperation(value = "启用用户", notes = "启用用户")
@@ -778,7 +779,7 @@ public class UserController extends ControllerSupport {
             ret.add(user.getId() + ":" + user.getName());
         }
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "普通用户管理-启用用户", "用户ID:" + ids));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE10.getDesc(), "用户ID:" + ids));
         return ret;
     }
 
@@ -799,7 +800,7 @@ public class UserController extends ControllerSupport {
             ret.add(user.getId() + ":" + user.getName());
         }
         User accessUser = getAccessUser();
-        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), "普通用户管理-禁用用户", "用户ID:" + ids));
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), AdminOperateType.TYPE11.getDesc(), "用户ID:" + ids));
         return ret;
     }
 

+ 20 - 4
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/UserDataRuleController.java

@@ -1,18 +1,31 @@
 package cn.com.qmth.examcloud.core.basic.api.controller;
 
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.api.commons.enums.AdminOperateType;
 import cn.com.qmth.examcloud.api.commons.enums.DataRuleType;
 import cn.com.qmth.examcloud.api.commons.security.bean.User;
 import cn.com.qmth.examcloud.api.commons.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.basic.service.UserDataRuleService;
-import cn.com.qmth.examcloud.core.basic.service.bean.datarule.*;
+import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleCopyReq;
+import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleForCourseInfo;
+import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleForExamInfo;
+import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleForOrgInfo;
+import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleForm;
+import cn.com.qmth.examcloud.core.basic.service.bean.datarule.UserDataRuleQuery;
+import cn.com.qmth.examcloud.reports.commons.bean.AdminOperateReport;
+import cn.com.qmth.examcloud.reports.commons.util.ReportsUtil;
 import cn.com.qmth.examcloud.web.support.ControllerSupport;
 import cn.com.qmth.examcloud.web.support.Naked;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.*;
 
 @RestController
 @Api(tags = "用户数据权限相关接口")
@@ -70,8 +83,11 @@ public class UserDataRuleController extends ControllerSupport {
     @PostMapping("/copy")
     @ApiOperation(value = "复制用户数据权限")
     public void copy(@RequestBody UserDataRuleCopyReq req) {
+    	User accessUser = getAccessUser();
         this.validateRoles();
         userDataRuleService.copyUserDataRule(req);
+        ReportsUtil.report(new AdminOperateReport(accessUser.getRootOrgId(), accessUser.getUserId(), 
+        		AdminOperateType.TYPE12.getDesc(), "源用户ID:" + req.getSourceUserId()+" 目标用户ID:"));
     }
 
     @Naked

+ 1 - 1
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/AdminOperateService.java

@@ -9,6 +9,6 @@ public interface AdminOperateService {
 
 	public void saveOperate(AdminOperateReport r, String msgId);
 	
-	public PageInfo<AdminOperateBean> queryPage(AdminOperateQuery query,Integer pageNo,Integer pageSize,Long rootOrgId);
+	public PageInfo<AdminOperateBean> queryPage(AdminOperateQuery query,Integer pageNo,Integer pageSize);
 
 }

+ 17 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/bean/AdminOperateQuery.java

@@ -13,6 +13,16 @@ public class AdminOperateQuery {
 	private String startTime;
     @ApiModelProperty(value = "endTime")
 	private String endTime;
+    private String operate;
+    private Long rootOrgId;
+    
+    
+	public String getOperate() {
+		return operate;
+	}
+	public void setOperate(String operate) {
+		this.operate = operate;
+	}
 	public String getLoginName() {
 		return loginName;
 	}
@@ -37,6 +47,13 @@ public class AdminOperateQuery {
 	public void setEndTime(String endTime) {
 		this.endTime = endTime;
 	}
+	public Long getRootOrgId() {
+		return rootOrgId;
+	}
+	public void setRootOrgId(Long rootOrgId) {
+		this.rootOrgId = rootOrgId;
+	}
 
 	
+	
 }

+ 11 - 9
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/AdminOperateServiceImpl.java

@@ -80,14 +80,16 @@ public class AdminOperateServiceImpl implements AdminOperateService {
 	}
 
 	@Override
-	public PageInfo<AdminOperateBean> queryPage(AdminOperateQuery req, Integer pageNo, Integer pageSize,
-			Long rootOrgId) {
-		Long count = jdbcTemplate.queryForObject(" select count(1) from (" + getSql(req, rootOrgId) + ") tem", Long.class);
+	public PageInfo<AdminOperateBean> queryPage(AdminOperateQuery req, Integer pageNo, Integer pageSize) {
+		if(req.getRootOrgId()==null) {
+			throw new StatusException("请选择学校");
+		}
+		Long count = jdbcTemplate.queryForObject(" select count(1) from (" + getSql(req) + ") tem", Long.class);
 		List<AdminOperateBean> list = new ArrayList<AdminOperateBean>();
 		if (count > 0) {
 			RowMapper<AdminOperateBean> rowMapper = new BeanPropertyRowMapper<AdminOperateBean>(AdminOperateBean.class);
 			list = jdbcTemplate.query(
-					getSql(req, rootOrgId) + " order by t.id desc limit " + ((pageNo - 1) * pageSize) + "," + pageSize,
+					getSql(req) + " order by t.id desc limit " + ((pageNo - 1) * pageSize) + "," + pageSize,
 					rowMapper);
 			for (AdminOperateBean bean:list) {
 				List<UserRoleRelationEntity> relationList = userRoleRelationRepo.findAllByUserId(bean.getOperateUserId());
@@ -108,20 +110,20 @@ public class AdminOperateServiceImpl implements AdminOperateService {
 		return ret;
 	}
 
-	private String getSql(AdminOperateQuery req, Long rootOrgId) {
+	private String getSql(AdminOperateQuery req) {
 		String loginName = req.getLoginName();
 		String startTime = req.getStartTime();
 		String endTime = req.getEndTime();
 		Long roleId = req.getRoleId();
-
+		Long rootOrgId=req.getRootOrgId();
 		StringBuilder sb = new StringBuilder();
 		sb.append(
 				" select t.operate_time operateTime,t.operate_ip operateIp,t.operate_user_id operateUserId ");
 		sb.append(" ,t.operate,t.operate_info operateInfo,f.login_name loginName,f.name from ec_b_admin_operate t ");
 		sb.append(" inner join ec_b_user f on t.operate_user_id=f.id ");
-		sb.append(" where 1=1  ");
-		if (rootOrgId != null) {
-			sb.append(" and t.root_org_id=").append(rootOrgId);
+		sb.append(" where t.root_org_id=").append(rootOrgId);
+		if (StringUtils.isNotBlank(req.getOperate())) {
+			sb.append(" and t.operate ='").append(req.getOperate()).append("'  ");
 		}
 		if (StringUtils.isNotBlank(loginName)) {
 			sb.append(" and f.login_name like '").append(loginName).append("%'  ");