Browse Source

迁移 logoutPhysical

mingfu 1 tháng trước cách đây
mục cha
commit
c786c6086e

+ 34 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java

@@ -1,10 +1,17 @@
 package com.ruoyi.web.controller.system;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
+import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.enums.AccessFromType;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.dz.domain.DzCards;
+import com.ruoyi.dz.service.IDzCardsService;
+import com.ruoyi.enums.CardTimeStatus;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.web.service.CommService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -50,9 +57,15 @@ public class SysLoginController
     @Autowired
     private CommService commService;
 
+    private final ISysUserService userService;
+
+    private final IDzCardsService cardsService;
+
     private final ISysConfigService configService;
 
-    public SysLoginController(ISysConfigService configService) {
+    public SysLoginController(ISysUserService userService, IDzCardsService cardsService, ISysConfigService configService) {
+        this.userService = userService;
+        this.cardsService = cardsService;
         this.configService = configService;
     }
 
@@ -123,4 +136,24 @@ public class SysLoginController
         List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
         return AjaxResult.success(menuService.buildMenus(menus));
     }
+
+    /**
+     * 用户注销,之后不能再登录
+     * @param loginBody
+     * @return
+     */
+    @Log(title = "用户注销", businessType = BusinessType.LOGOUT)
+    @PostMapping("/logoutPhysical")
+    public AjaxResult logout(@RequestBody LoginBody loginBody) {
+        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
+        userService.deleteUserById(currentUser.getUserId());
+        //卡重置为已过期
+        if(null!=currentUser.getCardId()){
+            DzCards card = cardsService.selectDzCardsByCardId(currentUser.getCardId());
+            card.setTimeStatus(CardTimeStatus.Expire.getVal());
+            card.setUpdateTime(new Date());
+            cardsService.updateDzCards(card);
+        }
+        return AjaxResult.success("注销成功",currentUser);
+    }
 }

+ 2 - 0
ie-common/src/main/java/com/ruoyi/common/enums/BusinessType.java

@@ -56,4 +56,6 @@ public enum BusinessType
      * 清空数据
      */
     CLEAN,
+
+    LOGOUT
 }

+ 1 - 0
ie-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -128,6 +128,7 @@ public interface SysUserMapper
      * @return 结果
      */
     public int deleteUserById(Long userId);
+    public int deleteUserPhysicalById(Long userId);
 
     /**
      * 批量删除用户信息

+ 1 - 1
ie-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -543,7 +543,7 @@ public class SysUserServiceImpl implements ISysUserService
         userRoleMapper.deleteUserRoleByUserId(userId);
         // 删除用户与岗位表
         userPostMapper.deleteUserPostByUserId(userId);
-        return userMapper.deleteUserById(userId);
+        return userMapper.deleteUserPhysicalById(userId);
     }
 
     /**

+ 4 - 0
ie-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -453,6 +453,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  		update sys_user set del_flag = '2' where user_id = #{userId}
  	</delete>
 
+	<delete id="deleteUserPhysicalById" parameterType="Long">
+		delete from sys_user where user_id = #{userId}
+	</delete>
+
  	<delete id="deleteUserByIds" parameterType="Long">
  		update sys_user set del_flag = '2' where user_id in
  		<foreach collection="array" item="userId" open="(" separator="," close=")">