1、roll平台历史上的今天api实现

pull/254/head
xjs 4 years ago
parent 1d448587bf
commit 90d7eb47d8

@ -12,7 +12,7 @@
## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
(xjs专用版)
(xjs专用版) 若依28900行代码
* 采用前后端分离的模式,微服务版本前端(基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue))。
* 后端采用Spring Boot、Spring Cloud & Alibaba。

@ -60,6 +60,8 @@ public class ApiConst {
public static final String ROLL_BEAUTY_PICTURE = "ROLL-美女图片";
public static final String ROLL_HISTORY_TODAY = "ROLL-历史今天";
//-------------------url------------------------------
@ -129,6 +131,11 @@ public class ApiConst {
*/
public static final String ROLL_BEAUTY_PICTURE_URL = "https://www.mxnzp.com/api/image/girl/list/random";
/**
* https://www.mxnzp.com/doc/detail?id=18
*/
public static final String ROLL_HISTORY_TODAY_URL = "https://www.mxnzp.com/api/history/today";

@ -0,0 +1,19 @@
package com.xjs.run;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* springboot
* @author xiejs
* @since 2022-01-19
*/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("-----------------启动成功!!!---------------------");
}
}

@ -80,9 +80,17 @@ public class ApiToolsController {
@ApiOperation("获取mm图片信息")
@Log(title = "获取mm图片分类")
public R<List<ApiBeautyPicture>> getBeautyPictureApiData() {
return R.ok(apiToolsService.getBeautyPicture());
return R.ok(apiToolsService.getBeautyPictureList());
}
@GetMapping("historytoday")
@ApiOperation("获取历史今天信息")
@Log(title = "获取历史今天分类")
public R<List<ApiHistoryToday>> getHistoryTodayApiData() {
return R.ok(apiToolsService.getHistoryTodayList());
}

@ -0,0 +1,67 @@
package com.xjs.apitools.domain;
import lombok.Data;
import java.io.Serializable;
/**
* api
*
* @author xiejs
* @since 2022-01-19
*/
@Data
public class ApiHistoryToday implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String picUrl;
/**
*
*/
private String title;
/**
*
*/
private String year;
/**
*
*/
private String month;
/**
*
*/
private String day;
/**
* type=1
*/
private String details;
/**
*
*/
private String date;
public String getDate() {
String m = this.month;
try {
if (Integer.parseInt(month) > 0 && Integer.parseInt(month) < 10) {
m = "0" + this.month;
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return this.year + "-" + m + "-" + this.day;
}
}

@ -35,4 +35,9 @@ public class RequestBody {
*
*/
private String name;
/**
* 0 1 0
*/
private Integer type;
}

@ -0,0 +1,52 @@
package com.xjs.apitools.factory.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xjs.apitools.domain.ApiHistoryToday;
import com.xjs.apitools.domain.RequestBody;
import com.xjs.apitools.factory.ApiToolsFactory;
import com.xjs.common.client.api.roll.RollHistoryTodayFeignClient;
import com.xjs.config.RollProperties;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
import static com.xjs.consts.ApiConst.ROLL_CODE_SUCCESS;
/**
* rollapi
*
* @author xiejs
* @since 2022-01-19
*/
@Component
@Log4j2
public class RollHistoryTodayFactory implements ApiToolsFactory<ApiHistoryToday, Object> {
@Autowired
private RollProperties rollProperties;
@Autowired
private RollHistoryTodayFeignClient rollHistoryTodayFeignClient;
@Override
public List<ApiHistoryToday> apiDataList() {
RequestBody requestBody = new RequestBody();
requestBody.setApp_id(rollProperties.getApp_id());
requestBody.setApp_secret(rollProperties.getApp_secret());
//获取无详情的数据
requestBody.setType(0);
JSONObject jsonObject = rollHistoryTodayFeignClient.historyTodayApi(requestBody);
if (!jsonObject.containsKey(DEMOTE_ERROR) && jsonObject.getInteger("code") == ROLL_CODE_SUCCESS.intValue()) {
JSONArray jsonArrayData = jsonObject.getJSONArray("data");
return jsonArrayData.stream().map(data -> {
JSONObject jsonData = (JSONObject) data;
return jsonData.toJavaObject(ApiHistoryToday.class);
}).collect(Collectors.toList());
}
return null;
}
}

@ -53,7 +53,14 @@ public interface ApiToolsService {
* mm
* @return ApiBeautyPicture
*/
List<ApiBeautyPicture> getBeautyPicture();
List<ApiBeautyPicture> getBeautyPictureList();
/**
*
* @return ApiHistoryToday
*/
List<ApiHistoryToday> getHistoryTodayList();

@ -1,5 +1,6 @@
package com.xjs.apitools.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.core.utils.StringUtils;
import com.xjs.apitools.domain.*;
import com.xjs.apitools.factory.ApiToolsFactory;
@ -36,6 +37,7 @@ public class ApiToolsServiceImpl implements ApiToolsService {
private ApiToolsFactory<ApiForecastWeather, RequestBody> forecastWeatherFactory;
private ApiToolsFactory<ApiGarbageSorting, RequestBody> garbageSortingFactory;
private ApiToolsFactory<ApiBeautyPicture, Object> beautyPictureFactory;
private ApiToolsFactory<ApiHistoryToday,Object> historyTodayFactory;
@Autowired
public void setHolidayFactory(RollHolidayFactory rollHolidayFactory) {
@ -67,6 +69,11 @@ public class ApiToolsServiceImpl implements ApiToolsService {
this.beautyPictureFactory = rollBeautyPictureFactory;
}
@Autowired
private void setHistoryTodayFactory(RollHistoryTodayFactory rollHistoryTodayFactory) {
this.historyTodayFactory = rollHistoryTodayFactory;
}
@Override
public List<ApiHoliday> getApiHolidayList() {
@ -116,7 +123,7 @@ public class ApiToolsServiceImpl implements ApiToolsService {
}
@Override
public List<ApiBeautyPicture> getBeautyPicture() {
public List<ApiBeautyPicture> getBeautyPictureList() {
List<ApiBeautyPicture> beautyPictureList = Optional.ofNullable(beautyPictureFactory.apiDataList())
.orElseThrow(ApiException::new);
beautyPictureList.forEach(bp ->{
@ -129,4 +136,14 @@ public class ApiToolsServiceImpl implements ApiToolsService {
});
return beautyPictureList;
}
@Override
public List<ApiHistoryToday> getHistoryTodayList() {
List<ApiHistoryToday> historyTodayList = historyTodayFactory.apiDataList();
if (CollUtil.isNotEmpty(historyTodayList)) {
return historyTodayList.stream().limit(5).collect(Collectors.toList());
}else {
throw new ApiException("获取历史上的今天api调用异常");
}
}
}

@ -0,0 +1,27 @@
package com.xjs.common.client.api.roll;
import com.alibaba.fastjson.JSONObject;
import com.xjs.annotation.ApiLog;
import com.xjs.apitools.domain.RequestBody;
import com.xjs.common.client.factory.RollHistoryTodayFeignFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import static com.xjs.consts.ApiConst.ROLL_HISTORY_TODAY;
import static com.xjs.consts.ApiConst.ROLL_HISTORY_TODAY_URL;
/**
* rollapifeign
* @author xiejs
* @since 2022-01-19
*/
@FeignClient(name = "rollHistoryToday", url = ROLL_HISTORY_TODAY_URL, fallbackFactory = RollHistoryTodayFeignFactory.class)
public interface RollHistoryTodayFeignClient {
@GetMapping()
@ApiLog(name = ROLL_HISTORY_TODAY,
url = ROLL_HISTORY_TODAY_URL,
method = "Get")
JSONObject historyTodayApi(@SpringQueryMap RequestBody requestBody);
}

@ -0,0 +1,29 @@
package com.xjs.common.client.factory;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.R;
import com.xjs.common.client.api.roll.RollHistoryTodayFeignClient;
import lombok.extern.log4j.Log4j2;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
/**
* rollapifeign
* @author xiejs
* @since 2022-01-19
*/
@Component
@Log4j2
public class RollHistoryTodayFeignFactory implements FallbackFactory<RollHistoryTodayFeignClient> {
@Override
public RollHistoryTodayFeignClient create(Throwable cause) {
log.error("api模块roll 历史上的今天服务调用失败:{},执行降级处理", cause.getMessage());
return requestBody -> {
JSONObject jsonObject = new JSONObject();
jsonObject.put(DEMOTE_ERROR, R.FAIL);
return jsonObject;
};
}
}
Loading…
Cancel
Save