Commit d7cc5e42 authored by lixueyan's avatar lixueyan

初始化

parent 06d2143e
......@@ -3,8 +3,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>platform</artifactId>
<groupId>pps</groupId>
<artifactId>gf_back</artifactId>
<groupId>gf</groupId>
<version>1.0.0-pps</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -9,7 +9,7 @@
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<groupId>gf</groupId>
<artifactId>pps-common</artifactId>
<version>1.0.0-pps</version>
......
......@@ -25,7 +25,7 @@ public class PpsCoreCommonModule extends XModule {
protected void onStarted(XContext context) {
//XProviderManager.setDefaultImplement(context, XDynamicPermissionProvider.class, PpsDynamicPermissionProviderImpl.class);
//注册访问日志 实现类
XProviderManager.setDefaultImplement(context, XApiAccessLogProvider.class, PpsApiAccessLogProviderImpl.class);
//XProviderManager.setDefaultImplement(context, XApiAccessLogProvider.class, PpsApiAccessLogProviderImpl.class);
//session存储 实现类
XProviderManager.setDefaultImplement(context, XSessionStorageProvider.class, PpsSessionStorageProviderImpl.class);
// 环境
......
......@@ -18,7 +18,7 @@ import xstartup.kernel.system.provider.spec.XConfigProvider;
* @author lixueyan
* @date 2022/8/5 0005 17:11
*/
@XImplement
//@XImplement
public class PpsConfigProviderCommonImpl implements XConfigProvider {
//private static Map<String,String> configMap = new ConcurrentHashMap();
......
......@@ -15,7 +15,7 @@ import java.util.List;
* @author lixueyan
* @date 2022/8/5 0005 17:11
*/
@XImplement
//@XImplement
public class PpsConfigProviderImpl implements XConfigProvider {
//private static Map<String,String> configMap = new ConcurrentHashMap();
......
......@@ -3,8 +3,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>platform</artifactId>
<groupId>pps</groupId>
<artifactId>gf_back</artifactId>
<groupId>gf</groupId>
<version>1.0.0-pps</version>
</parent>
<modelVersion>4.0.0</modelVersion>
......
......@@ -9,7 +9,7 @@
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<groupId>gf</groupId>
<artifactId>pps-cloud-system</artifactId>
<version>1.0.0-pps</version>
<dependencies>
......
......@@ -9,7 +9,7 @@
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>pps</groupId>
<groupId>gf</groupId>
<artifactId>pps-core-system</artifactId>
<version>1.0.0-pps</version>
<properties>
......@@ -18,81 +18,40 @@
<dependencies>
<dependency>
<groupId>pps</groupId>
<groupId>gf</groupId>
<artifactId>pps-common</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<groupId>gf</groupId>
<artifactId>pps-cloud-base</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<groupId>gf</groupId>
<artifactId>pps-cloud-system</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-frame</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>sms-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>pps</groupId>-->
<!-- <groupId>gf</groupId>-->
<!-- <artifactId>pps-core-auth</artifactId>-->
<!-- <version>1.0.0-pps</version>-->
<!-- </dependency>-->
<dependency>
<groupId>pps</groupId>
<artifactId>primbpm-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>iam-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-dispatch</artifactId>
<version>1.0.0-pps</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-framedata</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>pps-cloud-framedata</artifactId>
<version>1.0.0-pps</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pps</groupId>
<artifactId>ukey-cloud</artifactId>
<version>1.0.0-pps</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>pps</groupId>-->
<!-- <groupId>gf</groupId>-->
<!-- <artifactId>fiybook-cloud</artifactId>-->
<!-- <version>1.0.0-pps</version>-->
<!-- <scope>compile</scope>-->
......
......@@ -11,7 +11,7 @@ import java.io.Serializable;
import java.util.Date;
@XText("null")
@TableName("pps_base_info.base_info_trace_log")
@TableName("base_info_trace_log")
public class BaseInfoTraceLogEnt implements Serializable {
public static Builder<BaseInfoTraceLogEnt> entityBuilder(){
......@@ -20,7 +20,7 @@ public class BaseInfoTraceLogEnt implements Serializable {
//region DB-FIELDS-CONST
public static final String TABLE_NAME = "pps_base_info.base_info_trace_log";
public static final String TABLE_NAME = "base_info_trace_log";
//主键
public static final String ID = "id";
//跟踪id
......
......@@ -2,7 +2,7 @@ package pps.core.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("pps_base_info.scada_environment_info")
@TableName("scada_environment_info")
public class ScadaEnvironmentInfo {
private String id;
private String environmentInfoName;
......
......@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.util.List;
@TableName("pps_base_info.scada_gather_box_rel")
@TableName("scada_gather_box_rel")
public class ScadaGatherBoxRel {
private String id;
private String gatherBoxId;
......
......@@ -2,7 +2,7 @@ package pps.core.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("pps_base_info.scada_gather_box_rel_detail")
@TableName("scada_gather_box_rel_detail")
public class ScadaGatherBoxRelDetail {
private String id;
private String scadaGatherBoxRelId;
......
......@@ -3,7 +3,7 @@ package pps.core.system.entity;
import com.baomidou.mybatisplus.annotation.TableName;
@TableName("pps_base_info.scada_gather_conf")
@TableName("scada_gather_conf")
public class ScadaGatherConf {
private String id;
private String scadaGatherBoxId;
......
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
@TableName("pps_base_info.scada_gather_data")
@TableName("scada_gather_data")
public class ScadaGatherData {
private String id;
private String scadaGatherConfId;
......
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
@TableName("pps_base_info.scada_inventory_info")
@TableName("scada_inventory_info")
public class ScadaInventoryInfo {
private String id;
private String scadaEnvironmentInfoId;
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_area")
@TableName("sys_area")
public class SysAreaEnt implements Serializable {
@TableField
private Integer id;
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_menu")
@TableName("sys_menu")
public class SysMenuEnt implements Serializable {
@XText("菜单ID(主键)")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import org.springframework.lang.Nullable;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_organization")
@TableName("sys_organization")
public class SysOrganizationEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_organization_property")
@TableName("sys_organization_property")
public class SysOrganizationPropertyEnt implements Serializable {
@XText("组织机构属性id(主键)")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_organization_rel")
@TableName("sys_organization_rel")
public class SysOrganizationRelEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -11,7 +11,7 @@ import java.io.Serializable;
import java.util.Date;
@Data
@TableName("pps_base_info.sys_out_user_create_log")
@TableName("sys_out_user_create_log")
public class SysOutUserCreateLogEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -11,7 +11,7 @@ import java.io.Serializable;
import java.util.Date;
@Data
@TableName("pps_base_info.sys_out_user_search_client_log")
@TableName("sys_out_user_search_client_log")
public class SysOutUserSearchClientLogEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_role")
@TableName("sys_role")
public class SysRoleEnt implements Serializable {
@XText("角色ID(主键)")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_role_menu_auth")
@TableName("sys_role_menu_auth")
public class SysRoleMenuAuthEnt implements Serializable {
@XText("角色菜单授权id(主键)")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_user")
@TableName("sys_user")
public class SysUserEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -11,7 +11,7 @@ import java.io.Serializable;
import java.util.Date;
@Data
@TableName("pps_base_info.sys_user_forget_log")
@TableName("sys_user_forget_log")
public class SysUserForgetLogEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_user_group")
@TableName("sys_user_group")
public class SysUserGroupEnt implements Serializable {
@XText("用户组ID(主键)")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -7,7 +7,7 @@ import xstartup.annotation.XText;
import java.io.Serializable;
import java.util.Date;
@TableName("pps_base_info.sys_user_import_log_detail")
@TableName("sys_user_import_log_detail")
public class SysUserImportLogDetailEnt implements Serializable {
@XText("主键")
@TableField
......
......@@ -7,7 +7,7 @@ import xstartup.annotation.XText;
import java.io.Serializable;
import java.util.Date;
@TableName("pps_base_info.sys_user_import_log")
@TableName("sys_user_import_log")
public class SysUserImportLogEnt implements Serializable {
@XText("主键")
@TableField
......
......@@ -11,7 +11,7 @@ import java.io.Serializable;
import java.util.Date;
@Data
@TableName("pps_base_info.sys_user_login_log")
@TableName("sys_user_login_log")
public class SysUserLoginLogEnt implements Serializable {
@XText("主键")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import xstartup.annotation.XText;
@TableName("pps_base_info.sys_user_role_rel")
@TableName("sys_user_role_rel")
public class SysUserRoleRelEnt implements Serializable {
@XText("用户角色关系id(主键)")
@TableId(type = IdType.ASSIGN_UUID)
......
......@@ -21,7 +21,6 @@ import pps.core.system.mapper.SysDictionaryMapper;
import pps.core.system.provider.impl.PpsPermissionProviderImpl;
import pps.core.system.provider.impl.PpsSsoProviderImpl;
import pps.core.system.provider.impl.PpsUserSessionInjectProviderImpl;
import pps.core.system.service.SysInformSendService;
import pps.core.system.service.data.sys_inform.SendSysInformInput;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -54,7 +53,7 @@ public class PpsCoreSystemModule extends XModule {
XProviderManager.setDefaultImplement(context, XSsoProvider.class, PpsSsoProviderImpl.class);
XProviderManager.setDefaultImplement(context, XSessionInjectProvider.class, PpsUserSessionInjectProviderImpl.class);
//配置信息 自定义实现类
XProviderManager.setDefaultImplement(context, XConfigProvider.class, PpsConfigProviderImpl.class);
//XProviderManager.setDefaultImplement(context, XConfigProvider.class, PpsConfigProviderImpl.class);
ManifestComponentInfoHelper.init(this.getClass().getClassLoader());
SysDictionaryMapper dictionaryMapper = context.getBean(SysDictionaryMapper.class);
......@@ -120,178 +119,6 @@ public class PpsCoreSystemModule extends XModule {
this.fixDicPath(context);
});
final String logTopic = MqConfig.accessLogMq.getValue(context);
final String transferLogTopic = MqConfig.transferLogMq.getValue(context);
final String sysInformSendMq = MqConfig.sysInformSendMq.getValue(context);
XThreadHelper.async(new Runnable() {
@Override
public void run() {
if (logTopic == null) {
context.getLogger().warn("未配置访问日志topic");
return;
}
consumerSysLog(context,logTopic);
}
});
XThreadHelper.async(new Runnable() {
@Override
public void run() {
if (transferLogTopic == null) {
context.getLogger().warn("未配置新老pps交互日志topic");
return;
}
consumerTransferLog(context,transferLogTopic);
}
});
XThreadHelper.async(new Runnable() {
@Override
public void run() {
if (sysInformSendMq == null) {
context.getLogger().warn("未配置发送消息topic");
return;
}
sysInformSend(context,sysInformSendMq);
}
});
}
private void consumerSysLog(XContext context, String logTopic){
BaseSysLogMapper mapper = context.getBean(BaseSysLogMapper.class);
BaseSysLogEnt entity = new BaseSysLogEnt();
XMqConsumeQueue consumeQueue = new XMqConsumeQueue.Builder()
.queue(logTopic)
.build();
XMqConsumer<AccessLogMqMessage> consumer = XMqFactory.createConsumer(context, consumeQueue, AccessLogMqMessage.class);
Integer interval = MqConfig.consumeInterval.getValue(context);
while (true) {
XSingleResult<AccessLogMqMessage> peekResult = null;
try {
peekResult = consumer.peek(context, AccessLogMqMessage.class);
while (peekResult.isSuccess() && peekResult.getResult() != null) {
AccessLogMqMessage result = peekResult.getResult();
try {
context.getLogger().debug(result.toString());
//保存数据库
XCopyUtils.copyObject(result, entity);
mapper.insert(entity);
} catch (Exception e) {
sendMqMessage(context, logTopic, peekResult.getResult(), e.getMessage());
context.getLogger().error("消费失败:" + e.getMessage());
interval = 60000;
} finally {
consumer.ack(context, peekResult.getResult()); //消费完这个数据后和kafka确认消费
}
peekResult = consumer.peek(context, AccessLogMqMessage.class);
}
} catch (Exception e) {
sendMqMessage(context, logTopic, peekResult.getResult(), e.getMessage());
context.getLogger().error("消费失败:" + e.getMessage());
interval = 60000;
}
if (interval == null) {
interval = 1000;
}
XThreadHelper.sleep(interval);
}
}
private void consumerTransferLog(XContext context, String logTopic){
BaseTransferLogMapper mapper = context.getBean(BaseTransferLogMapper.class);
BaseTransferLogEnt entity = new BaseTransferLogEnt();
XMqConsumeQueue consumeQueue = new XMqConsumeQueue.Builder()
.queue(logTopic)
.build();
XMqConsumer<TransferLogMqMessage> consumer = XMqFactory.createConsumer(context, consumeQueue, TransferLogMqMessage.class);
Integer interval = MqConfig.consumeInterval.getValue(context);
while (true) {
XSingleResult<TransferLogMqMessage> peekResult = null;
try {
peekResult = consumer.peek(context, TransferLogMqMessage.class);
while (peekResult.isSuccess() && peekResult.getResult() != null) {
TransferLogMqMessage result = peekResult.getResult();
try {
context.getLogger().debug(result.toString());
//保存数据库
XCopyUtils.copyObject(result, entity);
entity.setId(null);
mapper.insert(entity);
} catch (Exception e) {
sendMqMessage(context, logTopic, peekResult.getResult(), e.getMessage());
context.getLogger().error("消费失败:" + e.getMessage());
interval = 60000;
} finally {
consumer.ack(context, peekResult.getResult()); //消费完这个数据后和kafka确认消费
}
peekResult = consumer.peek(context, TransferLogMqMessage.class);
}
} catch (Exception e) {
sendMqMessage(context, logTopic, peekResult.getResult(), e.getMessage());
context.getLogger().error("消费失败:" + e.getMessage());
interval = 60000;
}
if (interval == null) {
interval = 1000;
}
XThreadHelper.sleep(interval);
}
}
private void sysInformSend(XContext context, String sendTopic){
XMqConsumeQueue consumeQueue = new XMqConsumeQueue.Builder()
.queue(sendTopic)
.build();
XMqConsumer<SysInformSendMqMessage> consumer = XMqFactory.createConsumer(context, consumeQueue, SysInformSendMqMessage.class);
Integer interval = 5000;
while (true) {
XSingleResult<SysInformSendMqMessage> peekResult = null;
try {
peekResult = consumer.peek(context, SysInformSendMqMessage.class);
while (peekResult.isSuccess() && peekResult.getResult() != null) {
SysInformSendMqMessage result = peekResult.getResult();
sendMqMessage(context, sendTopic, result, result.getMessageId());
try {
context.getLogger().debug(result.toString());
//发送消息
SysInformSendService sendService = context.getBean(SysInformSendService.class);
SendSysInformInput input = new SendSysInformInput();
input.setId(result.getId());
sendService.sysInformSend(context ,input );
} catch (Exception e) {
sendMqMessage(context, sendTopic, peekResult.getResult(), e.getMessage());
context.getLogger().error("消费失败:" + e.getMessage());
interval = 60000;
} finally {
consumer.ack(context, peekResult.getResult()); //消费完这个数据后和kafka确认消费
}
peekResult = consumer.peek(context, SysInformSendMqMessage.class);
}
} catch (Exception e) {
sendMqMessage(context, sendTopic, peekResult.getResult(), e.getMessage());
context.getLogger().error("消费失败:" + e.getMessage());
interval = 60000;
}
if (interval == null) {
interval = 1000;
}
XThreadHelper.sleep(interval);
}
}
private void sendMqMessage(XContext context, String topic, Object objMsg, String errorMsg) {
String logTopic = MqConfig.transferLogMq.getValue(context);
XMqProduceQueue queue = new XMqProduceQueue.Builder().queue(logTopic).build();
XMqProducer<TransferLogMqMessage> producer = XMqFactory.createProducer(context, queue, TransferLogMqMessage.class);
TransferLogMqMessage message = new TransferLogMqMessage();
message.setTopicName(topic);
message.setMqMessage(XJsonUtils.toJson(objMsg));
message.setExceptionInfo(errorMsg);
message.setCreateTime(new Date());
producer.publish(context, message).logIfFail(context);
}
private void fixDicPath(XContext context) {
......
package pps.core.system.service;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import pps.core.common.job.CounterJob5S;
import pps.core.common.utils.*;
import pps.core.system.service.data.MyCounterOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.XStartup;
import xstartup.base.util.XJsonUtils;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiGet;
import java.util.List;
import java.util.Set;
@XService
public class CounterService {
/**
* 读取全局计数器,用于问题排查与诊断
*
* @param context
* @return
*/
// @XApiAnonymous
@XText("获取全局计数器")
@XApiGet
public XSingleResult<MyCounterOutput> getGlobalCounter(XContext context) {
CounterBuilder.globalCounterBuilder.setFieldValue("__TASKS_RUNNING__", GlobalExecutorService.INSTANCE.getRunningTasksCount()+"");
CounterBuilder.globalCounterBuilder.setFieldValue("__TASKS_DONE__", GlobalExecutorService.INSTANCE.getTasksCount()+"");
CounterBuilder.globalCounterBuilder.setFieldValue("__TASKS_RUNNING(SCADA)___", ScadaExecutorService.INSTANCE.getRunningTasksCount() + "");
CounterBuilder.globalCounterBuilder.setFieldValue("__TASKS_DONE(SCADA)__", ScadaExecutorService.INSTANCE.getTasksCount()+"");
CounterBuilder.globalCounterBuilder.setFieldValue("__TRACEBUILDERS__", TraceHelper.getTraceBuildersCount()+"");
MyCounterOutput output = new MyCounterOutput();
output.put("__Time__", DateUtil.getCurrentDateTime());
output.merge(CounterBuilder.globalCounterBuilder.toDynObj());
output.put("__IPS__", IpUtils.getHostIPs(true));
output.put("__THREADS__", ThreadHelper.buildThreadsSimpleInfos(null));
output.put("__ComponentInfo__", XJsonUtils.toJson(ManifestComponentInfoHelper.getManifestComponentInfo("pps", "pps-core-system")).replace("\"", ""));
return XSingleResult.success(output);
}
/**
* 读取集群计数器
*
* @param context
* @return
*/
// @XApiAnonymous
@XText("获取集群全局计数器")
@XApiGet
public XSingleResult<MyCounterOutput> getClusterGlobalCounter(XContext context) {
try {
MyCounterOutput finalOutput = new MyCounterOutput();
String cacheType = XStartup.getCurrent().getProperty("x.cache.type");
String appName = XStartup.getApplication().getName();
String appClusterName = CounterJob5S.getAppClusterName();
String appClusterLockName = CounterJob5S.getAppClusterLockName();
if ("redis-cluster".equals(cacheType)) {
JedisHelper.consumeDefalutJedisCluster(jedis -> {
Set<String> nodeKeys = jedis.smembers(appClusterName);
finalOutput.put("NODES", XJsonUtils.toJson(nodeKeys));
finalOutput.put("MASTER", jedis.get(appClusterLockName));
nodeKeys.forEach(k -> {
if (!jedis.exists(k)) {
return;
} else {
String dynObjJson = jedis.get(k);
DynObj dynObj = XJsonUtils.toObject(dynObjJson, DynObj.class);
String owner = dynObj.getString(CounterBuilder.COUNTER_NAME_OWNER);
if (Strings.isNullOrEmpty(owner)) {
owner = dynObj.getString(CounterBuilder.COUNTER_NAME_INSTANCE);
}
finalOutput.put(owner, dynObj);
}
});
});
} else {
JedisHelper.consumeDefalutJedis(jedis -> {
Set<String> nodeKeys = jedis.smembers(appClusterName);
finalOutput.put("NODES", XJsonUtils.toJson(nodeKeys));
finalOutput.put("MASTER", jedis.get(appClusterLockName));
nodeKeys.forEach(k -> {
if (!jedis.exists(k)) {
return;
} else {
String dynObjJson = jedis.get(k);
DynObj dynObj = XJsonUtils.toObject(dynObjJson, DynObj.class);
String owner = dynObj.getString(CounterBuilder.COUNTER_NAME_OWNER);
if (Strings.isNullOrEmpty(owner)) {
owner = dynObj.getString(CounterBuilder.COUNTER_NAME_INSTANCE);
}
finalOutput.put(owner, dynObj);
}
});
});
}
return XSingleResult.success(finalOutput);
} catch (Exception ex) {
CounterBuilder.globalCounterBuilder.addCounter(ex, this.getClass());
return XSingleResult.error(200, ex.getMessage());
}
}
public static final String LINE_SEPERATOR = System.getProperty("line.separator");
@XText("threads")
@XApiGet
public XSingleResult<MyCounterOutput> getThreads(XContext context){
StringBuilder sb = new StringBuilder();
ThreadHelper.buildThreadsInfos(sb);
List<String> list = Splitter.on(LINE_SEPERATOR).splitToList(sb.toString());
MyCounterOutput output = new MyCounterOutput();
output.put("threads", list);
return XSingleResult.success(output);
}
}
package pps.core.system.service;
import pps.cloud.sms.service.SmsService;
import pps.cloud.sms.service.data.MessageParam;
import pps.core.common.utils.PatternUtil;
import pps.core.common.utils.VerificationCode;
import pps.core.system.cache.LoginVerCodeCache;
import pps.core.system.error.LoginError;
import pps.core.system.service.data.sys_login.SendMessageInput;
import pps.core.system.service.data.sys_login.SmsCodeOutput;
import pps.core.system.service.data.sys_login.VerificationCodeInput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.exception.XServiceException;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiPost;
import java.util.Map;
/**
* @author lixueyan
* @date 2023/4/17 0017 10:19
*/
@XService
public class SendMessageService {
@XText("验证码")
@XApiPost(anonymous = true)
public XSingleResult<SmsCodeOutput> getSmsCode(XContext context , VerificationCodeInput input ) {
Map<String, Object> codeMap = VerificationCode.generateCodeAndPic();
// 将四位数字的验证码保存到缓存中。
LoginVerCodeCache cache = new LoginVerCodeCache();
cache.setCodeKey(input.getCodeIden());
cache.setCode(codeMap.get("code").toString());
LoginVerCodeCache.set(context,cache);
SmsCodeOutput output = new SmsCodeOutput();
output.setSmsCode(cache.getCode());
return XSingleResult.success(output);
}
@XText("登陆发送短信")
@XApiPost(anonymous = true)
public XServiceResult sendMessage(XContext context, SendMessageInput input) {
checkCode(context,input.getCode(),input.getCodeIden());
String[] split = input.getPhoneStr().split(",");
for (String s : split) {
if(!PatternUtil.checkPhone(s)){
return XServiceResult.error(context,LoginError.NotExistPhone);
}
}
String smsContent = input.getSmsContent();
SmsService smsService = context.getBean(SmsService.class);
MessageParam param = new MessageParam();
param.setPhoneNum(input.getPhoneStr());
param.setVariable(smsContent);
XServiceResult result = smsService.sendMessage(context, param);
if(!result.isSuccess()){
XServiceResult.error(context,LoginError.ExceptionSmsCode);
}
return XServiceResult.OK;
}
private void checkCode(XContext context,String code,String codeIden){
if(code == null) {
throw new XServiceException(context,LoginError.NotExistCode);
}
LoginVerCodeCache isUse = LoginVerCodeCache.exist(context , codeIden);
if(isUse == null) {
throw new XServiceException(context,LoginError.NotUsedCode);
}
if(!isUse.getCode().toLowerCase().equals(code.toLowerCase())) {
throw new XServiceException(context,LoginError.NotCompareCode);
}
}
}
package pps.core.system.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.util.CollectionUtils;
import pps.cloud.dispatch.service.DispDutyMatterYqdkzxInfCloudService;
import pps.cloud.dispatch.service.DispOrderInforCloudService;
import pps.cloud.dispatch.service.DispReceiveGroupReceiverCloudService;
import pps.cloud.dispatch.service.data.GetDispDutyMatterYqdkzxInfTypeDetaiCloudOutput;
import pps.cloud.dispatch.service.data.GetDispOrderInfoCloudInput;
import pps.cloud.dispatch.service.data.GetDispOrderInfoCloudOutput;
import pps.core.common.session.PpsUserSession;
import pps.core.system.entity.SysInformEnt;
import pps.core.system.entity.SysInformReceiverEnt;
import pps.core.system.entity.SysInformReceiverView;
import pps.core.system.entity.SysMenuEnt;
import pps.core.system.mapper.SysInformReceiverMapper;
import pps.core.system.mapper.SysInformReceiverViewMapper;
import pps.core.system.service.data.sys_inform_receiver.*;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.base.util.XStringUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageResult;
import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import xstartup.error.XError;
import xstartup.feature.api.annotation.XApiGet;
import xstartup.feature.api.annotation.XApiPost;
import xstartup.helper.XTransactionHelper;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@XService
@XText("消息通知-接收方")
public class SysInformReceiverService {
@XText("查询接收方列表数据")
@XApiGet
public XPageResult<QuerySysInformReceiverViewOutput> selectSysInformReceiverPage(XContext context, QuerySysInformReceiverViewInput input){
SysInformReceiverViewMapper mapper = context.getBean(SysInformReceiverViewMapper.class);
PpsUserSession session = context.getSession(PpsUserSession.class);
if(XStringUtils.isEmpty(input.getInformId()))
input.setUserId(session.getId());
SysInformReceiverView record = new SysInformReceiverView();
XCopyUtils.copyObject(input, record);
PageHelper.startPage(input.getPage(), input.getLimit());
List<SysInformReceiverView> list = mapper.selectList(record);
PageInfo<SysInformReceiverView> pageInfo = new PageInfo<>(list);
List<QuerySysInformReceiverViewOutput> outputs = XCopyUtils.copyNewList(pageInfo.getList(), QuerySysInformReceiverViewOutput.class);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
@XText("查看数据")
@XApiGet
public XSingleResult<GetSysInformReceiverViewOutput> getSysInformReceiver(XContext context, GetSysInformReceiverViewInput input){
SysInformReceiverMapper mapper = context.getBean(SysInformReceiverMapper.class);
QueryWrapper<SysInformReceiverEnt> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(SysInformReceiverEnt::getId , input.getId());
SysInformReceiverEnt ent = mapper.selectOne(wrapper);
if(ent == null)
return XSingleResult.error(context, XError.NotFound);
//查看数据后,更新数据状态
if(ent.getStatus() == 0){
PpsUserSession session = context.getSession(PpsUserSession.class);
Date date = new Date();
ent.setStatus(1);
ent.setModifyTime(date);
ent.setModifyByName(session.getUserName());
ent.setModifyById(session.getId() + "");
if(ent.getDealTime() == null)
ent.setDealTime(date);
mapper.updateById(ent);
}
GetSysInformReceiverViewOutput output = XCopyUtils.copyNewObject(ent , GetSysInformReceiverViewOutput.class);
return XSingleResult.success(output);
}
@XText("更新接收方数据状态")
@XApiPost
public XServiceResult updateSysInformReceiverStatus(XContext context, UpdateSysInformReceiverListInput input){
return XTransactionHelper.begin(context , ()->{
if(CollectionUtils.isEmpty(input.getList()))
return XServiceResult.error(200,"数据列表不能为空");
PpsUserSession session = context.getSession(PpsUserSession.class);
Date date = new Date();
SysInformReceiverMapper mapper = context.getBean(SysInformReceiverMapper.class);
for (String id : input.getList()){
//先查询数据是否存在
QueryWrapper<SysInformReceiverEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SysInformReceiverEnt::getId, id);
SysInformReceiverEnt entity = mapper.selectOne(queryWrapper);
if (entity == null) {
return XServiceResult.error(context, XError.NotFound);
}
entity.setStatus(input.getStatus());
entity.setModifyTime(date);
entity.setModifyByName(session.getUserName());
entity.setModifyById(session.getId() + "");
entity.setDealTime(date);
mapper.updateById(entity);
}
return XServiceResult.OK;
});
}
@XText("右下角通知数据")
@XApiGet
public XListResult<GetLowerRightCornerInformOutput> getLowerRightCornerInformList(XContext context, GetSysInformReceiverViewInput input){
//1.取消息通知数据
SysInformReceiverViewMapper mapper = context.getBean(SysInformReceiverViewMapper.class);
PpsUserSession session = context.getSession(PpsUserSession.class);
input.setUserId(session.getId());
input.setStatus(0);
SysInformReceiverView record = new SysInformReceiverView();
XCopyUtils.copyObject(input, record);
record.setInvalidTime(new Date());
List<SysInformReceiverView> list = mapper.selectList(record);
List<GetLowerRightCornerInformOutput> outputs = new ArrayList<>();
list.stream().forEach(item->{
GetLowerRightCornerInformOutput output = XCopyUtils.copyNewObject(item ,GetLowerRightCornerInformOutput.class);
output.setType(0);
outputs.add(output);
});
//2.取调度令通知数据
DispOrderInforCloudService cloudService = context.getBean(DispOrderInforCloudService.class);
GetDispOrderInfoCloudInput cloudInput = new GetDispOrderInfoCloudInput();
cloudInput.setCompleteState(0);
XListResult<GetDispOrderInfoCloudOutput> outputXListResult = cloudService.getReceivingList(context , cloudInput);
outputXListResult.throwIfFail();
List<GetDispOrderInfoCloudOutput> outputList = outputXListResult.getResult();
outputList.stream().forEach(item->{
GetLowerRightCornerInformOutput output = new GetLowerRightCornerInformOutput();
output.setId(item.getId());
output.setTitle(item.getName());
output.setSendTime(item.getPostTime());
output.setSendUserId(item.getSignerById());
output.setSendUserName(item.getSignerByName());
output.setSendOuId(item.getOuId());
output.setSendOuName(item.getOuName());
output.setType(1);
outputs.add(output);
});
//3.取交接班通知数据
DispDutyMatterYqdkzxInfCloudService yqdkzxCloudService = context.getBean(DispDutyMatterYqdkzxInfCloudService.class);
XListResult<GetDispDutyMatterYqdkzxInfTypeDetaiCloudOutput> yqdkzxOutputXListResult = yqdkzxCloudService.getDispDutyMatterYqdkznInfList(context);
yqdkzxOutputXListResult.throwIfFail();
List<GetDispDutyMatterYqdkzxInfTypeDetaiCloudOutput> yqdkzxOutputList = yqdkzxOutputXListResult.getResult();
yqdkzxOutputList.stream().forEach(item->{
GetLowerRightCornerInformOutput output = new GetLowerRightCornerInformOutput();
output.setId(item.getId());
output.setTitle(item.getTheme());
output.setSendTime(item.getModifyTime());
output.setSendUserId(item.getSubmitterId());
output.setSendUserName(item.getSubmitterName());
output.setSendOuId(item.getOuId());
output.setSendOuName(item.getOuName());
output.setType(2);
outputs.add(output);
});
return XListResult.success(outputs);
}
@XText("忽略当前用户消息通知")
@XApiPost
public XServiceResult ignorSysInformReceiver(XContext context, UpdateSysInformReceiverListInput input){
return XTransactionHelper.begin(context , ()->{
PpsUserSession session = context.getSession(PpsUserSession.class);
Date date = new Date();
//查询当前用户未查看的数据
SysInformReceiverMapper mapper = context.getBean(SysInformReceiverMapper.class);
QueryWrapper<SysInformReceiverEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(SysInformReceiverEnt::getUserId, session.getId());
queryWrapper.lambda().eq(SysInformReceiverEnt::getStatus, 0);
List<SysInformReceiverEnt> list = mapper.selectList(queryWrapper);
for (SysInformReceiverEnt entity : list){
entity.setStatus(2);
entity.setModifyTime(date);
entity.setModifyByName(session.getUserName());
entity.setModifyById(session.getId() + "");
entity.setDealTime(date);
mapper.updateById(entity);
}
return XServiceResult.OK;
});
}
}
......@@ -114,7 +114,7 @@ public class SysInformService {
detailEnt.setInformId(sysInformEnt.getId());
detailEnt.setInformRecieveTypeId(receiveTypeEnt.getId());
if(receiveTypeEnt.getRecieveType() == 8)
detailEnt.setObjId("call pps_base_info." + detailEnt.getObjId() + "();");
detailEnt.setObjId("call " + detailEnt.getObjId() + "();");
receiveTypeDetailMapper.insert(detailEnt);
});
receiveTypeMapper.insert(receiveTypeEnt);
......
package pps.core.system.service.data;
import pps.core.common.service.data.CounterOutput;
public class MyCounterOutput extends CounterOutput {
}
......@@ -37,8 +37,8 @@
<select id="selectTotal" resultType="java.lang.Integer">
select count(*)
FROM pps_base_info.scada_gather_conf conf
left join pps_base_info.scada_gather_box_rel rel on conf.scada_gather_box_rel_id = rel.id
FROM scada_gather_conf conf
left join scada_gather_box_rel rel on conf.scada_gather_box_rel_id = rel.id
where
conf.scada_environment_info_id = #{envInfoId}
and
......@@ -82,8 +82,8 @@
rel.defult_table_name,
rel.defult_data_column,
rel.sync_rule
FROM pps_base_info.scada_gather_conf conf
left join pps_base_info.scada_gather_box_rel rel on conf.scada_gather_box_rel_id = rel.id
FROM scada_gather_conf conf
left join scada_gather_box_rel rel on conf.scada_gather_box_rel_id = rel.id
where
conf.scada_environment_info_id = #{envInfoId}
and
......
......@@ -6,7 +6,7 @@
select
id, scada_gather_conf_id, scada_tag, tag_value, tag_time, is_sync
from
pps_base_info.scada_gather_data
scada_gather_data
where
scada_tag = #{scadaTag}
and
......@@ -17,7 +17,7 @@
select
id, scada_gather_conf_id, scada_tag, tag_value, tag_time, is_sync
from
pps_base_info.scada_gather_data
scada_gather_data
where
scada_tag = #{scadaTag}
and
......@@ -25,7 +25,7 @@
order by data_date limit 0,1
</select>
<select id="selectRemedyList" resultType="pps.core.system.entity.ScadaGatherData">
select scada_data.* from pps_base_info.scada_gather_data scada_data left join pps_base_info.scada_gather_conf conf
select scada_data.* from scada_gather_data scada_data left join scada_gather_conf conf
on scada_data.scada_gather_conf_id = conf.id
where scada_data.pull_success = 0 and conf.scada_environment_info_id = #{id}
</select>
......
......@@ -55,8 +55,8 @@
<select id="selectListByDictionaryOuId" parameterType="pps.core.system.entity.SysOrganizationDictionaryView" resultMap="BaseResultMap">
select
a.dic_code,a.parent_dic_code,b.dic_key,b.dic_name
from pps_base_info.sys_organization_dictionary a
left join pps_base_info.sys_dictionary b on b.id = a.dic_code
from sys_organization_dictionary a
left join sys_dictionary b on b.id = a.dic_code
where a.end_time &gt; #{endTime}
and a.ou_id=#{ouId}
</select>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment