@@ -12,4 +12,9 @@
进度
- 登陆时,更新检查等级
+ 登陆时,更新检查等级
+
+# 部署
+ 2022-2-9 已部署sit
+ sit: http://192.168.0.245:8006/doc.html
@@ -1,6 +1,5 @@
package com.gis.admin.controller;
-import com.gis.admin.entity.po.SysRoleEntity;
import com.gis.common.base.entity.po.LogEntity;
import com.gis.common.base.service.LogService;
import com.gis.common.constant.ConfigConstant;
@@ -15,7 +14,6 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -27,7 +25,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.time.LocalDateTime;
import java.util.*;
-import java.util.concurrent.TimeUnit;
/**
* Created by owen on 2020/2/19 0019 15:53
@@ -136,7 +133,7 @@ public class LoginController {
saveLog(userId);
// 检查更新军衔等级
- userService.updateLevel();
+ userService.updateLevel(userId);
// 更新到 redis, 有效期24h, 旧token无效, 做单用户登录 86400s-> 24H
redisUtil.set(configConstant.redisPrefix + token, token, 86400);
@@ -241,7 +238,7 @@ public class LoginController {
@@ -19,5 +19,5 @@ public interface IntegralService extends IBaseService<IntegralEntity, Long> {
Result addGrade(String type, Long userId);
- Integer totalGrade();
+ Integer totalGrade(Long userId);
}
@@ -43,5 +43,5 @@ public interface SysUserService extends IBaseService<SysUserEntity, Long> {
void updateOnlineTime(String token);
- void updateLevel();
+ void updateLevel(Long userId);
@@ -122,8 +122,7 @@ public class IntegralServiceImpl extends IBaseServiceImpl<IntegralEntity, Long>
@Override
- public Integer totalGrade() {
- Long userId = getTokenUserId();
+ public Integer totalGrade(Long userId) {
return entityMapper.totalGrade(userId);
@@ -334,8 +334,8 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
- public void updateLevel() {
+ public void updateLevel(Long userId) {
+ log.info("准备更新等级");
// 每天只检查一次
String redisKey = TypeCode.REDIS_LEVEL_KEY + userId;
String levelKey = (String)redisUtil.get(redisKey);
@@ -344,7 +344,7 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
return;
- Integer grade = integralService.totalGrade();
+ Integer grade = integralService.totalGrade(userId);
List<RankVo> rankList = sysBaseMapper.getRankList();
for (RankVo rankVo : rankList) {
if (grade >= rankVo.getExp()){
@@ -354,6 +354,7 @@ public class SysUserServiceImpl extends IBaseServiceImpl<SysUserEntity, Long> im
break;
+ log.info("完等级更新");
@@ -1,12 +1,12 @@
server.port=8004
-spring.profiles.active=dev
+spring.profiles.active=sit
# \u9879\u76EE\u540D\u79F0
project.en=army_fuzhou
project.sc=\u798F\u5DDE\u6D77\u519B\u519B\u53F2\u9986
# redis token \u524D\u7F00
-redis.prefix=${project.en}_token_
+redis.prefix=${project.en}_token:
# \u5141\u8BB8\u4E0A\u4F20\u6587\u4EF6\u540E\u7F00
server.file.allow=.jpg,.gif,.png,.ico,.bmp,.jpeg,.zip,.zp,.rar,.mp3,.mp4,.avi,.mov,.4dage,.wav,.wma,.m4a,.obj,.pdf,audio
@@ -4,8 +4,10 @@ import com.gis.cms.entity.dto.AnswerDto;
import com.gis.cms.entity.dto.QuestionAnswerDto;
import com.gis.cms.entity.po.QuestionAnswerEntity;
import com.gis.cms.mapper.QuestionAnswerMapper;
+import com.gis.cms.mapper.RaceMapper;
import com.gis.common.base.mapper.IBaseMapper;
import com.gis.common.base.service.impl.IBaseServiceImpl;
+import com.gis.common.constant.MsgCode;
import com.gis.common.util.Result;
import com.gis.cms.service.AuditLogService;
import com.gis.cms.service.FileService;
@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@@ -37,6 +40,9 @@ public class QuestionAnswerServiceImpl extends IBaseServiceImpl<QuestionAnswerEn
@Autowired
AuditLogService auditLogService;
+ @Autowired
+ RaceMapper raceMapper;
public IBaseMapper<QuestionAnswerEntity, Long> getBaseMapper() {
return this.entityMapper;
@@ -87,6 +93,13 @@ public class QuestionAnswerServiceImpl extends IBaseServiceImpl<QuestionAnswerEn
*/
public Result random(Integer size) {
+ Long userId = getTokenUserId();
+ LocalDate now = LocalDate.now();
+ List<Long> list = raceMapper.findByUserIdAndDate(userId, now);
+ if (list.size() > 0) {
+ return Result.failure(MsgCode.e3006, "每天只能参与一次竞赛答题");
+ }
List<QuestionAnswerEntity> random = entityMapper.random(size);
return Result.success(random);
@@ -240,7 +240,12 @@ public abstract class IBaseServiceImpl<T extends BaseEntity, ID extends Serializ
// }
public String getToken(){
- return request.getHeader("token");
+ String token = request.getHeader("token");
+ if (token == null){
+ log.warn("请求头header token 为空");
+ return null;
+ return token;
@@ -40,10 +40,10 @@ public class TypeCode {
/**排名积分,每月一号更新一次*/
- public static final String REDIS_RACE_KEY = "race_key_";
+ public static final String REDIS_RACE_KEY = "race:";
/**军衔等级, 每天登录只检查一次*/
- public final static String REDIS_LEVEL_KEY = "level_key_";
+ public final static String REDIS_LEVEL_KEY = "level:";