Compare commits

..

No commits in common. '615c0558d905191d5c6f928e6dd6dcd7007a5fc8' and 'b198ad115ca28e53b66586af6dac94f6945047d4' have entirely different histories.

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="Encoding"> <component name="Encoding">
<file url="file://$PROJECT_DIR$/beacon-api/beacon-common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/beacon-api/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/beacon-api/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/beacon-api/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/beacon-api/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/beacon-cache/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/beacon-common/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/beacon-common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/beacon-test/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component> </component>
</project> </project>

@ -1,9 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="MavenProjectsManager"> <component name="MavenProjectsManager">
<option name="originalFiles"> <option name="originalFiles">
<list> <list>

@ -1,24 +0,0 @@
package com.mashibing.api.advice;
import com.mashibing.api.util.R;
import com.mashibing.api.vo.ResultVO;
import com.mashibing.common.exception.ApiException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* @author dch
* @create 2024-03-20 17:10
*/
@RestControllerAdvice
public class ApiExceptionHandler {
@ExceptionHandler(ApiException.class)
public ResultVO apiException(ApiException ex){
return R.error(ex);
}
}

@ -1,19 +1,12 @@
package com.mashibing.api.client; package com.mashibing.api.client;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.Map;
/** /**
* @author dch * @author dch
* @create 2024-03-20 11:54 * @create 2024-03-19 23:56
*/ */
@FeignClient("beacon-cache") @FeignClient(value="beacon-cache")
public interface BeaconCacheClient { public class BeaconCacheClient {
@GetMapping("/cache/hgetall/{key}")
Map hGetAll(@PathVariable(value = "key")String key);
} }

@ -1,7 +1,6 @@
package com.mashibing.api.controller; package com.mashibing.api.controller;
import com.mashibing.api.filter.CheckFilterContext; import com.mashibing.api.filter.CheckFilterContext;
import com.mashibing.common.model.StandardSubmit;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -18,6 +17,6 @@ public class ApiTestController {
@GetMapping("/api/test") @GetMapping("/api/test")
public void test(){ public void test(){
System.out.println("===================================="); System.out.println("====================================");
checkFilterContext.check(new StandardSubmit()); checkFilterContext.check(new Object());
} }
} }

@ -1,14 +1,12 @@
package com.mashibing.api.controller; package com.mashibing.api.controller;
import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.cloud.commons.lang.StringUtils;
import com.mashibing.api.filter.CheckFilterContext; import com.mashibing.api.enums.SmsCodeEnum;
import com.mashibing.api.form.SingleSendForm; import com.mashibing.api.form.SingleSendForm;
import com.mashibing.api.util.R; import com.mashibing.api.util.R;
import com.mashibing.api.vo.ResultVO; import com.mashibing.api.vo.ResultVO;
import com.mashibing.common.enums.ExceptionEnums;
import com.mashibing.common.model.StandardSubmit; import com.mashibing.common.model.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
@ -48,9 +46,6 @@ public class SmsController {
private final String HEADERHOST = "host"; private final String HEADERHOST = "host";
@Autowired
private CheckFilterContext checkFilterContext;
@PostMapping(value = "/single_send", produces = "application/json;charset=utf-8") @PostMapping(value = "/single_send", produces = "application/json;charset=utf-8")
public ResultVO singleSend(@RequestBody @Validated SingleSendForm singleSendForm, BindingResult bindingResult, HttpServletRequest req) { public ResultVO singleSend(@RequestBody @Validated SingleSendForm singleSendForm, BindingResult bindingResult, HttpServletRequest req) {
@ -58,7 +53,7 @@ public class SmsController {
if (bindingResult.hasErrors()){ if (bindingResult.hasErrors()){
String msg = bindingResult.getFieldError().getDefaultMessage(); String msg = bindingResult.getFieldError().getDefaultMessage();
log.info("【接口模块-单条短信Controller】 参数不合法 msg = {}",msg); log.info("【接口模块-单条短信Controller】 参数不合法 msg = {}",msg);
return R.error(ExceptionEnums.PARAMETER_ERROR.getCode(),msg); return R.error(SmsCodeEnum.PARAMETER_ERROR.getCode(),msg);
} }
//=========================获取真实的IP地址========================================= //=========================获取真实的IP地址=========================================
String ip = this.getRealIP(req); String ip = this.getRealIP(req);
@ -71,9 +66,6 @@ public class SmsController {
submit.setText(singleSendForm.getText()); submit.setText(singleSendForm.getText());
submit.setState(singleSendForm.getState()); submit.setState(singleSendForm.getState());
submit.setUid(singleSendForm.getUid()); submit.setUid(singleSendForm.getUid());
//============================调用策略模式的校验链============================================
checkFilterContext.check(submit);
//=========================发送到MQ交给策略模块处理========================================= //=========================发送到MQ交给策略模块处理=========================================
return R.ok(); return R.ok();

@ -0,0 +1,21 @@
package com.mashibing.api.enums;
import lombok.Getter;
/**
* @author dch
* @create 2024-03-19 0:24
* * codemsg
*/
@Getter
public enum SmsCodeEnum {
PARAMETER_ERROR(-10, "参数不合法!");
private Integer code;
private String msg;
SmsCodeEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}

@ -1,12 +1,10 @@
package com.mashibing.api.filter; package com.mashibing.api.filter;
import com.mashibing.common.model.StandardSubmit;
/** /**
* @author dch * @author dch
* @create 2024-03-18 23:18 * @create 2024-03-18 23:18
*/ */
public interface CheckFilter { public interface CheckFilter {
void check(StandardSubmit submit); void check(Object obj);
} }

@ -1,6 +1,5 @@
package com.mashibing.api.filter; package com.mashibing.api.filter;
import com.mashibing.common.model.StandardSubmit;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
@ -28,13 +27,13 @@ public class CheckFilterContext {
/** /**
* check * check
*/ */
public void check(StandardSubmit submit){ public void check(Object obj){
//1. 将获取到filters基于,做切分 //1. 将获取到filters基于,做切分
String[] filterArray = filters.split(","); String[] filterArray = filters.split(",");
//2. 遍历数组即可 //2. 遍历数组即可
for (String filter : filterArray) { for (String filter : filterArray) {
CheckFilter checkFilter = checkFiltersMap.get(filter); CheckFilter checkFilter = checkFiltersMap.get(filter);
checkFilter.check(submit); checkFilter.check(obj);
} }
} }
} }

@ -1,17 +1,9 @@
package com.mashibing.api.filter.impl; package com.mashibing.api.filter.impl;
import com.mashibing.api.client.BeaconCacheClient;
import com.mashibing.api.filter.CheckFilter; import com.mashibing.api.filter.CheckFilter;
import com.mashibing.common.constant.CacheConstant;
import com.mashibing.common.enums.ExceptionEnums;
import com.mashibing.common.exception.ApiException;
import com.mashibing.common.model.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;
import java.util.Map;
/** /**
* @author dch * @author dch
* @create 2024-03-18 23:19/** * @create 2024-03-18 23:19/**
@ -23,25 +15,8 @@ import java.util.Map;
@Slf4j @Slf4j
public class ApiKeyCheckFilter implements CheckFilter { public class ApiKeyCheckFilter implements CheckFilter {
@Autowired
private BeaconCacheClient cacheClient;
@Override @Override
public void check(StandardSubmit submit) { public void check(Object obj) {
log.info("【接口模块-校验apikey】 校验ing…………"); log.info("【接口模块-校验apikey】 校验ing…………");
//1. 基于cacheClient查询客户信息
Map clientBusiness = cacheClient.hGetAll(CacheConstant.CLIENT_BUSINESS + submit.getApikey());
//2. 如果为null直接扔异常
if(clientBusiness == null || clientBusiness.size() == 0){
log.info("【接口模块-校验apikey】 非法的apikey = {}",submit.getApikey());
throw new ApiException(ExceptionEnums.ERROR_APIKEY);
}
//3. 正常封装数据
submit.setClientId(Long.parseLong(clientBusiness.get("id") + ""));
log.info("【接口模块-校验apikey】 查询到客户信息 clientBusiness = {}",clientBusiness);
} }
} }

@ -1,7 +1,6 @@
package com.mashibing.api.filter.impl; package com.mashibing.api.filter.impl;
import com.mashibing.api.filter.CheckFilter; import com.mashibing.api.filter.CheckFilter;
import com.mashibing.common.model.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,7 +15,7 @@ public class FeeCheckFilter implements CheckFilter {
@Override @Override
public void check(StandardSubmit submit) { public void check(Object obj) {
log.info("【接口模块-校验客户余额】 校验ing…………"); log.info("【接口模块-校验客户余额】 校验ing…………");
} }
} }

@ -1,7 +1,6 @@
package com.mashibing.api.filter.impl; package com.mashibing.api.filter.impl;
import com.mashibing.api.filter.CheckFilter; import com.mashibing.api.filter.CheckFilter;
import com.mashibing.common.model.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -14,7 +13,7 @@ import org.springframework.stereotype.Service;
@Slf4j @Slf4j
public class IPCheckFilter implements CheckFilter { public class IPCheckFilter implements CheckFilter {
@Override @Override
public void check(StandardSubmit submit) { public void check(Object obj) {
log.info("【接口模块-校验ip】 校验ing…………"); log.info("【接口模块-校验ip】 校验ing…………");
} }
} }

@ -1,7 +1,6 @@
package com.mashibing.api.filter.impl; package com.mashibing.api.filter.impl;
import com.mashibing.api.filter.CheckFilter; import com.mashibing.api.filter.CheckFilter;
import com.mashibing.common.model.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,7 +15,7 @@ public class MobileCheckFilter implements CheckFilter {
@Override @Override
public void check(StandardSubmit submit) { public void check(Object obj) {
log.info("【接口模块-校验手机号】 校验ing…………"); log.info("【接口模块-校验手机号】 校验ing…………");
} }
} }

@ -1,7 +1,6 @@
package com.mashibing.api.filter.impl; package com.mashibing.api.filter.impl;
import com.mashibing.api.filter.CheckFilter; import com.mashibing.api.filter.CheckFilter;
import com.mashibing.common.model.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,7 +15,7 @@ public class SignCheckFilter implements CheckFilter {
@Override @Override
public void check(StandardSubmit submit) { public void check(Object obj) {
log.info("【接口模块-校验签名】 校验ing…………"); log.info("【接口模块-校验签名】 校验ing…………");
} }
} }

@ -1,7 +1,6 @@
package com.mashibing.api.filter.impl; package com.mashibing.api.filter.impl;
import com.mashibing.api.filter.CheckFilter; import com.mashibing.api.filter.CheckFilter;
import com.mashibing.common.model.StandardSubmit;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -16,7 +15,7 @@ public class TemplateCheckFilter implements CheckFilter {
@Override @Override
public void check(StandardSubmit submit) { public void check(Object obj) {
log.info("【接口模块-校验模板】 校验ing…………"); log.info("【接口模块-校验模板】 校验ing…………");
} }
} }

@ -1,8 +1,6 @@
package com.mashibing.api.util; package com.mashibing.api.util;
import com.mashibing.api.vo.ResultVO; import com.mashibing.api.vo.ResultVO;
import com.mashibing.common.enums.ExceptionEnums;
import com.mashibing.common.exception.ApiException;
/** /**
* @author dch * @author dch
@ -24,11 +22,4 @@ public class R {
return r; return r;
} }
public static ResultVO error(ApiException ex){
ResultVO r = new ResultVO();
r.setCode(ex.getCode());
r.setMsg(ex.getMessage());
return r;
}
} }

@ -1,3 +1,7 @@
## 端口号
#server:
# port: 8080
# 服务名称 # 服务名称
spring: spring:
application: application:
@ -9,9 +13,17 @@ spring:
cloud: cloud:
nacos: nacos:
discovery: discovery:
server-addr: 192.168.1.133:8848 server-addr: 192.168.43.132:8848
# nacos配置中心地址: # nacos配置中心地址:
config: config:
server-addr: 192.168.1.133:8848 server-addr: 192.168.43.132:8848
file-extension: yml file-extension: yml
# beacon-api-dev.yml # beacon-api-dev.yml
# # rabbitMQ连接信息
# rabbitmq:
# host: 192.168.43.132
# port: 5672
# username: root
# password: 19970213Dch.
# virtual-host: /

@ -1,6 +1,5 @@
package com.mashibing.api.filter; package com.mashibing.api.filter;
import com.mashibing.common.model.StandardSubmit;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,8 +21,7 @@ public class CheckFilterContextTest {
@org.junit.Test @org.junit.Test
public void check() { public void check() {
// Object obj = new Object(); Object obj = new Object();
StandardSubmit standardSubmit = new StandardSubmit(); checkFilterContext.check(obj);
checkFilterContext.check(standardSubmit);
} }
} }

@ -13,16 +13,16 @@ spring:
cloud: cloud:
nacos: nacos:
discovery: discovery:
server-addr: 192.168.1.113:8848 server-addr: 192.168.43.132:8848
# nacos配置中心地址: # nacos配置中心地址:
config: config:
server-addr: 192.168.1.113:8848 server-addr: 192.168.43.132:8848
file-extension: yml file-extension: yml
# beacon-api-dev.yml # beacon-api-dev.yml
# # rabbitMQ连接信息 # # rabbitMQ连接信息
# rabbitmq: # rabbitmq:
# host: 192.168.1.113 # host: 192.168.43.132
# port: 5672 # port: 5672
# username: root # username: root
# password: 19970213Dch. # password: 19970213Dch.

@ -35,12 +35,5 @@ public class CacheController {
redisClient.sAdd(key,value); redisClient.sAdd(key,value);
} }
@GetMapping("/cache/hgetall/{key}")
public Map hGetAll(@PathVariable(value = "key")String key){
log.info("【缓存模块】 hGetAll方法获取key ={} 的数据", key);
Map<String, Object> value = redisClient.hGetAll(key);
log.info("【缓存模块】 hGetAll方法获取key ={} 的数据 value = {}", key,value);
return value;
}
} }

@ -9,9 +9,9 @@ spring:
cloud: cloud:
nacos: nacos:
discovery: discovery:
server-addr: 192.168.1.133:8848 server-addr: 192.168.43.132:8848
# nacos配置中心地址: # nacos配置中心地址:
config: config:
server-addr: 192.168.1.133:8848 server-addr: 192.168.43.132:8848
file-extension: yml file-extension: yml
# beacon-cache-dev.yml # beacon-cache-dev.yml

@ -1,16 +0,0 @@
package com.mashibing.common.constant;
/**
* @author dch
* @create 2024-03-20 12:05
*/
public interface CacheConstant {
String CLIENT_BUSINESS = "client_business:";
String CLIENT_SIGN = "client_sign:";
String CLIENT_TEMPLATE = "client_template:";
String CLIENT_BALANCE = "client_balance:";
}

@ -1,28 +0,0 @@
package com.mashibing.common.enums;
import lombok.Getter;
/**
* @author dch
* @create 2024-03-20 12:17
*/
@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,"手客户余额不足"),
PARAMETER_ERROR(-10, "参数不合法!"),
;
private Integer code;
private String msg;
ExceptionEnums(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}

@ -1,26 +0,0 @@
package com.mashibing.common.exception;
import com.mashibing.common.enums.ExceptionEnums;
import lombok.Getter;
/**
* @author dch
* @create 2024-03-20 12:15
*/
@Getter
public class ApiException extends RuntimeException {
private Integer code;
public ApiException(String message, Integer code) {
super(message);
this.code = code;
}
public ApiException(ExceptionEnums enums) {
super(enums.getMsg());
this.code = enums.getCode();
}
}

@ -6,13 +6,13 @@ spring:
cloud: cloud:
nacos: nacos:
discovery: discovery:
server-addr: 192.168.1.133:8848 server-addr: 192.168.43.132:8848
# datasource # datasource
datasource: datasource:
driver-class-name: org.gjt.mm.mysql.Driver driver-class-name: org.gjt.mm.mysql.Driver
url: jdbc:mysql://localhost:3306/beacon_cloud?characterEncoding=utf-8&useSSL=false url: jdbc:mysql://localhost:3306/beacon_cloud?characterEncoding=utf-8&useSSL=false
username: root username: root
password: 123456 password: 1234
# 端口号 # 端口号
server: server:
port: 20000 port: 20000

Loading…
Cancel
Save