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

打卡、上报销量添加战区等信息

上级 ab7c15cc
......@@ -2,7 +2,7 @@ package com.wangxiaolu.promotion.controller.activity.employee;
import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.employee.vo.ApproveVO;
import com.wangxiaolu.promotion.pojo.activity.employee.vo.ApproveVO;
import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.service.activity.employee.EmployeeCoreTemActivityService;
......
......@@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*;
/**
* @author : liqiulin
* @date : 2024-05-29 14
* @describe : 员工查询促销员活动上报信息
* @describe : 员工查询促销员打卡信息
*/
@Slf4j
@RestController
......
package com.wangxiaolu.promotion.controller.activity.temporary;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.common.redis.RedisKeys;
import com.wangxiaolu.promotion.common.redis.service.RedisCache;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.service.activity.temporary.PromotionStoreCoreService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author : liqiulin
* @date : 2024-06-18 13
* @describe : 店铺操作
*/
@Slf4j
@RestController
@RequestMapping("/activity/promotion/store/core")
public class PromotionStoreCoreController {
@Autowired
PromotionStoreCoreService promotionStoreCoreService;
@Autowired
RedisCache redisCache;
@PostMapping("/save")
public R saveStore(@RequestHeader("Authorization") String authorization, @RequestBody PromotionStoreDto promotionStoreDto) {
// 在缓存中查询
JSONObject userJson = redisCache.getToJson(RedisKeys.UserKeys.TEMPORARY_TOKEN.getKey() + authorization);
promotionStoreDto.setTemporaryId(userJson.getInteger("id"));
promotionStoreDto.setTemporaryName(userJson.getString("name"));
promotionStoreDto.setDeptQcId(userJson.getString("deptQcId"));
promotionStoreDto.setDeptQcOrgName(userJson.getString("deptQcOrgName"));
promotionStoreDto.setChargerQcId(userJson.getString("chargerQcId"));
promotionStoreDto.setChargerName(userJson.getString("chargerName"));
promotionStoreCoreService.saveStore(promotionStoreDto);
return R.success();
}
}
package com.wangxiaolu.promotion.controller.activity.temporary;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.PromotionStoreVo;
import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.service.activity.temporary.PromotionStoreQueryService;
import lombok.extern.slf4j.Slf4j;
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 java.util.List;
/**
* @author : liqiulin
* @date : 2024-06-18 15
* @describe :
*/
@Slf4j
@RestController
@RequestMapping("/activity/promotion/store/query")
public class PromotionStoreQueryController {
@Autowired
PromotionStoreQueryService promotionStoreQueryService;
/**
* 查询店铺列表:目前不分页
*/
@PostMapping("/list")
public R findStoreList(@RequestBody PromotionStoreVo promotionStoreVo){
List<PromotionStoreDto> storeDtos = promotionStoreQueryService.findStoreList(promotionStoreVo);
return R.success(storeDtos);
}
}
package com.wangxiaolu.promotion.controller.activity.temporary;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.enums.activity.ClockType;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
......@@ -36,12 +37,12 @@ public class TemporaryActivityClockCoreController {
* 促销员当日打卡信息保存
*/
@PostMapping("/today/clock")
public R clockInTodayActivity(@RequestBody @Validated TemporaryClockVo clockVo) {
public R clockInTodayActivity(@RequestBody TemporaryClockVo clockVo) {
clockVo.validate();
Integer clockType = clockVo.getClockType();
boolean isClockIn = ClockType.TEMPORARY_CLOCK_IN.equals(clockType);
// 上班卡必需有店铺id
if (isClockIn && StringUtils.isBlank(clockVo.getStoreQcId())) {
if (isClockIn && (Objects.isNull(clockVo.getStoreId()) || clockVo.getStoreId() <= 0)) {
throw new ParamException(RCode.CLOCK_DETAIL_ERROR, null);
}
// 非上班卡必需有打卡记录ID
......@@ -50,7 +51,7 @@ public class TemporaryActivityClockCoreController {
}
// 根据打卡经纬度判断与打卡店铺的距离,距离超过100米不能打卡
tempActivityCoreService.clockStoreCalDistance(clockVo.getStoreQcId(),clockVo.getId(),clockVo.getClockCoordinates());
// tempActivityCoreService.clockStoreCalDistance(clockVo.getStoreQcId(),clockVo.getId(),clockVo.getClockCoordinates());
/**
* todo redis打卡-限制重复提交
......@@ -59,7 +60,7 @@ public class TemporaryActivityClockCoreController {
Date clockTime = new Date();
TemporaryClockDto dto = new TemporaryClockDto(clockVo.getClockType(), clockVo.getId(), clockVo.getTemporaryId(), clockVo.getTemporaryName());
TemporaryClockDto dto = new TemporaryClockDto(clockVo.getClockType(), clockVo.getId(), clockVo.getTemporaryId(), clockVo.getTemporaryName(), clockVo.getClockProvince(), clockVo.getClockCity());
// 上班卡、午休下班卡、午休上班卡、下班卡
if (isClockIn) {
builderClockInData(clockVo, dto, clockTime);
......@@ -82,7 +83,7 @@ public class TemporaryActivityClockCoreController {
clockDto.setTemporaryId(clockVo.getTemporaryId())
.setTemporaryName(clockVo.getTemporaryName())
.setStoreQcId(clockVo.getStoreQcId())
.setStoreId(clockVo.getStoreId())
.setStoreName(clockVo.getStoreName())
.setClockInAddress(clockVo.getClockAddress())
.setClockInCoordinates(clockVo.getClockCoordinates())
......
......@@ -31,7 +31,7 @@ public class TemporaryActivityCoreController {
* 返回活动生成id
*/
@PostMapping("/today/reported")
public R todayActivityDataReported(@RequestBody @Validated TemporaryActivityDataVo activityVo) {
public R todayActivityDataReported(@RequestBody TemporaryActivityDataVo activityVo) {
TemporaryActivityReportedDto temActDto = new TemporaryActivityReportedDto();
BeanUtils.copyProperties(activityVo, temActDto);
temActDto.setId(activityVo.getActivityReportedId());
......@@ -49,7 +49,7 @@ public class TemporaryActivityCoreController {
* 修改审批状态
*/
@PutMapping("/reported/approve/submit/{id}")
public R activityReportedSubmit(@PathVariable("id") @NotNull Long id) {
public R activityReportedSubmit(@PathVariable("id") Long id) {
tempActivityCoreService.activityReportedSubmit(id);
return R.success();
}
......
package com.wangxiaolu.promotion.domain.activity.dao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.PromotionStoreWrapper;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.PromotionStoreVo;
import java.util.List;
/**
* @author : liqiulin
* @date : 2024-06-18 13
* @describe :
*/
public interface PromotionStoreDao {
void save(PromotionStoreDto promotionStoreDto);
List<PromotionStoreDto> findList(PromotionStoreWrapper promotionStoreWrapper);
PromotionStoreDto selectOneById(Long id);
}
......@@ -33,11 +33,4 @@ public interface TemporaryActivityClockDao {
*/
void employeePage(String employeeQcId, PageInfo pageInfo);
/**
* 员工查询负责的促销员打卡信息(分页查询)
*/
}
package com.wangxiaolu.promotion.domain.activity.dao.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wangxiaolu.promotion.domain.activity.dao.PromotionStoreDao;
import com.wangxiaolu.promotion.domain.activity.mapper.PromotionStoreMapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.PromotionStoreDO;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.PromotionStoreWrapper;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2024-06-18 13
* @describe :
*/
@Service
@Slf4j
public class PromotionStoreDaoImpl implements PromotionStoreDao {
@Autowired
PromotionStoreMapper promotionStoreMapper;
/**
* 保存店铺
*/
@Override
public void save(PromotionStoreDto promotionStoreDto) {
PromotionStoreDO storeDo = new PromotionStoreDO();
BeanUtils.copyProperties(promotionStoreDto, storeDo);
promotionStoreMapper.insert(storeDo);
log.info("录入店铺:{}", JSONObject.toJSONString(storeDo));
}
@Override
public List<PromotionStoreDto> findList(PromotionStoreWrapper promotionStoreWrapper) {
LambdaQueryWrapper<PromotionStoreDO> qw = buildWrapper(promotionStoreWrapper);
qw.select(PromotionStoreDO::getStoreName,PromotionStoreDO::getId);
List<PromotionStoreDO> promotionStoreDOS = promotionStoreMapper.selectList(qw);
return transitionDtos(promotionStoreDOS);
}
@Override
public PromotionStoreDto selectOneById(Long id) {
PromotionStoreDO promotionStoreDO = promotionStoreMapper.selectById(id);
return transitionDto(promotionStoreDO);
}
private LambdaQueryWrapper<PromotionStoreDO> buildWrapper(PromotionStoreWrapper promotionStoreWrapper){
LambdaQueryWrapper<PromotionStoreDO> lqw = new LambdaQueryWrapper<>();
if (StringUtils.isNotBlank(promotionStoreWrapper.getArea())){
lqw.eq(PromotionStoreDO::getArea,promotionStoreWrapper.getArea());
}
return lqw;
}
/**
* DO to DTO (单个对象)
*
* @param storeDos DO对象List
* @return DTO对象
*/
private List<PromotionStoreDto> transitionDtos(List<PromotionStoreDO> storeDos) {
if (CollectionUtils.isEmpty(storeDos)) {
return new ArrayList<>();
}
List<PromotionStoreDto> dtos = new ArrayList<>(storeDos.size() * 2);
for (PromotionStoreDO storeDo : storeDos) {
dtos.add(transitionDto(storeDo));
}
return dtos;
}
private PromotionStoreDto transitionDto(PromotionStoreDO storeDo) {
PromotionStoreDto dto = null;
if (Objects.isNull(storeDo)) {
return dto;
}
dto = new PromotionStoreDto();
BeanUtils.copyProperties(storeDo, dto);
return dto;
}
}
......@@ -108,7 +108,6 @@ public class TemporaryActivityReportedDaoImpl implements TemporaryActivityReport
@Override
public void findListToEmployeePage(TemporaryActivityWrapper tw, PageInfo pageInfo) {
LambdaQueryWrapper<TemporaryActivityReportedDO> qw = buildQueryList(tw);
// qw.orderByDesc(TemporaryActivityReportedDO::getApproveStatus);
Page<TemporaryActivityReportedDO> page = new Page<>(pageInfo.getPageNum(), pageInfo.getPageSize());
Page<TemporaryActivityReportedDO> temDoPage = temporaryActivityReportedMapper.selectPage(page, qw);
pageInfo.pageCovert(temDoPage);
......
package com.wangxiaolu.promotion.domain.activity.mapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.PromotionStoreDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @author a02200059
* @description 针对表【promotion_store(促销店铺数据)】的数据库操作Mapper
* @createDate 2024-06-18 11:56:57
* @Entity com.wangxiaolu.promotion.domain.activity.mapper.entity.PromotionStoreDO
*/
@Repository
@Mapper
public interface PromotionStoreMapper extends BaseMapper<PromotionStoreDO> {
}
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 java.util.Date;
import lombok.Data;
/**
* 促销店铺数据
* @TableName promotion_store
*/
@TableName(value ="promotion_store")
@Data
public class PromotionStoreDO implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 店铺名称
*/
private String storeName;
/**
* 店铺照片
*/
private String storePhotoUrl;
/**
* 系统名称
*/
private String lineName;
/**
* 店铺经纬度
*/
private String coordinates;
/**
* 门店所属行政区域-省份名称,如:北京市、江苏省
*/
private String province;
/**
* 门店所属行政区域-城市名称,如:南京市
*/
private String city;
/**
* 门店所属行政区域-区县名称,如:鼓楼区
*/
private String area;
/**
* 门店所属行政区域-乡镇街道名称,如:宁海路街道
*/
private String street;
/**
* 详细地址
*/
private String address;
/**
* 门店提交人id
*/
private Integer temporaryId;
/**
* 门店提交人
*/
private String temporaryName;
/**
* 所属战区id
*/
private String deptQcId;
/**
* 所属战区名称
*/
private String deptQcOrgName;
/**
* 负责人-勤策ID
*/
private String chargerQcId;
/**
* 负责人姓名
*/
private String chargerName;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date modifyTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -36,11 +36,24 @@ public class TemporaryActivityClockDO implements Serializable {
*/
private String storeQcId;
private Long storeId;
/**
* qince_clientele_store表store_name
*/
private String storeName;
/**
* 打卡所在地-省
*/
String clockProvince;
/**
* 打卡所在地-市
*/
String clockCity;
/**
* 上班打卡地址
*/
......
......@@ -37,6 +37,8 @@ public class TemporaryActivityReportedDO implements Serializable {
*/
private String storeQcId;
private Long storeId;
/**
* 关联—活动店铺名称(例:小美超市)
*/
......@@ -47,6 +49,16 @@ public class TemporaryActivityReportedDO implements Serializable {
*/
private String storeAddr;
/**
* 省份
*/
private String province;
/**
* 城市
*/
private String city;
/**
* 关联—审核人员qc_id
*/
......
package com.wangxiaolu.promotion.domain.activity.wrapperQo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* @author : liqiulin
* @date : 2024-06-18 15
* @describe :
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class PromotionStoreWrapper {
Long id;
/**
* 区域
* 例:顺义区
*/
private String area;
private String storeNameLike;
}
......@@ -56,8 +56,7 @@ public class TemporaryInfoDaoImpl implements TemporaryInfoDao {
@Override
public void findTemporaryInfoByEmployeeQcId(String employeeQcId, PageInfo pageInfo) {
TemporaryWrapper tw = new TemporaryWrapper()
.setChargerQcId(employeeQcId);
TemporaryWrapper tw = new TemporaryWrapper();
LambdaQueryWrapper<TemporaryInfoDO> qw = buildQueryList(tw);
List<TemporaryInfoDO> temporaryInfoDOS = temporaryInfoMapper.selectList(qw);
pageInfo.setRecords(transitionDtos(temporaryInfoDOS));
......
package com.wangxiaolu.promotion.pojo.activity.temporary.employee.vo;
package com.wangxiaolu.promotion.pojo.activity.employee.vo;
import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus;
import lombok.AllArgsConstructor;
......
package com.wangxiaolu.promotion.pojo.activity.temporary.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 促销店铺数据
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class PromotionStoreDto implements Serializable {
/**
* 主键id
*/
private Long id;
/**
* 店铺名称
*/
private String storeName;
/**
* 店铺照片
*/
private String storePhotoUrl;
/**
* 系统名称
*/
private String lineName;
/**
* 店铺经纬度
*/
private String coordinates;
/**
* 门店所属行政区域-省份名称,如:北京市、江苏省
*/
private String province;
/**
* 门店所属行政区域-城市名称,如:南京市
*/
private String city;
/**
* 门店所属行政区域-区县名称,如:鼓楼区
*/
private String area;
/**
* 门店所属行政区域-乡镇街道名称,如:宁海路街道
*/
private String street;
/**
* 详细地址
*/
private String address;
/**
* 门店提交人id
*/
private Integer temporaryId;
/**
* 门店提交人
*/
private String temporaryName;
/**
* 所属战区id
*/
private String deptQcId;
/**
* 所属战区名称
*/
private String deptQcOrgName;
/**
* 负责人-勤策ID
*/
private String chargerQcId;
/**
* 负责人姓名
*/
private String chargerName;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date modifyTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -38,7 +38,7 @@ public class TemporaryActivityReportedDto {
/**
* 关联—活动店铺id
*/
private String storeQcId;
private Long storeId;
/**
* 关联—活动店铺名称(例:小美超市)
......@@ -50,6 +50,16 @@ public class TemporaryActivityReportedDto {
*/
private String storeAddr;
/**
* 省份
*/
private String province;
/**
* 城市
*/
private String city;
/**
* 关联—审核人员qc_id
*
......
......@@ -32,7 +32,8 @@ public class TemporaryClockDto {
String temporaryName;
// 店铺勤策id
String storeQcId;
// String storeQcId;
Long storeId;
// 店铺名称
String storeName;
......@@ -49,6 +50,12 @@ public class TemporaryClockDto {
// 上班打卡时间
Date clockInTime;
// 打卡所在地-省
String clockProvince;
// 打卡所在地-市
String clockCity;
// 午休下班打卡地点
String noonClockOutAddress;
......@@ -85,11 +92,16 @@ public class TemporaryClockDto {
// 下班打卡时间
Date clockOutTime;
public TemporaryClockDto(Integer clockType, Long id, Integer temporaryId, String temporaryName) {
// 创建日期YYYY-MM-DD
private String createDate;
public TemporaryClockDto(Integer clockType, Long id, Integer temporaryId, String temporaryName, String clockProvince, String clockCity) {
if (!ClockType.TEMPORARY_CLOCK_IN.equals(clockType)) {
this.id = id;
}
this.temporaryId = temporaryId;
this.temporaryName = temporaryName;
this.clockProvince = clockProvince;
this.clockCity = clockCity;
}
}
package com.wangxiaolu.promotion.pojo.activity.temporary.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* @author : liqiulin
* @date : 2024-06-18 15
* @describe : 促销店铺VO模型
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class PromotionStoreVo {
/**
* 区域
* 例:顺义区
*/
private String area;
private String storeNameLike;
}
......@@ -27,7 +27,6 @@ public class TemporaryActivityDataVo {
* 促销员id
* temporaryInfo表id
*/
@NotNull(message = "促销员账号异常")
private Integer temporaryId;
/**
......@@ -40,8 +39,7 @@ public class TemporaryActivityDataVo {
/**
* 活动店铺Id
*/
@NotNull(message = "活动店铺异常")
private String storeQcId;
private Long storeId;
/**
* 推广试吃照片
......
......@@ -31,36 +31,42 @@ public class TemporaryClockVo {
/**
* 打卡类型:1、上班卡;2、午休下班卡;3、午休上班卡;4、下班卡
*/
// @NotNull(message = "无打卡类型")
// @Range(max = 4, min = 1, message = "超出状态")
Integer clockType;
/**
* temporaryId
*/
// @NotNull(message = "找不到打卡人")
Integer temporaryId;
String temporaryName;
// 店铺勤策id
String storeQcId;
// 店铺id
// String storeQcId;
Long storeId;
// 店铺名称
String storeName;
// 上班打卡地点
// @NotBlank(message = "请选择打卡地址")
String clockAddress;
// 上班打卡经纬度
// @NotBlank(message = "请选择打卡地点")
String clockCoordinates;
// 上班打卡图片
// @NotBlank(message = "请上传图片")
String clockPhoto;
// 打卡省
String clockProvince;
// 打卡城市
String clockCity;
public void validate(){
if (Objects.isNull(clockType) || !(clockType >= 1 && clockType <= 4)){
throw new ParamException(RCode.CLOCK_DETAIL_ERROR, null);
......
......@@ -68,10 +68,6 @@ public class WxTemporaryInfoDto {
*/
String deptQcOrgName;
/**
* 创建时间
*/
Date createTime;
/**
* 此促销员的任务人-勤策id
*/
......@@ -81,4 +77,9 @@ public class WxTemporaryInfoDto {
* 此促销员的任务人姓名
*/
String chargerName;
/**
* 创建时间
*/
Date createTime;
}
package com.wangxiaolu.promotion.service.activity.employee;
import com.wangxiaolu.promotion.pojo.activity.temporary.employee.vo.ApproveVO;
import com.wangxiaolu.promotion.pojo.activity.employee.vo.ApproveVO;
/**
* @author : liqiulin
......
......@@ -6,7 +6,7 @@ import com.wangxiaolu.promotion.enums.activity.LogType;
import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.employee.vo.ApproveVO;
import com.wangxiaolu.promotion.pojo.activity.employee.vo.ApproveVO;
import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.service.activity.employee.EmployeeCoreTemActivityService;
import lombok.extern.slf4j.Slf4j;
......
......@@ -28,8 +28,8 @@ public class EmployeeQueryTemActivityServiceImpl implements EmployeeQueryTemActi
public void getEmployeeApproveActivityPage(String employeeQcId, PageInfo pageInfo) {
TemporaryActivityWrapper tw = JSONObject.parseObject(JSONObject.toJSONString(pageInfo.getQueryParams()), TemporaryActivityWrapper.class);
tw = Objects.isNull(tw) ? new TemporaryActivityWrapper() : tw;
tw.setApproverId(employeeQcId)
.setNotApproveStatus(TemActApproveStatus.SUBMITTED.name());
// tw.setApproverId(employeeQcId)
tw.setNotApproveStatus(TemActApproveStatus.SUBMITTED.name());
temporaryActivityReportedDao.findListToEmployeePage(tw, pageInfo);
}
}
package com.wangxiaolu.promotion.service.activity.temporary;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
/**
* @author : liqiulin
* @date : 2024-06-18 13
* @describe :
*/
public interface PromotionStoreCoreService {
void saveStore(PromotionStoreDto promotionStoreDto);
}
package com.wangxiaolu.promotion.service.activity.temporary;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.PromotionStoreVo;
import java.util.List;
/**
* @author : liqiulin
* @date : 2024-06-18 15
* @describe :
*/
public interface PromotionStoreQueryService {
List<PromotionStoreDto> findStoreList(PromotionStoreVo promotionStoreVo);
}
package com.wangxiaolu.promotion.service.activity.temporary.impl;
import com.wangxiaolu.promotion.domain.activity.dao.PromotionStoreDao;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.service.activity.temporary.PromotionStoreCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2024-06-18 13
* @describe :
*/
@Service
public class PromotionStoreCoreServiceImpl implements PromotionStoreCoreService {
@Autowired
PromotionStoreDao promotionStoreDao;
@Override
public void saveStore(PromotionStoreDto promotionStoreDto) {
promotionStoreDao.save(promotionStoreDto);
}
}
package com.wangxiaolu.promotion.service.activity.temporary.impl;
import com.wangxiaolu.promotion.domain.activity.dao.PromotionStoreDao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.PromotionStoreWrapper;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.PromotionStoreVo;
import com.wangxiaolu.promotion.service.activity.temporary.PromotionStoreQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author : liqiulin
* @date : 2024-06-18 15
* @describe :
*/
@Service
public class PromotionStoreQueryServiceImpl implements PromotionStoreQueryService {
@Autowired
PromotionStoreDao promotionStoreDao;
@Override
public List<PromotionStoreDto> findStoreList(PromotionStoreVo promotionStoreVo) {
PromotionStoreWrapper promotionStoreWrapper = new PromotionStoreWrapper();
promotionStoreWrapper.setStoreNameLike(promotionStoreVo.getStoreNameLike());
promotionStoreWrapper.setArea("全国".equals(promotionStoreVo.getArea()) ? "" : promotionStoreVo.getArea());
return promotionStoreDao.findList(promotionStoreWrapper);
}
}
package com.wangxiaolu.promotion.service.activity.temporary.impl;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityLogDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityPhotoDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.domain.activity.dao.*;
import com.wangxiaolu.promotion.domain.user.dao.QinCeClienteleStoreDao;
import com.wangxiaolu.promotion.domain.user.dao.TemporaryInfoDao;
import com.wangxiaolu.promotion.domain.user.wrapperQo.StoreWrapper;
......@@ -15,6 +11,7 @@ import com.wangxiaolu.promotion.enums.activity.LogType;
import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus;
import com.wangxiaolu.promotion.exception.FlowException;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.PromotionStoreDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto;
......@@ -30,6 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
......@@ -51,7 +49,7 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
private TemporaryActivityClockDao temporaryActivityClockDao;
@Autowired
private QinCeClienteleStoreDao qinCeClienteleStoreDao;
private PromotionStoreDao promotionStoreDao;
@Autowired
private TemporaryActivityPhotoDao tempActivityPhotoDao;
......@@ -81,13 +79,17 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
WxTemporaryInfoDto wxTemporaryInfoDto = temporaryInfoDao.selectOneById(temActDto.getTemporaryId());
// 初始化任务状态:已保存
temActDto.setApproveStatus(TemActApproveStatus.SUBMITTED);
temActDto.setApproveStatus(TemActApproveStatus.APPROVED);
temActDto.setApproverId(wxTemporaryInfoDto.getChargerQcId());
temActDto.setApproveName(wxTemporaryInfoDto.getChargerName());
temActDto.setApproveTime(new Date());
// 根据storeQcId查询店铺信息,进行店铺信息补充
QinCeClienteleStoreDto storeDto = qinCeClienteleStoreDao.getOneStore(new StoreWrapper().setQcId(temActDto.getStoreQcId()));
temActDto.setStoreName(storeDto.getStoreName()).setStoreAddr(storeDto.getStoreAddr());
PromotionStoreDto promotionStoreDto = promotionStoreDao.selectOneById(temActDto.getStoreId());
temActDto.setStoreName(promotionStoreDto.getStoreName())
.setStoreAddr(promotionStoreDto.getAddress())
.setProvince(promotionStoreDto.getProvince())
.setCity(promotionStoreDto.getCity());
// 保存活动数据 temporary_activity_reported
long reportedId = temporaryActivityReportedDao.activityDataSave(temActDto);
......@@ -178,11 +180,11 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
*/
@Override
public void clockStoreCalDistance(String storeQcId, Long id, String clockCoordinates) {
if (Objects.nonNull(id)) {
TemporaryClockDto clockDto = temporaryActivityClockDao.selectOne(new TemporaryClockWrapper().setId(id));
storeQcId = clockDto.getStoreQcId();
}
clockStoreCalDistanceByStoreQcId(storeQcId, clockCoordinates);
// if (Objects.nonNull(id)) {
// TemporaryClockDto clockDto = temporaryActivityClockDao.selectOne(new TemporaryClockWrapper().setId(id));
// storeQcId = clockDto.getStoreQcId();
// }
// clockStoreCalDistanceByStoreQcId(storeQcId, clockCoordinates);
}
private void clockStoreCalDistanceByStoreQcId(String storeQcId, String clockCoordinates) {
......
<?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.PromotionStoreMapper">
<resultMap id="BaseResultMap" type="com.wangxiaolu.promotion.domain.activity.mapper.entity.PromotionStoreDO">
<id property="id" column="id" jdbcType="INTEGER"/>
<result property="storeName" column="store_name" jdbcType="VARCHAR"/>
<result property="storePhotoUrl" column="store_photo_url" jdbcType="VARCHAR"/>
<result property="lineName" column="line_name" jdbcType="VARCHAR"/>
<result property="coordinates" column="coordinates" jdbcType="VARCHAR"/>
<result property="province" column="province" jdbcType="VARCHAR"/>
<result property="city" column="city" jdbcType="VARCHAR"/>
<result property="area" column="area" jdbcType="VARCHAR"/>
<result property="street" column="street" jdbcType="VARCHAR"/>
<result property="address" column="address" jdbcType="VARCHAR"/>
<result property="temporaryId" column="temporary_id" jdbcType="INTEGER"/>
<result property="temporaryName" column="temporary_name" jdbcType="VARCHAR"/>
<result property="deptQcId" column="dept_qc_id" jdbcType="VARCHAR"/>
<result property="deptQcOrgName" column="dept_qc_org_name" jdbcType="VARCHAR"/>
<result property="chargerQcId" column="charger_qc_id" jdbcType="VARCHAR"/>
<result property="chargerName" column="charger_name" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,store_name,store_photo_url,
line_name,coordinates,province,
city,area,street,
address,temporary_id,temporary_name,
dept_qc_id,dept_qc_org_name,charger_qc_id,
charger_name,create_time,modify_time
</sql>
</mapper>
......@@ -13,6 +13,9 @@
<result property="noonClockInTime" column="noon_clock_in_time" jdbcType="TIMESTAMP"/>
<result property="clockOutTime" column="clock_out_time" jdbcType="TIMESTAMP"/>
<result property="createDate" column="create_date" jdbcType="CHAR"/>
<result property="clockProvince" column="clock_province" jdbcType="VARCHAR"/>
<result property="clockCity" column="clock_city" jdbcType="VARCHAR"/>
<result property="createDate" column="create_date" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -36,12 +39,14 @@
tc.clock_in_time,
tc.noon_clock_out_time,
tc.noon_clock_in_time,
tc.clock_out_time
tc.clock_out_time,
tc.clock_province,
tc.clock_city,
tc.create_date
from temporary_info ti
inner join temporary_activity_clock tc on ti.id = tc.temporary_id
where tc.id &lt;= (select max(id)
from temporary_activity_clock)
and ti.charger_qc_id = #{employeeQcId}
order by id desc
limit #{skipNum}, #{pageSize};
</select>
......@@ -54,11 +59,13 @@
tc.clock_in_time,
tc.noon_clock_out_time,
tc.noon_clock_in_time,
tc.clock_out_time
tc.clock_out_time,
tc.clock_province,
tc.clock_city,
tc.create_date
from temporary_info ti
inner join temporary_activity_clock tc on ti.id = tc.temporary_id
where tc.id &lt; #{maxId}
and ti.charger_qc_id = #{employeeQcId}
order by id desc limit #{pageSize};
</select>
......@@ -68,7 +75,6 @@
inner join temporary_activity_clock tc on ti.id = tc.temporary_id
where tc.id &lt;= (select max(id)
from temporary_activity_clock)
and ti.charger_qc_id = #{employeeQcId}
</select>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论