Browse Source

Merge branch 'information-27' into dev

zoujiajian 2 years ago
parent
commit
26e81568e6

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/entity/SignUser.java

@@ -21,7 +21,7 @@ public class SignUser extends BaseEntity{
     private Integer dayPeriod;
 
     /**
-     * 是否已签 true 签到成功 false 签到
+     * 是否已签 true 签到成功 false 签到
      */
     @TableField(exist = false)
     private Boolean isHadChecked;

+ 24 - 3
netflix-service/src/main/java/com/cyksj/service/market/impl/MarketFrontServiceImpl.java

@@ -137,8 +137,29 @@ public class MarketFrontServiceImpl implements MarketFrontService {
 
 	@Override
 	public SignUser getUserSignDetail(Long userId) {
-		//未签到时,签到
-		SignUser signUser = signByUserId(userId);
+		SignUser signUser = signUserMapper.selectOne(Wrappers.lambdaQuery(SignUser.class)
+				.eq(SignUser::getUserId, userId).last("limit 1"));
+		if (signUser == null) {
+			signUser = new SignUser();
+			signUser.setUserId(userId);
+			signUser.setDay(0);
+			signUser.setDayPeriod(0);
+			signUser.setIsHadChecked(false);
+			return signUser;
+		}
+		Date updateTime = signUser.getUpdateTime();
+		DateTime signZero = DateUtil.beginOfDay(updateTime);
+		DateTime thisZero = DateUtil.beginOfDay(DateTime.now());
+		if (updateTime.getTime() < thisZero.getTime()) {
+			if (thisZero.getTime() - signZero.getTime() != Constant.DAY_MILLS) {
+				log.info("用户:{}断签,断签天数为:{}", signUser.getUserId(), signUser.getDayPeriod());
+				signUser.setDay(0);
+				signUser.setDayPeriod(0);
+			}
+			signUser.setIsHadChecked(false);
+		} else {
+			signUser.setIsHadChecked(true);
+		}
 		return signUser;
 	}
 
@@ -361,7 +382,7 @@ public class MarketFrontServiceImpl implements MarketFrontService {
 		DateTime signZero = DateUtil.beginOfDay(updateTime);
 		DateTime thisZero = DateUtil.beginOfDay(DateTime.now());
 		if (updateTime.getTime() >= thisZero.getTime()) {
-			signUser.setIsHadChecked(false);
+			signUser.setIsHadChecked(true);
 //            throw BusinessRuntimeException.getInstance("您已签到");
 		} else {
 			if (updateTime.before(thisZero) && thisZero.getTime() - signZero.getTime() == Constant.DAY_MILLS) {

+ 2 - 2
netflix-web/src/main/java/com/cyksj/web/controller/market/SignFrontController.java

@@ -52,10 +52,10 @@ public class SignFrontController {
      * 每日签到
      */
     @PostMapping("/post")
-    public Result<Integer> sign() {
+    public Result<SignUser> sign() {
         Long userId = StpUserUtil.getLoginIdAsLong();
         SignUser signUser = marketFrontService.signByUserId(userId);
-        return GatewayResponse.SUCCESS.newBuilder().setMsg("签到成功").toResult(signUser.getDayPeriod());
+        return GatewayResponse.SUCCESS.newBuilder().setMsg("签到成功").toResult(signUser);
     }
 
     /**