From 0ad130fcc20cdd67a2b6c203c3d5ce376513c242 Mon Sep 17 00:00:00 2001 From: zhugongping Date: Sat, 28 Feb 2026 21:29:37 +0800 Subject: [PATCH] =?UTF-8?q?20260228:=E8=81=94=E9=80=9A=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=A2=B3=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/notify/AlertPushParams.java | 4 ++ .../thingsModel/ThingsModelSimpleItem.java | 3 ++ .../thingsModel/ThingsModelValuesInput.java | 20 +++----- .../iot/data/ruleEngine/SceneContext.java | 51 +++++++------------ .../data/service/impl/DataHandlerImpl.java | 6 +-- .../impl/DeviceReportMessageServiceImpl.java | 2 +- .../data/service/impl/RuleEngineHandler.java | 2 +- .../service/impl/NotifySendServiceImpl.java | 1 + .../service/impl/WeChatPushServiceImpl.java | 3 +- .../java/com/fastbee/notify/vo/NotifyVO.java | 17 +++++++ .../controller/wechat/WeChatController.java | 4 +- .../impl/WeChatCallbackServiceImpl.java | 28 ++++++---- 12 files changed, 76 insertions(+), 65 deletions(-) diff --git a/fastbee-common/src/main/java/com/fastbee/common/core/notify/AlertPushParams.java b/fastbee-common/src/main/java/com/fastbee/common/core/notify/AlertPushParams.java index 0cf1bff0..d1b133b3 100644 --- a/fastbee-common/src/main/java/com/fastbee/common/core/notify/AlertPushParams.java +++ b/fastbee-common/src/main/java/com/fastbee/common/core/notify/AlertPushParams.java @@ -21,6 +21,10 @@ public class AlertPushParams { * 告警时间 */ private String alertTime; + /** + * 设备ID + */ + private Long deviceId; /** * 设备名称 */ diff --git a/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelSimpleItem.java b/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelSimpleItem.java index 5744fa02..696d9ada 100644 --- a/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelSimpleItem.java +++ b/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelSimpleItem.java @@ -26,6 +26,9 @@ public class ThingsModelSimpleItem { */ private String value; + /** + * 物模型名称 + */ private String name; /** diff --git a/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelValuesInput.java b/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelValuesInput.java index 51cf6000..c9754a9e 100644 --- a/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelValuesInput.java +++ b/fastbee-common/src/main/java/com/fastbee/common/core/thingsModel/ThingsModelValuesInput.java @@ -14,12 +14,19 @@ public class ThingsModelValuesInput { **/ private Long productId; + /** + * 设备ID + **/ private Long deviceId; + /** * 设备ID **/ private String deviceNumber; + /** + * 设备类型 + **/ private Integer deviceType; /** @@ -27,11 +34,6 @@ public class ThingsModelValuesInput { **/ private List thingsModelSimpleItem; - /** - * 原始消息数据包(用于判断设备上电触发回包等) - **/ - private Object sources; - public Long getDeviceId() { return deviceId; } @@ -63,12 +65,4 @@ public class ThingsModelValuesInput { public void setThingsModelValueRemarkItem(List thingsModelSimpleItem) { this.thingsModelSimpleItem = thingsModelSimpleItem; } - - public Object getSources() { - return sources; - } - - public void setSources(Object sources) { - this.sources = sources; - } } diff --git a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/ruleEngine/SceneContext.java b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/ruleEngine/SceneContext.java index 394925ae..f8c0da8b 100644 --- a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/ruleEngine/SceneContext.java +++ b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/ruleEngine/SceneContext.java @@ -95,15 +95,12 @@ public class SceneContext { scene_logger.info("[{}]=====+>场景联动规则开始执行!", requestId); scene_logger.info("[{}]=====+>规则引擎脚本配置:{},规则引擎上下文:{}", requestId, scriptTemplate, this); //MDC.put("id", scriptTemplate.getChainName()); - //触发器 + // 触发器 if (scriptTemplate.getPurpose() == 2) { // 触发器,检查静默时间 if (!checkSilent(scriptTemplate.getSilent(), scriptTemplate.getSceneId(), requestId, this.deviceNum)) { // 触发条件为不满足时,返回true - if (scriptTemplate.getCond() == 3) { - return true; - } - return false; + return scriptTemplate.getCond() == 3; } if (scriptTemplate.getSource() == 1) { // 设备触发 @@ -112,7 +109,7 @@ public class SceneContext { // 产品触发 return productTrigger(scriptTemplate); } - //执行动作 + // 执行动作 } else if (scriptTemplate.getPurpose() == 3) { scene_logger.info("[{}]=====+>符合触发条件!", requestId); if (scriptTemplate.getCheckdelay() != 0) { @@ -122,9 +119,9 @@ public class SceneContext { } } else { // 执行动作,延迟执行,线程休眠 delay x 1000毫秒 - Thread.sleep(scriptTemplate.getDelay() * 1000); + Thread.sleep(scriptTemplate.getDelay() * 1000L); if (scriptTemplate.getSource() == 4) { - //存在相同未处理告警只记录 不触发告警通知和动作 + // 存在相同未处理告警只记录 不触发告警通知和动作 if (checkDeviceAlerting(scriptTemplate.getSceneId(), requestId, this.deviceNum)) { this.alert(scriptTemplate.getSceneId(), false); } else { @@ -151,7 +148,7 @@ public class SceneContext { private boolean deviceTrigger(ScriptTemplate scriptTemplate) { String requestId = "scene/" + scriptTemplate.getChainName(); // 判断定制触发(执行一次)或设备上报 - boolean isDeviceReport = StringUtils.isEmpty(deviceNum) ? false : true; + boolean isDeviceReport = !StringUtils.isEmpty(deviceNum); if (isDeviceReport) { // 1. 匹配设备编号 scene_logger.info("[{}]=====+>设备触发!", requestId); @@ -176,10 +173,7 @@ public class SceneContext { scriptTemplate.getScriptId(), scriptTemplate.getSceneId(), scriptTemplate.getProductId(), deviceNum, matchItem.getRemark()); sceneThingsModelItems.add(sceneItem); // 3.设备上报值匹配 - boolean isMatch = matchValue(requestId, scriptTemplate.getOperator(), scriptTemplate.getValue(), matchItem.getValue()); - if (isMatch) { - return true; - } + return matchValue(requestId, scriptTemplate.getOperator(), scriptTemplate.getValue(), matchItem.getValue()); } } else { @@ -208,7 +202,7 @@ public class SceneContext { // 定时触发/执行一次 int resultCount = 0; // 3.查询设备最新上报值去匹配 - for (String num : Arrays.asList(scriptTemplate.getDeviceNums().split(","))) { + for (String num : scriptTemplate.getDeviceNums().split(",")) { // 数组类型,key去除前缀,值从逗号分隔的字符串获取 String id = ""; String value = ""; @@ -248,7 +242,7 @@ public class SceneContext { } } // 任意设备匹配成功返回true - return resultCount > 0 ? true : false; + return resultCount > 0; } return false; } @@ -286,10 +280,7 @@ public class SceneContext { scriptTemplate.getScriptId(), scriptTemplate.getSceneId(), scriptTemplate.getProductId(), deviceNum, matchItem.getRemark()); sceneThingsModelItems.add(sceneItem); // 设备上报值匹配 - boolean isMatch = matchValue(requestId, scriptTemplate.getOperator(), scriptTemplate.getValue(), matchItem.getValue()); - if (isMatch) { - return true; - } + return matchValue(requestId, scriptTemplate.getOperator(), scriptTemplate.getValue(), matchItem.getValue()); } } else { @@ -359,7 +350,7 @@ public class SceneContext { } } // 任意设备匹配成功返回true - return resultCount > 0 ? true : false; + return resultCount > 0; } return false; } @@ -367,10 +358,10 @@ public class SceneContext { private void loadDelayTrigger(ScriptTemplate scriptTemplate) { String requestId = "scene/" + scriptTemplate.getChainName(); String key = "CHECK_" + scriptTemplate.getSceneId() + deviceNum; - //默认上线执行告警恢复 在延迟匹配周期内不告警 + // 默认上线执行告警恢复 在延迟匹配周期内不告警 ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(); executor.schedule(() -> { - //设备未上线,则执行告警任务 + // 设备未上线,则执行告警任务 if (scriptTemplate.getSource() == 4) { // 告警 this.alert(scriptTemplate.getSceneId(), true); @@ -449,7 +440,7 @@ public class SceneContext { * * @param sceneId 场景ID */ - private void alert(Long sceneId, boolean isNodify) { + private void alert(Long sceneId, boolean isNotify) { Set sceneIdSet = sceneThingsModelItems.stream().map(SceneThingsModelItem::getSceneId).collect(Collectors.toSet()); List sceneTerminalUserVOList = sceneService.selectTerminalUserBySceneIds(sceneIdSet); Map sceneTerminalUserMap = sceneTerminalUserVOList.stream().collect(Collectors.toMap(SceneTerminalUserVO::getSceneId, Function.identity())); @@ -475,7 +466,7 @@ public class SceneContext { // 获取告警关联模版id for (AlertSceneSendVO alertSceneSendVO : sceneSendVOList) { // 开启通知发送 - if (isNodify) { + if (isNotify) { AlertPushParams alertPushParams = buildAlertPushParams(device, sceneThingsModelItem); List alertNotifyTemplateList = alertService.listAlertNotifyTemplate(alertSceneSendVO.getAlertId()); alertPushParams.setAlertName(alertSceneSendVO.getAlertName()); @@ -497,6 +488,7 @@ public class SceneContext { private AlertPushParams buildAlertPushParams(Device device, SceneThingsModelItem sceneThingsModelItem) { // 获取告警推送参数 AlertPushParams alertPushParams = new AlertPushParams(); + alertPushParams.setDeviceId(device.getDeviceId()); alertPushParams.setDeviceName(device.getDeviceName()); alertPushParams.setSerialNumber(sceneThingsModelItem.getDeviceNumber()); // List deviceUserList = deviceUserService.getDeviceUserAndShare(device.getDeviceId()); @@ -649,6 +641,7 @@ public class SceneContext { return true; } // silent:scene_场景编号 + scene_logger.info("[{}]=====+>检查静默时间!", requestId); String key = "silent:" + "scene_" + sceneId + ":" + serialNumber; Calendar calendar = Calendar.getInstance(); // 查询静默截止时间 @@ -657,16 +650,10 @@ public class SceneContext { // 添加场景静默时间 calendar.add(Calendar.MINUTE, silent); redisCache.setCacheObject(key, calendar.getTimeInMillis()); - scene_logger.info("[{}]=====+>检查静默时间!", requestId); return true; } else { - Long NowTimestamp = Calendar.getInstance().getTimeInMillis(); - if (NowTimestamp > expireTime) { - scene_logger.info("[{}]=====+>检查静默时间!", requestId); - return true; - } - scene_logger.info("[{}]=====+>检查静默时间!", requestId); - return false; + long NowTimestamp = Calendar.getInstance().getTimeInMillis(); + return NowTimestamp > expireTime; } } diff --git a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DataHandlerImpl.java b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DataHandlerImpl.java index a08583cc..a4194903 100644 --- a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DataHandlerImpl.java +++ b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DataHandlerImpl.java @@ -96,14 +96,12 @@ public class DataHandlerImpl implements IDataHandler { // 这里上报设备编号是转的大写,后面存缓存也是使用大写的,所以在查询物模型的值时添加把设备编号转大写后取值 input.setDeviceNumber(bo.getSerialNumber().toUpperCase()); input.setThingsModelValueRemarkItem(thingsModelSimpleItems); - // 传递原始消息数据包,用于判断设备上电触发回包等 - input.setSources(bo.getSources()); List result = deviceService.reportDeviceThingsModelValue(input, bo.getType(), bo.isShadow()); - // 只有设备上报进入规则引擎流程 + // todo 只有设备上报进入规则引擎流程 if (bo.isRuleEngine() && !bo.getSerialNumber().startsWith("server-")) { ruleEngine.ruleMatch(bo); } - //发送至前端 + // 发送至前端 PushMessageBo messageBo = new PushMessageBo(); messageBo.setTopic(topicsUtils.buildTopic(bo.getProductId(), bo.getSerialNumber(), TopicType.WS_SERVICE_INVOKE)); JSONObject pushObj = new JSONObject(); diff --git a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DeviceReportMessageServiceImpl.java b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DeviceReportMessageServiceImpl.java index 5d258a54..d677e0b1 100644 --- a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DeviceReportMessageServiceImpl.java +++ b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/DeviceReportMessageServiceImpl.java @@ -299,7 +299,7 @@ public class DeviceReportMessageServiceImpl implements IDeviceReportMessageServi report.setDeviceName(message.getDeviceName()); report.setSources(message.getSources()); report.setGwDeviceBo(message.getGwDeviceBo()); - //属性上报执行规则引擎 + // 属性上报执行规则引擎 report.setRuleEngine(true); dataHandler.reportData(report); } diff --git a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/RuleEngineHandler.java b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/RuleEngineHandler.java index 9bbeedc5..e9727519 100644 --- a/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/RuleEngineHandler.java +++ b/fastbee-iot-data/src/main/java/com/fastbee/iot/data/service/impl/RuleEngineHandler.java @@ -47,7 +47,7 @@ public class RuleEngineHandler implements IRuleEngine { // 场景联动处理 this.sceneProcess(bo); } catch (Exception e) { - log.error("场景联动规则执行异常 message={}", e, e.getMessage()); + log.error("场景联动规则执行异常 message={}", e.getMessage(), e); } } diff --git a/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/service/impl/NotifySendServiceImpl.java b/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/service/impl/NotifySendServiceImpl.java index 8fefebc5..b76ed087 100644 --- a/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/service/impl/NotifySendServiceImpl.java +++ b/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/service/impl/NotifySendServiceImpl.java @@ -140,6 +140,7 @@ public class NotifySendServiceImpl implements NotifySendService { NotifyChannel notifyChannel = notifyChannelService.selectNotifyChannelById(notifyTemplate.getChannelId()); NotifyChannelProviderEnum notifyChannelProviderEnum = NotifyChannelProviderEnum.getByChannelTypeAndProvider(notifyChannel.getChannelType(), notifyChannel.getProvider()); NotifyVO notifyVO = new NotifyVO(); + notifyVO.setDeviceId(alertPushParams.getDeviceId()); notifyVO.setNotifyChannel(notifyChannel).setNotifyTemplate(notifyTemplate).setNotifyChannelProviderEnum(notifyChannelProviderEnum); // 获取模版参数 JSONObject jsonMsgParams = JSONObject.parseObject(notifyVO.getNotifyTemplate().getMsgParams()); diff --git a/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/wechat/service/impl/WeChatPushServiceImpl.java b/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/wechat/service/impl/WeChatPushServiceImpl.java index 18748205..5cda4791 100644 --- a/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/wechat/service/impl/WeChatPushServiceImpl.java +++ b/fastbee-notify/fastbee-notify-core/src/main/java/com/fastbee/notify/core/wechat/service/impl/WeChatPushServiceImpl.java @@ -120,7 +120,8 @@ public class WeChatPushServiceImpl implements WeChatPushService { weChatPublicAccountPushVO.setData(sendMap); weChatPublicAccountPushVO.setTemplateId(wechatMsgParams.getTemplateId()); if (StringUtils.isNotEmpty(wechatMsgParams.getRedirectUrl())) { - weChatPublicAccountPushVO.setUrl(wechatMsgParams.getRedirectUrl()); + String redirectUrl = wechatMsgParams.getRedirectUrl() + "pagesA/home/device/index?deviceId=" + notifyVO.getDeviceId(); + weChatPublicAccountPushVO.setUrl(redirectUrl); } if (StringUtils.isNotEmpty(wechatMsgParams.getPagePath())) { WeChatPublicAccountPushVO.MiniProgram miniProgram = new WeChatPublicAccountPushVO.MiniProgram(); diff --git a/fastbee-notify/fastbee-notify-web/src/main/java/com/fastbee/notify/vo/NotifyVO.java b/fastbee-notify/fastbee-notify-web/src/main/java/com/fastbee/notify/vo/NotifyVO.java index c83598ff..80a94b79 100644 --- a/fastbee-notify/fastbee-notify-web/src/main/java/com/fastbee/notify/vo/NotifyVO.java +++ b/fastbee-notify/fastbee-notify-web/src/main/java/com/fastbee/notify/vo/NotifyVO.java @@ -18,8 +18,14 @@ import java.util.LinkedHashMap; @Accessors(chain = true) public class NotifyVO { + /** + * 通知渠道 + */ private NotifyChannel notifyChannel; + /** + * 通知模版 + */ private NotifyTemplate notifyTemplate; /** @@ -27,7 +33,18 @@ public class NotifyVO { */ private String sendAccount; + /** + * 模板参数 + */ private LinkedHashMap map; + /** + * 设备ID(用于精准跳转到设备详情页面) + */ + private Long deviceId; + + /** + * 通道类型枚举 + */ private NotifyChannelProviderEnum notifyChannelProviderEnum; } diff --git a/fastbee-open-api/src/main/java/com/fastbee/controller/wechat/WeChatController.java b/fastbee-open-api/src/main/java/com/fastbee/controller/wechat/WeChatController.java index 11d3befe..660f31fd 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/controller/wechat/WeChatController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/controller/wechat/WeChatController.java @@ -151,7 +151,7 @@ public class WeChatController { // 随机字符串 String echostr = request.getParameter("echostr"); // token - String token = "fastbee"; + String token = "yackfastbeeiot"; boolean check = SignUtils.checkSignature(token, signature, timestamp, nonce); PrintWriter writer = response.getWriter(); if (check) { @@ -175,7 +175,7 @@ public class WeChatController { response.setContentType("text/html;charset=utf-8"); response.getWriter().write(responseStr); } catch (final IOException e) { - log.error("微信回调回复信息回写失败:xmlStr:{},responseStr:{},e:{}", xmlStr, responseStr, e); + log.error("微信回调回复信息回写失败:xmlStr:{},responseStr:{},e:", xmlStr, responseStr, e); } } diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/wechat/impl/WeChatCallbackServiceImpl.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/wechat/impl/WeChatCallbackServiceImpl.java index a4f39de8..e3129b40 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/wechat/impl/WeChatCallbackServiceImpl.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/wechat/impl/WeChatCallbackServiceImpl.java @@ -5,7 +5,7 @@ import cn.hutool.core.util.XmlUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.fastbee.common.enums.SocialPlatformType; -import com.fastbee.common.utils.StringUtils; +import org.apache.commons.lang3.StringUtils; import com.fastbee.common.utils.uuid.IdUtils; import com.fastbee.common.utils.wechat.WechatUtils; import com.fastbee.common.wechat.WeChatAppResult; @@ -20,7 +20,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; import java.util.Map; /** @@ -46,7 +45,7 @@ public class WeChatCallbackServiceImpl implements WeChatCallbackService { Map map = XmlUtil.xmlToMap(xmlStr); wxCallBackXmlBO = JSONObject.parseObject(JSON.toJSONString(map), WxCallBackXmlBO.class); } catch (Exception e) { - log.error("微信回调传递的xml解析报错:{},{}", xmlStr, e); + log.error("微信回调传递的xml解析报错:{},e:", xmlStr, e); return ""; } if (ObjectUtil.isNull(wxCallBackXmlBO) || StringUtils.isEmpty(wxCallBackXmlBO.getMsgType())) { @@ -79,10 +78,10 @@ public class WeChatCallbackServiceImpl implements WeChatCallbackService { private String handleEvent(WxCallBackXmlBO wxCallBackXmlBo) { String resMsg = ""; - //事件类型 + // 事件类型 String eventStr = wxCallBackXmlBo.getEvent(); - if (org.apache.commons.lang3.StringUtils.isNotBlank(eventStr)) { - switch (org.apache.commons.lang3.StringUtils.lowerCase(eventStr)) { + if (StringUtils.isNotBlank(eventStr)) { + switch (StringUtils.lowerCase(eventStr)) { // 关键词 case "click": break; @@ -114,7 +113,7 @@ public class WeChatCallbackServiceImpl implements WeChatCallbackService { private String handleEventSubscribe(WxCallBackXmlBO wxCallBackXmlBo) { // 获取微信公众号appid和secret String sourceClient = SocialPlatformType.WECHAT_OPEN_PUBLIC_ACCOUNT.getSourceClient(); - SocialPlatform socialPlatform = socialPlatformService.selectSocialPlatformByPlatform(SocialPlatformType.WECHAT_OPEN_PUBLIC_ACCOUNT.getSourceClient()); + SocialPlatform socialPlatform = socialPlatformService.selectSocialPlatformByPlatform(sourceClient); if (ObjectUtil.isNull(socialPlatform)) { log.info("请先配置微信开放平台公众号!"); return ""; @@ -137,10 +136,17 @@ public class WeChatCallbackServiceImpl implements WeChatCallbackService { return ""; } SocialUser socialUser = new SocialUser(); - socialUser.setStatus("1").setSource(sourceClient).setSourceClient(sourceClient).setOpenId(openId) - .setUnionId(weChatUserInfo.getUnionId()).setAccessToken(accessToken).setAvatar(weChatUserInfo.getHeadImgUrl()) - .setNickname(weChatUserInfo.getNickname()).setUuid(IdUtils.randomUUID()).setCreateBy("System"); - socialUser.setCreateTime(new Date()); + socialUser.setStatus("1") + .setSource(sourceClient) + .setSourceClient(sourceClient) + .setOpenId(openId) + .setUnionId(weChatUserInfo.getUnionId()) + .setAccessToken(accessToken) + .setAvatar(weChatUserInfo.getHeadImgUrl()) + .setNickname(weChatUserInfo.getNickname()) + .setUuid(IdUtils.randomUUID()) + .setCreateBy("System"); + //socialUser.setCreateTime(new Date()); socialUserService.insertSocialUser(socialUser); // 返回消息 return WechatUtils.responseText(wxCallBackXmlBo, socialPlatform.getRemark());