Browse Source

青雲慧小程序签到

wangzongkui 11 hours ago
parent
commit
b1b19f03e9

+ 19 - 1
renren-admin/src/main/java/io/renren/modules/qmjz/api/ApiScoreStuController.java

@@ -3,11 +3,11 @@ package io.renren.modules.qmjz.api;
 import io.renren.common.utils.PageUtils;
 import io.renren.common.utils.R;
 import io.renren.modules.qmjz.entity.bo.ScoreStuBo;
-import io.renren.modules.qmjz.model.PageQuery;
 import io.renren.modules.qmjz.service.ScoreStuService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,6 +31,16 @@ public class ApiScoreStuController {
         return R.ok().put("page",page);
     }
 
+    /**
+     * 用户签到日期
+     * @return
+     */
+    @GetMapping("/list")
+    public R List(@RequestParam("stuId") Long stuId){
+        List<String> dayList = scoreStuService.ApiQueryList(stuId);
+        return R.ok().put("data", dayList);
+    }
+
 
 
     /**
@@ -59,5 +69,13 @@ public class ApiScoreStuController {
        return scoreStuService.share(bo.getStuId());
     }
 
+    /**
+     * 每日签到
+     */
+    @PostMapping("/dailySign")
+    public R dailySign(@RequestBody ScoreStuBo bo) {
+        return scoreStuService.dailySign(bo.getStuId());
+    }
+
 
 }

+ 2 - 1
renren-admin/src/main/java/io/renren/modules/qmjz/enums/TaskType.java

@@ -11,7 +11,8 @@ public enum TaskType {
     INVITE_FRIEND(4L,"成功邀请好友"),
     OPEN_VIP(5L,"购买会员"),
     WORK_ACTIVITY(6L,"参加兼职/成长会"),
-    COMMENT(7L,"评价");
+    COMMENT(7L,"评价"),
+    DAILY_SIGN(8L,"每日签到");
 
     private final Long code;
     private final String info;

+ 14 - 0
renren-admin/src/main/java/io/renren/modules/qmjz/service/ScoreStuService.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import io.renren.modules.qmjz.entity.bo.ScoreStuBo;
 import io.renren.modules.qmjz.model.PageQuery;
 
+import java.util.List;
 import java.util.Map;
 
 public interface ScoreStuService extends IService<ScoreStu>{
@@ -66,4 +67,17 @@ public interface ScoreStuService extends IService<ScoreStu>{
      * @return
      */
     ScoreStu querySingleTask(Long stuId, Long TaskType);
+
+    /**
+     * 签到日期
+     * @return
+     */
+    List<String> ApiQueryList(Long stuId);
+
+    /**
+     * 每日签到
+     * @param stuId
+     * @return
+     */
+    R dailySign(Long stuId);
 }

+ 57 - 6
renren-admin/src/main/java/io/renren/modules/qmjz/service/impl/ScoreStuServiceImpl.java

@@ -1,31 +1,32 @@
 package io.renren.modules.qmjz.service.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import io.renren.common.exception.RRException;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.renren.common.utils.PageUtils;
 import io.renren.common.utils.R;
+import io.renren.modules.qmjz.entity.ScoreStu;
 import io.renren.modules.qmjz.entity.TaskManage;
 import io.renren.modules.qmjz.entity.bo.ScoreStuBo;
 import io.renren.modules.qmjz.entity.vo.ScoreStuVo;
 import io.renren.modules.qmjz.enums.ScoreType;
 import io.renren.modules.qmjz.enums.TaskType;
+import io.renren.modules.qmjz.mapper.ScoreStuMapper;
 import io.renren.modules.qmjz.mapper.TaskManageMapper;
 import io.renren.modules.qmjz.model.PageQuery;
+import io.renren.modules.qmjz.service.ScoreStuService;
 import io.renren.modules.qmjz.utils.DateForStr;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.renren.modules.qmjz.entity.ScoreStu;
-import io.renren.modules.qmjz.mapper.ScoreStuMapper;
-import io.renren.modules.qmjz.service.ScoreStuService;
 
+import java.time.LocalDate;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class ScoreStuServiceImpl extends ServiceImpl<ScoreStuMapper, ScoreStu> implements ScoreStuService {
@@ -211,4 +212,54 @@ public class ScoreStuServiceImpl extends ServiceImpl<ScoreStuMapper, ScoreStu> i
                 .last("limit 1")
         );
     }
+
+    @Override
+    public List<String> ApiQueryList(Long stuId) {
+        //获取当前年月
+        LocalDate currentDate = LocalDate.now();
+        String year = String.valueOf(currentDate.getYear());
+        String month = String.format("%02d", currentDate.getMonthValue());
+        String yearMonth = year + month;
+        List<ScoreStu> scoreStus = scoreStuMapper.selectList(new LambdaQueryWrapper<ScoreStu>()
+                .eq(ScoreStu::getStuId, stuId)
+                .eq(ScoreStu::getTaskId, TaskType.DAILY_SIGN.getCode())
+                .likeRight(ScoreStu::getDay, yearMonth));
+        if (!ObjectUtil.isEmpty(scoreStus)){
+            return scoreStus.stream().map(ScoreStu::getDay).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
+
+
+    @Override
+    public R dailySign(Long stuId) {
+        if (ObjectUtil.isEmpty(stuId)){
+            return R.ok();
+        }
+        TaskManage taskManage = taskManageMapper.selectOne(new LambdaQueryWrapper<TaskManage>()
+                .eq(TaskManage::getId, TaskType.DAILY_SIGN.getCode())
+                .eq(TaskManage::getTaskStatus,"1")
+                .last("limit 1")
+        );
+        if (ObjectUtil.isEmpty(taskManage)) {
+            return R.ok();
+        }
+        ScoreStu scoreStu=this.queryDayTask(DateForStr.getInfoDateStr(),stuId,TaskType.DAILY_SIGN.getCode());
+        // 当日没有签到积分
+        if (ObjectUtil.isNull(scoreStu)) {
+            //插入一条积分记录
+            ScoreStu add = new ScoreStu();
+            add.setDay(DateForStr.getInfoDateStr(new Date()));
+            add.setStuId(stuId);
+            add.setScoreType(ScoreType.TASK_SCORE.getCode());
+            add.setTaskId(taskManage.getId());
+            add.setBusinessId(taskManage.getId());
+            add.setScoreEvent(TaskType.DAILY_SIGN.getInfo());
+            add.setScoreValue(taskManage.getTaskScore());
+            add.setCreateTime(new Date());
+            add.setSurplusScore(taskManage.getTaskScore() + this.getTotalScore(stuId));
+            scoreStuMapper.insert(add);
+        }
+        return R.ok();
+    }
 }