From 30a42231ba1df62a1609586ed35ea69249e03692 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 10 八月 2024 17:33:26 +0800
Subject: [PATCH] 电站评价列表

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java          |   12 ++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java          |   26 ++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java |   33 ++++++++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java                |   18 ++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java            |   10 ++
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java               |    4 +
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                  |    3 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml                  |   57 ++++++++++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java    |   18 +++-
 10 files changed, 175 insertions(+), 8 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
index a48b136..3f36bcb 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/model/TChargingOrder.java
@@ -52,6 +52,10 @@
     @TableField("app_user_car_id")
     private Integer appUserCarId;
 
+    @ApiModelProperty(value = "站点 id")
+    @TableField("site_id")
+    private Integer siteId;
+
     @ApiModelProperty(value = "停车场id")
     @TableField("parking_lot_id")
     private Integer parkingLotId;
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java
new file mode 100644
index 0000000..baa8356
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/query/TOrderEvaluateQuery.java
@@ -0,0 +1,26 @@
+package com.ruoyi.order.api.query;
+
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel(value = "TOrderEvaluateQuery对象",description = "订单评价查询条件")
+public class TOrderEvaluateQuery extends BasePage {
+
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    @ApiModelProperty(value = "订单id集合 前端忽略")
+    private List<Long> orderIds;
+
+    @ApiModelProperty(value = "标签类型 1=最新 2=有图 3=好评 4=中差评 5=其他")
+    private Integer tagType;
+
+    @ApiModelProperty(value = "标签id 标签类型为5时传输此字段")
+    private Integer tagId;
+
+}
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java
new file mode 100644
index 0000000..f69bb8b
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/TOrderEvaluateVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.order.api.vo;
+
+import com.ruoyi.order.api.model.TOrderEvaluate;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "TOrderEvaluateVO对象",description = "订单评价")
+public class TOrderEvaluateVO extends TOrderEvaluate {
+
+    @ApiModelProperty(value = "用户")
+    private String name;
+
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+
+}
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
index bc833b8..ec89086 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TOrderEvaluateController.java
@@ -3,6 +3,9 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.order.service.TOrderEvaluateService;
 import com.ruoyi.other.api.feignClient.TEvaluationTagClient;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
@@ -10,6 +13,7 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -32,10 +36,16 @@
     private TOrderEvaluateService orderEvaluateService;
 
 
-    @ApiOperation(tags = {"小程序-充电订单"},value = "充电订单评价标签及数量查询")
-    @PostMapping(value = "/list")
-    public AjaxResult<List<TEvaluationTagVO>> list() {
-        return AjaxResult.ok(orderEvaluateService.getTagList());
+    @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价标签及数量查询")
+    @PostMapping(value = "/getTagCount")
+    public AjaxResult<List<TEvaluationTagVO>> getTagCount() {
+        return AjaxResult.ok(orderEvaluateService.getTagCount());
+    }
+
+    @ApiOperation(tags = {"小程序-订单评价"},value = "充电订单评价分页列表查询")
+    @PostMapping(value = "/pageList")
+    public AjaxResult<PageInfo<TOrderEvaluateVO>> pageList(@RequestBody TOrderEvaluateQuery query) {
+        return AjaxResult.ok(orderEvaluateService.getTagList(query));
     }
 
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java
index 6a7b0ad..b2566d5 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TOrderEvaluateMapper.java
@@ -1,7 +1,10 @@
 package com.ruoyi.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -20,4 +23,11 @@
 @Mapper
 public interface TOrderEvaluateMapper extends BaseMapper<TOrderEvaluate> {
 
+    /**
+     * 订单评价分页列表查询
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<TOrderEvaluateVO> pageList(@Param("query") TOrderEvaluateQuery query,@Param("pageInfo")PageInfo<TOrderEvaluateVO> pageInfo);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java
index 4a3133f..cd76d7d 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TOrderEvaluateService.java
@@ -1,7 +1,10 @@
 package com.ruoyi.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
 
 import java.util.List;
@@ -20,5 +23,12 @@
      * 获取评价标签
      * @return
      */
-    List<TEvaluationTagVO> getTagList();
+    List<TEvaluationTagVO> getTagCount();
+
+    /**
+     * 充电订单评价分页列表查询
+     * @param query
+     * @return
+     */
+    PageInfo<TOrderEvaluateVO> getTagList(TOrderEvaluateQuery query);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
index 94f423b..b1b5ca5 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderEvaluateServiceImpl.java
@@ -2,8 +2,14 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.vo.TAccountingStrategyVO;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.order.api.model.TChargingOrder;
 import com.ruoyi.order.api.model.TOrderEvaluate;
+import com.ruoyi.order.api.query.TOrderEvaluateQuery;
+import com.ruoyi.order.api.vo.TOrderEvaluateVO;
+import com.ruoyi.order.mapper.TChargingOrderMapper;
 import com.ruoyi.order.mapper.TOrderEvaluateMapper;
 import com.ruoyi.order.mapper.TOrderEvaluateTagMapper;
 import com.ruoyi.order.service.TOrderEvaluateService;
@@ -11,6 +17,7 @@
 import com.ruoyi.other.api.vo.TEvaluationTagVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.Comparator;
 import java.util.List;
@@ -32,8 +39,10 @@
     private TEvaluationTagClient evaluationTagClient;
     @Autowired
     private TOrderEvaluateTagMapper orderEvaluateTagMapper;
+    @Autowired
+    private TChargingOrderMapper chargingOrderMapper;
     @Override
-    public List<TEvaluationTagVO> getTagList() {
+    public List<TEvaluationTagVO> getTagCount() {
         // 查询标签列表
         R<List<TEvaluationTagVO>> r = evaluationTagClient.getTagList();
         List<TEvaluationTagVO> tagList = r.getData();
@@ -61,6 +70,28 @@
         return tagList;
     }
 
+    @Override
+    public PageInfo<TOrderEvaluateVO> getTagList(TOrderEvaluateQuery query) {
+        PageInfo<TOrderEvaluateVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+        // 查询站点下的所有订单
+        List<TChargingOrder> tChargingOrders = chargingOrderMapper.selectList(Wrappers.lambdaQuery(TChargingOrder.class)
+                .eq(TChargingOrder::getSiteId, query.getSiteId()));
+        if(CollectionUtils.isEmpty(tChargingOrders)){
+            return new PageInfo<>();
+        }
+        List<Long> orderIds = tChargingOrders.stream().map(TChargingOrder::getId).collect(Collectors.toList());
+        query.setOrderIds(orderIds);
+        List<TOrderEvaluateVO> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    /**
+     * 统计有图,好评,中差评数量
+     * @param count
+     * @param name
+     * @param tagList
+     */
     private void packageTagCount(Long count,String name,List<TEvaluationTagVO> tagList){
         if(count>0){
             TEvaluationTagVO evaluationTagVO = new TEvaluationTagVO();
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 5d95538..210207a 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -10,6 +10,7 @@
         <result column="order_classification" property="orderClassification" />
         <result column="app_user_id" property="appUserId" />
         <result column="app_user_car_id" property="appUserCarId" />
+        <result column="site_id" property="siteId" />
         <result column="parking_lot_id" property="parkingLotId" />
         <result column="charging_pile_id" property="chargingPileId" />
         <result column="charging_gun_id" property="chargingGunId" />
@@ -37,7 +38,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, code, order_type, order_classification, app_user_id, app_user_car_id, parking_lot_id, charging_pile_id, charging_gun_id, start_time, end_time, status, recharge_amount, recharge_payment_type, recharge_payment_status, recharge_serial_number, order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, refund_code, refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag
+        id, code, order_type, order_classification, app_user_id, app_user_car_id,site_id, parking_lot_id, charging_pile_id, charging_gun_id, start_time, end_time, status, recharge_amount, recharge_payment_type, recharge_payment_status, recharge_serial_number, order_amount, app_coupon_id, coupon_discount_amount, vip_discount, vip_discount_amount, payment_amount, refund_code, refund_amount, refund_status, refund_serial_number, refund_time, create_time, del_flag
     </sql>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
index 8b88832..66e30e6 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TOrderEvaluateMapper.xml
@@ -21,5 +21,62 @@
     <sql id="Base_Column_List">
         id, order_type, order_id, app_user_id, mark, content, img_url, evaluation_response, create_time, response_time, del_flag
     </sql>
+    <select id="pageList" resultType="com.ruoyi.order.api.vo.TOrderEvaluateVO">
+        select id, order_type, order_id, app_user_id, mark, content, img_url, evaluation_response,
+               create_time, response_time, del_flag
+        from t_order_evaluate where id in
+        (select toe.id
+        from t_order_evaluate toe
+        left join t_order_evaluate_tag toet on toe.id = toet.order_evaluate_id
+        <where>
+            <if test="query.orderIds != null and query.orderIds.size()>0">
+                and toe.order_id in
+                <foreach collection="query.orderIds" item="orderId" open="(" separator="," close=")">
+                    #{orderId}
+                </foreach>
+            </if>
+            <if test="query.tagType != null">
+                <choose>
+                    <when test="query.tagType == 2">
+                        AND toe.img_url IS NOT NULL
+                    </when>
+                    <when test="query.tagType == 3">
+                        AND toe.mark &gt;= 4
+                    </when>
+                    <when test="query.tagType == 4">
+                        AND toe.mark &lt;= 3
+                    </when>
+                    <when test="query.tagType == 5">
+                        AND toet.evaluation_tag_id = #{query.tagId}
+                    </when>
+                </choose>
+            </if>
+            AND toe.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
+        </where>
+        GROUP BY toe.id)
+        <if test="query.tagType != null">
+            <choose>
+                <when test="query.tagType == 1">
+                    ORDER BY create_time DESC
+                </when>
+                <otherwise>
+                    ORDER BY
+                    CASE
+                    WHEN img_url IS NOT NULL THEN 0
+                    ELSE 1
+                    END ASC,
+                    create_time DESC;
+                </otherwise>
+            </choose>
+        </if>
+        <if test="query.tagType == null">
+            ORDER BY
+            CASE
+            WHEN img_url IS NOT NULL THEN 0
+            ELSE 1
+            END ASC,
+            create_time DESC;
+        </if>
+    </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java
index 05209c1..6b03b9b 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TEvaluationTagServiceImpl.java
@@ -21,7 +21,7 @@
 public class TEvaluationTagServiceImpl extends ServiceImpl<TEvaluationTagMapper, TEvaluationTag> implements TEvaluationTagService {
 
     @Override
-    public List<TEvaluationTagVO> getTagList() {
+    public List<TEvaluationTagVO> getTagCount() {
         return this.baseMapper.getTagList();
     }
 }

--
Gitblit v1.7.1