ソースを参照

首页热门服务查询接口

lsd 3 ヶ月 前
コミット
2ee0ee3ddb

+ 10 - 0
leromro-core/src/main/java/com/leromro/core/controller/OrdersController.java

@@ -257,4 +257,14 @@ public class OrdersController extends BaseController {
         return R.ok();
     }
 
+    /**
+     * 获取热门服务
+     */
+    @ApiOperation("获取热门服务(前10)")
+    @GetMapping("/web/hotService")
+    public R<List<HotServiceVO>> getHotService(HotServiceDTO hotServiceDTO) {
+        List<HotServiceVO> list = secondOrderService.getHotService(hotServiceDTO);
+        return R.ok(list);
+    }
+
 }

+ 28 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/HotServiceDTO.java

@@ -0,0 +1,28 @@
+package com.leromro.core.domain.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 查询热门服务参数
+ */
+@Data
+public class HotServiceDTO {
+    @ApiModelProperty("统计开始时间 格式:yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    @ApiModelProperty("统计结束时间 格式:yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+}

+ 28 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/HotServiceVO.java

@@ -0,0 +1,28 @@
+package com.leromro.core.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 热门服务
+ */
+@Data
+public class HotServiceVO {
+    @ApiModelProperty(value = "业务id")
+    private Long businessManagementId;
+
+    @ApiModelProperty(value = "业务名称")
+    private String businessName;
+
+    @ApiModelProperty(value = "业务层级名称")
+    private String businessTierName;
+
+    @ApiModelProperty(value = "业务图标")
+    private String businessIcon;
+
+    @ApiModelProperty(value = "服务次数")
+    private Long totalCount;
+
+    @ApiModelProperty(value = "服务平均评分")
+    private Long score;
+}

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/mapper/SecondOrdersMapper.java

@@ -5,6 +5,7 @@ import com.leromro.common.core.domain.ListPermission;
 import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.AuthSettlementOrderListDTO;
+import com.leromro.core.domain.dto.HotServiceDTO;
 import com.leromro.core.domain.vo.*;
 import org.apache.ibatis.annotations.Param;
 
@@ -30,4 +31,6 @@ public interface SecondOrdersMapper extends BaseMapper<SecondOrder> {
     AppSecoundOrderInfoVO selectAppSecondOrderInfo(Long secondOrderId);
 
     WebSecondOrderInfoVO selectWebSecondOrderInfo(Long secondOrderId);
+
+    List<HotServiceVO> getHotService(HotServiceDTO hotServiceDTO);
 }

+ 7 - 0
leromro-core/src/main/java/com/leromro/core/service/ISecondOrderService.java

@@ -76,4 +76,11 @@ public interface ISecondOrderService extends IService<SecondOrder> {
     AppSecoundOrderInfoVO selectAppSecondOrderInfo(Long secondOrderId);
 
     WebSecondOrderInfoVO selectWebAppSecondOrderInfo(Long secondOrderId);
+
+    /**
+     * 获取热门服务
+     * @param hotServiceDTO
+     * @return
+     */
+    List<HotServiceVO> getHotService(HotServiceDTO hotServiceDTO);
 }

+ 6 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -314,6 +314,12 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         return webSecondOrderInfo;
     }
 
+    @Override
+    public List<HotServiceVO> getHotService(HotServiceDTO hotServiceDTO) {
+        List<HotServiceVO> list = secondOrdersMapper.getHotService(hotServiceDTO);
+        return list;
+    }
+
     @Override
     public SettlementOrderDetailVO getSettlementOrderDetail(Long secondOrderId) {
         return secondOrdersMapper.getSettlementOrderDetail(secondOrderId);

+ 38 - 0
leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml

@@ -549,4 +549,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     </select>
 
+    <select id="getHotService" resultType="com.leromro.core.domain.vo.HotServiceVO">
+        select
+            lmo.business_management_id as businessManagementId,
+            lbm.business_name as businessName,
+            lbm.business_tier_name as businessTierName,
+            lbm.business_icon as businessIcon,
+            count(*) as totalCount,
+            avg(lso.score) as score
+        from l_second_order lso
+        left join l_main_orders lmo
+        on lso.main_order_id = lmo.main_order_id
+        left join l_business_management lbm
+        on lmo.business_management_id = lbm.business_management_id
+        <where>
+            lso.service_end_time is not null
+            <if test="startTime != null">
+                and lso.service_end_time >= #{startTime}
+            </if>
+            <if test="endTime != null">
+               <![CDATA[
+                and lso.service_end_time <= #{endTime}
+               ]]>
+            </if>
+            <if test="provinceCode != null and provinceCode != ''">
+                and lso.province_code = #{provinceCode}
+            </if>
+            <if test="cityCode != null and cityCode != ''">
+                and lso.city_code = #{cityCode}
+            </if>
+            <if test="districtCode != null and districtCode != ''">
+                and lso.district_code = #{districtCode}
+            </if>
+        </where>
+        group by lmo.business_management_id
+        order by totalCount desc,score desc,businessName desc
+        limit 10
+    </select>
+
 </mapper>