提交 c09a91f1 authored 作者: 李秋林's avatar 李秋林

根据促销ID查询促销计划详细、任务上报信息、促销员打卡信息

上级 28915d8f
package com.wangxiaolu.promotion.controller.activityplanv2;
import cn.hutool.core.collection.CollectionUtil;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.response.ActivityResponse;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockQueryService;
import com.wangxiaolu.promotion.service.activityplanv2.PromPlanQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull;
import javax.websocket.server.PathParam;
import java.util.ArrayList;
import java.util.List;
/**
* @author : liqiulin
......@@ -20,10 +28,36 @@ public class PromPlanQueryController {
@Autowired
private PromPlanQueryService promPlanQueryService;
@Autowired
private TemporaryActivityClockQueryService temporaryActivityClockQueryService;
@PostMapping("/page")
public R queryPage(@RequestBody PageInfo pageInfo){
promPlanQueryService.queryPage(pageInfo);
return R.success(pageInfo);
}
/**
* 根据计划ID查询任务、打卡信息
*/
@GetMapping("/{id}")
public R queryPlanById(@PathParam("id") @PathVariable Long id){
ActivityResponse activityResponse = promPlanQueryService.queryPlanById(id);
List<TemporaryActivityReportedDto> reportedDtos = activityResponse.getReportedDtos();
if (CollectionUtil.isEmpty(reportedDtos)){
return R.success(activityResponse);
}
List<ActivityResponse.ActivityReported> aas = new ArrayList<>();
for (TemporaryActivityReportedDto reportedDto : reportedDtos) {
TemporaryClockWrapper tcw = new TemporaryClockWrapper();
tcw.setReportedId(reportedDto.getId());
TemporaryClockDto clockDto = temporaryActivityClockQueryService.selectOne(tcw);
ActivityResponse.ActivityReported aa = new ActivityResponse.ActivityReported(reportedDto,clockDto);
aas.add(aa);
}
activityResponse.setReporteds(aas);
return R.success(activityResponse);
}
}
......@@ -36,4 +36,6 @@ public interface TemporaryActivityReportedDao {
* 根据ID修改
*/
void updateById(TemporaryActivityReportedDto temActDto);
List<TemporaryActivityReportedDto> findList(TemporaryActivityWrapper taw);
}
......@@ -93,6 +93,13 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
temporaryActivityReportedMapper.updateById(rDo);
}
@Override
public List<TemporaryActivityReportedDto> findList(TemporaryActivityWrapper taw) {
LambdaQueryWrapper<TemporaryActivityReportedDO> qw = buildQueryList(taw);
List<TemporaryActivityReportedDO> dos = temporaryActivityReportedMapper.selectList(qw);
return transitionDtos(dos);
}
private LambdaQueryWrapper<TemporaryActivityReportedDO> buildQueryList(TemporaryActivityWrapper tw) {
LambdaQueryWrapper<TemporaryActivityReportedDO> queryWrapper = new LambdaQueryWrapper<>();
if (Objects.nonNull(tw.getTemporaryId())) {
......@@ -131,6 +138,9 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
if (!StringUtils.isEmpty(tw.getStoreNameLike())){
queryWrapper.like(TemporaryActivityReportedDO::getStoreName,tw.getStoreNameLike());
}
if (Objects.nonNull(tw.getPlanId())){
queryWrapper.eq(TemporaryActivityReportedDO::getPlanId,tw.getPlanId());
}
queryWrapper.eq(TemporaryActivityReportedDO::getIsDelete, StatusType.VALID.getType());
// 默认创建日期倒序排列
queryWrapper.orderByDesc(TemporaryActivityReportedDO::getId);
......
......@@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
/**
* @author : liqiulin
......@@ -67,6 +68,9 @@ public class TemporaryActivityWrapper {
private String storeNameLike;
private List<Long> planIds;
private Long planId;
public Date getCreateDateEnd() {
String format = DateUtil.format(this.createDateEnd, "yyyy-MM-dd 23:59:59");
this.createDateEnd = DateUtil.parse(format);
......
package com.wangxiaolu.promotion.pojo.activity.planv2.response;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-03-27 15
* @describe :
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class ActivityResponse {
ActivityPlanInfoDto planInfo;
List<ActivityReported> reporteds;
@JsonIgnore
List<TemporaryActivityReportedDto> reportedDtos;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public static class ActivityReported{
TemporaryActivityReportedDto reported;
TemporaryClockDto clock;
}
}
package com.wangxiaolu.promotion.service.activity.temporary;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
/**
......@@ -13,6 +14,9 @@ public interface TemporaryActivityClockQueryService {
TemporaryClockDto findTemporaryClockByTemIdAndDate(Integer temporaryId, String createDate);
TemporaryClockDto findById(Long id);
TemporaryClockDto selectOne(TemporaryClockWrapper tcw);
TemporaryClockDto findLatestClockByTemporaryId(Integer temporaryId);
}
......@@ -61,6 +61,13 @@ public class TemporaryActivityClockQueryServiceImpl implements TemporaryActivity
return temporaryClockDto;
}
@Override
public TemporaryClockDto selectOne(TemporaryClockWrapper tcw) {
TemporaryClockDto temporaryClockDto = temporaryActivityClockDao.selectOne(tcw);
findClockPhoto(temporaryClockDto);
return temporaryClockDto;
}
@Override
public TemporaryClockDto findLatestClockByTemporaryId(Integer temporaryId) {
return temporaryActivityClockDao.findLatestClockByTemporaryId(temporaryId);
......
......@@ -2,6 +2,7 @@ package com.wangxiaolu.promotion.service.activityplanv2;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.planv2.response.ActivityResponse;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
import java.util.List;
......@@ -17,4 +18,6 @@ public interface PromPlanQueryService {
List<ActivityPlanInfoDto> findClockList(TemporaryActivityPlanVo temporaryActivityPlanVo);
ActivityPlanInfoDto selectById(Long planId);
ActivityResponse queryPlanById(Long id);
}
package com.wangxiaolu.promotion.service.activityplanv2.impl;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryActivityWrapper;
import com.wangxiaolu.promotion.domain.activityplanv2.dao.ActivityPlanInfoDao;
import com.wangxiaolu.promotion.domain.manage.wrapperQo.ActivityPlanInfoWrapper;
import com.wangxiaolu.promotion.enums.plan.PlanStatus;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.planv2.response.ActivityResponse;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
import com.wangxiaolu.promotion.service.activityplanv2.PromPlanQueryService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -13,6 +18,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
......@@ -26,6 +32,10 @@ public class PromPlanQueryServiceImpl implements PromPlanQueryService {
@Autowired
private ActivityPlanInfoDao activityPlanInfoDao;
@Autowired
private TemporaryActivityReportedDao temporaryActivityReportedDao;
@Autowired
private TemporaryActivityClockDao temporaryActivityClockDao;
@Override
public void queryPage(PageInfo pageInfo) {
......@@ -49,4 +59,14 @@ public class PromPlanQueryServiceImpl implements PromPlanQueryService {
public ActivityPlanInfoDto selectById(Long planId) {
return activityPlanInfoDao.selectById(planId);
}
@Override
public ActivityResponse queryPlanById(Long id) {
ActivityPlanInfoDto planInfoDto = activityPlanInfoDao.selectById(id);
TemporaryActivityWrapper taw = new TemporaryActivityWrapper().setPlanId(id);
List<TemporaryActivityReportedDto> reportedDtos = temporaryActivityReportedDao.findList(taw);
ActivityResponse response = new ActivityResponse().setPlanInfo(planInfoDto).setReportedDtos(reportedDtos);
return response;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论