api模块入口侧校验,校验链实现apikey校验和ip白名单校验

main
heqijun 4 months ago
parent 42257bfc83
commit c9f0f0b30a

@ -0,0 +1,24 @@
package com.mashibing.api.adcvice;
import com.mashibing.common.exception.ApiException;
import com.mashibing.common.pojo.JsonResult;
import com.mashibing.common.utils.JsonResultUtil;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* @author heqijun
* @ClassName: ApiExceptionHandler
* @Description: TODO()
* @date 2025/6/6 16:44
*/
@RestControllerAdvice
public class ApiExceptionHandler {
@ExceptionHandler(ApiException.class)
public JsonResult handleApiException(ApiException e) {
return JsonResultUtil.error(e.getCode(), e.getMessage());
}
}

@ -1,6 +1,7 @@
package com.mashibing.api.controller; package com.mashibing.api.controller;
import com.mashibing.api.pojo.SingleSendRequest; import com.mashibing.api.pojo.SingleSendRequest;
import com.mashibing.api.pojo.SingleSendResponse;
import com.mashibing.api.service.SmsService; import com.mashibing.api.service.SmsService;
import com.mashibing.api.service.sendCheck.SendCheckContext; import com.mashibing.api.service.sendCheck.SendCheckContext;
import com.mashibing.common.pojo.JsonResult; import com.mashibing.common.pojo.JsonResult;
@ -41,7 +42,7 @@ public class SMSController {
//获取真实ip //获取真实ip
String realIp = smsService.getRealIP(httpServletRequest); String realIp = smsService.getRealIP(httpServletRequest);
log.info("real ip: {}", realIp); log.info("获取到客户端真实IP: {}", realIp);
// 构建StandardSubmit // 构建StandardSubmit
StandardSubmit standardSubmit = new StandardSubmit(); StandardSubmit standardSubmit = new StandardSubmit();
@ -52,7 +53,11 @@ public class SMSController {
sendCheckContext.check(standardSubmit); sendCheckContext.check(standardSubmit);
//TODO 发送到MQ //TODO 发送到MQ
return JsonResultUtil.ok(); SingleSendResponse singleSendResponse = new SingleSendResponse();
singleSendResponse.setCode(0);
singleSendResponse.setMsg("发送中。。。");
singleSendResponse.setCount(1);
return JsonResultUtil.ok(singleSendResponse);
} }

@ -1,34 +0,0 @@
package com.mashibing.api.feignClient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* @author heqijun
* @ClassName: BeaconCacheClient
* @Description: openFeignClient
* @date 2025/6/5 20:13
*/
@FeignClient("beacon-cache")
@RequestMapping("cache")
public interface BeaconCacheClient {
@GetMapping("get/{key}")
public String get(@PathVariable String key);
@GetMapping("set/{key}/{value}")
public void set(@PathVariable String key, @PathVariable String value);
@GetMapping("hget/{key}")
public Map hget(@PathVariable String key);
@PostMapping("hset/{key}")
public void hset(@PathVariable String key, @RequestBody Map hash);
@PostMapping("/sadd/{key}")
public void sadd(@PathVariable(value = "key") String key, @RequestBody Map<String, Object>... maps);
}

@ -0,0 +1,39 @@
package com.mashibing.api.feignClient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* @author heqijun
* @ClassName: BeaconCacheClient
* @Description: openFeignClient
* @date 2025/6/5 20:13
*/
@FeignClient("beacon-cache")
@RequestMapping("cache")
public interface CacheClient {
@GetMapping("get/{key}")
String get(@PathVariable String key);
@GetMapping("set/{key}/{value}")
void set(@PathVariable String key, @PathVariable String value);
@GetMapping("hget/{key}")
Map hget(@PathVariable String key);
@GetMapping("/hget/{key}/{field}")
Object hget(@PathVariable(value = "key") String key, @PathVariable(value = "field") String field);
@GetMapping("/hgetString/{key}/{field}")
String hgetString(@PathVariable(value = "key") String key, @PathVariable(value = "field") String field);
@PostMapping("hset/{key}")
void hset(@PathVariable String key, @RequestBody Map hash);
@PostMapping("/sadd/{key}")
void sadd(@PathVariable(value = "key") String key, @RequestBody Map<String, Object>... maps);
}

@ -1,13 +1,20 @@
package com.mashibing.api.service.sendCheck.impl; package com.mashibing.api.service.sendCheck.impl;
import com.mashibing.api.feignClient.BeaconCacheClient; import com.alibaba.nacos.common.utils.MapUtils;
import com.mashibing.api.pojo.SingleSendRequest; import com.fasterxml.jackson.databind.ObjectMapper;
import com.mashibing.api.feignClient.CacheClient;
import com.mashibing.api.service.sendCheck.SendCheckService; import com.mashibing.api.service.sendCheck.SendCheckService;
import com.mashibing.common.constant.CacheConstant;
import com.mashibing.common.entity.ClientBusiness;
import com.mashibing.common.enums.ExceptionEnums;
import com.mashibing.common.exception.ApiException;
import com.mashibing.common.pojo.StandardSubmit; import com.mashibing.common.pojo.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Map;
/** /**
* @author heqijun * @author heqijun
* @ClassName: ApikeyServiceImpl * @ClassName: ApikeyServiceImpl
@ -20,11 +27,24 @@ import org.springframework.stereotype.Service;
public class ApikeySendCheckServiceImpl implements SendCheckService { public class ApikeySendCheckServiceImpl implements SendCheckService {
@Autowired @Autowired
BeaconCacheClient beaconCacheClient; CacheClient cacheClient;
@Override @Override
public void check(StandardSubmit standardSubmit) { public void check(StandardSubmit submit) {
log.info("Check apikey..."); log.info("【api模块】发送短信前apikey校验。。。");
beaconCacheClient.hget(standardSubmit.getApikey()); Map<String, String> clientBusinessMap = (Map<String, String>) cacheClient.hget(CacheConstant.CLIENT_BUSINESS + submit.getApikey());
log.info("缓存中查询到客户信息:{}", clientBusinessMap);
if (MapUtils.isEmpty(clientBusinessMap)) {
log.error("apikey校验不通过{}{}", submit.getApikey(), ExceptionEnums.ERROR_APIKEY.getMsg());
throw new ApiException(ExceptionEnums.ERROR_APIKEY);
}
ObjectMapper objectMapper = new ObjectMapper();
ClientBusiness clientBusiness = objectMapper.convertValue(clientBusinessMap, ClientBusiness.class);
// BeanUtils.copyProperties(clientBusiness, submit);
submit.setClientId(clientBusiness.getId());
// submit.setIpAddress(clientBusiness.getIpAddress());
log.info("apikey校验通过{}", submit.getApikey());
} }
} }

@ -1,9 +1,11 @@
package com.mashibing.api.service.sendCheck.impl; package com.mashibing.api.service.sendCheck.impl;
import com.mashibing.api.feignClient.CacheClient;
import com.mashibing.api.pojo.SingleSendRequest; import com.mashibing.api.pojo.SingleSendRequest;
import com.mashibing.api.service.sendCheck.SendCheckService; import com.mashibing.api.service.sendCheck.SendCheckService;
import com.mashibing.common.pojo.StandardSubmit; import com.mashibing.common.pojo.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -16,6 +18,10 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
@Service("FeeSendCheck") @Service("FeeSendCheck")
public class FeeSendCheckServiceImpl implements SendCheckService { public class FeeSendCheckServiceImpl implements SendCheckService {
@Autowired
CacheClient cacheClient;
@Override @Override
public void check(StandardSubmit standardSubmit) { public void check(StandardSubmit standardSubmit) {
log.info("Check Fee Send Check"); log.info("Check Fee Send Check");

@ -1,9 +1,14 @@
package com.mashibing.api.service.sendCheck.impl; package com.mashibing.api.service.sendCheck.impl;
import com.mashibing.api.pojo.SingleSendRequest; import com.mashibing.api.feignClient.CacheClient;
import com.mashibing.api.service.sendCheck.SendCheckService; import com.mashibing.api.service.sendCheck.SendCheckService;
import com.mashibing.common.constant.CacheConstant;
import com.mashibing.common.enums.ExceptionEnums;
import com.mashibing.common.exception.ApiException;
import com.mashibing.common.pojo.StandardSubmit; import com.mashibing.common.pojo.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -16,8 +21,27 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
@Service("IpSendCheck") @Service("IpSendCheck")
public class IpSendCheckServiceImpl implements SendCheckService { public class IpSendCheckServiceImpl implements SendCheckService {
@Autowired
CacheClient cacheClient;
private final static String IP_ADDRESS = "ipAddress";
@Override @Override
public void check(StandardSubmit standardSubmit) { public void check(StandardSubmit submit) {
log.info("Check IpSendCheck"); log.info("【接口模块-校验ip】 校验ing…………");
//1. 根据CacheClient根据客户的apikey以及ipAddress去查询客户的IP白名单
String ip = cacheClient.hgetString(CacheConstant.CLIENT_BUSINESS + submit.getApikey(), IP_ADDRESS);
submit.setIpAddress(ip);
//2. 如果IP白名单为null直接放行
if (StringUtils.isEmpty(ip) || ip.contains(submit.getRealIp())) {
log.info("【接口模块-校验ip】 客户端请求IP合法");
return;
}
//3. IP白名单不为空并且客户端请求不在IP报名单内
log.info("【接口模块-校验ip】 请求的ip不在白名单内");
throw new ApiException(ExceptionEnums.IP_NOT_WHITE);
} }
} }

@ -25,22 +25,38 @@ public class CacheController {
@GetMapping("get/{key}") @GetMapping("get/{key}")
public String get(@PathVariable String key) { public String get(@PathVariable String key) {
log.info("【缓存模块】getString:{}", key); log.info("【缓存模块】getkey={}", key);
return redisClient.get(key); return redisClient.get(key);
} }
@GetMapping("set/{key}/{value}") @GetMapping("set/{key}/{value}")
public void set(@PathVariable String key, @PathVariable String value) { public void set(@PathVariable String key, @PathVariable String value) {
log.info("【缓存模块】setString: key = {}\nvalue = {}", key, value); log.info("【缓存模块】setkey = {}\nvalue = {}", key, value);
redisClient.set(key, value); redisClient.set(key, value);
} }
@GetMapping("hget/{key}") @GetMapping("hget/{key}")
public Map hget(@PathVariable String key) { public Map hget(@PathVariable String key) {
log.info("【缓存模块】getHash:{}", key); log.info("【缓存模块】hgetkey={}", key);
return redisClient.hGetAll(key); return redisClient.hGetAll(key);
} }
@GetMapping("hget/{key}/{field}")
public Object hget(@PathVariable(value = "key") String key, @PathVariable(value = "field") String field) {
log.info("【缓存模块】hgetkey={}field={}", key, field);
Object o = redisClient.hGet(key, field);
log.info("【缓存模块】hgetkey={}field={}value={}", key, field, o);
return o;
}
@GetMapping("hgetString/{key}/{field}")
public String hgetString(@PathVariable(value = "key") String key, @PathVariable(value = "field") String field) {
log.info("【缓存模块】hgetkey={}field={}", key, field);
String str = redisClient.hGet(key, field);
log.info("【缓存模块】hgetkey={}field={}value={}", key, field, str);
return str;
}
@PostMapping("hset/{key}") @PostMapping("hset/{key}")
public void hset(@PathVariable String key, @RequestBody Map hash) { public void hset(@PathVariable String key, @RequestBody Map hash) {
log.info("【缓存模块】setHash: key = {}\nvalue = {}", key, hash.toString()); log.info("【缓存模块】setHash: key = {}\nvalue = {}", key, hash.toString());

@ -0,0 +1,28 @@
package com.mashibing.common.constant;
import com.mashibing.common.annotation.Description;
/**
* @author heqijun
* @ClassName: CachePrefixConstant
* @Description: rediskeyfield
* @date 2025/6/6 15:51
*/
public class CacheConstant {
@Description("客户信息")
public static final String CLIENT_BUSINESS = "client_business:";
@Description("客户签名")
public static final String CLIENT_SIGN = "client_sign:";
@Description("客户短信模板")
public static final String CLIENT_TEMPLATE = "client_template:";
@Description("客户余额")
public static final String CLIENT_BALANCE = "client_balance:";
@Description("客户信息ip白名单ipAddress")
public static final String CLIENT_BUSINESS_IPADDRESS = "ipAddress";
}

@ -3,14 +3,12 @@ package com.mashibing.common.constant;
/** /**
* @author heqijun * @author heqijun
* @ClassName: Constant * @ClassName: Constant
* @Description: TODO() * @Description: ip
* @date 2025/6/5 17:10 * @date 2025/6/5 17:10
*/ */
public class SMSConstant { public class SMSConstant {
public static final double EARTH_RADIUS = 6378.137;
public static final String UNKNOWN = "unknown"; public static final String UNKNOWN = "unknown";
public static final String X_FORWARDED_FOR = "x-forwarded-for"; public static final String X_FORWARDED_FOR = "x-forwarded-for";

@ -0,0 +1,129 @@
package com.mashibing.common.entity;
import lombok.ToString;
@ToString
public class ClientBalance {
private long id;
private long clientId;
private long balance;
private java.sql.Timestamp created;
private long createId;
private java.sql.Timestamp updated;
private long updateId;
private long isDelete;
private String extend1;
private String extend2;
private String extend3;
private String extend4;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getClientId() {
return clientId;
}
public void setClientId(long clientId) {
this.clientId = clientId;
}
public long getBalance() {
return balance;
}
public void setBalance(long balance) {
this.balance = balance;
}
public java.sql.Timestamp getCreated() {
return created;
}
public void setCreated(java.sql.Timestamp created) {
this.created = created;
}
public long getCreateId() {
return createId;
}
public void setCreateId(long createId) {
this.createId = createId;
}
public java.sql.Timestamp getUpdated() {
return updated;
}
public void setUpdated(java.sql.Timestamp updated) {
this.updated = updated;
}
public long getUpdateId() {
return updateId;
}
public void setUpdateId(long updateId) {
this.updateId = updateId;
}
public long getIsDelete() {
return isDelete;
}
public void setIsDelete(long isDelete) {
this.isDelete = isDelete;
}
public String getExtend1() {
return extend1;
}
public void setExtend1(String extend1) {
this.extend1 = extend1;
}
public String getExtend2() {
return extend2;
}
public void setExtend2(String extend2) {
this.extend2 = extend2;
}
public String getExtend3() {
return extend3;
}
public void setExtend3(String extend3) {
this.extend3 = extend3;
}
public String getExtend4() {
return extend4;
}
public void setExtend4(String extend4) {
this.extend4 = extend4;
}
}

@ -0,0 +1,188 @@
package com.mashibing.common.entity;
import lombok.ToString;
@ToString
public class ClientBusiness {
private long id;
private String corpname;
private String apikey;
private String ipAddress;
private long isCallback;
private String callbackUrl;
private String clientLinkname;
private String clientPhone;
private String clientFilters;
private java.sql.Timestamp created;
private long createId;
private java.sql.Timestamp updated;
private long updateId;
private long isDelete;
private String extend1;
private String extend2;
private String extend3;
private String extend4;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getCorpname() {
return corpname;
}
public void setCorpname(String corpname) {
this.corpname = corpname;
}
public String getApikey() {
return apikey;
}
public void setApikey(String apikey) {
this.apikey = apikey;
}
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
public long getIsCallback() {
return isCallback;
}
public void setIsCallback(long isCallback) {
this.isCallback = isCallback;
}
public String getCallbackUrl() {
return callbackUrl;
}
public void setCallbackUrl(String callbackUrl) {
this.callbackUrl = callbackUrl;
}
public String getClientLinkname() {
return clientLinkname;
}
public void setClientLinkname(String clientLinkname) {
this.clientLinkname = clientLinkname;
}
public String getClientPhone() {
return clientPhone;
}
public void setClientPhone(String clientPhone) {
this.clientPhone = clientPhone;
}
public String getClientFilters() {
return clientFilters;
}
public void setClientFilters(String clientFilters) {
this.clientFilters = clientFilters;
}
public java.sql.Timestamp getCreated() {
return created;
}
public void setCreated(java.sql.Timestamp created) {
this.created = created;
}
public long getCreateId() {
return createId;
}
public void setCreateId(long createId) {
this.createId = createId;
}
public java.sql.Timestamp getUpdated() {
return updated;
}
public void setUpdated(java.sql.Timestamp updated) {
this.updated = updated;
}
public long getUpdateId() {
return updateId;
}
public void setUpdateId(long updateId) {
this.updateId = updateId;
}
public long getIsDelete() {
return isDelete;
}
public void setIsDelete(long isDelete) {
this.isDelete = isDelete;
}
public String getExtend1() {
return extend1;
}
public void setExtend1(String extend1) {
this.extend1 = extend1;
}
public String getExtend2() {
return extend2;
}
public void setExtend2(String extend2) {
this.extend2 = extend2;
}
public String getExtend3() {
return extend3;
}
public void setExtend3(String extend3) {
this.extend3 = extend3;
}
public String getExtend4() {
return extend4;
}
public void setExtend4(String extend4) {
this.extend4 = extend4;
}
}

@ -0,0 +1,178 @@
package com.mashibing.common.entity;
import lombok.ToString;
@ToString
public class ClientSign {
private long id;
private long clientId;
private String signInfo;
private long signState;
private long signType;
private String businessWeb;
private String proveDescr;
private String proveFile;
private java.sql.Timestamp created;
private long createId;
private java.sql.Timestamp updated;
private long updateId;
private long isDelete;
private String extend1;
private String extend2;
private String extend3;
private String extend4;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getClientId() {
return clientId;
}
public void setClientId(long clientId) {
this.clientId = clientId;
}
public String getSignInfo() {
return signInfo;
}
public void setSignInfo(String signInfo) {
this.signInfo = signInfo;
}
public long getSignState() {
return signState;
}
public void setSignState(long signState) {
this.signState = signState;
}
public long getSignType() {
return signType;
}
public void setSignType(long signType) {
this.signType = signType;
}
public String getBusinessWeb() {
return businessWeb;
}
public void setBusinessWeb(String businessWeb) {
this.businessWeb = businessWeb;
}
public String getProveDescr() {
return proveDescr;
}
public void setProveDescr(String proveDescr) {
this.proveDescr = proveDescr;
}
public String getProveFile() {
return proveFile;
}
public void setProveFile(String proveFile) {
this.proveFile = proveFile;
}
public java.sql.Timestamp getCreated() {
return created;
}
public void setCreated(java.sql.Timestamp created) {
this.created = created;
}
public long getCreateId() {
return createId;
}
public void setCreateId(long createId) {
this.createId = createId;
}
public java.sql.Timestamp getUpdated() {
return updated;
}
public void setUpdated(java.sql.Timestamp updated) {
this.updated = updated;
}
public long getUpdateId() {
return updateId;
}
public void setUpdateId(long updateId) {
this.updateId = updateId;
}
public long getIsDelete() {
return isDelete;
}
public void setIsDelete(long isDelete) {
this.isDelete = isDelete;
}
public String getExtend1() {
return extend1;
}
public void setExtend1(String extend1) {
this.extend1 = extend1;
}
public String getExtend2() {
return extend2;
}
public void setExtend2(String extend2) {
this.extend2 = extend2;
}
public String getExtend3() {
return extend3;
}
public void setExtend3(String extend3) {
this.extend3 = extend3;
}
public String getExtend4() {
return extend4;
}
public void setExtend4(String extend4) {
this.extend4 = extend4;
}
}

@ -0,0 +1,169 @@
package com.mashibing.common.entity;
import lombok.ToString;
@ToString
public class ClientTemplate {
private long id;
private long signId;
private String templateText;
private long templateType;
private long templateState;
private long useId;
private String useWeb;
private java.sql.Timestamp created;
private long createId;
private java.sql.Timestamp updated;
private long updateId;
private long isDelete;
private String extend1;
private String extend2;
private String extend3;
private String extend4;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getSignId() {
return signId;
}
public void setSignId(long signId) {
this.signId = signId;
}
public String getTemplateText() {
return templateText;
}
public void setTemplateText(String templateText) {
this.templateText = templateText;
}
public long getTemplateType() {
return templateType;
}
public void setTemplateType(long templateType) {
this.templateType = templateType;
}
public long getTemplateState() {
return templateState;
}
public void setTemplateState(long templateState) {
this.templateState = templateState;
}
public long getUseId() {
return useId;
}
public void setUseId(long useId) {
this.useId = useId;
}
public String getUseWeb() {
return useWeb;
}
public void setUseWeb(String useWeb) {
this.useWeb = useWeb;
}
public java.sql.Timestamp getCreated() {
return created;
}
public void setCreated(java.sql.Timestamp created) {
this.created = created;
}
public long getCreateId() {
return createId;
}
public void setCreateId(long createId) {
this.createId = createId;
}
public java.sql.Timestamp getUpdated() {
return updated;
}
public void setUpdated(java.sql.Timestamp updated) {
this.updated = updated;
}
public long getUpdateId() {
return updateId;
}
public void setUpdateId(long updateId) {
this.updateId = updateId;
}
public long getIsDelete() {
return isDelete;
}
public void setIsDelete(long isDelete) {
this.isDelete = isDelete;
}
public String getExtend1() {
return extend1;
}
public void setExtend1(String extend1) {
this.extend1 = extend1;
}
public String getExtend2() {
return extend2;
}
public void setExtend2(String extend2) {
this.extend2 = extend2;
}
public String getExtend3() {
return extend3;
}
public void setExtend3(String extend3) {
this.extend3 = extend3;
}
public String getExtend4() {
return extend4;
}
public void setExtend4(String extend4) {
this.extend4 = extend4;
}
}

@ -0,0 +1,30 @@
package com.mashibing.common.enums;
import lombok.Getter;
/**
* @author heqijun
* @ClassName: ExecptionEnums
* @Description: TODO()
* @date 2025/6/6 16:12
*/
@Getter
public enum ExceptionEnums {
ERROR_APIKEY(-1, "非法的apikey"),
IP_NOT_WHITE(-2, "请求的ip不在白名单内"),
ERROR_SIGN(-3, "无可用签名"),
ERROR_TEMPLATE(-4, "无可用模板"),
ERROR_MOBILE(-5, "手机号格式不正确"),
BALANCE_NOT_ENOUGH(-6, "手客户余额不足"),
;
private int code;
private String msg;
ExceptionEnums(int code, String msg) {
this.code = code;
this.msg = msg;
}
}

@ -0,0 +1,30 @@
package com.mashibing.common.exception;
import com.mashibing.common.enums.ExceptionEnums;
import lombok.Getter;
/**
* @author heqijun
* @ClassName: APIException
* @Description: TODO()
* @date 2025/6/6 16:09
*/
@Getter
public class ApiException extends RuntimeException {
private static final long serialVersionUID = 1L;
private final Integer code;
public ApiException(Integer code, String message) {
super(message);
this.code = code;
}
public ApiException(ExceptionEnums exceptionEnums) {
super(exceptionEnums.getMsg());
this.code = exceptionEnums.getCode();
}
}

@ -26,7 +26,7 @@ public class StandardSubmit {
private Long clientId; private Long clientId;
@Description("客户端的ip白名单") @Description("客户端的ip白名单")
private String ip; private String ipAddress;
@Description("客户业务内的uid") @Description("客户业务内的uid")
private String uid; private String uid;

@ -14,7 +14,7 @@ import java.util.Map;
@SpringBootTest @SpringBootTest
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
public class ClientBusinessMapperTest { class ClientBusinessMapperTest {
@Autowired @Autowired
private ClientBusinessMapper mapper; private ClientBusinessMapper mapper;
@ -25,6 +25,8 @@ public class ClientBusinessMapperTest {
@Test @Test
public void findById() { public void findById() {
ClientBusiness cb = mapper.findById(1L); ClientBusiness cb = mapper.findById(1L);
cb.setIpAddress("127.0.0.1");
// System.out.println("\"22.220.124.110\".equals(cb.getIpAddress()) = " + "22.220.124.110".equals(cb.getIpAddress()));
System.out.println(cb); System.out.println(cb);
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
beaconCacheClient.hset("client_business:" + cb.getApikey(), mapper.convertValue(cb, Map.class)); beaconCacheClient.hset("client_business:" + cb.getApikey(), mapper.convertValue(cb, Map.class));

@ -25,7 +25,7 @@
<properties> <properties>
<spring.cloud-version>Hoxton.SR12</spring.cloud-version> <spring.cloud-version>Hoxton.SR12</spring.cloud-version>
<spring.cloud.alibaba-version>2.2.7.RELEASE</spring.cloud.alibaba-version> <spring.cloud.alibaba-version>2.2.6.RELEASE</spring.cloud.alibaba-version>
<horse-version>1.0.0</horse-version> <horse-version>1.0.0</horse-version>
</properties> </properties>

Loading…
Cancel
Save