...
 
Commits (3)
    https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/a68731c54371b6622335b897d3a7f2bc7023dce8 签到模块相关接口 2022-06-16T16:09:18+08:00 夏天。。 1107578936@qq.com https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/0ad8f29a616f9337bb23390f0d8b764ef4a1d7d9 Merge branch 'hoc-feature' 2022-06-16T17:11:05+08:00 夏天。。 1107578936@qq.com # Conflicts: # mobius-admin/src/main/java/com/mobius/modules/ums/service/UmsCheckService.java # mobius-admin/src/main/java/com/mobius/modules/ums/service/impl/UmsCheckServiceImpl.java https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/4ffa3097ece83d990bdc4e5728584e29bae8bfe6 签到模块相关接口 2022-06-16T17:12:51+08:00 夏天。。 1107578936@qq.com
......@@ -29,6 +29,16 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
</dependencies>
<build>
......
package com.mobius.config;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.UmsCheckService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @Author: hocztms
* @Description:
* @Date Created in 2022-06-16-14:35
* @Modified By:
*/
@Component
@Slf4j
public class DailyCheckPerHeatBean implements InitializingBean {
@Autowired
private UmsCheckService checkService;
@Override
public void afterPropertiesSet() throws Exception {
log.info("==============================================");
log.info("每日签到初始化");
UmsCheck check = checkService.getCheckByValidDate(new Date());
if (check!=null){
checkService.loadDailyCheck(check);
}
log.info("==============================================");
}
}
//package com.mobius.config;
//
//import cn.hutool.core.convert.Convert;
//import cn.hutool.core.convert.Converter;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.time.format.DateTimeFormatter;
//import java.util.Date;
//
///**
// * @Author: hocztms
// * @Description:
// * @Date Created in 2022-06-16-12:07
// * @Modified By:
// */
//@Configuration
//public class DateConverter implements Converter<String,Date>{
//
//
// @Override
// public String convert(Object o, String s) throws IllegalArgumentException {
// return null;
// }
//}
......@@ -2,16 +2,17 @@ package com.mobius.modules.ums.controller;
import com.mobius.common.api.CommonResult;
import com.mobius.common.api.ResultCode;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.UmsCheckService;
import com.mobius.modules.ums.vo.CheckVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* <p>
......@@ -37,4 +38,16 @@ public class UmsCheckController {
return checkService.createCheck(checkVo);
}
@GetMapping("/list")
public CommonResult getCheckList(@RequestParam(value = "date",defaultValue = "2022/5/22") Date date){
return checkService.checkListByMonth(date);
}
@GetMapping("/day")
public CommonResult getDailyCheck(){
UmsCheck dailyCheck = checkService.getDailyCheck();
return CommonResult.success(dailyCheck);
}
}
......@@ -7,7 +7,28 @@ import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.impl.UmsCheckServiceImpl;
import com.mobius.modules.ums.vo.CheckVo;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author Sqh
* @since 2022-06-13
*/
public interface UmsCheckService extends IService<UmsCheck> {
CommonResult checkListByMonth(Date date);
List<UmsCheck> getCheckListByMonth(Date date);
void loadDailyCheck(UmsCheck check);
UmsCheck getCheckByValidDate(Date date);
UmsCheck getDailyCheck();
CommonResult createCheck(CheckVo checkVo);
}
package com.mobius.modules.ums.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mobius.common.api.CommonResult;
import com.mobius.common.service.RedisService;
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.service.UmsCheckService;
import com.mobius.utils.DateUtils;
import com.mobius.modules.ums.vo.CheckVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Sqh
* @since 2022-06-13
*/
import java.util.Date;
@Service
public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> implements UmsCheckService {
@Autowired
private UmsCheckMapper checkMapper;
@Autowired
private RedisService redisService;
private final static String CHECK = "check$daily";
@Override
public CommonResult createCheck(CheckVo checkVo) {
......@@ -33,4 +51,40 @@ public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> i
int id = checkMapper.insert(check);
return CommonResult.success(id);
}
@Override
public CommonResult checkListByMonth(Date date) {
return CommonResult.success(getCheckListByMonth(date));
}
@Override
public void loadDailyCheck(UmsCheck 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));
return checkMapper.selectList(wrapper);
}
@Override
public UmsCheck getCheckByValidDate(Date date) {
QueryWrapper<UmsCheck> wrapper = new QueryWrapper<>();
wrapper.eq("valid_time",DateUtils.getZeroTime(date));
return checkMapper.selectOne(wrapper);
}
@Override
public UmsCheck getDailyCheck() {
UmsCheck check = (UmsCheck)redisService.get(CHECK);
if (check==null){
check = getCheckByValidDate(new Date());
loadDailyCheck(check);
}
return check;
}
}
package com.mobius.utils;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
public static Date getZeroTime(){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date zero = calendar.getTime();
return zero;
}
public static Date getZeroTime(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date zero = calendar.getTime();
return zero;
}
public static Date getTomoZeroTime(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) +1);
Date zero = calendar.getTime();
return zero;
}
public static Date getMonthStartedDate(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date zero = calendar.getTime();
return zero;
}
public static Date getNextMonthStartDate(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 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 org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import static org.junit.jupiter.api.Assertions.*;
/**
* @Author: hocztms
* @Description:
* @Date Created in 2022-06-16-14:43
* @Modified By:
*/
@SpringBootTest
class UmsCheckServiceTest {
@Autowired
private UmsCheckService checkService;
@Test
void getDailyCheck() {
UmsCheck dailyCheck = checkService.getDailyCheck();
System.out.println(dailyCheck.toString());
}
}
\ No newline at end of file
package com.mobius.utils;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.*;
/**
* @Author: hocztms
* @Description:
* @Date Created in 2022-06-16-14:20
* @Modified By:
*/
@SpringBootTest
class DateUtilsTest {
@Test
void getMonthStartedDate() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(DateUtils.getMonthStartedDate(new Date())));
}
@Test
void getNextMonthStartDate() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat.format(DateUtils.getNextMonthStartDate(new Date())));
}
}
\ No newline at end of file
package com.mobius.common.util;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
public static Date getZeroTime(){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date zero = calendar.getTime();
return zero;
}
public static Date getZeroTime(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date zero = calendar.getTime();
return zero;
}
public static Date getTomoZeroTime(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) +1);
Date zero = calendar.getTime();
return zero;
}
public static Date getMonthStartedDate(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date zero = calendar.getTime();
return zero;
}
public static Date getNextMonthStartDate(Date date){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH,0);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH)+1);
Date zero = calendar.getTime();
return zero;
}
}
package com.mobius.modules.ums.controller;
import com.mobius.common.api.CommonResult;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.UmsCheckService;
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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
@RestController
@RequestMapping("/check")
public class UmsCheckController {
@Autowired
private UmsCheckService checkService;
@GetMapping("/day")
@ApiOperation("获取当天签到")
public CommonResult getDailyCheck(){
UmsCheck dailyCheck = checkService.getDailyCheck();
return CommonResult.success(dailyCheck);
}
@ApiOperation("签到")
@GetMapping("")
public CommonResult userCheck(){
}
}
package com.mobius.modules.ums.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
@RestController
@RequestMapping("/ums/umsReward")
public class UmsRewardController {
}
package com.mobius.modules.ums.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mobius.modules.ums.model.UmsCheck;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
public interface UmsCheckMapper extends BaseMapper<UmsCheck> {
}
package com.mobius.modules.ums.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mobius.modules.ums.model.UmsReward;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
public interface UmsRewardMapper extends BaseMapper<UmsReward> {
}
package com.mobius.modules.ums.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ums_check")
@ApiModel(value="UmsCheck对象", description="")
public class UmsCheck implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "奖励类型:0->邮票 1->xx")
private String rewards;
@ApiModelProperty(value = "奖励描述")
private Date validTime;
@ApiModelProperty(value = "奖励项创建的时间")
private Date createTime;
@ApiModelProperty(value = "奖励项修改的时间")
private Date updateTime;
}
package com.mobius.modules.ums.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ums_reward")
@ApiModel(value="UmsReward对象", description="")
public class UmsReward implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer type;
private String description;
@ApiModelProperty(value = "奖励值")
private Integer value;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}
package com.mobius.modules.ums.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mobius.common.api.CommonResult;
import com.mobius.modules.ums.model.UmsCheck;
import java.util.Date;
/**
* <p>
* 服务类
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
public interface UmsCheckService extends IService<UmsCheck> {
CommonResult userCheck();
void loadDailyCheck(UmsCheck check);
UmsCheck getCheckByValidDate(Date date);
UmsCheck getDailyCheck();
}
package com.mobius.modules.ums.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mobius.modules.ums.model.UmsReward;
/**
* <p>
* 服务类
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
public interface UmsRewardService extends IService<UmsReward> {
}
package com.mobius.modules.ums.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mobius.common.api.CommonResult;
import com.mobius.common.service.RedisService;
import com.mobius.common.util.DateUtils;
import com.mobius.modules.ums.mapper.UmsCheckMapper;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.UmsCheckService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
@Service
public class UmsCheckServiceImpl extends ServiceImpl<UmsCheckMapper, UmsCheck> implements UmsCheckService {
private final static String CHECK = "check$daily";
@Autowired
private UmsCheckMapper checkMapper;
@Autowired
private RedisService redisService;
@Override
public CommonResult userCheck() {
return null;
}
@Override
public void loadDailyCheck(UmsCheck check) {
redisService.set(CHECK,check);
}
@Override
public UmsCheck getCheckByValidDate(Date date) {
QueryWrapper<UmsCheck> wrapper = new QueryWrapper<>();
wrapper.eq("valid_time",DateUtils.getZeroTime(date));
return checkMapper.selectOne(wrapper);
}
@Override
public UmsCheck getDailyCheck() {
UmsCheck check = (UmsCheck)redisService.get(CHECK);
if (check==null){
check = getCheckByValidDate(new Date());
loadDailyCheck(check);
}
return check;
}
}
package com.mobius.modules.ums.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mobius.modules.ums.mapper.UmsRewardMapper;
import com.mobius.modules.ums.model.UmsReward;
import com.mobius.modules.ums.service.UmsRewardService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author Sqh
* @since 2022-06-16
*/
@Service
public class UmsRewardServiceImpl extends ServiceImpl<UmsRewardMapper, UmsReward> implements UmsRewardService {
}