日常计划功能

This commit is contained in:
zhaoyz 2024-04-24 14:08:36 +08:00
parent f57b108027
commit 9bc94f1705
9 changed files with 217 additions and 18 deletions

View File

@ -112,6 +112,11 @@
<artifactId>vital-signs</artifactId>
<version>${common.version}</version>
</dependency>
<dependency>
<groupId>com.rax</groupId>
<artifactId>daily-plan</artifactId>
<version>${common.version}</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>

View File

@ -1,23 +1,47 @@
package com.rax.dailyplan.controller;
import com.rax.common.core.util.R;
import com.rax.common.log.annotation.SysLog;
import com.rax.dailyplan.dto.DailyPlanDTO;
import com.rax.dailyplan.service.DailyPlanService;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/dailyPlan")
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class DailyPlanController {
@Autowired
private DailyPlanService dailyPlanService;
@PostMapping("/addDailyPlan")
public R addDailyPlan(DailyPlanDTO dailyPlanDTO) {
return dailyPlanService.addDailyPlan(dailyPlanDTO);
@SysLog("添加更新日常计划")
@PostMapping("/saveOrUpdate")
public R saveOrUpdate(DailyPlanDTO dailyPlanDTO) {
return dailyPlanService.saveOrUpdate(dailyPlanDTO);
}
@PostMapping("/getListByDate")
public R getListByDate(String date) {
return dailyPlanService.getListByDate(date);
}
@SysLog("日常计划删除")
@PostMapping("/deleteById")
public R deleteById(String id) {
return dailyPlanService.deleteById(id);
}
@PostMapping("/getPlanDateList")
public R getPlanDateList(String startDate, String endDate) {
return dailyPlanService.getPlanDateList(startDate, endDate);
}
@PostMapping("/getTodoCountByDate")
public R getTodoCountByDate(String date) {
return dailyPlanService.getTodoCountByDate(date);
}
}

View File

@ -8,14 +8,17 @@ import lombok.Data;
@Schema(description = "日常计划")
public class DailyPlanDTO {
@Schema(description = "主键")
private String id;
@Schema(description = "标题")
private String title;
@Schema(description = "计划类型")
private String type;
@Schema(description = "计划状态,已处理1,未处理0")
private Boolean status;
@Schema(description = "计划状态,已处理,未处理")
private String status;
@Schema(description = "日期")
private String date;
@ -25,7 +28,4 @@ public class DailyPlanDTO {
@Schema(description = "内容")
private String content;
@Schema(description = "删除标记,1:已删除,0:正常")
private String delFlag;
}

View File

@ -5,15 +5,17 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
@Data
@Schema(description = "日常计划")
@TableName(value = "sys_daily_plan")
public class DailyPlan implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "id")
private Long id;
private String id;
@Schema(description = "标题")
private String title;
@ -21,8 +23,8 @@ public class DailyPlan implements Serializable {
@Schema(description = "计划类型")
private String type;
@Schema(description = "计划状态,已处理1,未处理0")
private Boolean status;
@Schema(description = "计划状态,已处理,未处理")
private String status;
@Schema(description = "日期")
private String date;
@ -44,4 +46,10 @@ public class DailyPlan implements Serializable {
@Schema(description = "删除标记,1:已删除,0:正常")
private String delFlag;
@Schema(description = "创建时间")
private String createTime;
@Schema(description = "更新时间")
private String updateTime;
}

View File

@ -1,9 +1,18 @@
package com.rax.dailyplan.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.rax.dailyplan.dto.DailyPlanDTO;
import com.rax.dailyplan.entity.DailyPlan;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DailyPlanMapper extends BaseMapper<DailyPlan> {
List<DailyPlanDTO> getListByDate(@Param("date") String date, @Param("username") String username);
List<String> getPlanDateList(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("username") String username);
String getTodoCountByDate(@Param("username") String username, @Param("date") String date);
}

View File

@ -8,9 +8,40 @@ import com.rax.dailyplan.entity.DailyPlan;
public interface DailyPlanService extends IService<DailyPlan> {
/**
* 添加日计划
*
* @param dailyPlanDTO
* @return
*/
R addDailyPlan(DailyPlanDTO dailyPlanDTO);
R saveOrUpdate(DailyPlanDTO dailyPlanDTO);
/**
* 获取某天的日计划
*
* @param date
* @return
*/
R getListByDate(String date);
/**
* 根据id删除日常计划
* @param id
* @return
*/
R deleteById(String id);
/**
* 根据开始和结束时间查询出该时间段内有任务的时间
* @param startDate
* @param endDate
* @return
*/
R getPlanDateList(String startDate, String endDate);
/**
*
* @param date
* @return
*/
R getTodoCountByDate(String date);
}

View File

@ -1,14 +1,21 @@
package com.rax.dailyplan.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rax.common.core.util.R;
import com.rax.common.security.service.RaxUser;
import com.rax.dailyplan.dto.DailyPlanDTO;
import com.rax.dailyplan.entity.DailyPlan;
import com.rax.dailyplan.mapper.DailyPlanMapper;
import com.rax.dailyplan.service.DailyPlanService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
@Service
public class DailyPlanServiceImpl extends ServiceImpl<DailyPlanMapper, DailyPlan> implements DailyPlanService {
@ -17,10 +24,56 @@ public class DailyPlanServiceImpl extends ServiceImpl<DailyPlanMapper, DailyPlan
private DailyPlanMapper dailyPlanMapper;
@Override
public R addDailyPlan(DailyPlanDTO dailyPlanDTO) {
public R saveOrUpdate(DailyPlanDTO dailyPlanDTO) {
RaxUser user = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
DailyPlan dailyPlan = new DailyPlan();
BeanUtils.copyProperties(dailyPlanDTO, dailyPlan);
boolean status = save(dailyPlan);
return R.ok(status);
boolean status = false;
if (StringUtils.hasText(dailyPlanDTO.getId())) {
dailyPlan.setUpdateTime(DateUtil.now());
dailyPlan.setCreator(user.getUsername());
status = updateById(dailyPlan);
} else {
dailyPlan.setCreator(user.getUsername());
dailyPlan.setCreateTime(DateUtil.now());
dailyPlan.setUpdateTime(DateUtil.now());
status = save(dailyPlan);
}
return status ? R.ok(status) : R.failed("保存失败");
}
@Override
public R getListByDate(String date) {
if (StringUtils.hasText(date)) {
RaxUser user = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
List<DailyPlanDTO> listByDate = dailyPlanMapper.getListByDate(date, user.getUsername());
return R.ok(listByDate);
} else {
return R.failed("请传入日期");
}
}
@Override
public R deleteById(String id) {
QueryWrapper<DailyPlan> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id", id);
RaxUser user = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
queryWrapper.eq("creator", user.getUsername());
boolean b = remove(queryWrapper);
return b ? R.ok(b) : R.failed("删除失败");
}
@Override
public R getPlanDateList(String startDate, String endDate) {
RaxUser user = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
List<String> planDateList = dailyPlanMapper.getPlanDateList(startDate, endDate, user.getUsername());
return R.ok(planDateList);
}
@Override
public R getTodoCountByDate(String date) {
RaxUser user = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String count = dailyPlanMapper.getTodoCountByDate(user.getUsername(), date);
return R.ok(count);
}
}

View File

@ -0,0 +1,65 @@
<?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.rax.dailyplan.mapper.DailyPlanMapper">
<sql id="dailyPlanPropertiesSQL">
id,
title,
type,
status,
date,
time,
content
</sql>
<sql id="dailyPlanSelectSQL">
FROM sys_daily_plan
WHERE del_flag = 0
and creator = #{username}
<if test="date != null and date != ''">
AND date = #{date}
</if>
</sql>
<select id="getListByDate" resultType="com.rax.dailyplan.dto.DailyPlanDTO">
SELECT
<include refid="dailyPlanPropertiesSQL"/>
<include refid="dailyPlanSelectSQL"/>
ORDER BY create_time DESC;
</select>
<select id="getPlanDateList" resultType="string">
select date from sys_daily_plan
where
del_flag = 0
and creator = #{username}
<if test="startDate != null and startDate != ''">
and date <![CDATA[ >= ]]> #{startDate}
</if>
<if test="endDate != null and endDate != ''">
and date <![CDATA[ <= ]]> #{endDate}
</if>
GROUP BY date
ORDER BY date asc;
</select>
<select id="getTodoCountByDate" resultType="string">
select count(*)
from sys_daily_plan
where del_flag = 0
<if test="username != null and username != ''">
and creator = #{username}
</if>
<if test="date != null and date != ''">
and date = #{date}
</if>
</select>
</mapper>

View File

@ -54,6 +54,10 @@
<groupId>com.rax</groupId>
<artifactId>vital-signs</artifactId>
</dependency>
<dependency>
<groupId>com.rax</groupId>
<artifactId>daily-plan</artifactId>
</dependency>
<!-- 接口文档UI -->
<dependency>
<groupId>org.springdoc</groupId>