parent
c0cce9fb0b
commit
8fddea4427
@ -0,0 +1,14 @@
|
|||||||
|
package com.xjs.consts;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 正则表达式常量
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-01-18
|
||||||
|
*/
|
||||||
|
public class RegexConst {
|
||||||
|
/**
|
||||||
|
* 手机号码正则
|
||||||
|
*/
|
||||||
|
public static final String MOBILE_REGEX= "^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$";
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.xjs.apitools.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* api手机归属地实体
|
||||||
|
*
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-01-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ApiMobileBelong implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 目标手机号
|
||||||
|
*/
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 归属地省份
|
||||||
|
*/
|
||||||
|
private String province;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 归属地描述
|
||||||
|
*/
|
||||||
|
private String carrier;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.xjs.apitools.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-01-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class RequestBody {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用id
|
||||||
|
*/
|
||||||
|
private String app_id;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应用密钥
|
||||||
|
*/
|
||||||
|
private String app_secret;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 目标手机
|
||||||
|
*/
|
||||||
|
private String mobile;
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package com.xjs.apitools.factory.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.xjs.apitools.domain.ApiMobileBelong;
|
||||||
|
import com.xjs.apitools.domain.RequestBody;
|
||||||
|
import com.xjs.apitools.factory.ApiToolsFactory;
|
||||||
|
import com.xjs.common.client.api.roll.RollMobileBelongFeignClient;
|
||||||
|
import com.xjs.config.RollProperties;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
|
||||||
|
import static com.xjs.consts.ApiConst.ROLL_CODE_SUCCESS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* roll平台获取手机归属地api工厂实现
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-01-18
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class RollMobileBelongFactory implements ApiToolsFactory<ApiMobileBelong, RequestBody> {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RollProperties rollProperties;
|
||||||
|
@Autowired
|
||||||
|
private RollMobileBelongFeignClient rollMobileBelongFeignClient;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ApiMobileBelong apiData(RequestBody req) {
|
||||||
|
req.setApp_secret(rollProperties.getApp_secret());
|
||||||
|
req.setApp_id(rollProperties.getApp_id());
|
||||||
|
JSONObject jsonObject = rollMobileBelongFeignClient.mobileBelongApi(req);
|
||||||
|
if (!jsonObject.containsKey(DEMOTE_ERROR) && jsonObject.getInteger("code") == ROLL_CODE_SUCCESS.intValue()) {
|
||||||
|
JSONObject jsonData = jsonObject.getJSONObject("data");
|
||||||
|
return jsonData.toJavaObject(ApiMobileBelong.class);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
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.RollMobileBelongFeignFactory;
|
||||||
|
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手机归属地接口api调用
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-01-18
|
||||||
|
*/
|
||||||
|
@FeignClient(name = "rollMobileBelong", url = ROLL_MOBILE_BELONG_URL, fallbackFactory = RollMobileBelongFeignFactory.class)
|
||||||
|
public interface RollMobileBelongFeignClient {
|
||||||
|
|
||||||
|
@GetMapping()
|
||||||
|
@ApiLog(name = ROLL_MOBILE_BELONG,
|
||||||
|
url = ROLL_MOBILE_BELONG_URL,
|
||||||
|
method = "Get")
|
||||||
|
JSONObject mobileBelongApi(@SpringQueryMap RequestBody requestBody);
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
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.RollMobileBelongFeignClient;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import static com.xjs.consts.ApiConst.DEMOTE_ERROR;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author xiejs
|
||||||
|
* @since 2022-01-18
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class RollMobileBelongFeignFactory implements FallbackFactory<RollMobileBelongFeignClient> {
|
||||||
|
@Override
|
||||||
|
public RollMobileBelongFeignClient create(Throwable cause) {
|
||||||
|
log.error("api模块roll 手机归属地服务调用失败:{},执行降级处理", cause.getMessage());
|
||||||
|
return requestBody -> {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put(DEMOTE_ERROR, R.FAIL);
|
||||||
|
return jsonObject;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue