Explorar o código

1.添加用户删除和批量删除功能

1 hai 1 mes
pai
achega
bc30fba68c

+ 1 - 1
imwork-commons/imwork-commons-core/src/main/java/top/imwork/commons/core/config/JacksonConfig.java

@@ -46,7 +46,7 @@ public class JacksonConfig {
     @Bean
     public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
         return builder -> {
-            // Long 会自转换成 String
+            // Long 会自转换成 String
             builder.serializerByType(Long.class, ToStringSerializer.instance);
         };
     }

+ 56 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/config/JacksonConfig.java

@@ -0,0 +1,56 @@
+package top.imwork.window.silos.config;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import java.io.IOException;
+
+/**
+ * Copyright (C), 2015-2021
+ * FileName: JacksonConfig
+ * Author(作者姓名):   jiangxiaowei
+ * CreateDate(创建时间):     2021/8/2 15:35
+ * UpdateDate(修改时间):     2021/8/2 15:35
+ * Description(功能描述):    JacksonConfig
+ * Since(版本号)  1.0.0
+ * History:
+ */
+@Configuration
+public class JacksonConfig {
+    @Bean
+    @Primary
+    public ObjectMapper objectMapper() {
+        ObjectMapper mapper = new ObjectMapper();
+
+        // 处理 Long 类型
+        SimpleModule module = new SimpleModule();
+        module.addSerializer(Long.class, new JsonSerializer<Long>() {
+            @Override
+            public void serialize(Long value, JsonGenerator gen,
+                                  SerializerProvider serializers) throws IOException {
+                gen.writeString(value.toString());
+            }
+        });
+
+        // 处理 long 基本类型
+        module.addSerializer(Long.TYPE, new JsonSerializer<Long>() {
+            @Override
+            public void serialize(Long value, JsonGenerator gen,
+                                  SerializerProvider serializers) throws IOException {
+                gen.writeString(value.toString());
+            }
+        });
+
+        mapper.registerModule(module);
+        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        return mapper;
+    }
+}

+ 63 - 0
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/config/MybatisPlusConfig.java

@@ -0,0 +1,63 @@
+package top.imwork.window.silos.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
+import com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Copyright (C), 2015-2021
+ * FileName: MybatisPlusConfig
+ * Author<作者姓名>:   stars
+ * CreateTime<创建时间>:   2021/11/26 13:19
+ * UpdateTime<修改时间>:   2021/11/26 13:19
+ * Description〈功能简述〉: MybatisPlus配置文件
+ * History<历史描述>:
+ * Since<版本号>: 1.0.0
+ */
+@Configuration
+public class MybatisPlusConfig {
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(paginationInnerInterceptor());
+        return interceptor;
+    }
+
+    /**
+     * 分页插件
+     * @return PaginationInnerInterceptor 分页拦截器
+     */
+    @Bean
+    public PaginationInnerInterceptor paginationInnerInterceptor(){
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
+        paginationInnerInterceptor.setDbType(DbType.MYSQL);
+        return paginationInnerInterceptor;
+    }
+
+    /**
+     * 乐观锁
+     * 通过@Version注解使用
+     * @return OptimisticLockerInnerInterceptor 乐观锁拦截器
+     */
+    @Bean
+    public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor(){
+        return new OptimisticLockerInnerInterceptor();
+    }
+
+    /**
+     * 主键生成
+     * ID_WORK 数字型id
+     * ID_WORK_STR 字符串类型id
+     * @return IKeyGenerator 主键生成策略
+     */
+    @Bean
+    public IKeyGenerator iKeyGenerator(){
+        return new H2KeyGenerator();
+    }
+}

+ 6 - 5
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/controller/upms/SysUserServiceController.java

@@ -54,9 +54,11 @@ public class SysUserServiceController extends BaseController {
      * @param id id
      * @return true/false 成功/失败
      */
-    @DeleteMapping("/delete/{id}")
+    @GetMapping("/delete/{id}")
     public ResponseMsg delete(@PathVariable("id") Long id){
-        return sysUserService.delete(id)? ResponseMsg.ok() : ResponseMsg.fail();
+        String[] idArr = new String[1];
+        idArr[0] = String.valueOf(id);
+        return sysUserService.deleteByIds(idArr)? ResponseMsg.ok() : ResponseMsg.fail();
     }
 
     /**
@@ -65,10 +67,9 @@ public class SysUserServiceController extends BaseController {
      * @param dto 删除条件
      * @return true/false 是否删除成功
      */
-    @DeleteMapping("/deleteByIds")
+    @PostMapping("/deleteByIds")
     public ResponseMsg deleteByIds(@RequestBody DeleteParams dto){
-        String[] idArr = dto.getIds().split(",");
-        return sysUserService.deleteByIds(idArr)? ResponseMsg.ok() : ResponseMsg.fail();
+        return sysUserService.deleteByIds(dto.getIdsArr())? ResponseMsg.ok() : ResponseMsg.fail();
     }
 
     @PostMapping("/queryPage")

+ 2 - 1
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/entity/SysUser.java

@@ -1,5 +1,6 @@
 package top.imwork.window.silos.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 
@@ -22,7 +23,7 @@ public class SysUser implements Serializable {
     /**
      * 用户id
      */
-    @TableId
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
     /**
      * 登录账号

+ 1 - 1
imwork-windows/imwork-silos/src/main/java/top/imwork/window/silos/service/impl/SysUserServiceImpl.java

@@ -49,7 +49,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao,SysUser> implemen
         SysUser sysUser = SysUserConvert.sysUserDtoToDo(sysUserDTO);
         if (ObjectUtils.isEmpty(sysUser.getId())) {
             sysUser.setLoginPassword(new BCryptPasswordEncoder().encode("123456"));
-            sysUser.setDelFlag("0");
+            sysUser.setDelFlag("N");
             sysUser.setCreator("admin");
             sysUser.setCreateTime(new Date());
             sysUser.setUpdateTime(new Date());

+ 4 - 0
imwork-windows/imwork-silos/src/main/resources/application.yml

@@ -68,7 +68,11 @@ spring:
 mybatis:
   mapper-locations: classpath:mapper/*.xml
   type-aliases-package: top.imwork.*.dao
+
 mybatis-plus:
+  global-config:
+    db-config:
+      id-type: auto  # 全局指定自增策略
   configuration:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 

+ 1 - 1
imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/css/edit.css

@@ -1,3 +1,3 @@
 .childrenRow {
-    margin: 5px auto;
+    margin: 5px 5px 5px 0;
 }

+ 2 - 2
imwork-windows/imwork-silos/src/main/resources/static/business/upms/user/js/list.js

@@ -124,7 +124,7 @@ layui.config({
             return;
         }
 
-        const idsArr = data.map(item => item.id);
+        const idsArr = data.map(item => BigInt(item.id).toString());
 
         layer.confirm('确定删除选中的用户?', {
             icon: 3,
@@ -163,7 +163,7 @@ layui.config({
             title: '提示信息'
         }, function (index) {
             $.ajax({
-                url: '/upms/sysuser/delete',
+                url: '/upms/sysuser/delete/'+userData.id,
                 type: 'GET',
                 data: { id: userData.id },
                 success: function (res) {

+ 3 - 3
imwork-windows/imwork-silos/src/main/resources/templates/upms/user/list.html

@@ -160,8 +160,8 @@
                 <label for="delFlag">是否刪除</label>
                 <select id="delFlag" class="form-control">
                     <option value="">全部</option>
-                    <option value="0">未删除</option>
-                    <option value="1">已删除</option>
+                    <option value="N">未删除</option>
+                    <option value="Y">已删除</option>
                 </select>
             </div>
 
@@ -177,7 +177,7 @@
                 <button class="btn btn-success add_btn">
                     <i class="fa-solid fa-person-circle-plus"></i> 添加用户
                 </button>
-                <button class="btn btn-danger">
+                <button class="btn btn-danger delAll_btn">
                     <i class="fa-regular fa-trash-can"></i> 批量删除
                 </button>
             </div>