From 89f8237e343d2b59dbf280c055751b69ee32f01d Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期四, 12 九月 2024 18:04:52 +0800
Subject: [PATCH] 1.日历功能
---
src/main/resources/mapper/calendar/CalendarMapper.xml | 18 ++++
src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java | 56 ++++++++++++++
src/main/java/com/mzl/flower/web/calendar/CalendarController.java | 35 ++++++++
src/main/java/com/mzl/flower/mapper/CalendarMapper.java | 16 ++++
src/main/java/com/mzl/flower/service/calendar/CalendarService.java | 17 ++++
src/main/java/com/mzl/flower/entity/CalendarDO.java | 61 +++++++++++++++
6 files changed, 203 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/mzl/flower/entity/CalendarDO.java b/src/main/java/com/mzl/flower/entity/CalendarDO.java
new file mode 100644
index 0000000..1f5d9f5
--- /dev/null
+++ b/src/main/java/com/mzl/flower/entity/CalendarDO.java
@@ -0,0 +1,61 @@
+package com.mzl.flower.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author @TaoJie
+ * @since 2024-09-12
+ */
+@Data
+@Accessors(chain = true)
+@TableName("t_calendar")
+public class CalendarDO {
+
+ private String id;
+
+
+ /**
+ * 日期
+ */
+ private LocalDateTime calDate;
+
+ /**
+ * 年
+ */
+ private String calYear;
+
+ /**
+ * 月
+ */
+ private String calMonth;
+
+ /**
+ * 日
+ */
+ private String calDay;
+
+ /**
+ * 周(一/二/三/四/五/六/日)
+ */
+ private String calWeek;
+
+ /**
+ * 无/休/班
+ */
+ private Integer type;
+
+
+ private LocalDateTime createTime;
+
+
+ private LocalDateTime updateTime;
+
+
+}
diff --git a/src/main/java/com/mzl/flower/mapper/CalendarMapper.java b/src/main/java/com/mzl/flower/mapper/CalendarMapper.java
new file mode 100644
index 0000000..194b5c5
--- /dev/null
+++ b/src/main/java/com/mzl/flower/mapper/CalendarMapper.java
@@ -0,0 +1,16 @@
+package com.mzl.flower.mapper;
+
+import com.mzl.flower.entity.CalendarDO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author @TaoJie
+ * @since 2024-09-12
+ */
+public interface CalendarMapper extends BaseMapper<CalendarDO> {
+
+}
diff --git a/src/main/java/com/mzl/flower/service/calendar/CalendarService.java b/src/main/java/com/mzl/flower/service/calendar/CalendarService.java
new file mode 100644
index 0000000..75e5df0
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/calendar/CalendarService.java
@@ -0,0 +1,17 @@
+package com.mzl.flower.service.calendar;
+
+import com.mzl.flower.entity.CalendarDO;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 服务类
+ * </p>
+ *
+ * @author @TaoJie
+ * @since 2024-09-12
+ */
+public interface CalendarService extends IService<CalendarDO> {
+
+ void generateCalendar(int i);
+}
diff --git a/src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java b/src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java
new file mode 100644
index 0000000..4dc143f
--- /dev/null
+++ b/src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java
@@ -0,0 +1,56 @@
+package com.mzl.flower.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mzl.flower.entity.CalendarDO;
+import com.mzl.flower.mapper.CalendarMapper;
+import com.mzl.flower.service.calendar.CalendarService;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author @TaoJie
+ * @since 2024-09-12
+ */
+@Service
+public class CalendarServiceImpl extends ServiceImpl<CalendarMapper, CalendarDO> implements CalendarService {
+
+ @Override
+ public void generateCalendar(int year) {
+ List<CalendarDO> CalendarDOList = new ArrayList<>();
+ LocalDateTime startDate = LocalDateTime.of(year, 1, 1, 0, 0);
+ LocalDateTime endDate = LocalDateTime.of(year, 12, 31, 23, 59);
+
+
+ //删除年的数据
+ QueryWrapper<CalendarDO> queryWrapper=new QueryWrapper();
+ queryWrapper.lambda().eq(CalendarDO::getCalYear,year);
+ baseMapper.delete(queryWrapper);
+
+ for (LocalDateTime date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
+ CalendarDO CalendarDO = new CalendarDO();
+ CalendarDO.setId(IdUtil.simpleUUID());
+ CalendarDO.setCalYear(String.valueOf(date.getYear()));
+ CalendarDO.setCalMonth(String.valueOf(date.getMonthValue()));
+ CalendarDO.setCalDay(String.valueOf(date.getDayOfMonth()));
+ CalendarDO.setCalDate(date);
+ CalendarDO.setCalWeek(String.valueOf(date.getDayOfWeek().getValue()));
+ CalendarDO.setType(0);
+ CalendarDO.setCreateTime(LocalDateTime.now());
+ CalendarDO.setUpdateTime(LocalDateTime.now());
+ CalendarDOList.add(CalendarDO);
+
+ // 重新生成年的数据
+ baseMapper.insert(CalendarDO);
+ }
+
+ }
+}
diff --git a/src/main/java/com/mzl/flower/web/calendar/CalendarController.java b/src/main/java/com/mzl/flower/web/calendar/CalendarController.java
new file mode 100644
index 0000000..b46463c
--- /dev/null
+++ b/src/main/java/com/mzl/flower/web/calendar/CalendarController.java
@@ -0,0 +1,35 @@
+package com.mzl.flower.web.calendar;
+
+
+import com.mzl.flower.service.calendar.CalendarService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+* @author @TaoJie
+* @since 2024-09-12
+*/
+@RestController
+@RequestMapping("/v2/calendar")
+@Api(value = "日历", tags = "日历")
+public class CalendarController {
+
+ @Autowired
+ CalendarService calendarService;
+
+ @ApiOperation(value = "日历生成", notes = "日历生成")
+ @GetMapping("/generate/fromTo/{startYear}/{endYear}")
+ public void generateFromTo(@PathVariable Integer startYear, @PathVariable Integer endYear) {
+ for(int i=startYear;i<=endYear;i++){
+ calendarService.generateCalendar(i);
+ }
+
+ }
+
+
+}
diff --git a/src/main/resources/mapper/calendar/CalendarMapper.xml b/src/main/resources/mapper/calendar/CalendarMapper.xml
new file mode 100644
index 0000000..723947b
--- /dev/null
+++ b/src/main/resources/mapper/calendar/CalendarMapper.xml
@@ -0,0 +1,18 @@
+<?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.mzl.flower.mapper.CalendarMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.mzl.flower.entity.CalendarDO">
+ <id column="id" property="id" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="cal_date" property="calDate" />
+ <result column="cal_year" property="calYear" />
+ <result column="cal_month" property="calMonth" />
+ <result column="cal_day" property="calDay" />
+ <result column="cal_week" property="calWeek" />
+ <result column="type" property="type" />
+ </resultMap>
+
+</mapper>
--
Gitblit v1.9.3