...
 
Commits (7)
    https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/9fbbdb8d32c65b98e84c1e084a291697d2c58306 v0.1.7 2022-06-09T20:47:15+08:00 Sqh 1020467770@qq.com 实现后台对邮票的增改查接口 https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/b54b020852eddc493da2dca757ef372f4e911330 v0.1.7 2022-06-13T18:45:06+08:00 Sqh 1020467770@qq.com 实现用户获取和更新信件投递时间接口 https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/88ef22023183b801b01dfe40f9e6ff81455de570 Merge remote-tracking branch 'origin/master' 2022-06-13T18:45:49+08:00 Sqh 1020467770@qq.com https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/116ec07e3d8e32a528bab3a95e5d4544afb62d72 Merge branch 'hoc-feature' 2022-06-13T22:31:28+08:00 夏天。。 1107578936@qq.com https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/11a62ba896272d7181c681fd5d5e97dc936258a6 爬虫爬数据 2022-06-14T17:15:06+08:00 W13 1324072907@qq.com https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/3ec67afcb12940970653ec5d2d8c26f0a4655ecf 奖励模块相关接口 2022-06-14T23:22:33+08:00 夏天。。 1107578936@qq.com https://gitcode.net/SoftwareEngineering2022ClassW/mobius/mobius-system/-/commit/a68731c54371b6622335b897d3a7f2bc7023dce8 签到模块相关接口 2022-06-16T16:09:18+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;
// }
//}
package com.mobius.modules.lms.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mobius.common.api.CommonPage;
import com.mobius.common.api.CommonResult;
import com.mobius.modules.lms.service.LmsStampSkinService;
import com.mobius.modules.lms.vo.SaveIncidentVO;
import com.mobius.modules.lms.vo.SaveStampSkinVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 前端控制器
* </p>
*
* @author Sqh
* @since 2022-06-09
*/
@RestController
@RequestMapping("/stampSkin")
public class LmsStampSkinController {
@Autowired
private LmsStampSkinService stampSkinService;
@ApiOperation(value = "根据皮肤名分页搜索邮票皮肤")
@GetMapping(value = "/list")
CommonResult list(
@RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize
) {
return CommonResult.success(CommonPage.restPage(stampSkinService.listByKeyword(keyword, pageNum, pageSize)));
}
@ApiOperation(value = "新增/修改皮肤")
@PostMapping(value = "/save")
CommonResult save(
@Validated @RequestBody SaveStampSkinVO saveStampSkinVO
) {
if (stampSkinService.saveStampSkinByParam(saveStampSkinVO)) {
return CommonResult.success("保存成功");
}
return CommonResult.failed("保存失败");
}
}
package com.mobius.modules.lms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mobius.modules.lms.model.LmsStampSkin;
/**
* <p>
* Mapper 接口
* </p>
*
* @author Sqh
* @since 2022-06-09
*/
public interface LmsStampSkinMapper extends BaseMapper<LmsStampSkin> {
}
package com.mobius.modules.lms.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.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author Sqh
* @since 2022-06-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("lms_stamp_skin")
@ApiModel(value="LmsStampSkin对象", description="")
public class LmsStampSkin implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "邮票名(可以理解为皮肤名)")
private String name;
@ApiModelProperty(value = "邮票描述(可以理解为对皮肤的描述)")
private String description;
@ApiModelProperty(value = "图片url")
private String url;
private Date createTime;
private Date updateTime;
}
......@@ -15,7 +15,7 @@ import com.mobius.modules.lms.vo.SaveIncidentVO;
public interface LmsIncidentService extends IService<LmsIncident> {
/**
* 获取所有的事件
* 根据参数新增或修改事件
*/
boolean saveIncidentByParam(SaveIncidentVO saveIncidentVO);
}
package com.mobius.modules.lms.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mobius.modules.lms.model.LmsStampSkin;
import com.mobius.modules.lms.vo.SaveStampSkinVO;
import io.swagger.models.auth.In;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author Sqh
* @since 2022-06-09
*/
public interface LmsStampSkinService extends IService<LmsStampSkin> {
/**
* 根据邮票皮肤名关键字分页查询邮票皮肤
* @param keyword
* @param pageNum
* @param pageSize
* @return
*/
Page<LmsStampSkin> listByKeyword(String keyword, Integer pageNum, Integer pageSize);
/**
* 根据参数新增或修改邮票皮肤
* @param saveStampSkinVO
* @return
*/
boolean saveStampSkinByParam(SaveStampSkinVO saveStampSkinVO);
}
package com.mobius.modules.lms.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mobius.modules.lms.mapper.LmsStampSkinMapper;
import com.mobius.modules.lms.model.LmsIncident;
import com.mobius.modules.lms.model.LmsStampSkin;
import com.mobius.modules.lms.service.LmsStampSkinService;
import com.mobius.modules.lms.vo.SaveStampSkinVO;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author Sqh
* @since 2022-06-09
*/
@Service
public class LmsStampSkinServiceImpl extends ServiceImpl<LmsStampSkinMapper, LmsStampSkin> implements LmsStampSkinService {
@Override
public Page<LmsStampSkin> listByKeyword(String keyword, Integer pageNum, Integer pageSize) {
final Page<LmsStampSkin> page = new Page<>(pageNum, pageSize);
final LambdaQueryWrapper<LmsStampSkin> lambda = new QueryWrapper<LmsStampSkin>().lambda();
if (StrUtil.isNotEmpty(keyword)) {
lambda.like(LmsStampSkin::getName, keyword);
}
return super.page(page, lambda);
}
@Override
public boolean saveStampSkinByParam(SaveStampSkinVO saveStampSkinVO) {
LmsStampSkin stampSkin = new LmsStampSkin();
BeanUtil.copyProperties(saveStampSkinVO, stampSkin);
return super.saveOrUpdate(stampSkin);
}
}
package com.mobius.modules.lms.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @author Sqh
* @date 2022/5/9
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel("新增/保存邮票皮肤视图类")
public class SaveStampSkinVO {
@ApiModelProperty(value = "邮票皮肤id,为空则是新增", example = "1")
@Range(min = 0, message = "传入id格式有误")
private Integer id;
@ApiModelProperty(value = "邮票名")
@NotEmpty(message = "事件名不可为空")
private String name;
@ApiModelProperty(value = "邮票皮肤url")
@NotEmpty(message = "邮票皮肤图片url不可为空")
private String url;
@ApiModelProperty(value = "邮票皮肤描述")
@NotEmpty(message = "描述内容不可为空")
private String description;
}
package com.mobius.modules.ums.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.mobius.common.api.CommonResult;
import com.mobius.common.api.ResultCode;
import com.mobius.modules.ums.service.UmsCheckService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* <p>
......@@ -13,8 +18,25 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2022-06-13
*/
@RestController
@RequestMapping("/ums/umsCheck")
@RequestMapping("/check")
public class UmsCheckController {
@Autowired
private UmsCheckService checkService;
@PostMapping("")
public CommonResult createCheckService(){
return checkService.createCheck();
}
// @GetMapping("/{id}")
//
// @DeleteMapping("/{id}")
@GetMapping("/list")
public CommonResult getCheckList(@RequestParam(value = "date",defaultValue = "2022/5/22") Date date){
return checkService.checkListByMonth(date);
}
}
......@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*;
* 前端控制器
* </p>
*
* @author Sqh
* @author hoc
* @since 2022-06-13
*/
@RestController
......
......@@ -30,7 +30,7 @@ public class UmsCheck implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "奖励类型:0->邮票 1->xx")
@ApiModelProperty(value = "奖励id列表")
private String rewards;
@ApiModelProperty(value = "奖励描述")
......
......@@ -71,5 +71,8 @@ public class UmsUser implements Serializable {
@ApiModelProperty(value = "邮票数量")
private String stampCount;
@ApiModelProperty(value = "每日收到信件投递的时间,格式为hh:mm:ss")
private String receiveLetterTime;
}
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;
import java.util.List;
/**
* <p>
* 服务类
......@@ -13,4 +17,17 @@ import com.mobius.modules.ums.model.UmsCheck;
*/
public interface UmsCheckService extends IService<UmsCheck> {
CommonResult createCheck();
CommonResult checkListByMonth(Date date);
List<UmsCheck> getCheckListByMonth(Date date);
void loadDailyCheck(UmsCheck check);
UmsCheck getCheckByValidDate(Date date);
UmsCheck getDailyCheck();
}
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.UmsCheckMapper;
import com.mobius.modules.ums.model.UmsCheck;
import com.mobius.modules.ums.service.UmsCheckService;
import com.mobius.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务实现类
......@@ -17,4 +25,53 @@ import org.springframework.stereotype.Service;
@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() {
return null;
}
@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.modules.ums.service.impl;
//
//import static org.junit.jupiter.api.Assertions.*;
//
///**
// * @Author: hocztms
// * @Description:
// * @Date Created in 2022-06-14-23:17
// * @Modified By:
// */
//class UmsCheckServiceImplTest {
//
// @org.junit.jupiter.api.Test
// void createCheck() {
// }
//}
\ No newline at end of file
package com.mobius.modules.ums.vo;
/**
* @Author: hocztms
* @Description:
* @Date Created in 2022-06-14-23:07
* @Modified By:
*/
public class CheckVo {
}
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;
}
}
......@@ -68,5 +68,6 @@ secure:
- /admin/logout
- /error
- /reward/**
- /check/**
<?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.mobius.modules.lms.mapper.LmsStampSkinMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.mobius.modules.lms.model.LmsStampSkin">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="description" property="description" />
<result column="url" property="url" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
</resultMap>
</mapper>
......@@ -17,6 +17,7 @@
<result column="login_time" property="loginTime" />
<result column="icon" property="icon" />
<result column="stamp_count" property="stampCount" />
<result column="receive_letter_time" property="receiveLetterTime" />
</resultMap>
</mapper>
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.modules.ums.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author Sqh
* @date 2022/6/13
*/
@SpringBootTest
class UmsUserServiceTest {
@Autowired
private UmsUserService userService;
@Test
public void test(){
System.out.println(userService.list());
}
}
\ 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;
}
}
import requests
from tqdm import tqdm
import pandas as pd
url = "https://api-ouch.icons8.com/api/frontend/v1/illustrations?page={}&per_page=100&style_pretty_ids=kingdom"
# req = requests.get(url.format('1'))
# print(len(req.json()['illustrations']))
# print(req.json()['illustrations'][0]['thumb1x']['url'])
img_url = []
t = 1
for i in tqdm(range(13)):
url_1 = url.format(t)
t = t + 1
# print(url_1, t)
req = requests.get(url_1)
img = []
for i in range(100):
# print(req.json()['illustrations'][i]['thumb1x']['url'])
img_url.append(req.json()['illustrations'][i]['thumb1x']['url'])
# print(req.json()['illustrations'][i]['thumb1x']['url'])
# print(len(img_url))
# print(img)
# print(img_url)
floder = "E:\GAN\stamp"
i = 0
img_url = pd.unique(img_url).tolist()
for u in tqdm(img_url):
img = requests.get(u)
# print(img)
file_name = floder + "\\" + str(i) + ".png"
i = i + 1
with open(file_name, 'wb') as f:
f.write(img.content)
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 {
}
......@@ -14,6 +14,8 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import javax.validation.constraints.Pattern;
/**
* <p>
......@@ -93,6 +95,14 @@ public class UmsUserController {
return userService.userRePassword(rePasswordVo);
}
@ApiOperation(value = "用户更新每日信件的投递时间,格式为hh:mm:ss 8个字符")
@PutMapping("/{newReceivedTime}")
public CommonResult updateLetterReceivedTime(@PathVariable String newReceivedTime){
if (userInfoService.setLetterReceivedTime(newReceivedTime)) {
return CommonResult.success("修改成功");
}
return CommonResult.failed("修改失败");
}
}
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;
}
......@@ -72,4 +72,7 @@ public class UmsUser implements Serializable {
@ApiModelProperty(value = "邮票数量")
private String stampCount;
@ApiModelProperty(value = "每日收到信件投递的时间,格式为hh:mm:ss")
private String receiveLetterTime;
}
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> {
}
......@@ -36,7 +36,7 @@ public interface UmsUserService extends IService<UmsUser> {
void updateLoginTimeByPhone(String phone);
void updateUserById(UmsUser user);
boolean updateUserById(UmsUser user);
/**
* 获取当前登录用户
......
......@@ -13,4 +13,10 @@ public interface UserInfoService {
CommonResult setUserNickName(String nickName);
CommonResult getUserInfo();
/**
* 设置新的信件投递时间
* @param newReceivedTime
*/
boolean setLetterReceivedTime(String newReceivedTime);
}
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 {
}
......@@ -54,7 +54,7 @@ public class UmsUserServiceImpl extends ServiceImpl<UmsUserMapper, UmsUser> impl
/**
* 执行一些成功登录后的通用逻辑
*/
private void loginSuccessLogic(String phoneNumber){
private void loginSuccessLogic(String phoneNumber) {
uvService.saveLoginUV(phoneNumber);
updateLoginTimeByPhone(phoneNumber);
}
......@@ -129,18 +129,17 @@ public class UmsUserServiceImpl extends ServiceImpl<UmsUserMapper, UmsUser> impl
//todo: insertLoginLog(username); 插入管理员登录的记录
final String token = jwtTokenUtil.generateUserNameStr(phone);
Map<String, String> tokenMap = new HashMap<>();
tokenMap.put("token", token);
tokenMap.put("tokenHead",jwtTokenUtil.getTokenHead());
tokenMap.put("tokenHeader",jwtTokenUtil.getTokenHeader());
tokenMap.put("tokenHead", jwtTokenUtil.getTokenHead());
tokenMap.put("tokenHeader", jwtTokenUtil.getTokenHeader());
// jwt
return CommonResult.success(tokenMap);
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return CommonResult.failed(ResultCode.UNKNOWN);
}
......@@ -203,7 +202,7 @@ public class UmsUserServiceImpl extends ServiceImpl<UmsUserMapper, UmsUser> impl
//todo: insertLoginLog(username); 插入管理员登录的记录
return CommonResult.success(ResultCode.SUCCESS);
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return CommonResult.failed(ResultCode.UNKNOWN);
}
......@@ -246,9 +245,13 @@ public class UmsUserServiceImpl extends ServiceImpl<UmsUserMapper, UmsUser> impl
}
@Override
public void updateUserById(UmsUser user) {
public boolean updateUserById(UmsUser user) {
user.setUpdateTime(new Date());
userMapper.updateById(user);
final int rst = userMapper.updateById(user);
if (rst > 0) {
return true;
}
return false;
}
@Override
......
......@@ -91,7 +91,7 @@ public class UmsWxUserServiceImpl implements UmsWxUserService {
try {
UmsUser user = userService.getUserByPhone(bindPhoneVo.getPhone());
if (user == null) {
user = new UmsUser(0, bindPhoneVo.getPhone(), bindPhoneVo.getOpenId(), bindPhoneVo.getOpenId(), null, 0, 0, 1, new Date(), new Date(), new Date(), null, null);
user = new UmsUser(0, bindPhoneVo.getPhone(), bindPhoneVo.getOpenId(), bindPhoneVo.getOpenId(), null, 0, 0, 1, new Date(), new Date(), new Date(), null, null, null);
userService.save(user);
} else {
user.setPhone(bindPhoneVo.getPhone());
......
package com.mobius.modules.ums.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.mobius.common.api.CommonResult;
import com.mobius.common.api.ResultCode;
import com.mobius.common.exception.ApiException;
import com.mobius.domain.MyUserDetail;
import com.mobius.modules.ums.dto.UserDto;
import com.mobius.modules.ums.mapper.UmsUserMapper;
......@@ -13,6 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import java.util.regex.Pattern;
/**
* @Author: hocztms
* @Description:
......@@ -26,6 +30,8 @@ public class UserInfoServiceImpl implements UserInfoService {
@Autowired
private UmsUserMapper userMapper;
public static final Pattern timeRegex = Pattern.compile("^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$");
@Override
public CommonResult setUserNickName(String nickName) {
try {
......@@ -35,7 +41,7 @@ public class UserInfoServiceImpl implements UserInfoService {
user.setNickname(nickName);
userService.updateUserById(user);
return CommonResult.success(ResultCode.SUCCESS);
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return CommonResult.failed(ResultCode.UNKNOWN);
}
......@@ -48,9 +54,20 @@ public class UserInfoServiceImpl implements UserInfoService {
String phone = details.getPhone();
UserDto userDto = userMapper.selectUserByPhone(phone);
return CommonResult.success(userDto);
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return CommonResult.failed(ResultCode.UNKNOWN);
}
}
@Override
public boolean setLetterReceivedTime(String newReceivedTime) {
if (timeRegex.matcher(newReceivedTime).find()) {
final UmsUser currentUser = userService.getCurrentUser();
currentUser.setReceiveLetterTime(newReceivedTime);
return userService.updateUserById(currentUser);
}else {
throw new ApiException("日期格式有误");
}
}
}
......@@ -17,6 +17,7 @@
<result column="login_time" property="loginTime" />
<result column="icon" property="icon" />
<result column="stamp_count" property="stampCount" />
<result column="receive_letter_time" property="receiveLetterTime" />
</resultMap>
</mapper>
package com.mobius.modules.ums.service.impl;
import com.mobius.modules.lms.service.LmsVerifyLetterService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author Sqh
* @date 2022/6/13
*/
class UserInfoServiceImplTest {
public static final Pattern timeRegex= Pattern.compile("^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$");
@Test
void verifyLetterContent() {
String str = "25:15:00";
Matcher matcher = timeRegex.matcher(str);
System.out.println(matcher.find());
str = "23:15:00";
matcher = timeRegex.matcher(str);
System.out.println(matcher.find());
str = "00:15:00";
matcher = timeRegex.matcher(str);
System.out.println(matcher.find());
str = "02:15:00";
matcher = timeRegex.matcher(str);
System.out.println(matcher.find());
str = "2:15:00";
matcher = timeRegex.matcher(str);
System.out.println(matcher.find());
}
}
\ No newline at end of file