|
|
@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
|
import com.tduck.cloud.common.constant.CommonConstants; |
|
|
|
import com.tduck.cloud.common.entity.BaseEntity; |
|
|
|
import com.tduck.cloud.common.util.LoginUserUtil; |
|
|
|
import com.tduck.cloud.common.util.Result; |
|
|
|
import com.tduck.cloud.project.entity.UserProjectEntity; |
|
|
|
import com.tduck.cloud.project.entity.UserProjectResultEntity; |
|
|
@ -69,9 +70,10 @@ public class UserProjectSettingServiceImpl extends ServiceImpl<UserProjectSettin |
|
|
|
} |
|
|
|
} |
|
|
|
//每个人只需填写一次 根据IP判断
|
|
|
|
Boolean everyoneWriteOnce = setting.getEveryoneWriteOnce(); |
|
|
|
Boolean everyoneWriteOnceByIp = setting.getEveryoneWriteOnceByIp(); |
|
|
|
Boolean everyoneWriteOnceByUid = setting.getEveryoneWriteOnceByUId(); |
|
|
|
Boolean everyoneDayWriteOnce = setting.getEveryoneDayWriteOnce(); |
|
|
|
if (everyoneWriteOnce || everyoneDayWriteOnce) { |
|
|
|
if (everyoneWriteOnceByIp || everyoneDayWriteOnce) { |
|
|
|
LambdaQueryWrapper<UserProjectResultEntity> wrapper = Wrappers.<UserProjectResultEntity>lambdaQuery() |
|
|
|
.eq(UserProjectResultEntity::getProjectKey, projectKey) |
|
|
|
.eq(UserProjectResultEntity::getSubmitRequestIp, requestIp); |
|
|
@ -84,6 +86,19 @@ public class UserProjectSettingServiceImpl extends ServiceImpl<UserProjectSettin |
|
|
|
return Result.success(null, setting.getWriteOncePromptText()); |
|
|
|
} |
|
|
|
} |
|
|
|
if (everyoneWriteOnceByUid) { |
|
|
|
LambdaQueryWrapper<UserProjectResultEntity> wrapper = Wrappers.<UserProjectResultEntity>lambdaQuery() |
|
|
|
.eq(UserProjectResultEntity::getProjectKey, projectKey) |
|
|
|
.eq(UserProjectResultEntity::getUserId, LoginUserUtil.get().getUserId()); |
|
|
|
if (everyoneDayWriteOnce) { |
|
|
|
wrapper.apply(StrUtil.format("date_format({},'%Y-%m-%d') = '{}'", |
|
|
|
StrUtil.toUnderlineCase(BaseEntity.Fields.createTime), DateUtil.today())); |
|
|
|
} |
|
|
|
int writeCount = userProjectResultService.count(wrapper); |
|
|
|
if (CommonConstants.ConstantNumber.ONE <= writeCount) { |
|
|
|
return Result.success(null, setting.getWriteOncePromptText()); |
|
|
|
} |
|
|
|
} |
|
|
|
//每个微信仅填写一次
|
|
|
|
if (setting.getWxWriteOnce() && StrUtil.isNotEmpty(wxOpenId)) { |
|
|
|
LambdaQueryWrapper<UserProjectResultEntity> wrapper = Wrappers.<UserProjectResultEntity>lambdaQuery() |
|
|
|