Commit 7d1fbc74 authored by shiyu's avatar shiyu

签到测试数据插入接口

parent 88a8cf28
......@@ -36,4 +36,6 @@ public interface UserSignInDao {
boolean update(UserSignIn userSignin);
boolean updateByPrimaryKey(UserSignIn userSignin);
boolean deleteTodayRecord(long userId);
}
......@@ -97,4 +97,16 @@ public class UserSignInDaoImpl implements UserSignInDao {
public boolean updateByPrimaryKey(UserSignIn userSignin) {
return userSignInMapper.updateByPrimaryKeySelective(userSignin) > 0;
}
@Override
public boolean deleteTodayRecord(long userId) {
LocalDate today = LocalDate.now();
String todayString = DateUtils.DATE.format(today);
UserSignInExample example = new UserSignInExample();
UserSignInExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId);
criteria.andSignInDateEqualTo(todayString);
return userSignInMapper.deleteByExample(example) > 0;
}
}
package com.wwdz.ch.wx.impl;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.DistributionEnum;
import com.wwdz.ch.core.consts.SigninEnum;
......@@ -24,7 +23,6 @@ import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.utils.EntityMapper;
import com.xxdxxs.utils.JsonUtils;
import com.xxdxxs.utils.StringUtils;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -45,7 +43,7 @@ public class UserSigninServiceImpl implements UserSigninService {
private static final Logger logger = LoggerFactory.getLogger(UserSigninServiceImpl.class);
@Autowired
UserSignInDao userSigninDao;
UserSignInDao userSignInDao;
@Autowired
SupplierItemDao supplierItemDao;
......@@ -68,11 +66,11 @@ public class UserSigninServiceImpl implements UserSigninService {
long userId = dto.getUserId();
//检查是否已签到过
String todayStr = DateUtils.DATE.format(LocalDate.now());
if (userSigninDao.isExisted(userId, todayStr)) {
if (userSignInDao.isExisted(userId, todayStr)) {
return Result.failed("您今天已签到过");
}
//今天尚未签到,则进行记录,先查询昨天的打卡记录,有则再连续打卡天数上+1,没有则算签到第一天
UserSignIn yesterdaySignin = userSigninDao.findYesterdayRecord(userId);
UserSignIn yesterdaySignin = userSignInDao.findYesterdayRecord(userId);
if (yesterdaySignin == null) {
UserSignIn userSignin = new UserSignIn();
userSignin.setUserId(userId);
......@@ -83,7 +81,7 @@ public class UserSigninServiceImpl implements UserSigninService {
userSignin.setIsGet(false);
userSignin.setIsReward(false);
userSignin.setRewardLevel(SigninEnum.LevelEnum.ZERO.getCode());
userSigninDao.insert(userSignin);
userSignInDao.insert(userSignin);
} else {
UserSignIn userSignin = new UserSignIn();
userSignin.setUserId(userId);
......@@ -115,7 +113,7 @@ public class UserSigninServiceImpl implements UserSigninService {
break;
}
userSignin.setIsGet(false);
userSigninDao.insert(userSignin);
userSignInDao.insert(userSignin);
}
Result getShareInfoResult = getShareInfo(dto);
if (getShareInfoResult.getSuccess()) {
......@@ -134,7 +132,7 @@ public class UserSigninServiceImpl implements UserSigninService {
public Result getReward(UserSignInRequestDto dto) {
try {
//查询签到记录
UserSignIn userSignin = userSigninDao.findRecord(dto.getUserId(), dto.getSignInDate());
UserSignIn userSignin = userSignInDao.findRecord(dto.getUserId(), dto.getSignInDate());
if (!userSignin.getIsReward()) {
return Result.failed("尚未完成连续签到的天数");
}
......@@ -145,7 +143,7 @@ public class UserSigninServiceImpl implements UserSigninService {
updateDto.setId(userSignin.getId());
updateDto.setIsGet(true);
updateDto.setUpdateTime(new Date());
userSigninDao.updateByPrimaryKey(updateDto);
userSignInDao.updateByPrimaryKey(updateDto);
//创建赠品订单
DistributionOrder distributionOrder = new DistributionOrder();
String distributionOrderId = IdUtils.getOrderNumber(CommConsts.DISTRIBUTION_ORDER_PREFIX);
......@@ -181,7 +179,7 @@ public class UserSigninServiceImpl implements UserSigninService {
long userId = dto.getUserId();
Map<String, Object> resultMap = new HashMap<>();
//查询今天的打卡记录
UserSignIn todayRecord = userSigninDao.findTodayRecord(userId);
UserSignIn todayRecord = userSignInDao.findTodayRecord(userId);
if (todayRecord != null) {
resultMap.put("todaySignIn", true);
} else {
......@@ -189,7 +187,7 @@ public class UserSigninServiceImpl implements UserSigninService {
}
//检查昨天是否打过卡
UserSignIn yesterdaySignIn = userSigninDao.findYesterdayRecord(userId);
UserSignIn yesterdaySignIn = userSignInDao.findYesterdayRecord(userId);
if (yesterdaySignIn == null) {
//连续签到天数
resultMap.put("consecutiveDays", 0);
......@@ -247,7 +245,7 @@ public class UserSigninServiceImpl implements UserSigninService {
Date endTime = DateTimeUtil.getDateWithMaxTime(dateList.get((dateList.size() - 1)));
dto.setStartQueryTime(startTime);
dto.setEndQueryTime(endTime);
List<UserSignIn> userSignInList = userSigninDao.findList(dto);
List<UserSignIn> userSignInList = userSignInDao.findList(dto);
List<String> signDateList = userSignInList.stream().map(UserSignIn::getSignInDate).collect(Collectors.toList());
Map<String, UserSignIn> signDateMap = userSignInList.stream().collect(Collectors.toMap(UserSignIn::getSignInDate, Function.identity(), (k1, k2) ->k1));
List<SignDateRecord> calendar = new ArrayList<>();
......
......@@ -2,10 +2,14 @@ package com.wwdz.ch.wx.web;
import com.alibaba.fastjson.JSON;
import com.wwdz.ch.core.consts.ResultCode;
import com.wwdz.ch.core.consts.SigninEnum;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.UserSignInDao;
import com.wwdz.ch.db.domain.UserSignIn;
import com.wwdz.ch.db.dto.request.UserSignInRequestDto;
import com.wwdz.ch.wx.service.UserSigninService;
import com.xxdxxs.service.FormHandler;
import com.xxdxxs.utils.DateUtils;
import com.xxdxxs.validation.Validator;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
......@@ -16,6 +20,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDate;
import java.util.Date;
@RestController
@RequestMapping("/wx/userSignIn")
public class UserSigninController {
......@@ -25,6 +32,9 @@ public class UserSigninController {
@Autowired
UserSigninService userSigninService;
@Autowired
UserSignInDao userSignInDao;
@ApiOperation(value = "用户签到")
@PostMapping("/signIn")
public Result signIn(@RequestBody UserSignInRequestDto dto) {
......@@ -81,4 +91,63 @@ public class UserSigninController {
}
return userSigninService.getShareInfo(dto);
}
@ApiOperation(value = "删除今天的签到记录,测试用")
@PostMapping("/deleteTodayRecord")
public Result deleteTodayRecord(@RequestBody UserSignInRequestDto dto) {
logger.info("【请求开始】删除今天的签到记录,测试用,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("userId", "用户id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR);
}
userSignInDao.deleteTodayRecord(dto.getUserId());
return Result.success();
}
@ApiOperation(value = "签到,测试用")
@PostMapping("/testSignIn")
public Result testSignIn(@RequestBody UserSignInRequestDto dto) {
logger.info("【请求开始】签到,测试用,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("userId", "用户id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR);
}
for (int i = dto.getConsecutiveDays() - 1; i > 0; i--) {
LocalDate startDate = LocalDate.now().minusDays(i);
String startDateStr = DateUtils.DATE.format(startDate);
UserSignIn userSignin = new UserSignIn();
userSignin.setUserId(dto.getUserId());
userSignin.setSignInDate(startDateStr);
userSignin.setCreateTime(new Date());
userSignin.setUpdateTime(new Date());
userSignin.setConsecutiveDays(dto.getConsecutiveDays() - i);
switch (userSignin.getConsecutiveDays()) {
case 7:
userSignin.setIsReward(true);
userSignin.setRewardLevel(SigninEnum.LevelEnum.FIRST.getCode());
break;
case 14:
userSignin.setIsReward(true);
userSignin.setRewardLevel(SigninEnum.LevelEnum.SECOND.getCode());
break;
case 21:
userSignin.setIsReward(true);
userSignin.setRewardLevel(SigninEnum.LevelEnum.THIRD.getCode());
break;
default:
userSignin.setIsReward(false);
userSignin.setRewardLevel(SigninEnum.LevelEnum.ZERO.getCode());
break;
}
userSignin.setIsGet(false);
userSignInDao.insert(userSignin);
}
return Result.success();
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment