Browse Source

用户信息增加搜索功能

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10519 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 8 years ago
parent
commit
8c9fa9fd6c

+ 13 - 19
src/main/java/com/uas/platform/b2b/controller/UserController.java

@@ -66,6 +66,19 @@ public class UserController {
 		return userService.findAll();
 	}
 
+	/**
+	 * 通过关键词查询用户信息
+	 * 
+	 * @param keyword
+	 * @return
+	 */
+	@RequestMapping(value = "/info", method = RequestMethod.GET)
+	@ResponseBody
+	public List<User> getUsersByKeyword(String keyword) {
+		logger.log("用户信息", "查看用户信息");
+		return userService.findUsersByKeyWord(keyword);
+	}
+
 	@RequestMapping(value = "/customer/{uu}", method = RequestMethod.POST)
 	@ResponseBody
 	public List<User> getUsersAndDistribute(@PathVariable("uu") Long custUu) {
@@ -143,25 +156,6 @@ public class UserController {
 		return new ResponseEntity<String>(HttpStatus.EXPECTATION_FAILED);
 	}
 
-	/**
-	 * 验证用户的手机号格式是否正确
-	 * 
-	 * @author hejq
-	 * @return
-	 */
-	// @RequestMapping(value = "/updateTel/checkMsg", method =
-	// RequestMethod.POST)
-	// @ResponseBody
-	// public void updateTel(String code, String tel, Long uu,
-	// HttpServletRequest request) {
-	// User user = userService.updateTel(code, tel, uu);
-	// if (SystemSession.getUser() != null &&
-	// SystemSession.getUser().getUserUU().equals(user.getUserUU())) {
-	// request.getSession().setAttribute("user", user);
-	// SystemSession.setUser(user);
-	// }
-	// }
-
 	/**
 	 * 修改用户密码
 	 * 

+ 32 - 0
src/main/java/com/uas/platform/b2b/dao/UserDao.java

@@ -25,6 +25,38 @@ public interface UserDao extends JpaSpecificationExecutor<User>, JpaRepository<U
 	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
 	public List<User> findUserByUserTel(String userTel);
 
+	/**
+	 * 按名字查询当前企业的用户信息
+	 * 
+	 * @param userName
+	 * @param enUU
+	 * @return
+	 */
+	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
+	@Query("select u from User u inner join u.enterprises as e where e.uu = :enUU and u.userName = :userName")
+	public List<User> findUserByUserNameAndEnUU(@Param("userName") String userName, @Param("enUU") Long enUU);
+
+	/**
+	 * 按邮箱查询当前企业用户信息
+	 * 
+	 * @param userEmail
+	 * @param enUU
+	 * @return
+	 */
+	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
+	@Query("select u from User u inner join u.enterprises as e where e.uu = :enUU and u.userEmail = :userEmail")
+	public List<User> findUserByUserEmailAndEnUU(@Param("userEmail") String userEmail, @Param("enUU") Long enUU);
+
+	/**
+	 * 按电话查询当前企业用户信息
+	 * 
+	 * @param userTel
+	 * @param enUU
+	 * @return
+	 */
+	@QueryHints({ @QueryHint(name = "org.hibernate.cacheable", value = "true") })
+	@Query("select u from User u inner join u.enterprises as e where e.uu = :enUU and u.userTel = :userTel")
+	public List<User> findUserByUserTelAndEnUU(@Param("userTel") String userTel, @Param("enUU") Long enUU);
 	/**
 	 * 按企业ID和个人ID查找个人
 	 * 

+ 8 - 0
src/main/java/com/uas/platform/b2b/service/UserService.java

@@ -286,4 +286,12 @@ public interface UserService {
 	 * 判断当前企业是否为优企云服用户
 	 */
 	public boolean isNotSaas(Long uu);
+
+	/**
+	 * 按关键词查询用户信息
+	 * 
+	 * @param keyword
+	 * @return
+	 */
+	List<User> findUsersByKeyWord(String keyword);
 }

+ 41 - 114
src/main/java/com/uas/platform/b2b/service/impl/UserServiceImpl.java

@@ -74,6 +74,16 @@ public class UserServiceImpl implements UserService {
 
 	static final String UU_REGEXP = "^\\d{4,}$";
 
+	/**
+	 * 匹配中文正则式
+	 */
+	private static final String CHINESE_REGEXP = "^[\u4e00-\u9fa5]*$";
+
+	/**
+	 * 匹配英文正则式
+	 */
+	private static final String ENGLISH_REGEXP = "^[A-Za-z]+$";
+
 	@Override
 	public boolean isEmailUseable(String email) {
 		return userDao.findUserByUserEmail(email).size() == 0;
@@ -85,12 +95,6 @@ public class UserServiceImpl implements UserService {
 		user.setUserPwd(Md5Utils.encode(user.getUserPwd(), user.getUserUU()));
 		user.setCurrentEnterprise();
 		try {
-			// if (user.getEnterprise() != null) {
-			// Map<String, Object> res = sendUserToManage(user);
-			// Object imid = res.get("userImid");
-			// if (imid != null)
-			// user.setUserIMId(Long.parseLong(imid.toString()));
-			// }
 			postToAccountCenter(user);
 			return userDao.save(user);
 		} catch (Exception e) {
@@ -128,10 +132,6 @@ public class UserServiceImpl implements UserService {
 		} else {
 			return users.get(0);
 		}
-//		if (!CollectionUtils.isEmpty(users)) {
-//			user = users.get(0);
-//		}
-//		return user;
 	}
 
 	public boolean bindUser(String userUU, String enUU) {
@@ -225,21 +225,6 @@ public class UserServiceImpl implements UserService {
 				newUser.setRoles(existRoles);
 			}
 			try {
-				// if
-				// (isNotSaas(SystemSession.getUser().getEnterprise().getUu()))
-				// {
-				// if (newUser.getEnterprise() != null) {
-				// newUser = userDao.save(newUser);
-				// }
-				// } else {
-				// if (newUser.getEnterprise() != null) {
-				// Map<String, Object> res = sendUserToManage(newUser);
-				// Object imid = res.get("userImid");
-				// if (imid != null)
-				// newUser.setUserIMId(Long.parseLong(imid.toString()));
-				// }
-				// newUser = userDao.save(newUser);
-				// }
 				newUser = userDao.save(newUser);
 
 			} catch (Exception e) {
@@ -266,21 +251,6 @@ public class UserServiceImpl implements UserService {
 				user1.setCurrentEnterprise();// 随便绑定一个用户所属企业
 			Enterprise enterprise = user1.getEnterprise();
 			try {
-				// if
-				// (isNotSaas(SystemSession.getUser().getEnterprise().getUu()))
-				// {
-				// if (user.getEnterprise() != null) {
-				// user = userDao.save(user1);
-				// }
-				// } else {
-				// if (user1.getEnterprise() != null) {
-				// Map<String, Object> res = sendUserToManage(user1);
-				// Object imid = res.get("userImid");
-				// if (imid != null)
-				// user1.setUserIMId(Long.parseLong(imid.toString()));
-				// }
-				// user1 = userDao.save(user1);
-				// }
 				user1 = userDao.save(user1);
 				AccountUtils.resetPassword(user1.getUserUU(), enterprise.getUu(), newPassword);
 			} catch (Exception e) {
@@ -292,31 +262,6 @@ public class UserServiceImpl implements UserService {
 		}
 	}
 
-	// /**
-	// * 用户信息修改同时,修改到管理平台
-	// *
-	// * @param newUserInfo
-	// * @throws Exception
-	// */
-	// private Map<String, Object> sendUserToManage(User newUserInfo) throws
-	// Exception {
-	// Map<String, String> params = new HashMap<String, String>();
-	// params.put("data", FlexJsonUtils.toJson(new AccountInfo(newUserInfo)));
-	// Response response = HttpUtil.sendPostRequest(sysConf.getManageInner() +
-	// "/public/account", params, true);
-	// if (response.getStatusCode() == HttpStatus.OK.value()) {
-	// List<Map<String, Object>> resultMap =
-	// FlexJsonUtils.fromJsonArray(response.getResponseText(), HashMap.class);
-	// if (resultMap.size() > 0) {
-	// if ("true".equals(String.valueOf(resultMap.get(0).get("ok")))) {
-	// return resultMap.get(0);
-	// }
-	// throw new Exception(String.valueOf(resultMap.get(0).get("error")));
-	// }
-	// }
-	// throw new Exception(response.getResponseText());
-	// }
-
 	public void postToAccountCenter(User user) throws Exception {
 		UserDetail detail = new UserDetail();
 		detail.setEmail(user.getUserEmail());
@@ -367,19 +312,6 @@ public class UserServiceImpl implements UserService {
 
 		user.setUserPwd(Md5Utils.encode(defaultPassword, user.getUserUU()));
 		try {
-			// if (isNotSaas(SystemSession.getUser().getEnterprise().getUu())) {
-			// if (user.getEnterprise() != null) {
-			// user = userDao.save(user);
-			// }
-			// } else {
-			// if (user.getEnterprise() != null) {
-			// Map<String, Object> res = sendUserToManage(user);
-			// Object imid = res.get("userImid");
-			// if (imid != null)
-			// user.setUserIMId(Long.parseLong(imid.toString()));
-			// }
-			// user = userDao.save(user);
-			// }
 			user = userDao.save(user);
 			postToAccountCenter(user, defaultPassword);
 		} catch (Exception e) {
@@ -459,12 +391,6 @@ public class UserServiceImpl implements UserService {
 		user = userDao.save(user);
 		user.setUserPwd(Md5Utils.encode(defaultPassword, user.getUserUU()));
 		try {
-			// if (user.getEnterprise() != null) {
-			// Map<String, Object> res = sendUserToManage(user);
-			// Object imid = res.get("userImid");
-			// if (imid != null)
-			// user.setUserIMId(Long.parseLong(imid.toString()));
-			// }
 			user = userDao.save(user);
 			postToAccountCenter(user, defaultPassword);
 		} catch (Exception e) {
@@ -550,12 +476,6 @@ public class UserServiceImpl implements UserService {
 					if (user.getEnterprise() == null)
 						user.setCurrentEnterprise();
 					try {
-						// if (user.getEnterprise() != null) {
-						// Map<String, Object> res = sendUserToManage(user);
-						// Object imid = res.get("userImid");
-						// if (imid != null)
-						// user.setUserIMId(Long.parseLong(imid.toString()));
-						// }
 						user = userDao.save(user);
 						AccountUtils.resetPassword(user.getUserUU(), user.getEnterprise().getUu(), newPwd);
 					} catch (Exception e) {
@@ -588,6 +508,37 @@ public class UserServiceImpl implements UserService {
 		return simpleUser;
 	}
 
+	@Override
+	public List<User> findUsersByKeyWord(String keyword) {
+		List<User> users = new ArrayList<User>();
+		Long enUU = SystemSession.getUser().getEnterprise().getUu();
+		if (keyword.contains("@")) { // 按邮箱查找
+			users = userDao.findUserByUserEmailAndEnUU(keyword, enUU);
+		} else if (keyword.matches(TEL_REGEXP)) { // 按手机号查找
+			users = userDao.findUserByUserTelAndEnUU(keyword, enUU);
+		} else if (keyword.matches(UU_REGEXP)) { // 按UU号查找
+			users = userDao.findByEnUUAndUserUU(enUU, Long.parseLong(keyword));
+		} else if (!keyword.contains("@") && (keyword.matches(CHINESE_REGEXP) || keyword.matches(ENGLISH_REGEXP))) {// 按名字查找
+			users = userDao.findUserByUserNameAndEnUU(keyword, enUU);
+		}
+		if (!CollectionUtils.isEmpty(users)) {
+			for (User user : users) {
+				Set<Role> roles = user.getRoles();
+				Long enuu = SystemSession.getUser().getEnterprise().getUu();
+				if (!CollectionUtils.isEmpty(roles)) {
+					Iterator<Role> iterator = roles.iterator();
+					while (iterator.hasNext()) {
+						Role role = iterator.next();
+						if (!role.getEnUU().equals(enuu)) {
+							iterator.remove();
+						}
+					}
+				}
+			}
+		}
+		return users;
+	}
+
 	@Override
 	public void bindUserToMyEnterprise(Long userUU) {
 		User user = userDao.findOne(userUU);
@@ -800,28 +751,4 @@ public class UserServiceImpl implements UserService {
 		return false;
 	}
 
-	// /**
-	// * 手机号更新
-	// */
-	// @Override
-	// public User updateTel(String code, String tel, Long uu) {
-	// User user = userDao.findOne(uu);
-	// if (user == null) {
-	// throw new IllegalOperatorException("该用户不存在");
-	// }
-	// boolean result = tokenService.isCertified("mobile", uu, code);
-	// if (result) {
-	// user.setUserTel(tel);
-	// user = userDao.save(user);
-	// user.setEnterprise(SystemSession.getUser().getEnterprise());
-	// try {//更新同步到管理平台
-	// sendUserToManage(user);
-	// } catch (Exception e) {
-	// e.printStackTrace();
-	// }
-	// } else {
-	// throw new IllegalOperatorException("抱歉!输入验证码错误,请重新输入!!");
-	// }
-	// return user;
-	// }
 }

+ 36 - 9
src/main/webapp/resources/js/index/app.js

@@ -8978,6 +8978,8 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         $scope.editing = false;
         $scope.loading = true;
         $scope.enterprise = null;
+        $scope.searchMthod = false;
+        $scope.keyword = null;
         AccountUser.findDistribute({}, function (data) {
             $scope.distributes = data;
         }, function (response) {
@@ -9012,18 +9014,43 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             }
         });
         var loadUsers = function () {
-            AccountUser.query({}, function (data) {
-                users = data;
-                angular.forEach(users, function (user) {  // 从验证中获取到的用户信息,不包含身份证号。在这里赋值
-                    if (user.userTel === $scope.user.userTel && user.userUU === $scope.user.userUU) {
-                        $scope.user.userIdcode = user.userIdcode;
-                    }
+        	if($scope.searchMthod) {
+        		AccountUser.findUsersByKeyword({keyword: $scope.keyword}, {}, function(data) {
+        			 users = data;
+        			 if(users.length > 0) {
+        				 angular.forEach(users, function (user) {  // 从验证中获取到的用户信息,不包含身份证号。在这里赋值
+                             if (user.userTel === $scope.user.userTel && user.userUU === $scope.user.userUU) {
+                                 $scope.user.userIdcode = user.userIdcode;
+                             }
+                         });
+        			 }
+        			 $scope.tableParams.reload();
+                     $scope.loading = false;
+                });
+        	} else {
+        		AccountUser.query({}, function (data) {
+                    users = data;
+                    angular.forEach(users, function (user) {  // 从验证中获取到的用户信息,不包含身份证号。在这里赋值
+                        if (user.userTel === $scope.user.userTel && user.userUU === $scope.user.userUU) {
+                            $scope.user.userIdcode = user.userIdcode;
+                        }
+                    });
+                    $scope.tableParams.reload();
+                    $scope.loading = false;
                 });
-                $scope.tableParams.reload();
-                $scope.loading = false;
-            });
+        	}
         };
         loadUsers();
+        
+        $scope.onSearch = function(keyword) {
+        	if(keyword != null && keyword != '') {
+        		$scope.searchMthod = true;
+        		$scope.keyword = keyword;
+        	} else {
+        		$scope.searchMthod = false;
+        	}
+        	 loadUsers();
+        }
         $scope.saveUser = function () {
             $scope.loading = true;
             AccountUser.update({}, $scope.user, function (data) {

+ 20 - 0
src/main/webapp/resources/js/index/services/Purc.js

@@ -1150,6 +1150,16 @@ define([ 'ngResource'], function() {
                 params: {
                     _state: 'invalid'
                 }
+            },
+            getAgreed: {
+            	params: {
+                    _state: 'agreed'
+                }
+            },
+            getRefused: {
+            	params: {
+                    _state: 'refused'
+                }
             },
 			save: {
 				method: 'POST',
@@ -1183,6 +1193,16 @@ define([ 'ngResource'], function() {
                 params: {
                     _state: 'invalid'
                 }
+            },
+            getAgreed: {
+            	params: {
+                    _state: 'agreed'
+                }
+            },
+            getRefused: {
+            	params: {
+                    _state: 'refused'
+                }
             }
 		});
 	}]).factory('PurcOrderSave', ['$resource', function($resource){

+ 7 - 0
src/main/webapp/resources/tpl/index/approvalFlow/user.html

@@ -356,6 +356,13 @@
 		<form name="newUserForm">
 			<table class="block table table-default table-striped"
 				ng-table="tableParams">
+				<div class="search">
+					<div class="form-group form-group-sm has-feedback">
+						<input type="search" class="form-control input-sm" ng-model="keyword"
+							   ng-search="onSearch(keyword)" placeholder="输入人员姓名、电话号码、邮箱或UU号进行搜索" style="width: 100%"/>
+						<a class="btn input-group-addon" ng-click="onSearch(keyword)">搜索</a>
+					</div>
+				</div>
 				<thead>
 					<tr class="header">
 						<th width="90">UU</th>

+ 10 - 0
src/main/webapp/resources/tpl/index/sale/quotation_list.html

@@ -39,6 +39,16 @@
 							ng-class="{'btn-info':active=='done'}"
 							ng-click="setActive('done')">已提交</button>
 					</div>
+					<div class="btn-group btn-group-sm">
+						<button type="button" class="btn btn-default btn-line"
+							ng-class="{'btn-info':active=='agreed'}"
+							ng-click="setActive('agreed')">已同意</button>
+					</div>
+					<div class="btn-group btn-group-sm">
+						<button type="button" class="btn btn-default btn-line"
+							ng-class="{'btn-info':active=='refused'}"
+							ng-click="setActive('refused')">不同意</button>
+					</div>
 					<div class="btn-group btn-group-sm">
 						<button type="button" class="btn btn-default btn-line"
 							ng-class="{'btn-info':active=='todo'}"