From 3ce374116c1413bafab784a9ec4dce9a64875c8d Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 08 Apr 2021 10:52:35 +0800 Subject: [PATCH] 20210407 签到接口 --- zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java | 63 +++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 8 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java index a9aa020..5149a5b 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java @@ -80,7 +80,7 @@ signBasicInfoVo.setActivitySignAwardSetVos(activitySignAwardSetVos); //今日是否已经参与 - ActivitySignRecord activitySignRecord = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,DateUtil.today()); + ActivitySignRecord activitySignRecord = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,new Date()); if(ObjectUtil.isNotEmpty(activitySignRecord)) { signBasicInfoVo.setJoinState(SignBasicInfoVo.JOINSTATE_SIGN); }else { @@ -112,6 +112,7 @@ * 今日是否已经参与 * 新增签到记录表 * 判断累计连续签到天数是否+1 + * 是否已领取 * 查询是否有签到奖品 * 日常奖励和自定义奖品 */ @@ -126,25 +127,28 @@ return AjaxResult.buildFailInstance("活动未开始"); } //今日是否已经参与 - ActivitySignRecord activitySignRecord = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,DateUtil.today()); + ActivitySignRecord activitySignRecord = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,new Date()); if (ObjectUtil.isNotEmpty(activitySignRecord)) { return AjaxResult.buildFailInstance("今日用户已经签到成功"); } //前一天是否签到 Date date = new Date(); DateTime offsetDay = DateUtil.offsetDay(date, -1); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - ActivitySignRecord activitySignRecordOld = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,sdf.format(offsetDay.getTime())); + ActivitySignRecord activitySignRecordOld = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,offsetDay); ActivitySignRecord activitySignRecordAdd = new ActivitySignRecord(); activitySignRecordAdd.setCompanyId(companyId); + activitySignRecordAdd.setCreateBy(user.getName()); + activitySignRecordAdd.setCreateTime(new Date()); + activitySignRecordAdd.setUpdateBy(user.getName()); + activitySignRecordAdd.setUpdateTime(new Date()); activitySignRecordAdd.setActivityId(actId); activitySignRecordAdd.setSignTime(date); activitySignRecordAdd.setUserId(userId); - Integer cumulativeDay = activitySignRecordOld.getCumulativeDay(); if(ObjectUtil.isEmpty(activitySignRecordOld)) { //新增签到记录表,累计连续签到天数是1 activitySignRecordAdd.setCumulativeDay(1); }else { + Integer cumulativeDay = activitySignRecordOld.getCumulativeDay(); //新增签到记录表,累计连续签到天数是否+1 activitySignRecordAdd.setCumulativeDay(cumulativeDay+1); } @@ -168,20 +172,39 @@ activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE); activitySignReceiveRecord.setActivityId(actId); activitySignReceiveRecord.setCompanyId(companyId); + activitySignReceiveRecord.setCreateBy(user.getName()); + activitySignReceiveRecord.setCreateTime(new Date()); + activitySignReceiveRecord.setUpdateBy(user.getName()); + activitySignReceiveRecord.setUpdateTime(new Date()); activitySignReceiveRecordDao.insert(activitySignReceiveRecord); signSuccessVo.setNormalAwardName(activitySignAwardSetNormal.getAwardName()); signSuccessVo.setNormalAwardImg(activitySignAwardSetNormal.getIntroduceImg()); } - + //获取当前累计天数 + int cumulativeDay = getCumulativeDay(actId, userId, date, 1); //自定义奖励 QueryWrapper<ActivitySignAwardSet> queryWrapperCumulativeDay = new QueryWrapper<>(); queryWrapperCumulativeDay.eq("award_rule",ActivitySignAwardSet.AWARDRULE_CUMULATIVEDAY); - queryWrapperCumulativeDay.eq("cumulative_day",activitySignRecordAdd.getCumulativeDay()); + queryWrapperCumulativeDay.eq("cumulative_day",cumulativeDay); queryWrapperCumulativeDay.eq("company_id",companyId); queryWrapperCumulativeDay.eq("activity_id",actId); ActivitySignAwardSet activitySignAwardSetCumulativeDay = activitySignAwardSetDao.selectOne(queryWrapperCumulativeDay); if(ObjectUtil.isNotEmpty(activitySignAwardSetCumulativeDay)) { + //是否已领取 + Long id = activitySignAwardSetCumulativeDay.getId(); + QueryWrapper<ActivitySignReceiveRecord> queryWrapperActivitySignReceiveRecord = new QueryWrapper<>(); + queryWrapperActivitySignReceiveRecord.eq("award_id", id); + queryWrapperActivitySignReceiveRecord.eq("company_id", companyId); + queryWrapperActivitySignReceiveRecord.eq("activity_id", actId); + queryWrapperActivitySignReceiveRecord.eq("user_id", userId); + ActivitySignReceiveRecord activitySignReceiveRecordDone = activitySignReceiveRecordDao.selectOne(queryWrapperActivitySignReceiveRecord); + if (ObjectUtil.isNotEmpty(activitySignReceiveRecordDone)) { + String awardNameCumulativeDay = activitySignAwardSetCumulativeDay.getAwardName(); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(awardNameCumulativeDay+"已经领取过了"); + ajaxResult.setData(signSuccessVo); + return ajaxResult; + } //新增奖品领取记录 ActivitySignReceiveRecord activitySignReceiveRecord = new ActivitySignReceiveRecord(); activitySignReceiveRecord.setUserId(userId); @@ -190,6 +213,10 @@ activitySignReceiveRecord.setActivityId(actId); activitySignReceiveRecord.setCompanyId(companyId); activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE); + activitySignReceiveRecord.setCreateBy(user.getName()); + activitySignReceiveRecord.setCreateTime(new Date()); + activitySignReceiveRecord.setUpdateBy(user.getName()); + activitySignReceiveRecord.setUpdateTime(new Date()); /** * 奖项类型(1:自定义产品2:积分3:优惠券4:店铺商品) * @@ -231,7 +258,7 @@ signSuccessVo.setScoreCnt(activitySignAwardSetCumulativeDay.getScoreCnt()); } //3:优惠券 - if(ActivitySignAwardSet.AWARDTYPE_SCORE == activitySignAwardSetCumulativeDay.getAwardType()) { + if(ActivitySignAwardSet.AWARDTYPE_COUPON == activitySignAwardSetCumulativeDay.getAwardType()) { signSuccessVo.setCouponName(activitySignAwardSetCumulativeDay.getCouponName()); } activitySignReceiveRecordDao.insert(activitySignReceiveRecord); @@ -241,4 +268,24 @@ ajaxResult.setData(signSuccessVo); return ajaxResult; } + /** + * 获取累计签到天数 + * @param actId + * @param userId + * @param date + * @return + */ + public int getCumulativeDay(long actId, long userId,Date date, int i) { + ActivitySignRecord activitySignRecordOld = activitySignRecordDao.selectOneByActIdAndUserIdLikesignTime(actId,userId,date); + if(ObjectUtil.isEmpty(activitySignRecordOld)) { + return i; + } + i++; + DateTime offsetDay = DateUtil.offsetDay(date, -i); + return getCumulativeDay(actId,userId,offsetDay,i); + } + + + + } -- Gitblit v1.9.1