wangzongkui месяцев назад: 6
Родитель
Сommit
17debb43f9

+ 17 - 0
renren-admin/src/main/java/io/renren/modules/qmgj/dao/UserSignDao.java

@@ -0,0 +1,17 @@
+package io.renren.modules.qmgj.dao;
+
+import io.renren.modules.qmjz.entity.UserSignEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户签到表
+ * 
+ * @author lijiahe
+ * @email 
+ * @date 2025-09-28 11:05:50
+ */
+@Mapper
+public interface UserSignDao extends BaseMapper<UserSignEntity> {
+	
+}

+ 2 - 2
renren-admin/src/main/java/io/renren/modules/qmgj/service/impl/MemberInfoServiceImpl.java

@@ -483,12 +483,12 @@ public class MemberInfoServiceImpl extends ServiceImpl<MemberInfoDao, MemberInfo
                 memberinfo.setGuid(MD5.MD5Encode(java.util.UUID.randomUUID().toString()));
                 memberinfo.setToporgid(11L);
                 memberinfo.setInputorgid(11L);
-                String CARDNO = "WJ" + GetVIPNoTool.getRandomFileName();
+                String CARDNO = "QYH" + GetVIPNoTool.getRandomFileName();
                 boolean falg = false;
                 while (!falg) {
                     MemberInfoEntity memberInfoEntityCARDNO = this.selectByCardNo(CARDNO);
                     if (memberInfoEntityCARDNO != null) {
-                        CARDNO = "WJ" + GetVIPNoTool.getRandomFileName();
+                        CARDNO = "QYH" + GetVIPNoTool.getRandomFileName();
                         falg = false;
                     } else {
                         falg = true;

+ 4 - 18
renren-admin/src/main/java/io/renren/modules/qmjz/api/ApiScoreStuController.java

@@ -5,9 +5,11 @@ import io.renren.common.utils.R;
 import io.renren.modules.qmjz.entity.bo.ScoreStuBo;
 import io.renren.modules.qmjz.service.ScoreStuService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,15 +33,6 @@ 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);
-    }
 
 
 
@@ -69,13 +62,6 @@ public class ApiScoreStuController {
        return scoreStuService.share(bo.getStuId());
     }
 
-    /**
-     * 每日签到
-     */
-    @PostMapping("/dailySign")
-    public R dailySign(@RequestBody ScoreStuBo bo) {
-        return scoreStuService.dailySign(bo.getStuId());
-    }
 
 
 }

+ 83 - 0
renren-admin/src/main/java/io/renren/modules/qmjz/api/ApiUserSignController.java

@@ -0,0 +1,83 @@
+package io.renren.modules.qmjz.api;
+
+import cn.hutool.core.util.ObjectUtil;
+import io.renren.common.exception.RRException;
+import io.renren.common.utils.PageUtils;
+import io.renren.common.utils.R;
+import io.renren.modules.qmjz.entity.UserSignEntity;
+import io.renren.modules.qmjz.service.UserSignService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+/**
+ * 用户签到表
+ *
+ * @author wangzongkui
+ * @email 
+ * @date 2025-09-28 11:05:50
+ */
+@RestController
+@RequestMapping("api/user")
+public class ApiUserSignController {
+    @Autowired
+    private UserSignService userSignService;
+
+    /**
+     * 列表
+     */
+    @RequestMapping("/list")
+    public R list(@RequestParam Map<String, Object> params){
+        PageUtils page = userSignService.queryPage(params);
+
+        return R.ok().put("page", page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @RequestMapping("/info/{id}")
+    public R info(@PathVariable("id") Long id){
+        UserSignEntity userSign = userSignService.getById(id);
+
+        return R.ok().put("userSign", userSign);
+    }
+
+    /**
+     * 用户签到日期
+     * @return
+     */
+    @GetMapping("/dayList/{stuId}")
+    public R List(@PathVariable("stuId") Long stuId){
+        List<String> dayList = userSignService.ApiQueryList(stuId);
+        return R.ok().put("data", dayList);
+    }
+
+    /**
+     * 签到
+     */
+    @PostMapping("/dailySign")
+    public R dailySign(@RequestBody Map<String, Object> params){
+        userSignService.dailySign(params);
+        return R.ok();
+    }
+
+    /**
+     * 用户是否签到
+     * @return
+     */
+    @GetMapping("/curryDayIsSign/{stuId}")
+    public R curryDayIsSign(@PathVariable("stuId") Long stuId){
+        if (ObjectUtil.isEmpty(stuId)){
+            throw new RRException("用户不存在");
+        }
+        return R.ok().put("data", userSignService.curryDayIsSign(stuId));
+    }
+
+
+}

+ 52 - 0
renren-admin/src/main/java/io/renren/modules/qmjz/entity/UserSignEntity.java

@@ -0,0 +1,52 @@
+package io.renren.modules.qmjz.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 用户签到表
+ * 
+ * @author lijiahe
+ * @email 
+ * @date 2025-09-28 11:05:50
+ */
+@Data
+@TableName("tb_user_sign")
+public class UserSignEntity implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 用户ID
+	 */
+	private Long stuId;
+	/**
+	 * 签到日期(年月日)
+	 */
+	private String signDate;
+	/**
+	 * 签到时间
+	 */
+	private LocalDateTime signTime;
+	/**
+	 * 备注
+	 */
+	private String remark;
+	/**
+	 * 创建时间
+	 */
+	private LocalDateTime createdTime;
+	/**
+	 * 更新时间
+	 */
+	private LocalDateTime updatedTime;
+
+}

+ 17 - 0
renren-admin/src/main/java/io/renren/modules/qmjz/mapper/UserSignMapper.java

@@ -0,0 +1,17 @@
+package io.renren.modules.qmjz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import io.renren.modules.qmjz.entity.UserSignEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户签到表
+ * 
+ * @author lijiahe
+ * @email 
+ * @date 2025-09-28 11:05:50
+ */
+@Mapper
+public interface UserSignMapper extends BaseMapper<UserSignEntity> {
+	
+}

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

@@ -68,16 +68,4 @@ public interface ScoreStuService extends IService<ScoreStu>{
      */
     ScoreStu querySingleTask(Long stuId, Long TaskType);
 
-    /**
-     * 签到日期
-     * @return
-     */
-    List<String> ApiQueryList(Long stuId);
-
-    /**
-     * 每日签到
-     * @param stuId
-     * @return
-     */
-    R dailySign(Long stuId);
 }

+ 29 - 0
renren-admin/src/main/java/io/renren/modules/qmjz/service/UserSignService.java

@@ -0,0 +1,29 @@
+package io.renren.modules.qmjz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import io.renren.common.utils.PageUtils;
+import io.renren.modules.qmjz.entity.UserSignEntity;
+import io.renren.utils.R;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户签到表
+ *
+ * @author lijiahe
+ * @email 
+ * @date 2025-09-28 11:05:50
+ */
+public interface UserSignService extends IService<UserSignEntity> {
+
+    PageUtils queryPage(Map<String, Object> params);
+
+    R dailySign(Map<String, Object>params);
+
+    Boolean curryDayIsSign(Long stuId);
+
+    List<String> ApiQueryList(Long stuId);
+
+}
+

+ 2 - 49
renren-admin/src/main/java/io/renren/modules/qmjz/service/impl/ScoreStuServiceImpl.java

@@ -18,6 +18,8 @@ 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 io.renren.modules.sys.entity.SysUserEntity;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -213,53 +215,4 @@ public class ScoreStuServiceImpl extends ServiceImpl<ScoreStuMapper, ScoreStu> i
         );
     }
 
-    @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();
-    }
 }

+ 131 - 0
renren-admin/src/main/java/io/renren/modules/qmjz/service/impl/UserSignServiceImpl.java

@@ -0,0 +1,131 @@
+package io.renren.modules.qmjz.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.renren.common.exception.RRException;
+import io.renren.common.utils.PageUtils;
+import io.renren.common.utils.Query;
+import io.renren.modules.qmjz.entity.ScoreStu;
+import io.renren.modules.qmjz.entity.TaskManage;
+import io.renren.modules.qmjz.entity.UserSignEntity;
+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.mapper.UserSignMapper;
+import io.renren.modules.qmjz.service.ScoreStuService;
+import io.renren.modules.qmjz.service.UserSignService;
+import io.renren.modules.qmjz.utils.DateForStr;
+import io.renren.modules.sys.entity.SysUserEntity;
+import io.renren.utils.R;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+@Service("userSignService")
+public class UserSignServiceImpl extends ServiceImpl<UserSignMapper, UserSignEntity> implements UserSignService {
+
+    @Autowired
+    private ScoreStuMapper scoreStuMapper;
+
+    @Autowired
+    private TaskManageMapper taskManageMapper;
+
+    @Autowired
+    private ScoreStuService scoreStuService;
+
+    @Override
+    public PageUtils queryPage(Map<String, Object> params) {
+        IPage<UserSignEntity> page = this.page(
+                new Query<UserSignEntity>().getPage(params),
+                new QueryWrapper<UserSignEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+    @Override
+    @Transactional
+    public R dailySign(Map<String, Object> params) {
+        Long stuId = Long.parseLong(params.get("stuId").toString());
+        if (ObjectUtil.isEmpty(stuId)){
+            throw new RRException("用户不存在");
+        }
+        //判断当天是否已签到
+       if (curryDayIsSign(stuId)){
+            throw new RRException("今日已签到");
+       }
+        //插入签到表
+        UserSignEntity userSignEntity = new UserSignEntity();
+        userSignEntity.setStuId(stuId);
+        userSignEntity.setSignDate(DateForStr.getInfoDateStr(new Date()));
+        userSignEntity.setSignTime(LocalDateTime.now());
+        baseMapper.insert(userSignEntity);
+        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.scoreStuService.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.scoreStuService.getTotalScore(stuId));
+            scoreStuMapper.insert(add);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public Boolean curryDayIsSign(Long stuId) {
+        return baseMapper.selectOne(new QueryWrapper<UserSignEntity>()
+                .eq("stu_id", stuId)
+                .eq("sign_date", DateForStr.getInfoDateStr(new Date()))
+                .last("limit 1")) != null;
+    }
+
+    @Override
+    public List<String> ApiQueryList(Long stuId) {
+        if (ObjectUtil.isEmpty(stuId)){
+            throw new RRException("用户不存在");
+        }
+        //获取当前年月
+        LocalDate currentDate = LocalDate.now();
+        String year = String.valueOf(currentDate.getYear());
+        String month = String.format("%02d", currentDate.getMonthValue());
+        String yearMonth = year + month;
+        List<UserSignEntity> userSignList = baseMapper.selectList(new LambdaQueryWrapper<UserSignEntity>()
+                .eq(UserSignEntity::getStuId, stuId)
+                .likeRight(UserSignEntity::getSignDate, yearMonth));
+        if (!ObjectUtil.isEmpty(userSignList)){
+            return userSignList.stream().map(UserSignEntity::getSignDate).collect(Collectors.toList());
+        }
+        return new ArrayList<>();
+    }
+
+}

+ 18 - 0
renren-admin/src/main/resources/mapper/qmjz/UserSignDao.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="io.renren.modules.qmjz.mapper.UserSignMapper">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="io.renren.modules.qmjz.entity.UserSignEntity" id="userSignMap">
+        <result property="id" column="id"/>
+        <result property="stuId" column="stu_id"/>
+        <result property="signDate" column="sign_date"/>
+        <result property="signTime" column="sign_time"/>
+        <result property="remark" column="remark"/>
+        <result property="createdTime" column="created_time"/>
+        <result property="updatedTime" column="updated_time"/>
+    </resultMap>
+
+
+</mapper>