linweichao 3 dienas atpakaļ
vecāks
revīzija
59e1168597

+ 14 - 0
qnfhq-api/src/main/java/com/qnfhq/modules/user/controller/ApiAppUserController.java

@@ -24,6 +24,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.util.Objects;
 
 
 /**
@@ -175,4 +176,17 @@ public class ApiAppUserController {
         result.setData(MapUtil.of(StpUtil.getTokenName(), StpUtil.getTokenValue()));
         return result;
     }
+
+    /**
+     * 注销
+     * @param
+     * @return
+     */
+    @Operation(summary = "用户注销")
+    @PostMapping("/logout")
+    public Result logout (@RequestParam(required = false) Long userId){
+        userId = Objects.requireNonNullElse(userId, StpUtil.getLoginIdAsLong());
+        appUserService.logout(userId);
+        return new Result().ok("appUser.logout.success");
+    }
 }

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/user/entity/AppUserEntity.java

@@ -42,7 +42,7 @@ public class AppUserEntity implements Serializable {
 	private String phone;
 
     /**
-     * 0-正常 1-测试
+     * 0-正常 1-测试 2删除(注销)
      */
 	private Integer isTest;
     /**

+ 5 - 0
qnfhq-api/src/main/java/com/qnfhq/modules/user/enums/UserBlackEnum.java

@@ -16,6 +16,11 @@ public enum UserBlackEnum {
      */
     BLOCK(2,"拉黑用户"),
 
+    /**
+     * 注销用户
+     */
+    LOGOUT(3, "注销用户");
+
 
     ;
     private Integer code;

+ 2 - 0
qnfhq-api/src/main/java/com/qnfhq/modules/user/service/AppUserService.java

@@ -109,4 +109,6 @@ public interface AppUserService extends IService<AppUserEntity> {
     Result verifyIntelligentCaptcha(String verifyParam);
 
     AppUserEntity getUserByUserId(Long userId);
+
+    void logout(Long userId);
 }

+ 12 - 0
qnfhq-api/src/main/java/com/qnfhq/modules/user/service/impl/AppUserServiceImpl.java

@@ -248,6 +248,10 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
             throw new RenException(MessageUtils.message("user_is_black"));//您的账号已被列入黑名单,无法登录。
         }
 
+        //是否注销
+        if (Objects.nonNull(appUser.getStatus()) && appUser.getStatus() == UserBlackEnum.LOGOUT.getCode()) {
+            throw new RenException(MessageUtils.message("user_is_logout"));//您的账号已被列入黑名单,无法登录。
+        }
 
         StpUtil.login(appUser.getId());
         appuserLoginLogService.insertAppActionLog(appUser, "用户登录", "0", request);
@@ -643,5 +647,13 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
         return getById(userId);
     }
 
+    @Override
+    public void logout(Long userId) {
+        AppUserEntity user = new AppUserEntity();
+        user.setId(userId);
+        user.setStatus(3);
+        baseMapper.updateById(user);
+    }
+
 
 }