guomengjiao vor 3 Monaten
Ursprung
Commit
5a4d261090

+ 11 - 83
ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/OrderReviewsController.java

@@ -1,32 +1,20 @@
 package com.ruoyi.web.controller.info;
 
-import java.util.List;
-import java.util.Arrays;
-import java.util.concurrent.TimeUnit;
-
-import lombok.RequiredArgsConstructor;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.PageQuery;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.info.order.domain.vo.OrderReviewsVo;
-import com.ruoyi.info.order.domain.bo.OrderReviewsBo;
+import com.ruoyi.info.order.domain.bo.OrderBo;
+import com.ruoyi.info.order.domain.vo.OrderVo;
 import com.ruoyi.info.order.service.IOrderReviewsService;
-import com.ruoyi.common.core.page.TableDataInfo;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * 订单评价Controller
@@ -49,69 +37,9 @@ public class OrderReviewsController extends BaseController {
     @ApiOperation("查询订单评价列表")
     @SaCheckPermission("order:orderReviews:list")
     @GetMapping("/page")
-    public TableDataInfo<OrderReviewsVo> page(@Validated(QueryGroup.class) OrderReviewsBo bo, PageQuery pageQuery) {
-        return iOrderReviewsService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 获取订单评价详细信息
-     */
-    @ApiOperation("获取订单评价详细信息")
-    @SaCheckPermission("order:orderReviews:query")
-    @GetMapping("/info/{id}")
-    public R<OrderReviewsVo> getInfo(@ApiParam("主键")
-                                                  @NotNull(message = "主键不能为空")
-                                                  @PathVariable("id") Long id) {
-        return R.ok(iOrderReviewsService.queryById(id));
-    }
-
-    /**
-     * 新增订单评价
-     */
-    @ApiOperation("新增订单评价")
-    @SaCheckPermission("order:orderReviews:add")
-    @Log(title = "订单评价", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping("/add")
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderReviewsBo bo) {
-        return toAjax(iOrderReviewsService.insertByBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改订单评价
-     */
-    @ApiOperation("修改订单评价")
-    @SaCheckPermission("order:orderReviews:edit")
-    @Log(title = "订单评价", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PostMapping("/edit")
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderReviewsBo bo) {
-        return toAjax(iOrderReviewsService.updateByBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 删除订单评价
-     */
-    @ApiOperation("删除订单评价")
-    @SaCheckPermission("order:orderReviews:remove")
-    @Log(title = "订单评价", businessType = BusinessType.DELETE)
-    @PostMapping("/del/{ids}")
-    public R<Void> remove(@ApiParam("主键串")
-                                       @NotEmpty(message = "主键不能为空")
-                                       @PathVariable Long[] ids) {
-        return toAjax(iOrderReviewsService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
-    }
-
-    /**
-     * 导出订单评价列表
-     */
-    @ApiOperation("导出订单评价列表")
-    @SaCheckPermission("order:orderReviews:export")
-    @Log(title = "订单评价", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(@Validated OrderReviewsBo bo, HttpServletResponse response) {
-        List<OrderReviewsVo> list = iOrderReviewsService.queryList(bo);
-        ExcelUtil.exportExcel(list, "订单评价", OrderReviewsVo.class, response);
+    public TableDataInfo<OrderVo> page(@Validated(QueryGroup.class) OrderBo bo, PageQuery pageQuery) {
+        bo.setIsReviewed(true);
+        return iOrderReviewsService.queryOrderList(bo, pageQuery);
     }
 
 }

+ 0 - 117
ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/OrderWorkerChangeRecordController.java

@@ -1,117 +0,0 @@
-package com.ruoyi.web.controller.info;
-
-import java.util.List;
-import java.util.Arrays;
-import java.util.concurrent.TimeUnit;
-
-import lombok.RequiredArgsConstructor;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import com.ruoyi.common.annotation.RepeatSubmit;
-import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.core.controller.BaseController;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.validate.AddGroup;
-import com.ruoyi.common.core.validate.EditGroup;
-import com.ruoyi.common.core.validate.QueryGroup;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.info.order.domain.vo.OrderWorkerChangeRecordVo;
-import com.ruoyi.info.order.domain.bo.OrderWorkerChangeRecordBo;
-import com.ruoyi.info.order.service.IOrderWorkerChangeRecordService;
-import com.ruoyi.common.core.page.TableDataInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiParam;
-import io.swagger.annotations.ApiOperation;
-
-/**
- * 订单更换分配护工记录Controller
- *
- * @author ruoyi
- * @date 2025-09-29
- */
-@Validated
-@Api(value = "订单更换分配护工记录控制器", tags = {"订单更换分配护工记录管理"})
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/order/orderWorkerChangeRecord")
-public class OrderWorkerChangeRecordController extends BaseController {
-
-    private final IOrderWorkerChangeRecordService iOrderWorkerChangeRecordService;
-
-    /**
-     * 分页查询订单更换分配护工记录列表
-     */
-    @ApiOperation("查询订单更换分配护工记录列表")
-    @SaCheckPermission("order:orderWorkerChangeRecord:list")
-    @GetMapping("/page")
-    public TableDataInfo<OrderWorkerChangeRecordVo> page(@Validated(QueryGroup.class) OrderWorkerChangeRecordBo bo, PageQuery pageQuery) {
-        return iOrderWorkerChangeRecordService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 获取订单更换分配护工记录详细信息
-     */
-    @ApiOperation("获取订单更换分配护工记录详细信息")
-    @SaCheckPermission("order:orderWorkerChangeRecord:query")
-    @GetMapping("/info/{id}")
-    public R<OrderWorkerChangeRecordVo> getInfo(@ApiParam("主键")
-                                                  @NotNull(message = "主键不能为空")
-                                                  @PathVariable("id") Long id) {
-        return R.ok(iOrderWorkerChangeRecordService.queryById(id));
-    }
-
-    /**
-     * 新增订单更换分配护工记录
-     */
-    @ApiOperation("新增订单更换分配护工记录")
-    @SaCheckPermission("order:orderWorkerChangeRecord:add")
-    @Log(title = "订单更换分配护工记录", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping("/add")
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderWorkerChangeRecordBo bo) {
-        return toAjax(iOrderWorkerChangeRecordService.insertByBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 修改订单更换分配护工记录
-     */
-    @ApiOperation("修改订单更换分配护工记录")
-    @SaCheckPermission("order:orderWorkerChangeRecord:edit")
-    @Log(title = "订单更换分配护工记录", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PostMapping("/edit")
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderWorkerChangeRecordBo bo) {
-        return toAjax(iOrderWorkerChangeRecordService.updateByBo(bo) ? 1 : 0);
-    }
-
-    /**
-     * 删除订单更换分配护工记录
-     */
-    @ApiOperation("删除订单更换分配护工记录")
-    @SaCheckPermission("order:orderWorkerChangeRecord:remove")
-    @Log(title = "订单更换分配护工记录", businessType = BusinessType.DELETE)
-    @PostMapping("/del/{ids}")
-    public R<Void> remove(@ApiParam("主键串")
-                                       @NotEmpty(message = "主键不能为空")
-                                       @PathVariable Long[] ids) {
-        return toAjax(iOrderWorkerChangeRecordService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
-    }
-
-    /**
-     * 导出订单更换分配护工记录列表
-     */
-    @ApiOperation("导出订单更换分配护工记录列表")
-    @SaCheckPermission("order:orderWorkerChangeRecord:export")
-    @Log(title = "订单更换分配护工记录", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(@Validated OrderWorkerChangeRecordBo bo, HttpServletResponse response) {
-        List<OrderWorkerChangeRecordVo> list = iOrderWorkerChangeRecordService.queryList(bo);
-        ExcelUtil.exportExcel(list, "订单更换分配护工记录", OrderWorkerChangeRecordVo.class, response);
-    }
-
-}

+ 1 - 0
ruoyi-info/src/main/java/com/ruoyi/info/management/mapper/ManagementTeacherMapper.java

@@ -12,4 +12,5 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  */
 public interface ManagementTeacherMapper extends BaseMapperPlus<ManagementTeacherMapper, ManagementTeacher, ManagementTeacherVo> {
 
+    ManagementTeacherVo queryDelById(Long id);
 }

+ 1 - 0
ruoyi-info/src/main/java/com/ruoyi/info/management/service/IManagementTeacherService.java

@@ -74,4 +74,5 @@ public interface IManagementTeacherService {
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
+    ManagementTeacherVo queryDelById(Long id);
 }

+ 5 - 0
ruoyi-info/src/main/java/com/ruoyi/info/management/service/impl/ManagementTeacherServiceImpl.java

@@ -157,4 +157,9 @@ public class ManagementTeacherServiceImpl implements IManagementTeacherService {
         return baseMapper.deleteBatchIds(ids) > 0;
     }
 
+    @Override
+    public ManagementTeacherVo queryDelById(Long id) {
+        return baseMapper.queryDelById(id);
+    }
+
 }

+ 4 - 0
ruoyi-info/src/main/java/com/ruoyi/info/order/domain/Order.java

@@ -137,5 +137,9 @@ public class Order extends BaseTimeEntity {
      * 订单取消原因
      */
     private String cancellationReason;
+    /**
+     * 订单是否评价
+     */
+    private Boolean isReviewed;
 
 }

+ 3 - 0
ruoyi-info/src/main/java/com/ruoyi/info/order/domain/bo/OrderBo.java

@@ -140,4 +140,7 @@ public class OrderBo extends BaseEntity {
     @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endTime;
+
+    @ApiModelProperty(value = "是否评价过")
+    private Boolean isReviewed;
 }

+ 7 - 3
ruoyi-info/src/main/java/com/ruoyi/info/order/service/IOrderReviewsService.java

@@ -1,10 +1,12 @@
 package com.ruoyi.info.order.service;
 
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.info.order.domain.OrderReviews;
-import com.ruoyi.info.order.domain.vo.OrderReviewsVo;
+import com.ruoyi.info.order.domain.bo.OrderBo;
 import com.ruoyi.info.order.domain.bo.OrderReviewsBo;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.info.order.domain.vo.OrderReviewsVo;
+import com.ruoyi.info.order.domain.vo.OrderVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -75,4 +77,6 @@ public interface IOrderReviewsService {
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     OrderReviewsVo queryByOrderId(Long orderId);
+
+    TableDataInfo<OrderVo> queryOrderList(OrderBo bo, PageQuery pageQuery);
 }

+ 43 - 10
ruoyi-info/src/main/java/com/ruoyi/info/order/service/impl/OrderReviewsServiceImpl.java

@@ -2,26 +2,34 @@ package com.ruoyi.info.order.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+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.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.common.core.page.TableDataInfo;
-import com.ruoyi.common.core.domain.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
+import com.ruoyi.info.order.domain.OrderReviews;
+import com.ruoyi.info.order.domain.bo.OrderBo;
 import com.ruoyi.info.order.domain.bo.OrderReviewsBo;
 import com.ruoyi.info.order.domain.vo.OrderReviewsVo;
-import com.ruoyi.info.order.domain.OrderReviews;
+import com.ruoyi.info.order.domain.vo.OrderVo;
+import com.ruoyi.info.order.domain.vo.OrderWorkerChangeRecordVo;
+import com.ruoyi.info.order.exception.OrderReviewsExceptionEnum;
 import com.ruoyi.info.order.mapper.OrderReviewsMapper;
 import com.ruoyi.info.order.service.IOrderReviewsService;
-import com.ruoyi.info.order.exception.OrderReviewsExceptionEnum;
+import com.ruoyi.info.order.service.IOrderService;
+import com.ruoyi.info.order.service.IOrderWorkerChangeRecordService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
+import java.util.stream.Collectors;
 
 /**
  * 订单评价Service业务层处理
@@ -34,6 +42,10 @@ import java.util.Collection;
 public class OrderReviewsServiceImpl implements IOrderReviewsService {
 
     private final OrderReviewsMapper baseMapper;
+    @Lazy
+    @Resource
+    private IOrderService orderService;
+    private final IOrderWorkerChangeRecordService orderWorkerChangeRecordService;
 
     /**
      * 查询订单评价分页
@@ -157,4 +169,25 @@ public class OrderReviewsServiceImpl implements IOrderReviewsService {
         return baseMapper.selectVoOne(new LambdaQueryWrapper<OrderReviews>().eq(OrderReviews::getOrderId, orderId).last("limit 1"));
     }
 
+    @Override
+    public TableDataInfo<OrderVo> queryOrderList(OrderBo bo, PageQuery pageQuery) {
+        TableDataInfo<OrderVo> orderVoTableDataInfo = orderService.queryAllPageList(bo, pageQuery);
+        orderVoTableDataInfo.setRows(convert(orderVoTableDataInfo.getRows()));
+        return orderVoTableDataInfo;
+    }
+
+    private List<OrderVo> convert(List<OrderVo> vos) {
+        return vos.stream().map(vo -> {
+            OrderReviewsVo orderReviewsVo = queryByOrderId(vo.getId());
+            if (orderReviewsVo != null) {
+                vo.setOrderReviews(orderReviewsVo);
+            }
+            OrderWorkerChangeRecordVo orderWorkerChangeRecordVo = orderWorkerChangeRecordService.queryByOrderAndWorker(vo.getId(), vo.getWorkerId());
+            if (orderWorkerChangeRecordVo != null) {
+                vo.setOrderWorkerChangeRecord(orderWorkerChangeRecordVo);
+            }
+            return vo;
+        }).collect(Collectors.toList());
+    }
+
 }

+ 3 - 2
ruoyi-info/src/main/java/com/ruoyi/info/order/service/impl/OrderServiceImpl.java

@@ -166,7 +166,7 @@ public class OrderServiceImpl implements IOrderService {
         //护工
         if (ObjectUtil.isNotNull(vo.getWorkerId())) {
             OrderWorkerChangeRecordVo orderWorkerChangeRecordVo = orderWorkerChangeRecordService.queryByOrderAndWorker(vo.getId(), vo.getWorkerId());
-            ManagementTeacherVo managementTeacherVo = managementTeacherService.queryById(orderWorkerChangeRecordVo.getOperatingTeacherId());
+            ManagementTeacherVo managementTeacherVo = managementTeacherService.queryDelById(orderWorkerChangeRecordVo.getOperatingTeacherId());
             if (ObjectUtil.isNotNull(managementTeacherVo)) {
                 orderWorkerChangeRecordVo.setOperatingTeacherName(managementTeacherVo.getName());
                 orderWorkerChangeRecordVo.setOperatingTeacherPhoneNumber(managementTeacherVo.getPhoneNumber());
@@ -420,7 +420,7 @@ public class OrderServiceImpl implements IOrderService {
     public String getManagerPhone(Long id, Long workerId) {
         OrderWorkerChangeRecordVo orderWorkerChangeRecordVo = orderWorkerChangeRecordService.queryByOrderAndWorker(id, workerId);
         if (ObjectUtil.isNotNull(orderWorkerChangeRecordVo)) {
-            ManagementTeacherVo managementTeacherVo = managementTeacherService.queryById(orderWorkerChangeRecordVo.getOperatingTeacherId());
+            ManagementTeacherVo managementTeacherVo = managementTeacherService.queryDelById(orderWorkerChangeRecordVo.getOperatingTeacherId());
             return ObjectUtil.isNotNull(managementTeacherVo) ? managementTeacherVo.getPhoneNumber() : null;
         }
         return null;
@@ -444,6 +444,7 @@ public class OrderServiceImpl implements IOrderService {
             throw new ServiceException(OrderExceptionEnum.Order_STATUS_IS_NOT_EVALUATED);
         }
         order.setStatus(OrderStatus.done);
+        order.setIsReviewed(true);
         //新增评价
         orderReviewsService.insertByBo(bo);
         return baseMapper.updateById(order) > 0;

+ 4 - 0
ruoyi-info/src/main/resources/mapper/management/ManagementTeacherMapper.xml

@@ -23,5 +23,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy" column="update_by"/>
     </resultMap>
 
+    <select id="queryDelById" resultType="com.ruoyi.info.management.domain.vo.ManagementTeacherVo">
+         select * from tb_management_teacher where id = #{id}
+    </select>
+
 
 </mapper>

+ 4 - 0
ruoyi-info/src/main/resources/mapper/order/OrderMapper.xml

@@ -33,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="cancellationMethod" column="cancellation_method"/>
         <result property="cancellationTime" column="cancellation_time"/>
         <result property="cancellationReason" column="cancellation_reason"/>
+        <result property="isReviewed" column="is_reviewed"/>
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
@@ -81,6 +82,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="bo.endTime != null">
                 and o.create_time <![CDATA[ <= ]]> #{bo.endTime}
             </if>
+            <if test="bo.isReviewed != null">
+                and o.is_reviewed = #{bo.isReviewed}
+            </if>
         </where>
         order by o.create_time desc
     </sql>

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

@@ -154,4 +154,5 @@ ALTER TABLE `tb_order`
     ADD COLUMN `pay_time` datetime NULL COMMENT '支付时间' AFTER `pay_method`,
     ADD COLUMN `pay_trade_no` varchar(100) NULL COMMENT '第三方支付交易号' AFTER `pay_time`,
     ADD COLUMN `worker_id` bigint NULL COMMENT '护工ID' AFTER `pay_trade_no`,
+    ADD COLUMN `is_reviewed` tinyint DEFAULT NULL COMMENT '是否评价过' AFTER `cancellation_reason`,
     ADD INDEX `inx_worker_id`(`worker_id`);