Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
张松 2024-12-27 14:18:44 +08:00
commit a58f429783
1 changed files with 33 additions and 1 deletions

View File

@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.exception.SqxException;
import com.sqx.modules.app.dao.UserDao;
import com.sqx.modules.app.dao.UserMoneyDetailsDao;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.common.dao.CommonInfoDao;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.userSign.dao.UserSignRecordDao;
@ -36,6 +38,9 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
@Autowired
private UserDao userDao;
@Autowired
private UserMoneyDetailsDao userMoneyDetailsDao;
@Override
public UserSignDTO getUserSignData(long userId) {
UserEntity currentUser = userDao.selectById(userId);
@ -45,6 +50,7 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
dto.setMobile(currentUser.getPhone());
dto.setSignDays(0);
dto.setEnable(1);
dto.setIsReceived(0);
CommonInfo config = commonInfoDao.findOne(918);
if (config == null) {
throw new SqxException("签到活动配置不存在");
@ -81,6 +87,8 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
//LocalDate endDay = LocalDate.parse(list.get(list.size() - 1).getSignDay(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).plusDays(activeDays);
LocalDate endDay = LocalDate.now().plusDays(activeDays - 1);
flowDays = buildFlowDays(beginSignDay, endDay);
// 需要移除的记录
List<UserSignRecordDTO> removeList = new ArrayList<>();
Map<String, Date> signMap = list.stream().collect(Collectors.toMap(UserSignRecord::getSignDay, UserSignRecord::getCreateTime));
for (String day : flowDays) {
Date date = signMap.get(day);
@ -112,10 +120,20 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
if (signDays == activeDays) {
break;
}
if (LocalDate.parse(record.getSignDay(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).isEqual(endDay.plusDays(0 - signDays))) {
if (LocalDate.parse(record.getSignDay(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).isEqual(endDay)) {
List<UserSignRecordDTO> tempList = CollUtil.reverseNew(recordList);
Long isInclude = tempList.stream().filter(item -> DateUtil.today().equals(item.getSignDay()) && "1".equals(item.getStatus())).collect(Collectors.counting());
int removeSize = signDays;
if (isInclude > 0){
removeSize = signDays - 1;
}
for (int i = 0; i < removeSize; i++) {
removeList.add(tempList.get(i));
}
break;
}
}
recordList.removeAll(removeList);
Collections.reverse(recordList);
recordList = recordList.stream().limit(activeDays).collect(Collectors.toList());
Collections.reverse(recordList);
@ -130,6 +148,20 @@ public class UserSignRecordServiceImpl extends ServiceImpl<UserSignRecordDao, Us
if (signDays >= activeDays) {
dto.setEnable(0);
}
int count = userMoneyDetailsDao.selectCount(
Wrappers.<UserMoneyDetails>lambdaQuery()
.eq(UserMoneyDetails::getUserId, userId)
.eq(UserMoneyDetails::getType, 1)
.eq(UserMoneyDetails::getClassify, 7)
.eq(UserMoneyDetails::getMoneyType, 1)
.likeLeft(UserMoneyDetails::getTitle, "[连续签到")
.likeRight(UserMoneyDetails::getTitle, "天]")
);
if (count > 0) {
dto.setIsReceived(1);
} else {
dto.setIsReceived(0);
}
return dto;
}