diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/trainingorder/TrainingOrderController.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/trainingorder/TrainingOrderController.java new file mode 100644 index 0000000..1224609 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/controller/trainingorder/TrainingOrderController.java @@ -0,0 +1,101 @@ +package com.xinelu.manage.controller.trainingorder; + +import com.xinelu.common.annotation.Log; +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.common.enums.BusinessType; +import com.xinelu.manage.domain.trainingorder.TrainingOrder; +import com.xinelu.manage.domain.trainingorderitemdirectory.TrainingOrderItemDirectory; +import com.xinelu.manage.service.trainingorder.ITrainingOrderService; +import com.xinelu.manage.vo.trainingorder.TrainingOrderVO; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +/** + * 学习培训订单Controller + * + * @author xinyilu + * @date 2023-04-20 + */ +@RestController +@RequestMapping("/system/trainingOrder") +public class TrainingOrderController extends BaseController { + @Resource + private ITrainingOrderService trainingOrderService; + + /** + * 查询学习培训订单列表 + */ + @PreAuthorize("@ss.hasPermi('system:trainingOrder:list')") + @GetMapping("/list") + public TableDataInfo list(TrainingOrderVO trainingOrder) { + startPage(); + List list = trainingOrderService.selectTrainingOrderList(trainingOrder); + return getDataTable(list); + } + + /** + * 获取学习培训订单详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:trainingOrder:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(trainingOrderService.selectTrainingOrderById(id)); + } + + /** + * 新增学习培训订单 + */ + @PreAuthorize("@ss.hasPermi('system:trainingOrder:add')") + @Log(title = "学习培训订单", businessType = BusinessType.INSERT) + @PostMapping("/add") + public AjaxResult add(@RequestBody TrainingOrder trainingOrder) { + return toAjax(trainingOrderService.insertTrainingOrder(trainingOrder)); + } + + /** + * 修改学习培训订单 + */ + @PreAuthorize("@ss.hasPermi('system:trainingOrder:edit')") + @Log(title = "学习培训订单", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + public AjaxResult edit(@RequestBody TrainingOrder trainingOrder) { + return toAjax(trainingOrderService.updateTrainingOrder(trainingOrder)); + } + + /** + * 删除学习培训订单 + */ + @PreAuthorize("@ss.hasPermi('system:trainingOrder:remove')") + @Log(title = "学习培训订单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(trainingOrderService.deleteTrainingOrderByIds(ids)); + } + + /** + * 退款信息查询 + */ + @GetMapping("/refundInformation") + public AjaxResult selectRefundInformation(Long id) { + if (Objects.isNull(id)) { + return AjaxResult.error("请选择需要退款的信息!"); + } + return trainingOrderService.selectRefundInformation(id); + } + + /** + * 查询学习培训订单明细章节,记录视频学习和直播课程的章节信息列表 + */ + @GetMapping("/orderItemDirectory") + public TableDataInfo selectTrainingOrderItemDirectoryList(TrainingOrderItemDirectory trainingOrderItemDirectory) { + startPage(); + List list = trainingOrderService.selectTrainingOrderItemDirectoryList(trainingOrderItemDirectory); + return getDataTable(list); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorder/TrainingOrder.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorder/TrainingOrder.java new file mode 100644 index 0000000..f6e7275 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorder/TrainingOrder.java @@ -0,0 +1,134 @@ +package com.xinelu.manage.domain.trainingorder; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import com.xinelu.common.custominterface.Insert; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 学习培训订单主对象 training_order + * + * @author xinyilu + * @date 2023-04-20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "学习培训订单主对象", description = "training_order") +public class TrainingOrder extends BaseDomain implements Serializable { + private static final long serialVersionUID = -3426704831943215090L; + /** + * 主键id + */ + private Long id; + + /** + * 护理站id + */ + @ApiModelProperty(value = "护理站id") + @Excel(name = "护理站id") + @NotNull(message = "护理站id不能为空", groups = {Insert.class}) + private Long nurseStationId; + + /** + * 护理员表id + */ + @ApiModelProperty(value = "护理员表id") + @Excel(name = "护理员表id") + @NotNull(message = "护理员表id不能为空", groups = {Insert.class}) + private Long nurseStationPersonId; + + /** + * 护理员姓名 + */ + @ApiModelProperty(value = "护理员姓名") + @Excel(name = "护理员姓名") + private String nursePersonName; + + /** + * 订单编号 + */ + @ApiModelProperty(value = "订单编号") + @Excel(name = "订单编号") + private String trainingOrderNo; + + /** + * 订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL + */ + @ApiModelProperty(value = "订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL") + @Excel(name = "订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL") + private String trainingOrderStatus; + + /** + * 订单金额 + */ + @ApiModelProperty(value = "订单金额") + @Excel(name = "订单金额") + @NotNull(message = "订单金额不能为空", groups = {Insert.class}) + private BigDecimal trainingOrderAmount; + + /** + * 下单方式,手机App:MOBILE_APP,微信小程序:WECHAT_APPLET,支付宝小程序:ALI_PAY_APPLET + */ + @ApiModelProperty(value = "下单方式,手机App:MOBILE_APP,微信小程序:WECHAT_APPLET,支付宝小程序:ALI_PAY_APPLET") + @Excel(name = "下单方式,手机App:MOBILE_APP,微信小程序:WECHAT_APPLET,支付宝小程序:ALI_PAY_APPLET") + @NotBlank(message = "下单方式不能为空", groups = {Insert.class}) + private String trainingOrderChannel; + + /** + * 下单时间,yyyy-MM-dd HH:mm:ss + */ + @ApiModelProperty(value = "下单时间,yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "下单时间,yyyy-MM-dd HH:mm:ss", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDateTime trainingOrderTime; + + /** + * 是否删除标识,0:否,1:是 + */ + private Integer delFlag; + + /** + * 备注信息 + */ + private String remark; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("nurseStationId", getNurseStationId()) + .append("nurseStationPersonId", getNurseStationPersonId()) + .append("nursePersonName", getNursePersonName()) + .append("trainingOrderNo", getTrainingOrderNo()) + .append("trainingOrderStatus", getTrainingOrderStatus()) + .append("trainingOrderAmount", getTrainingOrderAmount()) + .append("trainingOrderChannel", getTrainingOrderChannel()) + .append("trainingOrderTime", getTrainingOrderTime()) + .append("remark", getRemark()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorderdetails/TrainingOrderDetails.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorderdetails/TrainingOrderDetails.java new file mode 100644 index 0000000..10fccfd --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorderdetails/TrainingOrderDetails.java @@ -0,0 +1,207 @@ +package com.xinelu.manage.domain.trainingorderdetails; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import com.xinelu.common.custominterface.Insert; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalTime; + +/** + * 学习培训订单明细对象 training_order_details + * + * @author xinyilu + * @date 2023-04-20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "学习培训订单明细对象", description = "training_order_details") +public class TrainingOrderDetails extends BaseDomain implements Serializable { + + private static final long serialVersionUID = -6948216195579112151L; + /** + * 主键id + */ + private Long id; + + /** + * 培训订单主表id + */ + @ApiModelProperty(value = "培训订单主表id") + @Excel(name = "培训订单主表id") + private Long trainingOrderId; + + /** + * 订单编号 + */ + @ApiModelProperty(value = "订单编号") + @Excel(name = "订单编号") + private String trainingOrderNo; + + /** + * 培训项目表id + */ + @ApiModelProperty(value = "培训项目表id") + @Excel(name = "培训项目表id") + @NotNull(message = "培训项目表id不能为空", groups = {Insert.class}) + private Long trainingItemId; + + /** + * 培训项目父级id + */ + private Long trainingParentId; + + /** + * 培训项目标题 + */ + @ApiModelProperty(value = "培训项目标题") + @Excel(name = "培训项目标题") + @NotBlank(message = "培训项目标题不能为空", groups = {Insert.class}) + private String trainingItemTitle; + + /** + * 培训项目编号 + */ + @ApiModelProperty(value = "培训项目编号") + @Excel(name = "培训项目编号") + @NotBlank(message = "培训项目编号不能为空", groups = {Insert.class}) + private String trainingItemCode; + + /** + * 培训项目价格 + */ + @ApiModelProperty(value = "培训项目价格") + @Excel(name = "培训项目价格") + @NotNull(message = "培训项目价格不能为空", groups = {Insert.class}) + private BigDecimal trainingItemPrice; + + /** + * 培训项目logo图片路径 + */ + @ApiModelProperty(value = "培训项目logo图片路径") + @Excel(name = "培训项目logo图片路径") + @NotBlank(message = "培训项目logo图片路径不能为空", groups = {Insert.class}) + private String trainingItemCoverUrl; + + /** + * 培训项目海报图片路径 + */ + @ApiModelProperty(value = "培训项目海报图片路径") + @Excel(name = "培训项目海报图片路径") + @NotBlank(message = "培训项目海报图片路径不能为空", groups = {Insert.class}) + private String trainingItemPosterUrl; + + /** + * 培训项目类型,视频学习:VIDEO_LEARNING,图文学习:GRAPHIC_LEARNING,直播课程:LIVE_COURSES,线下培训:OFFLINE_TRAINING,学习培训项目组:LEARNING_ITEM_GROUP + */ + @ApiModelProperty(value = "培训项目类型,视频学习:VIDEO_LEARNING,图文学习:GRAPHIC_LEARNING,直播课程:LIVE_COURSES,线下培训:OFFLINE_TRAINING,学习培训项目组:LEARNING_ITEM_GROUP") + @Excel(name = "培训项目类型,视频学习:VIDEO_LEARNING,图文学习:GRAPHIC_LEARNING,直播课程:LIVE_COURSES,线下培训:OFFLINE_TRAINING,学习培训项目组:LEARNING_ITEM_GROUP") + @NotBlank(message = "培训项目类型不能为空", groups = {Insert.class}) + private String trainingItemType; + + /** + * 培训项目详情,视频学习和直播课程培训类型使用 + */ + @ApiModelProperty(value = "培训项目详情,视频学习和直播课程培训类型使用") + @Excel(name = "培训项目详情,视频学习和直播课程培训类型使用") + private String trainingItemDetails; + + /** + * 培训项目内容,图文学习类型使用,主要存放图文学习类型的内容 + */ + @ApiModelProperty(value = "培训项目内容,图文学习类型使用,主要存放图文学习类型的内容") + @Excel(name = "培训项目内容,图文学习类型使用,主要存放图文学习类型的内容") + private String trainingItemContent; + + /** + * 培训项目日期,格式:yyyy-MM-dd,直播课程和线下培训类型使用 + */ + @ApiModelProperty(value = "培训项目日期,格式:yyyy-MM-dd,直播课程和线下培训类型使用") + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "培训项目日期,格式:yyyy-MM-dd,直播课程和线下培训类型使用", width = 30, dateFormat = "yyyy-MM-dd") + private LocalDate trainingItemDate; + + /** + * 培训项目开始时间,格式:HH:mm:ss,直播课程和线下培训类型使用 + */ + @ApiModelProperty(value = "培训项目开始时间,格式:HH:mm:ss,直播课程和线下培训类型使用") + @JsonFormat(pattern = "HH:mm:ss") + @Excel(name = "培训项目开始时间,格式:HH:mm:ss,直播课程和线下培训类型使用", width = 30, dateFormat = "yyyy-MM-dd") + private LocalTime trainingItemStartTime; + + /** + * 培训项目结束时间,格式:HH:mm:ss,直播课程和线下培训类型使用 + */ + @ApiModelProperty(value = "培训项目结束时间,格式:HH:mm:ss,直播课程和线下培训类型使用") + @JsonFormat(pattern = "HH:mm:ss") + @Excel(name = "培训项目结束时间,格式:HH:mm:ss,直播课程和线下培训类型使用", width = 30, dateFormat = "yyyy-MM-dd") + private LocalTime trainingItemEndTime; + + /** + * 培训项目地址,线下培训类型使用,存放线下培训的地址 + */ + @ApiModelProperty(value = "培训项目地址,线下培训类型使用,存放线下培训的地址") + @Excel(name = "培训项目地址,线下培训类型使用,存放线下培训的地址") + private String trainingItemAddress; + + /** + * 报名须知,线下培训使用,存放线下报名须知信息 + */ + @ApiModelProperty(value = "报名须知,线下培训使用,存放线下报名须知信息") + @Excel(name = "报名须知,线下培训使用,存放线下报名须知信息") + private String trainingItemNotes; + + /** + * 培训项目排序 + */ + private Integer trainingItemSort; + + /** + * 删除标识,0:否,1:是 + */ + private Integer delFlag; + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("trainingOrderId", getTrainingOrderId()) + .append("trainingOrderNo", getTrainingOrderNo()) + .append("trainingItemId", getTrainingItemId()) + .append("trainingItemTitle", getTrainingItemTitle()) + .append("trainingItemCode", getTrainingItemCode()) + .append("trainingItemPrice", getTrainingItemPrice()) + .append("trainingItemCoverUrl", getTrainingItemCoverUrl()) + .append("trainingItemPosterUrl", getTrainingItemPosterUrl()) + .append("trainingItemType", getTrainingItemType()) + .append("trainingItemDetails", getTrainingItemDetails()) + .append("trainingItemContent", getTrainingItemContent()) + .append("trainingItemDate", getTrainingItemDate()) + .append("trainingItemStartTime", getTrainingItemStartTime()) + .append("trainingItemEndTime", getTrainingItemEndTime()) + .append("trainingItemAddress", getTrainingItemAddress()) + .append("trainingItemNotes", getTrainingItemNotes()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorderitemdirectory/TrainingOrderItemDirectory.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorderitemdirectory/TrainingOrderItemDirectory.java new file mode 100644 index 0000000..8d70cae --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/domain/trainingorderitemdirectory/TrainingOrderItemDirectory.java @@ -0,0 +1,121 @@ +package com.xinelu.manage.domain.trainingorderitemdirectory; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import com.xinelu.common.core.domain.BaseDomain; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalTime; + +/** + * 学习培训订单明细章节,记录视频学习和直播课程的章节信息对象 training_order_item_directory + * + * @author xinyilu + * @date 2023-04-20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "学习培训订单明细章节,记录视频学习和直播课程的章节信息对象", description = "training_order_item_directory") +public class TrainingOrderItemDirectory extends BaseDomain implements Serializable { + + private static final long serialVersionUID = -8514498637237874587L; + /** + * 主键id + */ + private Long id; + + /** + * 培训订单明细表id + */ + @ApiModelProperty(value = "培训订单明细表id") + @Excel(name = "培训订单明细表id") + private Long trainingOrderDetailsId; + + /** + * 订单编号 + */ + @ApiModelProperty(value = "订单编号") + @Excel(name = "订单编号") + private String trainingOrderNo; + + /** + * 培训项目章节表id + */ + @ApiModelProperty(value = "培训项目章节表id") + @Excel(name = "培训项目章节表id") + private Long trainingItemDirectoryId; + + /** + * 培训项目章节录名称 + */ + @ApiModelProperty(value = "培训项目章节录名称") + @Excel(name = "培训项目章节录名称") + private String itemDirectoryName; + + /** + * 培训项目章节编码 + */ + @ApiModelProperty(value = "培训项目章节编码") + @Excel(name = "培训项目章节编码") + private String itemDirectoryCode; + + /** + * 培训项目章节标题 + */ + @ApiModelProperty(value = "培训项目章节标题") + @Excel(name = "培训项目章节标题") + private String itemDirectoryTitle; + + /** + * 培训项目章节视频存放地址 + */ + private String itemDirectoryUrl; + + /** + * 培训章节视频时长 + */ + @JsonFormat(pattern = "HH:mm:ss") + @DateTimeFormat(pattern = "HH:mm:ss") + private LocalTime itemDirectoryVideoDuration; + + /** + * 培训项目章节内容简介 + */ + @ApiModelProperty(value = "培训项目章节内容简介") + @Excel(name = "培训项目章节内容简介") + private String itemDirectoryIntroduce; + + /** + * 未观看:NOT_WATCHED,已观看:WATCHED,已看完:FINISHED_READING + */ + private String itemDirectoryWatchStatus; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("trainingOrderDetailsId", getTrainingOrderDetailsId()) + .append("trainingOrderNo", getTrainingOrderNo()) + .append("trainingItemDirectoryId", getTrainingItemDirectoryId()) + .append("itemDirectoryName", getItemDirectoryName()) + .append("itemDirectoryCode", getItemDirectoryCode()) + .append("itemDirectoryTitle", getItemDirectoryTitle()) + .append("itemDirectoryIntroduce", getItemDirectoryIntroduce()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/trainingorder/TrainingOrderMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/trainingorder/TrainingOrderMapper.java new file mode 100644 index 0000000..cb9a441 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/trainingorder/TrainingOrderMapper.java @@ -0,0 +1,162 @@ +package com.xinelu.manage.mapper.trainingorder; + +import com.xinelu.manage.domain.trainingorder.TrainingOrder; +import com.xinelu.manage.dto.trainingitem.NurseAppletPersonTrainingItemDTO; +import com.xinelu.manage.vo.TrainingRefundOrderVO; +import com.xinelu.manage.vo.trainingorder.NurseAppletPersonTrainingOrderItemVO; +import com.xinelu.manage.vo.trainingorder.TrainingOrderVO; +import com.xinelu.manage.vo.trainingorderdetails.NurseAppletPersonTrainingOrderDetailsVO; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 学习培训订单Mapper接口 + * + * @author xinyilu + * @date 2023-04-20 + */ +public interface TrainingOrderMapper { + /** + * 查询学习培训订单 + * + * @param id 学习培训订单主键 + * @return 学习培训订单 + */ + TrainingOrder selectTrainingOrderById(Long id); + + /** + * 查询学习培训订单列表 + * + * @param trainingOrder 学习培训订单 + * @return 学习培训订单集合 + */ + List selectTrainingOrderList(TrainingOrder trainingOrder); + + /** + * 新增学习培训订单 + * + * @param trainingOrder 学习培训订单 + * @return 结果 + */ + int insertTrainingOrder(TrainingOrder trainingOrder); + + /** + * 修改学习培训订单 + * + * @param trainingOrder 学习培训订单 + * @return 结果 + */ + int updateTrainingOrder(TrainingOrder trainingOrder); + + /** + * 删除学习培训订单 + * + * @param id 学习培训订单主键 + * @return 结果 + */ + int deleteTrainingOrderById(Long id); + + /** + * 批量删除学习培训订单 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTrainingOrderByIds(Long[] ids); + + /** + * 查询已购买的学习培训集合 + * + * @param trainingOrder 已购买的学习培训 + * @return java.util.List + **/ + List selectTrainingOrderVideoList(NurseAppletPersonTrainingItemDTO trainingOrder); + + /** + * 查询已购买的学习培训详情 + * + * @param trainingOrder 已购买的学习培训 + * @return java.util.List + **/ + NurseAppletPersonTrainingOrderItemVO selectTrainingOrderVideoDetailsList(NurseAppletPersonTrainingItemDTO trainingOrder); + + /** + * 查询学习培训订单列表 + * + * @param trainingOrder 学习培训订单 + * @return 学习培训订单集合 + */ + List selectTrainingOrderVOList(TrainingOrderVO trainingOrder); + + /** + * 查询学习培训订单 + * + * @param id 学习培训订单主键 + * @return 学习培训订单 + */ + TrainingOrderVO selectTrainingOrderVoById(Long id); + + /** + * 根据订单编号查询学习培训订单信息 + * + * @param trainingOrderNo 订单编号 + * @return 学习培训订单信息 + */ + TrainingOrder getTrainingOrderInfoByOrderNo(String trainingOrderNo); + + /** + * 修改学习培训订单状态 + * + * @param trainingOrderStatus 订单状态 + * @param trainingOrderNo 订单编号 + * @return 数量 + */ + int updateTrainingOrderStatus(@Param("trainingOrderStatus") String trainingOrderStatus, @Param("trainingOrderNo") String trainingOrderNo); + + /** + * 根据订单状态查未支付的学习订单集合 + * + * @param trainingOrderStatus 订单状态 + * @param trainingOrderList 订单集合 + * @return 未支付的订单信息集合 + */ + List getWaitPayTrainingOrderList(@Param("trainingOrderStatus") String trainingOrderStatus, @Param("trainingOrderList") List trainingOrderList); + + /** + * 查询超过两小时未支付的学习培训订单信息 + * + * @param time 超时时间 + * @param trainingOrderStatus 订单状态 + * @return 学习培训订单信息集合 + */ + List getWaitPayTrainingOrderListByTime(@Param("time") LocalDateTime time, @Param("trainingOrderStatus") String trainingOrderStatus); + + /** + * 批量更新学习培训订单状态 + * + * @param orderNoList 学习培训订单列表信息 + * @param trainingOrderStatus 订单状态 + * @return 更新数量 + */ + int updateBatchTrainingOrderStatus(@Param("orderNoList") List orderNoList, @Param("trainingOrderStatus") String trainingOrderStatus); + + /** + * 查询已退款成功,但是本地系统未修改退款状态的学习培训订单 + * + * @param trainingOrderStatus 学习培训订单状态 + * @param refundStatus 退款状态 + * @return 学习培训订单集合 + */ + List getTrainingRefundOrderList(@Param("trainingOrderStatus") String trainingOrderStatus, @Param("refundStatus") String refundStatus); + + /** + * 退款信息查询 + * + * @param id 学习培训订单主键 + * @param trainingItemType 学习培训订单类型 + * @return 结果 + */ + TrainingOrderVO selectRefundInformation(@Param("id") Long id, @Param("trainingItemType") String trainingItemType); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/trainingorderitemdirectory/TrainingOrderItemDirectoryMapper.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/trainingorderitemdirectory/TrainingOrderItemDirectoryMapper.java new file mode 100644 index 0000000..22a94aa --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/mapper/trainingorderitemdirectory/TrainingOrderItemDirectoryMapper.java @@ -0,0 +1,95 @@ +package com.xinelu.manage.mapper.trainingorderitemdirectory; + +import com.xinelu.manage.domain.trainingorderitemdirectory.TrainingOrderItemDirectory; +import com.xinelu.manage.vo.trainingorderitemdirectory.TrainingOrderItemDirectoryInfoVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 学习培训订单明细章节,记录视频学习和直播课程的章节信息Mapper接口 + * + * @author xinyilu + * @date 2023-04-20 + */ +public interface TrainingOrderItemDirectoryMapper { + /** + * 查询学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param id 学习培训订单明细章节,记录视频学习和直播课程的章节信息主键 + * @return 学习培训订单明细章节,记录视频学习和直播课程的章节信息 + */ + TrainingOrderItemDirectory selectTrainingOrderItemDirectoryById(Long id); + + /** + * 查询学习培训订单明细章节,记录视频学习和直播课程的章节信息列表 + * + * @param trainingOrderItemDirectory 学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * @return 学习培训订单明细章节,记录视频学习和直播课程的章节信息集合 + */ + List selectTrainingOrderItemDirectoryList(TrainingOrderItemDirectory trainingOrderItemDirectory); + + /** + * 新增学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param trainingOrderItemDirectory 学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * @return 结果 + */ + int insertTrainingOrderItemDirectory(TrainingOrderItemDirectory trainingOrderItemDirectory); + + /** + * 修改学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param trainingOrderItemDirectory 学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * @return 结果 + */ + int updateTrainingOrderItemDirectory(TrainingOrderItemDirectory trainingOrderItemDirectory); + + /** + * 删除学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param id 学习培训订单明细章节,记录视频学习和直播课程的章节信息主键 + * @return 结果 + */ + int deleteTrainingOrderItemDirectoryById(Long id); + + /** + * 批量删除学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteTrainingOrderItemDirectoryByIds(Long[] ids); + + /** + * 批量新增学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param trainingOrderItemDirectoryList 学习培训订单明细章节信息集合,记录视频学习和直播课程的章节信息 + * @return int + **/ + int insertTrainingOrderItemDirectoryList(List trainingOrderItemDirectoryList); + + /** + * 修改学习培训订单明细章节,记录视频学习和直播课程的章节信息 + * + * @param trainingItemDirectoryId 培训项目章节表id + * @param trainingOrderNo 订单编号 + * @param itemDirectoryWatchStatus 视频状态 + * @return int + **/ + int updatePersonTrainingOrderItemDirectory(@Param("trainingItemDirectoryId") Long trainingItemDirectoryId, @Param("trainingOrderNo") String trainingOrderNo, @Param("itemDirectoryWatchStatus") String itemDirectoryWatchStatus); + + /** + * 查询订单表章节是否购买过 + * + * @param nurseStationPersonId 护理站人员id + * @param trainingItemId 培训项目表id + * @param trainingItemDirectoryIdList 培训项目章节表id集合 + * @param trainingOrderStatus 订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL', + * @return com.xinyilu.base.vo.trainingorderitemdirectory.TrainingOrderItemDirectoryInfoVO + **/ + List getTrainingOrderItemDirectoryList(@Param("nurseStationPersonId") Long nurseStationPersonId, + @Param("trainingItemId") Long trainingItemId, + @Param("trainingItemDirectoryIdList") List trainingItemDirectoryIdList, + @Param("trainingOrderStatus") String trainingOrderStatus); +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/trainingorder/ITrainingOrderService.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/trainingorder/ITrainingOrderService.java new file mode 100644 index 0000000..5da60bd --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/trainingorder/ITrainingOrderService.java @@ -0,0 +1,72 @@ +package com.xinelu.manage.service.trainingorder; + +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.manage.domain.trainingorder.TrainingOrder; +import com.xinelu.manage.domain.trainingorderitemdirectory.TrainingOrderItemDirectory; +import com.xinelu.manage.vo.trainingorder.TrainingOrderVO; + +import java.util.List; + +/** + * 学习培训订单Service接口 + * + * @author xinyilu + * @date 2023-04-20 + */ +public interface ITrainingOrderService { + /** + * 查询学习培训订单 + * + * @param id 学习培训订单主键 + * @return 学习培训订单 + */ + TrainingOrderVO selectTrainingOrderById(Long id); + + /** + * 查询学习培训订单列表 + * + * @param trainingOrder 学习培训订单 + * @return 学习培训订单集合 + */ + List selectTrainingOrderList(TrainingOrderVO trainingOrder); + + /** + * 新增学习培训订单 + * + * @param trainingOrder 学习培训订单 + * @return 结果 + */ + int insertTrainingOrder(TrainingOrder trainingOrder); + + /** + * 修改学习培训订单 + * + * @param trainingOrder 学习培训订单 + * @return 结果 + */ + int updateTrainingOrder(TrainingOrder trainingOrder); + + /** + * 批量删除学习培训订单 + * + * @param ids 需要删除的学习培训订单主键集合 + * @return 结果 + */ + int deleteTrainingOrderByIds(Long[] ids); + + /** + * 退款信息查询 + * + * @param id 学习培训订单主键 + * @return 结果 + */ + AjaxResult selectRefundInformation(Long id); + + /** + * 查询订单明细章节信息 + * + * @param trainingOrderItemDirectory 查询学习培训订单明细章节 + * @return List + */ + List selectTrainingOrderItemDirectoryList(TrainingOrderItemDirectory trainingOrderItemDirectory); +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/trainingorder/impl/TrainingOrderServiceImpl.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/trainingorder/impl/TrainingOrderServiceImpl.java new file mode 100644 index 0000000..b5030ad --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/service/trainingorder/impl/TrainingOrderServiceImpl.java @@ -0,0 +1,113 @@ +package com.xinelu.manage.service.trainingorder.impl; + +import com.xinelu.manage.domain.trainingorder.TrainingOrder; +import com.xinelu.manage.domain.trainingorderitemdirectory.TrainingOrderItemDirectory; +import com.xinelu.manage.mapper.trainingorder.TrainingOrderMapper; +import com.xinelu.manage.mapper.trainingorderitemdirectory.TrainingOrderItemDirectoryMapper; +import com.xinelu.manage.service.trainingorder.ITrainingOrderService; +import com.xinelu.manage.vo.trainingorder.TrainingOrderVO; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.enums.TrainingItemTypeEnum; +import com.xinelu.common.utils.SecurityUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 学习培训订单Service业务层处理 + * + * @author xinyilu + * @date 2023-04-20 + */ +@Service +public class TrainingOrderServiceImpl implements ITrainingOrderService { + @Resource + private TrainingOrderMapper trainingOrderMapper; + @Resource + private TrainingOrderItemDirectoryMapper trainingOrderItemDirectoryMapper; + + /** + * 查询学习培训订单 + * + * @param id 学习培训订单主键 + * @return 学习培训订单 + */ + @Override + public TrainingOrderVO selectTrainingOrderById(Long id) { + return trainingOrderMapper.selectTrainingOrderVoById(id); + } + + /** + * 查询学习培训订单列表 + * + * @param trainingOrder 学习培训订单 + * @return 学习培训订单 + */ + @Override + public List selectTrainingOrderList(TrainingOrderVO trainingOrder) { + trainingOrder.setTrainingParentId(Constants.TRAINING_PARENT_ID); + return trainingOrderMapper.selectTrainingOrderVOList(trainingOrder); + } + + /** + * 新增学习培训订单 + * + * @param trainingOrder 学习培训订单 + * @return 结果 + */ + @Override + public int insertTrainingOrder(TrainingOrder trainingOrder) { + trainingOrder.setCreateTime(LocalDateTime.now()); + trainingOrder.setCreateBy(SecurityUtils.getUsername()); + return trainingOrderMapper.insertTrainingOrder(trainingOrder); + } + + /** + * 修改学习培训订单 + * + * @param trainingOrder 学习培训订单 + * @return 结果 + */ + @Override + public int updateTrainingOrder(TrainingOrder trainingOrder) { + trainingOrder.setUpdateTime(LocalDateTime.now()); + trainingOrder.setUpdateBy(SecurityUtils.getUsername()); + return trainingOrderMapper.updateTrainingOrder(trainingOrder); + } + + /** + * 批量删除学习培训订单 + * + * @param ids 需要删除的学习培训订单主主键 + * @return 结果 + */ + @Override + public int deleteTrainingOrderByIds(Long[] ids) { + return trainingOrderMapper.deleteTrainingOrderByIds(ids); + } + + /** + * 退款信息查询 + * + * @param id 学习培训订单主键 + * @return 结果 + */ + @Override + public AjaxResult selectRefundInformation(Long id) { + return AjaxResult.success(trainingOrderMapper.selectRefundInformation(id, TrainingItemTypeEnum.LEARNING_ITEM_GROUP.getInfo())); + } + + /** + * 查询订单明细章节信息 + * + * @param trainingOrderItemDirectory 查询学习培训订单明细章节 + * @return List + */ + @Override + public List selectTrainingOrderItemDirectoryList(TrainingOrderItemDirectory trainingOrderItemDirectory) { + return trainingOrderItemDirectoryMapper.selectTrainingOrderItemDirectoryList(trainingOrderItemDirectory); + } +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/TrainingRefundOrderVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/TrainingRefundOrderVO.java new file mode 100644 index 0000000..417f9f5 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/TrainingRefundOrderVO.java @@ -0,0 +1,30 @@ +package com.xinelu.manage.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Description 学习培训订单退款返回值实体类 + * @Author 纪寒 + * @Date 2023-04-24 14:30:16 + * @Version 1.0 + */ +@Data +public class TrainingRefundOrderVO implements Serializable { + private static final long serialVersionUID = 8293128390665523720L; + /** + * 学习培训订单编号 + */ + private String trainingOrderNo; + + /** + * 学习培训订单状态 + */ + private String trainingOrderStatus; + + /** + * 学习培训退款单号 + */ + private String outRefundNo; +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorder/NurseAppletPersonTrainingOrderItemVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorder/NurseAppletPersonTrainingOrderItemVO.java new file mode 100644 index 0000000..56d7d00 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorder/NurseAppletPersonTrainingOrderItemVO.java @@ -0,0 +1,50 @@ +package com.xinelu.manage.vo.trainingorder; + +import com.xinelu.manage.domain.trainingorderdetails.TrainingOrderDetails; +import com.xinelu.manage.vo.trainingorderitemdirectory.TrainingOrderItemDirectoryVO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.List; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/4/25 9:18 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class NurseAppletPersonTrainingOrderItemVO extends TrainingOrderDetails implements Serializable { + private static final long serialVersionUID = 4974378984559961673L; + + /** + * 学习培训订单明细章节,记录视频学习和直播课程的章节信息对象 training_order_item_directory + */ + List trainingOrderItemDirectoryVOList; + + /** + * 学习培训项目信息对象主键id + */ + private Long trainingItemId; + + /** + * 学习培训项目章节对象主键id + */ + private Long trainingItemDirectoryId; + + /** + * 订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL + */ + private String trainingOrderStatus; + + /** + * 订单编号 + */ + private String trainingOrderNo; + + /** + * 订单主表id + */ + private Long trainingOrderId; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorder/TrainingOrderVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorder/TrainingOrderVO.java new file mode 100644 index 0000000..e9b49cc --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorder/TrainingOrderVO.java @@ -0,0 +1,45 @@ +package com.xinelu.manage.vo.trainingorder; + +import com.xinelu.manage.domain.trainingorder.TrainingOrder; +import com.xinelu.manage.vo.trainingorderdetails.TrainingOrderDetailsVO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +/** + * 学习培训订单主对象 training_order + * + * @author zh + * @date 2023-04-23 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class TrainingOrderVO extends TrainingOrder { + private static final long serialVersionUID = 8026313682395475801L; + + /** + * 订单id + */ + private Long trainingOrderId; + + /** + * 护理站名称 + */ + private String nurseStationName; + + /** + * 培训项目标题 + */ + private String trainingItemTitle; + + /** + * 订单明细 + */ + private List trainingOrderDetailsList; + + /** + * 学习培训课程父id + */ + private Long trainingParentId; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/NurseAppletPersonTrainingOrderDetailsVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/NurseAppletPersonTrainingOrderDetailsVO.java new file mode 100644 index 0000000..2bd5554 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/NurseAppletPersonTrainingOrderDetailsVO.java @@ -0,0 +1,74 @@ +package com.xinelu.manage.vo.trainingorderdetails; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.manage.domain.trainingorderdetails.TrainingOrderDetails; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/4/25 9:46 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class NurseAppletPersonTrainingOrderDetailsVO extends TrainingOrderDetails implements Serializable { + private static final long serialVersionUID = 4344236010800105022L; + + /** + * 订单明细主键id + */ + private Long trainingOrderDetailsId; + + /** + * 订单主键id + */ + private Long trainingOrderId; + + /** + * 护理站id + */ + private Long nurseStationId; + + /** + * 护理员表id + */ + private Long nurseStationPersonId; + + /** + * 护理员姓名 + */ + private String nursePersonName; + + /** + * 订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL + */ + private String trainingOrderStatus; + + /** + * 订单金额 + */ + private BigDecimal trainingOrderAmount; + + /** + * 下单方式,手机App:MOBILE_APP,微信小程序:WECHAT_APPLET,支付宝小程序:ALI_PAY_APPLET + */ + private String trainingOrderChannel; + + /** + * 下单时间,yyyy-MM-dd HH:mm:ss + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime trainingOrderTime; + + /** + * 是否删除标识,0:否,1:是 + */ + private Integer delFlag; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/TrainingDetailsByOrderVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/TrainingDetailsByOrderVO.java new file mode 100644 index 0000000..8713487 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/TrainingDetailsByOrderVO.java @@ -0,0 +1,25 @@ +package com.xinelu.manage.vo.trainingorderdetails; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/4/26 9:38 + */ +@Data +public class TrainingDetailsByOrderVO implements Serializable { + private static final long serialVersionUID = -3764420224976771260L; + + /** + * 培训订单主表id + */ + private Long trainingOrderId; + + /** + * 订单编号 + */ + private String trainingOrderNo; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/TrainingOrderDetailsVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/TrainingOrderDetailsVO.java new file mode 100644 index 0000000..aaec6cb --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/TrainingOrderDetailsVO.java @@ -0,0 +1,22 @@ +package com.xinelu.manage.vo.trainingorderdetails; + +import com.xinelu.manage.domain.trainingorderdetails.TrainingOrderDetails; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 学习培训订单明细对象 training_order_details + * + * @author xinyilu + * @date 2023-04-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class TrainingOrderDetailsVO extends TrainingOrderDetails { + private static final long serialVersionUID = 8581670163836081338L; + + /** + * 主键id + */ + private Long trainingOrderDetailsId; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/WaitPayTrainingOrderDetailsVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/WaitPayTrainingOrderDetailsVO.java new file mode 100644 index 0000000..47a04a8 --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderdetails/WaitPayTrainingOrderDetailsVO.java @@ -0,0 +1,61 @@ +package com.xinelu.manage.vo.trainingorderdetails; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @Description 待支付的学习培训订单详情信息实体类 + * @Author 纪寒 + * @Date 2023-04-27 09:43:43 + * @Version 1.0 + */ +@Data +public class WaitPayTrainingOrderDetailsVO implements Serializable { + private static final long serialVersionUID = -8690776626721258896L; + /** + * 学习培训课程包名称 + */ + private String trainingItemTitle; + + /** + * 学习培训课程包名称 + */ + private String trainingItemCoverUrl; + + /** + * 学习培训课程包价格 + */ + private BigDecimal trainingOrderAmount; + + /** + * 学习培训订单编号 + */ + private String trainingOrderNo; + + /** + * 护理员姓名 + */ + private String nursePersonName; + + /** + * 护理员id + */ + private Long nurseStationPersonId; + + /** + * 培训学习订单 + */ + private String trainingOrderStatus; + + /** + * 下单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime trainingOrderTime; +} diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderitemdirectory/TrainingOrderItemDirectoryInfoVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderitemdirectory/TrainingOrderItemDirectoryInfoVO.java new file mode 100644 index 0000000..394cffd --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderitemdirectory/TrainingOrderItemDirectoryInfoVO.java @@ -0,0 +1,80 @@ +package com.xinelu.manage.vo.trainingorderitemdirectory; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalTime; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/4/26 10:36 + */ +@Data +public class TrainingOrderItemDirectoryInfoVO implements Serializable { + private static final long serialVersionUID = -1196792067821850227L; + + /** + * 培训项目表id + **/ + private Long trainingItemId; + + /** + * 培训订单主表id + **/ + private Long trainingOrderId; + + /** + * 培训项目类型,视频学习:VIDEO_LEARNING,图文学习:GRAPHIC_LEARNING,直播课程:LIVE_COURSES,线下培训:OFFLINE_TRAINING,学习培训项目组:LEARNING_ITEM_GROUP', + **/ + private String trainingItemType; + + /** + * 培训项目章节表id + **/ + private Long trainingItemDirectoryId; + + /** + * 订单编号 + **/ + private String trainingOrderNo; + + /** + * 未观看:NOT_WATCHED,已观看:WATCHED,已看完:FINISHED_READING + **/ + private String itemDirectoryWatchStatus; + + /** + * 护理站id + */ + private Long nurseStationId; + + /** + * 护理站人员id + */ + private Long nurseStationPersonId; + + /** + * 护理站人员名称 + */ + private String nursePersonName; + + /** + * 订单状态,待付款:WAIT_PAY,已付款:PAY,退款中:WAIT_REFUND,已退款:REFUNDED,已取消:CANCEL + */ + private String trainingOrderStatus; + + /** + * 观看日期,格式:yyyy-MM-dd + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate watchDate; + + /** + * 培训项目观看时间点,格式:HH:mm:ss,视频学习类型使用 + */ + @JsonFormat(pattern = "HH:mm:ss") + private LocalTime watchTime; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderitemdirectory/TrainingOrderItemDirectoryVO.java b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderitemdirectory/TrainingOrderItemDirectoryVO.java new file mode 100644 index 0000000..d5f1f6f --- /dev/null +++ b/xinelu-nurse-manage/src/main/java/com/xinelu/manage/vo/trainingorderitemdirectory/TrainingOrderItemDirectoryVO.java @@ -0,0 +1,70 @@ +package com.xinelu.manage.vo.trainingorderitemdirectory; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import com.xinelu.manage.domain.trainingorderitemdirectory.TrainingOrderItemDirectory; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalTime; + +/** + * @author ljh + * @version 1.0 + * Create by 2023/4/21 22:59 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class TrainingOrderItemDirectoryVO extends TrainingOrderItemDirectory implements Serializable { + private static final long serialVersionUID = -8067388610816174007L; + + /** + * 观看日期,格式:yyyy-MM-dd + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate watchDate; + + /** + * 培训项目观看时间点,格式:HH:mm:ss,视频学习类型使用 + */ + @JsonFormat(pattern = "HH:mm:ss") + private LocalTime watchTime; + + /** + * 培训项目表id + */ + @ApiModelProperty(value = "培训项目表id") + @Excel(name = "培训项目表id") + private Long trainingItemId; + + /** + * 培训项目章节标题 + */ + @ApiModelProperty(value = "培训项目章节标题") + @Excel(name = "培训项目章节标题") + private String itemDirectoryTitle; + + /** + * 培训项目章节视频存放地址 + */ + @ApiModelProperty(value = "培训项目章节视频存放地址") + @Excel(name = "培训项目章节视频存放地址") + private String itemDirectoryUrl; + + /** + * 培训章节视频时长 + */ + @JsonFormat(pattern = "HH:mm:ss") + private LocalTime itemDirectoryVideoDuration; + + + /** + * 培训项目章节排序 + */ + @ApiModelProperty(value = "培训项目章节排序") + @Excel(name = "培训项目章节排序") + private Integer itemDirectorySort; +} \ No newline at end of file diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/trainingorder/TrainingOrderMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/trainingorder/TrainingOrderMapper.xml new file mode 100644 index 0000000..3fcbb4b --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/trainingorder/TrainingOrderMapper.xml @@ -0,0 +1,561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + nurse_station_id, + nurse_station_person_id, + nurse_person_name, + training_order_no, + training_order_status, + training_order_amount, + training_order_channel, + training_order_time, + remark, + del_flag, + create_by, + create_time, + update_by, + update_time + from training_order + + + + + + + + insert into training_order + + nurse_station_id, + + nurse_station_person_id, + + nurse_person_name, + + training_order_no, + + training_order_status, + + training_order_amount, + + training_order_channel, + + training_order_time, + + remark, + + del_flag, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{nurseStationId}, + + #{nurseStationPersonId}, + + #{nursePersonName}, + + #{trainingOrderNo}, + + #{trainingOrderStatus}, + + #{trainingOrderAmount}, + + #{trainingOrderChannel}, + + #{trainingOrderTime}, + + #{remark}, + + #{delFlag}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update training_order + + nurse_station_id = + #{nurseStationId}, + + nurse_station_person_id = + #{nurseStationPersonId}, + + nurse_person_name = + #{nursePersonName}, + + training_order_no = + #{trainingOrderNo}, + + training_order_status = + #{trainingOrderStatus}, + + training_order_amount = + #{trainingOrderAmount}, + + training_order_channel = + #{trainingOrderChannel}, + + training_order_time = + #{trainingOrderTime}, + + remark = + #{remark}, + + del_flag = + #{delFlag}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from training_order + where id = #{id} + + + + delete from training_order where id in + + #{id} + + + + + + + + + + + + + update training_order + set training_order_status = #{trainingOrderStatus}, + update_time = now() + where del_flag = 0 + and training_order_no = #{trainingOrderNo} + and training_order_status <> #{trainingOrderStatus} + + + + + + + + update training_order set training_order_status = #{trainingOrderStatus}, update_time = now() + where + del_flag = 0 + and training_order_status <> #{trainingOrderStatus} + and training_order_no in + + #{trainingOrderNo} + + + + + + + + + diff --git a/xinelu-nurse-manage/src/main/resources/mapper/manage/trainingorderitemdirectory/TrainingOrderItemDirectoryMapper.xml b/xinelu-nurse-manage/src/main/resources/mapper/manage/trainingorderitemdirectory/TrainingOrderItemDirectoryMapper.xml new file mode 100644 index 0000000..98babd4 --- /dev/null +++ b/xinelu-nurse-manage/src/main/resources/mapper/manage/trainingorderitemdirectory/TrainingOrderItemDirectoryMapper.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + select id, + training_order_details_id, + training_order_no, + training_item_directory_id, + item_directory_name, + item_directory_code, + item_directory_title, + item_directory_url, + item_directory_video_duration, + item_directory_introduce, + item_directory_watch_status, + create_by, + create_time, + update_by, + update_time + from training_order_item_directory + + + + + + + + insert into training_order_item_directory + + training_order_details_id, + + training_order_no, + + training_item_directory_id, + + item_directory_name, + + item_directory_code, + + item_directory_title, + + item_directory_url, + + item_directory_video_duration, + + item_directory_introduce, + + item_directory_watch_status, + + create_by, + + create_time, + + update_by, + + update_time, + + + + #{trainingOrderDetailsId}, + + #{trainingOrderNo}, + + #{trainingItemDirectoryId}, + + #{itemDirectoryName}, + + #{itemDirectoryCode}, + + #{itemDirectoryTitle}, + + #{itemDirectoryUrl}, + + #{itemDirectoryVideoDuration}, + + #{itemDirectoryIntroduce}, + + #{itemDirectoryWatchStatus}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + + + + + update training_order_item_directory + + training_order_details_id = + #{trainingOrderDetailsId}, + + training_order_no = + #{trainingOrderNo}, + + training_item_directory_id = + #{trainingItemDirectoryId}, + + item_directory_name = + #{itemDirectoryName}, + + item_directory_code = + #{itemDirectoryCode}, + + item_directory_title = + #{itemDirectoryTitle}, + + item_directory_url = + #{itemDirectoryUrl}, + + item_directory_video_duration = + #{itemDirectoryVideoDuration}, + + item_directory_introduce = + #{itemDirectoryIntroduce}, + + item_directory_watch_status = + #{itemDirectoryWatchStatus}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + + where id = #{id} + + + + delete + from training_order_item_directory + where id = #{id} + + + + delete from training_order_item_directory where id in + + #{id} + + + + + + insert into training_order_item_directory( + training_order_details_id, + training_order_no, + training_item_directory_id, + item_directory_name, + item_directory_code, + item_directory_title, + item_directory_url, + item_directory_video_duration, + item_directory_introduce, + item_directory_watch_status, + create_by, + create_time, + update_by, + update_time + ) values + + ( + #{trainingOrderItemDirectory.trainingOrderDetailsId}, + #{trainingOrderItemDirectory.trainingOrderNo}, + #{trainingOrderItemDirectory.trainingItemDirectoryId}, + #{trainingOrderItemDirectory.itemDirectoryName}, + #{trainingOrderItemDirectory.itemDirectoryCode}, + #{trainingOrderItemDirectory.itemDirectoryTitle}, + #{trainingOrderItemDirectory.itemDirectoryUrl}, + #{trainingOrderItemDirectory.itemDirectoryVideoDuration}, + #{trainingOrderItemDirectory.itemDirectoryIntroduce}, + #{trainingOrderItemDirectory.itemDirectoryWatchStatus}, + #{trainingOrderItemDirectory.createBy}, + #{trainingOrderItemDirectory.createTime}, + #{trainingOrderItemDirectory.updateBy}, + #{trainingOrderItemDirectory.updateTime} + ) + + + + + UPDATE training_order_item_directory + SET item_directory_watch_status = #{itemDirectoryWatchStatus}, + update_time = now() + WHERE training_order_no = #{trainingOrderNo} + AND training_item_directory_id = #{trainingItemDirectoryId} + + + +