1、新增网络时间api及实现

2、修改某些类注释
3、apilogaop异常逻辑修改
pull/254/head
xjs 4 years ago
parent 1a3f292810
commit b61af0185b

@ -84,6 +84,8 @@ public class ApiConst {
public static final String SOUGOU_ASSOCIATION = "搜狗联想";
public static final String TIME= "网络时间";
//-------------------url------------------------------
@ -213,6 +215,11 @@ public class ApiConst {
*/
public static final String SOUGOU__ASSOCIATION_URL= "http://w.sugg.sogou.com/sugg/ajaj_json.jsp";
/**
* API
*/
public static final String TIME_URL= "https://match.adsrvr.org/track/rid";
//-----------------------api请求参数常量-----------------------------

@ -55,6 +55,9 @@ public class ApiLogAspect {
@Autowired
private RemoteWarningCRUDFeign remoteWarningCRUDFeign;
public static final String ERROR_500= "{\"error\":500}";
/**
* AOP
*/
@ -150,6 +153,11 @@ public class ApiLogAspect {
if (Objects.nonNull(jsonResult)) {
response = jsonResult.toString();
entity.setResponse(response);
//如果降级error
if (response.contains(ERROR_500)) {
entity.setIsSuccess(ReqConst.ERROR);
}
}
if (e != null || StringUtils.isEmpty(response)) {
entity.setIsSuccess(ReqConst.ERROR);

@ -0,0 +1,28 @@
package com.xjs.common.client.api.time;
import com.alibaba.fastjson.JSONObject;
import com.xjs.annotation.ApiLog;
import com.xjs.common.client.factory.TimeFeignFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import static com.xjs.consts.ApiConst.TIME;
import static com.xjs.consts.ApiConst.TIME_URL;
/**
* feign
* @author xiejs
* @since 2022-02-26
*/
@FeignClient(name = "timeFeign", url = TIME_URL, fallbackFactory = TimeFeignFactory.class)
public interface TimeFeignClient {
@GetMapping
@ApiLog(name = TIME,
url = TIME_URL,
method = "Get")
JSONObject timeApi(@RequestParam(value = "ttd_pid",defaultValue = "pubmatic")String ttd_pid,
@RequestParam(value = "fmt",defaultValue = "json")String fmt);
}

@ -0,0 +1,30 @@
package com.xjs.common.client.factory;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.R;
import com.xjs.common.client.api.time.TimeFeignClient;
import lombok.extern.log4j.Log4j2;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
/**
* feign
* @author xiejs
* @since 2022-02-26
*/
@Component
@Log4j2
public class TimeFeignFactory implements FallbackFactory<TimeFeignClient> {
@Override
public TimeFeignClient create(Throwable cause) {
log.error("时间api接口服务调用失败:{},执行降级处理", cause.getMessage());
return ((a,b) -> {
JSONObject jsonObject = new JSONObject();
jsonObject.put(DEMOTE_ERROR, R.FAIL);
return jsonObject;
});
}
}

@ -0,0 +1,42 @@
package com.xjs.time.controller;
import cn.hutool.core.date.DateUtil;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.xjs.time.factory.TimeFactory;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author xiejs
* @since 2022-02-26
*/
@RestController
@RequestMapping("time")
@Api(tags = "业务模块-时间管理")
@Log4j2
public class TimeController {
@Autowired
private TimeFactory timeFactoryImpl;
@GetMapping("networkTime")
@ApiOperation("获取网络时间")
public AjaxResult getNetworkTime() {
String time = timeFactoryImpl.getTime();
return AjaxResult.success(time);
}
@GetMapping("localhostTime")
@ApiOperation("获取本地时间")
public AjaxResult getLocalhostTime() {
return AjaxResult.success(DateUtil.now());
}
}

@ -0,0 +1,17 @@
package com.xjs.time.factory;
/**
*
* @author xiejs
* @since 2022-02-26
*/
public interface TimeFactory {
/**
*
* @return
*/
String getTime();
}

@ -0,0 +1,47 @@
package com.xjs.time.factory.impl;
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSONObject;
import com.xjs.common.client.api.time.TimeFeignClient;
import com.xjs.exception.ApiException;
import com.xjs.time.factory.TimeFactory;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
/**
*
*
* @author xiejs
* @since 2022-02-26
*/
@Component
@Log4j2
public class TimeFactoryImpl implements TimeFactory {
@Autowired
private TimeFeignClient timeFeignClient;
@Override
public String getTime() {
String ttd_pid = "pubmatic";
String fmt = "json";
JSONObject jsonObject = timeFeignClient.timeApi(ttd_pid, fmt);
if (jsonObject.containsKey(DEMOTE_ERROR)) {
throw new ApiException("时间接口调用异常");
}
Date time = jsonObject.getDate("TDID_CREATED_AT");
SimpleDateFormat bjSdf = new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN);
TimeZone tz = TimeZone.getTimeZone("GMT+16");
TimeZone.setDefault(tz);
bjSdf.setTimeZone(tz);
return bjSdf.format(time);
}
}

@ -13,9 +13,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author xiejs
* @desc
* @create 2021-12-30
* @since 2021-12-30
*/
@RestController
@RequestMapping("tranDict")

Loading…
Cancel
Save