mirror of
https://gitee.com/republicline/rax-remote-v2.git
synced 2025-08-24 03:34:57 +08:00
日常计划功能
This commit is contained in:
parent
f57b108027
commit
9bc94f1705
|
@ -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>
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue
Block a user