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