wangwei 7 年之前
父节点
当前提交
16b622b548

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

@@ -95,7 +95,7 @@ public class UserController extends ControllerSupport {
 	public PageInfo<FullUserInfo> getAllUser(@PathVariable Integer curPage,
 			@PathVariable Integer pageSize, @RequestParam Long rootOrgId,
 			@RequestParam String loginName, @RequestParam String name, @RequestParam String enable,
-			@RequestParam Long roleId, @RequestParam String type) {
+			@RequestParam(required = false) Long roleId, @RequestParam String type) {
 
 		cn.com.qmth.examcloud.commons.web.security.bean.User accessUser = getAccessUser();
 		if ((!isSuperAdmin()) && (!rootOrgId.equals(accessUser.getRootOrgId()))) {
@@ -110,21 +110,28 @@ public class UserController extends ControllerSupport {
 			throw new StatusException("B-150004", "机构错误");
 		}
 
-		RoleEntity roleEntity = roleRepo.findOne(roleId);
-		if (null == roleEntity) {
-			throw new StatusException("B-150002", "角色不存在");
+		String roleCode = null;
+		if (null != roleId) {
+			RoleEntity roleEntity = roleRepo.findOne(roleId);
+			if (null == roleEntity) {
+				throw new StatusException("B-150002", "角色不存在");
+			}
+			roleCode = roleEntity.getCode();
 		}
 
-		String roleCode = roleEntity.getCode();
-
 		Pageable pageable = new PageRequest(curPage - 1, pageSize, Sort.Direction.DESC,
-				"updateTime");
+				"update_time");
+
+		loginName = toSqlSearchPattern(loginName);
+		name = toSqlSearchPattern(name);
 
-		loginName = "%" + loginName.trim() + "%";
-		name = "%" + name.trim() + "%";
+		Page<UserEntity> userList = null;
+		if (null == roleCode) {
+			userList = userRepo.findAll(rootOrgId, name, loginName, type, pageable);
+		} else {
+			userList = userRepo.findAll(rootOrgId, name, loginName, type, roleCode, pageable);
+		}
 
-		Page<UserEntity> userList = userRepo.findAll(rootOrgId, name, loginName, type, roleCode,
-				pageable);
 		Iterator<UserEntity> iterator = userList.iterator();
 
 		List<FullUserInfo> fullUserInfoList = Lists.newArrayList();
@@ -135,6 +142,8 @@ public class UserController extends ControllerSupport {
 			bean.setLoginName(next.getLoginName());
 			bean.setName(next.getName());
 			bean.setRootOrgId(next.getRootOrgId());
+			bean.setUpdateTime(next.getUpdateTime());
+			bean.setCreationTime(next.getCreationTime());
 			bean.setOrgId(next.getOrgId());
 			if (null != bean.getOrgId()) {
 				Org org = orgRepo.findOne(Long.valueOf(bean.getOrgId()));

+ 21 - 0
examcloud-core-basic-api-provider/src/main/java/cn/com/qmth/examcloud/core/basic/api/controller/bean/FullUserInfo.java

@@ -1,5 +1,6 @@
 package cn.com.qmth.examcloud.core.basic.api.controller.bean;
 
+import java.util.Date;
 import java.util.List;
 
 import cn.com.qmth.examcloud.commons.web.cloud.api.JsonSerializable;
@@ -40,6 +41,10 @@ public class FullUserInfo implements JsonSerializable {
 
 	private List<String> roleCodes;
 
+	private Date updateTime;
+
+	private Date creationTime;
+
 	public Long getId() {
 		return id;
 	}
@@ -128,4 +133,20 @@ public class FullUserInfo implements JsonSerializable {
 		this.roleIds = roleIds;
 	}
 
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public Date getCreationTime() {
+		return creationTime;
+	}
+
+	public void setCreationTime(Date creationTime) {
+		this.creationTime = creationTime;
+	}
+
 }

+ 8 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/UserRepo.java

@@ -56,4 +56,12 @@ public interface UserRepo
 			@Param("loginName") String loginName, @Param("type") String type,
 			@Param("roleCode") String roleCode, Pageable pageable);
 
+	@Query(value = "SELECT  * FROM ecs_core_user X  WHERE "
+			+ " X.root_org_id = :rootOrgId And X.name like :name And x.login_name like :loginName And type = :type "
+			+ " ORDER BY ?#{#pageable} ", countQuery = ""
+					+ "SELECT count(*) FROM ecs_core_user  X WHERE "
+					+ " X.root_org_id = :rootOrgId And X.name like :name And x.login_name like :loginName And type = :type ", nativeQuery = true)
+	Page<UserEntity> findAll(@Param("rootOrgId") Long rootOrgId, @Param("name") String name,
+			@Param("loginName") String loginName, @Param("type") String type, Pageable pageable);
+
 }