Commit f1d6529a authored by shiyu's avatar shiyu

解散签到任务

parent 80875765
......@@ -22,5 +22,5 @@ public interface QdUserSignInNoteDao {
boolean updateByPrimaryKey(QdUserSignInNote qdUserSignInNote);
boolean delete(long userId, long taskId);
boolean delete(Long userId, long taskId);
}
......@@ -136,7 +136,7 @@ public class QdUserSignInDaoImpl implements QdUserSignInDao {
JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria::andCreateTimeGreaterThan);
JdbcHelper.ifPresent(dto.getSignInDate(), criteria::andSignInDateEqualTo);
JdbcHelper.ifPresent(dto.getTaskId(), criteria::andTaskIdEqualTo);
criteria.andUserIdEqualTo(dto.getUserId());
JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
criteria.andIsValidEqualTo(true);
QdUserSignIn userSignin = new QdUserSignIn();
userSignin.setIsValid(false);
......
......@@ -80,10 +80,12 @@ public class QdUserSignInNoteDaoImpl implements QdUserSignInNoteDao {
@Override
public boolean delete(long userId, long taskId) {
public boolean delete(Long userId, long taskId) {
QdUserSignInNoteExample example = new QdUserSignInNoteExample();
QdUserSignInNoteExample.Criteria criteria = example.createCriteria();
if (userId != null) {
criteria.andUserIdEqualTo(userId);
}
criteria.andTaskIdEqualTo(taskId);
QdUserSignInNote qdUserSignInNote = new QdUserSignInNote();
qdUserSignInNote.setUpdateTime(new Date());
......
......@@ -41,7 +41,7 @@ public class QdUserSignInTaskDaoImpl implements QdUserSignInTaskDao {
public boolean update(QdUserSignInTask qdUserSignInTask) {
QdUserSignInTaskExample example = new QdUserSignInTaskExample();
QdUserSignInTaskExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(qdUserSignInTask.getUserId());
JdbcHelper.ifPresent(qdUserSignInTask.getUserId(), criteria :: andUserIdEqualTo);
criteria.andTaskIdEqualTo(qdUserSignInTask.getTaskId());
return qdUserSignInTaskMapper.updateByExampleSelective(qdUserSignInTask, example) > 0;
}
......
......@@ -70,6 +70,11 @@ public class SignInTaskVo implements Entity {
*/
private Long creatorId;
/**
* 创建人
*/
private String creatorName;
/**
* 创建时间
*/
......
......@@ -5,9 +5,11 @@ import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.qiandao.SignInTaskEnum;
import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result;
import com.wwdz.ch.db.dao.qiandao.QdUserDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInTaskDao;
import com.wwdz.ch.db.dao.qiandao.SignInTaskDao;
import com.wwdz.ch.db.domain.qiandao.QdUser;
import com.wwdz.ch.db.domain.qiandao.QdUserSignIn;
import com.wwdz.ch.db.domain.qiandao.SignInTask;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto;
......@@ -47,6 +49,9 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
@Autowired
QdUserSignInTaskService qdUserSignInTaskService;
@Autowired
QdUserDao qdUserDao;
@Override
public Result add(SignInTaskRequestDto dto) {
try {
......@@ -99,6 +104,7 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
@Override
public Result findList(SignInTaskRequestDto dto) {
try {
qdUserSignInTaskService.checkInvalidTask();
List<SignInTaskVo> signInTaskVoList = new ArrayList<>();
dto.setCreatorId(CommConsts.SYSTEM_ACCOUNT.longValue());
dto.setState(SignInTaskEnum.StateEnum.PROCESSING.getCode());
......@@ -192,6 +198,11 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
long joinPeopleNum = qdUserSignInTaskDao.countByTaskId(taskId);
signInTaskVo.setJoinPeopleNum(joinPeopleNum);
signInTaskVo.setGoalDesc(goalStr);
//查询创建人名称
if (signInTask.getCreatorId() != CommConsts.SYSTEM_ACCOUNT.longValue()) {
QdUser qdUser = qdUserDao.queryById(signInTask.getCreatorId());
signInTaskVo.setCreatorName(qdUser.getNickName());
}
return Result.success(signInTaskVo);
} catch (Exception e) {
logger.error("查询签到任务详情 error:{}", e);
......
......@@ -84,7 +84,7 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
qdUserSignInRequestDto.setTaskId(dto.getTaskId());
qdUserSignInDao.updateInvalid(qdUserSignInRequestDto);
//删除所有打笔记
//删除所有打笔记
qdUserSignInNoteDao.delete(dto.getUserId(), dto.getTaskId());
return Result.success();
} catch (Exception e) {
......@@ -93,9 +93,40 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
return Result.failed();
}
@Override
public Result disband(QdUserSignInTaskRequestDto dto) {
try {
long taskId = dto.getTaskId();
SignInTask signInTask = signInTaskDao.findById(taskId);
if (signInTask.getCreatorId().longValue() != dto.getUserId()) {
return Result.failed("仅创建人可解散");
}
//已参加任务的用户记录都设置为无效
QdUserSignInTask qdUserSignInTask = new QdUserSignInTask();
qdUserSignInTask.setTaskId(dto.getTaskId());
qdUserSignInTask.setUpdateTime(new Date());
qdUserSignInTask.setIsValid(false);
qdUserSignInTaskDao.update(qdUserSignInTask);
//清空所有签到记录
QdUserSignInRequestDto qdUserSignInRequestDto = new QdUserSignInRequestDto();
qdUserSignInRequestDto.setTaskId(dto.getTaskId());
qdUserSignInDao.updateInvalid(qdUserSignInRequestDto);
//删除所有打卡笔记
qdUserSignInNoteDao.delete(null, dto.getTaskId());
return Result.success();
} catch (Exception e) {
logger.error("退出签到任务 error:{}", e);
}
return Result.failed();
}
@Override
public Result findTaskList(QdUserSignInTaskRequestDto dto) {
try {
checkInvalidTask();
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("H:mm");
Map<String, Object> map = new HashMap<>();
......@@ -192,7 +223,7 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
}
private void checkInvalidTask() {
public void checkInvalidTask() {
Date now = new Date();
SignInTaskRequestDto signInTaskRequestDto = new SignInTaskRequestDto();
signInTaskRequestDto.setStateList(Arrays.asList(SignInTaskEnum.StateEnum.NOT_START.getCode(), SignInTaskEnum.StateEnum.PROCESSING.getCode()));
......
......@@ -19,6 +19,13 @@ public interface QdUserSignInTaskService {
*/
Result out(QdUserSignInTaskRequestDto dto);
/**
* 解散签到任务,仅创建人可以
* @param dto
* @return
*/
Result disband(QdUserSignInTaskRequestDto dto);
/**
* 查询用户参加的签到任务
......@@ -26,4 +33,10 @@ public interface QdUserSignInTaskService {
* @return
*/
Result findTaskList(QdUserSignInTaskRequestDto dto);
/**
* 检测过期任务
*/
void checkInvalidTask();
}
......@@ -57,6 +57,21 @@ public class QdUserSignInTaskController {
}
@ApiOperation(value = "解散签到任务")
@PostMapping("/disband")
public Result disband(@RequestBody QdUserSignInTaskRequestDto dto) {
logger.info("【请求开始】解散签到任务,请求参数:{}", JSON.toJSONString(dto));
Validator validator = new Validator(FormHandler.ofEntity(dto));
validator.set("userId", "用户id").must().number()
.set("taskId", "任务id").must().number()
.end();
if (!validator.isValid()) {
return Result.failed(ResultCode.PARAM_ERROR);
}
return qdUserSignInTaskService.disband(dto);
}
@ApiOperation(value = "查询用户参加的签到任务")
@PostMapping("/findTaskList")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment