From 9ba9007d5c1b9eb83ab9407e2b3596d0f2d0ad66 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 16 二月 2020 22:19:50 +0800
Subject: [PATCH] 优化 权限批量添加功能

---
 OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java |   49 +++++++++++++++++++++++++++++++------------------
 1 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java b/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java
index 8fc86e1..2ca0549 100644
--- a/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java
+++ b/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java
@@ -232,18 +232,34 @@
     @Override
     public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(String privilegeInfo) {
 
-        JSONObject privilegeObj = validateData(privilegeInfo);
-        //鏍规嵁鏉冮檺缁処D鍜屽晢鎴稩D鏌ヨ鏄惁鏈夋暟鎹�
-        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);
+                //鏍规嵁鏉冮檺缁処D鍜屽晢鎴稩D鏌ヨ鏄惁鏈夋暟鎹�
+                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 @@
         return privilegeObj;
     }
 
-    private JSONObject validateData(String privilegeInfo) {
+    private JSONObject validateData(JSONObject privilegeObj) {
 
-        Assert.isJsonObject(privilegeInfo, "璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+        Assert.jsonObjectHaveKey(privilegeObj, "pId", "璇锋眰鎶ユ枃涓湭鍖呭惈pId鑺傜偣");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "pId", "璇锋眰鎶ユ枃涓湭鍖呭惈pId鑺傜偣");
+        Assert.jsonObjectHaveKey(privilegeObj, "pFlag", "璇锋眰鎶ユ枃涓湭鍖呭惈pFlag鑺傜偣");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "pFlag", "璇锋眰鎶ユ枃涓湭鍖呭惈pFlag鑺傜偣");
+        Assert.jsonObjectHaveKey(privilegeObj, "userId", "璇锋眰鎶ユ枃涓湭鍖呭惈userId鑺傜偣");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "userId", "璇锋眰鎶ユ枃涓湭鍖呭惈userId鑺傜偣");
+        Assert.jsonObjectHaveKey(privilegeObj, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+        Assert.jsonObjectHaveKey(privilegeObj, "storeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
 
-        Assert.jsonObjectHaveKey(privilegeInfo, "storeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
-
-        JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
         String pFlag = privilegeObj.getString("pFlag");//鏉冮檺缁�
         if ("1".equals(pFlag)) {
             validatePrivilegeGroup(privilegeObj);

--
Gitblit v1.8.0