|
@@ -1,11 +1,13 @@
|
|
package com.citu.module.menduner.reward.service.signin;
|
|
package com.citu.module.menduner.reward.service.signin;
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.ObjUtil;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.citu.framework.common.enums.CommonStatusEnum;
|
|
import com.citu.framework.common.enums.CommonStatusEnum;
|
|
import com.citu.framework.common.pojo.PageParam;
|
|
import com.citu.framework.common.pojo.PageParam;
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
import com.citu.framework.common.util.date.DateUtils;
|
|
import com.citu.framework.common.util.date.DateUtils;
|
|
import com.citu.framework.common.util.object.ObjectUtils;
|
|
import com.citu.framework.common.util.object.ObjectUtils;
|
|
|
|
+import com.citu.module.menduner.reward.controller.app.sigin.record.AppSignInRecordSummaryRespVO;
|
|
import com.citu.module.menduner.reward.controller.base.signin.record.SignInRecordPageReqVO;
|
|
import com.citu.module.menduner.reward.controller.base.signin.record.SignInRecordPageReqVO;
|
|
import com.citu.module.menduner.reward.convert.SignInRecordConvert;
|
|
import com.citu.module.menduner.reward.convert.SignInRecordConvert;
|
|
import com.citu.module.menduner.reward.dal.dataobject.signin.SignInConfigDO;
|
|
import com.citu.module.menduner.reward.dal.dataobject.signin.SignInConfigDO;
|
|
@@ -93,4 +95,35 @@ public class SignInRecordServiceImpl implements SignInRecordService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public AppSignInRecordSummaryRespVO getSignInRecordSummary(Long userId) {
|
|
|
|
+ // 1. 初始化默认返回信息
|
|
|
|
+ AppSignInRecordSummaryRespVO summary = new AppSignInRecordSummaryRespVO();
|
|
|
|
+ summary.setTotalDay(0);
|
|
|
|
+ summary.setContinuousDay(0);
|
|
|
|
+ summary.setTodaySignIn(false);
|
|
|
|
+
|
|
|
|
+ // 2. 获取用户签到的记录数
|
|
|
|
+ Long signCount = signInRecordMapper.selectCountByUserId(userId);
|
|
|
|
+ if (ObjUtil.equal(signCount, 0L)) {
|
|
|
|
+ return summary;
|
|
|
|
+ }
|
|
|
|
+ // 设置总签到天数
|
|
|
|
+ summary.setTotalDay(signCount.intValue());
|
|
|
|
+
|
|
|
|
+ // 3. 校验当天是否有签到
|
|
|
|
+ SignInRecordDO lastRecord = signInRecordMapper.selectLastRecordByUserId(userId);
|
|
|
|
+ if (lastRecord == null) {
|
|
|
|
+ return summary;
|
|
|
|
+ }
|
|
|
|
+ summary.setTodaySignIn(DateUtils.isToday(lastRecord.getCreateTime()));
|
|
|
|
+
|
|
|
|
+ // 4.1 校验今天是否签到,没有签到则直接返回
|
|
|
|
+ if (!summary.getTodaySignIn()) {
|
|
|
|
+ return summary;
|
|
|
|
+ }
|
|
|
|
+ // 4.2 连续签到天数
|
|
|
|
+ summary.setContinuousDay(lastRecord.getDay());
|
|
|
|
+ return summary;
|
|
|
|
+ }
|
|
}
|
|
}
|