Commit f1d6529a authored by shiyu's avatar shiyu

解散签到任务

parent 80875765
...@@ -22,5 +22,5 @@ public interface QdUserSignInNoteDao { ...@@ -22,5 +22,5 @@ public interface QdUserSignInNoteDao {
boolean updateByPrimaryKey(QdUserSignInNote qdUserSignInNote); 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 { ...@@ -136,7 +136,7 @@ public class QdUserSignInDaoImpl implements QdUserSignInDao {
JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria::andCreateTimeGreaterThan); JdbcHelper.ifPresent(dto.getStartQueryTime(), criteria::andCreateTimeGreaterThan);
JdbcHelper.ifPresent(dto.getSignInDate(), criteria::andSignInDateEqualTo); JdbcHelper.ifPresent(dto.getSignInDate(), criteria::andSignInDateEqualTo);
JdbcHelper.ifPresent(dto.getTaskId(), criteria::andTaskIdEqualTo); JdbcHelper.ifPresent(dto.getTaskId(), criteria::andTaskIdEqualTo);
criteria.andUserIdEqualTo(dto.getUserId()); JdbcHelper.ifPresent(dto.getUserId(), criteria::andUserIdEqualTo);
criteria.andIsValidEqualTo(true); criteria.andIsValidEqualTo(true);
QdUserSignIn userSignin = new QdUserSignIn(); QdUserSignIn userSignin = new QdUserSignIn();
userSignin.setIsValid(false); userSignin.setIsValid(false);
......
...@@ -80,10 +80,12 @@ public class QdUserSignInNoteDaoImpl implements QdUserSignInNoteDao { ...@@ -80,10 +80,12 @@ public class QdUserSignInNoteDaoImpl implements QdUserSignInNoteDao {
@Override @Override
public boolean delete(long userId, long taskId) { public boolean delete(Long userId, long taskId) {
QdUserSignInNoteExample example = new QdUserSignInNoteExample(); QdUserSignInNoteExample example = new QdUserSignInNoteExample();
QdUserSignInNoteExample.Criteria criteria = example.createCriteria(); QdUserSignInNoteExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(userId); if (userId != null) {
criteria.andUserIdEqualTo(userId);
}
criteria.andTaskIdEqualTo(taskId); criteria.andTaskIdEqualTo(taskId);
QdUserSignInNote qdUserSignInNote = new QdUserSignInNote(); QdUserSignInNote qdUserSignInNote = new QdUserSignInNote();
qdUserSignInNote.setUpdateTime(new Date()); qdUserSignInNote.setUpdateTime(new Date());
......
...@@ -41,7 +41,7 @@ public class QdUserSignInTaskDaoImpl implements QdUserSignInTaskDao { ...@@ -41,7 +41,7 @@ public class QdUserSignInTaskDaoImpl implements QdUserSignInTaskDao {
public boolean update(QdUserSignInTask qdUserSignInTask) { public boolean update(QdUserSignInTask qdUserSignInTask) {
QdUserSignInTaskExample example = new QdUserSignInTaskExample(); QdUserSignInTaskExample example = new QdUserSignInTaskExample();
QdUserSignInTaskExample.Criteria criteria = example.createCriteria(); QdUserSignInTaskExample.Criteria criteria = example.createCriteria();
criteria.andUserIdEqualTo(qdUserSignInTask.getUserId()); JdbcHelper.ifPresent(qdUserSignInTask.getUserId(), criteria :: andUserIdEqualTo);
criteria.andTaskIdEqualTo(qdUserSignInTask.getTaskId()); criteria.andTaskIdEqualTo(qdUserSignInTask.getTaskId());
return qdUserSignInTaskMapper.updateByExampleSelective(qdUserSignInTask, example) > 0; return qdUserSignInTaskMapper.updateByExampleSelective(qdUserSignInTask, example) > 0;
} }
......
...@@ -70,6 +70,11 @@ public class SignInTaskVo implements Entity { ...@@ -70,6 +70,11 @@ public class SignInTaskVo implements Entity {
*/ */
private Long creatorId; private Long creatorId;
/**
* 创建人
*/
private String creatorName;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -5,9 +5,11 @@ import com.wwdz.ch.core.consts.CommConsts; ...@@ -5,9 +5,11 @@ import com.wwdz.ch.core.consts.CommConsts;
import com.wwdz.ch.core.consts.qiandao.SignInTaskEnum; import com.wwdz.ch.core.consts.qiandao.SignInTaskEnum;
import com.wwdz.ch.core.type.PageSearchResult; import com.wwdz.ch.core.type.PageSearchResult;
import com.wwdz.ch.core.type.Result; 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.QdUserSignInDao;
import com.wwdz.ch.db.dao.qiandao.QdUserSignInTaskDao; import com.wwdz.ch.db.dao.qiandao.QdUserSignInTaskDao;
import com.wwdz.ch.db.dao.qiandao.SignInTaskDao; 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.QdUserSignIn;
import com.wwdz.ch.db.domain.qiandao.SignInTask; import com.wwdz.ch.db.domain.qiandao.SignInTask;
import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto; import com.wwdz.ch.db.dto.request.qiandao.QdUserSignInTaskRequestDto;
...@@ -47,6 +49,9 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService { ...@@ -47,6 +49,9 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
@Autowired @Autowired
QdUserSignInTaskService qdUserSignInTaskService; QdUserSignInTaskService qdUserSignInTaskService;
@Autowired
QdUserDao qdUserDao;
@Override @Override
public Result add(SignInTaskRequestDto dto) { public Result add(SignInTaskRequestDto dto) {
try { try {
...@@ -99,6 +104,7 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService { ...@@ -99,6 +104,7 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
@Override @Override
public Result findList(SignInTaskRequestDto dto) { public Result findList(SignInTaskRequestDto dto) {
try { try {
qdUserSignInTaskService.checkInvalidTask();
List<SignInTaskVo> signInTaskVoList = new ArrayList<>(); List<SignInTaskVo> signInTaskVoList = new ArrayList<>();
dto.setCreatorId(CommConsts.SYSTEM_ACCOUNT.longValue()); dto.setCreatorId(CommConsts.SYSTEM_ACCOUNT.longValue());
dto.setState(SignInTaskEnum.StateEnum.PROCESSING.getCode()); dto.setState(SignInTaskEnum.StateEnum.PROCESSING.getCode());
...@@ -192,6 +198,11 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService { ...@@ -192,6 +198,11 @@ public class QdSignInTaskServiceImpl implements QdSignInTaskService {
long joinPeopleNum = qdUserSignInTaskDao.countByTaskId(taskId); long joinPeopleNum = qdUserSignInTaskDao.countByTaskId(taskId);
signInTaskVo.setJoinPeopleNum(joinPeopleNum); signInTaskVo.setJoinPeopleNum(joinPeopleNum);
signInTaskVo.setGoalDesc(goalStr); signInTaskVo.setGoalDesc(goalStr);
//查询创建人名称
if (signInTask.getCreatorId() != CommConsts.SYSTEM_ACCOUNT.longValue()) {
QdUser qdUser = qdUserDao.queryById(signInTask.getCreatorId());
signInTaskVo.setCreatorName(qdUser.getNickName());
}
return Result.success(signInTaskVo); return Result.success(signInTaskVo);
} catch (Exception e) { } catch (Exception e) {
logger.error("查询签到任务详情 error:{}", e); logger.error("查询签到任务详情 error:{}", e);
......
...@@ -84,7 +84,7 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService { ...@@ -84,7 +84,7 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
qdUserSignInRequestDto.setTaskId(dto.getTaskId()); qdUserSignInRequestDto.setTaskId(dto.getTaskId());
qdUserSignInDao.updateInvalid(qdUserSignInRequestDto); qdUserSignInDao.updateInvalid(qdUserSignInRequestDto);
//删除所有打笔记 //删除所有打笔记
qdUserSignInNoteDao.delete(dto.getUserId(), dto.getTaskId()); qdUserSignInNoteDao.delete(dto.getUserId(), dto.getTaskId());
return Result.success(); return Result.success();
} catch (Exception e) { } catch (Exception e) {
...@@ -93,9 +93,40 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService { ...@@ -93,9 +93,40 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
return Result.failed(); 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 @Override
public Result findTaskList(QdUserSignInTaskRequestDto dto) { public Result findTaskList(QdUserSignInTaskRequestDto dto) {
try { try {
checkInvalidTask();
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("H:mm"); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("H:mm");
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
...@@ -192,7 +223,7 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService { ...@@ -192,7 +223,7 @@ public class QdUserSignInTaskServiceImpl implements QdUserSignInTaskService {
} }
private void checkInvalidTask() { public void checkInvalidTask() {
Date now = new Date(); Date now = new Date();
SignInTaskRequestDto signInTaskRequestDto = new SignInTaskRequestDto(); SignInTaskRequestDto signInTaskRequestDto = new SignInTaskRequestDto();
signInTaskRequestDto.setStateList(Arrays.asList(SignInTaskEnum.StateEnum.NOT_START.getCode(), SignInTaskEnum.StateEnum.PROCESSING.getCode())); signInTaskRequestDto.setStateList(Arrays.asList(SignInTaskEnum.StateEnum.NOT_START.getCode(), SignInTaskEnum.StateEnum.PROCESSING.getCode()));
......
...@@ -19,6 +19,13 @@ public interface QdUserSignInTaskService { ...@@ -19,6 +19,13 @@ public interface QdUserSignInTaskService {
*/ */
Result out(QdUserSignInTaskRequestDto dto); Result out(QdUserSignInTaskRequestDto dto);
/**
* 解散签到任务,仅创建人可以
* @param dto
* @return
*/
Result disband(QdUserSignInTaskRequestDto dto);
/** /**
* 查询用户参加的签到任务 * 查询用户参加的签到任务
...@@ -26,4 +33,10 @@ public interface QdUserSignInTaskService { ...@@ -26,4 +33,10 @@ public interface QdUserSignInTaskService {
* @return * @return
*/ */
Result findTaskList(QdUserSignInTaskRequestDto dto); Result findTaskList(QdUserSignInTaskRequestDto dto);
/**
* 检测过期任务
*/
void checkInvalidTask();
} }
...@@ -57,6 +57,21 @@ public class QdUserSignInTaskController { ...@@ -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 = "查询用户参加的签到任务") @ApiOperation(value = "查询用户参加的签到任务")
@PostMapping("/findTaskList") @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