xuhy
2024-08-22 da2075787fcaba17855b62cc4f4fd831985b1167
地图导航
5个文件已修改
103 ■■■■■ 已修改文件
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -125,6 +125,12 @@
    public AjaxResult<PageInfo<SiteVO>> pageList(@Validated @RequestBody SiteQuery query){
        return AjaxResult.success(siteService.pageList(query));
    }
    @ApiOperation(value = "获取站点列表", tags = {"小程序-站点管理-地图导航站点"})
    @PostMapping("/getMapSiteList")
    public AjaxResult<List<SiteVO>> getMapSiteList(@Validated @RequestBody SiteQuery query){
        return AjaxResult.success(siteService.getMapSiteList(query));
    }
    @ApiOperation(value = "获取站点详细信息", tags = {"小程序-站点管理-站点详情"})
    @PostMapping("/getDetailById")
    public AjaxResult<SiteDetailVO> getDetailById(@Validated @RequestBody SiteDetailQuery query){
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
@@ -53,4 +53,11 @@
     * @return
     */
    List<Site> getSiteListGun(@Param("ids")Set<Integer> ids);
    /**
     * 获取站点列表不分页
     * @param query
     * @return
     */
    List<SiteVO> getMapSiteList(@Param("query")SiteQuery query);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -89,4 +89,10 @@
     */
    List<Site> getSiteListGun();
    /**
     * 获取站点列表
     * @param query
     * @return
     */
    List<SiteVO> getMapSiteList(SiteQuery query);
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -293,6 +293,25 @@
        return this.baseMapper.getSiteListGun(ids);
    }
    @Override
    public List<SiteVO> getMapSiteList(SiteQuery query) {
        // 获取当前登录用户id
        Long userId = tokenService.getLoginUserApplet().getUserId();
        // 根据id查询用户信息
        TAppUser appUser = appUserClient.getUserById(userId).getData();
        List<SiteVO> list = this.baseMapper.getMapSiteList(query);
        if(Objects.nonNull(appUser) && Objects.nonNull(appUser.getVipId())){
            // 查询会员信息
            TVip vip = vipClient.getInfo1(appUser.getVipId()).getData();
            if(Objects.nonNull(vip) && vip.getType() == 2){
                list.forEach(item -> {
                    item.setVipElectrovalence(vip.getDiscount().multiply(item.getElectrovalence()));
                });
            }
        }
        return list;
    }
    /**
     * 设置站点计费策略
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -207,4 +207,69 @@
            AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
        </where>
    </select>
    <select id="getMapSiteList" resultType="com.ruoyi.chargingPile.api.vo.SiteVO">
        select
        ts.id, ts.partner_id, ts.code, ts.`name`, ts.site_type, ts.business_category, ts.status, ts.construction_site, ts.img_url,
        ts.lon, ts.lat, ts.address, ts.country_code, ts.phone,ts.guide, ts.service_description, ts.vehicle_description,
        ts.parking_space, ts.rate_description, ts.space_charge_explain, ts.accounting_strategy_id,ts.del_flag,tcg.fastCount,
        tcg.slowCount,tcg.superCount,tasd.electrovalence,tasd.vipElectrovalence,
        ROUND(
        6378.138 * 2 * ASIN(
        SQRT(
        POW(
        SIN(
        (
        #{query.lat} * PI() / 180 - ts.lat * PI() / 180
        ) / 2
        ),
        2
        ) + COS(#{query.lat} * PI() / 180) * COS(ts.lat * PI() / 180) * POW(
        SIN(
        (
        #{query.lon} * PI() / 180 - ts.lon * PI() / 180
        ) / 2
        ),
        2
        )
        )
        ) * 1000
        ) AS distance
        from t_site ts
        left join (
        select site_id,
        SUM(CASE WHEN charge_mode = 1 THEN 1 ELSE 0 END) AS superCount,
        SUM(CASE WHEN charge_mode = 2 THEN 1 ELSE 0 END) AS fastCount,
        SUM(CASE WHEN charge_mode = 3 THEN 1 ELSE 0 END) AS slowCount
        from
        t_charging_gun
        where
        del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
        group by
        site_id) tcg on (ts.id = tcg.site_id)
        left join (
        select
        a.accounting_strategy_id,
        (a.electrovalence+a.service_charge) AS electrovalence,
        ((a.electrovalence+a.service_charge)*b.discount) AS vipElectrovalence
        from
        t_accounting_strategy_detail a
        left join
        t_accounting_strategy b on (a.accounting_strategy_id = b.id)
        where b.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
        AND DATE_FORMAT(NOW(), '%H:%i:%s') between a.start_time and a.end_time) tasd on (ts.accounting_strategy_id = tasd.accounting_strategy_id)
        <where>
            <if test="null != query.name and '' != query.name">
                and ts.`name` like CONCAT('%', #{query.name}, '%')
            </if>
            AND ts.del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}
            AND ts.status = ${@com.ruoyi.common.core.enums.status.SiteStatusEnum@NORMAL_USE.getCode()}
        </where>
        <if test="query.sortType != null">
            <choose>
                <when test="query.sortType == 1">
                    ORDER BY distance ASC
                </when>
            </choose>
        </if>
    </select>
</mapper>