From fcb7e469cd7cdaf6e4fdc2a005d433a6b807deb6 Mon Sep 17 00:00:00 2001 From: little-cat-sweet <2116400472@qq.com> Date: Tue, 17 Aug 2021 10:40:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=94=A8=E6=88=B7=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E4=B8=8D=E8=B6=B35=E5=85=83=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/ServiceNameConstants.java | 5 ++++ .../java/com/xhpc/common/api/SmsService.java | 19 ++++++++++++ .../api/factory/SmsFallbackFactory.java | 30 +++++++++++++++++++ .../general/controller/XhpcSmsController.java | 5 ++++ .../xhpc/general/service/IXhpcSmsService.java | 7 +++++ .../general/service/XhpcSmsServiceImpl.java | 23 ++++++++++++++ .../com/xhpc/pp/logic/RealtimeDataLogic.java | 10 +++++++ 7 files changed, 99 insertions(+) create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/SmsFallbackFactory.java diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java index 9b4c0c90..91dd9b68 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java @@ -33,4 +33,9 @@ public class ServiceNameConstants */ public static final String XHPC_ORDER ="xhpc-order"; + /** + * 通用服务 + */ + public static final String XHPC_GENERAL = "xhpc-general"; + } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java new file mode 100644 index 00000000..a905fb58 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java @@ -0,0 +1,19 @@ +package com.xhpc.common.api; + +import com.xhpc.common.api.factory.SmsFallbackFactory; +import com.xhpc.common.core.constant.ServiceNameConstants; +import com.xhpc.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * program: ruoyi + * User: HongYun + * Date:2021-08-16 16 + */ +@FeignClient(contextId = "smsService",value = ServiceNameConstants.XHPC_GENERAL, fallbackFactory = SmsFallbackFactory.class) +public interface SmsService { + + @PostMapping("/send") + R sendNotice(String phone, String content); +} diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/SmsFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/SmsFallbackFactory.java new file mode 100644 index 00000000..ffa526e4 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/SmsFallbackFactory.java @@ -0,0 +1,30 @@ +package com.xhpc.common.api.factory; + +import com.xhpc.common.api.PowerPileService; +import com.xhpc.common.api.SmsService; +import com.xhpc.common.core.domain.R; +import com.xhpc.common.data.down.StartChargingData; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; + +/** + * program: ruoyi + * User: HongYun + * Date:2021-08-16 17 + */ +public class SmsFallbackFactory implements FallbackFactory { + + private static final Logger logger = LoggerFactory.getLogger(SmsFallbackFactory.class); + @Override + public SmsService create(Throwable cause) { + logger.error("充电订单服务调用失败:{} //fallback", cause.getMessage()); + return new SmsService() { + @Override + public R sendNotice(String phone, String content) { + + return R.fail("短信发送失败:" +cause.getMessage()); + } + }; + } +} diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java index 767e3aa4..e2d0af62 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java @@ -40,4 +40,9 @@ public class XhpcSmsController extends BaseController { return getDataTable(list); } + @GetMapping(value = "/send") + public void send(String phone , String content){ + + } + } diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java index 80184477..093bd5ef 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java @@ -31,5 +31,12 @@ public interface IXhpcSmsService { */ AjaxResult send(String phone, String content, String random); + /** + * Send a notice, when user's account is less than 5 yuan. + * @param phone + * @param content + */ + void sendNotice(String phone,String content); + } diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java index 8735bcbe..2d96c6d0 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java @@ -124,6 +124,29 @@ public class XhpcSmsServiceImpl implements IXhpcSmsService{ return i+""; } + @Override + public void sendNotice(String phone, String content) { + + XhpcSms xhpcSms = new XhpcSms(); + try { + String req = HttpUtils.postFormData(URL,null,assembleSmsReq(phone,content)); + JSONObject json = JSONObject.parseObject(req); + xhpcSms.setPhone(phone); + xhpcSms.setContent(content); + xhpcSms.setCreateTime(new Date()); + xhpcSms.setRemark(req); + String ok = json.getString("ok"); + if("true".equals(ok)) { + xhpcSms.setStatus(0); + }else { + xhpcSms.setStatus(1); + } + xhpcSmsMapper.addXhpcSms(xhpcSms); + } catch (Exception e) { + xhpcSms.setStatus(3); + xhpcSmsMapper.addXhpcSms(xhpcSms); + } + } public static void main(String[] args) { diff --git a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java index e7790bc3..14cd84d0 100644 --- a/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java +++ b/xhpc-modules/xhpc-power-pile/src/main/java/com/xhpc/pp/logic/RealtimeDataLogic.java @@ -2,11 +2,13 @@ package com.xhpc.pp.logic; import com.fasterxml.jackson.databind.ObjectMapper; import com.xhpc.common.api.PileOrderService; +import com.xhpc.common.api.SmsService; import com.xhpc.common.data.redis.CacheRealtimeData; import com.xhpc.common.data.up.RealtimeData; import com.xhpc.pp.tx.ServiceParameter; import com.xhpc.pp.tx.ServiceResult; import com.xhpc.pp.tx.logic.ServiceLogic; +import org.checkerframework.checker.units.qual.A; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +31,10 @@ import static com.xhpc.pp.utils.security.HexUtils.toBits; @Component("RealtimeDataLogic") public class RealtimeDataLogic implements ServiceLogic { + + @Autowired + private SmsService smsService; + private static Logger log = LoggerFactory.getLogger(RealtimeDataLogic.class); public static final String[] stable = {"离线", "故障", "空闲", "充电"}; @@ -38,6 +44,7 @@ public class RealtimeDataLogic implements ServiceLogic { @Autowired private PileOrderService pileOrderService; + @Override public ServiceResult service(ServiceParameter sp) throws Exception { @@ -103,6 +110,7 @@ public class RealtimeDataLogic implements ServiceLogic { String tel = (String) cacheOrder.get("tel"); if (alerted == null && tel != null) { // todo send sms + smsService.sendNotice(tel,"【小华充电】尊敬的用户,你的账户余额小于5元,为不影响您的正常充电,请您尽快充值交费,谢谢。"); cacheOrder.put("alerted", "true"); } } @@ -124,6 +132,8 @@ public class RealtimeDataLogic implements ServiceLogic { return new ServiceResult(false); } + + private CacheRealtimeData translate(RealtimeData realtimeData) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, NoSuchFieldException, InstantiationException { Class crdclz = CacheRealtimeData.class;