提交 242d05fb authored 作者: 吕本才's avatar 吕本才

feat(promotion): 并优化打卡逻辑,打卡和上报的图片类型别混了

上级 81c2f59e
......@@ -140,6 +140,7 @@ public class TemporaryActivityClockCoreController {
}
TemporaryClockDto dto = new TemporaryClockDto(clockVo.getId(), clockVo.getTemporaryId(), clockVo.getClockPhoto(), clockVo.getPhotoType());
tempActivityClockCoreService.updateClockPhoto(dto);
return R.success();
}
......
......@@ -7,6 +7,7 @@ import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao;
import com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityPhotoMapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityPhotoDO;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryPhotoWrapper;
import com.wangxiaolu.promotion.enums.activity.ActivityPhotoType;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityPhotoDto;
import com.wangxiaolu.promotion.result.basedata.RCode;
......@@ -100,7 +101,9 @@ public class TemporaryActivityPhotoDaoImpl implements TemporaryActivityPhotoDao
@Override
public Map<Long, Map<Integer, String>> findClockPhotoGroupByClockIds(List<Long> clockIds) {
LambdaQueryWrapper<TemporaryActivityPhotoDO> wq = new LambdaQueryWrapper<>();
wq.in(TemporaryActivityPhotoDO::getClockId, clockIds).eq(TemporaryActivityPhotoDO::getIsDelete, StatusType.VALID.getType());
wq.in(TemporaryActivityPhotoDO::getClockId, clockIds)
.le(TemporaryActivityPhotoDO::getType, ActivityPhotoType.CLOCK_OUT.getType())
.eq(TemporaryActivityPhotoDO::getIsDelete, StatusType.VALID.getType());
List<TemporaryActivityPhotoDO> dos = temporaryActivityPhotoMapper.selectList(wq);
if (CollectionUtils.isEmpty(dos)) {
return null;
......@@ -196,6 +199,7 @@ public class TemporaryActivityPhotoDaoImpl implements TemporaryActivityPhotoDao
public Map<Integer, TemporaryActivityPhotoDto> findClockPhotoGroupByClockId(Long clockId) {
LambdaQueryWrapper<TemporaryActivityPhotoDO> wq = new LambdaQueryWrapper<>();
wq.eq(TemporaryActivityPhotoDO::getClockId, clockId)
.le(TemporaryActivityPhotoDO::getType, ActivityPhotoType.CLOCK_OUT.getType())
.eq(TemporaryActivityPhotoDO::getIsDelete, StatusType.VALID.getType());
List<TemporaryActivityPhotoDO> dos = temporaryActivityPhotoMapper.selectList(wq);
List<TemporaryActivityPhotoDto> photoDtos = transitionDtos(dos);
......
package com.wangxiaolu.promotion.domain.activity.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wangxiaolu.promotion.common.util.BeanUtils;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityTaskClockDao;
......@@ -74,7 +75,9 @@ public class TemporaryActivityTaskClockDaoImpl implements TemporaryActivityTaskC
TemporaryActivityTaskClockDO updateTaskClockDo = new TemporaryActivityTaskClockDO();
BeanUtils.copyProperties(updateTaskClockDto, updateTaskClockDo);
temporaryActivityTaskClockMapper.updateById(updateTaskClockDo);
Wrapper<TemporaryActivityTaskClockDO> wraper = new LambdaQueryWrapper<TemporaryActivityTaskClockDO>()
.eq(TemporaryActivityTaskClockDO::getClockId, updateTaskClockDto.getClockId());
temporaryActivityTaskClockMapper.update(updateTaskClockDo,wraper);
}
}
......@@ -44,7 +44,6 @@ public enum ActivityPhotoType {
*/
POS_SELL_VOUCHER(7),
/**
* POS照片
*/
......
......@@ -14,21 +14,30 @@ public interface ClockType {
String TEMPORARY_CLOCK_IN_BEGIN_TIME = "09:30:00";
String TEMPORARY_CLOCK_IN_END_TIME = "10:00:00";
/**
* 午休下班卡
*/
Integer TEMPORARY_NOON_CLOCK_OUT = 2;
String TEMPORARY_NOON_CLOCK_OUT_BEGIN_TIME = "13:00:00";
String TEMPORARY_NOON_CLOCK_OUT_END_TIME = "13:30:00";
/**
* 午休上班卡
*/
Integer TEMPORARY_NOON_CLOCK_IN = 3;
String TEMPORARY_NOON_CLOCK_IN_BEGIN_TIME = "14:30:00";
String TEMPORARY_NOON_CLOCK_IN_END_TIME = "15:00:00";
/**
* 下班卡
*/
Integer TEMPORARY_CLOCK_OUT = 4;
String TEMPORARY_CLOCK_OUT_BEGIN_TIME = "19:00:00";
String TEMPORARY_CLOCK_OUT_END_TIME = "23:59:00";
/**
* 随机打卡
*/
Integer TEMPORARY_RAND_CLOCK = 8;
Integer TEMPORARY_RAND_CLOCK = 10;
String TEMPORARY_RAND_CLOCK_BEGIN_TIME = "17:30:00";
String TEMPORARY_RAND_CLOCK_END_TIME = "19:30:00";
......
......@@ -61,4 +61,9 @@ public class TemporaryActivityTaskClockRes {
private Date clockTime;
private List<String> clockPhotos;
private Date requiredlockTime;
private Boolean editableFlag = false;
}
......@@ -79,7 +79,7 @@ public class TemporaryActivityTaskClockServiceImpl extends ServiceImpl<Temporary
taskClockDO.setClockId(dto.getId())
.setTemporaryId(dto.getTemporaryId())
.setTemporaryName(dto.getTemporaryName())
.setReportedId(dto.getReportedId())
.setReportedId(null)
.setPlanId(dto.getPlanId())
.setClockTime(null)
.setTaskType(ActivityPhotoType.RANDOM_TASK.getType())
......@@ -118,7 +118,8 @@ public class TemporaryActivityTaskClockServiceImpl extends ServiceImpl<Temporary
taskClockDO.setClockId(dto.getId())
.setTemporaryId(dto.getTemporaryId())
.setTemporaryName(dto.getTemporaryName())
.setReportedId(dto.getReportedId())
// .setReportedId(dto.getReportedId())
.setReportedId(null)
.setPlanId(dto.getPlanId())
.setClockTime(null)
.setTaskType(ActivityPhotoType.POS_PHOTO.getType())
......@@ -169,6 +170,7 @@ public class TemporaryActivityTaskClockServiceImpl extends ServiceImpl<Temporary
BeanUtils.copyProperties(clockVo, taskClockDO);
// 更新 任务状态为未完成,打卡时间为当前时间
taskClockDO.setTaskStatus(ActivityClockTaskStatus.COMPLETED.getType());
taskClockDO.setReportedId(null);
taskClockDO.setClockTime(new Date());
temporaryActivityTaskClockDao.update(taskClockDO);
......@@ -209,6 +211,15 @@ public class TemporaryActivityTaskClockServiceImpl extends ServiceImpl<Temporary
if (taskClockDO != null) {
TemporaryActivityTaskClockRes res = new TemporaryActivityTaskClockRes();
BeanUtils.copyProperties(taskClockDO, res);
// 是否可以编辑
Date requiredlockTime = res.getRequiredlockTime();
if (requiredlockTime != null) {
Date now = new Date();
if (now.compareTo(requiredlockTime) > 0 && now.compareTo(DateUtil.offsetMinute(requiredlockTime,15)) < 0) {
res.setEditableFlag(true);
}
}
// 查询图片
TemporaryPhotoWrapper photoWrapper = new TemporaryPhotoWrapper()
.setClockId(taskClockDO.getClockId())
......
......@@ -168,4 +168,9 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle
}
return 0;
}
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
log.error("用户[" + session.getAttributes().get("userId") + "]异常断开");
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论