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

促销员打卡数据保存:打卡类型:1、上班卡;2、午休下班卡;3、午休上班卡;4、下班卡

上级 48a823a5
package com.wangxiaolu.promotion.controller.activity.temporary;
import com.wangxiaolu.promotion.enums.activity.ClockType;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityDataVo;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.pojo.user.vo.TemporaryClockVo;
import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService;
import com.wangxiaolu.promotion.utils.DateUtils;
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.validation.annotation.Validated;
......@@ -12,6 +19,9 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2024-04-17 19
......@@ -25,6 +35,95 @@ public class TemporaryActivityCoreController {
@Autowired
private TemporaryActivityCoreService tempActivityCoreService;
/**
* 促销员当日打卡信息保存
*/
@PostMapping("/today/clock")
public void clockInTodayActivity(@RequestBody @Validated TemporaryClockVo clockVo) {
Integer clockType = clockVo.getClockType();
boolean isClockIn = ClockType.TEMPORARY_CLOCK_IN.equals(clockType);
// 上班卡必需有店铺id
if (isClockIn && StringUtils.isBlank(clockVo.getStoreQcId())) {
throw new ParamException(RCode.CLOCK_DETAIL_ERROR, null);
}
// 非上班卡必需有打卡记录ID
if (!isClockIn && Objects.isNull((clockVo.getTemporaryClockId()))) {
throw new ParamException(RCode.CLOCK_DETAIL_ERROR, null);
}
Date clockTime = new Date();
TemporaryClockDto dto = new TemporaryClockDto(clockVo.getClockType(), clockVo.getTemporaryClockId(), clockVo.getTemporaryId(), clockVo.getTemporaryName());
// 上班卡、午休下班卡、午休上班卡、下班卡
if (isClockIn) {
builderClockInData(clockVo, dto, clockTime);
} else if (ClockType.TEMPORARY_NOON_CLOCK_OUT.equals(clockType)) {
builderNoonClockOutData(clockVo, dto, clockTime);
} else if (ClockType.TEMPORARY_NOON_CLOCK_IN.equals(clockType)) {
builderNoonClockInData(clockVo, dto, clockTime);
} else if (ClockType.TEMPORARY_CLOCK_OUT.equals(clockType)) {
builderClockOutData(clockVo, dto, clockTime);
}
tempActivityCoreService.clockInTodayActivity(dto);
}
// 上班打卡
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)) {
// throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
// }
clockDto.setTemporaryId(clockVo.getTemporaryId())
.setTemporaryName(clockVo.getTemporaryName())
.setStoreQcId(clockVo.getStoreQcId())
.setStoreName(clockVo.getStoreName())
.setClockInAddress(clockVo.getClockAddress())
.setClockInCoordinates(clockVo.getClockCoordinates())
.setClockInPhoto(clockVo.getClockPhoto())
.setClockInPhotoFieldId(clockVo.getClockPhotoFieldId())
.setClockInTime(dateTime);
}
// 午休下班卡
private void builderNoonClockOutData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
// todo if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_NOON_CLOCK_OUT_BEGIN_TIME, ClockType.TEMPORARY_NOON_CLOCK_OUT_END_TIME)) {
// throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
// }
clockDto.setTemporaryClockId(clockVo.getTemporaryClockId())
.setNoonClockOutAddress(clockVo.getClockAddress())
.setNoonClockOutCoordinates(clockVo.getClockCoordinates())
.setNoonClockOutPhoto(clockVo.getClockPhoto())
.setNoonClockOutPhotoFieldId(clockVo.getClockPhotoFieldId())
.setNoonClockOutTime(dateTime);
}
// 午休上班卡
private void builderNoonClockInData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_NOON_CLOCK_IN_BEGIN_TIME, ClockType.TEMPORARY_NOON_CLOCK_IN_END_TIME)) {
throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
}
clockDto.setTemporaryClockId(clockVo.getTemporaryClockId())
.setNoonClockInAddress(clockVo.getClockAddress())
.setNoonClockInCoordinates(clockVo.getClockCoordinates())
.setNoonClockInPhoto(clockVo.getClockPhoto())
.setNoonClockInPhotoFieldId(clockVo.getClockPhotoFieldId())
.setNoonClockInTime(dateTime);
}
// 下班卡
private void builderClockOutData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_CLOCK_OUT_BEGIN_TIME, ClockType.TEMPORARY_CLOCK_OUT_END_TIME)) {
throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
}
clockDto.setTemporaryClockId(clockVo.getTemporaryClockId())
.setClockOutAddress(clockVo.getClockAddress())
.setClockOutCoordinates(clockVo.getClockCoordinates())
.setClockOutPhoto(clockVo.getClockPhoto())
.setClockOutPhotoFieldId(clockVo.getClockPhotoFieldId())
.setClockOutTime(dateTime);
}
/**
* 促销员今日活动上报
* 返回活动生成id
......
package com.wangxiaolu.promotion.domain.activity.dao;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto;
/**
* @author : liqiulin
* @date : 2024-04-23 17
* @describe :
*/
public interface TemporaryActivityClockDao {
/**
* 保存打卡信息
* @param dto 信息
*/
void save(TemporaryClockDto dto);
/**
* 修改打卡信息
* @param dto 信息
*/
void updateById(TemporaryClockDto dto);
}
package com.wangxiaolu.promotion.domain.activity.dao.impl;
import cn.hutool.core.date.DateUtil;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityClockMapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2024-04-23 17
* @describe :
*/
@Service
@Slf4j
public class TemporaryActivityClockDaoImpl implements TemporaryActivityClockDao {
@Autowired
TemporaryActivityClockMapper temporaryActivityClockMapper;
@Override
public void save(TemporaryClockDto dto) {
TemporaryActivityClockDO clockDo = new TemporaryActivityClockDO();
BeanUtils.copyProperties(dto,clockDo);
clockDo.setCreateDate(DateUtil.today());
temporaryActivityClockMapper.insert(clockDo);
}
@Override
public void updateById(TemporaryClockDto dto) {
TemporaryActivityClockDO clockDo = new TemporaryActivityClockDO();
BeanUtils.copyProperties(dto,clockDo);
clockDo.setId(dto.getTemporaryClockId());
temporaryActivityClockMapper.updateById(clockDo);
}
}
package com.wangxiaolu.promotion.domain.activity.mapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
/**
* @author a02200059
* @description 针对表【temporary_activity_clock】的数据库操作Mapper
* @createDate 2024-04-23 17:10:46
* @Entity com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO
*/
@Mapper
@Repository
public interface TemporaryActivityClockMapper extends BaseMapper<TemporaryActivityClockDO> {
}
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 temporary_activity_clock
*/
@TableName(value ="temporary_activity_clock")
@Data
public class TemporaryActivityClockDO implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* temporary_info表id
*/
private Integer temporaryId;
/**
* temporary_info表name
*/
private String temporaryName;
/**
* qince_clientele_store表qc_id
*/
private String storeQcId;
/**
* qince_clientele_store表store_name
*/
private String storeName;
/**
* 上班打卡地址
*/
private String clockInAddress;
/**
* 上班打卡经纬度
*/
private String clockInCoordinates;
/**
* 上班打卡图片
*/
private String clockInPhoto;
/**
* 上班打卡图片
*/
private String clockInPhotoFieldId;
/**
* 上班打卡时间
*/
private Date clockInTime;
/**
* 午休下班打卡地址
*/
private String noonClockOutAddress;
/**
* 午休下班打卡经纬度
*/
private String noonClockOutCoordinates;
/**
* 午休下班打卡图片
*/
private String noonClockOutPhoto;
/**
* 午休下班打卡图片
*/
private String noonClockOutPhotoFieldId;
/**
* 午休下班打卡时间
*/
private Date noonClockOutTime;
/**
* 午休上班打卡地址
*/
private String noonClockInAddress;
/**
* 午休上班打卡经纬度
*/
private String noonClockInCoordinates;
/**
* 午休上班打卡图片
*/
private String noonClockInPhoto;
/**
* 午休上班打卡图片
*/
private String noonClockInPhotoFieldId;
/**
* 午休上班打卡时间
*/
private Date noonClockInTime;
/**
* 下班打卡地址
*/
private String clockOutAddress;
/**
* 下班打卡经纬度
*/
private String clockOutCoordinates;
/**
* 下班打卡图片
*/
private String clockOutPhoto;
/**
* 下班打卡图片
*/
private String clockOutPhotoFieldId;
/**
* 下班打卡时间
*/
private Date clockOutTime;
/**
* 创建日期YYYY-MM-DD
*/
private String createDate;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date modifyTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -9,13 +9,13 @@ import com.wangxiaolu.promotion.domain.user.mapper.entity.QinCeClienteleStoreDO;
import com.wangxiaolu.promotion.domain.user.wrapperQo.StoreWrapper;
import com.wangxiaolu.promotion.pojo.user.dto.QinCeClienteleStoreDto;
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.Collections;
import java.util.List;
import java.util.Objects;
......@@ -75,19 +75,20 @@ public class QinCeClienteleStoreDaoImpl implements QinCeClienteleStoreDao {
private LambdaQueryWrapper<QinCeClienteleStoreDO> builderQueryWrapper(StoreWrapper storeWrapper){
LambdaQueryWrapper<QinCeClienteleStoreDO> qw = new LambdaQueryWrapper<>();
// 默认查询有效数据 >>> 门店删除状态。0:删除,1:正常:store_status = 1
qw.eq(QinCeClienteleStoreDO::getStoreStatus,storeWrapper.getStoreStatus());
// 默认查询有效数据 >>> 门店审批状态。1:待审批,2:审批打回,3:审批通过:store_approval_status = 3
qw.eq(QinCeClienteleStoreDO::getStoreApprovalStatus,storeWrapper.getStoreApprovalStatus());
// 按qcId查询
if (StringUtils.isNotBlank(storeWrapper.getQcId())){
qw.eq(QinCeClienteleStoreDO::getQcId,storeWrapper.getQcId());
return qw;
}
// 按门店名称模糊查询
if (Objects.nonNull(storeWrapper.getStoreNameVague())){
if (StringUtils.isNotBlank(storeWrapper.getStoreNameVague())){
qw.like(QinCeClienteleStoreDO::getStoreName,storeWrapper.getStoreNameVague());
}
/**
* 默认查询有效数据
* 门店删除状态。0:删除,1:正常:store_status = 1
* 门店审批状态。1:待审批,2:审批打回,3:审批通过:store_approval_status = 3
*/
qw.eq(QinCeClienteleStoreDO::getStoreStatus,storeWrapper.getStoreStatus());
qw.eq(QinCeClienteleStoreDO::getStoreApprovalStatus,storeWrapper.getStoreApprovalStatus());
return qw;
}
......
......@@ -15,6 +15,8 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class StoreWrapper {
private String qcId;
/**
* 按名称模糊查询
*/
......
package com.wangxiaolu.promotion.enums.activity;
/**
* @author : liqiulin
* @date : 2024-04-23 14
* @describe : 打卡类型
*/
public interface ClockType {
/**
* 打卡类型:1、上班卡;2、午休下班卡;3、午休上班卡;4、下班卡
*/
Integer TEMPORARY_CLOCK_IN = 1;
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";
}
package com.wangxiaolu.promotion.pojo.user.dto;
import com.wangxiaolu.promotion.enums.activity.ClockType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @author : liqiulin
* @date : 2024-04-23 14
* @describe :促销员打卡数据DTO
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain = true)
public class TemporaryClockDto {
/**
* 打卡记录id
* 上班打卡无记录id
*/
Long temporaryClockId;
/**
* temporaryId
*/
Integer temporaryId;
String temporaryName;
// 店铺勤策id
String storeQcId;
// 店铺名称
String storeName;
// 上班打卡地址
String clockInAddress;
// 上班打卡经纬度
String clockInCoordinates;
// 上班打卡图片
String clockInPhoto;
String clockInPhotoFieldId;
// 上班打卡时间
Date clockInTime;
// 午休下班打卡地点
String noonClockOutAddress;
// 午休下班打卡经纬度
String noonClockOutCoordinates;
// 午休下班打卡图片
String noonClockOutPhoto;
String noonClockOutPhotoFieldId;
// 午休下班打卡时间
Date noonClockOutTime;
// 午休上班打卡地点
String noonClockInAddress;
// 午休上班打卡经纬度
String noonClockInCoordinates;
// 午休上班打卡图片
String noonClockInPhoto;
String noonClockInPhotoFieldId;
// 午休上班打卡时间
Date noonClockInTime;
// 下班打卡地点
String clockOutAddress;
// 下班打卡经纬度
String clockOutCoordinates;
// 下班打卡图片
String clockOutPhoto;
String clockOutPhotoFieldId;
// 下班打卡时间
Date clockOutTime;
public TemporaryClockDto(Integer clockType, Long temporaryClockId, Integer temporaryId, String temporaryName) {
if (!ClockType.TEMPORARY_CLOCK_IN.equals(clockType)) {
this.temporaryClockId = temporaryClockId;
}
this.temporaryId = temporaryId;
this.temporaryName = temporaryName;
}
}
......@@ -16,6 +16,8 @@ import lombok.experimental.Accessors;
@Accessors(chain = true)
public class ClienteleStoreQueryVo {
private String qcId;
/**
* 按名称模糊查询
*/
......
package com.wangxiaolu.promotion.pojo.user.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author : liqiulin
* @date : 2024-04-23 13
* @describe : 促销员打卡数据模型
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain = true)
public class TemporaryClockVo {
/**
* 打卡记录id
*/
Long temporaryClockId;
/**
* 打卡类型:1、上班卡;2、午休下班卡;3、午休上班卡;4、下班卡
*/
@NotNull(message = "无打卡类型")
@Range(max = 4, min = 1, message = "超出状态")
Integer clockType;
/**
* temporaryId
*/
@NotNull(message = "找不到打卡人")
Integer temporaryId;
String temporaryName;
// 店铺勤策id
String storeQcId;
// 店铺名称
String storeName;
// 上班打卡地点
@NotBlank(message = "请选择打卡地址")
String clockAddress;
// 上班打卡经纬度
@NotBlank(message = "请选择打卡地点")
String clockCoordinates;
// 上班打卡图片
@NotBlank(message = "请上传图片")
String clockPhoto;
@NotBlank(message = "未找到图片")
String clockPhotoFieldId;
}
......@@ -34,6 +34,9 @@ public enum RCode implements StatusCode {
PHONE_PARAM_ERROR(3002, "手机号异常"),
USER_PHONE_IDENNUMBER_WXOPENID_UNIQUE_ERROR(3003, "个人信息已注册"),
LOGIN_USER_IS_NULL_ERROR(3004, "账号未注册"),
CLOCK_DETAIL_ERROR(3005, "打卡信息错误"),
CLOCK_DETAIL_TIME_ERROR(3006, "不在打卡时间范围内"),
/**
* 腾讯云
* 3500+
......
package com.wangxiaolu.promotion.service.activity.temporary;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto;
/**
* @author : liqiulin
......@@ -15,5 +16,8 @@ public interface TemporaryActivityCoreService {
*/
long activityDataReportedSave(TemporaryActivityReportedDto temActDto);
/**
* 促销员当日打卡信息保存
*/
void clockInTodayActivity(TemporaryClockDto dto);
}
package com.wangxiaolu.promotion.service.activity.temporary.impl;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityReportedDao;
import com.wangxiaolu.promotion.enums.activity.TemActApproveStatus;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryActivityReportedDto;
import com.wangxiaolu.promotion.pojo.user.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityCoreService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2024-04-18 11
......@@ -20,10 +24,12 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
@Autowired
TemporaryActivityReportedDao temporaryActivityReportedDao;
@Autowired
TemporaryActivityClockDao temporaryActivityClockDao;
/**
* 活动上报保存
*
* @return 生成id
*/
@Override
......@@ -31,4 +37,16 @@ public class TemporaryActivityCoreServiceImpl implements TemporaryActivityCoreSe
temActDto.setApproveStatus(TemActApproveStatus.SUBMITTED);
return temporaryActivityReportedDao.activityDataSave(temActDto);
}
/**
* 促销员当日打卡信息保存
*/
@Override
public void clockInTodayActivity(TemporaryClockDto dto) {
if (Objects.isNull(dto.getTemporaryClockId())){
temporaryActivityClockDao.save(dto);
return;
}
temporaryActivityClockDao.updateById(dto);
}
}
package com.wangxiaolu.promotion.utils;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author : liqiulin
* @date : 2024-04-23 15
* @describe : 时间工具类
*/
public class DateUtils {
/**
* 判断时间是否是范围内
* 入参时间格式:"00:00:00"
*/
public static boolean parseTime(Date date, String beginTime, String endTime) {
try {
String today = DateUtil.today();
String format = DatePattern.NORM_DATETIME_PATTERN;
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date beginTimeD = sdf.parse(today + " " + beginTime);
Date endTimeD = sdf.parse(today + " " + endTime);
return DateUtil.isIn(date, beginTimeD, endTimeD);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}
<?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.TemporaryActivityClockMapper">
<resultMap id="BaseResultMap" type="com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="temporaryId" column="temporary_id" jdbcType="INTEGER"/>
<result property="temporaryName" column="temporary_name" jdbcType="VARCHAR"/>
<result property="storeQcId" column="store_qc_id" jdbcType="VARCHAR"/>
<result property="storeName" column="store_name" jdbcType="VARCHAR"/>
<result property="clockInAddress" column="clock_in_address" jdbcType="VARCHAR"/>
<result property="clockInCoordinates" column="clock_in_coordinates" jdbcType="VARCHAR"/>
<result property="clockInPhoto" column="clock_in_photo" jdbcType="VARCHAR"/>
<result property="clockInPhotoFieldId" column="clock_in_photo_field_id" jdbcType="VARCHAR"/>
<result property="clockInTime" column="clock_in_time" jdbcType="TIMESTAMP"/>
<result property="noonClockOutAddress" column="noon_clock_out_address" jdbcType="VARCHAR"/>
<result property="noonClockOutCoordinates" column="noon_clock_out_coordinates" jdbcType="VARCHAR"/>
<result property="noonClockOutPhoto" column="noon_clock_out_photo" jdbcType="VARCHAR"/>
<result property="noonClockOutPhotoFieldId" column="noon_clock_out_photo_field_id" jdbcType="VARCHAR"/>
<result property="noonClockOutTime" column="noon_clock_out_time" jdbcType="TIMESTAMP"/>
<result property="noonClockInAddress" column="noon_clock_in_address" jdbcType="VARCHAR"/>
<result property="noonClockInCoordinates" column="noon_clock_in_coordinates" jdbcType="VARCHAR"/>
<result property="noonClockInPhoto" column="noon_clock_in_photo" jdbcType="VARCHAR"/>
<result property="noonClockInPhotoFieldId" column="noon_clock_in_photo_field_id" jdbcType="VARCHAR"/>
<result property="noonClockInTime" column="noon_clock_in_time" jdbcType="TIMESTAMP"/>
<result property="clockOutAddress" column="clock_out_address" jdbcType="VARCHAR"/>
<result property="clockOutCoordinates" column="clock_out_coordinates" jdbcType="VARCHAR"/>
<result property="clockOutPhoto" column="clock_out_photo" jdbcType="VARCHAR"/>
<result property="clockOutPhotoFieldId" column="clock_out_photo_field_id" jdbcType="VARCHAR"/>
<result property="clockOutTime" column="clock_out_time" jdbcType="TIMESTAMP"/>
<result property="createDate" column="create_date" jdbcType="CHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,temporary_id,temporary_name,
store_qc_id,store_name,clock_in_address,
clock_in_coordinates,clock_in_photo,clock_in_photo_field_id,
clock_in_time,noon_clock_out_address,noon_clock_out_coordinates,
noon_clock_out_photo,noon_clock_out_photo_field_id,noon_clock_out_time,
noon_clock_in_address,noon_clock_in_coordinates,noon_clock_in_photo,
noon_clock_in_photo_field_id,noon_clock_in_time,clock_out_address,
clock_out_coordinates,clock_out_photo,clock_out_photo_field_id,
clock_out_time,create_date,create_time,
modify_time
</sql>
</mapper>
package com.wangxiaolu.promotion.utils;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Date;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author : liqiulin
* @date : 2024-04-23 16
* @describe :
*/
@SpringBootTest
@RunWith(SpringRunner.class)
class DateUtilsTest {
@Test
void parseTime() {
boolean b = DateUtils.parseTime(new Date(), "16:00:00", "16:30:00");
System.out.println("是否在时间范围内:" + b);
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论