Ver código fonte

优化 权限批量添加功能

wuxw 6 anos atrás
pai
commit
9ba9007d5c

+ 31 - 18
OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java

@@ -232,18 +232,34 @@ public class PrivilegeSMOImpl implements IPrivilegeSMO {
     @Override
     public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(String privilegeInfo) {
 
-        JSONObject privilegeObj = validateData(privilegeInfo);
-        //根据权限组ID和商户ID查询是否有数据
-        String pFlag = privilegeObj.getString("pFlag");//权限组
-        privilegeObj.put("privilegeFlag", "1".equals(pFlag) ? "1" : "0");
-        List<Map> privilegeGroups = privilegeDAOImpl.queryUserPrivilege(privilegeObj);
-        Assert.listIsNull(privilegeGroups, "已经存在该权限无需多次添加" + privilegeInfo);
+        Assert.jsonObjectHaveKey(privilegeInfo, "pIds", "请求报文中未包含pIds节点");
 
-        if (!privilegeDAOImpl.addUserPrivilege(privilegeObj)) {
-            return new ResponseEntity<String>("添加权限失败", HttpStatus.INTERNAL_SERVER_ERROR);
+        JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+        JSONArray pIds = privilegeObj.getJSONArray("pIds");
+        int errorCount = 0;
+        for (int pIndex = 0; pIndex < pIds.size(); pIndex++) {
+            privilegeObj.put("pId", pIds.getJSONObject(pIndex).getString("pId"));
+            try {
+                validateData(privilegeObj);
+                //根据权限组ID和商户ID查询是否有数据
+                String pFlag = privilegeObj.getString("pFlag");//权限组
+                privilegeObj.put("privilegeFlag", "1".equals(pFlag) ? "1" : "0");
+
+                List<Map> privilegeGroups = privilegeDAOImpl.queryUserPrivilege(privilegeObj);
+                Assert.listIsNull(privilegeGroups, "已经存在该权限无需多次添加" + privilegeInfo);
+                if (!privilegeDAOImpl.addUserPrivilege(privilegeObj)) {
+                    return new ResponseEntity<String>("添加权限失败", HttpStatus.INTERNAL_SERVER_ERROR);
+                }
+            } catch (Exception e) {
+                logger.error("保存权限失败", e);
+                errorCount++;
+            }
         }
 
-        return new ResponseEntity<String>("成功", HttpStatus.OK);
+        JSONObject paramOut = new JSONObject();
+        paramOut.put("success", pIds.size() - errorCount);
+        paramOut.put("error", errorCount);
+        return new ResponseEntity<String>(paramOut.toJSONString(), HttpStatus.OK);
     }
 
     /**
@@ -298,21 +314,18 @@ public class PrivilegeSMOImpl implements IPrivilegeSMO {
         return privilegeObj;
     }
 
-    private JSONObject validateData(String privilegeInfo) {
+    private JSONObject validateData(JSONObject privilegeObj) {
 
-        Assert.isJsonObject(privilegeInfo, "请求报文不是有效的json格式");
+        Assert.jsonObjectHaveKey(privilegeObj, "pId", "请求报文中未包含pId节点");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "pId", "请求报文中未包含pId节点");
+        Assert.jsonObjectHaveKey(privilegeObj, "pFlag", "请求报文中未包含pFlag节点");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "pFlag", "请求报文中未包含pFlag节点");
-
-        Assert.jsonObjectHaveKey(privilegeInfo, "userId", "请求报文中未包含userId节点");
+        Assert.jsonObjectHaveKey(privilegeObj, "userId", "请求报文中未包含userId节点");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "请求报文中未包含storeId节点");
+        Assert.jsonObjectHaveKey(privilegeObj, "storeId", "请求报文中未包含storeId节点");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "storeTypeCd", "请求报文中未包含storeTypeCd节点");
+        Assert.jsonObjectHaveKey(privilegeObj, "storeTypeCd", "请求报文中未包含storeTypeCd节点");
 
-        JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
         String pFlag = privilegeObj.getString("pFlag");//权限组
         if ("1".equals(pFlag)) {
             validatePrivilegeGroup(privilegeObj);

+ 1 - 1
WebService/src/main/java/com/java110/web/smo/impl/StaffServiceSMOImpl.java

@@ -234,7 +234,7 @@ public class StaffServiceSMOImpl extends BaseComponentSMO implements IStaffServi
     public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(IPageData pd) {
         ResponseEntity<String> responseEntity = null;
         Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
-        Assert.jsonObjectHaveKey(pd.getReqData(), "pId", "请求报文格式错误或未包含权限ID信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "pIds", "请求报文格式错误或未包含权限ID信息");
         Assert.jsonObjectHaveKey(pd.getReqData(), "pFlag", "请求报文格式错误");
         JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
         responseEntity = super.getStoreInfo(pd, restTemplate);

+ 1 - 1
WebService/src/main/resources/components/privilegePackage/add-privilege/addPrivilege.js

@@ -13,7 +13,7 @@
             }
         },
         watch: { // 监视双向绑定的数据数组
-            checkData: {
+            addPrivilegeInfo: {
                 handler(){ // 数据数组有变化将触发此函数
                     if(vc.component.addPrivilegeInfo.selectPrivileges.length == vc.component.addPrivilegeInfo._noAddPrivilege.length){
                         document.querySelector('#quan').checked = true;

+ 13 - 10
WebService/src/main/resources/components/privilegePackage/add-staff-privilege/addStaffPrivilege.html

@@ -18,46 +18,48 @@
                                     <table class="table table-striped" v-if="addStaffPrivilegeInfo._currentTab == 1">
                                         <thead>
                                         <tr>
-
+                                            <th class="text-center">
+                                                <input type="checkbox"  class="i-checks " @click="checkAllGroup($event)" id="quanGroup">
+                                            </th>
                                             <th>权限组编码</th>
                                             <th>权限组名称</th>
                                             <th>权限组描述</th>
                                             <th>创建时间</th>
-                                            <th>操作</th>
                                         </tr>
                                         </thead>
                                         <tbody>
                                             <tr v-for="privilegeGroup in addStaffPrivilegeInfo._noAddPrivilegeGroup">
+                                                <td class="text-center">
+                                                    <input type="checkbox" class="i-checks checkGroupItem" v-bind:value="privilegeGroup.pgId" v-model="addStaffPrivilegeInfo.selectPrivilegeGroups" >
+                                                </td>
                                                 <td>{{privilegeGroup.pgId}}</td>
                                                 <td>{{privilegeGroup.name}}</td>
                                                 <td>{{privilegeGroup.description}}</td>
                                                 <td>{{vc.dateFormat(privilegeGroup.createTime)}}</td>
-                                                <td>
-                                                    <button class="btn btn-primary btn-xs" v-on:click="userAddPrivilegeGroup(privilegeGroup.pgId)">添加</button>
-                                                </td>
                                             </tr>
                                         </tbody>
                                     </table>
                                     <table class="table table-striped" v-if="addStaffPrivilegeInfo._currentTab == 2">
                                         <thead>
                                         <tr>
-
+                                            <th class="text-center">
+                                                <input type="checkbox"  class="i-checks " @click="checkAll($event)" id="quan">
+                                            </th>
                                             <th>权限编码</th>
                                             <th>权限名称</th>
                                             <th>权限描述</th>
                                             <th>创建时间</th>
-                                            <th>操作</th>
                                         </tr>
                                         </thead>
                                         <tbody>
                                         <tr v-for="privilege in addStaffPrivilegeInfo._noAddPrivilege">
+                                            <td class="text-center">
+                                                <input type="checkbox" class="i-checks checkItem" v-bind:value="privilege.pId" v-model="addStaffPrivilegeInfo.selectPrivileges" >
+                                            </td>
                                             <td>{{privilege.pId}}</td>
                                             <td>{{privilege.name}}</td>
                                             <td>{{privilege.description}}</td>
                                             <td>{{vc.dateFormat(privilege.createTime)}}</td>
-                                            <td>
-                                                <button class="btn btn-primary btn-xs" v-on:click="userAddPrivilege(privilege.pId)">添加</button>
-                                            </td>
                                         </tr>
                                         </tbody>
                                     </table>
@@ -69,6 +71,7 @@
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
+                <button type="button" class="btn btn-primary" v-on:click="addStaffPrivilege()">提交</button>
             </div>
         </div>
     </div>

+ 46 - 12
WebService/src/main/resources/components/privilegePackage/add-staff-privilege/addStaffPrivilege.js

@@ -9,7 +9,27 @@
                 errorInfo:'',
                 _noAddPrivilege:[],
                 _noAddPrivilegeGroup:[],
-                _currentTab:1
+                _currentTab:1,
+                selectPrivileges:[],
+                selectPrivilegeGroups:[]
+            }
+        },
+        watch: { // 监视双向绑定的数据数组
+            addStaffPrivilegeInfo: {
+                handler(){ // 数据数组有变化将触发此函数
+                    if(vc.component.addStaffPrivilegeInfo.selectPrivileges.length == vc.component.addStaffPrivilegeInfo._noAddPrivilege.length){
+                        document.querySelector('#quan').checked = true;
+                    }else {
+                        document.querySelector('#quan').checked = false;
+                    }
+
+                    if(vc.component.addStaffPrivilegeInfo.selectPrivilegeGroups.length == vc.component.addStaffPrivilegeInfo._noAddPrivilegeGroup.length){
+                        document.querySelector('#quanGroup').checked = true;
+                    }else {
+                        document.querySelector('#quanGroup').checked = false;
+                    }
+                },
+                deep: true // 深度监视
             }
         },
          _initMethod:function(){
@@ -86,12 +106,34 @@
                                 vc.component.addStaffPrivilegeInfo.errorInfo = errInfo;
                              });
             },
-            addStaffPrivilege:function(_pId,_privilegeFlag){
+            addStaffPrivilege:function(){
                 vc.component.addStaffPrivilegeInfo.errorInfo = "";
+                var _pIds = [];
+                var _selectPrivilegeGroups = vc.component.addStaffPrivilegeInfo.selectPrivilegeGroups;
+                var _selectPrivileges = vc.component.addStaffPrivilegeInfo.selectPrivileges;
+                if(vc.component.addStaffPrivilegeInfo._currentTab == 1){
+                    for(var _pIndex = 0;pIndex < _selectPrivilegeGroups.length;pIndex++){
+                        var _pgId = {
+                            pId: _selectPrivilegeGroups[pIndex]
+                        }
+                        _pIds.push(_pgId);
+                    }
+                }else{
+                    for(var _pIndex = 0;pIndex < _selectPrivileges.length;pIndex++){
+                        var _pId = {
+                            pId: _selectPrivileges[pIndex]
+                        }
+                        _pIds.push(_pId);
+                    }
+                }
+                if(_pIds.length < 1){
+                    vc.toast('未选择相应权限或权限组');
+                    return ;
+                }
                 var param = {
                     userId:vc.component.addStaffPrivilegeInfo._currentUserId,
-                    pId:_pId,
-                    pFlag:_privilegeFlag
+                    pIds:_pIds,
+                    pFlag:vc.component.addStaffPrivilegeInfo._currentTab
                 };
                 vc.http.post(
                     'addStaffPrivilege',
@@ -117,14 +159,6 @@
 
                         vc.component.addStaffPrivilegeInfo.errorInfo = errInfo;
                      });
-            },
-            userAddPrivilegeGroup:function(_pgId){
-                console.log("需要添加权限:",_pgId);
-                vc.component.addStaffPrivilege(_pgId,1)
-            },
-            userAddPrivilege:function(_pId){
-                console.log("需要添加权限:",_pId);
-                vc.component.addStaffPrivilege(_pId,2)
             }
         }
     });