Browse Source

转移权限是否修改判断修改;产生消息出去转移了权限的leaderuu。

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@10634 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 8 years ago
parent
commit
9d46e604b9

+ 9 - 1
src/main/java/com/uas/platform/b2b/listener/MessageListener.java

@@ -75,8 +75,16 @@ public class MessageListener implements ApplicationListener<SaveReleaseEvent<?,
 					Long vendorId = vendors.get(0).getId();
 					List<Distribute> distributes = distributeDao.findByVendorId(vendorId);
 					if (!CollectionUtils.isEmpty(distributes)) {
+						// 去掉已将权限转移的管理员
+						Set<Long> leaderUUs = new HashSet<>();
 						for (Distribute distribute : distributes) {
-							if (!userUUs.contains(distribute.getUserUU())) {
+							if (distribute.getIsTransfer() == Constant.YES && distribute.getLeaderUU() != null
+									&& !leaderUUs.contains(distribute.getLeaderUU())) {
+								leaderUUs.add(distribute.getLeaderUU());
+							}
+						}
+						for (Distribute distribute : distributes) {
+							if (!userUUs.contains(distribute.getUserUU()) && !leaderUUs.contains(distribute.getUserUU())) {
 								userUUs.add(distribute.getUserUU());
 							}
 						}

+ 35 - 20
src/main/webapp/resources/js/index/app.js

@@ -1879,7 +1879,6 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             AccountUser.getDistribute ({custUU: customer.myEnterprise.uu}, function(data) {
                 customer.enDistribute = data.result;
                 //是管理员,或者被分配时
-                console.log(customer.enDistribute);
                 if ($scope.thisUser.sys || customer.enDistribute) {
                     var modalInstance = $modal.open({
                         animation: true,
@@ -2243,7 +2242,7 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         };
         $scope.loading = true;
         $scope.transfer = [];
-        AccountUser.findUsers({uu: customer.myEnterprise.uu}, null, function (data) {
+        AccountUser.findUsers({uu: customer.myEnterprise.uu}, {}, function (data) {
             $scope.userinfos = data;
             var transfer = [];
             angular.forEach($scope.userinfos, function (user, index) {
@@ -2251,6 +2250,8 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                 if ($scope.thisUser.userUU === user.userUU && user.transfer) {
                     $scope.thisUser.transfer = true;
                 }
+            });
+            angular.forEach($scope.userinfos, function (user, index) {
                 if ($scope.thisUser.sys || $scope.thisUser.transfer) {
                     if (user.transfer) {
                         transfer.push({num: index});
@@ -2266,47 +2267,61 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
             $scope.transfer = transfer;
             $scope.havedone = angular.copy($scope.transfer);
             $scope.loading = false;
-        })
+        });
 
         var checkStatus = function (userinfos) {
             var transfer = [];
             angular.forEach(userinfos, function (user, index) {
-                if ($scope.thisUser.userUU === user.userUU && user.transfer) {
-                    $scope.thisUser.transfer = true;
-                }
                 if ($scope.thisUser.sys || $scope.thisUser.transfer) {
                     if (user.transfer) {
                         transfer.push({num: index});
-                        user.checked = true;
                     }
                 } else {
                     if (user.distribute) {
                         transfer.push({num: index});
-                        user.checked = true;
                     }
                 }
             });
             $scope.transfer = transfer;
+            console.log($scope.havedone);
+            console.log($scope.transfer);
             $scope.isChanged = !angular.equals($scope.havedone, $scope.transfer);
-        }
+        };
         $scope.isChanged = false;
         $scope.isChangedAll = false;
         $scope.changes = [];
         // 点击其中一个明细的复选框
         $scope.checkOne = function (user) {
             $scope.changes = [];
-            user.$checked = !user.$checked;
-            angular.forEach($scope.userinfos, function (userInfo) {
-                if ($scope.thisUser.userUU === user.userUU && user.transfer) {
-                    $scope.thisUser.transfer = true;
-                }
-                if (user.userUU != userInfo.userUU) {
-                    // 管理员或被管理员转移权限的用户,使用的是transfer
-                    if ($scope.thisUser.sys || $scope.thisUser.transfer) {
+            if ($scope.thisUser.sys) { // 管理员操作
+                user.$checked = !user.$checked;
+                angular.forEach($scope.userinfos, function (userInfo) {
+                    if ($scope.thisUser.userUU === user.userUU && user.transfer) {
+                        $scope.thisUser.transfer = true;
+                    }
+                    if (user.userUU !== userInfo.userUU) {
                         userInfo.transfer = false;
                     }
-                }
-            });
+                });
+            } else if ($scope.thisUser.transfer) { // 被管理员转移权限的非管理员操作
+                user.$checked = !user.$checked;
+                angular.forEach($scope.userinfos, function (userInfo) {
+                    if (user.userUU !== userInfo.userUU) {
+                        userInfo.transfer = false;
+                    } else {
+                        userInfo.transfer = true;
+                    }
+                });
+            } else { // 被分配客户的用户
+                user.$checked = !user.$checked;
+                angular.forEach($scope.userinfos, function (userInfo) {
+                    if (user.userUU !== userInfo.userUU) {
+                        userInfo.distribute = false;
+                    } else {
+                        userInfo.distribute = true;
+                    }
+                });
+            }
             checkStatus($scope.userinfos);
         };
         $scope.close = function (save) {
@@ -2335,7 +2350,7 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
                     } else {
                         // 非管理员转移自己的权限时
                         angular.forEach($scope.userinfos, function (item, i) {
-                            if (item.transfer) {
+                            if (item.transfer && item.userUU !== $scope.thisUser.userUU) {
                                 $scope.target = item;
                             }
                         });

+ 2 - 2
src/main/webapp/resources/tpl/index/account/transfer_userInfo.html

@@ -47,7 +47,7 @@
 			<tr ng-repeat="user in userinfos| filter: keyword" ng-if="!user.sys">
 				<td width="80px;">{{user.userUU}}</td>
 				<td width="100px;">{{user.userName}}</td>
-				<td width="40px;" style="text-align: center"><input ng-model="user.transfer" name="checkbox" ng-click="checkOne(user)" ng-checked="user.checked" type="radio" title="选择"></td>
+				<td width="40px;" style="text-align: center"><input ng-model="user.transfer" name="checkbox" ng-click="checkOne(user)" ng-checked="user.checked" type="checkbox" title="选择"></td>
 			</tr>
 		</tbody>
 		<tbody ng-if="!thisUser.sys && !thisUser.transfer">
@@ -55,7 +55,7 @@
 			<tr ng-repeat="user in userinfos| filter: keyword" ng-if="!user.distribute && !user.sys">
 				<td width="80px;">{{user.userUU}}</td>
 				<td width="100px;">{{user.userName}}</td>
-				<td width="40px;" style="text-align: center"><input ng-model="user.distribute" name="distribute" ng-click="checkOne(user)" ng-checked="user.checked" type="radio" title="选择"></td>
+				<td width="40px;" style="text-align: center"><input ng-model="user.distribute" name="distribute" ng-click="checkOne(user)" ng-checked="user.checked" type="checkbox" title="选择"></td>
 			</tr>
 		</tbody>
 	</table>