1.立即预约

2.预约记录查询
3.预约记录删除
main
862857010@qq.com 2 years ago
parent 86de41d335
commit 0522ba8482
  1. 55
      src/main/java/com/cjy/back/ybsjAppointment/controller/YbsjyAppointmentRecordController.java
  2. 30
      src/main/java/com/cjy/back/ybsjAppointment/dao/YbsjyAppointmentRecordMapper.java
  3. 49
      src/main/java/com/cjy/back/ybsjAppointment/dao/YbsjyAppointmentRecordMapper.xml
  4. 9
      src/main/java/com/cjy/back/ybsjAppointment/dao/YbsjyAppointmentSettingMapper.java
  5. 63
      src/main/java/com/cjy/back/ybsjAppointment/dao/YbsjyAppointmentSettingMapper.xml
  6. 89
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/AppointmentFormVO.java
  7. 20
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/AppointmentPersonVO.java
  8. 71
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/GetAppointmentRecordVO.java
  9. 28
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/ReservationNowVO.java
  10. 24
      src/main/java/com/cjy/back/ybsjAppointment/service/YbsjyAppointmentRecordService.java
  11. 71
      src/main/java/com/cjy/back/ybsjAppointment/service/impl/YbsjyAppointmentRecordImpl.java
  12. 57
      src/main/java/com/cjy/back/ybsjAppointment/service/impl/YbsjyAppointmentSettingServiceImpl.java
  13. 35
      src/main/java/com/cjy/back/ybsjAppointment/utils/AppointmentNumberUtil.java
  14. 38
      src/main/java/com/cjy/back/ybsjAppointment/utils/DateUtil.java

@ -0,0 +1,55 @@
package com.cjy.back.ybsjAppointment.controller;
import com.cjy.back.sysUser.entity.SysUser;
import com.cjy.back.ybsjAppointment.entity.vo.GetAppointmentRecordVO;
import com.cjy.back.ybsjAppointment.service.YbsjyAppointmentRecordService;
import com.cjy.util.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
@RequestMapping("appointmentRecord")
@RestController
public class YbsjyAppointmentRecordController {
@Autowired
YbsjyAppointmentRecordService ybsjyAppointmentRecordService;
/**
* 查询预约记录
* @param request
* @param getAppointmentRecordVO
* @return
*/
@RequestMapping("getAppointmentRecord")
public ServerResponse getAppointmentRecord(HttpServletRequest request,@RequestBody GetAppointmentRecordVO getAppointmentRecordVO){
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
return ybsjyAppointmentRecordService.getAppointmentRecord(getAppointmentRecordVO);
}
/**
* 删除预约单
* @param request
* @param id
* @return
*/
@RequestMapping("deleteAppointmentRecord")
public ServerResponse deleteAppointmentRecord(HttpServletRequest request,Long id){
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
return ybsjyAppointmentRecordService.deleteAppointmentRecord(id,user.getUserid());
}
}

@ -0,0 +1,30 @@
package com.cjy.back.ybsjAppointment.dao;
import com.cjy.back.ybsjAppointment.entity.YbsjyAppointmentSettingEntity;
import com.cjy.back.ybsjAppointment.entity.vo.GetAppointmentRecordVO;
import com.cjy.common.mybatis.page.PageParameter;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
public interface YbsjyAppointmentRecordMapper {
/**
* 查询预约记录
* @param page
* @param getAppointmentRecordVO
* @return
*/
List<Map<String, Object>> getAppointmentRecordListByPage(@Param("page") PageParameter page, @Param("getAppointmentRecordVO") GetAppointmentRecordVO getAppointmentRecordVO);
/**
* 删除预约单
* @param id
* @return
*/
int deleteAppointmentRecord(@Param("id") Long id,@Param("userId") int userId);
}

@ -0,0 +1,49 @@
<?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.cjy.back.ybsjAppointment.dao.YbsjyAppointmentRecordMapper">
<update id="deleteAppointmentRecord">
update ybsj_appointment_documents_info
set del_flag= 2,update_by=#{userId}
where id=#{id}
</update>
<select id="getAppointmentRecordListByPage" resultType="java.util.Map">
SELECT
t1.id,
t1.appointment_number,
t2.sname,
t1.appointment_count,
t1.appointment_date,
CONCAT( t3.start_time, '~', t3.end_time ) as periodTime,
t4.name,
t4.phone
FROM
ybsj_appointment_people_info t4
LEFT join ybsj_appointment_documents_info t1 on t1.id=t4.appointment_documents_id and t1.del_flag != 2
LEFT JOIN ybsj_scenic_info t2 ON t1.scenic_id = t2.guid
LEFT JOIN ybsj_appointment_time_info t3 ON t1.appointment_time_info_id = t3.id
where 1=1
and t4.reservation_person=0
<if test="getAppointmentRecordVO.scenicName !=null and getAppointmentRecordVO.scenicName!=''">
and t2.sname LIKE CONCAT('%',#{getAppointmentRecordVO.scenicName},'%')
</if>
<if test="getAppointmentRecordVO.reservationDate !=null and getAppointmentRecordVO.reservationDate!=''">
and t1.appointment_date= #{getAppointmentRecordVO.reservationDate}
</if>
<if test="getAppointmentRecordVO.reservationPersonName !=null and getAppointmentRecordVO.reservationPersonName !=''">
and t4.name LIKE CONCAT('%',#{getAppointmentRecordVO.reservationPersonName},'%')
</if>
<if test="getAppointmentRecordVO.reservationPersonPhone !=null and getAppointmentRecordVO.reservationPersonPhone !=''">
and t4.phone LIKE CONCAT('%',#{getAppointmentRecordVO.reservationPersonPhone},'%')
</if>
<if test="getAppointmentRecordVO.state !=null and getAppointmentRecordVO.state !=''">
and t1.appointment_documents_write_off =#{getAppointmentRecordVO.state}
</if>
GROUP BY t1.id
ORDER BY t1.create_time desc
</select>
</mapper>

@ -3,6 +3,8 @@ package com.cjy.back.ybsjAppointment.dao;
import com.cjy.back.ybsjAppointment.entity.AppointmentTimeInfoEntity;
import com.cjy.back.ybsjAppointment.entity.YbsjyAppointmentSettingEntity;
import com.cjy.back.ybsjAppointment.entity.vo.AppletsAppointmentListVO;
import com.cjy.back.ybsjAppointment.entity.vo.AppointmentFormVO;
import com.cjy.back.ybsjAppointment.entity.vo.AppointmentPersonVO;
import com.cjy.common.mybatis.page.PageParameter;
import org.apache.ibatis.annotations.Param;
@ -134,5 +136,10 @@ public interface YbsjyAppointmentSettingMapper {
* @param appointmentTimeInfoId
* @return
*/
int getAppointmentCount(Long appointmentTimeInfoId);
int getAppointmentCount(@Param("appointmentTimeInfoId")Long appointmentTimeInfoId,@Param("date") String date);
AppointmentTimeInfoEntity getPeriodInfo(@Param("id") Long id);
int saveAppointmentDocumentsInfo(AppointmentFormVO appointmentFormVO);
int saveAppointmentPeopleInfo(@Param("list") List<AppointmentPersonVO> list);
}

@ -9,6 +9,8 @@
create_by, userkey)
VALUES (#{guid}, #{url}, #{canReserveDayNumber}, #{createBy}, #{userkey})
</insert>
<insert id="addAppointmentTimeInfoEntityList">
INSERT INTO ybsj_appointment_time_info ( reserve_count, start_time, end_time,
use_date, unavailable_date,
@ -18,6 +20,27 @@
(#{item.reserveCount},#{item.startTime},#{item.endTime},#{item.useDate},#{item.unavailableDate},#{appointmentSettingsId},#{userid})
</foreach>
</insert>
<insert id="saveAppointmentDocumentsInfo" useGeneratedKeys="true" keyProperty="id">
INSERT INTO ybsj_appointment_documents_info (appointment_number, appointment_count,
appointment_date, appointment_time_info_id,
union_id, create_by,scenic_id)
VALUES (#{appointmentNumber}, #{appointmentCount}, #{appointmentDate}, #{appointmentTimeInfoId}, #{unionId},
#{createBy},#{scenicId})
</insert>
<insert id="saveAppointmentPeopleInfo">
INSERT INTO ybsj_appointment_people_info (`name`, phone, documents_type,
documents_number, reservation_code,
appointment_documents_id, appointment_time_info_id,
qr_content,
appointment_date,reservation_person
)
VALUES
<foreach item="item" collection="list" separator=",">
( #{item.name}, #{item.phone}, #{item.documentsType}, #{item.documentsNumber}, #{item.reservationCode},
#{item.appointmentDocumentsId}, #{item.appointmentTimeInfoId}, #{item.qrContent}, #{item.appointmentDate}),#{item.reservationPerson}
</foreach>
</insert>
<update id="updateAppointmentSetting">
update ybsj_appointment_setting
@ -105,7 +128,8 @@
use_date as useDate,
unavailable_date as unavailableDate
from ybsj_appointment_time_info
where appointment_settings_id = #{appointment_settings_id} and del_flag !=2
where appointment_settings_id = #{appointment_settings_id}
and del_flag !=2
</select>
<select id="getSettingCountByGuid" resultType="java.lang.Integer">
select count(*)
@ -114,20 +138,31 @@
and state = 0
</select>
<select id="appointmentList" resultType="com.cjy.back.ybsjAppointment.entity.vo.AppletsAppointmentListVO">
SELECT
t1.id AS appointmentTimeInfoId,
t1.start_time as startTime,
t1.end_time as endTime,
t1.reserve_count AS reservableQuantity
FROM
ybsj_appointment_time_info t1
LEFT JOIN ybsj_appointment_setting t2 on t1.appointment_settings_id =t2.id and t2.state =0
WHERE
t2.scenic_id=#{scenicId}
and t1.use_date LIKE CONCAT('%',#{whichDay},'%')
and t1.unavailable_date NOT LIKE CONCAT('%',#{date},'%')
SELECT t1.id AS appointmentTimeInfoId,
t1.start_time as startTime,
t1.end_time as endTime,
t1.reserve_count AS reservableQuantity
FROM ybsj_appointment_time_info t1
LEFT JOIN ybsj_appointment_setting t2 on t1.appointment_settings_id = t2.id and t2.state = 0
WHERE t2.scenic_id = #{scenicId}
and t1.use_date LIKE CONCAT('%', #{whichDay}, '%')
and t1.unavailable_date NOT LIKE CONCAT('%', #{date}, '%')
</select>
<select id="getAppointmentCount" resultType="java.lang.Integer">
select count(*) from ybsj_appointment_people_info where appointment_time_info_id=#{appointmentTimeInfoId} and write_off !=3
select count(*)
from ybsj_appointment_people_info
where appointment_time_info_id = #{appointmentTimeInfoId} and appointment_date =#{date}
and write_off !=3
</select>
<select id="getPeriodInfo" resultType="com.cjy.back.ybsjAppointment.entity.AppointmentTimeInfoEntity">
select id,
reserve_count as reserveCount,
start_time as startTime,
end_time as endTime,
use_date as useDate,
unavailable_date as unavailableDate,
appointment_settings_id as appointmentSettingsId
from ybsj_appointment_time_info
where id = #{id}
</select>
</mapper>

@ -0,0 +1,89 @@
package com.cjy.back.ybsjAppointment.entity.vo;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
public class AppointmentFormVO {
private Long id;
private String appointmentNumber;
private int appointmentCount;
private String appointmentDate;
private Long appointmentTimeInfoId;
private String unionId;
private String createBy;
private String scenicId;
private String appointmentDocumentsWriteOff;
public String getAppointmentDocumentsWriteOff() {
return appointmentDocumentsWriteOff;
}
public void setAppointmentDocumentsWriteOff(String appointmentDocumentsWriteOff) {
this.appointmentDocumentsWriteOff = appointmentDocumentsWriteOff;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAppointmentNumber() {
return appointmentNumber;
}
public void setAppointmentNumber(String appointmentNumber) {
this.appointmentNumber = appointmentNumber;
}
public int getAppointmentCount() {
return appointmentCount;
}
public void setAppointmentCount(int appointmentCount) {
this.appointmentCount = appointmentCount;
}
public String getAppointmentDate() {
return appointmentDate;
}
public void setAppointmentDate(String appointmentDate) {
this.appointmentDate = appointmentDate;
}
public Long getAppointmentTimeInfoId() {
return appointmentTimeInfoId;
}
public void setAppointmentTimeInfoId(Long appointmentTimeInfoId) {
this.appointmentTimeInfoId = appointmentTimeInfoId;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getScenicId() {
return scenicId;
}
public void setScenicId(String scenicId) {
this.scenicId = scenicId;
}
}

@ -28,6 +28,18 @@ public class AppointmentPersonVO {
private String writeOffDate;
//过期状态
private String expiredState;
//预约日期
private String appointmentDate;
//是否是预约人
private int reservationPerson;
public int getReservationPerson() {
return reservationPerson;
}
public void setReservationPerson(int reservationPerson) {
this.reservationPerson = reservationPerson;
}
public int getId() {
return id;
@ -124,4 +136,12 @@ public class AppointmentPersonVO {
public void setExpiredState(String expiredState) {
this.expiredState = expiredState;
}
public String getAppointmentDate() {
return appointmentDate;
}
public void setAppointmentDate(String appointmentDate) {
this.appointmentDate = appointmentDate;
}
}

@ -0,0 +1,71 @@
package com.cjy.back.ybsjAppointment.entity.vo;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
public class GetAppointmentRecordVO {
private String scenicName;
private String reservationPersonName;
private String reservationPersonPhone;
private String reservationDate;
private String state;
private String page;
private String limit;
public String getScenicName() {
return scenicName;
}
public void setScenicName(String scenicName) {
this.scenicName = scenicName;
}
public String getReservationPersonName() {
return reservationPersonName;
}
public void setReservationPersonName(String reservationPersonName) {
this.reservationPersonName = reservationPersonName;
}
public String getReservationPersonPhone() {
return reservationPersonPhone;
}
public void setReservationPersonPhone(String reservationPersonPhone) {
this.reservationPersonPhone = reservationPersonPhone;
}
public String getReservationDate() {
return reservationDate;
}
public void setReservationDate(String reservationDate) {
this.reservationDate = reservationDate;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public String getLimit() {
return limit;
}
public void setLimit(String limit) {
this.limit = limit;
}
}

@ -9,20 +9,32 @@ import java.util.List;
*/
public class ReservationNowVO {
//预约时间段id
private int appointmentTimeInfoId;
private Long appointmentTimeInfoId;
//预约日期
private String appointmentDate;
//开始时间
private String startTime;
//结束时间
private String endTime;
private String unionId;
//景区id
private String scenicId;
public String getScenicId() {
return scenicId;
}
public void setScenicId(String scenicId) {
this.scenicId = scenicId;
}
List<AppointmentPersonVO> appointmentPersonList=new ArrayList<>();
public int getAppointmentTimeInfoId() {
public Long getAppointmentTimeInfoId() {
return appointmentTimeInfoId;
}
public void setAppointmentTimeInfoId(int appointmentTimeInfoId) {
public void setAppointmentTimeInfoId(Long appointmentTimeInfoId) {
this.appointmentTimeInfoId = appointmentTimeInfoId;
}
@ -57,4 +69,12 @@ public class ReservationNowVO {
public void setAppointmentPersonList(List<AppointmentPersonVO> appointmentPersonList) {
this.appointmentPersonList = appointmentPersonList;
}
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
}

@ -0,0 +1,24 @@
package com.cjy.back.ybsjAppointment.service;
import com.cjy.back.ybsjAppointment.entity.vo.GetAppointmentRecordVO;
import com.cjy.util.ServerResponse;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
public interface YbsjyAppointmentRecordService {
/**
* 查询预约记录
* @param getAppointmentRecordVO
* @return
*/
ServerResponse getAppointmentRecord(GetAppointmentRecordVO getAppointmentRecordVO);
/**
* 删除预约单
* @param id
* @return
*/
ServerResponse deleteAppointmentRecord(Long id,int userId);
}

@ -0,0 +1,71 @@
package com.cjy.back.ybsjAppointment.service.impl;
import com.cjy.back.ybsjAppointment.dao.YbsjyAppointmentRecordMapper;
import com.cjy.back.ybsjAppointment.entity.vo.GetAppointmentRecordVO;
import com.cjy.back.ybsjAppointment.service.YbsjyAppointmentRecordService;
import com.cjy.common.PageWrapper;
import com.cjy.util.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
@Service
public class YbsjyAppointmentRecordImpl implements YbsjyAppointmentRecordService {
@Autowired
YbsjyAppointmentRecordMapper ybsjyAppointmentRecordMapper;
/**
* 查询预约记录
* @param getAppointmentRecordVO
* @return
*/
@Override
public ServerResponse getAppointmentRecord(GetAppointmentRecordVO getAppointmentRecordVO) {
// 获取当前页码,在分页组件里 参数固定为currentPage
String cpage = getAppointmentRecordVO.getPage();
// 显示行数
int limit = Integer.valueOf(getAppointmentRecordVO.getLimit());
int pageNo = 1;
if (cpage != null && !("").equals(cpage)) {
pageNo = Integer.parseInt(cpage);
}
/* 分页信息开始 */
PageWrapper pw = new PageWrapper();
pw.getPage().setCurrentPage(pageNo);
pw.getPage().setPageSize(limit); // 每页条数
/* 分页信息结束 */
//根据条件进行分页查询数据
List<Map<String, Object>> list = ybsjyAppointmentRecordMapper.getAppointmentRecordListByPage(pw.getPage(), getAppointmentRecordVO);
list.stream().forEach(item->{
});
// 查询总行数
int userCount = pw.getPage().getTotalCount();
//返回数据
HashMap<String, Object> resultMap = new HashMap<>();
resultMap.put("count", userCount);
resultMap.put("data", list);
resultMap.put("msg", "查询成功");
resultMap.put("code", 0);
return ServerResponse.createBySuccess(resultMap);
}
/**
* 删除预约单
* @param id
* @return
*/
@Override
public ServerResponse deleteAppointmentRecord(Long id,int userId) {
ybsjyAppointmentRecordMapper.deleteAppointmentRecord(id,userId);
return ServerResponse.createBySuccess("删除成功");
}
}

@ -4,8 +4,10 @@ import com.cjy.back.ybsjAppointment.dao.YbsjyAppointmentSettingMapper;
import com.cjy.back.ybsjAppointment.entity.AppointmentTimeInfoEntity;
import com.cjy.back.ybsjAppointment.entity.YbsjyAppointmentSettingEntity;
import com.cjy.back.ybsjAppointment.entity.vo.AppletsAppointmentListVO;
import com.cjy.back.ybsjAppointment.entity.vo.AppointmentFormVO;
import com.cjy.back.ybsjAppointment.entity.vo.ReservationNowVO;
import com.cjy.back.ybsjAppointment.service.YbsjyAppointmentSettingService;
import com.cjy.back.ybsjAppointment.utils.AppointmentNumberUtil;
import com.cjy.back.ybsjAppointment.utils.DateUtil;
import com.cjy.common.PageWrapper;
import com.cjy.util.ServerResponse;
@ -170,6 +172,7 @@ public class YbsjyAppointmentSettingServiceImpl implements YbsjyAppointmentSetti
/**
* 通过日期和景区参数去获取预约列表
*
* @param date
* @param scenicId
* @return
@ -183,7 +186,7 @@ public class YbsjyAppointmentSettingServiceImpl implements YbsjyAppointmentSetti
List<AppletsAppointmentListVO> list = ybsjyAppointmentSettingMapper.appointmentList(date, scenicId, whichDay);
list.stream().forEach(item -> {
//通过时间段id统计目前预约了多少人
item.setReservedQuantity(ybsjyAppointmentSettingMapper.getAppointmentCount(item.getAppointmentTimeInfoId()));
item.setReservedQuantity(ybsjyAppointmentSettingMapper.getAppointmentCount(item.getAppointmentTimeInfoId(),date));
});
//第二步通过通过规则id获取到时间段列表
HashMap<String, Object> resultMap = new HashMap<>();
@ -195,11 +198,61 @@ public class YbsjyAppointmentSettingServiceImpl implements YbsjyAppointmentSetti
/**
* 立即预约
*
* @param reservationNowVO
* @return
*/
@Override
@Transactional
public ServerResponse reservationNow(ReservationNowVO reservationNowVO) {
return null;
//获取该时间段预约了多少人
int reservedCount = ybsjyAppointmentSettingMapper.getAppointmentCount(reservationNowVO.getAppointmentTimeInfoId(),reservationNowVO.getAppointmentDate());
AppointmentTimeInfoEntity appointmentTimeInfoEntity = ybsjyAppointmentSettingMapper.getPeriodInfo(reservationNowVO.getAppointmentTimeInfoId());
//如果可预约人数>预约人数 就可以预约
AppointmentFormVO appointmentFormVO =new AppointmentFormVO();
if ( (reservedCount + reservationNowVO.getAppointmentPersonList().size()) <= appointmentTimeInfoEntity.getReserveCount() ) {
// 然后判断一个日期是否是今天
if (DateUtil.isToday(reservationNowVO.getAppointmentDate())) {
//判断当前时间是否是大于当前时间段的结束时间
if (DateUtil.isAfterEndTime(reservationNowVO.getEndTime())) {
return ServerResponse.createByError("预约失败,当前时间大于预约时段的结束时间");
} else {
//生成预约单
appointmentFormVO.setAppointmentNumber(AppointmentNumberUtil.generateOrderNumber());
appointmentFormVO.setAppointmentCount(reservationNowVO.getAppointmentPersonList().size());
appointmentFormVO.setAppointmentDate(reservationNowVO.getAppointmentDate());
appointmentFormVO.setAppointmentTimeInfoId(reservationNowVO.getAppointmentTimeInfoId());
appointmentFormVO.setUnionId(reservationNowVO.getUnionId());
appointmentFormVO.setCreateBy(reservationNowVO.getUnionId());
appointmentFormVO.setScenicId(reservationNowVO.getScenicId());
}
} else {
//生成预约单
appointmentFormVO.setAppointmentNumber(AppointmentNumberUtil.generateOrderNumber());
appointmentFormVO.setAppointmentCount(reservationNowVO.getAppointmentPersonList().size());
appointmentFormVO.setAppointmentDate(reservationNowVO.getAppointmentDate());
appointmentFormVO.setAppointmentTimeInfoId(reservationNowVO.getAppointmentTimeInfoId());
appointmentFormVO.setUnionId(reservationNowVO.getUnionId());
appointmentFormVO.setCreateBy(reservationNowVO.getUnionId());
appointmentFormVO.setScenicId(reservationNowVO.getScenicId());
}
//插入预约单
ybsjyAppointmentSettingMapper.saveAppointmentDocumentsInfo(appointmentFormVO);
//插入预约人信息表
reservationNowVO.getAppointmentPersonList().stream().forEach(item ->{
item.setReservationCode(AppointmentNumberUtil.generateOrderNumber());
item.setAppointmentTimeInfoId(reservationNowVO.getAppointmentTimeInfoId());
item.setAppointmentDocumentsId(appointmentFormVO.getId());
item.setAppointmentDate(reservationNowVO.getAppointmentDate());
});
ybsjyAppointmentSettingMapper.saveAppointmentPeopleInfo(reservationNowVO.getAppointmentPersonList());
//设置权限
//
}else {
return ServerResponse.createByError("预约失败,预约人数已满");
}
return ServerResponse.createBySuccess("预约成功");
}
}

@ -0,0 +1,35 @@
package com.cjy.back.ybsjAppointment.utils;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Random;
/**
* @author liangjiawei
* @createDate 2023/7/27
*/
public class AppointmentNumberUtil {
public static String generateOrderNumber() {
// 获取当前时间
LocalDateTime currentTime = LocalDateTime.now();
// 定义日期时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
// 格式化当前时间为字符串
String timestamp = currentTime.format(formatter);
// 生成随机数
Random random = new Random();
String randomDigits = String.format("%04d", random.nextInt(10000));
// 拼接单号
String orderNumber = timestamp + randomDigits;
return orderNumber;
}
public static void main(String[] args) {
System.out.println(AppointmentNumberUtil.generateOrderNumber());
}
}

@ -2,6 +2,7 @@ package com.cjy.back.ybsjAppointment.utils;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
/**
@ -17,4 +18,41 @@ public class DateUtil {
int weekNumber = dayOfWeek.getValue();
return weekNumber;
}
public static boolean isToday(String dateString) {
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
// 将字符串日期解析为LocalDate对象
LocalDate date = LocalDate.parse(dateString, formatter);
// 获取今天的日期
LocalDate today = LocalDate.now();
// 判断是否是今天
if (date.isEqual(today)) {
return true;
} else {
return false;
}
}
public static boolean isAfterEndTime(String endTime) {
// 获取当前时间
LocalTime currentTime = LocalTime.now();
// 解析结束时间
LocalTime endTimeParsed = LocalTime.parse(endTime);
// 判断当前时间是否大于结束时间
if (currentTime.isAfter(endTimeParsed)) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
System.out.println(DateUtil.isAfterEndTime("09:00"));
}
}

Loading…
Cancel
Save