From 63fa227fb49717950af56fcbc6b0e1156a09e0ed Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期四, 12 九月 2024 17:28:26 +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