Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
242d05fb
提交
242d05fb
authored
11月 14, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(promotion): 并优化打卡逻辑,打卡和上报的图片类型别混了
上级
81c2f59e
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
43 行增加
和
6 行删除
+43
-6
TemporaryActivityClockCoreController.java
...ivity/temporary/TemporaryActivityClockCoreController.java
+1
-0
TemporaryActivityPhotoDaoImpl.java
...main/activity/dao/impl/TemporaryActivityPhotoDaoImpl.java
+5
-1
TemporaryActivityTaskClockDaoImpl.java
.../activity/dao/impl/TemporaryActivityTaskClockDaoImpl.java
+4
-1
ActivityPhotoType.java
...angxiaolu/promotion/enums/activity/ActivityPhotoType.java
+0
-1
ClockType.java
...va/com/wangxiaolu/promotion/enums/activity/ClockType.java
+10
-1
TemporaryActivityTaskClockRes.java
...activity/temporary/res/TemporaryActivityTaskClockRes.java
+5
-0
TemporaryActivityTaskClockServiceImpl.java
...temporary/impl/TemporaryActivityTaskClockServiceImpl.java
+13
-2
TemporaryActivityTaskClockSocketHandler.java
...on/websocket/TemporaryActivityTaskClockSocketHandler.java
+5
-0
没有找到文件。
src/main/java/com/wangxiaolu/promotion/controller/activity/temporary/TemporaryActivityClockCoreController.java
浏览文件 @
242d05fb
...
...
@@ -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
();
}
...
...
src/main/java/com/wangxiaolu/promotion/domain/activity/dao/impl/TemporaryActivityPhotoDaoImpl.java
浏览文件 @
242d05fb
...
...
@@ -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
);
...
...
src/main/java/com/wangxiaolu/promotion/domain/activity/dao/impl/TemporaryActivityTaskClockDaoImpl.java
浏览文件 @
242d05fb
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
);
}
}
src/main/java/com/wangxiaolu/promotion/enums/activity/ActivityPhotoType.java
浏览文件 @
242d05fb
...
...
@@ -44,7 +44,6 @@ public enum ActivityPhotoType {
*/
POS_SELL_VOUCHER
(
7
),
/**
* POS照片
*/
...
...
src/main/java/com/wangxiaolu/promotion/enums/activity/ClockType.java
浏览文件 @
242d05fb
...
...
@@ -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"
;
...
...
src/main/java/com/wangxiaolu/promotion/pojo/activity/temporary/res/TemporaryActivityTaskClockRes.java
浏览文件 @
242d05fb
...
...
@@ -61,4 +61,9 @@ public class TemporaryActivityTaskClockRes {
private
Date
clockTime
;
private
List
<
String
>
clockPhotos
;
private
Date
requiredlockTime
;
private
Boolean
editableFlag
=
false
;
}
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/impl/TemporaryActivityTaskClockServiceImpl.java
浏览文件 @
242d05fb
...
...
@@ -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
())
...
...
src/main/java/com/wangxiaolu/promotion/websocket/TemporaryActivityTaskClockSocketHandler.java
浏览文件 @
242d05fb
...
...
@@ -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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论