Springboot后端接口-开发日记-主页面

开发日记-主页面

2021/02/20

天气接口

先查询数据然后存放在天气表中
字段需要包括:天气情况和气温
两个可供选择的参数:type&forecast
type代表的是白天或者是晚上天气,forecast代表着预测的第几天

com.zzzxlz.pojo.Weather

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel("天气实体")
public class Weather {

    @ApiModelProperty(value = "白天天气")
    private String dayWeather;

    @ApiModelProperty(value = "夜晚天气")
    private String nightWeather;

    @ApiModelProperty(value = "白天气温")
    private int dayTemp;

    @ApiModelProperty(value = "夜晚气温")
    private int nightTemp;

    @ApiModelProperty(value = "日期")
    private String date;
}

com.zzzxlz.mapper.WeatherMapper

@Mapper
@Repository
public interface WeatherMapper {
    HashMap queryWeatherByDayTime(int forecast);
    HashMap queryWeatherByNightTime(int forecast);
}

mybatis.mapper.WeatherMapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzzxlz.mapper.WeatherMapper">

    <select id="queryWeatherByDayTime" resultType="java.util.HashMap">
        select dayWeather,dayTemp from weather where forecast = #{forecast}
    </select>

    <select id="queryWeatherByNightTime" resultType="java.util.HashMap">
        select nightWeather,nightTemp from weather where forecast = #{forecast}
    </select>
</mapper>

com.zzzxlz.service.WeatherService

@Service
public class WeatherService {

    @Autowired
    WeatherMapper weatherMapper;

    //返回天气情况
    public HashMap getWeather(String type, int forecast){
        if (type.equals("day")){
            //查询白天的天气以及气温
            return weatherMapper.queryWeatherByDayTime(forecast);
        }
        if(type.equals("night")){
            //查询夜晚的天气以及气温
            return weatherMapper.queryWeatherByNightTime(forecast);
        }
        //没有进入if循环的话就默认为白天天气
        return weatherMapper.queryWeatherByDayTime(forecast);
    }

}

com.zzzxlz.controller.WeatherController

@RestController
@Api(tags = "天气功能相关接口")
@RequestMapping("/api")
public class WeatherController {

    @Autowired
    WeatherService weatherService;

    @GetMapping("/weather")
    @ApiOperation("get请求调用天气接口")
    public Result getWeatherInfo(@RequestParam(value = "type", required = false, defaultValue = "day") String type,
                                 @RequestParam(value = "forecast", required = false, defaultValue = "0") int forecast){
        HashMap weather = weatherService.getWeather(type, forecast);
        return ResultFactory.buildSuccessResult(weather);
    }
}

收集数据

第一步先划定范围,用于最后展示的地图范围,有这个范围之后再去收集对应的路况数据以及路径规划数据
在这里插入图片描述
第二步,通过高德地图坐标拾取器获取每个街道的交叉路况坐标,并且结合百度api路况信息收集路况数据,这个将用于绘制路况地图
在这里插入图片描述
第三步,同样的,收集路径规划所需的坐标以及相应的数据,需要四个表来存放对应的四种出行方式:
先收集步行方式
在这里插入图片描述

街道路况排行接口

com\zzzxlz\pojo\Street.java

 @Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel("街道实体")
public class Street {

    @ApiModelProperty(value = "街道名称")
    private String road;

    @ApiModelProperty(value = "街道起点")
    private String begin;

    @ApiModelProperty(value = "街道终点")
    private String end;

    @ApiModelProperty(value = "街道路况")
    private int status;

    @ApiModelProperty(value = "街道拥挤指数")
    private int congestion;

    @ApiModelProperty(value = "街道拥挤排名")
    private int streetRank;
}

com\zzzxlz\mapper\StreetMapper.java

@Mapper
@Repository
public interface StreetMapper {

    HashMap queryStreetByRank(int rank);
}

mybatis\mapper\StreetMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzzxlz.mapper.StreetMapper">

    <select id="queryStreetByRank" resultType="java.util.HashMap">
          select road,congestion,streetRank from street where streetRank = #{rank}
    </select>
</mapper>

com\zzzxlz\service\StreetService.java

@Service
public class StreetService {
    @Autowired
    StreetMapper streetMapper;

    //返回街道的拥挤排名
    public List getStreetRank(){
        LinkedList list = new LinkedList();
        for (int i = 1; i < 9; i++) {
            list.add(streetMapper.queryStreetByRank(i));
        }
        return list;
    }
}

com\zzzxlz\controller\StreetController.java

@RestController
@Api(tags = "路况排名功能接口")
@RequestMapping("/api")
public class StreetController {

    @Autowired
    StreetService streetService;

    @GetMapping("/street/rank")
    @ApiOperation("get请求调用街道路况数据")
    public Result getStreetRankInfo(){
        List rankList = streetService.getStreetRank();
        return ResultFactory.buildSuccessResult(rankList);
    }
}

2021/02/21

绘制路线地图接口

com\zzzxlz\mapper\StreetMapper.java

@Mapper
@Repository
public interface StreetMapper {

    //查询道路拥挤排名
    HashMap queryStreetByRank(int rank);

    //查询道路路况信息
    List<Street> queryStreetStatus();
}

mybatis\mapper\StreetMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzzxlz.mapper.StreetMapper">


    <select id="queryStreetByRank" resultType="java.util.HashMap">
          select road,congestion,streetRank from street where streetRank = #{rank}
    </select>

    <select id="queryStreetStatus" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street
    </select>
</mapper>

com\zzzxlz\service\StreetService.java

@Service
public class StreetService {
    @Autowired
    StreetMapper streetMapper;

    //返回街道的拥挤排名
    public List getStreetRank(){
        LinkedList list = new LinkedList();
        for (int i = 1; i < 9; i++) {
            list.add(streetMapper.queryStreetByRank(i));
        }
        return list;
    }

    //返回街道的路况信息
    public List getStreetStatus(){
        return streetMapper.queryStreetStatus();

    }
}

com\zzzxlz\controller\StreetController.java

@RestController
@Api(tags = "街道功能接口")
@RequestMapping("/api/street")
public class StreetController {

    @Autowired
    StreetService streetService;

    @GetMapping("/rank")
    @ApiOperation("get请求调用街道排名数据")
    public Result getStreetRankInfo(){
        List rankList = streetService.getStreetRank();
        return ResultFactory.buildSuccessResult(rankList);
    }

    @GetMapping("/status")
    @ApiOperation("get请求获取街道路况数据")
    public Result getStreetStatusInfo(){
        return ResultFactory.buildSuccessResult(streetService.getStreetStatus());
    }
}

收集2021/02/21当天几个时间点的数据

路况数据收集于 2021/02/21 周日
再设计一张表用于收集八个时间点的路况信息,要对街道数据表进行编号,给每个街道编号之后通过编号作为主键,然后联表查询.
由于24点,3点,6点的数据相同于是归并到同一张表中
然后分别收集9点,12点,15点,18点,21点的路况数据
在这里插入图片描述

完善路况信息接口(通过不同时间点可以返回不同时间点的路况)

通过收集到的02/21当天数据,现在可以返回几个时间点的路况信息,从而可以对这种路况信息进行绘图
com\zzzxlz\pojo\Street.java

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel("街道路况实体,用于绘制地图")
public class Street {

    @ApiModelProperty(value = "街道起点")
    private String begin;

    @ApiModelProperty(value = "街道终点")
    private String end;

    @ApiModelProperty(value = "街道路况")
    private int status;

}

com\zzzxlz\mapper\StreetMapper.java

@Mapper
@Repository
public interface StreetMapper {

    //查询道路拥挤排名
    HashMap queryStreetByRank(int rank);

    //24点,3点,5点时候的道路路况信息
    List<Street> queryStreetStatus_common();

    //9点时候的道路路况信息
    List<Street> queryStreetStatus_9();

    //12点时候的道路路况信息
    List<Street> queryStreetStatus_12();

    //15点时候的道路路况信息
    List<Street> queryStreetStatus_15();

    //18点时候的道路路况信息
    List<Street> queryStreetStatus_18();

    //21点时候的道路路况信息
    List<Street> queryStreetStatus_21();
}

mybatis\mapper\StreetMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzzxlz.mapper.StreetMapper">


    <select id="queryStreetByRank" resultType="java.util.HashMap">
          select road,congestion,streetRank from street where streetRank = #{rank}
    </select>

    <select id="queryStreetStatus_common" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street, street_status_common as status
        where street.streetID = status.streetID
    </select>

    <select id="queryStreetStatus_9" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street, street_status_9 as status
        where street.streetID = status.streetID
    </select>

    <select id="queryStreetStatus_12" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street, street_status_12 as status
        where street.streetID = status.streetID
    </select>

    <select id="queryStreetStatus_15" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street, street_status_15 as status
        where street.streetID = status.streetID
    </select>

    <select id="queryStreetStatus_18" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street, street_status_18 as status
        where street.streetID = status.streetID
    </select>

    <select id="queryStreetStatus_21" resultType="com.zzzxlz.pojo.Street">
        select begin,end,status from street, street_status_21 as status
        where street.streetID = status.streetID
    </select>
</mapper>

com\zzzxlz\service\StreetService.java

@Service
public class StreetService {
    @Autowired
    StreetMapper streetMapper;

    //返回街道的拥挤排名
    public List getStreetRank(){
        LinkedList list = new LinkedList();
        for (int i = 1; i < 9; i++) {
            list.add(streetMapper.queryStreetByRank(i));
        }
        return list;
    }

    //返回路况信息
    public List getStreetStatusInfo(int time){
        List statusList = new LinkedList();
        switch (time){
            case 3:
            case 6:
            case 24:
                statusList = streetMapper.queryStreetStatus_common(); //返回24点,3点,6点时候的街道的路况信息
                break;
            case 9:
                statusList = streetMapper.queryStreetStatus_9();
                break;
            case 12:
                statusList = streetMapper.queryStreetStatus_12();
                break;
            case 15:
                statusList = streetMapper.queryStreetStatus_15();
                break;
            case 18:
                statusList = streetMapper.queryStreetStatus_18();
                break;
            case 21:
                statusList = streetMapper.queryStreetStatus_21();
                break;
        }
        return statusList;
    }

}

com\zzzxlz\controller\StreetController.java

@RestController
@Api(tags = "街道功能接口")
@RequestMapping("/api/street")
public class StreetController {

    @Autowired
    StreetService streetService;

    @GetMapping("/rank")
    @ApiOperation("get请求调用街道排名数据")
    public Result getStreetRankInfo(){
        List rankList = streetService.getStreetRank();
        return ResultFactory.buildSuccessResult(rankList);
    }

    @GetMapping("/status")
    @ApiOperation("get请求获取街道路况数据")
    public Result getStreetStatusInfo(@RequestParam(value = "time", required = false, defaultValue = "15") int time){
        switch (time){
            case 3:
            case 6:
            case 9:
            case 12:
            case 15:
            case 18:
            case 21:
            case 24:
                List statusList = streetService.getStreetStatusInfo(time);
                return ResultFactory.buildSuccessResult(statusList);
        }
        return ResultFactory.buildFailResult("输入的时间点不符合要求");
    }
}

改进天气接口

前端通过get请求传递时间戳给我,我将时间戳进行判断然后返回参数给前端,返回的参数为weather,temp,这里用到了mybatis中的xml文件sql语句中的别名自动绑定,通过时间戳判断查询的是当天天气还是未来三天的天气.
com\zzzxlz\pojo\Weather.java

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel("天气实体")
public class Weather {
    @ApiModelProperty(value = "白天天气")
    private String weather;

    @ApiModelProperty(value = "白天气温")
    private int temp;
}

com\zzzxlz\mapper\WeatherMapper.java

@Mapper
@Repository
public interface WeatherMapper {
    Weather queryWeatherByDayTime(int forecast);
    Weather queryWeatherByNightTime(int forecast);
}

mybatis\mapper\WeatherMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzzxlz.mapper.WeatherMapper">

    <select id="queryWeatherByDayTime" resultType="com.zzzxlz.pojo.Weather">
        select dayWeather as weather, dayTemp as temp from weather where forecast = #{forecast}
    </select>
    
    <select id="queryWeatherByNightTime" resultType="com.zzzxlz.pojo.Weather">
        select nightWeather as weather, nightTemp as temp from weather where forecast = #{forecast}
    </select>
</mapper>

com\zzzxlz\service\WeatherService.java

@Service
public class WeatherService {

    @Autowired
    WeatherMapper weatherMapper;

    //返回天气情况
    public Weather getWeather(long date){
        String type = Myutils.dayOrNight(date);
        int forecast = Myutils.getForecast(date);
        if (type.equals("day")){
            //查询白天的天气以及气温
            return weatherMapper.queryWeatherByDayTime(forecast);
        }
        if(type.equals("night")){
            //查询夜晚的天气以及气温
            return weatherMapper.queryWeatherByNightTime(forecast);
        }
        //没有进入if循环的话就默认为白天天气
        return weatherMapper.queryWeatherByDayTime(forecast);
    }

}

com\zzzxlz\controller\WeatherController.java

@RestController
@Api(tags = "天气功能接口")
@RequestMapping("/api")
public class WeatherController {

    @Autowired
    WeatherService weatherService;

    @GetMapping("/weather")
    @ApiOperation("get请求调用天气接口")
    public Result getWeatherInfo(@RequestParam(value = "date", required = false, defaultValue = "1613890800") long date){
        Weather weather = weatherService.getWeather(date);
        return ResultFactory.buildSuccessResult(weather);
    }


}

com\zzzxlz\utils\Myutils.java

/**
 * 判断输入的date数据是白天还是晚上
 * @param date
 * @return "night","day"
 */
public static String dayOrNight(long date){
    Date date1 = new Date(date * 1000);
    SimpleDateFormat df = new SimpleDateFormat("HH");
    String str = df.format(date1);
    int a = Integer.parseInt(str);
    if (a > 6 && a <18){
        return "day";
    }
    if (a >= 18 && a <= 24 || a >= 0 && a <= 6){
        return "night";
    }
    return "day";
}
/**
 * 判断输入的date时间戳是今天明天后天还是大后天
 * @param date
 * @return 0-今天,1-明天,2-后天,3-大后天
 */
public static int getForecast(long date){
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, 0);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    Date zero_date = calendar.getTime();
    long zero = zero_date.getTime() / 1000;
    int forecast = (int) ((date - zero)/ (60 * 60 * 24));
    if(forecast < 0 || forecast > 3){
        forecast = 0;
    }
    return forecast;
}

完善路况排行接口(通过选择时间点从而返回不同时间点的路况排名信息)

这个和路况信息接口类似,只需要定义方法之后进行判断就好了
就直接粘贴上代码
com\zzzxlz\mapper\StreetMapper.java

@Mapper
@Repository
public interface StreetMapper {

    //24点,3点,5点时候的道路拥挤排名信息
    List<HashMap> queryStreetRank_common();

    //9点时候的道路路况信息
    List<HashMap> queryStreetRank_9();

    //12点时候的道路路况信息
    List<HashMap> queryStreetRank_12();

    //15点时候的道路路况信息
    List<HashMap> queryStreetRank_15();

    //18点时候的道路路况信息
    List<HashMap> queryStreetRank_18();

    //21点时候的道路路况信息
    List<HashMap> queryStreetRank_21();

    
}

mybatis\mapper\StreetMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzzxlz.mapper.StreetMapper">

    <!--Rank-->
    <select id="queryStreetRank_common" resultType="java.util.HashMap">
        select road,congestion,streetRank from street, street_status_common as status
        where street.streetID = status.streetID and streetRank &lt;= 8
    </select>

    <select id="queryStreetRank_9" resultType="java.util.HashMap">
        select road,congestion,streetRank from street, street_status_9 as status
        where street.streetID = status.streetID and streetRank &lt;= 8
    </select>

    <select id="queryStreetRank_12" resultType="java.util.HashMap">
        select road,congestion,streetRank from street, street_status_12 as status
        where street.streetID = status.streetID and streetRank &lt;= 8
    </select>

    <select id="queryStreetRank_15" resultType="java.util.HashMap">
        select road,congestion,streetRank from street, street_status_15 as status
        where street.streetID = status.streetID and streetRank &lt;= 8
    </select>

    <select id="queryStreetRank_18" resultType="java.util.HashMap">
        select road,congestion,streetRank from street, street_status_18 as status
        where street.streetID = status.streetID and streetRank &lt;= 8
    </select>

    <select id="queryStreetRank_21" resultType="java.util.HashMap">
        select road,congestion,streetRank from street, street_status_21 as status
        where street.streetID = status.streetID and streetRank &lt;= 8
    </select>
</mapper>

com\zzzxlz\service\StreetService.java

@Service
public class StreetService {
    @Autowired
    StreetMapper streetMapper;

    //返回街道的拥挤排名
    public List getStreetRank(int time){
        List rankList = new LinkedList();
        switch (time){
            case 3:
            case 6:
            case 24:
                rankList = streetMapper.queryStreetRank_common(); 
                //返回24点,3点,6点时候的街道的拥挤排行信息
                break;
            case 9:
                rankList = streetMapper.queryStreetRank_9();
                break;
            case 12:
                rankList = streetMapper.queryStreetRank_12();
                break;
            case 15:
                rankList = streetMapper.queryStreetRank_15();
                break;
            case 18:
                rankList = streetMapper.queryStreetRank_18();
                break;
            case 21:
                rankList = streetMapper.queryStreetRank_21();
                break;
        }
        return rankList;
    }
}

com\zzzxlz\controller\StreetController.java

@RestController
@Api(tags = "街道功能接口")
@RequestMapping("/api/street")
public class StreetController {

    @Autowired
    StreetService streetService;

    @GetMapping("/rank")
    @ApiOperation("get请求调用街道排名数据")
    public Result getStreetRankInfo(@RequestParam(value = "time", required = false, defaultValue = "15") int time){
        if (checkTime(time)){
            List statusList = streetService.getStreetRank(time);
            return ResultFactory.buildSuccessResult(statusList);
        }else{
            return ResultFactory.buildFailResult("输入的时间点不符合要求");
        }
    }

    @GetMapping("/status")
    @ApiOperation("get请求获取街道路况数据")
    public Result getStreetStatusInfo(@RequestParam(value = "time", required = false, defaultValue = "15") int time){
        if (checkTime(time)){
            List statusList = streetService.getStreetStatusInfo(time);
            return ResultFactory.buildSuccessResult(statusList);
        }else{
            return ResultFactory.buildFailResult("输入的时间点不符合要求");
        }

    }

    //判断时间点是不是在所要求的节点
    private boolean checkTime(int time){
        switch (time){
            case 3:
            case 6:
            case 9:
            case 12:
            case 15:
            case 18:
            case 21:
            case 24:
                return true;
        }
        return false;
    }
}

2021/02/22

关键路段几个时间段的congestion数据显示接口(用于生成折线图)

mybatis用来写sql的时候需要用到的一些特殊判断

  • 第一种写法:
原符号       <        <=      >       >=       &        '        "
替换符号    &lt;    &lt;=   &gt;    &gt;=   &amp;   &apos;  &quot;
例如:sql如下:
create_date_time &gt;= #{startTime} and 
 create_date_time &lt;= #{endTime}
  • 第二种写法:
大于等于
<![CDATA[ >= ]]>
小于等于
<![CDATA[ <= ]]>
例如:sql如下:
create_date_time <![CDATA[ >= ]]> #{startTime} and 
 create_date_time <![CDATA[ <= ]]> #{endTime}

com\zzzxlz\pojo\Congestion.java

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@ApiModel("街道拥挤指数实体,用于绘制折线图")
public class Congestion {
    @ApiModelProperty(value = "街道名称")
    private String road;

    @ApiModelProperty(value = "3点")
    private String clock_3;

    @ApiModelProperty(value = "6点")
    private String clock_6;

    @ApiModelProperty(value = "9点")
    private String clock_9;

    @ApiModelProperty(value = "12点")
    private String clock_12;

    @ApiModelProperty(value = "15点")
    private String clock_15;

    @ApiModelProperty(value = "18点")
    private String clock_18;

    @ApiModelProperty(value = "21点")
    private String clock_21;

    @ApiModelProperty(value = "24点")
    private String clock_24;


}

com\zzzxlz\mapper\StreetMapper.java

@Mapper
@Repository
public interface StreetMapper {

    //返回几条关键的街道名称
    List<String> queryKeyStreetName();
    
    //返回该路段一天各个时间点的congestion指数
    Congestion queryStreetCongestion(String road);
}

mybatis\mapper\StreetMapper.xml

<select id="queryKeyStreetName" resultType="string">
    select road from street where streetID &gt;= 3 and streetID &lt;=7
</select>
<select id="queryStreetCongestion" resultType="com.zzzxlz.pojo.Congestion">
     select * from street_congestion where road = #{road}
 </select>

com\zzzxlz\service\StreetService.java

//返回几条比较繁忙的路段的名字
public List getKeyStreetName(){
    return streetMapper.queryKeyStreetName();
}
//返回这条街道一天各个时间点的拥挤数据
public Congestion getStreetCongestion(String road){
    return streetMapper.queryStreetCongestion(road);
}

com\zzzxlz\controller\StreetController.java

@GetMapping("/road")
@ApiOperation("get请求获取街道名称")
public Result getKeyStreetInfo(){
    return ResultFactory.buildSuccessResult(streetService.getKeyStreetName());
}
@GetMapping("/congestion")
@ApiOperation("get请求获取这个街道一天各个时间点的拥挤数据")
public Result getStreetCongestion(@RequestParam(value = "road", defaultValue = "纱帽河步行街北段") String road){
   return ResultFactory.buildSuccessResult(streetService.getStreetCongestion(road));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值