david 2 лет назад
Родитель
Сommit
178dc85da1

BIN
out/artifacts/roma_api_jar/roma-api.jar


+ 60 - 23
src/main/java/com/roma/romaapi/dao/ApiDao.java

@@ -274,32 +274,69 @@ public class ApiDao {
     }
 
     // 添加用户
-    public Integer saveUser(Map bindValue, String userRole) {
-        String sql = " INSERT INTO `admin_user` (`admin_name`,`admin_password`,`created_at`,`admin_avatar`," +
-                "`is_enable`,`admin_email`,`admin_phone`)" +
-                " VALUES (:adminName,:adminPassword,:createdAt,:apiUploadPic,:isEnable,:adminEmail,:adminPhone)  ";
-        KeyHolder keyHolder = new GeneratedKeyHolder();
-        Integer row = namedParameterJdbcTemplate.update(sql, new MapSqlParameterSource(bindValue), keyHolder);
-        int k = keyHolder.getKey().intValue();
-        if (userRole.length()>0) {
-            // 如果添加用户,选择了角色
-            LinkedHashSet<String> uniqueRole = new LinkedHashSet<String>();
-            for(String s : userRole.split(",")) {
-                uniqueRole.add(s);
+    public Integer saveUser(Map bindValue, String userRole, String userId) {
+        if (userId.length() > 0) {
+            bindValue.put("id", userId);
+            // 如果是编辑用户
+            String updateUserInfoSql = " UPDATE `admin_user` SET `admin_name`=:adminName,`admin_avatar`=:apiUploadPic," +
+                    "`is_enable`=:isEnable,`admin_email`=:adminEmail,`admin_phone`=:adminPhone WHERE id=:id ";
+            Integer row = namedParameterJdbcTemplate.update(updateUserInfoSql, bindValue);
+            if (row > 0) {
+                Map<String, Object> delParams = new HashMap<>();
+                delParams.put("id", userId);
+                String delRolePermissionSql = " DELETE FROM `roma_role_user` WHERE user_id=:id ";
+                namedParameterJdbcTemplate.update(delRolePermissionSql, delParams);
+                if (userRole.length() > 0) {
+                    // 如果添加用户,选择了角色
+                    LinkedHashSet<String> uniqueRole = new LinkedHashSet<String>();
+                    for (String s : userRole.split(",")) {
+                        uniqueRole.add(s);
+                    }
+                    // 循环去重后的数据
+                    String values = "";
+                    for (String val : uniqueRole) {
+                        values += " (" + userId + "," + val + "),";
+                    }
+                    Map addRoleUserMap = new HashMap<>();
+                    values = commonUtil.trimFirstAndLastChar(values, ",");
+                    String insertSql = " INSERT INTO `roma_role_user` (`user_id`, `role_id`) VALUES  " + values;
+                    Integer addRoleUserRow = namedParameterJdbcTemplate.update(insertSql, addRoleUserMap);
+
+                    return addRoleUserRow;
+                } else {
+                    return row;
+                }
             }
-            // 循环去重后的数据
-            String values = "";
-            for(String val: uniqueRole) {
-                values += " ("+k+","+val+"),";
-            }
-            Map addRoleUserMap = new HashMap<>();
-            values = commonUtil.trimFirstAndLastChar(values, ",");
-            String insertSql = " INSERT INTO `roma_role_user` (`user_id`, `role_id`) VALUES  " + values;
-            Integer addRoleUserRow = namedParameterJdbcTemplate.update(insertSql, addRoleUserMap);
 
-            return addRoleUserRow;
+            return 0;
         } else {
-            return k;
+            // 如果是添加用户
+            String sql = " INSERT INTO `admin_user` (`admin_name`,`admin_password`,`created_at`,`admin_avatar`," +
+                    "`is_enable`,`admin_email`,`admin_phone`)" +
+                    " VALUES (:adminName,:adminPassword,:createdAt,:apiUploadPic,:isEnable,:adminEmail,:adminPhone)  ";
+            KeyHolder keyHolder = new GeneratedKeyHolder();
+            Integer row = namedParameterJdbcTemplate.update(sql, new MapSqlParameterSource(bindValue), keyHolder);
+            int k = keyHolder.getKey().intValue();
+            if (userRole.length() > 0) {
+                // 如果添加用户,选择了角色
+                LinkedHashSet<String> uniqueRole = new LinkedHashSet<String>();
+                for (String s : userRole.split(",")) {
+                    uniqueRole.add(s);
+                }
+                // 循环去重后的数据
+                String values = "";
+                for (String val : uniqueRole) {
+                    values += " (" + k + "," + val + "),";
+                }
+                Map addRoleUserMap = new HashMap<>();
+                values = commonUtil.trimFirstAndLastChar(values, ",");
+                String insertSql = " INSERT INTO `roma_role_user` (`user_id`, `role_id`) VALUES  " + values;
+                Integer addRoleUserRow = namedParameterJdbcTemplate.update(insertSql, addRoleUserMap);
+
+                return addRoleUserRow;
+            } else {
+                return k;
+            }
         }
     }
 }

+ 18 - 4
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -599,8 +599,16 @@ public class ApiService {
     public Map userSave(Map maps, String authorization) {
         String isEnable = maps.get("is_enable").toString();
         String adminName = maps.get("admin_name").toString();
-        String adminPassword = maps.get("admin_password").toString();
-        // 密码要加密
+        String userId = "";
+        String adminPassword = "";
+        if(maps.containsKey("id")) {
+            userId = maps.get("id").toString();
+        } else {
+            // 添加用户,才会传密码字段
+            adminPassword = maps.get("admin_password").toString();
+        }
+
+        // 如果是添加用户密码要加密,编辑用户则没有密码字段.编辑密码单独一个功能
         // 角色/email/phone/头像 可能不存在
         String adminEmail = "";
         String adminPhone = "";
@@ -627,9 +635,15 @@ public class ApiService {
         addPagePamars.put("adminEmail", adminEmail);
         addPagePamars.put("adminPhone", adminPhone);
         addPagePamars.put("apiUploadPic", apiUploadPic);
-        addPagePamars.put("createdAt", createdAt);
+        if (userId.length() > 0) {
+            // 如果是编辑用户
+        } else {
+            // 如果是添加用户
+            addPagePamars.put("createdAt", createdAt);
+        }
+
         // 添加
-        Integer pageId = apiDao.saveUser(addPagePamars, userRole);
+        Integer pageId = apiDao.saveUser(addPagePamars, userRole, userId);
         Map retInfo = new HashMap<>();
         if(pageId <= 0){
             retInfo.put("sysErrorCode", "500");