diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ReservationOrderController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ReservationOrderController.java new file mode 100644 index 0000000..fd31386 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/ReservationOrderController.java @@ -0,0 +1,68 @@ +package org.dromara.scale.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.ReservationOrderBo; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; +import org.dromara.scale.service.IReservationOrderService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 预约订单 + * + * @author cjw + * @date 2024-08-22 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/scale/reservationOrder") +public class ReservationOrderController extends BaseController { + + private final IReservationOrderService reservationOrderService; + + /** + * 查询预约订单列表 + */ + @SaCheckPermission("scale:reservationOrder:list") + @GetMapping("/list") + public TableDataInfo list(ReservationOrderBo bo, PageQuery pageQuery) { + return reservationOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出预约订单列表 + */ + @SaCheckPermission("scale:reservationOrder:export") + @Log(title = "预约订单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ReservationOrderBo bo, HttpServletResponse response) { + List list = reservationOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "预约订单", ReservationCounselorOrderVo.class, response); + } + + /** + * 获取预约订单详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("scale:reservationOrder:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(reservationOrderService.queryById(id)); + } + +} 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 371b9f0..beb36f5 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 @@ -66,7 +66,7 @@ public class WxCounselorController extends BaseController { * 预约列表 */ @GetMapping("/reservation/pageList") - public TableDataInfo reservationPageList(PageQuery pageQuery) { + public TableDataInfo reservationPageList(PageQuery pageQuery) { return reservationService.queryReservationPageList(pageQuery); } @@ -99,7 +99,7 @@ public class WxCounselorController extends BaseController { * @return */ @GetMapping("/reservation/order") - public R> getReservationOrder(String time) { + public R> getReservationOrder(String time) { Long userId = LoginHelper.getUserId(); return R.ok(reservationService.selectOrderList(time, userId)); } @@ -108,7 +108,7 @@ public class WxCounselorController extends BaseController { * 订单列表 */ @GetMapping("/order/pageList") - public TableDataInfo orderPageList(PageQuery pageQuery) { + public TableDataInfo orderPageList(PageQuery pageQuery) { //todo return null; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java index dd3bf14..a4be9ce 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/wx/WxOrderController.java @@ -11,8 +11,10 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.scale.domain.bo.ReservationOrderBo; import org.dromara.scale.domain.bo.SysScaleOrderBo; import org.dromara.scale.domain.vo.SysScaleOrderVo; +import org.dromara.scale.service.IReservationOrderService; import org.dromara.scale.service.ISysScaleOrderService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -29,14 +31,15 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("/wx/order/") public class WxOrderController extends BaseController { - private final ISysScaleOrderService sysScaleOrderService; + private final ISysScaleOrderService scaleOrderService; + private final IReservationOrderService reservationOrderService; /** * 查询量表订单列表 */ @GetMapping("/scale/pageList") public TableDataInfo list(SysScaleOrderBo bo, PageQuery pageQuery) { - return sysScaleOrderService.queryPageList(bo, pageQuery); + return scaleOrderService.queryPageList(bo, pageQuery); } /** @@ -47,7 +50,7 @@ public class WxOrderController extends BaseController { @GetMapping("/scale/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { - return R.ok(sysScaleOrderService.queryById(id)); + return R.ok(scaleOrderService.queryById(id)); } /** @@ -56,8 +59,18 @@ public class WxOrderController extends BaseController { @Log(title = "量表订单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/scale") - public R add(@Validated(AddGroup.class) @RequestBody SysScaleOrderBo bo) throws Exception { - return R.ok(sysScaleOrderService.insertByBo(bo)); + public R addScale(@Validated(AddGroup.class) @RequestBody SysScaleOrderBo bo) throws Exception { + return R.ok(scaleOrderService.insertByBo(bo)); + } + + /** + * 新增预约订单 + */ + @Log(title = "预约订单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/reservation") + public R addReservation(@Validated(AddGroup.class) @RequestBody ReservationOrderBo bo) throws Exception { + return R.ok(reservationOrderService.insertByBo(bo)); } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ReservationOrder.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ReservationOrder.java new file mode 100644 index 0000000..6ac0dbc --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/ReservationOrder.java @@ -0,0 +1,72 @@ +package org.dromara.scale.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.math.BigDecimal; + +import java.io.Serial; + +/** + * 预约订单对象 m_reservation_order + * + * @author cjw + * @date 2024-08-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("m_reservation_order") +public class ReservationOrder extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * + */ + @TableId(value = "id") + private Long id; + + /** + * 预约时间id + */ + private Long timeId; + + /** + * 咨询师id + */ + private Long counselorId; + + /** + * 订单价格 + */ + private BigDecimal orderPrice; + + /** + * 实付价格 + */ + private BigDecimal actualPrice; + + /** + * 0现金, 1扫码付款,2 公众号支付,3 h5支付,4 当面付,5 小程序支付 + */ + private Integer payWay; + + /** + * 0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款 + */ + private Integer orderStatus; + + /** + * 诊断 + */ + private String diagnose; + + /** + * 附件 + */ + private Long annex; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java new file mode 100644 index 0000000..7caa777 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/ReservationOrderBo.java @@ -0,0 +1,79 @@ +package org.dromara.scale.domain.bo; + +import org.dromara.scale.domain.ReservationOrder; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +/** + * 预约订单业务对象 m_reservation_order + * + * @author cjw + * @date 2024-08-22 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ReservationOrder.class, reverseConvertGenerate = false) +public class ReservationOrderBo extends BaseEntity { + + /** + * + */ + @NotNull(message = "不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 预约时间id + */ + @NotNull(message = "预约时间id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long timeId; + + /** + * 咨询师id + */ + @NotNull(message = "咨询师id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long counselorId; + + /** + * 订单价格 + */ + @NotNull(message = "订单价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal orderPrice; + + /** + * 实付价格 + */ + @NotNull(message = "实付价格不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal actualPrice; + + /** + * 0现金, 1扫码付款,2 公众号支付,3 h5支付,4 当面付,5 小程序支付 + */ + @NotNull(message = "0现金, 1扫码付款,2 公众号支付,3 h5支付,4 当面付,5 小程序支付不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer payWay; + + /** + * 0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款 + */ + @NotNull(message = "0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer orderStatus; + + /** + * 诊断 + */ + @NotBlank(message = "诊断不能为空", groups = { AddGroup.class, EditGroup.class }) + private String diagnose; + + /** + * 附件 + */ + @NotNull(message = "附件不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long annex; + + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationCounselorOrderVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationCounselorOrderVo.java new file mode 100644 index 0000000..19cd1bf --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationCounselorOrderVo.java @@ -0,0 +1,32 @@ +package org.dromara.scale.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + *

预约订单

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/8/20 10:23 + */ +@Data +public class ReservationCounselorOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long timeId; + + private Long orderId; + + private String name; + + private String startTime; + + private String endTime; + + private Integer status; +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationOrderVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationOrderVo.java index 0cb23c7..6347788 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationOrderVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/ReservationOrderVo.java @@ -1,32 +1,84 @@ package org.dromara.scale.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.scale.domain.ReservationOrder; import java.io.Serial; import java.io.Serializable; +import java.math.BigDecimal; + + /** - *

预约订单

+ * 预约订单视图对象 m_reservation_order * * @author cjw - * @version V1.0.0 - * @date 2024/8/20 10:23 + * @date 2024-08-22 */ @Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ReservationOrder.class) public class ReservationOrderVo implements Serializable { @Serial private static final long serialVersionUID = 1L; + /** + * + */ + @ExcelProperty(value = "") + private Long id; + + /** + * 预约时间id + */ + @ExcelProperty(value = "预约时间id") private Long timeId; - private Long orderId; + /** + * 咨询师id + */ + @ExcelProperty(value = "咨询师id") + private Long counselorId; - private String name; + /** + * 订单价格 + */ + @ExcelProperty(value = "订单价格") + private BigDecimal orderPrice; - private String startTime; + /** + * 实付价格 + */ + @ExcelProperty(value = "实付价格") + private BigDecimal actualPrice; + + /** + * 0现金, 1扫码付款,2 公众号支付,3 h5支付,4 当面付,5 小程序支付 + */ + @ExcelProperty(value = "0现金, 1扫码付款,2 公众号支付,3 h5支付,4 当面付,5 小程序支付") + private Integer payWay; + + /** + * 0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款 + */ + @ExcelProperty(value = "0:未支付,1:支付完成,2:待评分,3:已评分,99:已退款") + private Integer orderStatus; + + /** + * 诊断 + */ + @ExcelProperty(value = "诊断") + private String diagnose; + + /** + * 附件 + */ + @ExcelProperty(value = "附件") + private Long annex; - private String endTime; - private Integer status; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationDayMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationDayMapper.java index 5b37624..2f2acf0 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationDayMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationDayMapper.java @@ -6,7 +6,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.scale.domain.ReservationDay; import org.dromara.scale.domain.vo.ReservationDateVo; import org.dromara.scale.domain.vo.ReservationDayVo; -import org.dromara.scale.domain.vo.ReservationOrderVo; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; import java.util.List; @@ -23,5 +23,5 @@ public interface ReservationDayMapper extends BaseMapperPlus selectNotUseDateList(@Param("time") String time, @Param("userId") Long userId); - List selectOrderList(@Param("time") String time, @Param("userId") Long userId); + List selectOrderList(@Param("time") String time, @Param("userId") Long userId); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationOrderMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationOrderMapper.java new file mode 100644 index 0000000..dd34324 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationOrderMapper.java @@ -0,0 +1,17 @@ +package org.dromara.scale.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.scale.domain.ReservationOrder; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; + +/** + * 预约订单Mapper接口 + * + * @author cjw + * @date 2024-08-22 + */ +@Mapper +public interface ReservationOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationTimeMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationTimeMapper.java index 529b17a..debb60f 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationTimeMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/ReservationTimeMapper.java @@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.scale.domain.ReservationTime; -import org.dromara.scale.domain.vo.ReservationOrderVo; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; import org.dromara.scale.domain.vo.ReservationTimeVo; /** @@ -17,6 +17,6 @@ import org.dromara.scale.domain.vo.ReservationTimeVo; @Mapper public interface ReservationTimeMapper extends BaseMapperPlus { - Page selectPageList(@Param("page") Page page, @Param("counselorId") Long counselorId); + Page selectPageList(@Param("page") Page page, @Param("counselorId") Long counselorId); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationOrderService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationOrderService.java new file mode 100644 index 0000000..07e6f53 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IReservationOrderService.java @@ -0,0 +1,51 @@ +package org.dromara.scale.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.scale.domain.bo.ReservationOrderBo; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; + +import java.util.List; + +/** + * 预约订单Service接口 + * + * @author cjw + * @date 2024-08-22 + */ +public interface IReservationOrderService { + + /** + * 查询预约订单 + * + * @param id 主键 + * @return 预约订单 + */ + ReservationCounselorOrderVo queryById(Long id); + + /** + * 分页查询预约订单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 预约订单分页列表 + */ + TableDataInfo queryPageList(ReservationOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的预约订单列表 + * + * @param bo 查询条件 + * @return 预约订单列表 + */ + List queryList(ReservationOrderBo bo); + + /** + * 新增预约订单 + * + * @param bo 预约订单 + * @return 是否新增成功 + */ + T insertByBo(ReservationOrderBo bo) throws Exception; + +} 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 5372251..1b7245c 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 @@ -5,7 +5,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; 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.ReservationOrderVo; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; import java.util.List; @@ -18,7 +18,7 @@ public interface IReservationService { * @param pageQuery 分页参数 * @return 心理咨询师分页列表 */ - TableDataInfo queryReservationPageList(PageQuery pageQuery); + TableDataInfo queryReservationPageList(PageQuery pageQuery); /** * 新增预约 @@ -32,7 +32,7 @@ public interface IReservationService { List selectNotUseDateList(String time, Long counselorId); - List selectOrderList(String time, 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 new file mode 100644 index 0000000..8827a8c --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/ReservationOrderServiceImpl.java @@ -0,0 +1,136 @@ +package org.dromara.scale.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest; +import com.github.binarywang.wxpay.service.WxPayService; +import lombok.RequiredArgsConstructor; +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.scale.constant.StatusEnum; +import org.dromara.scale.domain.Counselor; +import org.dromara.scale.domain.ReservationOrder; +import org.dromara.scale.domain.ReservationTime; +import org.dromara.scale.domain.bo.ReservationOrderBo; +import org.dromara.scale.domain.vo.ReservationCounselorOrderVo; +import org.dromara.scale.mapper.CounselorMapper; +import org.dromara.scale.mapper.ReservationOrderMapper; +import org.dromara.scale.mapper.ReservationTimeMapper; +import org.dromara.scale.service.IReservationOrderService; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * 预约订单Service业务层处理 + * + * @author cjw + * @date 2024-08-22 + */ +@RequiredArgsConstructor +@Service +public class ReservationOrderServiceImpl implements IReservationOrderService { + + private final ReservationOrderMapper baseMapper; + private final WxPayService payService; + private final ReservationTimeMapper timeMapper; + private final CounselorMapper counselorMapper; + + /** + * 查询预约订单 + * + * @param id 主键 + * @return 预约订单 + */ + @Override + public ReservationCounselorOrderVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询预约订单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 预约订单分页列表 + */ + @Override + public TableDataInfo queryPageList(ReservationOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的预约订单列表 + * + * @param bo 查询条件 + * @return 预约订单列表 + */ + @Override + public List queryList(ReservationOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ReservationOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getTimeId() != null, ReservationOrder::getTimeId, bo.getTimeId()); + lqw.eq(bo.getCounselorId() != null, ReservationOrder::getCounselorId, bo.getCounselorId()); + lqw.eq(bo.getOrderPrice() != null, ReservationOrder::getOrderPrice, bo.getOrderPrice()); + lqw.eq(bo.getActualPrice() != null, ReservationOrder::getActualPrice, bo.getActualPrice()); + lqw.eq(bo.getPayWay() != null, ReservationOrder::getPayWay, bo.getPayWay()); + lqw.eq(bo.getOrderStatus() != null, ReservationOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getDiagnose()), ReservationOrder::getDiagnose, bo.getDiagnose()); + lqw.eq(bo.getAnnex() != null, ReservationOrder::getAnnex, bo.getAnnex()); + return lqw; + } + + /** + * 新增预约订单 + * + * @param bo 预约订单 + * @return 是否新增成功 + */ + @Override + public T insertByBo(ReservationOrderBo bo) throws Exception{ + ReservationOrder add = MapstructUtils.convert(bo, ReservationOrder.class); + ReservationTime reservationTime = timeMapper.selectById(add.getTimeId()); + Counselor counselor = counselorMapper.selectById(reservationTime.getCounselorId()); + BigDecimal price = counselor.getPrice(); + add.setCounselorId(counselor.getId()); + add.setActualPrice(price); + add.setOrderPrice(price); + add.setOrderStatus(StatusEnum.DISABLED.getValue()); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest(); + orderRequest.setBody("墨者科技-量表支付"); + orderRequest.setOutTradeNo(add.getId().toString()); + int totalFee = price.multiply(new BigDecimal(100)).intValue(); + orderRequest.setTotalFee(totalFee); + orderRequest.setNotifyUrl(""); + orderRequest.setTradeType("JSAPI"); + return payService.createOrder(orderRequest); + } + + + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ReservationOrder entity) { + //TODO 做一些数据校验,如唯一约束 + } + + +} 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 8c06c5d..7b58638 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 @@ -10,12 +10,14 @@ 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.domain.ReservationDay; +import org.dromara.scale.domain.ReservationOrder; import org.dromara.scale.domain.ReservationTime; 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.ReservationOrderVo; import org.dromara.scale.mapper.ReservationDayMapper; +import org.dromara.scale.mapper.ReservationOrderMapper; import org.dromara.scale.mapper.ReservationTimeMapper; import org.dromara.scale.service.IReservationService; import org.springframework.stereotype.Service; @@ -35,13 +37,14 @@ import java.util.List; public class ReservationServiceImpl implements IReservationService { private final ReservationDayMapper dayMapper; - private final ReservationTimeMapper timeMapper; + private final ReservationOrderMapper reservationOrderMapper; + @Override - public TableDataInfo queryReservationPageList(PageQuery pageQuery) { + public TableDataInfo queryReservationPageList(PageQuery pageQuery) { Long userId = LoginHelper.getUserId(); - Page result = timeMapper.selectPageList(pageQuery.build(), userId); + Page result = timeMapper.selectPageList(pageQuery.build(), userId); return TableDataInfo.build(result); } @@ -92,13 +95,21 @@ public class ReservationServiceImpl implements IReservationService { } @Override - public List selectOrderList(String time, Long counselorId) { + public List selectOrderList(String time, Long counselorId) { return dayMapper.selectOrderList(time, counselorId); } @Override public Boolean insertIntervene(SysInterveneRecordBo bo) { - //todo - return null; + ReservationOrder orderUpdate = new ReservationOrder(); + orderUpdate.setDiagnose(bo.getDiagnose()); + orderUpdate.setAnnex(bo.getDiagnoseAnnex()); + orderUpdate.setId(bo.getBatchNo()); + boolean orderFlag = reservationOrderMapper.updateById(orderUpdate) > 0; + ReservationTime timeUpdate = new ReservationTime(); + timeUpdate.setId(bo.getInterveneId()); + timeUpdate.setStatus(2); + boolean timeFlag = timeMapper.updateById(timeUpdate) > 0; + return orderFlag && timeFlag; } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java index fba25e7..cced74f 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleOrderServiceImpl.java @@ -108,9 +108,8 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService { if (flag) { bo.setId(add.getId()); } - WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest(); - orderRequest.setBody("墨者科技-量表支付"); + orderRequest.setBody("墨者科技-预约支付"); orderRequest.setOutTradeNo(add.getId().toString()); int totalFee = price.multiply(new BigDecimal(100)).intValue(); orderRequest.setTotalFee(totalFee); diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationDayMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationDayMapper.xml index d5dc26a..4f67846 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationDayMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationDayMapper.xml @@ -27,7 +27,7 @@ and DATE_FORMAT(rd.day_time, '%Y-%m') = #{time} - select u.nick_name as name, rt.id as timeId, ro.id as orderId, diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationOrderMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationOrderMapper.xml new file mode 100644 index 0000000..b92a869 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationTimeMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationTimeMapper.xml index b5aabaf..19c68b0 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationTimeMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/ReservationTimeMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - select u.nick_name as name, rt.id as timeId, ro.id as orderId, diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java index 73ada3b..fc5b4be 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysOssController.java @@ -66,7 +66,7 @@ public class SysOssController extends BaseController { * * @param file 文件 */ - @SaCheckPermission("system:oss:upload") + //@SaCheckPermission("system:oss:upload") @Log(title = "OSS对象存储", businessType = BusinessType.INSERT) @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public R upload(@RequestPart("file") MultipartFile file) { @@ -86,7 +86,7 @@ public class SysOssController extends BaseController { * * @param ossId OSS对象ID */ - @SaCheckPermission("system:oss:download") + //@SaCheckPermission("system:oss:download") @GetMapping("/download/{ossId}") public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { ossService.download(ossId, response);