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

图片保存

上级 638c2f1a
package com.wangxiaolu.promotion.controller.activity.temporary; package com.wangxiaolu.promotion.controller.activity.temporary;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockQueryService; import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockQueryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -29,7 +26,18 @@ public class TemporaryActivityClockQueryController { ...@@ -29,7 +26,18 @@ public class TemporaryActivityClockQueryController {
* 根据促销员id查询今日打卡信息 * 根据促销员id查询今日打卡信息
*/ */
@GetMapping("/{temporary_id}") @GetMapping("/{temporary_id}")
public TemporaryClockDto findTodayTemporaryClockByTemId(@PathVariable("temporary_id") @NotNull Integer temporaryId){ public TemporaryClockDto findTodayTemporaryClockByTemId(@PathVariable("temporary_id") @NotNull Integer temporaryId) {
return temporaryActivityClockQueryService.findTodayTemporaryClockByTemId(temporaryId); return temporaryActivityClockQueryService.findTodayTemporaryClockByTemId(temporaryId);
} }
/**
* 根据促销员id查询指定日期打卡信息
* @param temporaryId 促销员id
* @param createDate 指定日期,格式:2024-04-25
* @return 打卡信息
*/
@GetMapping("/date")
public TemporaryClockDto findTemporaryClockByTemIdAndDate(Integer temporaryId, String createDate) {
return temporaryActivityClockQueryService.findTemporaryClockByTemIdAndDate(temporaryId, createDate);
}
} }
...@@ -4,8 +4,8 @@ import com.wangxiaolu.promotion.enums.activity.ClockType; ...@@ -4,8 +4,8 @@ import com.wangxiaolu.promotion.enums.activity.ClockType;
import com.wangxiaolu.promotion.exception.ParamException; import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityDataVo; import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityDataVo;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.pojo.user.vo.TemporaryClockVo; import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryClockVo;
import com.wangxiaolu.promotion.result.basedata.RCode; import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService; import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -66,14 +66,15 @@ public class TemporaryActivityCoreController { ...@@ -66,14 +66,15 @@ public class TemporaryActivityCoreController {
} }
/** /**
* 促销员今日活动上报 * 促销员[今日活动]数据保存
* 返回活动生成id * 返回活动生成id
*/ */
@PostMapping("/today/reported") @PostMapping("/today/reported")
public Long todayActivityDataReported(@RequestBody @Validated TemporaryActivityDataVo activityVo) { public Long todayActivityDataReported(@RequestBody @Validated TemporaryActivityDataVo activityVo) {
TemporaryActivityReportedDto temActDto = new TemporaryActivityReportedDto(); TemporaryActivityReportedDto temActDto = new TemporaryActivityReportedDto();
BeanUtils.copyProperties(activityVo, temActDto); BeanUtils.copyProperties(activityVo, temActDto);
if (Objects.nonNull(activityVo.getActivityReportedId())){ temActDto.setId(activityVo.getActivityReportedId());
if (Objects.nonNull(activityVo.getActivityReportedId())) {
tempActivityCoreService.activityDataReportedUpdate(temActDto); tempActivityCoreService.activityDataReportedUpdate(temActDto);
return activityVo.getActivityReportedId(); return activityVo.getActivityReportedId();
} }
...@@ -84,6 +85,11 @@ public class TemporaryActivityCoreController { ...@@ -84,6 +85,11 @@ public class TemporaryActivityCoreController {
/**
* todo 促销员[今日活动]数据提交审批
*/
// 上班打卡 // 上班打卡
private void builderClockInData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) { private void builderClockInData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
// todo if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_CLOCK_IN_BEGIN_TIME, ClockType.TEMPORARY_CLOCK_IN_END_TIME)) { // todo if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_CLOCK_IN_BEGIN_TIME, ClockType.TEMPORARY_CLOCK_IN_END_TIME)) {
......
...@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** /**
...@@ -30,7 +31,7 @@ public class TemporaryActivityQueryController { ...@@ -30,7 +31,7 @@ public class TemporaryActivityQueryController {
* @return 所有任务(分页查询) * @return 所有任务(分页查询)
*/ */
@PostMapping("/all/{id}") @PostMapping("/all/{id}")
public PageInfo findtemporaryIdActivityDataList(@PathVariable("id") @NotNull Long temporaryId, @RequestBody PageInfo pageInfo) { public PageInfo findtemporaryIdActivityDataList(@PathVariable("id") @NotNull Integer temporaryId, @RequestBody PageInfo pageInfo) {
temporaryActivityQueryService.findtemporaryIdActivityDataList(temporaryId, pageInfo); temporaryActivityQueryService.findtemporaryIdActivityDataList(temporaryId, pageInfo);
return pageInfo; return pageInfo;
} }
...@@ -39,7 +40,7 @@ public class TemporaryActivityQueryController { ...@@ -39,7 +40,7 @@ public class TemporaryActivityQueryController {
* 根据促销员id查询今日任务 * 根据促销员id查询今日任务
*/ */
@GetMapping("/today/{id}") @GetMapping("/today/{id}")
public TemporaryActivityReportedDto findTemporaryTodayActivityData(@PathVariable("id") @NotNull Long temporaryId) { public TemporaryActivityReportedDto findTemporaryTodayActivityData(@PathVariable("id") @NotNull Integer temporaryId) {
TemporaryActivityReportedDto dto = temporaryActivityQueryService.findtemporaryIdTodayActivityData(temporaryId); TemporaryActivityReportedDto dto = temporaryActivityQueryService.findtemporaryIdTodayActivityData(temporaryId);
return dto; return dto;
} }
......
package com.wangxiaolu.promotion.domain.activity.dao; package com.wangxiaolu.promotion.domain.activity.dao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper; import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
/** /**
* @author : liqiulin * @author : liqiulin
......
package com.wangxiaolu.promotion.domain.activity.dao;
import java.util.List;
import java.util.Map;
/**
* @author : liqiulin
* @date : 2024-05-09 11
* @describe :
*/
public interface TemporaryActivityPhotoDao {
/**
* 保存活动上报照片list
*/
void saveReportedList(Integer temporaryId, Long reportedId, Integer photoType, List<String> urls);
/**
* 根据促销员id-活动上报id查询图片
*/
Map<Integer, List<String>> findReportedGroup(Integer temporaryId, Long reportedId);
}
...@@ -19,12 +19,12 @@ public interface TemporaryActivityReportedDao { ...@@ -19,12 +19,12 @@ public interface TemporaryActivityReportedDao {
/** /**
* 分页查询促销员任务列表 * 分页查询促销员任务列表
*/ */
void findListByTemporaryId(Long temporaryId, PageInfo pageInfo); void findListByTemporaryId(Integer temporaryId, PageInfo pageInfo);
/** /**
* 查询当日任务 * 查询当日任务
*/ */
TemporaryActivityReportedDto findOneByCurrentDate(Long temporaryId); TemporaryActivityReportedDto findOneByCurrentDate(Integer temporaryId);
/** /**
* 根据ID查询 * 根据ID查询
......
...@@ -6,7 +6,7 @@ import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao; ...@@ -6,7 +6,7 @@ import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityClockMapper; import com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityClockMapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO; import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper; import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
......
package com.wangxiaolu.promotion.domain.activity.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author : liqiulin
* @date : 2024-05-09 11
* @describe :
*/
@Service
public class TemporaryActivityPhotoDaoImpl implements TemporaryActivityPhotoDao {
@Autowired
TemporaryActivityPhotoMapper temporaryActivityPhotoMapper;
@Override
public void saveReportedList(Integer temporaryId, Long reportedId, Integer photoType, List<String> urls) {
for (String photoUrl : urls) {
String[] photoArr = photoUrl.split("/");
TemporaryActivityPhotoDO photoDo = new TemporaryActivityPhotoDO();
photoDo.setTemporaryId(temporaryId).setReportedId(reportedId).setType(photoType).setPhotoUrl(photoUrl).setPhotoFiledId(photoArr[photoArr.length - 1]);
temporaryActivityPhotoMapper.insert(photoDo);
}
}
/**
* 活动上报图片查询
*
* @param temporaryId 促销员id
* @param reportedId 活动id
*/
@Override
public Map<Integer, List<String>> findReportedGroup(Integer temporaryId, Long reportedId) {
LambdaQueryWrapper<TemporaryActivityPhotoDO> wq = new LambdaQueryWrapper<>();
wq.eq(TemporaryActivityPhotoDO::getReportedId, reportedId).eq(TemporaryActivityPhotoDO::getIsDelete, 1);
List<TemporaryActivityPhotoDO> dos = temporaryActivityPhotoMapper.selectList(wq);
if (CollectionUtils.isEmpty(dos)) {
return null;
}
Map<Integer, List<String>> groupPhoto = dos.stream().collect(Collectors.groupingBy(TemporaryActivityPhotoDO::getType, Collectors.mapping(TemporaryActivityPhotoDO::getPhotoUrl, Collectors.toList())));
return groupPhoto;
}
}
...@@ -39,23 +39,22 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport ...@@ -39,23 +39,22 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
*/ */
@Override @Override
public long activityDataSave(TemporaryActivityReportedDto temActDto) { public long activityDataSave(TemporaryActivityReportedDto temActDto) {
TemporaryActivityReportedDO tDo = new TemporaryActivityReportedDO(); TemporaryActivityReportedDO tDo = new TemporaryActivityReportedDO();
BeanUtils.copyProperties(temActDto, tDo); BeanUtils.copyProperties(temActDto, tDo);
tDo.setApproveStatus(temActDto.getApproveStatus().name()); tDo.setApproveStatus(temActDto.getApproveStatus().name());
tDo.setCreateDate(DateUtil.today()); tDo.setCreateDate(DateUtil.today());
int tId = temporaryActivityReportedMapper.insert(tDo); temporaryActivityReportedMapper.insert(tDo);
log.info("促销员今日活动上报数据完成,生成id[{}],数据信息:{}", tId, tDo); log.info("促销员今日活动上报数据完成,生成id[{}],数据信息:{}", tDo.getId(), tDo);
return tId; return tDo.getId();
} }
/** /**
* 根据促销员id查询所有任务 * 根据促销员id查询所有任务
*/ */
@Override @Override
public void findListByTemporaryId(Long temporaryId, PageInfo pageInfo) { public void findListByTemporaryId(Integer temporaryId, PageInfo pageInfo) {
TemporaryActivityWrapper taw = new TemporaryActivityWrapper() TemporaryActivityWrapper taw = new TemporaryActivityWrapper()
.setTemporaryId(temporaryId); .setTemporaryId(temporaryId);
LambdaQueryWrapper<TemporaryActivityReportedDO> temQw = buildQueryList(taw); LambdaQueryWrapper<TemporaryActivityReportedDO> temQw = buildQueryList(taw);
...@@ -70,7 +69,7 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport ...@@ -70,7 +69,7 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
* 根据促销员id查询今日任务 * 根据促销员id查询今日任务
*/ */
@Override @Override
public TemporaryActivityReportedDto findOneByCurrentDate(Long temporaryId) { public TemporaryActivityReportedDto findOneByCurrentDate(Integer temporaryId) {
TemporaryActivityWrapper taw = new TemporaryActivityWrapper() TemporaryActivityWrapper taw = new TemporaryActivityWrapper()
.setTemporaryId(temporaryId) .setTemporaryId(temporaryId)
.setCreateDate(DateUtil.today()); .setCreateDate(DateUtil.today());
......
package com.wangxiaolu.promotion.domain.activity.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityPhotoDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author a02200059
* @description 针对表【temporary_activity_photo】的数据库操作Mapper
* @createDate 2024-05-09 11:22:33
* @Entity com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityPhoto
*/
@Mapper
@Repository
public interface TemporaryActivityPhotoMapper extends BaseMapper<TemporaryActivityPhotoDO> {
}
package com.wangxiaolu.promotion.domain.activity.mapper.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.experimental.Accessors;
/**
*
* @TableName temporary_activity_photo
*/
@TableName(value ="temporary_activity_photo")
@Data
@Accessors(chain = true)
public class TemporaryActivityPhotoDO implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* temporary_info表id
*/
private Integer temporaryId;
/**
* 活动上报ID,关联表temporary_activity_reported表主键id
*/
private Long reportedId;
/**
* 图片所属类别:1:推广试吃;2……
*/
private Integer type;
/**
* 图片http地址
*/
private String photoUrl;
/**
* 图片Id
*/
private String photoFiledId;
/**
* 是否删除
* 0:删除;1:可用
*/
private Integer isDelete;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
...@@ -18,7 +18,7 @@ public class TemporaryActivityWrapper { ...@@ -18,7 +18,7 @@ public class TemporaryActivityWrapper {
/** /**
* temporaryId * temporaryId
*/ */
Long temporaryId; Integer temporaryId;
/** /**
* 创建时间YYYY-MM-DD * 创建时间YYYY-MM-DD
......
package com.wangxiaolu.promotion.enums.activity;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author : liqiulin
* @date : 2024-05-09 11
* @describe : 活动照片图片类型
*/
@Getter
@AllArgsConstructor
public enum ActivityPhotoType {
/**
* 推广试吃照片
*/
tgsc(1),
/**
* 推广互动照片
*/
tghd(2),
/**
* 推广成交照片
*/
tgcj(3),
;
private int type;
}
package com.wangxiaolu.promotion.exception;
import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.result.basedata.StatusCode;
import lombok.Getter;
/**
* @author : liqiulin
* @date : 2024-03-28 19
* @describe : 业务流程异常
*/
@Getter
public class FlowException extends RuntimeException{
private int code;
private String msg;
public FlowException(StatusCode statusCode, String message) {
super(message);
this.code = statusCode.getCode();
this.msg = statusCode.getMsg();
}
/**
* 默认异常编码
*/
public FlowException(String message) {
super(message);
this.code = RCode.LOGIN_PARAM_ERROR.getCode();
this.msg = RCode.LOGIN_PARAM_ERROR.getMsg();
}
}
...@@ -6,7 +6,9 @@ import lombok.Data; ...@@ -6,7 +6,9 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -70,6 +72,22 @@ public class TemporaryActivityReportedDto { ...@@ -70,6 +72,22 @@ public class TemporaryActivityReportedDto {
*/ */
private Date approveTime; private Date approveTime;
/**
* 推广试吃照片
*/
List<String> tgscPhotoUrls;
/**
* 推广互动照片
*/
List<String> tghdPhotoUrls;
/**
* 推广成交照片
*/
List<String> tgcjPhotoUrls;
/** /**
* 创建时间 * 创建时间
*/ */
......
package com.wangxiaolu.promotion.pojo.user.dto; package com.wangxiaolu.promotion.pojo.activity.temporary.dto;
import com.wangxiaolu.promotion.enums.activity.ClockType; import com.wangxiaolu.promotion.enums.activity.ClockType;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
......
...@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; ...@@ -6,6 +6,7 @@ import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -42,4 +43,22 @@ public class TemporaryActivityDataVo { ...@@ -42,4 +43,22 @@ public class TemporaryActivityDataVo {
@NotNull(message = "活动店铺异常") @NotNull(message = "活动店铺异常")
private String storeQcId; private String storeQcId;
/**
* 推广试吃照片
* 只传增量,存量数据前端不再返回,增量数据直接保存到DB中
*/
List<String> tgscPhotoUrls;
/**
* 推广互动照片
* 只传增量,存量数据前端不再返回,增量数据直接保存到DB中
*/
List<String> tghdPhotoUrls;
/**
* 推广成交照片
* 只传增量,存量数据前端不再返回,增量数据直接保存到DB中
*/
List<String> tgcjPhotoUrls;
} }
package com.wangxiaolu.promotion.pojo.user.vo; package com.wangxiaolu.promotion.pojo.activity.temporary.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
......
package com.wangxiaolu.promotion.result.advice; package com.wangxiaolu.promotion.result.advice;
import com.wangxiaolu.promotion.exception.APIException; import com.wangxiaolu.promotion.exception.APIException;
import com.wangxiaolu.promotion.exception.FlowException;
import com.wangxiaolu.promotion.exception.ParamException; import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.result.basedata.R; import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.result.basedata.RCode; import com.wangxiaolu.promotion.result.basedata.RCode;
...@@ -25,6 +26,11 @@ public class ControllerExceptionAdvice { ...@@ -25,6 +26,11 @@ public class ControllerExceptionAdvice {
return new R(e.getCode(), e.getMsg(), e.getMessage()); return new R(e.getCode(), e.getMsg(), e.getMessage());
} }
@ExceptionHandler({FlowException.class})
public R flowExceptionHandler(FlowException e) {
return new R(e.getCode(), e.getMsg(), e.getMessage());
}
@ExceptionHandler({APIException.class}) @ExceptionHandler({APIException.class})
public R apiExceptionHandler(APIException e) { public R apiExceptionHandler(APIException e) {
return new R(e.getCode(), e.getMsg(), e.getMessage()); return new R(e.getCode(), e.getMsg(), e.getMessage());
......
...@@ -24,6 +24,7 @@ public enum RCode implements StatusCode { ...@@ -24,6 +24,7 @@ public enum RCode implements StatusCode {
*/ */
API_ERROR(2000, "业务异常"), API_ERROR(2000, "业务异常"),
API_DATA_ERROR(2001, "业务数据异常"), API_DATA_ERROR(2001, "业务数据异常"),
DATA_HAVE_ERROR(2002, "数据已存在,不可新增"),
/** /**
* user * user
......
package com.wangxiaolu.promotion.service.activity.temporary; package com.wangxiaolu.promotion.service.activity.temporary;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -9,4 +9,6 @@ import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; ...@@ -9,4 +9,6 @@ import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto;
*/ */
public interface TemporaryActivityClockQueryService { public interface TemporaryActivityClockQueryService {
TemporaryClockDto findTodayTemporaryClockByTemId(Integer temporaryId); TemporaryClockDto findTodayTemporaryClockByTemId(Integer temporaryId);
TemporaryClockDto findTemporaryClockByTemIdAndDate(Integer temporaryId, String createDate);
} }
package com.wangxiaolu.promotion.service.activity.temporary; package com.wangxiaolu.promotion.service.activity.temporary;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
/** /**
* @author : liqiulin * @author : liqiulin
......
...@@ -15,12 +15,12 @@ public interface TemporaryActivityQueryService { ...@@ -15,12 +15,12 @@ public interface TemporaryActivityQueryService {
/** /**
* 根据促销员id查询所有任务 * 根据促销员id查询所有任务
*/ */
void findtemporaryIdActivityDataList(Long temporaryId, PageInfo pageInfo); void findtemporaryIdActivityDataList(Integer temporaryId, PageInfo pageInfo);
/** /**
* 根据促销员id查询今日任务 * 根据促销员id查询今日任务
*/ */
TemporaryActivityReportedDto findtemporaryIdTodayActivityData(Long temporaryId); TemporaryActivityReportedDto findtemporaryIdTodayActivityData(Integer temporaryId);
TemporaryActivityReportedDto findTemporaryActivityById(Long activityId); TemporaryActivityReportedDto findTemporaryActivityById(Long activityId);
} }
...@@ -3,7 +3,7 @@ package com.wangxiaolu.promotion.service.activity.temporary.impl; ...@@ -3,7 +3,7 @@ package com.wangxiaolu.promotion.service.activity.temporary.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao; import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper; import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockQueryService; import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockQueryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -30,4 +30,15 @@ public class TemporaryActivityClockQueryServiceImpl implements TemporaryActivity ...@@ -30,4 +30,15 @@ public class TemporaryActivityClockQueryServiceImpl implements TemporaryActivity
return temporaryActivityClockDao.selectOne(tcw); return temporaryActivityClockDao.selectOne(tcw);
} }
/**
* 查询指定日期打卡信息
*/
@Override
public TemporaryClockDto findTemporaryClockByTemIdAndDate(Integer temporaryId, String createDate) {
TemporaryClockWrapper tcw = new TemporaryClockWrapper()
.setTemporaryId(temporaryId)
.setCreateDate(createDate);
return temporaryActivityClockDao.selectOne(tcw);
}
} }
package com.wangxiaolu.promotion.service.activity.temporary.impl; package com.wangxiaolu.promotion.service.activity.temporary.impl;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao; import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao; import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao;
import com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao; import com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao;
import com.wangxiaolu.promotion.domain.user.wrapperQo.StoreWrapper; import com.wangxiaolu.promotion.domain.user.wrapperQo.StoreWrapper;
import com.wangxiaolu.promotion.enums.activity.ActivityPhotoType;
import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus; import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus;
import com.wangxiaolu.promotion.exception.FlowException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto; import com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService; import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Objects; import java.util.Objects;
...@@ -24,31 +30,58 @@ import java.util.Objects; ...@@ -24,31 +30,58 @@ import java.util.Objects;
@Slf4j @Slf4j
public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreService { public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreService {
// 活动上报
@Autowired @Autowired
TemporaryActivityReportedDao temporaryActivityReportedDao; private TemporaryActivityReportedDao temporaryActivityReportedDao;
// 打卡数据
@Autowired @Autowired
TemporaryActivityClockDao temporaryActivityClockDao; private TemporaryActivityClockDao temporaryActivityClockDao;
@Autowired @Autowired
QinCeClienteleStoreDao qinCeClienteleStoreDao; private QinCeClienteleStoreDao qinCeClienteleStoreDao;
@Autowired
private TemporaryActivityPhotoDao tempActivityPhotoDao;
/** /**
* 活动上报保存 * 活动上报保存
*
* @return 生成id * @return 生成id
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public long activityDataReportedSave(TemporaryActivityReportedDto temActDto) { public long activityDataReportedSave(TemporaryActivityReportedDto temActDto) {
/**
* 判断是否已存在上报数据
*/
TemporaryActivityReportedDto haveDate = temporaryActivityReportedDao.findOneByCurrentDate(temActDto.getTemporaryId());
if (Objects.nonNull(haveDate)) {
throw new FlowException(RCode.DATA_HAVE_ERROR, null);
}
temActDto.setApproveStatus(TemActApproveStatus.SUBMITTED); temActDto.setApproveStatus(TemActApproveStatus.SUBMITTED);
// 根据storeQcId查询店铺信息 // 根据storeQcId查询店铺信息
QinCeClienteleStoreDto storeDto = qinCeClienteleStoreDao.getOneStore(new StoreWrapper().setQcId(temActDto.getStoreQcId())); QinCeClienteleStoreDto storeDto = qinCeClienteleStoreDao.getOneStore(new StoreWrapper().setQcId(temActDto.getStoreQcId()));
temActDto.setStoreName(storeDto.getStoreName()).setStoreAddr(storeDto.getStoreAddr()); temActDto.setStoreName(storeDto.getStoreName()).setStoreAddr(storeDto.getStoreAddr());
return temporaryActivityReportedDao.activityDataSave(temActDto); // 保存活动数据 temporary_activity_reported
long reportedId = temporaryActivityReportedDao.activityDataSave(temActDto);
temActDto.setId(reportedId);
// 保存图片
saveActivityPhoto(temActDto);
return reportedId;
}
/**
* 活动信息修改
* 1、判断活动是否可以修改
*/
@Override
public void activityDataReportedUpdate(TemporaryActivityReportedDto temActDto) {
// 图片增量保存
saveActivityPhoto(temActDto);
temporaryActivityReportedDao.updateById(temActDto);
} }
/** /**
...@@ -56,19 +89,32 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe ...@@ -56,19 +89,32 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
*/ */
@Override @Override
public void clockInTodayActivity(TemporaryClockDto dto) { public void clockInTodayActivity(TemporaryClockDto dto) {
if (Objects.isNull(dto.getId())){ if (Objects.isNull(dto.getId())) {
temporaryActivityClockDao.save(dto); temporaryActivityClockDao.save(dto);
return; return;
} }
temporaryActivityClockDao.updateById(dto); temporaryActivityClockDao.updateById(dto);
} }
/** private void saveActivityPhoto(TemporaryActivityReportedDto temActDto) {
* 活动信息修改 Integer temporaryId = temActDto.getTemporaryId();
* 1、判断活动是否可以修改 Long reportedId = temActDto.getId();
*/ // 推广试吃照片
@Override if (!CollectionUtils.isEmpty(temActDto.getTgscPhotoUrls())) {
public void activityDataReportedUpdate(TemporaryActivityReportedDto temActDto) { tempActivityPhotoDao.saveReportedList(temporaryId, reportedId, ActivityPhotoType.tgsc.getType(), temActDto.getTgscPhotoUrls());
temporaryActivityReportedDao.updateById(temActDto); }
// 推广互动照片
if (!CollectionUtils.isEmpty(temActDto.getTghdPhotoUrls())) {
tempActivityPhotoDao.saveReportedList(temporaryId, reportedId, ActivityPhotoType.tghd.getType(), temActDto.getTghdPhotoUrls());
}
// 推广成交照片
if (!CollectionUtils.isEmpty(temActDto.getTgcjPhotoUrls())) {
tempActivityPhotoDao.saveReportedList(temporaryId, reportedId, ActivityPhotoType.tgcj.getType(), temActDto.getTgcjPhotoUrls());
}
log.info("促销员今日活动上报-图片保存成功,关联活动上报数据id[{}],数据信息:{}", temActDto.getId(), temActDto);
} }
} }
package com.wangxiaolu.promotion.service.activity.temporary.impl; package com.wangxiaolu.promotion.service.activity.temporary.impl;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao; import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao;
import com.wangxiaolu.promotion.enums.activity.ActivityPhotoType;
import com.wangxiaolu.promotion.pojo.PageInfo; import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto; import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityQueryService; import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityQueryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -20,12 +27,15 @@ public class TemporaryActivityQueryServiceImpl implements TemporaryActivityQuery ...@@ -20,12 +27,15 @@ public class TemporaryActivityQueryServiceImpl implements TemporaryActivityQuery
@Autowired @Autowired
TemporaryActivityReportedDao temporaryActivityReportedDao; TemporaryActivityReportedDao temporaryActivityReportedDao;
@Autowired
TemporaryActivityPhotoDao temporaryActivityPhotoDao;
/** /**
* 根据促销员id查询所有任务 * 根据促销员id查询所有任务
*/ */
@Override @Override
public void findtemporaryIdActivityDataList(Long temporaryId, PageInfo pageInfo) { public void findtemporaryIdActivityDataList(Integer temporaryId, PageInfo pageInfo) {
temporaryActivityReportedDao.findListByTemporaryId(temporaryId,pageInfo); temporaryActivityReportedDao.findListByTemporaryId(temporaryId, pageInfo);
} }
...@@ -33,8 +43,16 @@ public class TemporaryActivityQueryServiceImpl implements TemporaryActivityQuery ...@@ -33,8 +43,16 @@ public class TemporaryActivityQueryServiceImpl implements TemporaryActivityQuery
* 根据促销员id查询今日任务 * 根据促销员id查询今日任务
*/ */
@Override @Override
public TemporaryActivityReportedDto findtemporaryIdTodayActivityData(Long temporaryId) { public TemporaryActivityReportedDto findtemporaryIdTodayActivityData(Integer temporaryId) {
TemporaryActivityReportedDto dto = temporaryActivityReportedDao.findOneByCurrentDate(temporaryId); TemporaryActivityReportedDto dto = temporaryActivityReportedDao.findOneByCurrentDate(temporaryId);
if (Objects.nonNull(dto)) {
Map<Integer, List<String>> reportedGroup = temporaryActivityPhotoDao.findReportedGroup(dto.getTemporaryId(), dto.getId());
if (!CollectionUtils.isEmpty(reportedGroup)) {
dto.setTgscPhotoUrls(reportedGroup.get(ActivityPhotoType.tgsc.getType()));
dto.setTghdPhotoUrls(reportedGroup.get(ActivityPhotoType.tghd.getType()));
dto.setTgcjPhotoUrls(reportedGroup.get(ActivityPhotoType.tgcj.getType()));
}
}
return dto; return dto;
} }
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityPhotoMapper">
<resultMap id="BaseResultMap"
type="com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityPhotoDO">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="temporaryId" column="temporary_id" jdbcType="INTEGER"/>
<result property="reportedId" column="reported_id" jdbcType="BIGINT"/>
<result property="type" column="type" jdbcType="INTEGER"/>
<result property="photoUrl" column="photo_url" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id
,temporary_id,type,
photo_url,photo_field_id
</sql>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论