提交 d11cff4c 编写于 作者: 夏天。。's avatar 夏天。。

签到模块相关接口

上级 017642aa
......@@ -28,7 +28,7 @@ public class DailyCheckPerHeatBean implements InitializingBean {
log.info("每日签到初始化");
UmsCheck check = checkService.getCheckByValidDate(new Date());
if (check!=null){
checkService.loadDailyCheck(check);
checkService.loadDailyCheck(checkService.getCheckDto(check));
}
log.info("==============================================");
}
......
......@@ -3,6 +3,7 @@ package com.mobius.modules.ums.controller;
import com.mobius.common.api.CommonResult;
import com.mobius.common.api.ResultCode;
import com.mobius.modules.ums.dto.CheckDto;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.UmsCheckService;
import com.mobius.modules.ums.vo.CheckVo;
......@@ -39,15 +40,23 @@ public class UmsCheckController {
}
@GetMapping("/list")
@ApiOperation(value = "获取该月签到列表")
public CommonResult getCheckList(@RequestParam(value = "date",defaultValue = "2022/5/22") Date date){
return checkService.checkListByMonth(date);
}
@GetMapping("/day")
@ApiOperation(value = "获取今日签到信息")
public CommonResult getDailyCheck(){
UmsCheck dailyCheck = checkService.getDailyCheck();
CheckDto dailyCheck = checkService.getDailyCheck();
return CommonResult.success(dailyCheck);
}
@PutMapping("")
@ApiOperation("修改签到类")
public CommonResult updateCheck(@Validated @RequestBody CheckVo checkVo){
return checkService.updateCheck(checkVo);
}
}
package com.mobius.modules.ums.dto;
import com.mobius.modules.ums.model.UmsReward;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* @Author: hocztms
* @Description:
* @Date Created in 2022-06-16-23:11
* @Modified By:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CheckDto {
private Integer id;
private Date validTime;
List<UmsReward> rewards;
}
......@@ -2,6 +2,7 @@ package com.mobius.modules.ums.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mobius.common.api.CommonResult;
import com.mobius.modules.ums.dto.CheckDto;
import com.mobius.modules.ums.model.UmsAdminRoleRelation;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.impl.UmsCheckServiceImpl;
......@@ -23,12 +24,17 @@ public interface UmsCheckService extends IService<UmsCheck> {
CommonResult checkListByMonth(Date date);
CommonResult updateCheck(CheckVo checkVo);
List<UmsCheck> getCheckListByMonth(Date date);
void loadDailyCheck(UmsCheck check);
void loadDailyCheck(CheckDto check);
UmsCheck getCheckByValidDate(Date date);
UmsCheck getDailyCheck();
CheckDto getDailyCheck();
CommonResult createCheck(CheckVo checkVo);
CheckDto getCheckDto(UmsCheck check);
}
......@@ -23,4 +23,6 @@ public interface UmsRewardService extends IService<UmsReward> {
CommonResult createReward(RewardVo rewardVo);
CommonResult deleteReward(Long id);
}
package com.mobius.modules.ums.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.JsonObject;
import com.mobius.common.api.CommonResult;
import com.mobius.common.api.ResultCode;
import com.mobius.common.service.RedisService;
import com.mobius.modules.ums.dto.CheckDto;
import com.mobius.modules.ums.mapper.UmsAdminMapper;
import com.mobius.modules.ums.mapper.UmsCheckMapper;
import com.mobius.modules.ums.model.UmsAdmin;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.model.UmsReward;
import com.mobius.modules.ums.service.UmsCheckService;
import com.mobius.modules.ums.service.UmsRewardService;
import com.mobius.utils.DateUtils;
import com.mobius.modules.ums.vo.CheckVo;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -28,6 +37,7 @@ import java.util.List;
import java.util.Date;
@Service
@Slf4j
public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> implements UmsCheckService {
@Autowired
......@@ -35,14 +45,21 @@ public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> i
@Autowired
private RedisService redisService;
@Autowired
private UmsRewardService rewardService;
private final static String CHECK = "check$daily";
@Override
public CommonResult createCheck(CheckVo checkVo) {
UmsCheck checkByValidDate = getCheckByValidDate(checkVo.getValidTime());
if (checkByValidDate!=null){
return CommonResult.failed("该天签到已经存在");
}
UmsCheck check = UmsCheck.builder()
.id(0)
//rewards从数据库中取?
.rewards(checkVo.getIdList())
.rewards(checkVo.getIdList().toString())
.validTime(checkVo.getValidTime())
.createTime(new Date())
.updateTime(new Date())
......@@ -58,15 +75,28 @@ public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> i
}
@Override
public void loadDailyCheck(UmsCheck check) {
public CommonResult updateCheck(CheckVo checkVo) {
UmsCheck checkByValidDate = getCheckByValidDate(checkVo.getValidTime());
if (checkByValidDate==null){
createCheck(checkVo);
}
checkByValidDate.setRewards(checkVo.getIdList().toString());
checkMapper.updateById(checkByValidDate);
return CommonResult.success(ResultCode.SUCCESS);
}
@Override
public void loadDailyCheck(CheckDto check) {
redisService.set(CHECK,check);
}
@Override
public List<UmsCheck> getCheckListByMonth(Date date) {
QueryWrapper<UmsCheck> wrapper = new QueryWrapper<>();
wrapper.ge("valid_time", DateUtils.getMonthStartedDate(date));
wrapper.le("valid_time",DateUtils.getNextMonthStartDate(date));
wrapper.gt("valid_time", DateUtils.getMonthStartedDate(date));
wrapper.lt("valid_time",DateUtils.getNextMonthStartDate(date));
return checkMapper.selectList(wrapper);
}
......@@ -75,16 +105,38 @@ public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> i
public UmsCheck getCheckByValidDate(Date date) {
QueryWrapper<UmsCheck> wrapper = new QueryWrapper<>();
wrapper.eq("valid_time",DateUtils.getZeroTime(date));
log.info(DateUtils.getZeroTime(date).toString());
return checkMapper.selectOne(wrapper);
}
@Override
public UmsCheck getDailyCheck() {
UmsCheck check = (UmsCheck)redisService.get(CHECK);
if (check==null){
check = getCheckByValidDate(new Date());
loadDailyCheck(check);
public CheckDto getDailyCheck() {
CheckDto checkDto = (CheckDto) redisService.get(CHECK);
if (checkDto==null){
UmsCheck check = getCheckByValidDate(new Date());
checkDto = getCheckDto(check);
loadDailyCheck(checkDto);
}
return checkDto;
}
@Override
public CheckDto getCheckDto(UmsCheck check) {
List<Integer> ids = JSONObject.parseArray(check.getRewards(),Integer.class);
List<UmsReward> rewards = new ArrayList<>();
for (Integer id:ids){
UmsReward byId = rewardService.getById(id);
if (byId!=null){
rewards.add(byId);
}
}
return check;
return new CheckDto(check.getId(),check.getValidTime(),rewards);
}
}
package com.mobius.modules.ums.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -23,12 +24,14 @@ import java.util.List;
@ApiModel(value = "签到信息类")
public class CheckVo {
@NotEmpty(message = "id序列不为空")
@ApiModelProperty("id序列")
private String idList;
private List<Integer> idList;
@NotNull(message = "合法时间不为空")
@ApiModelProperty("合法时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date validTime;
}
......@@ -11,6 +11,7 @@ public class DateUtils {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
Date zero = calendar.getTime();
return zero;
}
......@@ -21,6 +22,7 @@ public class DateUtils {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
Date zero = calendar.getTime();
return zero;
}
......@@ -31,6 +33,7 @@ public class DateUtils {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) +1);
Date zero = calendar.getTime();
return zero;
......@@ -43,6 +46,7 @@ public class DateUtils {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
Date zero = calendar.getTime();
return zero;
}
......@@ -54,6 +58,7 @@ public class DateUtils {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND,0);
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH)+1);
Date zero = calendar.getTime();
return zero;
......
package com.mobius.modules.ums.service;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.utils.DateUtils;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.*;
/**
......@@ -20,7 +23,7 @@ class UmsCheckServiceTest {
private UmsCheckService checkService;
@Test
void getDailyCheck() {
UmsCheck dailyCheck = checkService.getDailyCheck();
UmsCheck dailyCheck = checkService.getCheckByValidDate(DateUtils.getZeroTime(new Date()));
System.out.println(dailyCheck.toString());
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册