提交 16622ec8 authored 作者: 吕本才's avatar 吕本才

feat(promotion-service): 新增打卡信息查询接口并优化小程序的模板信息环境

上级 03d96930
......@@ -41,4 +41,6 @@ public interface TemporaryActivityClockDao {
void employeePage(String employeeQcId, PageInfo pageInfo,TemporaryClockWrapper tcw);
TemporaryClockDto findLatestClockByTemporaryId(Integer temporaryId);
TemporaryClockDto findClockInfo(TemporaryClockWrapper wr);
}
......@@ -100,6 +100,13 @@ public class TemporaryActivityClockDaoImpl implements TemporaryActivityClockDao
return transitionDto(clockDO);
}
@Override
public TemporaryClockDto findClockInfo(TemporaryClockWrapper wr) {
TemporaryActivityClockDO clockDO = temporaryActivityClockMapper.selectOne(buildWrapper(wr));
TemporaryClockDto clockDto = transitionDto(clockDO);
return clockDto;
}
private LambdaQueryWrapper<TemporaryActivityClockDO> buildWrapper(TemporaryClockWrapper tcw) {
LambdaQueryWrapper<TemporaryActivityClockDO> qw = new LambdaQueryWrapper<>();
if (Objects.nonNull(tcw.getId())) {
......
......@@ -195,7 +195,8 @@ public class TemporaryActivityPhotoDaoImpl implements TemporaryActivityPhotoDao
@Override
public Map<Integer, TemporaryActivityPhotoDto> findClockPhotoGroupByClockId(Long clockId) {
LambdaQueryWrapper<TemporaryActivityPhotoDO> wq = new LambdaQueryWrapper<>();
wq.eq(TemporaryActivityPhotoDO::getClockId, clockId).eq(TemporaryActivityPhotoDO::getIsDelete, StatusType.VALID.getType());
wq.eq(TemporaryActivityPhotoDO::getClockId, clockId)
.eq(TemporaryActivityPhotoDO::getIsDelete, StatusType.VALID.getType());
List<TemporaryActivityPhotoDO> dos = temporaryActivityPhotoMapper.selectList(wq);
List<TemporaryActivityPhotoDto> photoDtos = transitionDtos(dos);
Map<Integer, TemporaryActivityPhotoDto> dtoMap = photoDtos.stream().collect(Collectors.toMap(TemporaryActivityPhotoDto::getType, pDto -> pDto));
......
......@@ -19,4 +19,5 @@ public interface TemporaryActivityClockQueryService {
TemporaryClockDto findLatestClockByTemporaryId(Integer temporaryId);
TemporaryClockDto findClockInfo(TemporaryClockWrapper wr);
}
......@@ -19,8 +19,8 @@ import java.util.Map;
@Service
@Slf4j
public class SubscribeMessageService {
// @Value("${wx.miniapp.subscribe-message-url}")
// private String subscribeUrl;
@Value("${wx.cx_miniapp.miniprogram_state:formal}")
private String miniprogramState;
@Autowired
private RestTemplate restTemplate;
......@@ -45,6 +45,8 @@ public class SubscribeMessageService {
requestBody.put("template_id", templateId);
// 跳转页面
requestBody.put("page", page);
// 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
requestBody.put("miniprogram_state", miniprogramState);
// 格式化模板数据(微信要求格式:{"字段名":{"value":"内容"}})
Map<String, Map<String, String>> dataMap = new HashMap<>();
......
......@@ -83,6 +83,17 @@ public class TemporaryActivityClockQueryServiceImpl implements TemporaryActivity
return temporaryActivityClockDao.findLatestClockByTemporaryId(temporaryId);
}
/**
* 查询打卡主信息
* @param wr
* @return
*/
@Override
public TemporaryClockDto findClockInfo(TemporaryClockWrapper wr) {
TemporaryClockDto temporaryClockDto = temporaryActivityClockDao.findClockInfo(wr);
return temporaryClockDto;
}
/**
* 查询打卡图片
*/
......
package com.wangxiaolu.promotion.service.activity.temporary.impl;
import cn.hutool.core.date.CalendarUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -12,6 +10,7 @@ import com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityTaskCloc
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityTaskClockDO;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityTaskClockDao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryActivityTaskWrapperDto;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryPhotoWrapper;
import com.wangxiaolu.promotion.enums.activity.ActivityClockTaskStatus;
import com.wangxiaolu.promotion.enums.activity.ActivityPhotoType;
......@@ -19,6 +18,7 @@ import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityPho
import com.wangxiaolu.promotion.pojo.activity.temporary.res.TemporaryActivityTaskClockRes;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityTaskClockReq;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockQueryService;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityTaskClockService;
import com.wangxiaolu.promotion.utils.AuthUtils;
import com.wangxiaolu.promotion.utils.DateUtils;
......@@ -27,7 +27,6 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.time.LocalTime;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
......@@ -40,6 +39,8 @@ public class TemporaryActivityTaskClockServiceImpl extends ServiceImpl<Temporary
private TemporaryActivityTaskClockDao temporaryActivityTaskClockDao;
@Resource
private TemporaryActivityPhotoDao photoDao;
@Resource
private TemporaryActivityClockQueryService clockQueryService;
@Override
public List<TemporaryActivityTaskClockDO> listByTemporaryId(Long temporaryId) {
......@@ -171,9 +172,16 @@ public class TemporaryActivityTaskClockServiceImpl extends ServiceImpl<Temporary
temporaryActivityTaskClockDao.update(taskClockDO);
TemporaryClockWrapper wr = new TemporaryClockWrapper();
wr.setId(taskClockDO.getClockId());
TemporaryClockDto clockDto = clockQueryService.findClockInfo(wr);
TemporaryActivityPhotoDto dto = new TemporaryActivityPhotoDto();
dto.setClockId(taskClockDO.getClockId())
.setTemporaryId(taskClockDO.getTemporaryId())
// reportedId 问题
.setReportedId(clockDto.getReportedId())
.setClockId(taskClockDO.getClockId())
.setType(clockVo.getTaskType());
if (CollectionUtils.isEmpty(clockVo.getClockPhotos())) {
......
......@@ -89,6 +89,7 @@ public class ActivityStautsHandler {
msgBean.setData(taskClockDO);
taskClockSocketHandler.sendToUser(taskClockDO.getTemporaryId().toString(), msgBean);
log.info("发送websocket信息,用户id:{}", taskClockDO.getTemporaryId());
DateTime requiredlockTime = DateUtil.offsetMinute(taskClockDO.getRequiredlockTime(), 15);
// 2. 构建模板数据(根据小程序订阅模板的字段定义)
......@@ -96,7 +97,7 @@ public class ActivityStautsHandler {
// 模板中的字段1发布人
data.put("thing2", "小卤促销平台");
// 模板中的字段2 截止时间
data.put("time3", DateUtil.format(taskClockDO.getRequiredlockTime(),"yyyy-MM-dd HH:mm"));
data.put("time3", DateUtil.format(requiredlockTime,"yyyy-MM-dd HH:mm"));
// 模板中的字段3 任务名称
data.put("thing1", "销售金额需完成任务");
// 模板中的字段4 温馨提示
......
......@@ -45,6 +45,7 @@ wx:
cx_miniapp:
app_id: wxac14dc7765484d7d
app_secret: e73b574380a822c942e03ea4dc67aaa1
miniprogram_state: trial
tengxunyun:
# 腾讯云个人账号信息
......
......@@ -43,6 +43,8 @@ wx:
cx_miniapp:
app_id: wxac14dc7765484d7d
app_secret: e73b574380a822c942e03ea4dc67aaa1
miniprogram_state: fomal
tengxunyun:
# 腾讯云个人账号信息
secret_d: AKIDVt353sWyY0GXn0ANa0YyGdwDIBtjQwGS
......
......@@ -43,6 +43,8 @@ wx:
cx_miniapp:
app_id: wxac14dc7765484d7d
app_secret: e73b574380a822c942e03ea4dc67aaa1
miniprogram_state: trial
tengxunyun:
# 腾讯云个人账号信息
secret_d: AKIDVt353sWyY0GXn0ANa0YyGdwDIBtjQwGS
......
......@@ -27,9 +27,9 @@
</update>
<insert id="insertList">
insert into temporary_activity_photo (temporary_id, reported_id, type, photo_url, photo_filed_id)
insert into temporary_activity_photo (temporary_id, reported_id,clock_id, type, photo_url, photo_filed_id)
<foreach collection="dos" item="item" index="index" separator=" UNION ALL ">
SELECT #{item.temporaryId}, #{item.reportedId}, #{item.type}, #{item.photoUrl}, #{item.photoFiledId} FROM dual
SELECT #{item.temporaryId}, #{item.reportedId}, #{item.clockId}, #{item.type}, #{item.photoUrl}, #{item.photoFiledId} FROM dual
WHERE NOT EXISTS( SELECT 1 FROM temporary_activity_photo WHERE reported_id = #{item.reportedId} AND type = #{item.type} AND photo_filed_id = #{item.photoFiledId} )
</foreach>
</insert>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论