guomengjiao 2 hónapja%!(EXTRA string=óta)
szülő
commit
0c2cc707e5

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/OrderRefundController.java

@@ -12,6 +12,7 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.info.order.domain.bo.OrderRefundBo;
 import com.ruoyi.info.order.domain.vo.OrderRefundVo;
 import com.ruoyi.info.order.enums.OrderOperatorType;
+import com.ruoyi.info.order.enums.RefundStatus;
 import com.ruoyi.info.order.service.IOrderRefundService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +22,8 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.constraints.NotNull;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 售后订单Controller
@@ -47,6 +50,14 @@ public class OrderRefundController extends BaseController {
         return iOrderRefundService.queryPageList(bo, pageQuery);
     }
 
+    @ApiOperation("枚举")
+    @GetMapping("/enum")
+    public R<Map<String,  Object>> getEnum() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("refundStatus", RefundStatus.toJsonArray());
+        return R.ok(map);
+    }
+
     /**
      * 获取售后订单详细信息
      */

+ 11 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/info/ApiOrderRefundController.java

@@ -9,6 +9,7 @@ import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
 import com.ruoyi.info.order.domain.bo.OrderRefundBo;
 import com.ruoyi.info.order.domain.vo.OrderRefundVo;
+import com.ruoyi.info.order.enums.RefundStatus;
 import com.ruoyi.info.order.service.IOrderRefundService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -18,6 +19,8 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.constraints.NotNull;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * 售后订单Controller
@@ -44,6 +47,14 @@ public class ApiOrderRefundController extends AbstractApiController {
         return iOrderRefundService.queryPageList(bo, pageQuery);
     }
 
+    @ApiOperation("枚举")
+    @GetMapping("/enum")
+    public R<Map<String,  Object>> getEnum() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("refundStatus", RefundStatus.toJsonArray());
+        return R.ok(map);
+    }
+
     /**
      * 获取售后订单详细信息
      */

+ 6 - 2
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/management/service/impl/ManagementTeacherServiceImpl.java

@@ -242,12 +242,16 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         List<ManagementTeacher> managementTeachers = baseMapper.selectBatchIds(ids);
-        baseMapper.deleteBatchIds(ids);
+        if (CollUtil.isNotEmpty(managementTeachers)) {
+            baseMapper.deleteBatchIds(ids);
+        }
 
         for (Long id : ids) {
             // 删除旧的科室关联信息
             List<TeacherDepartmentRel> teacherDepartmentRelDBList = teacherDepartmentRelService.queryByTeacherId(id);
-            teacherDepartmentRelMapper.deleteBatchIds(convertSet(teacherDepartmentRelDBList, TeacherDepartmentRel::getId));
+            if (CollUtil.isNotEmpty(teacherDepartmentRelDBList)) {
+                teacherDepartmentRelMapper.deleteBatchIds(convertSet(teacherDepartmentRelDBList, TeacherDepartmentRel::getId));
+            }
         }
 
         // 强制踢出管理老师

+ 24 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/order/domain/OrderRefund.java

@@ -91,4 +91,28 @@ public class OrderRefund extends BaseTimeEntity {
      * 退款完成时间
      */
     private Date completeTime;
+    /**
+     * 服务ID
+     */
+    private Long serviceId;
+    /**
+     * 服务信息冗余
+     */
+    private String serviceInfo;
+    /**
+     * 下单数量
+     */
+    private Integer orderNum;
+    /**
+     * 销售价
+     */
+    private BigDecimal sellingPrice;
+    /**
+     * 应付价格
+     */
+    private BigDecimal totalPrice;
+    /**
+     * 实付价格
+     */
+    private BigDecimal payPrice;
 }

+ 27 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/order/domain/bo/OrderRefundBo.java

@@ -138,4 +138,31 @@ public class OrderRefundBo extends BaseEntity {
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
 
+    @ApiModelProperty("服务ID")
+    private Long serviceId;
+    @ApiModelProperty("服务信息冗余")
+    private String serviceInfo;
+
+    /**
+     * 下单数量
+     */
+    @ApiModelProperty("下单数量")
+    private Integer orderNum;
+
+    /**
+     * 销售价
+     */
+    @ApiModelProperty("销售价")
+    private BigDecimal sellingPrice;
+
+    /**
+     * 应付价格
+     */
+    @ApiModelProperty("应付价格")
+    private BigDecimal totalPrice;
+    /**
+     * 实付价格
+     */
+    @ApiModelProperty("实付价格")
+    private BigDecimal payPrice;
 }

+ 30 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/order/domain/vo/OrderRefundVo.java

@@ -150,4 +150,34 @@ public class OrderRefundVo {
 
     @ApiModelProperty("订单信息")
     private OrderVo orderVo;
+
+    @ApiModelProperty("服务ID")
+    private Long serviceId;
+    @ApiModelProperty("服务信息冗余")
+    private String serviceInfo;
+    @ApiModelProperty("服务名称")
+    private String serviceName;
+
+    /**
+     * 下单数量
+     */
+    @ApiModelProperty("下单数量")
+    private Integer orderNum;
+
+    /**
+     * 销售价
+     */
+    @ApiModelProperty("销售价")
+    private BigDecimal sellingPrice;
+
+    /**
+     * 应付价格
+     */
+    @ApiModelProperty("应付价格")
+    private BigDecimal totalPrice;
+    /**
+     * 实付价格
+     */
+    @ApiModelProperty("实付价格")
+    private BigDecimal payPrice;
 }

+ 3 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/order/domain/vo/OrderVo.java

@@ -20,6 +20,7 @@ import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -256,4 +257,6 @@ public class OrderVo {
     @ExcelProperty(value = "退款金额", order = 23)
     @ApiModelProperty("退款金额")
     private BigDecimal refundPrice;
+    @ApiModelProperty("退款信息")
+    private List<OrderRefundVo> refundList;
 }

+ 25 - 7
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/order/service/impl/OrderRefundServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.info.order.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -26,6 +27,7 @@ import com.ruoyi.info.order.exception.OrderRefundExceptionEnum;
 import com.ruoyi.info.order.mapper.OrderRefundMapper;
 import com.ruoyi.info.order.service.IOrderRefundService;
 import com.ruoyi.info.order.service.IOrderService;
+import com.ruoyi.info.service.domain.vo.ServiceProductVo;
 import com.ruoyi.system.enums.SequencePrefixEnum;
 import com.ruoyi.system.service.ISysSequenceService;
 import com.ruoyi.system.service.ISysUserService;
@@ -60,12 +62,7 @@ public class OrderRefundServiceImpl implements IOrderRefundService {
     @Override
     public TableDataInfo<OrderRefundVo> queryPageList(OrderRefundBo bo, PageQuery pageQuery) {
         Page<OrderRefundVo> result = baseMapper.selectListPage(pageQuery.build(), bo);
-        result.setRecords(result.getRecords().stream().map(orv -> {
-            if (ObjectUtil.isNotNull(orv.getOrderVo())) {
-                orv.setOrderVo(orderService.convertAllVo(orv.getOrderVo(), true, null));
-            }
-            return orv;
-        }).collect(Collectors.toList()));
+        result.setRecords(convertList(result.getRecords()));
         return TableDataInfo.build(result);
     }
 
@@ -77,7 +74,21 @@ public class OrderRefundServiceImpl implements IOrderRefundService {
      */
     @Override
     public List<OrderRefundVo> queryList(OrderRefundBo bo) {
-        return baseMapper.selectOrderRefundList(bo);
+        return convertList(baseMapper.selectOrderRefundList(bo));
+    }
+
+    private List<OrderRefundVo> convertList(List<OrderRefundVo> voList) {
+        return voList.stream().map(orv -> {
+            if (ObjectUtil.isNotNull(orv.getOrderVo())) {
+                orv.setOrderVo(orderService.convertAllVo(orv.getOrderVo(), true, null));
+            }
+            //服务
+            ServiceProductVo serviceProductVo = JSONObject.parseObject(orv.getServiceInfo(), ServiceProductVo.class);
+            if (ObjectUtil.isNotNull(serviceProductVo)) {
+                orv.setServiceName(serviceProductVo.getName());
+            }
+            return orv;
+        }).collect(Collectors.toList());
     }
 
     private LambdaQueryWrapper<OrderRefund> buildQueryWrapper(OrderRefundBo bo) {
@@ -162,6 +173,13 @@ public class OrderRefundServiceImpl implements IOrderRefundService {
         }
         OrderRefund add = BeanUtil.toBean(bo, OrderRefund.class);
         validEntityBeforeSave(add);
+        //订单信息
+        add.setServiceId(order.getServiceId());
+        add.setServiceInfo(order.getServiceInfo());
+        add.setOrderNum(order.getOrderNum());
+        add.setSellingPrice(order.getSellingPrice());
+        add.setTotalPrice(order.getTotalPrice());
+        add.setPayPrice(order.getPayPrice());
         add.setRefundStatus(RefundStatus.wait);
         add.setOrderRefundNo(sysSequenceService.generateSequence(SequencePrefixEnum.PRE_ORDER_REFUND, DateUtil.format(new Date(), "yyMMdd"), 6));
         boolean flag = baseMapper.insert(add) > 0;

+ 6 - 4
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/order/service/impl/OrderServiceImpl.java

@@ -29,10 +29,7 @@ import com.ruoyi.info.nursing.domain.NursingWorker;
 import com.ruoyi.info.nursing.domain.vo.NursingWorkerVo;
 import com.ruoyi.info.nursing.service.INursingWorkerService;
 import com.ruoyi.info.order.domain.Order;
-import com.ruoyi.info.order.domain.bo.OrderBo;
-import com.ruoyi.info.order.domain.bo.OrderCountBo;
-import com.ruoyi.info.order.domain.bo.OrderReviewsBo;
-import com.ruoyi.info.order.domain.bo.OrderWorkerChangeRecordBo;
+import com.ruoyi.info.order.domain.bo.*;
 import com.ruoyi.info.order.domain.vo.*;
 import com.ruoyi.info.order.enums.CancellationMethod;
 import com.ruoyi.info.order.enums.OrderStatus;
@@ -187,6 +184,11 @@ public class OrderServiceImpl implements IOrderService {
             vo.setOrderReviews(orderReviewsVo);
         }
         vo.setHasRefund(orderRefundService.hasRefund(vo.getId()));
+        if (vo.getHasRefund()) {
+            OrderRefundBo orderRefundBo = new OrderRefundBo();
+            orderRefundBo.setOrderId(vo.getId());
+            vo.setRefundList(orderRefundService.queryList(orderRefundBo));
+        }
         return vo;
     }
 

+ 2 - 7
ruoyi-info/ruoyi-info-biz/src/main/resources/mapper/order/OrderRefundMapper.xml

@@ -26,18 +26,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <result property="hospitalInfo" column="hospital_info"/>
             <result property="hospitalDepartmentInfo" column="hospital_department_info"/>
             <result property="patientInfo" column="patient_info"/>
-            <result property="serviceInfo" column="service_info"/>
-            <result property="orderNum" column="order_num"/>
-            <result property="sellingPrice" column="selling_price"/>
-            <result property="totalPrice" column="total_price"/>
-            <result property="payPrice" column="pay_price"/>
             <result property="userMobile" column="userMobile"/>
         </association>
     </resultMap>
 
     <sql id="queryByWhere">
         select tor.*, tod.hospital_info, tod.hospital_department_info, tod.patient_info,
-               tod.service_info, tod.order_num, tod.selling_price, tod.total_price, tod.pay_price, u.mobile as userMobile
+               u.mobile as userMobile
         from tb_order_refund tor
         left join tb_order tod on tor.order_id = tod.id
         left join tb_user u on u.id = tod.user_id
@@ -61,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 and tod.hospital_id = #{bo.hospitalId}
             </if>
             <if test="bo.serviceName != null and bo.serviceName != ''">
-                and JSON_UNQUOTE(JSON_EXTRACT(tod.service_info, '$.name')) like concat('%', #{bo.serviceName}, '%')
+                and JSON_UNQUOTE(JSON_EXTRACT(tor.service_info, '$.name')) like concat('%', #{bo.serviceName}, '%')
             </if>
             <if test="bo.startTime != null">
                 and tor.create_time >= #{bo.startTime}

+ 6 - 0
script/sql/baifc-0928.sql

@@ -110,6 +110,12 @@ CREATE TABLE `tb_order_refund`  (
     `operator_id` bigint(0) NULL DEFAULT NULL COMMENT '操作人',
     `refund_trade_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '退款交易号',
     `complete_time` datetime DEFAULT NULL COMMENT '退款完成时间',
+    `service_id` bigint(0) NOT NULL COMMENT '服务ID',
+    `service_info` json NULL COMMENT '服务信息冗余',
+    `order_num` int(0) NOT NULL COMMENT '下单数量',
+    `selling_price` decimal(10, 2) NOT NULL COMMENT '销售价',
+    `total_price` decimal(10, 2) NOT NULL COMMENT '应付价格',
+    `pay_price` decimal(10, 2) NOT NULL COMMENT '实际支付金额',
     `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
     `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
     PRIMARY KEY (`id`) USING BTREE,