From c9f0f0b30a9fb1873d4b585b4e4f9bdb9fc9510a Mon Sep 17 00:00:00 2001 From: heqijun Date: Sat, 7 Jun 2025 10:32:46 +0800 Subject: [PATCH] =?UTF-8?q?api=E6=A8=A1=E5=9D=97=E5=85=A5=E5=8F=A3?= =?UTF-8?q?=E4=BE=A7=E6=A0=A1=E9=AA=8C=EF=BC=8C=E6=A0=A1=E9=AA=8C=E9=93=BE?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0apikey=E6=A0=A1=E9=AA=8C=E5=92=8Cip=E7=99=BD?= =?UTF-8?q?=E5=90=8D=E5=8D=95=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/adcvice/ApiExceptionHandler.java | 24 +++ .../api/controller/SMSController.java | 9 +- .../api/feignClient/BeaconCacheClient.java | 34 ---- .../api/feignClient/CacheClient.java | 39 ++++ .../impl/ApikeySendCheckServiceImpl.java | 32 ++- .../impl/FeeSendCheckServiceImpl.java | 6 + .../impl/IpSendCheckServiceImpl.java | 30 ++- .../cache/controller/CacheController.java | 22 +- .../common/constant/CacheConstant.java | 28 +++ .../common/constant/SMSConstant.java | 4 +- .../common/entity/ClientBalance.java | 129 ++++++++++++ .../common/entity/ClientBusiness.java | 188 ++++++++++++++++++ .../mashibing/common/entity/ClientSign.java | 178 +++++++++++++++++ .../common/entity/ClientTemplate.java | 169 ++++++++++++++++ .../common/enums/ExceptionEnums.java | 30 +++ .../common/exception/ApiException.java | 30 +++ .../mashibing/common/pojo/StandardSubmit.java | 2 +- .../test/mapper/ClientBusinessMapperTest.java | 4 +- pom.xml | 2 +- 19 files changed, 906 insertions(+), 54 deletions(-) create mode 100644 beacon-api/src/main/java/com/mashibing/api/adcvice/ApiExceptionHandler.java delete mode 100644 beacon-api/src/main/java/com/mashibing/api/feignClient/BeaconCacheClient.java create mode 100644 beacon-api/src/main/java/com/mashibing/api/feignClient/CacheClient.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/entity/ClientBalance.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/entity/ClientBusiness.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/entity/ClientSign.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/entity/ClientTemplate.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java create mode 100644 beacon-common/src/main/java/com/mashibing/common/exception/ApiException.java diff --git a/beacon-api/src/main/java/com/mashibing/api/adcvice/ApiExceptionHandler.java b/beacon-api/src/main/java/com/mashibing/api/adcvice/ApiExceptionHandler.java new file mode 100644 index 0000000..5a6d98d --- /dev/null +++ b/beacon-api/src/main/java/com/mashibing/api/adcvice/ApiExceptionHandler.java @@ -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()); + } +} diff --git a/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java b/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java index 54af5ab..086dbfc 100644 --- a/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java +++ b/beacon-api/src/main/java/com/mashibing/api/controller/SMSController.java @@ -1,6 +1,7 @@ package com.mashibing.api.controller; import com.mashibing.api.pojo.SingleSendRequest; +import com.mashibing.api.pojo.SingleSendResponse; import com.mashibing.api.service.SmsService; import com.mashibing.api.service.sendCheck.SendCheckContext; import com.mashibing.common.pojo.JsonResult; @@ -41,7 +42,7 @@ public class SMSController { //获取真实ip String realIp = smsService.getRealIP(httpServletRequest); - log.info("real ip: {}", realIp); + log.info("获取到客户端真实IP: {}", realIp); // 构建StandardSubmit StandardSubmit standardSubmit = new StandardSubmit(); @@ -52,7 +53,11 @@ public class SMSController { sendCheckContext.check(standardSubmit); //TODO 发送到MQ - return JsonResultUtil.ok(); + SingleSendResponse singleSendResponse = new SingleSendResponse(); + singleSendResponse.setCode(0); + singleSendResponse.setMsg("发送中。。。"); + singleSendResponse.setCount(1); + return JsonResultUtil.ok(singleSendResponse); } diff --git a/beacon-api/src/main/java/com/mashibing/api/feignClient/BeaconCacheClient.java b/beacon-api/src/main/java/com/mashibing/api/feignClient/BeaconCacheClient.java deleted file mode 100644 index ffc6069..0000000 --- a/beacon-api/src/main/java/com/mashibing/api/feignClient/BeaconCacheClient.java +++ /dev/null @@ -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... maps); - - -} diff --git a/beacon-api/src/main/java/com/mashibing/api/feignClient/CacheClient.java b/beacon-api/src/main/java/com/mashibing/api/feignClient/CacheClient.java new file mode 100644 index 0000000..3911fc7 --- /dev/null +++ b/beacon-api/src/main/java/com/mashibing/api/feignClient/CacheClient.java @@ -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... maps); + +} diff --git a/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/ApikeySendCheckServiceImpl.java b/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/ApikeySendCheckServiceImpl.java index ec74f47..d313c93 100644 --- a/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/ApikeySendCheckServiceImpl.java +++ b/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/ApikeySendCheckServiceImpl.java @@ -1,13 +1,20 @@ package com.mashibing.api.service.sendCheck.impl; -import com.mashibing.api.feignClient.BeaconCacheClient; -import com.mashibing.api.pojo.SingleSendRequest; +import com.alibaba.nacos.common.utils.MapUtils; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.mashibing.api.feignClient.CacheClient; 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 lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Map; + /** * @author heqijun * @ClassName: ApikeyServiceImpl @@ -20,11 +27,24 @@ import org.springframework.stereotype.Service; public class ApikeySendCheckServiceImpl implements SendCheckService { @Autowired - BeaconCacheClient beaconCacheClient; + CacheClient cacheClient; @Override - public void check(StandardSubmit standardSubmit) { - log.info("Check apikey..."); - beaconCacheClient.hget(standardSubmit.getApikey()); + public void check(StandardSubmit submit) { + log.info("【api模块】发送短信前,apikey校验。。。"); + Map clientBusinessMap = (Map) 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()); } } diff --git a/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/FeeSendCheckServiceImpl.java b/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/FeeSendCheckServiceImpl.java index 7dcdf39..f132b61 100644 --- a/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/FeeSendCheckServiceImpl.java +++ b/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/FeeSendCheckServiceImpl.java @@ -1,9 +1,11 @@ package com.mashibing.api.service.sendCheck.impl; +import com.mashibing.api.feignClient.CacheClient; import com.mashibing.api.pojo.SingleSendRequest; import com.mashibing.api.service.sendCheck.SendCheckService; import com.mashibing.common.pojo.StandardSubmit; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,6 +18,10 @@ import org.springframework.stereotype.Service; @Slf4j @Service("FeeSendCheck") public class FeeSendCheckServiceImpl implements SendCheckService { + + @Autowired + CacheClient cacheClient; + @Override public void check(StandardSubmit standardSubmit) { log.info("Check Fee Send Check"); diff --git a/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/IpSendCheckServiceImpl.java b/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/IpSendCheckServiceImpl.java index 6b0e49d..ea689fa 100644 --- a/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/IpSendCheckServiceImpl.java +++ b/beacon-api/src/main/java/com/mashibing/api/service/sendCheck/impl/IpSendCheckServiceImpl.java @@ -1,9 +1,14 @@ 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.common.constant.CacheConstant; +import com.mashibing.common.enums.ExceptionEnums; +import com.mashibing.common.exception.ApiException; import com.mashibing.common.pojo.StandardSubmit; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -16,8 +21,27 @@ import org.springframework.stereotype.Service; @Slf4j @Service("IpSendCheck") public class IpSendCheckServiceImpl implements SendCheckService { + + @Autowired + CacheClient cacheClient; + + private final static String IP_ADDRESS = "ipAddress"; + @Override - public void check(StandardSubmit standardSubmit) { - log.info("Check IpSendCheck"); + public void check(StandardSubmit submit) { + 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); } } diff --git a/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java b/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java index fd39d54..80658ed 100644 --- a/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java +++ b/beacon-cache/src/main/java/com/mashibing/cache/controller/CacheController.java @@ -25,22 +25,38 @@ public class CacheController { @GetMapping("get/{key}") public String get(@PathVariable String key) { - log.info("【缓存模块】getString:{}", key); + log.info("【缓存模块】get:key={}", key); return redisClient.get(key); } @GetMapping("set/{key}/{value}") public void set(@PathVariable String key, @PathVariable String value) { - log.info("【缓存模块】setString: key = {},\nvalue = {}", key, value); + log.info("【缓存模块】set:key = {},\nvalue = {}", key, value); redisClient.set(key, value); } @GetMapping("hget/{key}") public Map hget(@PathVariable String key) { - log.info("【缓存模块】getHash:{}", key); + log.info("【缓存模块】hget:key={}", key); return redisClient.hGetAll(key); } + @GetMapping("hget/{key}/{field}") + public Object hget(@PathVariable(value = "key") String key, @PathVariable(value = "field") String field) { + log.info("【缓存模块】hget:key={},field={}", key, field); + Object o = redisClient.hGet(key, field); + log.info("【缓存模块】hget:key={},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("【缓存模块】hget:key={},field={}", key, field); + String str = redisClient.hGet(key, field); + log.info("【缓存模块】hget:key={},field={},value={}", key, field, str); + return str; + } + @PostMapping("hset/{key}") public void hset(@PathVariable String key, @RequestBody Map hash) { log.info("【缓存模块】setHash: key = {},\nvalue = {}", key, hash.toString()); diff --git a/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java b/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java new file mode 100644 index 0000000..33991cf --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java @@ -0,0 +1,28 @@ +package com.mashibing.common.constant; + +import com.mashibing.common.annotation.Description; + +/** + * @author heqijun + * @ClassName: CachePrefixConstant + * @Description: redis中key的前缀或field + * @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"; +} diff --git a/beacon-common/src/main/java/com/mashibing/common/constant/SMSConstant.java b/beacon-common/src/main/java/com/mashibing/common/constant/SMSConstant.java index 9950d4f..fba6664 100644 --- a/beacon-common/src/main/java/com/mashibing/common/constant/SMSConstant.java +++ b/beacon-common/src/main/java/com/mashibing/common/constant/SMSConstant.java @@ -3,14 +3,12 @@ package com.mashibing.common.constant; /** * @author heqijun * @ClassName: Constant - * @Description: TODO(这里用一句话描述这个类的作用) + * @Description: 短信发送获取真实ip请求头信息常量 * @date 2025/6/5 17:10 */ public class SMSConstant { - public static final double EARTH_RADIUS = 6378.137; - public static final String UNKNOWN = "unknown"; public static final String X_FORWARDED_FOR = "x-forwarded-for"; diff --git a/beacon-common/src/main/java/com/mashibing/common/entity/ClientBalance.java b/beacon-common/src/main/java/com/mashibing/common/entity/ClientBalance.java new file mode 100644 index 0000000..a6af5eb --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/entity/ClientBalance.java @@ -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; + } + +} diff --git a/beacon-common/src/main/java/com/mashibing/common/entity/ClientBusiness.java b/beacon-common/src/main/java/com/mashibing/common/entity/ClientBusiness.java new file mode 100644 index 0000000..f20363e --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/entity/ClientBusiness.java @@ -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; + } + +} diff --git a/beacon-common/src/main/java/com/mashibing/common/entity/ClientSign.java b/beacon-common/src/main/java/com/mashibing/common/entity/ClientSign.java new file mode 100644 index 0000000..fba5c2b --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/entity/ClientSign.java @@ -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; + } + +} diff --git a/beacon-common/src/main/java/com/mashibing/common/entity/ClientTemplate.java b/beacon-common/src/main/java/com/mashibing/common/entity/ClientTemplate.java new file mode 100644 index 0000000..2173c5c --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/entity/ClientTemplate.java @@ -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; + } + +} diff --git a/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java b/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java new file mode 100644 index 0000000..49ce81f --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java @@ -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; + } +} diff --git a/beacon-common/src/main/java/com/mashibing/common/exception/ApiException.java b/beacon-common/src/main/java/com/mashibing/common/exception/ApiException.java new file mode 100644 index 0000000..b1cd854 --- /dev/null +++ b/beacon-common/src/main/java/com/mashibing/common/exception/ApiException.java @@ -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(); + } + + +} diff --git a/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java b/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java index 0b632d4..7a721d5 100644 --- a/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java +++ b/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java @@ -26,7 +26,7 @@ public class StandardSubmit { private Long clientId; @Description("客户端的ip白名单") - private String ip; + private String ipAddress; @Description("客户业务内的uid") private String uid; diff --git a/beacon-test/src/test/java/com/mashibing/test/mapper/ClientBusinessMapperTest.java b/beacon-test/src/test/java/com/mashibing/test/mapper/ClientBusinessMapperTest.java index 23963b7..d42debc 100644 --- a/beacon-test/src/test/java/com/mashibing/test/mapper/ClientBusinessMapperTest.java +++ b/beacon-test/src/test/java/com/mashibing/test/mapper/ClientBusinessMapperTest.java @@ -14,7 +14,7 @@ import java.util.Map; @SpringBootTest @RunWith(SpringRunner.class) -public class ClientBusinessMapperTest { +class ClientBusinessMapperTest { @Autowired private ClientBusinessMapper mapper; @@ -25,6 +25,8 @@ public class ClientBusinessMapperTest { @Test public void findById() { 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); ObjectMapper mapper = new ObjectMapper(); beaconCacheClient.hset("client_business:" + cb.getApikey(), mapper.convertValue(cb, Map.class)); diff --git a/pom.xml b/pom.xml index b314567..613d7da 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ Hoxton.SR12 - 2.2.7.RELEASE + 2.2.6.RELEASE 1.0.0