Browse Source

feat:用户相关接口

tags/freeze
白凤吉 3 months ago
parent
commit
0ee2516b5e
  1. 9
      src/main/java/com/iflytop/gd/GraphiteDigesterServiceApplication.java
  2. 12
      src/main/java/com/iflytop/gd/system/common/enums/Deleted.java
  3. 24
      src/main/java/com/iflytop/gd/system/common/enums/DeletedEnum.java
  4. 12
      src/main/java/com/iflytop/gd/system/common/enums/FixedUser.java
  5. 24
      src/main/java/com/iflytop/gd/system/common/enums/StatusEnum.java
  6. 7
      src/main/java/com/iflytop/gd/system/common/enums/UsrRole.java
  7. 8
      src/main/java/com/iflytop/gd/system/config/SwaggerConfig.java
  8. 74
      src/main/java/com/iflytop/gd/system/controller/UserController.java
  9. 13
      src/main/java/com/iflytop/gd/system/mapper/UserMapper.java
  10. 43
      src/main/java/com/iflytop/gd/system/model/entity/User.java
  11. 32
      src/main/java/com/iflytop/gd/system/service/UserService.java
  12. 7
      src/main/resources/sql/init.sql

9
src/main/java/com/iflytop/gd/GraphiteDigesterServiceApplication.java

@ -2,12 +2,19 @@ package com.iflytop.gd;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
@SpringBootApplication
public class GraphiteDigesterServiceApplication {
public static void main(String[] args) {
SpringApplication.run(GraphiteDigesterServiceApplication.class, args);
ConfigurableApplicationContext ctx = SpringApplication.run(GraphiteDigesterServiceApplication.class, args);
ConfigurableEnvironment env = ctx.getEnvironment();
String port = env.getProperty("local.server.port", env.getProperty("server.port", "8080"));
System.out.println("应用已启动");
System.out.println("访问地址 → http://localhost:" + port + "/");
System.out.println("文档地址 → http://localhost:" + port + "/doc.html");
}
}

12
src/main/java/com/iflytop/gd/system/common/enums/Deleted.java

@ -0,0 +1,12 @@
package com.iflytop.gd.system.common.enums;
import lombok.Getter;
/**
* 删除状态枚举
*/
@Getter
public enum Deleted {
ENABLE,
DISABLE
}

24
src/main/java/com/iflytop/gd/system/common/enums/DeletedEnum.java

@ -1,24 +0,0 @@
package com.iflytop.gd.system.common.enums;
import com.iflytop.gd.system.common.base.IBaseEnum;
import lombok.Getter;
/**
* 删除状态枚举
*/
@Getter
public enum DeletedEnum implements IBaseEnum<Integer> {
ENABLE(1, "删除"),
DISABLE(0, "未删除");
private final Integer value;
private final String label;
DeletedEnum(Integer value, String label) {
this.value = value;
this.label = label;
}
}

12
src/main/java/com/iflytop/gd/system/common/enums/FixedUser.java

@ -0,0 +1,12 @@
package com.iflytop.gd.system.common.enums;
import lombok.Getter;
/**
* 系統固定用户
*/
@Getter
public enum FixedUser {
ENABLE,
DISABLE
}

24
src/main/java/com/iflytop/gd/system/common/enums/StatusEnum.java

@ -1,24 +0,0 @@
package com.iflytop.gd.system.common.enums;
import com.iflytop.gd.system.common.base.IBaseEnum;
import lombok.Getter;
/**
* 状态枚举
*/
@Getter
public enum StatusEnum implements IBaseEnum<Integer> {
ENABLE(1, "启用"),
DISABLE(0, "禁用");
private final Integer value;
private final String label;
StatusEnum(Integer value, String label) {
this.value = value;
this.label = label;
}
}

7
src/main/java/com/iflytop/gd/system/common/enums/UsrRole.java

@ -0,0 +1,7 @@
package com.iflytop.gd.system.common.enums;
public enum UsrRole {
ADMIN,
DEVELOPER,
USER;
}

8
src/main/java/com/iflytop/gd/system/config/SwaggerConfig.java

@ -38,10 +38,10 @@ public class SwaggerConfig {
}
// 其他接口统一添加Authorization
pathItem.readOperations()
.forEach(operation ->
operation.addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
);
// pathItem.readOperations()
// .forEach(operation ->
// operation.addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
// );
});
}
};

74
src/main/java/com/iflytop/gd/system/controller/UserController.java

@ -0,0 +1,74 @@
package com.iflytop.gd.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.iflytop.gd.system.common.base.BasePageQuery;
import com.iflytop.gd.system.common.result.PageResult;
import com.iflytop.gd.system.common.result.Result;
import com.iflytop.gd.system.common.result.ResultCode;
import com.iflytop.gd.system.model.entity.User;
import com.iflytop.gd.system.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@Tag(name = "用户接口")
@RestController
@RequestMapping("/api/user")
@RequiredArgsConstructor
@Slf4j
public class UserController {
private final UserService userService;
@Operation(summary = "用户列表")
@GetMapping("/list")
public PageResult<User> getAllUsers(BasePageQuery pageQuery) {
IPage<User> result = userService.page(new Page<>(pageQuery.getPageNum(), pageQuery.getPageSize()), null);
return PageResult.success(result);
}
@Operation(summary = "添加新用户")
@PostMapping("")
public Result<String> addUser(@RequestBody User user) {
User existingUser = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getUsername, user.getUsername()));
if (existingUser == null) {
boolean isSuccess = userService.save(user);
if (isSuccess) {
return Result.success();
}
} else {
return Result.failed(ResultCode.USER_ALREADY_EXISTS);
}
return Result.failed();
}
@Operation(summary = "当前用户信息")
@GetMapping("/current")
public Result<User> currentUser() {
return Result.success(userService.getCurrentUser());
}
@Operation(summary = "更新用户信息")
@PutMapping("")
public Result<String> updateUser(@RequestBody User user) {
boolean isSuccess = userService.updateById(user);
if (isSuccess) {
return Result.success();
}
return Result.failed();
}
@Operation(summary = "删除用户")
@DeleteMapping("/{ids}")
public Result<String> deleteUser(@Parameter(description = "用户ID,多个以英文逗号(,)分割") @PathVariable String ids) {
boolean isSuccess = userService.deleteUser(ids);
if (isSuccess) {
return Result.success();
}
return Result.failed();
}
}

13
src/main/java/com/iflytop/gd/system/mapper/UserMapper.java

@ -0,0 +1,13 @@
package com.iflytop.gd.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iflytop.gd.system.model.entity.User;
import org.apache.ibatis.annotations.Mapper;
/**
* 用户持久层接口
*/
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

43
src/main/java/com/iflytop/gd/system/model/entity/User.java

@ -0,0 +1,43 @@
package com.iflytop.gd.system.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.iflytop.gd.system.common.base.BaseEntity;
import com.iflytop.gd.system.common.enums.Deleted;
import com.iflytop.gd.system.common.enums.FixedUser;
import com.iflytop.gd.system.common.enums.UsrRole;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户实体
*/
@EqualsAndHashCode(callSuper = true)
@Schema(description = "用户")
@TableName("user")
@Data
public class User extends BaseEntity {
@NotBlank()
@Schema(description = "用户名")
private String username;
@NotBlank()
@Schema(description = "昵称")
private String nickname;
@NotBlank()
@Schema(description = "密码")
private String password;
@Schema(description = "人员角色")
private UsrRole role;
@Schema(description = "是否删除(0-否 1-是)")
private Deleted deleted;
@Schema(description = "是否是系统固定用户")
private FixedUser fixedUser;
}

32
src/main/java/com/iflytop/gd/system/service/UserService.java

@ -0,0 +1,32 @@
package com.iflytop.gd.system.service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.iflytop.gd.system.mapper.UserMapper;
import com.iflytop.gd.system.model.entity.User;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 用户业务实现类
*/
@Service
@RequiredArgsConstructor
public class UserService extends ServiceImpl<UserMapper, User> {
@Getter
@Setter
private User currentUser;
public boolean deleteUser(String idsStr) {
List<Long> ids = Arrays.stream(idsStr.split(","))
.map(Long::parseLong)
.collect(Collectors.toList());
return this.removeByIds(ids);
}
}

7
src/main/resources/sql/init.sql

@ -5,11 +5,12 @@ CREATE TABLE IF NOT EXISTS user (
nickname TEXT,
password TEXT,
role TEXT,
fixed_user INTEGER,
fixed_user TEXT,
deleted TEXT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO user (username,nickname, password, role, fixed_user)
SELECT 'admin','Admin', '000000', 'ADMIN', 1
INSERT INTO user (username,nickname, password, role, fixed_user, deleted)
SELECT 'admin','Admin', '123456', 'ADMIN', 'ENABLE','DISABLE'
WHERE NOT EXISTS (SELECT 1 FROM user WHERE username = 'admin');
Loading…
Cancel
Save