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 >= 4 + </when> + <when test="query.tagType == 4"> + AND toe.mark <= 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