add: 周年纪念日
This commit is contained in:
@@ -34,6 +34,7 @@ create table habit_record
|
|||||||
id int unsigned auto_increment,
|
id int unsigned auto_increment,
|
||||||
create_time datetime null,
|
create_time datetime null,
|
||||||
update_time datetime null,
|
update_time datetime null,
|
||||||
|
name varchar(100) not null,
|
||||||
date date not null comment '重要的日期',
|
date date not null comment '重要的日期',
|
||||||
type enum ('anniversary', 'commemoration') default 'anniversary' not null
|
type enum ('anniversary', 'commemoration') default 'anniversary' not null
|
||||||
)
|
)
|
||||||
|
2
pom.xml
2
pom.xml
@@ -27,7 +27,7 @@
|
|||||||
<url/>
|
<url/>
|
||||||
</scm>
|
</scm>
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>21</java.version>
|
<java.version>17</java.version>
|
||||||
</properties>
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@@ -14,6 +14,15 @@ public class AnniversaryController {
|
|||||||
this.anniversaryService = anniversaryService;
|
this.anniversaryService = anniversaryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有周年日和纪念日
|
||||||
|
* 周年日:还有几天
|
||||||
|
*/
|
||||||
|
@GetMapping
|
||||||
|
public R get() {
|
||||||
|
return R.ok(anniversaryService.getAll());
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public R add(Anniversary anniversary) {
|
public R add(Anniversary anniversary) {
|
||||||
anniversaryService.save(anniversary);
|
anniversaryService.save(anniversary);
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
package com.dota.nexus.entity;
|
package com.dota.nexus.entity;
|
||||||
|
|
||||||
|
import com.dota.nexus.entity.vo.AnniversaryRecord;
|
||||||
|
import com.dota.nexus.entity.vo.AnniversaryVO;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@@ -8,7 +10,9 @@ import java.time.LocalDate;
|
|||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
public class Anniversary extends Entity{
|
public class Anniversary extends Entity{
|
||||||
|
private String name;
|
||||||
|
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
private type;
|
private AnniversaryEnum type;
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,4 @@
|
|||||||
|
package com.dota.nexus.entity.vo;
|
||||||
|
|
||||||
|
public record AnniversaryRecord(String name, String date, int distance) {
|
||||||
|
}
|
@@ -0,0 +1,6 @@
|
|||||||
|
package com.dota.nexus.entity.vo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public record AnniversaryVO (List<AnniversaryRecord> anniversaryList, List<AnniversaryRecord> commemorationList){
|
||||||
|
}
|
@@ -2,6 +2,8 @@ package com.dota.nexus.service;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.dota.nexus.entity.Anniversary;
|
import com.dota.nexus.entity.Anniversary;
|
||||||
|
import com.dota.nexus.entity.vo.AnniversaryVO;
|
||||||
|
|
||||||
public interface AnniversaryService extends IService<Anniversary> {
|
public interface AnniversaryService extends IService<Anniversary> {
|
||||||
|
AnniversaryVO getAll();
|
||||||
}
|
}
|
||||||
|
@@ -2,10 +2,45 @@ package com.dota.nexus.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.dota.nexus.entity.Anniversary;
|
import com.dota.nexus.entity.Anniversary;
|
||||||
|
import com.dota.nexus.entity.AnniversaryEnum;
|
||||||
|
import com.dota.nexus.entity.vo.AnniversaryRecord;
|
||||||
|
import com.dota.nexus.entity.vo.AnniversaryVO;
|
||||||
import com.dota.nexus.mapper.AnniversaryMapper;
|
import com.dota.nexus.mapper.AnniversaryMapper;
|
||||||
import com.dota.nexus.service.AnniversaryService;
|
import com.dota.nexus.service.AnniversaryService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class AnniversaryServiceImpl extends ServiceImpl<AnniversaryMapper, Anniversary> implements AnniversaryService {
|
public class AnniversaryServiceImpl extends ServiceImpl<AnniversaryMapper, Anniversary> implements AnniversaryService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public AnniversaryVO getAll() {
|
||||||
|
var aList = new ArrayList<AnniversaryRecord>();
|
||||||
|
var bList = new ArrayList<AnniversaryRecord>();
|
||||||
|
var res = new AnniversaryVO(aList, bList);
|
||||||
|
var anniversaries = this.baseMapper.selectList(null);
|
||||||
|
var now = LocalDate.now();
|
||||||
|
for (Anniversary anniversary : anniversaries) {
|
||||||
|
// 周年,变成今年或者明年
|
||||||
|
if (anniversary.getType() == AnniversaryEnum.ANNIVERSARY) {
|
||||||
|
LocalDate date = anniversary.getDate();
|
||||||
|
date = date.withYear(now.getYear());
|
||||||
|
if (date.isBefore(now)) {
|
||||||
|
date = date.withYear(now.getYear() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
aList.add(new AnniversaryRecord(anniversary.getName(), date.toString(), (int) ChronoUnit.DAYS.between(date, now)));
|
||||||
|
} else if (anniversary.getType() == AnniversaryEnum.COMMEMORATION) {
|
||||||
|
bList.add(new AnniversaryRecord(anniversary.getName(), anniversary.getDate().toString(), (int) ChronoUnit.DAYS.between(now, anniversary.getDate())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user