feat:新增日志模块日志添加接口
This commit is contained in:
parent
71bd92d18e
commit
121b87c683
|
@ -0,0 +1,60 @@
|
|||
package com.jsl.oa.controllers;
|
||||
|
||||
|
||||
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
||||
import com.jsl.oa.services.ProjectDailyService;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
import com.jsl.oa.utils.ErrorCode;
|
||||
import com.jsl.oa.utils.Processing;
|
||||
import com.jsl.oa.utils.ResultUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
|
||||
/**
|
||||
* 项目日报(ProjectDaily)表控制层
|
||||
*
|
||||
* @author zrx
|
||||
* @since 2024-04-18 11:40:52
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class ProjectDailyController {
|
||||
/**
|
||||
* 服务对象
|
||||
*/
|
||||
|
||||
private final ProjectDailyService projectDailyService;
|
||||
|
||||
/**
|
||||
* 新增日报
|
||||
*
|
||||
* @param projectDailyAddVO 日报添加实体
|
||||
* @return 新增结果
|
||||
*/
|
||||
@PostMapping("/daily/add")
|
||||
public BaseResponse add(@RequestBody @Validated ProjectDailyAddVO projectDailyAddVO,
|
||||
@NotNull BindingResult bindingResult,
|
||||
HttpServletRequest request) {
|
||||
// 判断是否有参数错误
|
||||
if (bindingResult.hasErrors()) {
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
|
||||
return projectDailyService.addDaily(projectDailyAddVO, request);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
38
src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java
Normal file
38
src/main/java/com/jsl/oa/dao/ProjectDailyDAO.java
Normal file
|
@ -0,0 +1,38 @@
|
|||
package com.jsl.oa.dao;
|
||||
/*
|
||||
张睿相 Java
|
||||
*/
|
||||
|
||||
import com.jsl.oa.mapper.ProjectDailyMapper;
|
||||
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* ProjectDailyDAO
|
||||
* <hr/>
|
||||
* 用于处理日报相关的请求, 包括获取日报、添加日报信息、编辑日报信息等
|
||||
*
|
||||
* @author zrx_hhh
|
||||
* @version v1.0.0
|
||||
* @since v1.0.0-SNAPSHOT
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class ProjectDailyDAO {
|
||||
|
||||
private final ProjectDailyMapper projectDailyMapper;
|
||||
|
||||
|
||||
public void addProjectDaily(ProjectDailyDO projectDailyDO) {
|
||||
projectDailyMapper.insert(projectDailyDO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
22
src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java
Normal file
22
src/main/java/com/jsl/oa/mapper/ProjectDailyMapper.java
Normal file
|
@ -0,0 +1,22 @@
|
|||
package com.jsl.oa.mapper;
|
||||
|
||||
|
||||
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
/**
|
||||
* 项目日报(ProjectDaily)表数据库访问层
|
||||
*
|
||||
* @author zrx
|
||||
* @since 2024-04-18 11:40:56
|
||||
*/
|
||||
@Mapper
|
||||
public interface ProjectDailyMapper {
|
||||
|
||||
|
||||
void insert(ProjectDailyDO projectDailyDO);
|
||||
}
|
||||
|
||||
|
||||
|
55
src/main/java/com/jsl/oa/model/dodata/ProjectDailyDO.java
Normal file
55
src/main/java/com/jsl/oa/model/dodata/ProjectDailyDO.java
Normal file
|
@ -0,0 +1,55 @@
|
|||
package com.jsl.oa.model.dodata;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 项目日报(ProjectDaily)实体类
|
||||
*
|
||||
* @author zrx
|
||||
* @since 2024-04-18 11:40:56
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ProjectDailyDO {
|
||||
|
||||
/**
|
||||
* 日报主键 自增
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 项目id
|
||||
*/
|
||||
private Long projectId;
|
||||
/**
|
||||
* 日报内容
|
||||
*/
|
||||
private String content;
|
||||
/**
|
||||
* 日志发布时间
|
||||
*/
|
||||
private Date dailyTime;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createdAt;
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private Date updatedAt;
|
||||
/**
|
||||
* 是否删除
|
||||
*/
|
||||
private Integer isDelete;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
21
src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java
Normal file
21
src/main/java/com/jsl/oa/model/vodata/ProjectDailyAddVO.java
Normal file
|
@ -0,0 +1,21 @@
|
|||
package com.jsl.oa.model.vodata;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
|
||||
@Data
|
||||
public class ProjectDailyAddVO {
|
||||
|
||||
@NotNull(message = "项目id不能为空")
|
||||
private Long projectId;
|
||||
|
||||
@NotBlank(message = "日报内容不能为空")
|
||||
private String content;
|
||||
|
||||
}
|
||||
|
||||
|
16
src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java
Normal file
16
src/main/java/com/jsl/oa/model/vodata/ProjectDailyVO.java
Normal file
|
@ -0,0 +1,16 @@
|
|||
package com.jsl.oa.model.vodata;
|
||||
/*
|
||||
张睿相 Java
|
||||
*/
|
||||
|
||||
/**
|
||||
* 总体描述
|
||||
* <p>创建时间:2024/4/18 13:50</p>
|
||||
*
|
||||
* @author 张睿相
|
||||
* @since v1.0
|
||||
*/
|
||||
public class ProjectDailyVO {
|
||||
}
|
||||
|
||||
|
25
src/main/java/com/jsl/oa/services/ProjectDailyService.java
Normal file
25
src/main/java/com/jsl/oa/services/ProjectDailyService.java
Normal file
|
@ -0,0 +1,25 @@
|
|||
package com.jsl.oa.services;
|
||||
|
||||
|
||||
|
||||
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 项目日报(ProjectDaily)表服务接口
|
||||
*
|
||||
* @author zrx
|
||||
* @since 2024-04-18 11:40:53
|
||||
*/
|
||||
public interface ProjectDailyService {
|
||||
|
||||
|
||||
BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
package com.jsl.oa.services.impl;
|
||||
/*
|
||||
张睿相 Java
|
||||
*/
|
||||
|
||||
import com.jsl.oa.dao.ProjectDAO;
|
||||
import com.jsl.oa.dao.ProjectDailyDAO;
|
||||
import com.jsl.oa.exception.BusinessException;
|
||||
import com.jsl.oa.model.dodata.ProjectDailyDO;
|
||||
import com.jsl.oa.model.vodata.ProjectDailyAddVO;
|
||||
import com.jsl.oa.services.ProjectDailyService;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
import com.jsl.oa.utils.ErrorCode;
|
||||
import com.jsl.oa.utils.Processing;
|
||||
import com.jsl.oa.utils.ResultUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <h1>日志服务层实现类</h1>
|
||||
* <hr/>
|
||||
* 用于日志服务层的实现类
|
||||
*
|
||||
* @author xiao_lfeng | 176yunxuan | xiangZr-hhh
|
||||
* @version v1.1.0
|
||||
* @see com.jsl.oa.services.ProjectService
|
||||
* @since v1.1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class ProjectDailyServiceImpl implements ProjectDailyService {
|
||||
|
||||
private final ProjectDAO projectDAO;
|
||||
|
||||
private final ProjectDailyDAO projectDailyDAO;
|
||||
|
||||
|
||||
@Override
|
||||
public BaseResponse addDaily(ProjectDailyAddVO projectDailyAddVO, HttpServletRequest request) {
|
||||
|
||||
// 获取用户id
|
||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||
// 从请求体中获取项目id
|
||||
Long projectId = projectDailyAddVO.getProjectId();
|
||||
// 检查项目是否存在
|
||||
if (!projectDAO.isExistProjectById(projectId)) {
|
||||
throw new BusinessException(ErrorCode.PROJECT_NOT_EXIST);
|
||||
}
|
||||
|
||||
// 赋值数据库表实体类相关属性
|
||||
ProjectDailyDO projectDailyDO = new ProjectDailyDO();
|
||||
Processing.copyProperties(projectDailyAddVO, projectDailyDO);
|
||||
projectDailyDO.setUserId(userId)
|
||||
.setDailyTime(new Date());
|
||||
|
||||
// 向数据库添加数据
|
||||
projectDailyDAO.addProjectDaily(projectDailyDO);
|
||||
|
||||
return ResultUtil.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
28
src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml
Normal file
28
src/main/resources/com/jsl/oa/mapper/ProjectDailyMapper.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.jsl.oa.mapper.ProjectDailyMapper">
|
||||
|
||||
<!-- 插入方法的 SQL 语句 -->
|
||||
<insert id="insert" parameterType="com.jsl.oa.model.dodata.ProjectDailyDO">
|
||||
insert into oa_project_daily
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
<if test="content != null">content,</if>
|
||||
<if test="dailyTime != null">daily_time,</if>
|
||||
created_at
|
||||
</trim>
|
||||
values
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
<if test="content != null">#{content},</if>
|
||||
<if test="dailyTime != null">#{dailyTime},</if>
|
||||
NOW()
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user