数据库修改,DO模块编写

This commit is contained in:
筱锋xiao_lfeng 2024-01-13 16:22:01 +08:00
parent 7dbf3d52b8
commit a1817ac53f
Signed by: XiaoLFeng
GPG Key ID: F693AA12AABBFA87
18 changed files with 294 additions and 37 deletions

View File

@ -312,7 +312,7 @@ node6 --|> node4
| 7 | `git` | git代码仓库内容 | json | | YES | | | | 7 | `git` | git代码仓库内容 | json | | YES | | |
| 8 | `difficulty_level` | 难度等级 | tinyint unsigned | | NO | | 1 | | 8 | `difficulty_level` | 难度等级 | tinyint unsigned | | NO | | 1 |
| 9 | `type` | 类型 | int unsigned | MUL | NO | | | | 9 | `type` | 类型 | int unsigned | MUL | NO | | |
| 10 | `reward` | 报酬 | double | | YES | | | | 10 | `reward` | 报酬 | bigint unsigned | | YES | | |
| 11 | `status` | 状态 | tinyint unsigned | | NO | | 0 | | 11 | `status` | 状态 | tinyint unsigned | | NO | | 0 |

View File

@ -64,7 +64,7 @@ CREATE TABLE `oa_project`
`git` json DEFAULT NULL COMMENT 'git代码仓库内容', `git` json DEFAULT NULL COMMENT 'git代码仓库内容',
`difficulty_level` tinyint UNSIGNED NOT NULL DEFAULT '1' COMMENT '难度等级', `difficulty_level` tinyint UNSIGNED NOT NULL DEFAULT '1' COMMENT '难度等级',
`type` int UNSIGNED NOT NULL COMMENT '类型', `type` int UNSIGNED NOT NULL COMMENT '类型',
`reward` double DEFAULT NULL COMMENT '报酬', `reward` bigint UNSIGNED DEFAULT NULL COMMENT '报酬',
`status` tinyint UNSIGNED NOT NULL DEFAULT '0' COMMENT '状态' `status` tinyint UNSIGNED NOT NULL DEFAULT '0' COMMENT '状态'
) ENGINE = InnoDB ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 DEFAULT CHARSET = utf8mb4

View File

@ -10,7 +10,7 @@
</parent> </parent>
<groupId>com.jsl</groupId> <groupId>com.jsl</groupId>
<artifactId>oa</artifactId> <artifactId>oa</artifactId>
<version>1.0.0</version> <version>1.1.0</version>
<name>JSL_OrganizeInternalOA</name> <name>JSL_OrganizeInternalOA</name>
<description>JSL_OrganizeInternalOA</description> <description>JSL_OrganizeInternalOA</description>
<properties> <properties>

View File

@ -35,7 +35,7 @@ public class UserControllerAspect {
* @return {@link Object} * @return {@link Object}
* @throws Throwable 异常 * @throws Throwable 异常
*/ */
@Around("execution(* com.jsl.oa.controllers.UserController.*(..))") @Around("execution(* com.jsl.oa.controllers.AuthController.*(..))")
public Object controllerAround(ProceedingJoinPoint pjp) throws Throwable { public Object controllerAround(ProceedingJoinPoint pjp) throws Throwable {
// 获取HttpServletRequest对象 // 获取HttpServletRequest对象
HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();

View File

@ -2,7 +2,7 @@ package com.jsl.oa.controllers;
import com.jsl.oa.model.voData.UserLoginVO; import com.jsl.oa.model.voData.UserLoginVO;
import com.jsl.oa.model.voData.UserRegisterVO; import com.jsl.oa.model.voData.UserRegisterVO;
import com.jsl.oa.services.UserService; import com.jsl.oa.services.AuthService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
import com.jsl.oa.utils.Processing; import com.jsl.oa.utils.Processing;
@ -18,8 +18,8 @@ import java.text.ParseException;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
public class UserController { public class AuthController {
private final UserService userService; private final AuthService authService;
/** /**
* <h1>用户注册</h1> * <h1>用户注册</h1>
@ -30,12 +30,12 @@ public class UserController {
* @author 筱锋xiao_lfeng * @author 筱锋xiao_lfeng
*/ */
@PostMapping("/user/register") @PostMapping("/user/register")
public BaseResponse userRegister(@RequestBody @Validated UserRegisterVO userRegisterVO, BindingResult bindingResult) throws ParseException { public BaseResponse authRegister(@RequestBody @Validated UserRegisterVO userRegisterVO, BindingResult bindingResult) throws ParseException {
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
} }
return userService.userRegister(userRegisterVO); return authService.authRegister(userRegisterVO);
} }
/** /**
@ -49,11 +49,11 @@ public class UserController {
* @author 176yunxuan * @author 176yunxuan
*/ */
@PostMapping("/user/login") @PostMapping("/user/login")
public BaseResponse userLogin(@RequestBody @Validated UserLoginVO userLoginVO, BindingResult bindingResult){ public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, BindingResult bindingResult){
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
} }
return userService.userLogin(userLoginVO); return authService.authLogin(userLoginVO);
} }
} }

View File

@ -0,0 +1,27 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>config 数据表</h1>
* <hr/>
* 映射 oa_config 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ConfigDO {
private Long id;
private String value;
private String data;
private Timestamp createdAt;
private Timestamp updatedAt;
}

View File

@ -0,0 +1,28 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>permission 数据表</h1>
* <hr/>
* 映射 oa_permission 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PermissionDO {
private Long id;
private Long pid;
private String name;
private String code;
private Short type;
private Timestamp deletedAt;
}

View File

@ -0,0 +1,31 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>project_cutting 数据表</h1>
* <hr/>
* 映射 oa_project_cutting 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectCuttingDO {
private Long id;
private Long pid;
private String name;
private String tag;
private Short engineering;
private Integer estimatedTime;
private Integer realTime;
private Timestamp createdAt;
private Timestamp updatedAt;
}

View File

@ -0,0 +1,31 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* <h1>project 数据表</h1>
* <hr/>
* 映射 oa_project 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectDO {
private Long id;
private String name;
private String description;
private String introduction;
private Boolean codeOpen;
private String coreCode;
private String git;
private Short difficultyLevel;
private Integer type;
private Long reward;
private Short status;
}

View File

@ -0,0 +1,26 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>project_type 数据表</h1>
* <hr/>
* 映射 oa_project_type 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectTypeDO {
private Long id;
private String name;
private Timestamp createdAt;
private Timestamp updatedAt;
}

View File

@ -0,0 +1,27 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>project_user 数据表</h1>
* <hr/>
* 映射 oa_project_user 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectUserDO {
private Long id;
private Long pid;
private Long uid;
private Timestamp createdAt;
private Timestamp updatedAt;
}

View File

@ -0,0 +1,26 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>role 数据表</h1>
* <hr/>
* 映射 oa_role 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RoleDO {
private Long id;
private String roleName;
private Timestamp createdAt;
private Timestamp updatedAt;
}

View File

@ -0,0 +1,25 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>role 数据表</h1>
* <hr/>
* 映射 oa_role 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RolePermissionDO {
private Long rid;
private Long pid;
private Timestamp createdAt;
}

View File

@ -0,0 +1,26 @@
package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <h1>project_user 数据表</h1>
* <hr/>
* 映射 oa_project_user 数据表内容进入自定义实体类
*
* @author 筱锋xiao_lfeng
* @since v1.1.0
* @version v1.1.0
*/
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class RoleUserDO {
private Long uid;
private Long rid;
private Timestamp createdAt;
private Timestamp updatedAt;
}

View File

@ -1,35 +1,42 @@
package com.jsl.oa.model.doData; package com.jsl.oa.model.doData;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter; import lombok.Data;
import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.sql.Date; import java.sql.Timestamp;
/** /**
* <h1>users 数据表</h1> * <h1>user 数据表</h1>
* <hr/> * <hr/>
* 映射 users 数据表内容进入自定义实体类 * 映射 oa_user 数据表内容进入自定义实体类
* *
* @author 筱锋xiao_lfeng * @author 筱锋xiao_lfeng
* @version v1.1.0
* @since v1.0.0 * @since v1.0.0
* @version v1.0.0
*/ */
@Getter @Data
@Setter
@Accessors(chain = true) @Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class UserDO { public class UserDO {
private Integer id; private Long id;
private String userNum; private Long jobId;
private String username; private String username;
private String password; private String password;
private String sex; private String address;
private Date age; private String phone;
private String unit; private String email;
private String filed; private Short age;
private String hometown; private String signature;
private String kind; private String avatar;
private String state; private String nickname;
private Short sex;
private Boolean enabled;
private Boolean accountNoExpired;
private Boolean credentialsNoExpired;
private Boolean recommend;
private Boolean accountNoLocked;
private String description;
private Timestamp createdAt;
private Timestamp updatedAt;
} }

View File

@ -6,8 +6,7 @@ import com.jsl.oa.utils.BaseResponse;
import java.text.ParseException; import java.text.ParseException;
public interface UserService { public interface AuthService {
BaseResponse userRegister(UserRegisterVO userRegisterVO) throws ParseException; BaseResponse authRegister(UserRegisterVO userRegisterVO) throws ParseException;
BaseResponse authLogin(UserLoginVO userLoginVO);
BaseResponse userLogin(UserLoginVO userLoginVO);
} }

View File

@ -5,7 +5,7 @@ import com.jsl.oa.model.voData.UserLoginVO;
import com.jsl.oa.model.voData.UserRegisterVO; import com.jsl.oa.model.voData.UserRegisterVO;
import com.jsl.oa.exception.BusinessException; import com.jsl.oa.exception.BusinessException;
import com.jsl.oa.mapper.UserMapper; import com.jsl.oa.mapper.UserMapper;
import com.jsl.oa.services.UserService; import com.jsl.oa.services.AuthService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
import com.jsl.oa.utils.Processing; import com.jsl.oa.utils.Processing;
@ -20,7 +20,7 @@ import java.text.SimpleDateFormat;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class UserServiceImpl implements UserService { public class AuthServiceImpl implements AuthService {
private final UserMapper userMapper; private final UserMapper userMapper;
/** /**
@ -33,7 +33,7 @@ public class UserServiceImpl implements UserService {
* @throws ParseException 日期转换异常 * @throws ParseException 日期转换异常
*/ */
@Override @Override
public BaseResponse userRegister(UserRegisterVO userRegisterVO) throws ParseException { public BaseResponse authRegister(UserRegisterVO userRegisterVO) throws ParseException {
// 用户检查是否存在 // 用户检查是否存在
UserDO getUserByUsername = userMapper.getUserByUsername(userRegisterVO.getUsername()); UserDO getUserByUsername = userMapper.getUserByUsername(userRegisterVO.getUsername());
// 用户名已存在 // 用户名已存在
@ -50,7 +50,7 @@ public class UserServiceImpl implements UserService {
// 数据上传 // 数据上传
Date getDate = new Date(new SimpleDateFormat("yyyy-MM-dd").parse(userRegisterVO.getAge()).getTime()); Date getDate = new Date(new SimpleDateFormat("yyyy-MM-dd").parse(userRegisterVO.getAge()).getTime());
UserDO userDO = new UserDO(); UserDO userDO = new UserDO();
userDO.setUserNum(userNum) userDO.πsetUserNum(userNum)
.setUsername(userRegisterVO.getUsername()) .setUsername(userRegisterVO.getUsername())
.setPassword(BCrypt.hashpw(userRegisterVO.getPassword(), BCrypt.gensalt())) .setPassword(BCrypt.hashpw(userRegisterVO.getPassword(), BCrypt.gensalt()))
.setSex(userRegisterVO.getSex()) .setSex(userRegisterVO.getSex())
@ -70,7 +70,7 @@ public class UserServiceImpl implements UserService {
} }
@Override @Override
public BaseResponse userLogin(UserLoginVO userLoginVO) { public BaseResponse authLogin(UserLoginVO userLoginVO) {
String pwd = userLoginVO.getPassword(); String pwd = userLoginVO.getPassword();
String encodePwd = userMapper.loginPassword(userLoginVO); String encodePwd = userMapper.loginPassword(userLoginVO);
if (encodePwd == null) { if (encodePwd == null) {

View File

@ -4,6 +4,10 @@ spring:
username: organize_oa username: organize_oa
password: 123456 password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
redis:
database: 0
host: localhost
port: 6379
mybatis: mybatis:
configuration: configuration:
map-underscore-to-camel-case: true map-underscore-to-camel-case: true