瀏覽代碼

权限 : 页面逻辑调通

wangdy 8 年之前
父節點
當前提交
26fc115b92

+ 7 - 3
src/main/java/com/uas/platform/b2c/common/account/controller/UserController.java

@@ -173,11 +173,15 @@ public class UserController {
 	 * @param
 	 * @return
 	 */
-	@RequestMapping(value = "/{uu}", method = RequestMethod.PUT)
-	public ResponseEntity<String> updateUser(@PathVariable("uu") Long uu , @RequestBody String json) {
+	@RequestMapping(method = RequestMethod.PUT)
+	public ResponseEntity<String> updateUser(@RequestBody String json , HttpServletRequest request) {
 		User user = FlexJsonUtils.fromJson(json, User.class);
 		userService.save(user);
-		logger.log("用户信息", "修改用户,UU:" + uu);
+		if (user != null) {
+			logger.log("用户信息", "修改用户信息,UU:" + user.getUserUU());
+			if (SystemSession.getUser().getUserUU().equals(user.getUserUU()))
+				request.getSession().setAttribute("user", user);
+		}
 		return new ResponseEntity<String>(HttpStatus.OK);
 	}
 	/**

+ 58 - 10
src/main/java/com/uas/platform/b2c/common/account/service/impl/UserServiceImpl.java

@@ -245,16 +245,64 @@ public class UserServiceImpl implements UserService {
 
 	@Override
 	public User save(User user) {
-        User userOld = userDao.findOne(user.getUserUU());
-        userOld.setUserEmail(user.getUserEmail());
-        userOld.setUserTel(user.getUserTel());
-        userOld.setUserName(user.getUserName());
-        try {
-            postToAccountCenter(userOld);
-            return userDao.save(userOld);
-        } catch (Exception e) {
-            throw new RuntimeException(e.getMessage());
-        }
+		User userOld = userDao.findOne(user.getUserUU());
+		if (userOld != null) {
+			userOld.setUserEmail(user.getUserEmail());
+			userOld.setUserTel(user.getUserTel());
+			userOld.setUserName(user.getUserName());
+			try {
+				postToAccountCenter(userOld);
+			} catch (Exception e) {
+//				throw new RuntimeException(e.getMessage());
+			}
+			// 修改用户角色,只对用户的当前企业的角色进行修改
+			if (!CollectionUtils.isEmpty(user.getRoles())) {
+				Set<Role> existRoles = userOld.getRoles();
+				if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
+					Iterator<Role> iterator = existRoles.iterator();
+					Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
+					while (iterator.hasNext()) {
+						Role role = iterator.next();
+						if (role.getEnUU().equals(currentEnuu)) {
+							iterator.remove();
+						}
+					}
+				} else {
+					existRoles = new HashSet<>();
+				}
+				for (Role role : user.getRoles()) {
+					existRoles.add(role);
+				}
+				userOld.setRoles(existRoles);
+			} else {
+				Set<Role> existRoles = userOld.getRoles();
+				if (!CollectionUtils.isEmpty(existRoles)) {// 保留用户在其他企业的角色
+					Iterator<Role> iterator = existRoles.iterator();
+					Long currentEnuu = SystemSession.getUser().getEnterprise().getUu();
+					while (iterator.hasNext()) {
+						Role role = iterator.next();
+						if (role.getEnUU().equals(currentEnuu)) {
+							iterator.remove();
+						}
+					}
+				}
+				userOld.setRoles(existRoles);
+			}
+			try {
+				userOld = userDao.save(userOld);
+
+			} catch (Exception e) {
+				throw new RuntimeException(e.getMessage());
+			}
+			if (SystemSession.getUser().getUserUU().equals(userOld.getUserUU())) {
+				userOld.setCurrentEnterprise(SystemSession.getUser().getEnterprise().getUu());
+				userOld.setCurrentEnterpriseRoles();
+				SystemSession.setUser(userOld);
+			}
+			return userOld;
+		} else {
+			throw new IllegalOperatorException("修改的用户不存在");
+		}
 	}
 
 	@Override

+ 4 - 0
src/main/webapp/resources/js/common/query/user.js

@@ -75,6 +75,10 @@ define([ 'angular', 'ui-bootstrap', 'ngResource' ], function(angular) {
 			updatePassword: {
 				url: 'basic/user/updatePassword',
 				method: 'POST'
+			},
+			update: {
+				url: 'basic/user',
+				method: 'PUT'
 			}
 		});
 	}]).factory('AccountResource', ['$resource', function($resource) {

+ 27 - 1
src/main/webapp/resources/js/vendor/controllers/forstore/vendor_account_management_ctrl.js

@@ -578,7 +578,7 @@ define(['app/app'], function(app) {
         };
     }]);
 
-	app.register.controller('UserRoleEditCtrl', ['$scope', '$modalInstance', '$timeout', 'AccountResource', 'toaster', 'user', 'BaseService','AccountRole', function ($scope, $modalInstance, $timeout, AccountResource, toaster, user, BaseService, AccountRole) {
+	app.register.controller('UserRoleEditCtrl', ['$scope', '$modalInstance', '$timeout', 'AccountResource', 'toaster', 'user', 'BaseService','AccountRole','User', function ($scope, $modalInstance, $timeout, AccountResource, toaster, user, BaseService, AccountRole, User) {
 		var init = function () {
 			$scope.user = angular.copy(user);
 			AccountRole.query({},function (data) {
@@ -594,6 +594,7 @@ define(['app/app'], function(app) {
 			});
 		}
 		init();
+        $scope.checked = [];
 
 		//勾选角色
 		$scope.checkRole = function (role) {
@@ -604,5 +605,30 @@ define(['app/app'], function(app) {
 		$scope.cancelModal = function () {
 			$modalInstance.close();
 		}
+        $scope.close = function (save) {
+            if (save) {
+                if (user.userUU) {
+                	debugger;
+                	console.log($scope.checked);
+                    angular.forEach($scope.rolesData, function (item) {
+                    	if (item.checked){
+                    		delete item.checked;
+                            $scope.checked.push(item);
+						}
+                    });
+                    user.roles = $scope.checked;
+                    User.update({}, user, function () {
+                        toaster.pop('success', '提示', '保存成功');
+                        $modalInstance.close(true);
+                    }, function (response) {
+                        toaster.pop('error', '保存失败', response.data);
+                    });
+                } else {
+                    $modalInstance.close(true, $scope.checked);
+                }
+            } else {
+                $modalInstance.close(false);
+            }
+        };
 	}]);
 });

+ 5 - 1
src/main/webapp/resources/view/vendor/forstore/vendor_account_management.html

@@ -370,6 +370,8 @@
     .auth-info-header .searchUser-group {
         margin-right: 50px;
         margin-top: 4px;
+        height: 32px;
+        line-height: 32px;
     }
     .auth-info-header .searchUser-group span {
         width: 58px;
@@ -393,13 +395,15 @@
     .auth-info-header .searchUser-group >div {
         background: #fff;
         display: inline-block;
+        height: 32px;
+        margin-right: 5px;
+        vertical-align: middle;
     }
     .auth-info-header .searchUser-group >div >select {
         width: 90px;
         height: 32px;
         font-size: 14px;
         padding-left: 5px;
-        margin-right: 5px;
         position: relative;
         top: -2px;
         border: 1px solid #5078cb;

+ 3 - 3
src/main/webapp/resources/view/vendor/modal/edit_user_role.html

@@ -107,14 +107,14 @@
         </button>
     </div>
     <div class="default-role-area">
-        <div class="{{'default-role-box bgcolor-'+((($index+1)%7)+1)}}" ng-repeat="role in rolesData track by $index">
+        <div class="{{'default-role-box bgcolor-'+((($index+1)%7)+1)}}" ng-repeat="role in rolesData track by $index" ng-click="checkRole(role)">
             <p title="{{role.desc}}">{{role.desc}}</p>
             <span title="{{role.duty}}">{{role.duty}}</span>
-            <img ng-src="static/img/vendor/images/{{role.checked?'check-active':'check'}}.jpg" alt="" ng-click="checkRole(role)">
+            <img ng-src="static/img/vendor/images/{{role.checked?'check-active':'check'}}.jpg" alt="" >
         </div>
     </div>
     <div class="user-role-footer">
         <span ng-click="cancelModal()">取消</span>
-        <span>确定</span>
+        <span ng-click="close(true)">确定</span>
     </div>
 </div>

+ 12 - 0
src/main/webapp/resources/view/vendor/modal/role_detail.html

@@ -1,3 +1,15 @@
+<style>
+	.choose-inline>.item .caret {
+		float: right;
+		margin-top: 14px;
+		margin-right: 8px;
+		border-left: 3px solid;
+		border-right: 0;
+		border-top: 3px solid transparent;
+		border-bottom: 3px solid transparent;
+	}
+</style>
+
 <div class="modal-header">
 	<h3 class="modal-title">
 		<i class="fa fa-user fa-fw text-default"></i><span