Browse Source

1.修复新增用户没有pushkey的问题
2.将重置pushkey改为修改pushkey

jiang 3 years ago
parent
commit
fc0ad32f81

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/service/IUserService.java

@@ -25,5 +25,5 @@ public interface IUserService {
 
     PageInfo<User> getUsers(int page, int count);
 
-    int resetPushKey(int id);
+    int changePushKey(int id, String pushKey);
 }

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/service/impl/UserServiceImpl.java

@@ -75,7 +75,7 @@ public class UserServiceImpl implements IUserService {
     }
 
     @Override
-    public int resetPushKey(int id) {
-        return userMapper.resetPushKey(id);
+    public int changePushKey(int id, String pushKey) {
+        return userMapper.changePushKey(id,pushKey);
     }
 }

+ 2 - 2
src/main/java/com/genersoft/iot/vmp/storager/dao/UserMapper.java

@@ -60,6 +60,6 @@ public interface UserMapper {
     @ResultMap(value="roleMap")
     List<User> getUsers();
 
-    @Delete("update user set pushKey=MD5(NOW()+#{id}) where id=#{id}")
-    int resetPushKey(int id);
+    @Update("update user set pushKey=#{pushKey} where id=#{id}")
+    int changePushKey(int id, String pushKey);
 }

+ 9 - 6
src/main/java/com/genersoft/iot/vmp/vmanager/user/UserController.java

@@ -124,7 +124,8 @@ public class UserController {
         User user = new User();
         user.setUsername(username);
         user.setPassword(DigestUtils.md5DigestAsHex(password.getBytes()));
-
+        //新增用户的pushKey的生成规则为md5(时间戳+用户名)
+        user.setPushKey(DigestUtils.md5DigestAsHex((System.currentTimeMillis()+password).getBytes()));
         Role role = roleService.getRoleById(roleId);
 
         if (role == null) {
@@ -138,6 +139,7 @@ public class UserController {
         user.setUpdateTime(DateUtil.getNow());
         int addResult = userService.addUser(user);
 
+
         result.setCode(addResult > 0 ? 0 : -1);
         result.setMsg(addResult > 0 ? "success" : "fail");
         result.setData(addResult);
@@ -196,12 +198,13 @@ public class UserController {
         return userService.getUsers(page, count);
     }
 
-    @ApiOperation("重置pushkey")
+    @ApiOperation("修改pushkey")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", required = true, value = "用户Id", dataTypeClass = Integer.class),
+            @ApiImplicitParam(name = "userId", required = true, value = "用户Id", dataTypeClass = Integer.class),
+            @ApiImplicitParam(name = "pushKey", required = true, value = "新的pushKey", dataTypeClass = String.class),
     })
-    @RequestMapping("/resetPushKey")
-    public ResponseEntity<WVPResult<String>> resetPushKey(@RequestParam Integer id) {
+    @RequestMapping("/changePushKey")
+    public ResponseEntity<WVPResult<String>> changePushKey(@RequestParam Integer userId,@RequestParam String pushKey) {
         // 获取当前登录用户id
         int currenRoleId = SecurityUtils.getUserInfo().getRole().getId();
         WVPResult<String> result = new WVPResult<>();
@@ -211,7 +214,7 @@ public class UserController {
             result.setMsg("用户无权限");
             return new ResponseEntity<>(result, HttpStatus.FORBIDDEN);
         }
-        int resetPushKeyResult = userService.resetPushKey(id);
+        int resetPushKeyResult = userService.changePushKey(userId,pushKey);
 
         result.setCode(resetPushKeyResult > 0 ? 0 : -1);
         result.setMsg(resetPushKeyResult > 0 ? "success" : "fail");

+ 26 - 26
web_src/src/components/UserManager.vue

@@ -21,7 +21,7 @@
         <template slot-scope="scope">
           <el-button size="medium" icon="el-icon-edit" type="text" @click="edit(scope.row)">修改密码</el-button>
           <el-divider direction="vertical"></el-divider>
-          <el-button size="medium" icon="el-icon-refresh" type="text" @click="resetPushKey(scope.row)">重置pushkey</el-button>
+          <el-button size="medium" icon="el-icon-edit" type="text" @click="changePushKey(scope.row)">修改pushkey</el-button>
           <el-divider direction="vertical"></el-divider>
           <el-button size="medium" icon="el-icon-delete" type="text" @click="deleteUser(scope.row)"
                      style="color: #f56c6c">删除
@@ -30,6 +30,7 @@
       </el-table-column>
     </el-table>
     <changePasswordForAdmin ref="changePasswordForAdmin"></changePasswordForAdmin>
+    <changePushKey ref="changePushKey"></changePushKey>
     <addUser ref="addUser"></addUser>
     <el-pagination
       style="float: right"
@@ -47,6 +48,7 @@
 <script>
 import uiHeader from '../layout/UiHeader.vue'
 import changePasswordForAdmin from './dialog/changePasswordForAdmin.vue'
+import changePushKey from './dialog/changePushKey.vue'
 import addUser from '../components/dialog/addUser.vue'
 
 export default {
@@ -54,6 +56,7 @@ export default {
   components: {
     uiHeader,
     changePasswordForAdmin,
+    changePushKey,
     addUser
   },
   data() {
@@ -118,7 +121,7 @@ export default {
           message: "密码修改成功",
           type: "success",
         });
-        setTimeout(this.getDeviceList, 200)
+        setTimeout(this.getUserList, 200)
 
       })
     },
@@ -148,34 +151,31 @@ export default {
 
 
     },
-    resetPushKey: function (row) {
-      let msg = "确定重置pushkey?"
-      if (row.online !== 0) {
-        msg = "<strong>确定重置pushkey?</strong>"
-      }
-      this.$confirm(msg, '提示', {
-        dangerouslyUseHTMLString: true,
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        center: true,
-        type: 'warning'
-      }).then(() => {
-        this.$axios({
-          method: 'get',
-          url: `/api/user/resetPushKey?id=${row.id}`
-        }).then((res) => {
-          this.getUserList();
-        }).catch((error) => {
-          console.error(error);
-        });
-      }).catch(() => {
-
-      });
 
+    changePushKey: function (row) {
+      this.$refs.changePushKey.openDialog(row, () => {
+        this.$refs.changePushKey.close();
+        this.$message({
+          showClose: true,
+          message: "pushKey修改成功",
+          type: "success",
+        });
+        setTimeout(this.getUserList, 200)
 
+      })
     },
     addUser: function () {
-      this.$refs.addUser.openDialog()
+      // this.$refs.addUser.openDialog()
+      this.$refs.addUser.openDialog( () => {
+        this.$refs.addUser.close();
+        this.$message({
+          showClose: true,
+          message: "用户添加成功",
+          type: "success",
+        });
+        setTimeout(this.getUserList, 200)
+
+      })
     }
   }
 }

+ 102 - 0
web_src/src/components/dialog/changePushKey.vue

@@ -0,0 +1,102 @@
+<template>
+  <div id="changepushKey" v-loading="isLoging">
+    <el-dialog
+      title="修改密码"
+      width="42%"
+      top="2rem"
+      :close-on-click-modal="false"
+      :visible.sync="showDialog"
+      :destroy-on-close="true"
+      @close="close()"
+    >
+      <div id="shared" style="margin-right: 18px;">
+        <el-form ref="pushKeyForm" :rules="rules" status-icon label-width="86px">
+              <el-form-item label="新pushKey" prop="newPushKey" >
+                <el-input v-model="newPushKey" autocomplete="off"></el-input>
+              </el-form-item>
+              <el-form-item>
+                <div style="float: right;">
+                  <el-button type="primary" @click="onSubmit">保存</el-button>
+                  <el-button @click="close">取消</el-button>
+                </div>
+              </el-form-item>
+            </el-form>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "changePushKey",
+  props: {},
+  computed: {},
+  created() {},
+  data() {
+    let validatePass1 = (rule, value, callback) => {
+      if (value === '') {
+        callback(new Error('请输入新pushKey'));
+      } else {
+        callback();
+      }
+    };
+    return {
+      newPushKey: null,
+      confirmpushKey: null,
+      userId: null,
+      showDialog: false,
+      isLoging: false,
+      listChangeCallback: null,
+      form: {},
+      rules: {
+        newpushKey: [{ required: true, validator: validatePass1, trigger: "blur" }],
+      },
+    };
+  },
+  methods: {
+    openDialog: function (row, callback) {
+      console.log(row)
+      this.showDialog = true;
+      this.listChangeCallback = callback;
+      if (row != null) {
+        this.form = row;
+      }
+    },
+    onSubmit: function () {
+      this.$axios({
+        method: 'post',
+        url:"/api/user/changePushKey",
+        params: {
+          pushKey: this.newPushKey,
+          userId: this.form.id,
+        }
+      }).then((res)=> {
+        console.log(res.data)
+        if (res.data.msg === "success"){
+          this.$message({
+            showClose: true,
+            message: '修改成功',
+            type: 'success'
+          });
+          this.showDialog = false;
+          this.listChangeCallback();
+        }else {
+          this.$message({
+            showClose: true,
+            message: '修改密码失败,是否已登录(接口鉴权关闭无法修改密码)',
+            type: 'error'
+          });
+        }
+      }).catch((error)=> {
+        console.error(error)
+      });
+    },
+    close: function () {
+      this.showDialog = false;
+      this.newpushKey = null;
+      this.userId=null;
+      this.adminId=null;
+    },
+  },
+};
+</script>