陶杰
2024-09-12 89f8237e343d2b59dbf280c055751b69ee32f01d
1.日历功能

(cherry picked from commit 63fa227fb49717950af56fcbc6b0e1156a09e0ed)
已添加6个文件
203 ■■■■■ 文件已修改
src/main/java/com/mzl/flower/entity/CalendarDO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/mapper/CalendarMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/calendar/CalendarService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/service/impl/CalendarServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mzl/flower/web/calendar/CalendarController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/calendar/CalendarMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
}
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> {
}
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);
}
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);
        }
    }
}
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);
        }
    }
}
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>