From 2d1e6f4b26f4fc9c11e51f4bd5a1d081b7a03b2e Mon Sep 17 00:00:00 2001 From: cjw Date: Thu, 19 Sep 2024 10:47:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=92=A8=E8=AF=A2=E5=B8=88time=E5=88=97?= =?UTF-8?q?=E8=A1=A8-=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/core/utils/DateUtils.java | 11 +++++++++++ .../controller/wx/WxCounselorController.java | 11 +++++++++++ .../scale/domain/vo/ReservationDateVo.java | 1 + .../scale/domain/vo/ReservationDayVo.java | 19 ++++++------------- .../scale/service/IReservationService.java | 3 +++ .../impl/ReservationOrderServiceImpl.java | 5 ++++- .../service/impl/ReservationServiceImpl.java | 18 ++++++++++++++++++ 7 files changed, 54 insertions(+), 14 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java index c93b97b..cdba6d0 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DateUtils.java @@ -8,6 +8,7 @@ import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; +import java.time.format.DateTimeFormatter; import java.util.Date; /** @@ -195,4 +196,14 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault()); return Date.from(zdt.toInstant()); } + + public static String getAfter7DaysByNow() { + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + // 加上7天 + LocalDate sevenDaysLater = currentDate.plusDays(7); + // 打印日期 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + return sevenDaysLater.format(formatter); + } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxCounselorController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxCounselorController.java index 4219b2d..c680dfd 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxCounselorController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxCounselorController.java @@ -124,6 +124,17 @@ public class WxCounselorController extends BaseController { return R.ok(reservationService.selectNotUseDateList(time, counselorId)); } + /** + * 获取咨询师预约日历时间段-客户 + * + * @param counselorId 咨询师 + * @return + */ + @GetMapping("/reservation/time") + public R> getReservationTimeList(Long counselorId) { + return R.ok(reservationService.selectTimeListBy7Day(counselorId)); + } + /** * 获取预约订单 * diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDateVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDateVo.java index f3039ce..2225cc1 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDateVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDateVo.java @@ -25,4 +25,5 @@ public class ReservationDateVo implements Serializable { private Integer useNum; private Integer notUseNum; + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDayVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDayVo.java index 6fad460..29bd4f9 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDayVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationDayVo.java @@ -1,19 +1,14 @@ package org.dromara.scale.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.scale.domain.ReservationDay; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.scale.domain.ReservationDay; +import org.dromara.scale.domain.ReservationTime; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -23,7 +18,6 @@ import java.util.Date; * @date 2024-08-19 */ @Data -@ExcelIgnoreUnannotated @AutoMapper(target = ReservationDay.class) public class ReservationDayVo implements Serializable { @@ -31,22 +25,21 @@ public class ReservationDayVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ - @ExcelProperty(value = "") private Long id; /** * 咨询师id */ - @ExcelProperty(value = "咨询师id") private Long counselorId; /** * 日期 */ - @ExcelProperty(value = "日期") private Date dayTime; + private List timeList; + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationService.java index 1b7245c..f962103 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationService.java @@ -6,6 +6,7 @@ import org.dromara.scale.domain.bo.ReservationDayBo; import org.dromara.scale.domain.bo.SysInterveneRecordBo; import org.dromara.scale.domain.vo.ReservationDateVo; import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; +import org.dromara.scale.domain.vo.ReservationDayVo; import java.util.List; @@ -32,6 +33,8 @@ public interface IReservationService { List selectNotUseDateList(String time, Long counselorId); + List selectTimeListBy7Day(Long counselorId); + List selectOrderList(String time, Long counselorId); /** diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java index 4ba089d..055e8c3 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java @@ -11,6 +11,7 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.scale.constant.StatusEnum; import org.dromara.scale.domain.Counselor; import org.dromara.scale.domain.ReservationOrder; @@ -101,6 +102,7 @@ public class ReservationOrderServiceImpl implements IReservationOrderService { */ @Override public WxPayMpOrderResult insertByBo(ReservationOrderBo bo) throws Exception { + String openId = LoginHelper.getOpenId(); ReservationOrder add = MapstructUtils.convert(bo, ReservationOrder.class); ReservationTime reservationTime = timeMapper.selectById(add.getTimeId()); Counselor counselor = counselorMapper.selectById(reservationTime.getCounselorId()); @@ -119,9 +121,10 @@ public class ReservationOrderServiceImpl implements IReservationOrderService { orderRequest.setOutTradeNo(add.getId().toString()); int totalFee = price.multiply(new BigDecimal(100)).intValue(); orderRequest.setTotalFee(totalFee); - orderRequest.setNotifyUrl("https://api.ysmental.com/xxx/wx/pay/notify/order/reservation"); + orderRequest.setNotifyUrl("https://api.ysmental.com/tenant/wx/pay/notify/order/reservation"); orderRequest.setTradeType("JSAPI"); orderRequest.setSpbillCreateIp(bo.getSpbillCreateIp()); + orderRequest.setOpenid(openId); return payService.createOrder(orderRequest); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationServiceImpl.java index 724f12b..d19585a 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.TimeBucket; import org.dromara.common.mybatis.core.page.PageQuery; @@ -16,6 +17,7 @@ import org.dromara.scale.domain.bo.ReservationDayBo; import org.dromara.scale.domain.bo.SysInterveneRecordBo; import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; import org.dromara.scale.domain.vo.ReservationDateVo; +import org.dromara.scale.domain.vo.ReservationDayVo; import org.dromara.scale.mapper.ReservationDayMapper; import org.dromara.scale.mapper.ReservationOrderMapper; import org.dromara.scale.mapper.ReservationTimeMapper; @@ -94,6 +96,22 @@ public class ReservationServiceImpl implements IReservationService { return dayMapper.selectNotUseDateList(time, counselorId); } + @Override + public List selectTimeListBy7Day(Long counselorId) { + String startTime = DateUtils.getDate() + " 00:00:00"; + String endTime = DateUtils.getAfter7DaysByNow() + " 23:59:59"; + List dayList = dayMapper.selectVoList(new LambdaQueryWrapper() + .between(ReservationDay::getDayTime, startTime, endTime) + .eq(ReservationDay::getCounselorId, counselorId)); + for (ReservationDayVo one : dayList) { + List timeList = timeMapper.selectList(new LambdaQueryWrapper() + .eq(ReservationTime::getDayId, one.getId()) + .orderByAsc(ReservationTime::getStartTime)); + one.setTimeList(timeList); + } + return dayList; + } + @Override public List selectOrderList(String time, Long counselorId) { return dayMapper.selectOrderList(time, counselorId);