ソースを参照

Merge remote-tracking branch 'origin/test' into 商户收款修改

谭斌 1 年間 前
コミット
26e3cd9bcb
35 ファイル変更260 行追加417 行削除
  1. 10 0
      sys-api-feign/src/main/java/com/xy/feign/SysMqttConsumerFeign.java
  2. 10 0
      sys-api-feign/src/main/java/com/xy/feign/SysMsgMqttConsumerFeign.java
  3. 10 5
      sys-api-service/pom.xml
  4. 0 49
      sys-api-service/src/main/java/com/xy/consumer/log/LogConsumer.java
  5. 0 55
      sys-api-service/src/main/java/com/xy/consumer/log/LogConsumerConfiguration.java
  6. 0 33
      sys-api-service/src/main/java/com/xy/consumer/me/MqttConsumeErrorDataConsumer.java
  7. 0 55
      sys-api-service/src/main/java/com/xy/consumer/me/MqttConsumeErrorDataConsumerConfiguration.java
  8. 4 1
      sys-api-service/src/main/java/com/xy/entity/Algorithm.java
  9. 7 2
      sys-api-service/src/main/java/com/xy/entity/MqttConsumeErrorData.java
  10. 3 3
      sys-api-service/src/main/java/com/xy/service/AlgorithmServiceImpl.java
  11. 2 3
      sys-api-service/src/main/java/com/xy/service/LogOperateServiceImpl.java
  12. 6 0
      sys-api-service/src/main/java/com/xy/service/MsgSysMonitorNoticeServiceImpl.java
  13. 21 1
      sys-api-service/src/main/java/com/xy/service/MsgUserMessageServiceImpl.java
  14. 2 1
      sys-api-service/src/main/java/com/xy/service/SmsUtilAliImplService.java
  15. 47 0
      sys-api-service/src/main/java/com/xy/service/SysMqttConsumerImpl.java
  16. 9 5
      sys-api-service/src/main/java/com/xy/service/UserInfoServiceImpl.java
  17. 7 1
      sys-api/src/main/java/com/xy/dto/AlgorithmDto.java
  18. 2 2
      sys-api/src/main/java/com/xy/dto/MqttConsumeErrorDataDto.java
  19. 3 0
      sys-api/src/main/java/com/xy/dto/MsgUserMessageDto.java
  20. 25 0
      sys-api/src/main/java/com/xy/dto/SysMqttDto.java
  21. 2 1
      sys-api/src/main/java/com/xy/enums/MsgConfigId.java
  22. 23 0
      sys-api/src/main/java/com/xy/service/SysMqttConsumer.java
  23. 1 1
      sys-sdk/pom.xml
  24. 27 0
      sys-sdk/src/main/java/com/xy/config/SpringConfigs.java
  25. 0 26
      sys-sdk/src/main/java/com/xy/producer/LogsProducer.java
  26. 0 46
      sys-sdk/src/main/java/com/xy/producer/LogsProducerConfiguration.java
  27. 0 26
      sys-sdk/src/main/java/com/xy/producer/MqttConsumeErrorDataProducer.java
  28. 0 46
      sys-sdk/src/main/java/com/xy/producer/MqttConsumeErrorDataProducerConfiguration.java
  29. 8 8
      sys-sdk/src/main/java/com/xy/utils/LogUtils.java
  30. 0 30
      sys-sdk/src/main/java/com/xy/utils/MqttConsumeErrorDataUtils.java
  31. 6 2
      sys-start/pom.xml
  32. 0 7
      sys-start/src/main/resources/bootstrap-prod.yml
  33. 24 0
      sys-start/src/main/resources/bootstrap-prod2.yml
  34. 0 7
      sys-start/src/main/resources/bootstrap-uat.yml
  35. 1 1
      sys-start/src/main/resources/bootstrap.yml

+ 10 - 0
sys-api-feign/src/main/java/com/xy/feign/SysMqttConsumerFeign.java

@@ -0,0 +1,10 @@
+package com.xy.feign;
+
+import com.xy.FeignInterceptor;
+import com.xy.consts.ServiceConsts;
+import com.xy.service.SysMqttConsumer;
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
+public interface SysMqttConsumerFeign extends SysMqttConsumer {
+}

+ 10 - 0
sys-api-feign/src/main/java/com/xy/feign/SysMsgMqttConsumerFeign.java

@@ -0,0 +1,10 @@
+package com.xy.feign;
+
+import com.xy.FeignInterceptor;
+import com.xy.consts.ServiceConsts;
+import com.xy.service.MsgMqttConsumer;
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
+public interface SysMsgMqttConsumerFeign extends MsgMqttConsumer {
+}

+ 10 - 5
sys-api-service/pom.xml

@@ -61,11 +61,11 @@
             <artifactId>authorize-sdk</artifactId>
             <version>1.0</version>
         </dependency>
-        <!--        <dependency>-->
-        <!--            <groupId>com.xy</groupId>-->
-        <!--            <artifactId>xy-server-web</artifactId>-->
-        <!--            <version>1.0</version>-->
-        <!--        </dependency>-->
+        <dependency>
+            <groupId>com.xy</groupId>
+            <artifactId>xy-server-web</artifactId>
+            <version>1.0</version>
+        </dependency>
         <dependency>
             <groupId>com.xy</groupId>
             <artifactId>xy-oss</artifactId>
@@ -96,6 +96,11 @@
             <artifactId>xy-alipay</artifactId>
             <version>1.0</version>
         </dependency>
+        <dependency>
+            <groupId>com.xy</groupId>
+            <artifactId>mqtt-api</artifactId>
+            <version>1.0</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 0 - 49
sys-api-service/src/main/java/com/xy/consumer/log/LogConsumer.java

@@ -1,49 +0,0 @@
-package com.xy.consumer.log;
-
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.xy.config.SysThreadPoolConfig;
-import com.xy.consumer.MqttConsumer;
-import com.xy.entity.LogOperate;
-import com.xy.entity.LogSysEvents;
-import com.xy.entity.LogTasks;
-import com.xy.mapper.LogOperateMapper;
-import com.xy.mapper.LogSysEventsMapper;
-import com.xy.mapper.LogTasksMapper;
-import com.xy.utils.LambdaUtils;
-import com.xy.utils.ThreadPoolUtils;
-import lombok.RequiredArgsConstructor;
-import org.springframework.stereotype.Service;
-
-/**
- * 日志消费者
- */
-@Service
-@RequiredArgsConstructor
-public class LogConsumer implements MqttConsumer {
-
-    private final LogOperateMapper logOperateMapper;
-
-    private final LogSysEventsMapper logSysEventsMapper;
-
-    private final LogTasksMapper logTasksMapper;
-
-    @Override
-    public boolean message(String topic, String payload) {
-        ThreadPoolUtils.excPoll(SysThreadPoolConfig.LOG_POLL, 1)
-                .execute(() -> {
-                    JSONObject jsonObject = JSONUtil.parseObj(payload);
-                    String type = jsonObject.getStr(LambdaUtils.getProperty(LogOperate::getType));
-                    if ("operate".equals(type)) {
-                        logOperateMapper.insert(jsonObject.toBean(LogOperate.class));
-                    }
-                    if ("events".equals(type)) {
-                        logSysEventsMapper.insert(jsonObject.toBean(LogSysEvents.class));
-                    }
-                    if ("tasks".equals(type)) {
-                        logTasksMapper.insert(jsonObject.toBean(LogTasks.class));
-                    }
-                });
-        return true;
-    }
-}

+ 0 - 55
sys-api-service/src/main/java/com/xy/consumer/log/LogConsumerConfiguration.java

@@ -1,55 +0,0 @@
-package com.xy.consumer.log;
-
-import com.xy.configuration.MqttConfigUtils;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.integration.annotation.IntegrationComponentScan;
-import org.springframework.integration.annotation.ServiceActivator;
-import org.springframework.integration.channel.DirectChannel;
-import org.springframework.integration.core.MessageProducer;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.MessageHandler;
-
-@Configuration
-@IntegrationComponentScan
-public class LogConsumerConfiguration {
-
-    /**
-     * topic
-     */
-    public final static String TOPIC = "log";
-
-    /**
-     * 入站通道名(消费者)订阅的bean名称
-     */
-    public static final String CHANNEL_NAME_IN = TOPIC + "MqttInboundChannel";
-
-
-    /*******************************消费者*******************************************/
-
-    /**
-     * MQTT信息通道(消费者)
-     */
-    @Bean(name = CHANNEL_NAME_IN)
-    public MessageChannel mqttInboundChannel() {
-        return new DirectChannel();
-    }
-
-    /**
-     * MQTT消息订阅绑定(消费者)
-     */
-    @Bean(name = TOPIC + "Inbound")
-    public MessageProducer inbound() {
-        return MqttConfigUtils.inbound(TOPIC, mqttInboundChannel());
-    }
-
-    /**
-     * MQTT消息处理器(消费者)
-     */
-    @Bean(name = TOPIC + "Handler")
-    @ServiceActivator(inputChannel = CHANNEL_NAME_IN)
-    public MessageHandler handler() {
-        return MqttConfigUtils.handler();
-    }
-
-}

+ 0 - 33
sys-api-service/src/main/java/com/xy/consumer/me/MqttConsumeErrorDataConsumer.java

@@ -1,33 +0,0 @@
-package com.xy.consumer.me;
-
-import cn.hutool.json.JSONUtil;
-import com.xy.config.SysThreadPoolConfig;
-import com.xy.consumer.MqttConsumer;
-import com.xy.entity.MqttConsumeErrorData;
-import com.xy.mapper.MqttConsumeErrorDataMapper;
-import com.xy.utils.ThreadPoolUtils;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-/**
- * mqtt消费失败数据消费者
- */
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class MqttConsumeErrorDataConsumer implements MqttConsumer {
-
-    private final MqttConsumeErrorDataMapper mqttConsumeErrorDataMapper;
-
-    @Override
-    public boolean message(String topic, String payload) {
-        log.info("mqtt消费失败数据:{}", payload);
-        ThreadPoolUtils.excPoll(SysThreadPoolConfig.MQTT_CONSUME_ERROR_DATA, 1)
-                .execute(() -> {
-                    MqttConsumeErrorData mqttConsumeErrorData = JSONUtil.parseObj(payload).toBean(MqttConsumeErrorData.class);
-                    mqttConsumeErrorDataMapper.insert(mqttConsumeErrorData);
-                });
-        return true;
-    }
-}

+ 0 - 55
sys-api-service/src/main/java/com/xy/consumer/me/MqttConsumeErrorDataConsumerConfiguration.java

@@ -1,55 +0,0 @@
-package com.xy.consumer.me;
-
-import com.xy.configuration.MqttConfigUtils;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.integration.annotation.IntegrationComponentScan;
-import org.springframework.integration.annotation.ServiceActivator;
-import org.springframework.integration.channel.DirectChannel;
-import org.springframework.integration.core.MessageProducer;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.MessageHandler;
-
-@Configuration
-@IntegrationComponentScan
-public class MqttConsumeErrorDataConsumerConfiguration {
-
-    /**
-     * topic
-     */
-    public final static String TOPIC = "mqttConsumeErrorData";
-
-    /**
-     * 入站通道名(消费者)订阅的bean名称
-     */
-    public static final String CHANNEL_NAME_IN = TOPIC + "MqttInboundChannel";
-
-
-    /*******************************消费者*******************************************/
-
-    /**
-     * MQTT信息通道(消费者)
-     */
-    @Bean(name = CHANNEL_NAME_IN)
-    public MessageChannel mqttInboundChannel() {
-        return new DirectChannel();
-    }
-
-    /**
-     * MQTT消息订阅绑定(消费者)
-     */
-    @Bean(name = TOPIC + "Inbound")
-    public MessageProducer inbound() {
-        return MqttConfigUtils.inbound(TOPIC, mqttInboundChannel());
-    }
-
-    /**
-     * MQTT消息处理器(消费者)
-     */
-    @Bean(name = TOPIC + "Handler")
-    @ServiceActivator(inputChannel = CHANNEL_NAME_IN)
-    public MessageHandler handler() {
-        return MqttConfigUtils.handler();
-    }
-
-}

+ 4 - 1
sys-api-service/src/main/java/com/xy/entity/Algorithm.java

@@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="Algorithm对象", description="算法平台")
+@ApiModel(value = "Algorithm对象", description = "算法平台")
 public class Algorithm extends BaseEntity3<Algorithm> {
 
     @ApiModelProperty("唯一标识")
@@ -30,6 +30,9 @@ public class Algorithm extends BaseEntity3<Algorithm> {
     @ApiModelProperty(value = "算法平台名称")
     private String name;
 
+    @ApiModelProperty(value = "算法别名")
+    private String alias;
+
     @ApiModelProperty(value = "接口域名")
     private String host;
 

+ 7 - 2
sys-api-service/src/main/java/com/xy/entity/MqttConsumeErrorData.java

@@ -17,15 +17,20 @@ public class MqttConsumeErrorData {
     private String id;
 
     /**
-     * 分组
+     * topic
      */
-    private String group;
+    private String topic;
 
     /**
      * 内容
      */
     private String msg;
 
+    /**
+     * 错误信息
+     */
+    private String errorMsg;
+
     /**
      * 创建时间
      */

+ 3 - 3
sys-api-service/src/main/java/com/xy/service/AlgorithmServiceImpl.java

@@ -47,7 +47,7 @@ public class AlgorithmServiceImpl extends ServiceImpl<AlgorithmMapper, Algorithm
     @Override
     @ApiOperation("ID和Name列表")
     public R<List<AlgorithmDto.ListNameId>> ListNameId() {
-        LambdaQueryWrapper<Algorithm> lambdaQueryWrapper = Wrappers.<Algorithm>lambdaQuery().eq(Algorithm::getStatus, 1).select(Algorithm::getId, Algorithm::getName);
+        LambdaQueryWrapper<Algorithm> lambdaQueryWrapper = Wrappers.<Algorithm>lambdaQuery().eq(Algorithm::getStatus, 1).select(Algorithm::getId, Algorithm::getName, Algorithm::getAlias);
         List<Algorithm> list = baseMapper.selectList(lambdaQueryWrapper);
         return R.ok(copy(AlgorithmDto.ListNameId.class, list));
     }
@@ -92,8 +92,8 @@ public class AlgorithmServiceImpl extends ServiceImpl<AlgorithmMapper, Algorithm
         List<AlgorithmUtils.Algorithm> list = copy(AlgorithmUtils.Algorithm.class, list(null));
         redisService.set(AlgorithmUtils.REDIS_KEY_LIST, list);
         list.forEach(item -> {
-            redisService.set(AlgorithmUtils.REDIS_KEY_OBJ+item.getId(),item);
+            redisService.set(AlgorithmUtils.REDIS_KEY_OBJ + item.getId(), item);
         });
         return R.ok("更新完成");
     }
-}
+}

+ 2 - 3
sys-api-service/src/main/java/com/xy/service/LogOperateServiceImpl.java

@@ -47,9 +47,8 @@ public class LogOperateServiceImpl implements LogOperateService {
             return R.ok(voPageBean);
         }
         //外键信息
-        copy(records, () -> userInfoService.list(new LambdaQueryWrapper<UserInfo>().in(UserInfo::getAuthorizeUserId, new JArrayList<>(records).getProperty(LogOperateDto.Vo::getOptUserId).comparing())))
-                .join(LogOperateDto.Vo::getOptUserId, UserInfo::getAuthorizeUserId)
-                .result(LogOperateDto.Vo::getOptUserName, UserInfo::getName);
+        copy(records).target(() -> userInfoService.list(new LambdaQueryWrapper<UserInfo>().in(UserInfo::getAuthorizeUserId, new JArrayList<>(records).getProperty(LogOperateDto.Vo::getOptUserId).comparing())),
+                LogOperateDto.Vo::getOptUserId, LogOperateDto.Vo::getOptUserName, UserInfo::getAuthorizeUserId, UserInfo::getName).builder();
         return R.ok(voPageBean);
     }
 

+ 6 - 0
sys-api-service/src/main/java/com/xy/service/MsgSysMonitorNoticeServiceImpl.java

@@ -76,7 +76,13 @@ public class MsgSysMonitorNoticeServiceImpl extends ServiceImpl<MsgSysMonitorNot
         save(saveInfo);
         Long userId = save.getUserId();
         if (userId != null) {
+            String channelType = save.getChannelType();
+
             MsgUserMessageDto.Save mum = new MsgUserMessageDto.Save();
+            if ("ORDER_CUT".equals(channelType)) {
+                //补扣设置为已读
+                mum.setReadState("2");
+            }
             mum.setMsgId(saveInfo.getMsgId());
             mum.setMsgType(saveInfo.getMsgType());
             mum.setPriority(saveInfo.getPriority());

+ 21 - 1
sys-api-service/src/main/java/com/xy/service/MsgUserMessageServiceImpl.java

@@ -10,6 +10,7 @@ import com.xy.dto.MsgUserMessageDto;
 import com.xy.entity.MsgSysMonitorNotice;
 import com.xy.entity.MsgUserMessage;
 import com.xy.enums.MsgReadStatus;
+import com.xy.enums.MsgType;
 import com.xy.mapper.MsgUserMessageMapper;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
@@ -19,6 +20,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -102,12 +104,30 @@ public class MsgUserMessageServiceImpl extends ServiceImpl<MsgUserMessageMapper,
     @ApiOperation("我的消息")
     @Override
     public R<PageBean<MsgUserMessageDto.PageVO>> myMsgPage(MsgUserMessageDto.Page page) {
+        //类型 1故障通知、2交易通知、3其他通知
+        String type = page.getType();
+        Integer msgType = null;
+        List<Integer> msgTypes = new ArrayList<>();
+        List<Integer> msgTypesNotIn = new ArrayList<>();
+        if ("1".equals(type)) {
+            msgTypes.add(MsgType.TYPE6.getCode());
+        }
+        if ("2".equals(type)) {
+            msgTypes.add(MsgType.TYPE8.getCode());
+        }
+        if ("3".equals(type)) {
+            msgTypesNotIn.add(MsgType.TYPE6.getCode());
+            msgTypesNotIn.add(MsgType.TYPE8.getCode());
+        }
         page.setUserId(AuthorizeUtils.getLoginId(Long.class));
         PageBean pageBean = page.getPage();
         LambdaQueryWrapper<MsgUserMessage> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, MsgUserMessage.class)
                 .ge(MsgUserMessage::getCreateTime, page.getBeginCreateTime())
                 .le(MsgUserMessage::getCreateTime, page.getEndCreateTime())
-                .build().orderByDesc(MsgUserMessage::getCreateTime);
+                .build()
+                .in(CollUtil.isNotEmpty(msgTypes), MsgUserMessage::getMsgType, msgTypes)
+                .notIn(CollUtil.isNotEmpty(msgTypesNotIn), MsgUserMessage::getMsgType, msgTypesNotIn)
+                .orderByDesc(MsgUserMessage::getCreateTime);
         IPage<MsgUserMessage> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
         PageBean<MsgUserMessageDto.PageVO> pageVo = toPageBean(MsgUserMessageDto.PageVO.class, iPage);
         List<MsgUserMessageDto.PageVO> records = pageVo.getRecords();

+ 2 - 1
sys-api-service/src/main/java/com/xy/service/SmsUtilAliImplService.java

@@ -7,6 +7,7 @@ import cn.hutool.json.JSONUtil;
 import com.xy.dto.MsgConfigDto;
 import com.xy.dto.MsgConfigTestDto;
 import com.xy.enums.ChannelType;
+import com.xy.enums.MsgConfigId;
 import com.xy.enums.SmsSceneEnum;
 import com.xy.utils.R;
 import com.xy.utils.RedisService;
@@ -79,7 +80,7 @@ public class SmsUtilAliImplService implements SmsUtil {
     public void sendSmsCode(String mobile, SmsSceneEnum smsSceneEnum, String uid) {
         //验证码
         String code = getRandomNum();
-        Long configId = 15L;
+        Long configId = MsgConfigId.SMS_CODE.getId();
         MsgConfigDto.Vo msgConfig = R.feignCheckData(msgSendApiService.getMsgConfig(new MsgConfigDto.Vo().setId(configId)));
         List<MsgConfigTestDto.BizParam> bizParams = R.feignCheckData(msgSendApiService.getBizParamByMsgConfig(new MsgConfigTestDto.MsgConfig().setConfigId(configId)));
         if (CollUtil.isNotEmpty(bizParams) && msgConfig != null) {

+ 47 - 0
sys-api-service/src/main/java/com/xy/service/SysMqttConsumerImpl.java

@@ -0,0 +1,47 @@
+package com.xy.service;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.xy.config.SysThreadPoolConfig;
+import com.xy.dto.SysMqttDto;
+import com.xy.entity.LogOperate;
+import com.xy.entity.LogSysEvents;
+import com.xy.entity.LogTasks;
+import com.xy.mapper.LogOperateMapper;
+import com.xy.mapper.LogSysEventsMapper;
+import com.xy.mapper.LogTasksMapper;
+import com.xy.utils.LambdaUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+@Api(tags = "系统消费者")
+public class SysMqttConsumerImpl implements SysMqttConsumer {
+
+    private LogOperateMapper logOperateMapper;
+
+    private LogSysEventsMapper logSysEventsMapper;
+
+    private LogTasksMapper logTasksMapper;
+
+    @Override
+    @ApiOperation("日志")
+    @Async(SysThreadPoolConfig.LOG_POLL)
+    public void logs(SysMqttDto.RequestParams requestParams) {
+        JSONObject jsonObject = JSONUtil.parseObj(requestParams.getData());
+        String type = jsonObject.getStr(LambdaUtils.getProperty(LogOperate::getType));
+        if ("operate".equals(type)) {
+            logOperateMapper.insert(jsonObject.toBean(LogOperate.class));
+        }
+        if ("events".equals(type)) {
+            logSysEventsMapper.insert(jsonObject.toBean(LogSysEvents.class));
+        }
+        if ("tasks".equals(type)) {
+            logTasksMapper.insert(jsonObject.toBean(LogTasks.class));
+        }
+    }
+}

+ 9 - 5
sys-api-service/src/main/java/com/xy/service/UserInfoServiceImpl.java

@@ -1,6 +1,8 @@
 package com.xy.service;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -19,7 +21,6 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -121,18 +122,19 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> i
     @ApiOperation("修改")
     @Lock(value = "update.userId", prefix = "user_update_")
     public R update(UserInfoDto.Update update) {
+        log.info("权限用户信息修改请求:{}", JSONUtil.toJsonPrettyStr(update));
         UserInfo byId = getById(update.getUserId());
         String account = update.getAccount();
 
-        if (!StringUtils.isEmpty(update.getTel())) {
-            if (!byId.getTel().equals(update.getTel())) {
+        if (StrUtil.isNotEmpty(update.getTel())) {
+            if (!update.getTel().equals(byId.getTel())) {
                 long count = count(new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getTel, update.getTel()));
                 if (count > 0) {
                     return R.fail("手机已存在");
                 }
             }
         }
-        if (!StringUtils.isEmpty(update.getMail())) {
+        if (StrUtil.isNotEmpty(update.getMail())) {
             if (!byId.getMail().equals(update.getMail())) {
                 long count = count(new LambdaQueryWrapper<UserInfo>().eq(UserInfo::getMail, update.getMail()));
                 if (count > 0) {
@@ -142,16 +144,18 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> i
         }
         UserInfo updateInfo = copy(UserInfo.class, update)
                 .updateUserTime(AuthorizeUtils.getLoginId(Long.class));
+        UserInfo u = getById(update.getUserId());
         //修改权限用户
         if (Emptys.check(update.getTel()) || Emptys.check(update.getMail()) || Emptys.check(update.getStatus()) || Emptys.check(update.getPassword())) {
             UpdateDto updateDto = new UpdateDto()
-                    .setId(byId.getAuthorizeUserId())
+                    .setId(u.getAuthorizeUserId())
                     .setAccount(account)
                     .setPhone(update.getTel())
                     .setEmail(update.getMail())
                     .setPassword(update.getPassword())
                     .setStatus(update.getStatus())
                     .setRoleIds(update.getRoleIds());
+            log.info("权限用户信息修改:{}", JSONUtil.toJsonPrettyStr(updateDto));
             sysWorkUserService.update(updateDto);
         }
         //修改用户

+ 7 - 1
sys-api/src/main/java/com/xy/dto/AlgorithmDto.java

@@ -21,12 +21,15 @@ public class AlgorithmDto {
 
     @Data
     @Accessors(chain = true)
-    public static class ListNameId{
+    public static class ListNameId {
         @ApiModelProperty(value = "id")
         private Long id;
 
         @ApiModelProperty(value = "算法平台名称")
         private String name;
+
+        @ApiModelProperty(value = "算法别名")
+        private String alias;
     }
 
     @Data
@@ -75,6 +78,9 @@ public class AlgorithmDto {
         @ApiModelProperty(value = "算法平台名称")
         private String name;
 
+        @ApiModelProperty(value = "算法别名")
+        private String alias;
+
         @ApiModelProperty(value = "接口域名")
         private String host;
 

+ 2 - 2
sys-api/src/main/java/com/xy/dto/MqttConsumeErrorDataDto.java

@@ -41,9 +41,9 @@ public class MqttConsumeErrorDataDto {
         private String id;
 
         /**
-         * 分组
+         * topic
          */
-        private String group;
+        private String topic;
 
         /**
          * 内容

+ 3 - 0
sys-api/src/main/java/com/xy/dto/MsgUserMessageDto.java

@@ -29,6 +29,9 @@ public class MsgUserMessageDto {
     @Accessors(chain = true)
     public static class Page extends Vo {
 
+        @ApiModelProperty(value = "类型(1故障通知、2交易通知、3其他通知)", required = false)
+        private String type;
+
         @ApiModelProperty(value = "分页对象", required = true)
         private PageBean page;
 

+ 25 - 0
sys-api/src/main/java/com/xy/dto/SysMqttDto.java

@@ -0,0 +1,25 @@
+package com.xy.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+
+public class SysMqttDto {
+
+    @Data
+    @Accessors(chain = true)
+    public static class RequestParams {
+
+        @NotBlank(message = "topic不能为空")
+        @ApiModelProperty(value = "topic", required = true)
+        private String topic;
+
+        @NotBlank(message = "data不能为空")
+        @ApiModelProperty(value = "消息内容", required = true)
+        private String data;
+
+    }
+
+}

+ 2 - 1
sys-api/src/main/java/com/xy/enums/MsgConfigId.java

@@ -18,7 +18,8 @@ public enum MsgConfigId {
 
     RISK_ORDER(14L, "异常订单通知"),
     CUT_ORDER(13L, "补扣成功通知"),
-    DEVICE_EXCEPTION(12L, "设备故障提醒");
+    DEVICE_EXCEPTION(12L, "设备故障提醒"),
+    SMS_CODE(15L, "短信验证码");
 
     /**
      * 编码值

+ 23 - 0
sys-api/src/main/java/com/xy/service/SysMqttConsumer.java

@@ -0,0 +1,23 @@
+package com.xy.service;
+
+import com.xy.annotate.RestMappingController;
+import com.xy.dto.SysMqttDto;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 系统消费者 接口
+ */
+@RestMappingController("sys-mqtt-consumer")
+public interface SysMqttConsumer {
+
+    /**
+     * 日志
+     *
+     * @param requestParams
+     */
+    @PostMapping("logs")
+    void logs(@RequestBody @Validated SysMqttDto.RequestParams requestParams);
+
+}

+ 1 - 1
sys-sdk/pom.xml

@@ -30,7 +30,7 @@
         </dependency>
         <dependency>
             <groupId>com.xy</groupId>
-            <artifactId>xy-mqtt</artifactId>
+            <artifactId>mqtt-api</artifactId>
             <version>1.0</version>
         </dependency>
         <dependency>

+ 27 - 0
sys-sdk/src/main/java/com/xy/config/SpringConfigs.java

@@ -0,0 +1,27 @@
+package com.xy.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Data
+@Component
+@ConfigurationProperties(prefix = "spring")
+public class SpringConfigs {
+
+    private Profiles profiles;
+
+    private Application application;
+
+    @Data
+    public static class Profiles {
+
+        private String active;
+    }
+
+    @Data
+    public static class Application {
+
+        private String name;
+    }
+}

+ 0 - 26
sys-sdk/src/main/java/com/xy/producer/LogsProducer.java

@@ -1,26 +0,0 @@
-package com.xy.producer;
-
-import org.springframework.integration.annotation.MessagingGateway;
-import org.springframework.integration.mqtt.support.MqttHeaders;
-import org.springframework.messaging.handler.annotation.Header;
-import org.springframework.stereotype.Component;
-
-/**
- * 生产者接口
- */
-@Component
-@MessagingGateway(defaultRequestChannel = LogsProducerConfiguration.CHANNEL_NAME_OUT)
-public interface LogsProducer {
-
-    /**
-     * ata是发送消息的内容
-     * topic是消息发送的主题,就是配置文件的主题
-     * qos是mqtt 对消息处理机制分为0,1,2 其中0表示的是订阅者没收到消息不会再次发送,消息会丢失,1表示的是会尝试重试,一直到接收到消息,但这种情况可能导致订阅者收到多次重复消息,2相比多了一次去重的动作,确保订阅者收到的消息有一次
-     */
-
-    void sendToMqtt(String data);
-
-    void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic);
-
-    void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos);
-}

+ 0 - 46
sys-sdk/src/main/java/com/xy/producer/LogsProducerConfiguration.java

@@ -1,46 +0,0 @@
-package com.xy.producer;
-
-import com.xy.configuration.MqttConfigUtils;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.integration.annotation.IntegrationComponentScan;
-import org.springframework.integration.annotation.ServiceActivator;
-import org.springframework.integration.channel.DirectChannel;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.MessageHandler;
-
-@Configuration
-@IntegrationComponentScan
-public class LogsProducerConfiguration {
-
-    /**
-     * topic
-     */
-    public final static String TOPIC = "log";
-
-    /**
-     * 出站通道名(生产者)发布的bean名称
-     */
-    public static final String CHANNEL_NAME_OUT = TOPIC + "MqttOutboundChannel";
-
-
-    /*******************************生产者*******************************************/
-
-    /**
-     * MQTT信息通道(生产者)
-     */
-    @Bean(name = CHANNEL_NAME_OUT)
-    public MessageChannel mqttOutboundChannel() {
-        return new DirectChannel();
-    }
-
-    /**
-     * MQTT消息处理器(生产者)
-     */
-    @Bean(name = TOPIC + "MqttOutbound")
-    @ServiceActivator(inputChannel = CHANNEL_NAME_OUT)
-    public MessageHandler mqttOutbound() {
-        return MqttConfigUtils.mqttOutbound(TOPIC);
-    }
-
-}

+ 0 - 26
sys-sdk/src/main/java/com/xy/producer/MqttConsumeErrorDataProducer.java

@@ -1,26 +0,0 @@
-package com.xy.producer;
-
-import org.springframework.integration.annotation.MessagingGateway;
-import org.springframework.integration.mqtt.support.MqttHeaders;
-import org.springframework.messaging.handler.annotation.Header;
-import org.springframework.stereotype.Component;
-
-/**
- * 生产者接口
- */
-@Component
-@MessagingGateway(defaultRequestChannel = MqttConsumeErrorDataProducerConfiguration.CHANNEL_NAME_OUT)
-public interface MqttConsumeErrorDataProducer {
-
-    /**
-     * ata是发送消息的内容
-     * topic是消息发送的主题,就是配置文件的主题
-     * qos是mqtt 对消息处理机制分为0,1,2 其中0表示的是订阅者没收到消息不会再次发送,消息会丢失,1表示的是会尝试重试,一直到接收到消息,但这种情况可能导致订阅者收到多次重复消息,2相比多了一次去重的动作,确保订阅者收到的消息有一次
-     */
-
-    void sendToMqtt(String data);
-
-    void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic);
-
-    void sendToMqtt(String data, @Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos);
-}

+ 0 - 46
sys-sdk/src/main/java/com/xy/producer/MqttConsumeErrorDataProducerConfiguration.java

@@ -1,46 +0,0 @@
-package com.xy.producer;
-
-import com.xy.configuration.MqttConfigUtils;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.integration.annotation.IntegrationComponentScan;
-import org.springframework.integration.annotation.ServiceActivator;
-import org.springframework.integration.channel.DirectChannel;
-import org.springframework.messaging.MessageChannel;
-import org.springframework.messaging.MessageHandler;
-
-@Configuration
-@IntegrationComponentScan
-public class MqttConsumeErrorDataProducerConfiguration {
-
-    /**
-     * topic
-     */
-    public final static String TOPIC = "mqttConsumeErrorData";
-
-    /**
-     * 出站通道名(生产者)发布的bean名称
-     */
-    public static final String CHANNEL_NAME_OUT = TOPIC + "MqttOutboundChannel";
-
-
-    /*******************************生产者*******************************************/
-
-    /**
-     * MQTT信息通道(生产者)
-     */
-    @Bean(name = CHANNEL_NAME_OUT)
-    public MessageChannel mqttOutboundChannel() {
-        return new DirectChannel();
-    }
-
-    /**
-     * MQTT消息处理器(生产者)
-     */
-    @Bean(name = TOPIC + "MqttOutbound")
-    @ServiceActivator(inputChannel = CHANNEL_NAME_OUT)
-    public MessageHandler mqttOutbound() {
-        return MqttConfigUtils.mqttOutbound(TOPIC);
-    }
-
-}

+ 8 - 8
sys-sdk/src/main/java/com/xy/utils/LogUtils.java

@@ -2,10 +2,10 @@ package com.xy.utils;
 
 import cn.hutool.json.JSONObject;
 import com.xy.config.SpringConfigs;
+import com.xy.dto.MqttDto;
 import com.xy.entity.SysCodeConfigureRedis;
 import com.xy.enums.LogEnum;
-import com.xy.producer.LogsProducer;
-import com.xy.producer.LogsProducerConfiguration;
+import com.xy.service.SysMqttSendService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -19,7 +19,7 @@ public class LogUtils {
 
     private static SpringConfigs springConfigs;
 
-    private static LogsProducer logsProducer;
+    private static SysMqttSendService sysMqttSendService;
 
     @Autowired(required = false)
     public void setSpringConfigs(SpringConfigs springConfigs) {
@@ -27,8 +27,8 @@ public class LogUtils {
     }
 
     @Autowired(required = false)
-    public void setMqttProducer(LogsProducer logsProducer) {
-        LogUtils.logsProducer = logsProducer;
+    public void setSysMqttSendService(SysMqttSendService sysMqttSendService) {
+        LogUtils.sysMqttSendService = sysMqttSendService;
     }
 
     /**
@@ -64,7 +64,7 @@ public class LogUtils {
                 .set("clientIp", getIp())
                 .set("serviceName", springConfigs.getApplication().getName())
                 .set("type", "operate");
-        logsProducer.sendToMqtt(jsonObject.toString(), LogsProducerConfiguration.TOPIC, 0);
+        sysMqttSendService.log(new MqttDto.RequestParams().setQos(0).setData(jsonObject.toString()));
     }
 
     /**
@@ -86,7 +86,7 @@ public class LogUtils {
                 .set("serviceName", springConfigs.getApplication().getName())
                 .set("createTime", DataTime.getSring())
                 .set("type", "events");
-        logsProducer.sendToMqtt(jsonObject.toString(), LogsProducerConfiguration.TOPIC, 0);
+        sysMqttSendService.log(new MqttDto.RequestParams().setQos(0).setData(jsonObject.toString()));
     }
 
     /**
@@ -106,7 +106,7 @@ public class LogUtils {
                 .set("serviceName", springConfigs.getApplication().getName())
                 .set("createTime", DataTime.getSring())
                 .set("type", "tasks");
-        logsProducer.sendToMqtt(jsonObject.toString(), LogsProducerConfiguration.TOPIC, 0);
+        sysMqttSendService.log(new MqttDto.RequestParams().setQos(0).setData(jsonObject.toString()));
     }
 
     /**

+ 0 - 30
sys-sdk/src/main/java/com/xy/utils/MqttConsumeErrorDataUtils.java

@@ -1,30 +0,0 @@
-package com.xy.utils;
-
-import cn.hutool.json.JSONObject;
-import com.xy.producer.LogsProducerConfiguration;
-import com.xy.producer.MqttConsumeErrorDataProducer;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Component
-public class MqttConsumeErrorDataUtils {
-
-    private static MqttConsumeErrorDataProducer mqttConsumeErrorDataProducer;
-
-    @Autowired(required = false)
-    public void setMqttProducer(MqttConsumeErrorDataProducer mqttConsumeErrorDataProducer) {
-        MqttConsumeErrorDataUtils.mqttConsumeErrorDataProducer = mqttConsumeErrorDataProducer;
-    }
-
-    /**
-     * 添加异常
-     */
-    public static void save(String group, String msg) {
-        JSONObject jsonObject = new JSONObject()
-                .set("group", group)
-                .set("msg", msg)
-                .set("createTime", DataTime.getSring());
-        mqttConsumeErrorDataProducer.sendToMqtt(jsonObject.toString(), LogsProducerConfiguration.TOPIC, 0);
-    }
-
-}

+ 6 - 2
sys-start/pom.xml

@@ -35,17 +35,21 @@
         </dependency>
         <dependency>
             <groupId>com.xy</groupId>
-            <artifactId>xy-logback</artifactId>
+            <artifactId>mqtt-api-cloud</artifactId>
             <version>1.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.xy</groupId>
+            <artifactId>xy-logback</artifactId>
+            <version>1.0</version>
+        </dependency>
         <!-- torna swagger 插件 -->
         <dependency>
             <groupId>com.xy</groupId>
             <artifactId>xy-torna</artifactId>
             <version>1.0</version>
         </dependency>
-
         <!-- es -->
         <dependency>
             <groupId>org.elasticsearch.client</groupId>

+ 0 - 7
sys-start/src/main/resources/bootstrap-prod.yml

@@ -1,10 +1,3 @@
-spring:
-  mqtt:
-    topics:
-      - { topic: "msgNotify", handler: com.xy.consumer.MsgConsumer }
-      - { topic: "log", handler: com.xy.consumer.log.LogConsumer }
-      - { topic: "mqttConsumeErrorData", handler: com.xy.consumer.me.MqttConsumeErrorDataConsumer }
-
 #微服务相关配置
 cloud:
   center:

+ 24 - 0
sys-start/src/main/resources/bootstrap-prod2.yml

@@ -0,0 +1,24 @@
+server:
+  port: 8053
+
+#微服务相关配置
+cloud:
+  center:
+    url: 172.25.143.101:8848
+  service:
+    name: sys
+    ip: 172.25.143.100
+
+#雪花ID唯一标识
+workerId: 30
+
+#xxl-job配置
+xxl:
+  job:
+    executor:
+      appname: sys-excutor
+      ip: ${cloud.service.ip}
+      port: 8063
+
+mysql:
+  doc: true

+ 0 - 7
sys-start/src/main/resources/bootstrap-uat.yml

@@ -1,10 +1,3 @@
-spring:
-  mqtt:
-    topics:
-      - { topic: "msgNotify", handler: com.xy.consumer.MsgConsumer }
-      - { topic: "log", handler: com.xy.consumer.log.LogConsumer }
-      - { topic: "mqttConsumeErrorData", handler: com.xy.consumer.me.MqttConsumeErrorDataConsumer }
-
 #微服务相关配置
 cloud:
   service:

+ 1 - 1
sys-start/src/main/resources/bootstrap.yml

@@ -10,7 +10,7 @@ cloud:
   center:
     url: 119.96.213.127:9007
     config:
-      shared-configs: redis.yaml,mysql.yaml,mqtt.yaml,xy-oss.yaml,xxl-job.yaml,es.yaml
+      shared-configs: redis.yaml,mysql.yaml,xy-oss.yaml,xxl-job.yaml,es.yaml,mqtt.yaml
       name: sys
   service:
     name: dev-sys