咨询师time列表-用户

This commit is contained in:
cjw 2024-09-19 10:47:42 +08:00
parent 196cc52d33
commit 2d1e6f4b26
7 changed files with 54 additions and 14 deletions

View File

@ -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);
}
}

View File

@ -124,6 +124,17 @@ public class WxCounselorController extends BaseController {
return R.ok(reservationService.selectNotUseDateList(time, counselorId));
}
/**
* 获取咨询师预约日历时间段-客户
*
* @param counselorId 咨询师
* @return
*/
@GetMapping("/reservation/time")
public R<List<ReservationDayVo>> getReservationTimeList(Long counselorId) {
return R.ok(reservationService.selectTimeListBy7Day(counselorId));
}
/**
* 获取预约订单
*

View File

@ -25,4 +25,5 @@ public class ReservationDateVo implements Serializable {
private Integer useNum;
private Integer notUseNum;
}

View File

@ -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<ReservationTime> timeList;
}

View File

@ -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<ReservationDateVo> selectNotUseDateList(String time, Long counselorId);
List<ReservationDayVo> selectTimeListBy7Day(Long counselorId);
List<ReservationCounselorOrderVo> selectOrderList(String time, Long counselorId);
/**

View File

@ -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);
}

View File

@ -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<ReservationDayVo> selectTimeListBy7Day(Long counselorId) {
String startTime = DateUtils.getDate() + " 00:00:00";
String endTime = DateUtils.getAfter7DaysByNow() + " 23:59:59";
List<ReservationDayVo> dayList = dayMapper.selectVoList(new LambdaQueryWrapper<ReservationDay>()
.between(ReservationDay::getDayTime, startTime, endTime)
.eq(ReservationDay::getCounselorId, counselorId));
for (ReservationDayVo one : dayList) {
List<ReservationTime> timeList = timeMapper.selectList(new LambdaQueryWrapper<ReservationTime>()
.eq(ReservationTime::getDayId, one.getId())
.orderByAsc(ReservationTime::getStartTime));
one.setTimeList(timeList);
}
return dayList;
}
@Override
public List<ReservationCounselorOrderVo> selectOrderList(String time, Long counselorId) {
return dayMapper.selectOrderList(time, counselorId);