1.预约设置查询

2.预约设置详情
3.预约是否启用状态切换
4.预约设置删除
5.删除时间段数据
6.立即预约-列表
main
862857010@qq.com 2 years ago
parent aa7d851450
commit 86de41d335
  1. 38
      src/main/java/com/cjy/back/ybsjAppointment/controller/YbsjyAppletsAppointmentController.java
  2. 94
      src/main/java/com/cjy/back/ybsjAppointment/controller/YbsjyAppointmentSettingController.java
  3. 98
      src/main/java/com/cjy/back/ybsjAppointment/dao/YbsjyAppointmentSettingMapper.java
  4. 84
      src/main/java/com/cjy/back/ybsjAppointment/dao/YbsjyAppointmentSettingMapper.xml
  5. 3
      src/main/java/com/cjy/back/ybsjAppointment/entity/AppointmentTimeInfoEntity.java
  6. 32
      src/main/java/com/cjy/back/ybsjAppointment/entity/YbsjyAppointmentSettingEntity.java
  7. 58
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/AppletsAppointmentListVO.java
  8. 127
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/AppointmentPersonVO.java
  9. 60
      src/main/java/com/cjy/back/ybsjAppointment/entity/vo/ReservationNowVO.java
  10. 68
      src/main/java/com/cjy/back/ybsjAppointment/service/YbsjyAppointmentSettingService.java
  11. 167
      src/main/java/com/cjy/back/ybsjAppointment/service/impl/YbsjyAppointmentSettingServiceImpl.java
  12. 20
      src/main/java/com/cjy/back/ybsjAppointment/utils/DateUtil.java
  13. 5
      src/main/java/com/cjy/init/InitDataRedis.java

@ -0,0 +1,38 @@
package com.cjy.back.ybsjAppointment.controller;
import com.cjy.back.ybsjAppointment.entity.vo.ReservationNowVO;
import com.cjy.back.ybsjAppointment.service.YbsjyAppointmentSettingService;
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;
/**
* @author liangjiawei
* @createDate 2023/7/26
*/
@RequestMapping("appletsAppointment")
@RestController
public class YbsjyAppletsAppointmentController {
@Autowired
YbsjyAppointmentSettingService ybsjyAppointmentSettingService;
/**
* 通过日期和景区参数去获取预约列表
*/
@RequestMapping("appointmentList")
public ServerResponse appointmentList(String date, String scenicId) {
return ybsjyAppointmentSettingService.appointmentList(date, scenicId);
}
/**
* 立即预约
*/
@RequestMapping("reservationNow")
public ServerResponse reservationNow(@RequestBody ReservationNowVO reservationNowVO) {
return ybsjyAppointmentSettingService.reservationNow(reservationNowVO);
}
}

@ -24,6 +24,7 @@ public class YbsjyAppointmentSettingController {
/**
* 预约配置创建
*
* @param request
* @param ybsjyAppointmentSettingEntity
* @return
@ -31,15 +32,20 @@ public class YbsjyAppointmentSettingController {
@RequestMapping("add")
public ServerResponse add(HttpServletRequest request, @RequestBody YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if(user == null){
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
ybsjyAppointmentSettingEntity.setCreateBy(user.getUserid().toString());
ybsjyAppointmentSettingEntity.setUserkey(user.getUserkey());
if (ybsjyAppointmentSettingEntity.getId() == 0) {
return ServerResponse.createByError("请合理操作,如有疑问请联系管理员");
}
return ybsjyAppointmentSettingService.add(ybsjyAppointmentSettingEntity);
}
/**
* 预约配置修改
*
* @param request
* @param ybsjyAppointmentSettingEntity
* @return
@ -47,10 +53,94 @@ public class YbsjyAppointmentSettingController {
@RequestMapping("updateYbsjyAppointmentSetting")
public ServerResponse updateYbsjyAppointmentSetting(HttpServletRequest request, @RequestBody YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if(user == null){
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
if (ybsjyAppointmentSettingEntity.getId() == 0) {
return ServerResponse.createByError("请合理操作,如有疑问请联系管理员");
}
ybsjyAppointmentSettingEntity.setUpdateBy(user.getUserid().toString());
return ybsjyAppointmentSettingService.updateYbsjyAppointmentSetting(ybsjyAppointmentSettingEntity);
}
/**
* 预约详情
*/
@RequestMapping("getAppointmentSettingDetail")
public ServerResponse getAppointmentSettingDetail(HttpServletRequest request, int id) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
if (id == 0) {
return ServerResponse.createByError("请合理操作,如有疑问请联系管理员");
}
return ybsjyAppointmentSettingService.getAppointmentSettingDetail(id);
}
/**
* 预约设置列表
*/
@RequestMapping("appointmentSettingList")
public ServerResponse appointmentSettingList(HttpServletRequest request, @RequestBody YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
ybsjyAppointmentSettingEntity.setCreateBy(user.getUserid().toString());
ybsjyAppointmentSettingEntity.setUserkey(user.getUserkey());
return ybsjyAppointmentSettingService.appointmentSettingList(ybsjyAppointmentSettingEntity);
}
/**
* 预约状态切换
*/
@RequestMapping("stateSwitch")
public ServerResponse stateSwitch(HttpServletRequest request, @RequestBody YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
ybsjyAppointmentSettingEntity.setUserkey(user.getUserkey());
if (ybsjyAppointmentSettingEntity.getId() == 0 || ybsjyAppointmentSettingEntity.getState() > 2 || ybsjyAppointmentSettingEntity.getState() < 0 || ybsjyAppointmentSettingEntity.getGuid() == 0) {
return ServerResponse.createByError("请合理操作,如有疑问请联系管理员");
}
return ybsjyAppointmentSettingService.stateSwitch(ybsjyAppointmentSettingEntity);
}
/**
* 删除预约配置
*/
@RequestMapping("delectAppointmentSetting")
public ServerResponse delectAppointmentSetting(HttpServletRequest request, int id) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
if (id == 0) {
return ServerResponse.createByError("请合理操作,如有疑问请联系管理员");
}
return ybsjyAppointmentSettingService.deleteAppointmentSetting(id, user.getUserid());
}
/**
* 删除时间段
*/
@RequestMapping("delectAppointmentPeriod")
public ServerResponse delectAppointmentPeriod(HttpServletRequest request, int id) {
SysUser user = (SysUser) request.getSession().getAttribute("admin");
if (user == null) {
return ServerResponse.createByError("请重新登陆");
}
if (id == 0) {
return ServerResponse.createByError("请合理操作,如有疑问请联系管理员");
}
return ybsjyAppointmentSettingService.delectAppointmentPeriod(id, user.getUserid());
}
}

@ -2,9 +2,13 @@ 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.common.mybatis.page.PageParameter;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author liangjiawei
@ -13,6 +17,7 @@ import java.util.List;
public interface YbsjyAppointmentSettingMapper {
/**
* 插入配置表
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
@ -20,6 +25,7 @@ public interface YbsjyAppointmentSettingMapper {
/**
* 修改配置表
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
@ -27,18 +33,106 @@ public interface YbsjyAppointmentSettingMapper {
/**
* 修改时间段
*
* @param list
* @param appointmentSettingsId
* @param userid
* @return
*/
int updateAppointmentTimeInfoEntityList(@Param("list") List<AppointmentTimeInfoEntity> list, @Param("appointmentSettingsId") int appointmentSettingsId,@Param("userid")String userid);
int updateAppointmentTimeInfoEntityList(@Param("list") List<AppointmentTimeInfoEntity> list, @Param("appointmentSettingsId") int appointmentSettingsId, @Param("userid") String userid);
/**
* 批量插入时间段表
*
* @param list
* @param id
* @return
*/
int addAppointmentTimeInfoEntityList(@Param("list") List<AppointmentTimeInfoEntity> list, @Param("appointmentSettingsId") int id,@Param("userid")String userid);
int addAppointmentTimeInfoEntityList(@Param("list") List<AppointmentTimeInfoEntity> list, @Param("appointmentSettingsId") int id, @Param("userid") String userid);
/**
* 预约设置列表
*
* @param page
* @param ybsjyAppointmentSettingEntity
* @return
*/
List<Map<String, Object>> queryAppointmentSettingListByPage(@Param("page") PageParameter page, @Param("ybsjyAppointmentSettingEntity") YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
/**
* 状态切换
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
int stateSwitch(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
/**
* 获取配置表详情
*
* @param id
* @return
*/
YbsjyAppointmentSettingEntity getAppointmentSettingDetail(int id);
/**
* 获取时间段详情
*
* @param appointmentSettingsId
* @return
*/
List<AppointmentTimeInfoEntity> getAppointmentTimeInfoEntityDetail(int appointmentSettingsId);
/**
* 获取启用的数量
*
* @param guid
* @return
*/
int getSettingCountByGuid(int guid);
/**
* 通过配置表id删除时间段表数据
*
* @param appointmentSettingsId
* @return
*/
int deleteAppointmentTimeInfoEntity(int appointmentSettingsId);
/**
* 删除预约配置
*
* @param id
* @param userId
* @return
*/
int deleteAppointmentSetting(@Param("id") int id, @Param("userId") int userId);
/**
* 删除时间段
*
* @param id
* @param userId
* @return
*/
int delectAppointmentPeriod(@Param("id") int id, @Param("userId") int userId);
/**
* 通过日期和景区参数去获取预约列表
*
* @param date
* @param scenicId
* @param whichDay
* @return
*/
List<AppletsAppointmentListVO> appointmentList(@Param("date") String date, @Param("scenicId") String scenicId, @Param("whichDay") int whichDay);
/**
* 获取时间段预约数量
*
* @param appointmentTimeInfoId
* @return
*/
int getAppointmentCount(Long appointmentTimeInfoId);
}

@ -6,8 +6,8 @@
<insert id="addAppointmentSetting" useGeneratedKeys="true" keyProperty="id">
INSERT INTO ybsj_appointment_setting (scenic_id, url, can_reserve_day_number,
create_by)
VALUES (#{guid}, #{url}, #{canReserveDayNumber}, #{createBy})
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,
@ -50,4 +50,84 @@
</foreach>
</update>
<update id="stateSwitch">
update ybsj_appointment_setting
set state=#{state}
where userkey = #{userkey}
and id = #{id}
</update>
<delete id="deleteAppointmentTimeInfoEntity">
delete
from ybsj_appointment_time_info
where appointment_settings_id = #{appointmentSettingsId}
</delete>
<update id="delectAppointmentPeriod">
update ybsj_appointment_time_info
set del_flag = '2',
update_by=#{userId}
where id = #{id}
</update>
<update id="deleteAppointmentSetting">
update ybsj_appointment_setting
set del_flag = '2',
update_by=#{userId}
where id = #{id}
</update>
<select id="queryAppointmentSettingListByPage" resultType="java.util.Map">
SELECT
t1.id,
t2.sname,
t1.state
FROM
ybsj_appointment_setting t1
LEFT JOIN ybsj_scenic_info t2 ON t1.scenic_id = t2.guid
where 1=1
<if test="ybsjyAppointmentSettingEntity.guid !=null and ybsjyAppointmentSettingEntity.guid !=''">
and t1.scenic_id=#{ybsjyAppointmentSettingEntity.guid}
</if>
and t1.userkey=#{ybsjyAppointmentSettingEntity.userkey}
and t1.del_flag !=2
ORDER BY t1.create_time DESC
</select>
<select id="getAppointmentSettingDetail"
resultType="com.cjy.back.ybsjAppointment.entity.YbsjyAppointmentSettingEntity">
select id, scenic_id as guid, url, can_reserve_day_number as canReserveDayNumber
from ybsj_appointment_setting
where id = #{id}
</select>
<select id="getAppointmentTimeInfoEntityDetail"
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
from ybsj_appointment_time_info
where appointment_settings_id = #{appointment_settings_id} and del_flag !=2
</select>
<select id="getSettingCountByGuid" resultType="java.lang.Integer">
select count(*)
from ybsj_appointment_setting
where scenic_id = #{guid}
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>
<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>
</mapper>

@ -1,11 +1,14 @@
package com.cjy.back.ybsjAppointment.entity;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;
/**
* @author liangjiawei
* @createDate 2023/7/25
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class AppointmentTimeInfoEntity {
//唯一id
private Long id;

@ -1,5 +1,8 @@
package com.cjy.back.ybsjAppointment.entity;
import com.fasterxml.jackson.annotation.JsonInclude;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -8,6 +11,7 @@ import java.util.List;
* @author liangjiawei
* @createDate 2023/7/25
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class YbsjyAppointmentSettingEntity {
private int id;
//景区id
@ -28,9 +32,37 @@ public class YbsjyAppointmentSettingEntity {
private String updateBy;
//修改时间
private Date updateTime;
private String userkey;
//时间段集合
private List<AppointmentTimeInfoEntity> periodTimeList =new ArrayList<>();
private String page;
private String limit;
public String getUserkey() {
return userkey;
}
public void setUserkey(String userkey) {
this.userkey = userkey;
}
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;
}
public int getId() {
return id;
}

@ -0,0 +1,58 @@
package com.cjy.back.ybsjAppointment.entity.vo;
/**
* @author liangjiawei
* @createDate 2023/7/26
*/
public class AppletsAppointmentListVO {
//预约时间段的id
private Long appointmentTimeInfoId;
//时间段
private String startTime;
private String endTime;
//已预约数量
private int reservedQuantity;
//可预约数量
private int reservableQuantity;
public Long getAppointmentTimeInfoId() {
return appointmentTimeInfoId;
}
public void setAppointmentTimeInfoId(Long appointmentTimeInfoId) {
this.appointmentTimeInfoId = appointmentTimeInfoId;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public int getReservedQuantity() {
return reservedQuantity;
}
public void setReservedQuantity(int reservedQuantity) {
this.reservedQuantity = reservedQuantity;
}
public int getReservableQuantity() {
return reservableQuantity;
}
public void setReservableQuantity(int reservableQuantity) {
this.reservableQuantity = reservableQuantity;
}
}

@ -0,0 +1,127 @@
package com.cjy.back.ybsjAppointment.entity.vo;
/**
* @author liangjiawei
* @createDate 2023/7/26
*/
public class AppointmentPersonVO {
private int id;
//姓名
private String name;
//手机号
private String phone;
//证件类型
private int documentsType;
//证件号码
private String documentsNumber;
//预约码
private String reservationCode;
//预约单id
private Long appointmentDocumentsId;
//预约时间id
private Long appointmentTimeInfoId;
// 是否核销0:未核销 1:已核销3:取消
private String writeOff;
//二维码内容
private String qrContent;
//核销日期
private String writeOffDate;
//过期状态
private String expiredState;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getDocumentsType() {
return documentsType;
}
public void setDocumentsType(int documentsType) {
this.documentsType = documentsType;
}
public String getDocumentsNumber() {
return documentsNumber;
}
public void setDocumentsNumber(String documentsNumber) {
this.documentsNumber = documentsNumber;
}
public String getReservationCode() {
return reservationCode;
}
public void setReservationCode(String reservationCode) {
this.reservationCode = reservationCode;
}
public Long getAppointmentDocumentsId() {
return appointmentDocumentsId;
}
public void setAppointmentDocumentsId(Long appointmentDocumentsId) {
this.appointmentDocumentsId = appointmentDocumentsId;
}
public Long getAppointmentTimeInfoId() {
return appointmentTimeInfoId;
}
public void setAppointmentTimeInfoId(Long appointmentTimeInfoId) {
this.appointmentTimeInfoId = appointmentTimeInfoId;
}
public String getWriteOff() {
return writeOff;
}
public void setWriteOff(String writeOff) {
this.writeOff = writeOff;
}
public String getQrContent() {
return qrContent;
}
public void setQrContent(String qrContent) {
this.qrContent = qrContent;
}
public String getWriteOffDate() {
return writeOffDate;
}
public void setWriteOffDate(String writeOffDate) {
this.writeOffDate = writeOffDate;
}
public String getExpiredState() {
return expiredState;
}
public void setExpiredState(String expiredState) {
this.expiredState = expiredState;
}
}

@ -0,0 +1,60 @@
package com.cjy.back.ybsjAppointment.entity.vo;
import java.util.ArrayList;
import java.util.List;
/**
* @author liangjiawei
* @createDate 2023/7/26
*/
public class ReservationNowVO {
//预约时间段id
private int appointmentTimeInfoId;
private String appointmentDate;
//开始时间
private String startTime;
//结束时间
private String endTime;
List<AppointmentPersonVO> appointmentPersonList=new ArrayList<>();
public int getAppointmentTimeInfoId() {
return appointmentTimeInfoId;
}
public void setAppointmentTimeInfoId(int appointmentTimeInfoId) {
this.appointmentTimeInfoId = appointmentTimeInfoId;
}
public String getAppointmentDate() {
return appointmentDate;
}
public void setAppointmentDate(String appointmentDate) {
this.appointmentDate = appointmentDate;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public List<AppointmentPersonVO> getAppointmentPersonList() {
return appointmentPersonList;
}
public void setAppointmentPersonList(List<AppointmentPersonVO> appointmentPersonList) {
this.appointmentPersonList = appointmentPersonList;
}
}

@ -1,8 +1,11 @@
package com.cjy.back.ybsjAppointment.service;
import com.cjy.back.ybsjAppointment.entity.YbsjyAppointmentSettingEntity;
import com.cjy.back.ybsjAppointment.entity.vo.ReservationNowVO;
import com.cjy.util.ServerResponse;
import java.util.List;
/**
* @author liangjiawei
* @createDate 2023/7/25
@ -10,15 +13,76 @@ import com.cjy.util.ServerResponse;
public interface YbsjyAppointmentSettingService {
/**
* 预约配置创建
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
ServerResponse add(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
ServerResponse add(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
/**
* 预约配置修改
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
ServerResponse updateYbsjyAppointmentSetting(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
/**
* 预约设置列表
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
ServerResponse appointmentSettingList(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
/**
* 状态切换
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
ServerResponse updateYbsjyAppointmentSetting(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
ServerResponse stateSwitch(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity);
/**
* 预约详情
*
* @param id
* @return
*/
ServerResponse getAppointmentSettingDetail(int id);
/**
* 删除预约配置
*
* @param id
* @param userId
* @return
*/
ServerResponse deleteAppointmentSetting(int id, int userId);
/**
* 删除时间段
*
* @param id
* @param userId
* @return
*/
ServerResponse delectAppointmentPeriod(int id, int userId);
/**
* 通过日期和景区参数去获取预约列表
*
* @param date
* @param scenicId
* @return
*/
ServerResponse appointmentList(String date, String scenicId);
/**
* 立即预约
* @param reservationNowVO
* @return
*/
ServerResponse reservationNow(ReservationNowVO reservationNowVO);
}

@ -1,13 +1,22 @@
package com.cjy.back.ybsjAppointment.service.impl;
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.ReservationNowVO;
import com.cjy.back.ybsjAppointment.service.YbsjyAppointmentSettingService;
import com.cjy.back.ybsjAppointment.utils.DateUtil;
import com.cjy.common.PageWrapper;
import com.cjy.util.ServerResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author liangjiawei
* @createDate 2023/7/25
@ -17,6 +26,13 @@ public class YbsjyAppointmentSettingServiceImpl implements YbsjyAppointmentSetti
@Autowired
YbsjyAppointmentSettingMapper ybsjyAppointmentSettingMapper;
/**
* 预约设置添加
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
@Override
@Transactional
public ServerResponse add(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
@ -28,11 +44,162 @@ public class YbsjyAppointmentSettingServiceImpl implements YbsjyAppointmentSetti
return ServerResponse.createBySuccess("创建成功");
}
/**
* 预约设置编辑
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
@Override
@Transactional
public ServerResponse updateYbsjyAppointmentSetting(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
ybsjyAppointmentSettingMapper.updateAppointmentSetting(ybsjyAppointmentSettingEntity);
// //先删除后插入
// ybsjyAppointmentSettingMapper.deleteAppointmentTimeInfoEntity(ybsjyAppointmentSettingEntity.getId());
// //通过配置表id删除时间段表中的数据
// ybsjyAppointmentSettingMapper.addAppointmentTimeInfoEntityList(ybsjyAppointmentSettingEntity.getPeriodTimeList(), ybsjyAppointmentSettingEntity.getId(), ybsjyAppointmentSettingEntity.getUpdateBy());
//
ybsjyAppointmentSettingMapper.updateAppointmentTimeInfoEntityList(ybsjyAppointmentSettingEntity.getPeriodTimeList(), ybsjyAppointmentSettingEntity.getId(), ybsjyAppointmentSettingEntity.getUpdateBy());
return ServerResponse.createBySuccess("编辑成功");
}
/**
* 预约设置列表
*
* @param ybsjyAppointmentSettingEntity
* @return
*/
@Override
public ServerResponse appointmentSettingList(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
// 获取当前页码,在分页组件里 参数固定为currentPage
String cpage = ybsjyAppointmentSettingEntity.getPage();
// 显示行数
int limit = Integer.valueOf(ybsjyAppointmentSettingEntity.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 = ybsjyAppointmentSettingMapper.queryAppointmentSettingListByPage(pw.getPage(), ybsjyAppointmentSettingEntity);
// 查询总行数
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 ybsjyAppointmentSettingEntity
* @return
*/
@Override
public ServerResponse stateSwitch(YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity) {
String returnMenssage = "";
if (ybsjyAppointmentSettingEntity.getState() == 1) {
if (ybsjyAppointmentSettingMapper.getSettingCountByGuid(ybsjyAppointmentSettingEntity.getGuid()) == 0) {
ybsjyAppointmentSettingEntity.setState(0);
returnMenssage = "开启成功";
} else {
return ServerResponse.createByError("一个景区仅支持一个规则,请先关闭其他开启的规则。");
}
} else if (ybsjyAppointmentSettingEntity.getState() == 0) {
ybsjyAppointmentSettingEntity.setState(1);
returnMenssage = "停用成功";
}
ybsjyAppointmentSettingMapper.stateSwitch(ybsjyAppointmentSettingEntity);
return ServerResponse.createBySuccess(returnMenssage);
}
/**
* 获取配置详情
*
* @param id
* @return
*/
@Override
public ServerResponse getAppointmentSettingDetail(int id) {
//第一步获取配置信息
YbsjyAppointmentSettingEntity ybsjyAppointmentSettingEntity = new YbsjyAppointmentSettingEntity();
ybsjyAppointmentSettingEntity = ybsjyAppointmentSettingMapper.getAppointmentSettingDetail(id);
List<AppointmentTimeInfoEntity> periodTimeList = ybsjyAppointmentSettingMapper.getAppointmentTimeInfoEntityDetail(id);
ybsjyAppointmentSettingEntity.setPeriodTimeList(periodTimeList);
//第二步获取时间段
return ServerResponse.createBySuccess(ybsjyAppointmentSettingEntity);
}
/**
* 删除预约配置
*
* @param id
* @param userId
* @return
*/
@Override
public ServerResponse deleteAppointmentSetting(int id, int userId) {
ybsjyAppointmentSettingMapper.deleteAppointmentSetting(id, userId);
return ServerResponse.createBySuccess("删除成功");
}
/**
* 删除时间段
*
* @param id
* @param userId
* @return
*/
@Override
public ServerResponse delectAppointmentPeriod(int id, int userId) {
ybsjyAppointmentSettingMapper.delectAppointmentPeriod(id, userId);
return ServerResponse.createBySuccess("删除成功");
}
/**
* 通过日期和景区参数去获取预约列表
* @param date
* @param scenicId
* @return
*/
@Override
public ServerResponse appointmentList(String date, String scenicId) {
//第一步通过景区id获取到对应的规则 通过日期及今天是周几判断是否返回
//知道周几
int whichDay = DateUtil.getWhichDay(date);
List<AppletsAppointmentListVO> list = ybsjyAppointmentSettingMapper.appointmentList(date, scenicId, whichDay);
list.stream().forEach(item -> {
//通过时间段id统计目前预约了多少人
item.setReservedQuantity(ybsjyAppointmentSettingMapper.getAppointmentCount(item.getAppointmentTimeInfoId()));
});
//第二步通过通过规则id获取到时间段列表
HashMap<String, Object> resultMap = new HashMap<>();
resultMap.put("data", list);
resultMap.put("msg", "查询成功");
resultMap.put("code", 0);
return ServerResponse.createBySuccess(resultMap);
}
/**
* 立即预约
* @param reservationNowVO
* @return
*/
@Override
public ServerResponse reservationNow(ReservationNowVO reservationNowVO) {
return null;
}
}

@ -0,0 +1,20 @@
package com.cjy.back.ybsjAppointment.utils;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
* @author liangjiawei
* @createDate 2023/7/26
*/
public class DateUtil {
public static int getWhichDay(String dateString) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(dateString, formatter);
DayOfWeek dayOfWeek = date.getDayOfWeek();
// 1-7代表周一到周日
int weekNumber = dayOfWeek.getValue();
return weekNumber;
}
}

@ -147,7 +147,12 @@ public class InitDataRedis {
//多彩石家庄
String duocai = messageTypeMapper.selectTypeFormUserkeyAndName(userkey,"duocai");
result.put("duoCaiList",searchMessageInfo(init(userkey,duocai,"1","1")));
//非遗
String feiyi = messageTypeMapper.selectTypeFormUserkeyAndName(userkey,"feiyi");
result.put("feiyiList",searchMessageInfo(init(userkey, feiyi, "1", "5")));
String content = JSONObject.toJSONString(result);
RedisUtil.addValue(userkey + "_index",content);
}

Loading…
Cancel
Save